aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorXianmiao Qu <cooper.qu@linux.alibaba.com>2023-01-31 09:49:06 +0100
committerRichard Biener <rguenther@suse.de>2023-01-31 09:50:40 +0100
commit78d6489f736963a8a07c494294c72662c49e8e63 (patch)
treeba67a0229188169d4340292f3bb72039ef22917b /gcc
parent603a6fbcaac1e80aa90d1d26318c881a53473066 (diff)
downloadgcc-78d6489f736963a8a07c494294c72662c49e8e63.zip
gcc-78d6489f736963a8a07c494294c72662c49e8e63.tar.gz
gcc-78d6489f736963a8a07c494294c72662c49e8e63.tar.bz2
testsuite/108604 - gcc.dg/torture/pr108574-3.c hangs on unsigned char archs
In the architecture where sign defaults to unsigned, the 'f' will be zero extended to int type in the expression 'd = ~(f & ~2880764155)', then the 'd' will become -1 wich cause the case to fail. So it's ok for the architectures where sign defaults to signed like x86, but failed for the architectures where sign defaults to unsigned like arm and csky. Change char to signed char to avoid this problem. PR testsuite/108604 gcc/testsuite: * gcc.dg/torture/pr108574-3.c (b, f): Change type from char to signed char.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr108574-3.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/testsuite/gcc.dg/torture/pr108574-3.c b/gcc/testsuite/gcc.dg/torture/pr108574-3.c
index 3c9146e..b4d5dae 100644
--- a/gcc/testsuite/gcc.dg/torture/pr108574-3.c
+++ b/gcc/testsuite/gcc.dg/torture/pr108574-3.c
@@ -1,7 +1,7 @@
/* { dg-do run } */
int a = 3557301289, d;
-char b, f;
+signed char b, f;
unsigned short c = 241;
short e, g;
static void h() {