blob: 20f9d49004cd49101922ba45dd221361182beb2a [file]
/* Exception handling constructs in dead code. */
/* Via the magic string "-std=*++" indicate that testing one (the default) C++ standard is sufficient. */
/* { dg-additional-options -fexceptions } */
/* { dg-additional-options -mno-fake-exceptions } */
/* { dg-additional-options -O0 } */
/* { dg-additional-options -fdump-tree-optimized-raw } */
#include "../../../../libgomp/testsuite/libgomp.c++/target-exceptions-pr118794-1.C"
/* 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 } }
Given '-O0', compilation fails:
{ dg-regexp {[^\r\n]+: In function 'void f\(\)':[\r\n]+(?:[^\r\n]+: sorry, unimplemented: exception handling not supported[\r\n]+)+} }
(Note, using 'dg-regexp' instead of 'dg-message', as the former runs before the auto-mark-UNSUPPORTED.) */