https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112882
Bug ID: 112882
Summary: [14 Regression] std::clamp no longer usable in header
only mode
Product: gcc
Version: 14.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: tnfchris at gcc dot gnu.org
CC: redi at gcc dot gnu.org
Target Milestone: ---
I know this is not a supported scenario, but I'm wondering if it's still easy
to support.
We have some libraries that use C++ mostly as an abstraction layer and try to
ensure that it needs no runtime support from libstdc++.
A recent commit: g:5e8a30d8b8f4d7ea0a8340b46c1e0c865dbde781 changed how
`__glibcxx_assert` is defined and now always calls
`std::__glibcxx_assert_fail`.
This means that now you always need libstdc++ even in contex where things would
have been folded away before. Similarly we're getting the same thing through
usage of `std::unique_ptr`.
It seems that undefining `_GLIBCXX_VERBOSE_ASSERT` gets it to go to
`__builtin_abort()` which makes it work again.
If this change was intentional, would it be possible to make
`_GLIBCXX_VERBOSE_ASSERT` user configurable?