aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/class.c6
-rw-r--r--gcc/varasm.c5
4 files changed, 21 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c9273e4..42cb6248 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2013-01-29 Jason Merrill <jason@redhat.com>
+
+ PR libstdc++/54314
+ * varasm.c (default_assemble_visibility): Don't warn about
+ visibility on artificial decls.
+
2013-01-29 Richard Biener <rguenther@suse.de>
PR tree-optimization/56113
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 1b640ff..65157e1 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2013-01-29 Jason Merrill <jason@redhat.com>
+
+ PR libstdc++/54314
+ * class.c (build_ctor_vtbl_group): Give construction vtables
+ hidden visibility.
+
2013-01-25 Jason Merrill <jason@redhat.com>
PR c++/56095
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index 605dd16..38339f2 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -8356,6 +8356,12 @@ build_ctor_vtbl_group (tree binfo, tree t)
construction vtable group. */
vtbl = build_vtable (t, id, ptr_type_node);
DECL_CONSTRUCTION_VTABLE_P (vtbl) = 1;
+ /* Don't export construction vtables from shared libraries. Even on
+ targets that don't support hidden visibility, this tells
+ can_refer_decl_in_current_unit_p not to assume that it's safe to
+ access from a different compilation unit (bz 54314). */
+ DECL_VISIBILITY (vtbl) = VISIBILITY_HIDDEN;
+ DECL_VISIBILITY_SPECIFIED (vtbl) = true;
v = NULL;
accumulate_vtbl_inits (binfo, TYPE_BINFO (TREE_TYPE (binfo)),
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 6b941ba..6648103 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -5788,8 +5788,9 @@ default_assemble_visibility (tree decl ATTRIBUTE_UNUSED,
assemble_name (asm_out_file, name);
fprintf (asm_out_file, "\n");
#else
- warning (OPT_Wattributes, "visibility attribute not supported "
- "in this configuration; ignored");
+ if (!DECL_ARTIFICIAL (decl))
+ warning (OPT_Wattributes, "visibility attribute not supported "
+ "in this configuration; ignored");
#endif
}