re PR libstdc++/54314 (undefined references to 'construction vtable for std::ostream-in-std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >')

PR libstdc++/54314
gcc/
	* varasm.c (default_assemble_visibility): Don't warn about
	visibility on artificial decls.
gcc/cp/
	* class.c (build_ctor_vtbl_group): Give construction vtables
	hidden visibility.
libstdc++-v3/
	* config/abi/pre/gnu.ver: Don't export construction vtables.
	* config/abi/pre/gnu-versioned-namespace.ver: Likewise.

From-SVN: r195550
This commit is contained in:
Jason Merrill 2013-01-29 12:24:51 -05:00 committed by Jason Merrill
parent 77a035209c
commit 2ee8a2d5ce
7 changed files with 27 additions and 8 deletions

View File

@ -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

View File

@ -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

View File

@ -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)),

View File

@ -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
}

View File

@ -1,3 +1,9 @@
2013-01-29 Jason Merrill <jason@redhat.com>
PR libstdc++/54314
* config/abi/pre/gnu.ver: Don't export construction vtables.
* config/abi/pre/gnu-versioned-namespace.ver: Likewise.
2013-01-28 Jonathan Wakely <jwakely.gcc@gmail.com>
PR libstdc++/56112

View File

@ -55,9 +55,6 @@ GLIBCXX_7.0 {
# function-scope static objects requires a guard variable.
_ZGVNSt*;
# construction vtable
_ZTCNSt*;
# VTT structure
_ZTTNSt*;

View File

@ -1336,9 +1336,6 @@ GLIBCXX_3.4.18 {
std::random_device::*;
};
# construction vtable
_ZTCSt*;
# std::this_thread::__sleep_for
_ZNSt11this_thread11__sleep_for*;