| /* Make sure that @synchronized parses and a very basic test runs. */ |
| /* { dg-options "-fobjc-exceptions -fgnu-runtime" } */ |
| |
| #include "../objc-obj-c++-shared/Object1.h" |
| |
| int main (void) |
| { |
| Object *a = [Object new]; |
| Object *b = [Object new]; |
| Object *c = [Object new]; |
| |
| /* This single-threaded test just checks that @synchronized() uses a |
| recursive mutex, and that the runtime at least doesn't crash |
| immediately upon finding it. |
| */ |
| @synchronized (a) |
| { |
| @synchronized (a) |
| { |
| @synchronized (b) |
| { |
| @synchronized (b) |
| { |
| @synchronized (c) |
| { |
| @synchronized (c) |
| { |
| return 0; |
| } |
| } |
| } |
| } |
| } |
| } |
| } |