aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2015-12-08 23:00:55 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2015-12-08 22:00:55 +0000
commit54f97f900086fcc62411261205dd61e50f460421 (patch)
tree9e812c5cc3b234722834990858655f4d3e1fe90c /gcc
parent4d5438cd3cc48733f76f65aaad34475c06468886 (diff)
downloadgcc-54f97f900086fcc62411261205dd61e50f460421.zip
gcc-54f97f900086fcc62411261205dd61e50f460421.tar.gz
gcc-54f97f900086fcc62411261205dd61e50f460421.tar.bz2
re PR lto/61886 (LTO breaks fread with _FORTIFY_SOURCE=2)
PR ipa/61886 * symtab.c (symtab_node::verify_base): Fix thinko in a conditional. (symtab_node::noninterposable_alias): Do not accept transparent aliases. From-SVN: r231427
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/symtab.c4
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1668e4e..e4c7207 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2015-12-08 Jan Hubicka <hubicka@ucw.cz>
+
+ PR ipa/61886
+ * symtab.c (symtab_node::verify_base): Fix thinko in a conditional.
+ (symtab_node::noninterposable_alias): Do not accept transparent
+ aliases.
+
2015-12-08 Nathan Sidwell <nathan@acm.org>
* config/nvptx/nvptx.c (decl_chunk_size, decl_chunk_mode,
diff --git a/gcc/symtab.c b/gcc/symtab.c
index 06d618b..a9a0ab6 100644
--- a/gcc/symtab.c
+++ b/gcc/symtab.c
@@ -1005,7 +1005,7 @@ symtab_node::verify_base (void)
}
if (!hashed_node
&& !(is_a <varpool_node *> (this)
- || DECL_HARD_REGISTER (decl)))
+ && DECL_HARD_REGISTER (decl)))
{
error ("node not found in symtab assembler name hash");
error_found = true;
@@ -1637,7 +1637,7 @@ symtab_node::resolve_alias (symtab_node *target, bool transparent)
bool
symtab_node::noninterposable_alias (symtab_node *node, void *data)
{
- if (decl_binds_to_current_def_p (node->decl))
+ if (!node->transparent_alias && decl_binds_to_current_def_p (node->decl))
{
symtab_node *fn = node->ultimate_alias_target ();