https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116296
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Known to fail| |13.1.0, 14.1.0 Summary|[15 Regression] internal |[13/14/15 Regression] |compiler error: in merge, |internal compiler error: in |at ipa-modref-tree.cc:176 |merge, at |at -O3 |ipa-modref-tree.cc:176 at | |-O3 CC| |hubicka at gcc dot gnu.org Last reconfirmed| |2024-08-09 Ever confirmed|0 |1 Known to work|14.1.0 | Target Milestone|15.0 |13.4 Keywords| |ice-checking, | |needs-bisection --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed. Cleaned up testcase: ``` short g(unsigned long h, int i[11][11], short c) { for (unsigned long j = 0; j < h; j -= 0x105f000000000000ull) c = c > i[j][j]; return c; } ``` The assert: gcc_checking_assert (!contains (a) && !a.contains (*this)); So ICE checking and confirmed, it ICEd in GCC 13 and 14 with checking enabled. Maybe even GCC 12 but I don't have any compiler that is compiled with checking enabled from that branch. The assert was added in r12-5233-ga246d7230b8f8b (which most likely introduced the ICE too). I can't figure out why the number needs to be some large number here either. This is the smalled number I could get to the ICE as far as I can tell.