From 1e2ad6793ac205607e7c809283cf69e1cc36a69a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Tue, 25 Mar 2025 07:15:30 +0100 Subject: Revert "[clang][bytecode] Implement __builtin_{wcscmp,wcsncmp} (#132723)" This reverts commit f7aea4d081f77dba48b0fc019f59b678fb679aa8. This broke the clang-solaris11-sparcv9 builder: https://lab.llvm.org/buildbot/#/builders/13/builds/6151 --- clang/lib/AST/ByteCode/InterpBuiltin.cpp | 28 ++-------------------------- 1 file changed, 2 insertions(+), 26 deletions(-) (limited to 'clang/lib/AST/ByteCode/InterpBuiltin.cpp') diff --git a/clang/lib/AST/ByteCode/InterpBuiltin.cpp b/clang/lib/AST/ByteCode/InterpBuiltin.cpp index 5ea1d36..285ea71 100644 --- a/clang/lib/AST/ByteCode/InterpBuiltin.cpp +++ b/clang/lib/AST/ByteCode/InterpBuiltin.cpp @@ -212,13 +212,11 @@ static bool interp__builtin_strcmp(InterpState &S, CodePtr OpPC, const Pointer &A = getParam(Frame, 0); const Pointer &B = getParam(Frame, 1); - if (ID == Builtin::BIstrcmp || ID == Builtin::BIstrncmp || - ID == Builtin::BIwcscmp || ID == Builtin::BIwcsncmp) + if (ID == Builtin::BIstrcmp || ID == Builtin::BIstrncmp) diagnoseNonConstexprBuiltin(S, OpPC, ID); uint64_t Limit = ~static_cast(0); - if (ID == Builtin::BIstrncmp || ID == Builtin::BI__builtin_strncmp || - ID == Builtin::BIwcsncmp || ID == Builtin::BI__builtin_wcsncmp) + if (ID == Builtin::BIstrncmp || ID == Builtin::BI__builtin_strncmp) Limit = peekToAPSInt(S.Stk, *S.getContext().classify(Call->getArg(2))) .getZExtValue(); @@ -233,9 +231,6 @@ static bool interp__builtin_strcmp(InterpState &S, CodePtr OpPC, if (A.isDummy() || B.isDummy()) return false; - bool IsWide = ID == Builtin::BIwcscmp || ID == Builtin::BIwcsncmp || - ID == Builtin::BI__builtin_wcscmp || - ID == Builtin::BI__builtin_wcsncmp; assert(A.getFieldDesc()->isPrimitiveArray()); assert(B.getFieldDesc()->isPrimitiveArray()); @@ -253,21 +248,6 @@ static bool interp__builtin_strcmp(InterpState &S, CodePtr OpPC, !CheckRange(S, OpPC, PB, AK_Read)) { return false; } - - if (IsWide) - INT_TYPE_SWITCH( - *S.getContext().classify(S.getASTContext().getWCharType()), { - T A = PA.deref(); - T B = PB.deref(); - if (A < B) { - pushInteger(S, -1, Call->getType()); - return true; - } else if (A > B) { - pushInteger(S, 1, Call->getType()); - return true; - } - }); - uint8_t CA = PA.deref(); uint8_t CB = PB.deref(); @@ -2140,10 +2120,6 @@ bool InterpretBuiltin(InterpState &S, CodePtr OpPC, const Function *F, case Builtin::BIstrcmp: case Builtin::BI__builtin_strncmp: case Builtin::BIstrncmp: - case Builtin::BI__builtin_wcsncmp: - case Builtin::BIwcsncmp: - case Builtin::BI__builtin_wcscmp: - case Builtin::BIwcscmp: if (!interp__builtin_strcmp(S, OpPC, Frame, F, Call)) return false; break; -- cgit v1.1