| /* Test for graceful compilation of @synchronized statements. */ | |
| /* { dg-do compile } */ | |
| /* { dg-options "-fobjc-exceptions" } */ | |
| #include "../objc-obj-c++-shared/TestsuiteObject.h" | |
| @interface Derived: TestsuiteObject | |
| - (id) meth; | |
| @end | |
| @implementation Derived | |
| - (id) meth { | |
| return self; | |
| } | |
| static Derived* rewriteDict(void) { | |
| static Derived *sDict = 0; | |
| if (sDict == 0) { | |
| @synchronized ([Derived class]) { | |
| if (sDict == 0) | |
| sDict = [Derived new]; | |
| } | |
| } | |
| return sDict; | |
| } | |
| @end |