aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/config/abi/pre/gnu.ver
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2020-01-09 13:18:20 +0000
committerJonathan Wakely <redi@gcc.gnu.org>2020-01-09 13:18:20 +0000
commitd574c8aafea40bd8759cb09031ff0dc6c250d8cf (patch)
tree2a9d4cb5cda8c0decff5dad89ba215ee2a114fb8 /libstdc++-v3/config/abi/pre/gnu.ver
parent27c5a1779badd02b337af5887e26b5420fbf71c7 (diff)
downloadgcc-d574c8aafea40bd8759cb09031ff0dc6c250d8cf.zip
gcc-d574c8aafea40bd8759cb09031ff0dc6c250d8cf.tar.gz
gcc-d574c8aafea40bd8759cb09031ff0dc6c250d8cf.tar.bz2
libstdc++: Define memory resource key functions non-inline (PR93208)
This prevents the vtables and RTTI from being emitted in every object file that uses memory_resource and monotonic_buffer_resource. Objects compiled by GCC 9.1 or 9.2 will contain inline definitions of the destructors, vtable and RTTI, but this is harmless. The inline definitions have identical effects to the ones that are now defined in libstdc++.so so it doesn't matter if the inline ones are used instead of calling the symbols exported from the runtime library. PR libstdc++/93208 * config/abi/pre/gnu.ver: Add new exports. * include/std/memory_resource (memory_resource::~memory_resource()): Do not define inline. (monotonic_buffer_resource::~monotonic_buffer_resource()): Likewise. * src/c++17/memory_resource.cc (memory_resource::~memory_resource()): Define. (monotonic_buffer_resource::~monotonic_buffer_resource()): Define. * testsuite/20_util/monotonic_buffer_resource/93208.cc: New test. From-SVN: r280044
Diffstat (limited to 'libstdc++-v3/config/abi/pre/gnu.ver')
-rw-r--r--libstdc++-v3/config/abi/pre/gnu.ver6
1 files changed, 6 insertions, 0 deletions
diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver
index 7f84f3e..edf4485 100644
--- a/libstdc++-v3/config/abi/pre/gnu.ver
+++ b/libstdc++-v3/config/abi/pre/gnu.ver
@@ -2291,6 +2291,12 @@ GLIBCXX_3.4.28 {
_ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE[012]EEC2EOS5_;
_ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE[012]EEC2EOS6_;
+ # key functions, vtables and rtti for memory resources
+ _ZNSt3pmr15memory_resourceD[0125]Ev;
+ _ZT[ISV]NSt3pmr15memory_resourceE;
+ _ZNSt3pmr25monotonic_buffer_resourceD[0125]Ev;
+ _ZT[ISV]NSt3pmr25monotonic_buffer_resourceE;
+
} GLIBCXX_3.4.27;
# Symbols in the support library (libsupc++) have their own tag.