Fix 110803: use of plain char instead of signed char

So the problem here is that plain char can either be signed
or unsigned depending on the target (powerpc and aarch64 are
unsigned while most other targets are signed). So the testcase
gcc.c-torture/execute/pr109986.c was assuming plain char was signed
char which is wrong so it is better to just change the `char` to be
`signed char`.
Note gcc.c-torture/execute/pr109986.c includes gcc.dg/tree-ssa/pr109986.c
where the plain char was being used.

Committed as obvious after a quick test to make sure gcc.c-torture/execute/pr109986.c
now passes and gcc.dg/tree-ssa/pr109986.c still passes.

gcc/testsuite/ChangeLog:

	PR testsuite/110803
	* gcc.dg/tree-ssa/pr109986.c: Change plain char to be
	`signed char`.
This commit is contained in:
Andrew Pinski 2023-07-25 21:50:33 +00:00
parent 099d40ba77
commit 6735727077

View file

@ -16,14 +16,14 @@ t2 (int a, int b)
return a ^ (~a | (unsigned int) b);
}
__attribute__((noipa)) char
t3 (char a, char b)
__attribute__((noipa)) signed char
t3 (signed char a, signed char b)
{
return (b | ~a) ^ a;
}
__attribute__((noipa)) unsigned char
t4 (char a, char b)
t4 (signed char a, signed char b)
{
return ((unsigned char) a) ^ (b | ~a);
}
@ -89,20 +89,20 @@ t12 (int a, unsigned int b)
return t3;
}
__attribute__((noipa)) char
t13 (char a, char b)
__attribute__((noipa)) signed char
t13 (signed char a, signed char b)
{
char t1 = ~a;
char t2 = b | t1;
char t3 = t2 ^ a;
signed char t1 = ~a;
signed char t2 = b | t1;
signed char t3 = t2 ^ a;
return t3;
}
__attribute__((noipa)) unsigned char
t14 (unsigned char a, char b)
t14 (unsigned char a, signed char b)
{
unsigned char t1 = ~a;
char t2 = b | t1;
signed char t2 = b | t1;
unsigned char t3 = a ^ t2;
return t3;
}