diff options
author | James E Wilson <wilson@specifixinc.com> | 2005-07-26 02:56:44 +0000 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 2005-07-25 19:56:44 -0700 |
commit | 3e2844cb07459014e55308e43ec26dd75e280f30 (patch) | |
tree | 21c55286c5bc2b5af118cad52bc71fa46c46a004 /gcc/tree-inline.c | |
parent | dd4f41c3775d2d554849efffc0cd5ef7e806d4a1 (diff) | |
download | gcc-3e2844cb07459014e55308e43ec26dd75e280f30.zip gcc-3e2844cb07459014e55308e43ec26dd75e280f30.tar.gz gcc-3e2844cb07459014e55308e43ec26dd75e280f30.tar.bz2 |
Better debug info for inlined functions.
* dwarf2out.c (add_call_src_coords_attributes): New.
(gen_inlined_subroutine_die): Call it.
(maybe_emit_file, init_file_table): Add comments.
(prune_unused_types_walk_attribs): Pass DW_AT_call_file through
maybe_emit_file.
* tree-inline.c (remap_block): Copy BLOCK_SOURCE_LOCATION.
(expand_call_inline): Set BLOCK_SOURCE_LOCATION.
* tree.h (BLOCK_SOURCE_LOCATION): New.
(struct tree_block): New field locus.
From-SVN: r102379
Diffstat (limited to 'gcc/tree-inline.c')
-rw-r--r-- | gcc/tree-inline.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index a0e5a71..21d8ac0 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -421,6 +421,7 @@ remap_block (tree *block, inline_data *id) new_block = make_node (BLOCK); TREE_USED (new_block) = TREE_USED (old_block); BLOCK_ABSTRACT_ORIGIN (new_block) = old_block; + BLOCK_SOURCE_LOCATION (new_block) = BLOCK_SOURCE_LOCATION (old_block); *block = new_block; /* Remap its variables. */ @@ -2025,9 +2026,9 @@ expand_call_inline (basic_block bb, tree stmt, tree *tp, void *data) statement expression is the return type of the function call. */ id->block = make_node (BLOCK); BLOCK_ABSTRACT_ORIGIN (id->block) = fn; + BLOCK_SOURCE_LOCATION (id->block) = input_location; add_lexical_block (TREE_BLOCK (stmt), id->block); - /* Local declarations will be replaced by their equivalents in this map. */ st = id->decl_map; |