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?