Commit c97de764 by Jan Hubicka Committed by Jan Hubicka

re PR ipa/65588 (lto1: internal compiler error: Segmentation fault)


	PR ipa/65588
	* symtab.c (symtab_node::get_partitioning_class): Register vars
	are duplicated.
	* varpool.c (symbol_table::output_variables) Do not assemble unefined
	decls for non-symbols.

From-SVN: r221745
parent 62021f64
2015-03-27 Jan Hubicka <hubicka@ucw.cz>
PR ipa/65588
* symtab.c (symtab_node::get_partitioning_class): Register vars
are duplicated.
* varpool.c (symbol_table::output_variables) Do not assemble unefined
decls for non-symbols.
2015-03-27 H.J. Lu <hongjiu.lu@intel.com> 2015-03-27 H.J. Lu <hongjiu.lu@intel.com>
PR target/65248 PR target/65248
......
...@@ -1689,6 +1689,8 @@ symtab_node::get_partitioning_class (void) ...@@ -1689,6 +1689,8 @@ symtab_node::get_partitioning_class (void)
objects that can not be duplicated across partitions. */ objects that can not be duplicated across partitions. */
if (DECL_IN_CONSTANT_POOL (decl)) if (DECL_IN_CONSTANT_POOL (decl))
return SYMBOL_DUPLICATE; return SYMBOL_DUPLICATE;
if (DECL_HARD_REGISTER (decl))
return SYMBOL_DUPLICATE;
gcc_checking_assert (vnode->definition); gcc_checking_assert (vnode->definition);
} }
/* Functions that are cloned may stay in callgraph even if they are unused. /* Functions that are cloned may stay in callgraph even if they are unused.
......
...@@ -737,7 +737,9 @@ symbol_table::output_variables (void) ...@@ -737,7 +737,9 @@ symbol_table::output_variables (void)
timevar_push (TV_VAROUT); timevar_push (TV_VAROUT);
FOR_EACH_VARIABLE (node) FOR_EACH_VARIABLE (node)
if (!node->definition) if (!node->definition
&& !DECL_HAS_VALUE_EXPR_P (node->decl)
&& !DECL_HARD_REGISTER (node->decl))
assemble_undefined_decl (node->decl); assemble_undefined_decl (node->decl);
FOR_EACH_DEFINED_VARIABLE (node) FOR_EACH_DEFINED_VARIABLE (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