Commit | Line | Data |
---|---|---|
252b5132 RH |
1 | // This file is compiled and linked into the S-record format. |
2 | ||
a13ba308 | 3 | #define FOO_MSG_LEN 4 |
252b5132 RH |
4 | |
5 | class Foo { | |
6 | static int foos; | |
7 | int i; | |
8 | static const int len = FOO_MSG_LEN; | |
9 | char message[len]; | |
10 | public: | |
11 | static void init_foo (); | |
12 | static int nb_foos() { return foos; } | |
13 | Foo(); | |
a78d2a67 | 14 | Foo(const char* message); |
252b5132 RH |
15 | Foo(const Foo&); |
16 | Foo & operator= (const Foo&); | |
17 | ~Foo (); | |
18 | }; | |
19 | ||
20 | static Foo static_foo( "static_foo"); | |
21 | ||
22 | int | |
23 | main () | |
24 | { | |
25 | Foo automatic_foo( "automatic_foo"); | |
26 | return 0; | |
27 | } | |
28 | ||
29 | void | |
30 | terminate(void) | |
31 | { | |
32 | /* This recursive call prevents a compiler warning that the noreturn | |
33 | function terminate actually does return. */ | |
34 | terminate (); | |
35 | } | |
36 | ||
37 | extern "C" { | |
38 | void | |
39 | __main () | |
40 | { | |
41 | } | |
42 | ||
43 | void | |
44 | __builtin_delete () | |
45 | { | |
46 | } | |
47 | ||
48 | void | |
49 | __builtin_new () | |
50 | { | |
51 | } | |
52 | ||
53 | void | |
54 | __throw () | |
55 | { | |
56 | } | |
57 | ||
e1c47aa4 AM |
58 | void |
59 | __rethrow () | |
60 | { | |
61 | } | |
62 | ||
252b5132 RH |
63 | void |
64 | __terminate () | |
65 | { | |
66 | } | |
67 | ||
68 | void *__eh_pc; | |
69 | ||
70 | void *** | |
71 | __get_dynamic_handler_chain () | |
72 | { | |
73 | return 0; | |
74 | } | |
75 | ||
76 | void * | |
77 | __get_eh_context () | |
78 | { | |
79 | return 0; | |
80 | } | |
81 | ||
82 | } | |
83 | ||
84 | int Foo::foos = 0; | |
85 | ||
86 | void Foo::init_foo () | |
87 | { | |
88 | foos = 80; | |
89 | } | |
90 | ||
91 | Foo::Foo () | |
92 | { | |
93 | i = ++foos; | |
94 | } | |
95 | ||
a78d2a67 | 96 | Foo::Foo (const char*) |
252b5132 RH |
97 | { |
98 | i = ++foos; | |
99 | } | |
100 | ||
101 | Foo::Foo (const Foo& foo) | |
102 | { | |
103 | i = ++foos; | |
104 | for (int k = 0; k < FOO_MSG_LEN; k++) | |
105 | message[k] = foo.message[k]; | |
106 | } | |
107 | ||
108 | Foo& Foo::operator= (const Foo& foo) | |
109 | { | |
110 | for (int k = 0; k < FOO_MSG_LEN; k++) | |
111 | message[k] = foo.message[k]; | |
112 | return *this; | |
113 | } | |
114 | ||
115 | Foo::~Foo () | |
116 | { | |
117 | foos--; | |
118 | } | |
bfba206a L |
119 | |
120 | void *__dso_handle; | |
121 | ||
122 | extern "C" | |
123 | int | |
124 | __cxa_atexit (void) | |
125 | { | |
126 | return 0; | |
127 | } |