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.

Reply via email to