Adapt loplugin::nullptr to recent libstdc++ 16 trunk change

...<https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=d9a4c7158a70896c5d4281f42310e88c987acb3e>
"libstdc++: Rename __cmp_cat::__unspec to __cmp_cat::__literal_zero."

Change-Id: I8cac78bcfd9cf9c8a68f028d4b8ebc6ee7263129
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190685
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
This commit is contained in:
Stephan Bergmann
2025-09-09 21:49:10 +02:00
parent 56fde5e66f
commit b8a10164dc
+4 -2
View File
@@ -137,9 +137,11 @@ bool Nullptr::VisitImplicitCastExpr(CastExpr const * expr) {
{
break; // POSIX locale_t is left unspecified
}
// Hack to handle libc++ and stdlibc++ `std::strong_ordering x; x < 0` etc.:
// Hack to handle libc++ and libstdc++ (libstdc++ < 16: __unspec; libstdc++ >= 16:
// __literal_zero) `std::strong_ordering x; x < 0` etc.:
if (tc.MemberPointerOf().ClassOrStruct("_CmpUnspecifiedParam").StdNamespace()
|| tc.Pointer().ClassOrStruct("__unspec").Namespace("__cmp_cat").StdNamespace())
|| tc.Pointer().ClassOrStruct("__unspec").Namespace("__cmp_cat").StdNamespace()
|| tc.Pointer().ClassOrStruct("__literal_zero").Namespace("__cmp_cat").StdNamespace())
{
break;
}