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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> 2010-11-03 
16:43:51 UTC ---
The problem here is that we do first noreturn discovery, then call
analyze_function which calls loop_optimizer_finalize which then for
--enable-checking calls verify_flow_info which ICEs, because noreturn calls to
self have not been fixed up.

To fix this, either we could (if possible) move the noreturn discovery right
after the l = analyze_function call (my preference), or if that is not possible
and callgraph states that the function can call itself call execute_fixup_cfg
right after making it noreturn, or somehow make sure verify_flow_info is not
called from loop_optimizer_finalize in this case (i.e. is postponed until we
execute_fixup_cfg later on in local pure const discovery).

Honza?

Reply via email to