1/* Test for graceful compilation of @synchronized statements.  */
2
3/* { dg-do compile } */
4/* { dg-options "-fobjc-exceptions" } */
5
6#include "../objc-obj-c++-shared/TestsuiteObject.h"
7
8@interface Derived: TestsuiteObject
9- (id) meth;
10@end
11
12@implementation Derived
13- (id) meth {
14  return self;
15}
16
17static Derived* rewriteDict(void) {
18  static Derived *sDict = 0;
19  if (sDict == 0) {
20    @synchronized ([Derived class]) {
21      if (sDict == 0)
22	sDict = [Derived new];
23    }
24  }
25  return sDict;
26}
27@end
28