diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8a5ff8f51d8..c8b1a3f4755 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2014-05-23 Jan Hubicka + + * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag for variables. + 2014-05-23 Jan Hubicka * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function. diff --git a/gcc/symtab.c b/gcc/symtab.c index 301f7e3bef8..8abb7a13b6d 100644 --- a/gcc/symtab.c +++ b/gcc/symtab.c @@ -1163,9 +1163,13 @@ symtab_nonoverwritable_alias (symtab_node *node) (new_decl, node->decl); } else - new_node = varpool_create_variable_alias (new_decl, node->decl); + { + TREE_READONLY (new_decl) = TREE_READONLY (node->decl); + new_node = varpool_create_variable_alias (new_decl, node->decl); + } symtab_resolve_alias (new_node, node); - gcc_assert (decl_binds_to_current_def_p (new_decl)); + gcc_assert (decl_binds_to_current_def_p (new_decl) + && targetm.binds_local_p (new_decl)); return new_node; }