| /* Check that the compiler does correctly complain about |
| exceptions being caught by previous @catch blocks. */ |
| /* Force the use of NeXT runtime to see that we don't ICE after |
| generating the warning message. */ |
| |
| /* { dg-do compile } */ |
| /* { dg-options "-Wall -fnext-runtime -fobjc-exceptions" } */ |
| |
| @interface Exception |
| @end |
| |
| @interface FooException : Exception |
| @end |
| |
| extern void foo(); |
| |
| void test() |
| { |
| @try { |
| foo(); |
| } |
| @catch (Exception* e) { /* { dg-warning "earlier handler" } */ |
| } |
| @catch (FooException* fe) { /* { dg-warning "will be caught" } */ |
| } |
| } |