OSDN Git Service

* objc.dg/sync-2.m: New test.
authornicola <nicola@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Sep 2010 07:51:29 +0000 (07:51 +0000)
committernicola <nicola@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Sep 2010 07:51:29 +0000 (07:51 +0000)
        * obj-c++.dg/sync-2.mm: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164585 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/obj-c++.dg/sync-2.mm [new file with mode: 0644]
gcc/testsuite/objc.dg/sync-2.m [new file with mode: 0644]

index 932dfa1..f2a9aea 100644 (file)
@@ -1,3 +1,8 @@
+2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc.dg/sync-2.m: New test.
+       * obj-c++.dg/sync-2.mm: New test.
+
 2010-09-24  Tobias Burnus  <burnus@net-b.de>
 
        PR fortran/40571
diff --git a/gcc/testsuite/obj-c++.dg/sync-2.mm b/gcc/testsuite/obj-c++.dg/sync-2.mm
new file mode 100644 (file)
index 0000000..c2143a4
--- /dev/null
@@ -0,0 +1,35 @@
+/* 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;
+                       }
+                   }
+               }
+           }
+       }
+    }
+}
diff --git a/gcc/testsuite/objc.dg/sync-2.m b/gcc/testsuite/objc.dg/sync-2.m
new file mode 100644 (file)
index 0000000..c2143a4
--- /dev/null
@@ -0,0 +1,35 @@
+/* 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;
+                       }
+                   }
+               }
+           }
+       }
+    }
+}