From: Xianmiao Qu Date: Tue, 31 Jan 2023 08:49:06 +0000 (+0100) Subject: testsuite/108604 - gcc.dg/torture/pr108574-3.c hangs on unsigned char archs X-Git-Tag: basepoints/gcc-14~1679 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=78d6489f736963a8a07c494294c72662c49e8e63;p=thirdparty%2Fgcc.git 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. --- diff --git a/gcc/testsuite/gcc.dg/torture/pr108574-3.c b/gcc/testsuite/gcc.dg/torture/pr108574-3.c index 3c9146e31ac8..b4d5dae9f80d 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() {