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 ();

}

Reply via email to