https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125312
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Jonathan Wakely from comment #1) > We've made quite a lot of changes to shared_ptr and weak_ptr since GCC 15: > > * 8df8510728b8 libstdc++: Remove trailing whitespace in shared_ptr_atomic.h Actually this one was just pushed yesterday, so isn't in 16.1.0 (but it's the only change in GCC 17 and is literally removing one space character). > * 74e0bb3faacf libstdc++: Disable false positive middle end warnings in > std::shared_ptr [PR122197] This just suppresses some warnings, it can't affect codegen. > * 254a858ae7ae Update copyright years. This only touches comments in the files. > * b2fb18e470de libstdc++: Provide conversion between atomic_ref of similar > types. > * 59889eaa2b48 libstdc++: Make atomic<shared_ptr<T>>::wait sensitive to > stored pointer only changes [PR118757] The two above are changes to shared_ptr_atomic.h and aren't used in the reproducer. > * 385984f5554a libstdc++: Fix warnings from std::make_unsigned<_Atomic_word> > [PR122172] > * 9a2b1acda0cb libstdc++: Trap on std::shared_ptr reference count overflow > [PR71945] > * faae3692f750 libstdc++: Allow std::shared_ptr reference counts to be > negative [PR71945] These three are all related, and seem like the most likely culprits. > * b2b2ac34ba48 libstdc++: optimize weak_ptr converting constructor/assignment This is the one I covered above. > * 10b8379252e9 libstdc++: Add smart ptr owner_equals and owner_hash > [PR117403] The code doesn't use these new function objects. > * 77687bc0e132 libstdc++: Use constexpr-if for C++11 and C++14 This just replaces a macro that expands to 'constexpr' with the keyword 'constexpr', so doesn't have any effect for -std=gnu++20 code.
