The meaning of the testcase was changed by passing it -fwrapv. The reason for
the test failures on some platform was because the test was testing some
implementation defined behavior wrt INT_MIN in generic code.
Instead of using -fwrapv this just removes the border case from the test so
all the values now have a defined semantic. It still relies on the handling of
shifting a negative value right, but that wasn't changed with -fwrapv anyway.
The -fwrapv case is being handled already by other testcases.
gcc/testsuite/ChangeLog:
* gcc.dg/signbit-5.c: Remove -fwrapv and change INT_MIN to INT_MIN+1.
/* { dg-do run } */
-/* { dg-options "-O3 -fwrapv" } */
+/* { dg-options "-O3" } */
/* This test does not work when the truth type does not match vector type. */
/* { dg-additional-options "-march=armv8-a" { target aarch64_sve } } */
TYPE a[N];
TYPE b[N];
- a[0] = INT_MIN;
- b[0] = INT_MIN;
+ a[0] = INT_MIN+1;
+ b[0] = INT_MIN+1;
for (int i = 1; i < N; ++i)
{