From: Andrew Pinski Date: Wed, 29 Sep 2021 02:01:52 +0000 (+0000) Subject: Fix some testcases after my computed goto patch X-Git-Tag: basepoints/gcc-13~4359 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c6dbe7a56dfb511101ddea98844a7be0027d30a6;p=thirdparty%2Fgcc.git Fix some testcases after my computed goto patch 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. --- diff --git a/gcc/testsuite/gcc.c-torture/compile/920826-1.c b/gcc/testsuite/gcc.c-torture/compile/920826-1.c index c2d8843c8247..2a1754567fa9 100644 --- a/gcc/testsuite/gcc.c-torture/compile/920826-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/920826-1.c @@ -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;} diff --git a/gcc/testsuite/gcc.c-torture/compile/pr27863.c b/gcc/testsuite/gcc.c-torture/compile/pr27863.c index 926312e4cea4..9dc1ab892276 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr27863.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr27863.c @@ -27,5 +27,5 @@ _loc66:; *++esp=(long)&&_loc119; _loc119:; SetTermStruc: - goto *(*esp--); + goto *(void*)(__INTPTR_TYPE__)(*esp--); } diff --git a/gcc/testsuite/gcc.c-torture/compile/pr70190.c b/gcc/testsuite/gcc.c-torture/compile/pr70190.c index d3d209ace987..6c57b509f6a5 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr70190.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr70190.c @@ -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; } diff --git a/gcc/testsuite/gcc.dg/torture/pr89135.c b/gcc/testsuite/gcc.dg/torture/pr89135.c index 278303f98a6a..4cf0533d193c 100644 --- a/gcc/testsuite/gcc.dg/torture/pr89135.c +++ b/gcc/testsuite/gcc.dg/torture/pr89135.c @@ -28,7 +28,7 @@ h: g = foo (); *o = g; if (c) - goto *d; + goto *(void*)d; } } goto *i; diff --git a/gcc/testsuite/gcc.dg/torture/pr90071.c b/gcc/testsuite/gcc.dg/torture/pr90071.c index 702c143170e3..1c4099cefe0c 100644 --- a/gcc/testsuite/gcc.dg/torture/pr90071.c +++ b/gcc/testsuite/gcc.dg/torture/pr90071.c @@ -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; } diff --git a/gcc/testsuite/gcc.dg/vect/bb-slp-pr97709.c b/gcc/testsuite/gcc.dg/vect/bb-slp-pr97709.c index 672807f167c3..d0f3d0512d94 100644 --- a/gcc/testsuite/gcc.dg/vect/bb-slp-pr97709.c +++ b/gcc/testsuite/gcc.dg/vect/bb-slp-pr97709.c @@ -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: