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 $

Reply via email to