aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.h
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2012-03-05 21:17:44 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2012-03-05 21:17:44 +0100
commit1e3c1d950e3723c46ef467306bcaea3a4f1a85f2 (patch)
tree0a203dfd5709e8e57936d2ab25e4fc15b3529a67 /gcc/tree.h
parent8993fde43241743b76372651364048d45ce2309e (diff)
downloadgcc-1e3c1d950e3723c46ef467306bcaea3a4f1a85f2.zip
gcc-1e3c1d950e3723c46ef467306bcaea3a4f1a85f2.tar.gz
gcc-1e3c1d950e3723c46ef467306bcaea3a4f1a85f2.tar.bz2
re PR debug/51902 (lexical_blocks inside inlined_subroutines generate duplicate debug_ranges)
PR debug/51902 * tree.h (BLOCK_SAME_RANGE): Define. * function.c (block_fragments_nreverse): Clear BLOCK_SAME_RANGE if BLOCK_FRAGMENT_CHAIN is non-NULL, but has it cleared. Also clear BLOCK_SAME_RANGE if fragment chain's supercontext fragment isn't equal to supercontext fragment's fragment chain. Adjust BLOCK_SUPERCONTEXT to point to supercontext fragment's fragment origin. (blocks_nreverse_all): Likewise. (reorder_blocks_1): Compute BLOCK_SAME_RANGE bits. Set BLOCK_SUPERCONTEXT to supercontext fragment instead of supercontext fragment's fragment origin. * dwarf2out.c (add_high_low_attributes): If stmt has the same range as its parent (or parents thereof etc.), use the parent's DW_AT_ranges value instead of creating a new .debug_ranges range. From-SVN: r184958
Diffstat (limited to 'gcc/tree.h')
-rw-r--r--gcc/tree.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/tree.h b/gcc/tree.h
index 140f23e..0a2d619 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -2088,6 +2088,9 @@ struct GTY(()) tree_omp_clause {
#define BLOCK_ABSTRACT_ORIGIN(NODE) (BLOCK_CHECK (NODE)->block.abstract_origin)
#define BLOCK_ABSTRACT(NODE) (BLOCK_CHECK (NODE)->block.abstract_flag)
+/* True if BLOCK has the same ranges as its BLOCK_SUPERCONTEXT. */
+#define BLOCK_SAME_RANGE(NODE) (BLOCK_CHECK (NODE)->base.nameless_flag)
+
/* An index number for this block. These values are not guaranteed to
be unique across functions -- whether or not they are depends on
the debugging output format in use. */