1 // Check that on targets with "__cxa_atexit" we use destructors, 2 // rather than cleanup functions, to destroy objects with static 3 // storage duration. 4 5 // { dg-require-effective-target "cxa_atexit" } 6 // Cleanup functions generated by G++ have the "_tcf" prefix. 7 // { dg-final { scan-assembler-not "_tcf" } } 8 9 struct S { 10 ~S(); 11 }; 12 13 struct T { 14 S s; 15 }; 16 17 S s; 18 T t; 19 f()20void f() { 21 static S s; 22 } 23