Commit ca814625 by Richard Guenther Committed by Richard Biener

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
parent ba986b7d
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> 2011-12-15 Georg-Johann Lay <avr@gjlay.de>
PR target/51050 PR target/51050
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> 2011-12-15 Jonathan Wakely <jwakely.gcc@gmail.com>
PR libstdc++/51365 PR libstdc++/51365
......
// { dg-lto-do link }
// { dg-lto-options { { -flto -g } } }
typedef int T;
void foo(void) {}
int main()
{
foo();
using ::T;
}
...@@ -88,7 +88,8 @@ pack_ts_base_value_fields (struct bitpack_d *bp, tree expr) ...@@ -88,7 +88,8 @@ pack_ts_base_value_fields (struct bitpack_d *bp, tree expr)
else else
bp_pack_value (bp, 0, 1); bp_pack_value (bp, 0, 1);
/* We write debug info two times, do not confuse the second one. */ /* 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)) if (TYPE_P (expr))
bp_pack_value (bp, TYPE_ARTIFICIAL (expr), 1); bp_pack_value (bp, TYPE_ARTIFICIAL (expr), 1);
else else
......
...@@ -644,19 +644,13 @@ struct GTY(()) tree_common { ...@@ -644,19 +644,13 @@ struct GTY(()) tree_common {
DECL_UNSIGNED in DECL_UNSIGNED in
all decls all decls
REGISTER_DEFS_IN_THIS_STMT in
all expressions (tree-into-ssa.c)
asm_written_flag: asm_written_flag:
TREE_ASM_WRITTEN in TREE_ASM_WRITTEN in
VAR_DECL, FUNCTION_DECL VAR_DECL, FUNCTION_DECL, TYPE_DECL
RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE
BLOCK, SSA_NAME, STRING_CST BLOCK, SSA_NAME, STRING_CST
NECESSARY in
all expressions (tree-ssa-dce.c, tree-ssa-pre.c)
used_flag: used_flag:
TREE_USED in TREE_USED in
...@@ -685,9 +679,6 @@ struct GTY(()) tree_common { ...@@ -685,9 +679,6 @@ struct GTY(()) tree_common {
IDENTIFIER_TRANSPARENT_ALIAS in IDENTIFIER_TRANSPARENT_ALIAS in
IDENTIFIER_NODE IDENTIFIER_NODE
STMT_IN_SSA_EDGE_WORKLIST in
all expressions (tree-ssa-propagate.c)
visited: visited:
TREE_VISITED in TREE_VISITED in
...@@ -1369,8 +1360,8 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int, ...@@ -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. Nonzero in a FUNCTION_DECL means that the function has been compiled.
This is interesting in an inline function, since it might not need This is interesting in an inline function, since it might not need
to be compiled separately. to be compiled separately.
Nonzero in a RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE or ENUMERAL_TYPE Nonzero in a RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE, ENUMERAL_TYPE
if the debugging info for the type has been written. 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 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 In an SSA_NAME node, nonzero if the SSA_NAME occurs in an abnormal
PHI node. */ PHI node. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment