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

--- Comment #10 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Author: redi
Date: Tue Aug 14 13:13:37 2018
New Revision: 263536

URL: https://gcc.gnu.org/viewcvs?rev=263536&root=gcc&view=rev
Log:
PR libstdc++/86846 Alternative to pointer-width atomics

Define a class using std::mutex for when std::atomic<memory_resource*>
cannot be used to implement the default memory resource.

When std::mutex constructor is not constexpr the constant_init trick
won't work, so just define a global and use init_priority for it. The
compiler warns about using reserved priority, so put the definition in a
header file using #pragma GCC system_header to suppress the warning.

        PR libstdc++/86846
        * src/c++17/default_resource.h: New file, defining default_res.
        * src/c++17/memory_resource.cc [ATOMIC_POINTER_LOCK_FREE != 2]
        (atomic_mem_res): Define alternative for atomic<memory_resource*>
        using a mutex instead of atomics.

Added:
    trunk/libstdc++-v3/src/c++17/default_resource.h
Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/src/c++17/memory_resource.cc

Reply via email to