aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Pinski <quic_apinski@quicinc.com>2024-08-22 21:15:21 -0700
committerAndrew Pinski <quic_apinski@quicinc.com>2024-08-22 21:15:21 -0700
commitf6b10fe45b9b704fd6a7124ab02c6e6cbd8efce4 (patch)
treecb9e99e8608a1a21adf169fb80f2ea2f80790a34 /gcc
parent2cd783be9f21bef3292317621ceaaaf5b202db06 (diff)
downloadgcc-f6b10fe45b9b704fd6a7124ab02c6e6cbd8efce4.zip
gcc-f6b10fe45b9b704fd6a7124ab02c6e6cbd8efce4.tar.gz
gcc-f6b10fe45b9b704fd6a7124ab02c6e6cbd8efce4.tar.bz2
testsuite: Fix vect-mod-var.c for division by 0 [PR116461]
The testcase cc.dg/vect/vect-mod-var.c has an division by 0 which is undefined. On some targets (aarch64), the scalar and the vectorized version, the result of division by 0 is the same. While on other targets (x86), we get a SIGFAULT. On other targets (powerpc), the results are different. The fix is to make sure the testcase does not test division by 0 (or really mod by 0). Pushed as obvious after testing on x86_64-linux-gnu to make sure the testcase passes now. PR testsuite/116461 gcc/testsuite/ChangeLog: * gcc.dg/vect/vect-mod-var.c: Change the initialization loop so that `b[i]` is never 0. Use 1 in those places. Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-mod-var.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/vect/vect-mod-var.c b/gcc/testsuite/gcc.dg/vect/vect-mod-var.c
index eeed318..c552941 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-mod-var.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-mod-var.c
@@ -23,6 +23,9 @@ main (void)
{
a[i] = BASE1 + i * 5;
b[i] = BASE2 - i * 4;
+ /* b[i] cannot be 0 as that would cause undefined
+ behavior with respect to `% b[i]`. */
+ b[i] = b[i] ? b[i] : 1;
__asm__ volatile ("");
}