https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123958
Bug ID: 123958
Summary: [16 regression] ice in useless_type_conversion_p, at
gimple-expr.cc:85
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: dcb314 at hotmail dot com
Target Milestone: ---
For this reduced C source code:
float fnk00xX_rae1_1;
double pow(double, double);
double sqrt(double);
void write_r4(float *);
void fnk00xX() {
int i;
float rs2;
double ds2;
for (; i; i += 1) {
sqrt(i);
ds2 = ds2 + pow(fnk00xX_rae1_1, 2.0);
rs2 = ds2;
}
write_r4(&rs2);
}
compiled by two recent versions of gcc trunk, does this:
cvise $ ~/gcc/results.20260131.ubsan/bin/gcc -c -O3 -march=znver3 bug1181.c
cvise $ ~/gcc/results.20260203.ubsan/bin/gcc -c -O3 -march=znver3 bug1181.c
bug1181.c: In function ‘fnk00xX’:
bug1181.c:5:6: error: invalid ‘PHI’ argument
5 | void fnk00xX() {
| ^~~~~~~
_33
during GIMPLE pass: widening_mul
bug1181.c:5:6: internal compiler error: tree check: expected class ‘type’, have
‘exceptional’ (error_mark) in useless_type_conversion_p, at gimple-expr.cc:85
0x1f9c357 internal_error
/home/dcb42/gcc/working/gcc/../../trunk/gcc/diagnostic-global-context.cc:787
cvise $ ~/gcc/results.20260131.ubsan/bin/gcc -v 2>&1 | grep exp
gcc version 16.0.1 20260131 (experimental) (c035985fd611dfb2)
cvise $ ~/gcc/results.20260203.ubsan/bin/gcc -v 2>&1 | grep exp
gcc version 16.0.1 20260203 (experimental) (a70bdd86984c0b6c)
cvise $