re PR lto/69393 (ICE in dwarf2out_finish, at dwarf2out.c:27175 with LTO)

2016-01-25  Richard Biener  <rguenther@suse.de>

	PR lto/69393
	* dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
	* tree-streamer-out.c (pack_ts_base_value_fields): Stream
	DECL_NAMELESS.
	* tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.

	* testsuite/libgomp.c++/pr69393.C: New testcase.

From-SVN: r232787
This commit is contained in:
Richard Biener 2016-01-25 09:31:47 +00:00 committed by Richard Biener
parent fa4511c2f4
commit 02ef53f288
6 changed files with 38 additions and 2 deletions

View File

@ -1,3 +1,11 @@
2016-01-25 Richard Biener <rguenther@suse.de>
PR lto/69393
* dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
* tree-streamer-out.c (pack_ts_base_value_fields): Stream
DECL_NAMELESS.
* tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
2016-01-25 Richard Biener <rguenther@suse.de>
PR tree-optimization/69376

View File

@ -23094,6 +23094,7 @@ is_naming_typedef_decl (const_tree decl)
{
if (decl == NULL_TREE
|| TREE_CODE (decl) != TYPE_DECL
|| DECL_NAMELESS (decl)
|| !is_tagged_type (TREE_TYPE (decl))
|| DECL_IS_BUILTIN (decl)
|| is_redundant_typedef (decl)

View File

@ -116,7 +116,10 @@ unpack_ts_base_value_fields (struct bitpack_d *bp, tree expr)
TREE_ADDRESSABLE (expr) = (unsigned) bp_unpack_value (bp, 1);
TREE_THIS_VOLATILE (expr) = (unsigned) bp_unpack_value (bp, 1);
if (DECL_P (expr))
DECL_UNSIGNED (expr) = (unsigned) bp_unpack_value (bp, 1);
{
DECL_UNSIGNED (expr) = (unsigned) bp_unpack_value (bp, 1);
DECL_NAMELESS (expr) = (unsigned) bp_unpack_value (bp, 1);
}
else if (TYPE_P (expr))
TYPE_UNSIGNED (expr) = (unsigned) bp_unpack_value (bp, 1);
else

View File

@ -87,7 +87,10 @@ pack_ts_base_value_fields (struct bitpack_d *bp, tree expr)
bp_pack_value (bp, TREE_ADDRESSABLE (expr), 1);
bp_pack_value (bp, TREE_THIS_VOLATILE (expr), 1);
if (DECL_P (expr))
bp_pack_value (bp, DECL_UNSIGNED (expr), 1);
{
bp_pack_value (bp, DECL_UNSIGNED (expr), 1);
bp_pack_value (bp, DECL_NAMELESS (expr), 1);
}
else if (TYPE_P (expr))
bp_pack_value (bp, TYPE_UNSIGNED (expr), 1);
else

View File

@ -1,3 +1,8 @@
2016-01-25 Richard Biener <rguenther@suse.de>
PR lto/69393
* testsuite/libgomp.c++/pr69393.C: New testcase.
2016-01-22 Ilya Verbin <ilya.verbin@intel.com>
* target.c (gomp_get_target_fn_addr): Allow host fallback if target

View File

@ -0,0 +1,16 @@
// { dg-do run }
// { dg-require-effective-target lto }
// { dg-options "-flto -g -fopenmp" }
int e = 5;
int
main ()
{
int a[e];
a[0] = 6;
#pragma omp parallel
if (a[0] != 6)
__builtin_abort ();
return 0;
}