diff options
author | Daniel Berlin <dberlin@dberlin.org> | 2005-01-04 01:54:26 +0000 |
---|---|---|
committer | Daniel Berlin <dberlin@gcc.gnu.org> | 2005-01-04 01:54:26 +0000 |
commit | 1eb3331e96ce4c7652004ef02da7ca9e72539555 (patch) | |
tree | 416968ea26b7983325a0c2ff0b9e690796ea0157 /gcc/tree-inline.c | |
parent | 35a91d76115048150dd7700a9606756dec2d8d42 (diff) | |
download | gcc-1eb3331e96ce4c7652004ef02da7ca9e72539555.zip gcc-1eb3331e96ce4c7652004ef02da7ca9e72539555.tar.gz gcc-1eb3331e96ce4c7652004ef02da7ca9e72539555.tar.bz2 |
Fix PR debug/17924 Fix PR debug/19191
2005-01-03 Daniel Berlin <dberlin@dberlin.org>
Fix PR debug/17924
Fix PR debug/19191
* dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
is a decl.
* gimple-low.c (mark_blocks_with_used_vars): New function.
(mark_blocks_with_used_subblocks): Ditto.
(mark_used_blocks): Ditto.
(pass_mark_used_blocks): New pass.
* tree-inline.c: Include debug.h.
(expand_call_inline): Call outlining_inline_function here.
* tree-optimize.c (init_tree_optimization_passes): Add
pass_mark_used_blocks.
* tree-pass.h (pass_mark_used_blocks): New.
* Makefile.in (tree-inline.o): Add debug.h dependency.
From-SVN: r92882
Diffstat (limited to 'gcc/tree-inline.c')
-rw-r--r-- | gcc/tree-inline.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index 8f3e161..b6ad399 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -43,6 +43,7 @@ Boston, MA 02111-1307, USA. */ #include "tree-mudflap.h" #include "function.h" #include "diagnostic.h" +#include "debug.h" /* I'm not real happy about this, but we need to handle gimple and non-gimple trees. */ @@ -1640,6 +1641,12 @@ expand_call_inline (tree *tp, int *walk_subtrees, void *data) The easiest solution is to simply recalculate TREE_SIDE_EFFECTS for the toplevel expression. */ recalculate_side_effects (expr); + + /* Output the inlining info for this abstract function, since it has been + inlined. If we don't do this now, we can lose the information about the + variables in the function when the blocks get blown away as soon as we + remove the cgraph node. */ + (*debug_hooks->outlining_inline_function) (edge->callee->decl); /* Update callgraph if needed. */ cgraph_remove_node (edge->callee); |