Fix some testcases after my computed goto patch
authorAndrew Pinski <apinski@marvell.com>
Wed, 29 Sep 2021 02:01:52 +0000 (02:01 +0000)
committerAndrew Pinski <apinski@marvell.com>
Wed, 29 Sep 2021 08:04:15 +0000 (08:04 +0000)
For some reason I did not see these failures in my testing.
Sorry about that.  Anyways this fixes the testcases by
adding a cast to __INTPTR_TYPE__ and then a cast to void*.

Committed after testing them on x86_64-linux-gnu.

gcc/testsuite/ChangeLog:

* gcc.c-torture/compile/920826-1.c: Fix computed goto.
* gcc.c-torture/compile/pr27863.c: Likewise.
* gcc.c-torture/compile/pr70190.c: Likewise.
* gcc.dg/torture/pr89135.c: Likewise.
* gcc.dg/torture/pr90071.c: Likewise.
* gcc.dg/vect/bb-slp-pr97709.c: Likewise.

gcc/testsuite/gcc.c-torture/compile/920826-1.c
gcc/testsuite/gcc.c-torture/compile/pr27863.c
gcc/testsuite/gcc.c-torture/compile/pr70190.c
gcc/testsuite/gcc.dg/torture/pr89135.c
gcc/testsuite/gcc.dg/torture/pr90071.c
gcc/testsuite/gcc.dg/vect/bb-slp-pr97709.c

index c2d8843..2a17545 100644 (file)
@@ -1,3 +1,3 @@
 /* { dg-require-effective-target indirect_jumps } */
 
-f(int*x){goto*(char)*x;}
+f(int*x){goto*(void*)(__INTPTR_TYPE__)(char)*x;}
index 926312e..9dc1ab8 100644 (file)
@@ -27,5 +27,5 @@ _loc66:;
 *++esp=(long)&&_loc119;
  _loc119:;
 SetTermStruc:
- goto *(*esp--);
+ goto *(void*)(__INTPTR_TYPE__)(*esp--);
 }
index d3d209a..6c57b50 100644 (file)
@@ -8,7 +8,7 @@ fn1 ()
   static char a[] = "foo";
   static void *b[] = { &&l1, &&l2 };
   goto *(b[1]);
- l1: goto *(a[0]);
+ l1: goto *(void*)(__INTPTR_TYPE__)(a[0]);
  l2: return 0;
 }
 
index 278303f..4cf0533 100644 (file)
@@ -28,7 +28,7 @@ h:
          g = foo ();
          *o = g;
          if (c)
-           goto *d;
+           goto *(void*)d;
        }
     }
   goto *i;
index 702c143..1c4099c 100644 (file)
@@ -21,6 +21,6 @@ h: ++e;
         goto i;
      }
 f:
-   goto *({ d || e < 0 || e >= 2; });
+   goto *(void*)(__INTPTR_TYPE__)({ d || e < 0 || e >= 2; });
    &e;
 }
index 672807f..d0f3d05 100644 (file)
@@ -12,7 +12,7 @@ e()
   void *f[] = {&&g, &&h, &&i, &&j};
   int d, c;
 j:
-  goto *a;
+  goto *(void*)(__INTPTR_TYPE__)a;
 g:
   d = 0;
 h: