aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-inline.c
diff options
context:
space:
mode:
authorJames E Wilson <wilson@specifixinc.com>2005-07-26 02:56:44 +0000
committerJim Wilson <wilson@gcc.gnu.org>2005-07-25 19:56:44 -0700
commit3e2844cb07459014e55308e43ec26dd75e280f30 (patch)
tree21c55286c5bc2b5af118cad52bc71fa46c46a004 /gcc/tree-inline.c
parentdd4f41c3775d2d554849efffc0cd5ef7e806d4a1 (diff)
downloadgcc-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.c3
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;