131ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh/* PR other/29639 */ 231ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh/* AIX gld supports garbage collection. But AIX gcc does not support 331ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh -ffunction-sections or -fdata-sections. */ 431ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh/* { dg-do run { xfail rs6000-*-aix* powerpc*-*-aix* } } */ 531ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh/* { dg-require-gc-sections "" } */ 631ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh/* { dg-options "-ffunction-sections -Wl,--gc-sections" } */ 731ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh 831ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsiehextern "C" void abort (void); 931ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh 1031ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsiehint g = 0; 1131ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh 1231ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsiehvoid raise_exception() 1331ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh{ 1431ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh throw 1; 1531ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh} 1631ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh 1731ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsiehvoid used() 1831ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh{ 1931ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh try { 2031ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh raise_exception (); 2131ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh } 2231ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh catch (int) { 2331ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh g = 1; 2431ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh } 2531ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh} 2631ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh 2731ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsiehvoid unused() 2831ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh{ 2931ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh try { 3031ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh raise_exception (); 3131ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh } 3231ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh catch (int) { 3331ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh g = 1; 3431ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh } 3531ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh} 3631ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh 3731ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsiehint main() 3831ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh{ 3931ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh used (); 4031ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh 4131ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh if (g != 1) 4231ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh abort (); 4331ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh 4431ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh return 0; 4531ad4de047c50cddfc3072be3a82232c53f1ca2dAndrew Hsieh} 46