https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107029
Bug ID: 107029 Summary: ice during GIMPLE pass: reassoc Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: dcb314 at hotmail dot com Target Milestone: --- This C++ code: class ImplicitBool ImplicitBool::*Reset___trans_tmp_1; int ImplicitBool::*Reset___trans_tmp_2; struct Chips { struct Clocks { void Reset(bool, bool); int next; }; void Reset(); Clocks clocks; }; void Chips::Clocks::Reset(bool mmc5Chip, bool fdsChip) { next = mmc5Chip || fdsChip; } void Chips::Reset() { clocks.Reset(Reset___trans_tmp_1, Reset___trans_tmp_2); } when compiled as follows by recent g++ $ ../results/bin/g++ -c -w -O2 -std=c++98 bug849.cc does this: bug849.cc: In member function ‘void Chips::Reset()’: bug849.cc:14:6: error: invalid types for ‘bit_and_expr’ 14 | void Chips::Reset() { clocks.Reset(Reset___trans_tmp_1, Reset___trans_tmp_2); } | ^~~~~ <<< Unknown tree: offset_type >>> <<< Unknown tree: offset_type >>> <<< Unknown tree: offset_type >>> _11 = _10 & Reset___trans_tmp_1.1_3; during GIMPLE pass: reassoc bug849.cc:14:6: internal compiler error: verify_gimple failed The bug first seems to occur sometime between git hash 7d7e2149cdb6b0c3 and 9a1bc4b463e61cd5, a day later. There are 24 commits in that range.