Commit 66a3e339 by Richard Guenther Committed by Richard Biener

re PR middle-end/42975 (eh-cleanup should be able to clear DECL_FUNCTION_PERSONALITY)

2010-05-30  Richard Guenther  <rguenther@suse.de>

	PR lto/42975
	* tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
	(execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
	no longer needed.

From-SVN: r160059
parent 83bf7f5e
2010-05-30 Richard Guenther <rguenther@suse.de>
PR lto/42975
* tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
(execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
no longer needed.
2010-05-30 Iain Sandoe <iains@gcc.gnu.org>
* config/darwin.c (output_objc_section_asm_op): Add comment.
......
......@@ -3857,7 +3857,7 @@ cleanup_all_empty_eh (void)
*/
static unsigned int
execute_cleanup_eh (void)
execute_cleanup_eh_1 (void)
{
/* Do this first: unsplit_all_eh and cleanup_all_empty_eh can die
looking up unreachable landing pads. */
......@@ -3891,6 +3891,21 @@ execute_cleanup_eh (void)
return 0;
}
static unsigned int
execute_cleanup_eh (void)
{
int ret = execute_cleanup_eh_1 ();
/* If the function no longer needs an EH personality routine
clear it. This exposes cross-language inlining opportunities
and avoids references to a never defined personality routine. */
if (DECL_FUNCTION_PERSONALITY (current_function_decl)
&& function_needs_eh_personality (cfun) != eh_personality_lang)
DECL_FUNCTION_PERSONALITY (current_function_decl) = NULL_TREE;
return ret;
}
static bool
gate_cleanup_eh (void)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment