diff options
author | Richard Guenther <rguenther@suse.de> | 2011-12-15 12:43:48 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2011-12-15 12:43:48 +0000 |
commit | ca814625c9cd6487a70ef1449941cfac575858e2 (patch) | |
tree | 249267a930e988bb311aef32907111b08680325b | |
parent | ba986b7d2b9953fcdd47fc2b81ecbd992e04c519 (diff) | |
download | gcc-ca814625c9cd6487a70ef1449941cfac575858e2.zip gcc-ca814625c9cd6487a70ef1449941cfac575858e2.tar.gz gcc-ca814625c9cd6487a70ef1449941cfac575858e2.tar.bz2 |
re PR debug/51564 (ICE in force_type_die, at dwarf2out.c:19288)
2011-12-15 Richard Guenther <rguenther@suse.de>
PR lto/51564
* tree.h (REGISTER_DEFS_IN_THIS_STMT, NECESSARY,
STMT_IN_SSA_EDGE_WORKLIST): Remove no longer existing flag
uses documentation.
(TREE_ASM_WRITTEN): Update documentation to mention its use
on TYPE_DECLs from debug info generation.
* tree-streamer-out.c (pack_ts_base_value_fields): Stream
TREE_ASM_WRITTEN as always zero for TYPE_DECLs, similar to
all other types.
* g++.dg/lto/pr51564-1_0.C: New testcase.
From-SVN: r182367
-rw-r--r-- | gcc/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/lto/pr51564-1_0.C | 10 | ||||
-rw-r--r-- | gcc/tree-streamer-out.c | 3 | ||||
-rw-r--r-- | gcc/tree.h | 15 |
5 files changed, 32 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a12190f..cdfac22 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2011-12-15 Richard Guenther <rguenther@suse.de> + + PR lto/51564 + * tree.h (REGISTER_DEFS_IN_THIS_STMT, NECESSARY, + STMT_IN_SSA_EDGE_WORKLIST): Remove no longer existing flag + uses documentation. + (TREE_ASM_WRITTEN): Update documentation to mention its use + on TYPE_DECLs from debug info generation. + * tree-streamer-out.c (pack_ts_base_value_fields): Stream + TREE_ASM_WRITTEN as always zero for TYPE_DECLs, similar to + all other types. + 2011-12-15 Georg-Johann Lay <avr@gjlay.de> PR target/51050 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 71c3f67..212e455 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-12-15 Richard Guenther <rguenther@suse.de> + + PR lto/51564 + * g++.dg/lto/pr51564-1_0.C: New testcase. + 2011-12-15 Jonathan Wakely <jwakely.gcc@gmail.com> PR libstdc++/51365 diff --git a/gcc/testsuite/g++.dg/lto/pr51564-1_0.C b/gcc/testsuite/g++.dg/lto/pr51564-1_0.C new file mode 100644 index 0000000..5765cb1 --- /dev/null +++ b/gcc/testsuite/g++.dg/lto/pr51564-1_0.C @@ -0,0 +1,10 @@ +// { dg-lto-do link } +// { dg-lto-options { { -flto -g } } } + +typedef int T; +void foo(void) {} +int main() +{ + foo(); + using ::T; +} diff --git a/gcc/tree-streamer-out.c b/gcc/tree-streamer-out.c index d90ee80..897c211 100644 --- a/gcc/tree-streamer-out.c +++ b/gcc/tree-streamer-out.c @@ -88,7 +88,8 @@ pack_ts_base_value_fields (struct bitpack_d *bp, tree expr) else bp_pack_value (bp, 0, 1); /* We write debug info two times, do not confuse the second one. */ - bp_pack_value (bp, TYPE_P (expr) ? 0 : TREE_ASM_WRITTEN (expr), 1); + bp_pack_value (bp, ((TYPE_P (expr) || TREE_CODE (expr) == TYPE_DECL) + ? 0 : TREE_ASM_WRITTEN (expr)), 1); if (TYPE_P (expr)) bp_pack_value (bp, TYPE_ARTIFICIAL (expr), 1); else @@ -644,19 +644,13 @@ struct GTY(()) tree_common { DECL_UNSIGNED in all decls - REGISTER_DEFS_IN_THIS_STMT in - all expressions (tree-into-ssa.c) - asm_written_flag: TREE_ASM_WRITTEN in - VAR_DECL, FUNCTION_DECL + VAR_DECL, FUNCTION_DECL, TYPE_DECL RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE BLOCK, SSA_NAME, STRING_CST - NECESSARY in - all expressions (tree-ssa-dce.c, tree-ssa-pre.c) - used_flag: TREE_USED in @@ -685,9 +679,6 @@ struct GTY(()) tree_common { IDENTIFIER_TRANSPARENT_ALIAS in IDENTIFIER_NODE - STMT_IN_SSA_EDGE_WORKLIST in - all expressions (tree-ssa-propagate.c) - visited: TREE_VISITED in @@ -1369,8 +1360,8 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int, Nonzero in a FUNCTION_DECL means that the function has been compiled. This is interesting in an inline function, since it might not need to be compiled separately. - Nonzero in a RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE or ENUMERAL_TYPE - if the debugging info for the type has been written. + Nonzero in a RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE, ENUMERAL_TYPE + or TYPE_DECL if the debugging info for the type has been written. In a BLOCK node, nonzero if reorder_blocks has already seen this block. In an SSA_NAME node, nonzero if the SSA_NAME occurs in an abnormal PHI node. */ |