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

--- Comment #2 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
Created attachment 57781
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=57781&action=edit
WIP patch for the the ICE

The attached patch seems to fix the ICE.  AIUI I'm lazily creating dominance
info as it's needed; calculate_dominance_info has this early exit:

  if (dom_computed[dir_index] == DOM_OK)
    {
      checking_verify_dominators (dir);
      return;
    }

and free_dominance_info has this early exit:

  if (!dom_info_available_p (fn, dir))
    return;

So iterating through all funs with gimple bodies at the end of analyzer calling
free_dominance_info on them ought to clean things up - and seems to fix the
ICE.

However I'm having trouble writing a regression test for this, with the
combination of ubsan and lto: I get:

output is /usr/bin/ld: cannot find -lubsan
collect2: error: ld returned 1 exit status

Ideas on fixing welcome.

Reply via email to