// APPLE LOCAL preserve CR2 for save_world prologues // This testcase failed at -O2 due to a missing EH note describing the PowerPC Condition Register. // Thanks to Dale Johannesen. // { dg-do run } // { dg-options "-fpascal-strings" } #include <stdlib.h> #include <stdio.h> int tick = 1; int caught_x = 1; int h() { return 2; } void f() { throw(3); } extern int h(); void ff() { bool xx = h() == 0; if ( !xx ) { try { f(); } catch (float f) { if (!xx) printf("%f\n", f); } } } int g(int y) { bool x = h() != 0; if ( x) { try { ff(); } catch (int ex) { // if (x) printf("%d\n", ex); if (x) { tick++; caught_x = ex; } }} } main() { g(3); if (tick != 2 || caught_x != 3) abort(); }