131ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh// { dg-do run { xfail sparc64-*-elf arm-*-pe } } 231ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh// { dg-options "-fexceptions" } 331ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh 431ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsiehclass foo { 531ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsiehpublic: 631ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh class error {}; 731ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh 831ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh void cause_error(void) { throw error(); } 931ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh}; 1031ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh 1131ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsiehint main(void) 1231ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh{ 1331ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh foo f; 1431ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh try { 1531ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh f.cause_error(); 1631ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh } 1731ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh catch (foo::error&) { 1831ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh return 0; 1931ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh } 2031ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh return 1; 2131ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh} 22