URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.dg/] [torture/] [pr48542.c] - Rev 801
Go to most recent revision | Compare with Previous | Blame | View Log
/* { dg-do run } */ /* The return-address was clobbered. */ #include <stdlib.h> #include <setjmp.h> jmp_buf env; extern void sub(void); extern void sub3(void); int called; __attribute__ ((__noinline__)) int sjtest() { int i; if (setjmp(env)) return 99; for (i = 0; i < 10; i++) sub(); longjmp(env, 1); } __attribute__ ((__noinline__)) void sub(void) { called++; } int called3; __attribute__ ((__noinline__)) int sjtest3() { int i; if (setjmp(env)) return 42; for (i = 0; i < 10; i++) sub3(); return 0; } __attribute__ ((__noinline__)) void sub3(void) { called3++; if (called3 == 10) longjmp (env, 1); } int main(void) { if (sjtest() != 99 || called != 10) abort(); if (sjtest3() != 42 || called3 != 10) abort(); exit (0); }
Go to most recent revision | Compare with Previous | Blame | View Log