aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/AST/ByteCode/InterpBuiltin.cpp
diff options
context:
space:
mode:
authorTimm Bäder <tbaeder@redhat.com>2025-03-25 07:15:30 +0100
committerTimm Bäder <tbaeder@redhat.com>2025-03-25 07:15:30 +0100
commit1e2ad6793ac205607e7c809283cf69e1cc36a69a (patch)
treebaddeeadb98d5939f11c9ac9a3647cc09f4645f9 /clang/lib/AST/ByteCode/InterpBuiltin.cpp
parentfac8fe9cf983ef6abee345d18850f1d4b925b519 (diff)
downloadllvm-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.cpp28
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;