diff options
author | Jan Hubicka <jh@suse.cz> | 2004-09-21 02:08:53 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2004-09-21 00:08:53 +0000 |
commit | d21bede3c1bc7c8c75ba4c3f60e7d9f44c6cbd17 (patch) | |
tree | 3c3c2b033d0031cf3fbfdf0e81ce324b658cf76a /gcc/tree-optimize.c | |
parent | 37337e55bffa99e90c65939ab893dbfabf64fa06 (diff) | |
download | gcc-d21bede3c1bc7c8c75ba4c3f60e7d9f44c6cbd17.zip gcc-d21bede3c1bc7c8c75ba4c3f60e7d9f44c6cbd17.tar.gz gcc-d21bede3c1bc7c8c75ba4c3f60e7d9f44c6cbd17.tar.bz2 |
re PR middle-end/17126 (ICE with -fno-unit-at-a-time and -O3)
PR middle-end/17126
* tree-optimize.c (update_inlined_to_pointers): Fix the recursion.
(tree_rest_of_compilation): Cleanup.
From-SVN: r87780
Diffstat (limited to 'gcc/tree-optimize.c')
-rw-r--r-- | gcc/tree-optimize.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/gcc/tree-optimize.c b/gcc/tree-optimize.c index 86b6014..971f062 100644 --- a/gcc/tree-optimize.c +++ b/gcc/tree-optimize.c @@ -553,7 +553,7 @@ update_inlined_to_pointers (struct cgraph_node *node, if (e->callee->global.inlined_to) { e->callee->global.inlined_to = inlined_to; - update_inlined_to_pointers (e->callee, node); + update_inlined_to_pointers (e->callee, inlined_to); } } } @@ -653,15 +653,9 @@ tree_rest_of_compilation (tree fndecl, bool nested_p) cgraph_remove_edge (node->callees); node->callees = saved_node->callees; saved_node->callees = NULL; + update_inlined_to_pointers (node, node); for (e = node->callees; e; e = e->next_callee) - { - if (e->callee->global.inlined_to) - { - e->callee->global.inlined_to = node; - update_inlined_to_pointers (e->callee, node); - } - e->caller = node; - } + e->caller = node; cgraph_remove_node (saved_node); } } |