Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.target/i386/pr85334-1.C @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | |
children |
line wrap: on
line source
// { dg-do run } // { dg-require-effective-target cet } // { dg-additional-options "-fexceptions -fnon-call-exceptions -fcf-protection" } // Delta between numbers of call stacks of pr85334-1.C and pr85334-2.C is 1. #include <signal.h> #include <stdlib.h> void sighandler (int signo, siginfo_t * si, void * uc) { throw (5); } char * __attribute ((noinline, noclone)) dosegv () { * ((volatile int *)0) = 12; return 0; } int __attribute ((noinline, noclone)) func2 () { try { dosegv (); } catch (int x) { return (x != 5); } return 1; } int __attribute ((noinline, noclone)) func1 () { return func2 (); } int main () { struct sigaction sa; int status; sa.sa_sigaction = sighandler; sa.sa_flags = SA_SIGINFO; status = sigaction (SIGSEGV, & sa, NULL); status = sigaction (SIGBUS, & sa, NULL); return func1 (); }