Landing: e4f550457b0b

Project / Subsystem

gcc / libstdc++

Date

2026-09-17

Author

Patrick Palka

Commit

e4f550457b0b5c9c87356f6dfc60ae980e319585

Source

github

Perf win

No

Breaking

No

All attributes

project
gcc
subsystem
libstdc++
patch_id
—
commit_hash
e4f550457b0b5c9c87356f6dfc60ae980e319585
source_type
github
headline
libstdc++: Fix SFINAE with shared_ptr and invalid deleter
tldr
Ensures correct SFINAE behavior for shared_ptr constructors that accept deleters, aligning with C++20 constraints.
author
Patrick Palka
outcome
committed
performance_win
false
breaking_change
false
series_id
—
series_parts
[]
tags
  • • libstdc++
  • • smart pointers
  • • SFINAE
  • • C++20
discussion_id_link
—
bugzilla_pr
—
date
2026-09-17T00:00:00.000Z

This change fixes SFINAE (Substitution Failure Is Not An Error) issues in libstdc++ concerning shared_ptr constructors that take a deleter. It implements the C++20 constraints for these constructors and proactively adopts a proposed resolution for LWG 4110, which relaxes constraints on nullptr_t overloads. New tests have been added to verify the corrected behavior.