diff options
author | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-07-26 02:56:44 +0000 |
---|---|---|
committer | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-07-26 02:56:44 +0000 |
commit | 442769015c7c50ca6cf327e1da232ab25e79012c (patch) | |
tree | 21c55286c5bc2b5af118cad52bc71fa46c46a004 /gcc/tree-inline.c | |
parent | d9a1309008f2590a1fcd70aac4f32b600006837f (diff) | |
download | gcc-442769015c7c50ca6cf327e1da232ab25e79012c.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@102379 138bc75d-0d04-0410-961f-82ee72b054a4
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 a0e5a71d194..21d8ac003ed 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; |