Commit baaf860b by Jan Hubicka Committed by Jan Hubicka

re PR target/88777 (Out-of-range offsets building glibc test-tgmath2.c for hppa-linux-gnu)


	PR lto/88777
	* cgraphunit.c (analyze_functions): Clear READONLY flag for external
	types that needs constructiong.
	* tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.

From-SVN: r268791
parent 0dcbc6dd
2019-02-12 Jan Hubicka <hubicka@ucw.cz>
PR lto/88777
* cgraphunit.c (analyze_functions): Clear READONLY flag for external
types that needs constructiong.
* tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
2019-02-12 Richard Biener <rguenther@suse.de>
PR tree-optimization/89253
......
......@@ -1226,6 +1226,15 @@ analyze_functions (bool first_time)
&& node != first_handled_var; node = next)
{
next = node->next;
/* For symbols declared locally we clear TREE_READONLY when emitting
the construtor (if one is needed). For external declarations we can
not safely assume that the type is readonly because we may be called
during its construction. */
if (TREE_CODE (node->decl) == VAR_DECL
&& TYPE_P (TREE_TYPE (node->decl))
&& TYPE_NEEDS_CONSTRUCTING (TREE_TYPE (node->decl))
&& DECL_EXTERNAL (node->decl))
TREE_READONLY (node->decl) = 0;
if (!node->aux && !node->referred_to_p ())
{
if (symtab->dump_file)
......
......@@ -5382,8 +5382,7 @@ may_be_aliased (const_tree var)
|| DECL_EXTERNAL (var)
|| TREE_ADDRESSABLE (var))
&& !((TREE_STATIC (var) || TREE_PUBLIC (var) || DECL_EXTERNAL (var))
&& ((TREE_READONLY (var)
&& !TYPE_NEEDS_CONSTRUCTING (TREE_TYPE (var)))
&& (TREE_READONLY (var)
|| (TREE_CODE (var) == VAR_DECL
&& DECL_NONALIASED (var)))));
}
......
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