/* APPLE LOCAL file 6205688 */ /* { dg-do run } */ #include <stdio.h> void fn2(int i) __attribute__((noinline)); void fn2(int i) { printf("fn2 %d\n", i); } int fn3(int i) __attribute__((noinline)); int fn3(int i) { if (i) return i+1; else throw 1; } void fn(int i) __attribute__((noinline)); void fn(int i) { if (i) { fn2(i); } else { int j = fn3(i); printf("j %d\n", j); } } volatile int arg = 0; int main(int argc, char **argv) { try { fn(arg); } catch (int e) { printf("caught %d\n", e); } return 0; }