https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114662
Kewen Lin <linkw at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Assignee|unassigned at gcc dot gnu.org |linkw at gcc dot gnu.org CC| |linkw at gcc dot gnu.org Last reconfirmed| |2024-04-10 Status|UNCONFIRMED |ASSIGNED --- Comment #2 from Kewen Lin <linkw at gcc dot gnu.org> --- I think this is a test issue, with -m32 unsigned long is 4 bytes while CL1,CL2 are 8 bytes constants, then it considers some checks would always fail and the abort will happen, since the optimization aggressively optimize away the call to getb, there is no chance to further check "semantic equality". The IR for main at *.015t.cfg looks like: int main (int argc, char * * argv) { struct SB b; struct SA a; int D.3983; <bb 2> : init (); geta (&a, &ga); _1 = a.ax; if (_1 != 3735928559) goto <bb 3>; [INV] else goto <bb 4>; [INV] <bb 3> : __builtin_abort (); <bb 4> : __builtin_abort (); }