Skip to content
Snippets Groups Projects
  • Steven Bosscher's avatar
    d273b176
    re PR c++/55135 (Segfault of gcc on a big file) · d273b176
    Steven Bosscher authored
    gcc/
    	PR c++/55135
    	* except.h (remove_unreachable_eh_regions): New prototype.
    	* except.c (remove_eh_handler_splicer): New function, split out
    	of remove_eh_handler.
    	(remove_eh_handler): Use remove_eh_handler_splicer.  Add comment
    	warning about running it on many EH regions one at a time.
    	(remove_unreachable_eh_regions_worker): New function, walk the
    	EH tree in depth-first order and remove non-marked regions.
    	(remove_unreachable_eh_regions): New function.
    	* tree-eh.c (mark_reachable_handlers): New function, split out
    	from remove_unreachable_handlers.
    	(remove_unreachable_handlers): Use mark_reachable_handlers and
    	remove_unreachable_eh_regions.
    	(remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
    	and remove_unreachable_eh_regions.
    
    From-SVN: r196464
    d273b176
    History
    re PR c++/55135 (Segfault of gcc on a big file)
    Steven Bosscher authored
    gcc/
    	PR c++/55135
    	* except.h (remove_unreachable_eh_regions): New prototype.
    	* except.c (remove_eh_handler_splicer): New function, split out
    	of remove_eh_handler.
    	(remove_eh_handler): Use remove_eh_handler_splicer.  Add comment
    	warning about running it on many EH regions one at a time.
    	(remove_unreachable_eh_regions_worker): New function, walk the
    	EH tree in depth-first order and remove non-marked regions.
    	(remove_unreachable_eh_regions): New function.
    	* tree-eh.c (mark_reachable_handlers): New function, split out
    	from remove_unreachable_handlers.
    	(remove_unreachable_handlers): Use mark_reachable_handlers and
    	remove_unreachable_eh_regions.
    	(remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
    	and remove_unreachable_eh_regions.
    
    From-SVN: r196464