aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.h
diff options
context:
space:
mode:
authorJames E. Wilson <wilson@specifixinc.com>2005-07-26 02:56:44 +0000
committerJames E. Wilson <wilson@specifixinc.com>2005-07-26 02:56:44 +0000
commit60368d8a9f15cfed3699a822b11abe8b6aa70583 (patch)
tree21c55286c5bc2b5af118cad52bc71fa46c46a004 /gcc/tree.h
parent041b42798b7dfecf014e7a345295dbebad6897b6 (diff)
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: https://gcc.gnu.org/svn/gcc/trunk@102379 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree.h')
-rw-r--r--gcc/tree.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/tree.h b/gcc/tree.h
index df730a54af2..cae0c8b12d6 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -1570,6 +1570,12 @@ struct varray_head_tag;
#define BLOCK_FRAGMENT_ORIGIN(NODE) (BLOCK_CHECK (NODE)->block.fragment_origin)
#define BLOCK_FRAGMENT_CHAIN(NODE) (BLOCK_CHECK (NODE)->block.fragment_chain)
+/* For an inlined function, this gives the location where it was called
+ from. This is only set in the top level block, which corresponds to the
+ inlined function scope. This is used in the debug output routines. */
+
+#define BLOCK_SOURCE_LOCATION(NODE) (BLOCK_CHECK (NODE)->block.locus)
+
struct tree_block GTY(())
{
struct tree_common common;
@@ -1584,6 +1590,7 @@ struct tree_block GTY(())
tree abstract_origin;
tree fragment_origin;
tree fragment_chain;
+ location_t locus;
};
/* Define fields and accessors for nodes representing data types. */