diff options
author | Richard Guenther <rguenther@suse.de> | 2011-12-06 13:26:09 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2011-12-06 13:26:09 +0000 |
commit | f7fb28800dea7ac262424262b3ada1acd9bb8d07 (patch) | |
tree | 345ea4ddcc6a7538d7ce16b7722a60aa7d081fd9 /gcc/passes.c | |
parent | 52f26be4091ee44b2f6407d44c05c310917f2465 (diff) | |
download | gcc-f7fb28800dea7ac262424262b3ada1acd9bb8d07.zip gcc-f7fb28800dea7ac262424262b3ada1acd9bb8d07.tar.gz gcc-f7fb28800dea7ac262424262b3ada1acd9bb8d07.tar.bz2 |
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
Diffstat (limited to 'gcc/passes.c')
-rw-r--r-- | gcc/passes.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/passes.c b/gcc/passes.c index a351241..d060bb4 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -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); } } |