https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110572
--- Comment #13 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jonathan Wakely <r...@gcc.gnu.org>: https://gcc.gnu.org/g:6af8d8e618ed27dae3432c96484de4360bd893ab commit r15-1342-g6af8d8e618ed27dae3432c96484de4360bd893ab Author: Jonathan Wakely <jwak...@redhat.com> Date: Tue Jun 11 15:52:30 2024 +0100 libstdc++: Make std::type_info::operator== always_inline for C++23 [PR110572] Commit r12-6266-g3633cc54284450 implemented P1328 for C++23, making std::type_info::operator== usable in constant expressions. For targets such as mingw-w64 where that function was not previously inline, making it constexpr required making it inline for C++23 and later. For statically linked programs this can result in multiple definition errors, because there's a non-inline definition in libstdc++.a as well. For those targets make it always_inline for C++23, so that there is no symbol generated for the inline definition, and the non-inline definition in libstdc++.a will be the only definition. libstdc++-v3/ChangeLog: PR libstdc++/110572 * libsupc++/typeinfo (type_info::operator==): Add always_inline attribute for targets where the ABI requries equality to be non-inline. * testsuite/18_support/type_info/110572.cc: New test.