Hi!

The test casts a pointer to long, which is ok for ilp32 and lp64
targets but not for llp64 targets.  Nothing reads the values later,
it is a link test, so all we care about is that it is the same
cast on s390x-linux where it used to fail before the PR64536 fix,
and that we don't warn about it.

Tested on x86_64-linux -m32/-m64 and with a cross to s390x-linux,
committed to trunk as obvious.

2022-12-19  Jakub Jelinek  <ja...@redhat.com>

        PR testsuite/108151
        * gcc.dg/pr64536.c (bar): Use casts to __INTPTR_TYPE__ rather than
        long when casting pointer to integral type.

--- gcc/testsuite/gcc.dg/pr64536.c.jj   2020-01-12 11:54:37.489397175 +0100
+++ gcc/testsuite/gcc.dg/pr64536.c      2022-12-19 13:44:42.608091278 +0100
@@ -41,7 +41,7 @@ bar (int x)
            }
          else
            i = (long *) (h->q = *f);
-         *c++ = (long) f;
+         *c++ = (__INTPTR_TYPE__) f;
          e += 6;
        }
       else
@@ -55,7 +55,7 @@ bar (int x)
            }
          else
            i = (long *) (h->q = *f);
-         *c++ = (long) f;
+         *c++ = (__INTPTR_TYPE__) f;
          e += 6;
        }
     }

        Jakub

Reply via email to