Some compiler target like arm-linux\riscv\power\s390x\xtensa-gcc handle char as unsigned char, then there are no warnings occur and got FAIL cases. Just change the type char into explicit signed char to keep the feature consistency.
gcc/testsuite/ChangeLog: * c-c++-common/Wconversion-1.c: Update type. --- gcc/testsuite/c-c++-common/Wconversion-1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/testsuite/c-c++-common/Wconversion-1.c b/gcc/testsuite/c-c++-common/Wconversion-1.c index ed65918c70f..7053f6b5dbb 100644 --- a/gcc/testsuite/c-c++-common/Wconversion-1.c +++ b/gcc/testsuite/c-c++-common/Wconversion-1.c @@ -10,5 +10,5 @@ void g() signed char sc = 300; /* { dg-warning "conversion from .int. to .signed char. changes value from .300. to .44." } */ unsigned char uc = 300; /* { dg-warning "conversion from .int. to .unsigned char. changes value from .300. to .44." } */ unsigned char uc2 = 300u; /* { dg-warning "conversion from .unsigned int. to .unsigned char. changes value from .300. to .44." } */ - char c2 = (double)1.0 + 200; /* { dg-warning "overflow in conversion from .double. to .char. changes value from .2.01e\\+2. to .127." } */ + signed char c2 = (double)1.0 + 200; /* { dg-warning "overflow in conversion from .double. to .signed char. changes value from .2.01e\\+2. to .127." } */ } -- 2.25.1