https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98629
Bug ID: 98629 Summary: ice during GIMPLE pass: widening_mul Product: gcc Version: unknown 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 code: unsigned int a; int b, c; void d() { unsigned int *e = &a; (a /= a |= b) - (0 <= (*e += *e)) * (c *= *e); } does this with recent gcc trunk: $ /home/dcb/gcc/results.20210111/bin/gcc -c -w -O2 bug689.c during GIMPLE pass: widening_mul bug689.c: In function ādā: bug689.c:3:6: internal compiler error: Segmentation fault 3 | void d() { | ^ 0xcd63f9 crash_signal(int) ../../trunk.git/gcc/toplev.c:327 0xe7b538 gimple_code(gimple const*) ../../trunk.git/gcc/gimple.h:1782 0xe7b538 is_gimple_assign(gimple const*) ../../trunk.git/gcc/gimple.h:2529 0xe7b538 gimple_assign_cast_p(gimple const*) ../../trunk.git/gcc/gimple.h:2870 The bug first seems to appear sometime between date 20210108 and today i.e. 20210111. Hashes for those dates are bdcde15045027195 and 9a6c37e6ae520534. with 32 commits between them. Jakub's recent changes to widening_mul look a likely candidate. I don't see much point in doing a git bisect, although I can if requested. Jakub's