| /* { dg-do compile } */ |
| /* { dg-require-effective-target lp64 } */ |
| /* { dg-require-effective-target fpic } */ |
| /* { dg-options "-O2 -fpic -mcmodel=large" } */ |
| |
| __extension__ typedef __SIZE_TYPE__ size_t; |
| typedef void (*func_ptr) (void); |
| |
| static func_ptr __DTOR_LIST__[1] = { (func_ptr) (-1) }; |
| |
| void |
| __do_global_dtors_aux (void) |
| { |
| extern func_ptr __DTOR_END__[]; |
| size_t dtor_idx = 0; |
| const size_t max_idx = __DTOR_END__ - __DTOR_LIST__ - 1; |
| func_ptr f; |
| |
| while (dtor_idx < max_idx) |
| { |
| f = __DTOR_LIST__[++dtor_idx]; |
| f (); |
| } |
| } |