diff options
author | Timm Bäder <tbaeder@redhat.com> | 2025-03-25 07:15:30 +0100 |
---|---|---|
committer | Timm Bäder <tbaeder@redhat.com> | 2025-03-25 07:15:30 +0100 |
commit | 1e2ad6793ac205607e7c809283cf69e1cc36a69a (patch) | |
tree | baddeeadb98d5939f11c9ac9a3647cc09f4645f9 /clang/lib/AST/ByteCode/InterpBuiltin.cpp | |
parent | fac8fe9cf983ef6abee345d18850f1d4b925b519 (diff) | |
download | llvm-1e2ad6793ac205607e7c809283cf69e1cc36a69a.zip llvm-1e2ad6793ac205607e7c809283cf69e1cc36a69a.tar.gz llvm-1e2ad6793ac205607e7c809283cf69e1cc36a69a.tar.bz2 |
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
Diffstat (limited to 'clang/lib/AST/ByteCode/InterpBuiltin.cpp')
-rw-r--r-- | clang/lib/AST/ByteCode/InterpBuiltin.cpp | 28 |
1 files changed, 2 insertions, 26 deletions
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<Pointer>(Frame, 0); const Pointer &B = getParam<Pointer>(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<uint64_t>(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>(); - T B = PB.deref<T>(); - 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>(); uint8_t CB = PB.deref<uint8_t>(); @@ -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; |