]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* gcc.c-torture/execute/980526-1.c: New test.
authorJeffrey A Law <law@cygnus.com>
Tue, 26 May 1998 22:41:54 +0000 (22:41 +0000)
committerJeff Law <law@gcc.gnu.org>
Tue, 26 May 1998 22:41:54 +0000 (16:41 -0600)
From-SVN: r20072

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/980526-1.c [new file with mode: 0644]

index 873d0043d4cb95d7031cff8ecac6a3a8fda1aaf9..fbcd0441c503c82570f35f4bacfdbf6626480682 100644 (file)
@@ -1,3 +1,7 @@
+Tue May 26 23:40:40 1998  Jeffrey A Law  (law@cygnus.com)
+
+       * gcc.c-torture/execute/980526-1.c: New test.
+
 1998-05-26  Dave Love  <d.love@dl.ac.uk>
 
        * g77.f-torture/execute/alpha2.f: Add runtime test.
diff --git a/gcc/testsuite/gcc.c-torture/execute/980526-1.c b/gcc/testsuite/gcc.c-torture/execute/980526-1.c
new file mode 100644 (file)
index 0000000..491068f
--- /dev/null
@@ -0,0 +1,35 @@
+int expect_do1 = 1, expect_do2 = 2;
+static int doit(int x){
+  __label__ lbl1;
+  __label__ lbl2;
+  static int jtab_init = 0;
+  static void *jtab[2];
+  if(!jtab_init) {
+    jtab[0] = &&lbl1;
+    jtab[1] = &&lbl2;
+    jtab_init = 1;
+  }
+  goto *jtab[x];
+lbl1:
+  return 1;
+lbl2:
+  return 2;
+}
+static void do1(void) {
+  if (doit(0) != expect_do1)
+    abort ();
+}
+static void do2(void){
+  if (doit(1) != expect_do2)
+    abort ();
+}
+int main(void){
+  do1();
+  do2();
+  exit(0);
+}