https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93208

--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Author: redi
Date: Thu Jan  9 13:18:37 2020
New Revision: 280045

URL: https://gcc.gnu.org/viewcvs?rev=280045&root=gcc&view=rev
Log:
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.

Added:
   
branches/gcc-9-branch/libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/93208.cc
Modified:
    branches/gcc-9-branch/libstdc++-v3/ChangeLog
    branches/gcc-9-branch/libstdc++-v3/config/abi/pre/gnu.ver
    branches/gcc-9-branch/libstdc++-v3/include/std/memory_resource
    branches/gcc-9-branch/libstdc++-v3/src/c++17/memory_resource.cc

Reply via email to