https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92618
Bug ID: 92618 Summary: [10 Regression] error: type mismatch in binary expression in reassoc since r273490 Product: gcc Version: 10.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: linkw at gcc dot gnu.org Target Milestone: --- I see following ICE: $ cat ice.C typedef long long __m128i __attribute__((__vector_size__(16))); void fn1(__attribute__((__vector_size__(2 * sizeof(long)))) long long *p1) { __m128i a; *p1 = a; } void fn2(int *p1) { fn1(reinterpret_cast<__m128i *>(p1)); fn1(reinterpret_cast<__m128i *>(reinterpret_cast<char *>(p1) + 16)); } unsigned long b[4]; void fn3(long &p1) { fn2(reinterpret_cast<int *>(b)); p1 = b[0] + b[1] + b[2] + b[3]; } $ gcc ice.C -O2 ice.C: In function ‘void fn3(long int&)’: ice.C:11:6: error: type mismatch in binary expression 11 | void fn3(long &p1) { | ^~~ long unsigned int long long int long long int _3 = _17 + _18;during GIMPLE pass: reassoc ice.C:11:6: internal compiler error: verify_gimple failed 0x10b6811 verify_gimple_in_cfg(function*, bool) /home/marxin/Programming/gcc/gcc/tree-cfg.c:5445 0xf9115f execute_function_todo /home/marxin/Programming/gcc/gcc/passes.c:1983 0xf91f0e execute_todo /home/marxin/Programming/gcc/gcc/passes.c:2037 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.