https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117095

--- Comment #1 from Stefan Schulze Frielinghaus <stefansf at gcc dot gnu.org> 
---
For the outcome basically only

  b = fn3(q == &l);
  *h = b;
  if (c != 1)
    __builtin_abort();

matters.  The optimized tree output for that part looks good to me (using -O2
of course):

a.1_34 = a;
a.2_35 = (unsigned short) a.1_34;
_36 = 1 - a.2_35;
_37 = (short int) _36;
b = _37;
h.13_15 = h;
_16 = (int) _37;
*h.13_15 = _16;
c.14_17 = c;
if (c.14_17 != 1)
  goto <bb 10>; [0.00%]
else
  goto <bb 11>; [100.00%]

<bb 10> [count: 0]:
__builtin_abort ();

<bb 11> [local count: 14598063]:
return 0;

Reply via email to