/* 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