diff options
Diffstat (limited to 'libgomp/testsuite/libgomp.c++/target-exceptions-pr118794-1.C')
-rw-r--r-- | libgomp/testsuite/libgomp.c++/target-exceptions-pr118794-1.C | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/libgomp/testsuite/libgomp.c++/target-exceptions-pr118794-1.C b/libgomp/testsuite/libgomp.c++/target-exceptions-pr118794-1.C index a73e7f8..24eb7a5 100644 --- a/libgomp/testsuite/libgomp.c++/target-exceptions-pr118794-1.C +++ b/libgomp/testsuite/libgomp.c++/target-exceptions-pr118794-1.C @@ -9,10 +9,6 @@ /* See also '../../../gcc/testsuite/g++.target/gcn/exceptions-pr118794-1.C', '../../../gcc/testsuite/g++.target/nvptx/exceptions-pr118794-1.C'. */ -/* Help nvptx offloading overcome a code generation issue; - PR106445, PR118518. */ -#define ALWAYS_INLINE __attribute__((always_inline)) - #pragma omp begin declare target bool ok = false; @@ -20,12 +16,10 @@ bool ok = false; template <typename T> struct C { - ALWAYS_INLINE C() { ok = true; } - ALWAYS_INLINE C(int) {}; ~C() {}; @@ -57,7 +51,9 @@ int main() /* In this specific C++ arrangement, distilled from PR118794, GCC synthesizes '__builtin_eh_pointer', '__builtin_unwind_resume' calls as dead code in 'f': - { dg-final { scan-tree-dump-times {gimple_call <__builtin_eh_pointer, } 1 optimized } } - { dg-final { scan-tree-dump-times {gimple_call <__builtin_unwind_resume, } 1 optimized } } + { dg-final { scan-tree-dump-times {gimple_call <__builtin_eh_pointer, } 1 optimized { target { ! { arm_eabi || tic6x-*-* } } } } } + { dg-final { scan-tree-dump-times {gimple_call <__builtin_unwind_resume, } 1 optimized { target { ! { arm_eabi || tic6x-*-* } } } } } + ..., just 'targetm.arm_eabi_unwinder' is different: + { dg-final { scan-tree-dump-times {gimple_call <__builtin_cxa_end_cleanup, } 1 optimized { target { arm_eabi || tic6x-*-* } } } } { dg-final { scan-offload-tree-dump-times {gimple_call <__builtin_eh_pointer, } 1 optimized } } { dg-final { scan-offload-tree-dump-times {gimple_call <__builtin_unwind_resume, } 1 optimized } } */ |