[Bug c/57036] ice in update_ssa_across_abnormal_edges

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Apr 23 11:06:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57036

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> 2013-04-23 11:06:50 UTC ---
Reduced testcase:

extern void g (void);
extern __inline __attribute__ ((__always_inline__,__leaf__))
f ()
{
  g ();
}
struct __jmp_buf_tag *b;
int jpgDecode_convert (unsigned i)
{
  if (i != 0)
    f ();
  read_buf_open ();
  return _setjmp (b);
}

marking 'g' leaf as well fixes the ICE.

The inliner doesn't handle new abnormal edges appearing this way from
a 'leaf' function which isn't considered as possibly causing abnormal
goto edges.

I suppose all these setjmp ICEs are latent with carefully constructed
non-local goto testcases.



More information about the Gcc-bugs mailing list