OSDN Git Service

2011-10-18 Janus Weil <janus@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / objc.dg / sync-2.m
1 /* Make sure that @synchronized parses and a very basic test runs.  */
2 /* { dg-options "-fobjc-exceptions -fgnu-runtime" } */
3
4 #include "../objc-obj-c++-shared/TestsuiteObject.h"
5
6 int main (void)
7 {
8   TestsuiteObject *a = [TestsuiteObject new];
9   TestsuiteObject *b = [TestsuiteObject new];
10   TestsuiteObject *c = [TestsuiteObject new];
11
12   /* This single-threaded test just checks that @synchronized() uses a
13      recursive mutex, and that the runtime at least doesn't crash
14      immediately upon finding it.
15   */
16   @synchronized (a)
17     {
18       @synchronized (a)
19         {
20           @synchronized (b)
21             {
22               @synchronized (b)
23                 {
24                   @synchronized (c)
25                     {
26                       @synchronized (c)
27                         {
28                           return 0;
29                         }
30                     }
31                 }
32             }
33         }
34     }
35 }