re PR lto/50601 (New LTO failures)
2011-12-06 Richard Guenther <rguenther@suse.de> PR middle-end/50601 * varasm.c (assemble_alias): Move DECL_EXTERNAL implementation quirk adjustjment ... * passes.c (rest_of_decl_compilation): ... here. From-SVN: r182048
This commit is contained in:
parent
52f26be409
commit
f7fb28800d
@ -1,3 +1,10 @@
|
||||
2011-12-06 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/50601
|
||||
* varasm.c (assemble_alias): Move DECL_EXTERNAL implementation
|
||||
quirk adjustjment ...
|
||||
* passes.c (rest_of_decl_compilation): ... here.
|
||||
|
||||
2011-12-06 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/51436
|
||||
|
@ -156,6 +156,11 @@ rest_of_decl_compilation (tree decl,
|
||||
{
|
||||
alias = TREE_VALUE (TREE_VALUE (alias));
|
||||
alias = get_identifier (TREE_STRING_POINTER (alias));
|
||||
/* A quirk of the initial implementation of aliases required that the
|
||||
user add "extern" to all of them. Which is silly, but now
|
||||
historical. Do note that the symbol is in fact locally defined. */
|
||||
if (!lookup_attribute ("weakref", DECL_ATTRIBUTES (decl)))
|
||||
DECL_EXTERNAL (decl) = 0;
|
||||
assemble_alias (decl, alias);
|
||||
}
|
||||
}
|
||||
|
@ -5794,14 +5794,11 @@ void
|
||||
assemble_alias (tree decl, tree target)
|
||||
{
|
||||
tree target_decl;
|
||||
bool is_weakref = false;
|
||||
|
||||
if (lookup_attribute ("weakref", DECL_ATTRIBUTES (decl)))
|
||||
{
|
||||
tree alias = DECL_ASSEMBLER_NAME (decl);
|
||||
|
||||
is_weakref = true;
|
||||
|
||||
ultimate_transparent_alias_target (&target);
|
||||
|
||||
if (alias == target)
|
||||
@ -5839,12 +5836,6 @@ assemble_alias (tree decl, tree target)
|
||||
}
|
||||
TREE_USED (decl) = 1;
|
||||
|
||||
/* A quirk of the initial implementation of aliases required that the user
|
||||
add "extern" to all of them. Which is silly, but now historical. Do
|
||||
note that the symbol is in fact locally defined. */
|
||||
if (! is_weakref)
|
||||
DECL_EXTERNAL (decl) = 0;
|
||||
|
||||
/* Allow aliases to aliases. */
|
||||
if (TREE_CODE (decl) == FUNCTION_DECL)
|
||||
cgraph_get_create_node (decl)->alias = true;
|
||||
|
Loading…
Reference in New Issue
Block a user