diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/init/cleanup3.C')
-rw-r--r-- | gcc/testsuite/g++.dg/init/cleanup3.C | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/init/cleanup3.C b/gcc/testsuite/g++.dg/init/cleanup3.C new file mode 100644 index 000000000..da7e411ab --- /dev/null +++ b/gcc/testsuite/g++.dg/init/cleanup3.C @@ -0,0 +1,22 @@ +// Check that on targets with "__cxa_atexit" we use destructors, +// rather than cleanup functions, to destroy objects with static +// storage duration. + +// { dg-require-effective-target "cxa_atexit" } +// Cleanup functions generated by G++ have the "_tcf" prefix. +// { dg-final { scan-assembler-not "_tcf" } } + +struct S { + ~S(); +}; + +struct T { + S s; +}; + +S s; +T t; + +void f() { + static S s; +} |