diff options
author | Daniel Berlin <dberlin@dberlin.org> | 2004-12-24 05:23:10 +0000 |
---|---|---|
committer | Daniel Berlin <dberlin@gcc.gnu.org> | 2004-12-24 05:23:10 +0000 |
commit | ac3bfd867b1e0a702551bcf0581b481885eb4938 (patch) | |
tree | a627db8a80c09e929338b90c21134a1193390049 /gcc/tree.h | |
parent | c1c42f20d6c2ac53feefd4ba02febe6c3ff4d992 (diff) | |
download | gcc-ac3bfd867b1e0a702551bcf0581b481885eb4938.zip gcc-ac3bfd867b1e0a702551bcf0581b481885eb4938.tar.gz gcc-ac3bfd867b1e0a702551bcf0581b481885eb4938.tar.bz2 |
re PR tree-optimization/14638 (Variables disappear from debug info at -O1)
2004-12-24 Daniel Berlin <dberlin@dberlin.org>
Fix PR debug/14638
* tree.h (DECL_DEBUG_ALIAS_OF): New macro.
* var-tracking.c (track_expr_p): Don't disqualify tracking of variables
that are aliases of variables we want to track, unless the
original variable is also ignored for debugging purposes.
(VARIABLE_HASH_VAL): Use DECL_UID, so that this is deterministic.
* tree-outof-ssa.c (create_temp): Note who we are a debug alias of.
* dwarf2out.c (dwarf2out_var_location): Add us to the location of
the decl we are an alias of.
From-SVN: r92585
Diffstat (limited to 'gcc/tree.h')
-rw-r--r-- | gcc/tree.h | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -2014,6 +2014,10 @@ struct tree_binfo GTY (()) writing debugging information about vfield and vbase decls for C++. */ #define DECL_FCONTEXT(NODE) (FIELD_DECL_CHECK (NODE)->decl.vindex) +/* For VAR_DECL, this is set to the variable we were split from, due to + optimization. */ +#define DECL_DEBUG_ALIAS_OF(NODE) (DECL_CHECK (NODE)->decl.vindex) + /* Every ..._DECL node gets a unique number. */ #define DECL_UID(NODE) (DECL_CHECK (NODE)->decl.uid) |