Home | History | Annotate | Download | only in ld-srec
      1 // This file is compiled and linked into the S-record format.
      2 
      3 #define FOO_MSG_LEN 80
      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();
     14     Foo(const char* message);
     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 
     58 void
     59 __rethrow ()
     60 {
     61 }
     62 
     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 
     96 Foo::Foo (const char*)
     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 }
    119 
    120 void *__dso_handle;
    121 
    122 extern "C"
    123 int
    124 __cxa_atexit (void)
    125 {
    126   return 0;
    127 }
    128