]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* gcc.c-torture/execute/comp-goto-2.c: New test.
authorAlexandre Oliva <aoliva@redhat.com>
Fri, 22 Dec 2000 08:50:26 +0000 (08:50 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Fri, 22 Dec 2000 08:50:26 +0000 (08:50 +0000)
From-SVN: r38447

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/comp-goto-2.c [new file with mode: 0644]

index dd0874c34b8230e18a2e74d6fa4c82bd919b2c19..6235cf020bc8280f6dfe20667799d0b23a4e2267 100644 (file)
@@ -1,3 +1,7 @@
+Fri Dec 22 06:45:03 2000  Alexandre Oliva  <aoliva@redhat.com>
+
+       * gcc.c-torture/execute/comp-goto-2.c: New test.
+
 Thu Dec 21 22:43:03 2000  J"orn Rennecke <amylaar@redhat.com>
 
        * gcc.c-torture/execute/comp-goto-1.c (uint32, sint32):
diff --git a/gcc/testsuite/gcc.c-torture/execute/comp-goto-2.c b/gcc/testsuite/gcc.c-torture/execute/comp-goto-2.c
new file mode 100644 (file)
index 0000000..771cd95
--- /dev/null
@@ -0,0 +1,36 @@
+/* A slight variation of 920501-7.c.  */
+
+#ifdef STACK_SIZE
+#define DEPTH ((STACK_SIZE) / 512 + 1)
+#else
+#define DEPTH 1000
+#endif
+
+#if ! defined (NO_LABEL_VALUES) && !defined (NO_TRAMPOLINES)
+x(a)
+{
+  __label__ xlab;
+  void y(a)
+    {
+      void *x = &&llab;
+      if (a==-1)
+       goto *x;
+      if (a==0)
+       goto xlab;
+    llab:
+      y (a-1);
+    }
+  y (a);
+ xlab:;
+  return a;
+}
+#endif
+
+main ()
+{
+#if ! defined (NO_LABEL_VALUES) && !defined (NO_TRAMPOLINES)
+  if (x (DEPTH) != DEPTH)
+    abort ();
+#endif
+  exit (0);
+}