[PATCH] D146369: Change strlen to sizeof
Ilyas Mustafazade via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Mar 18 14:02:26 PDT 2023
1lyasm created this revision.
1lyasm added a reviewer: Mogball.
Herald added a subscriber: hiraditya.
Herald added a project: All.
1lyasm requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D146369
Files:
llvm/lib/Option/Option.cpp
Index: llvm/lib/Option/Option.cpp
===================================================================
--- llvm/lib/Option/Option.cpp
+++ llvm/lib/Option/Option.cpp
@@ -109,9 +109,10 @@
StringRef Spelling,
unsigned &Index) const {
size_t ArgSize = Spelling.size();
+ size_t ArgStringIndexSize = sizeof(Args.getArgString(Index)) - 1;
switch (getKind()) {
case FlagClass: {
- if (ArgSize != strlen(Args.getArgString(Index)))
+ if (ArgSize != ArgStringIndexSize)
return nullptr;
return std::make_unique<Arg>(*this, Spelling, Index++);
}
@@ -149,8 +150,7 @@
}
case SeparateClass:
// Matches iff this is an exact match.
- // FIXME: Avoid strlen.
- if (ArgSize != strlen(Args.getArgString(Index)))
+ if (ArgSize != ArgStringIndexSize)
return nullptr;
Index += 2;
@@ -162,8 +162,7 @@
Args.getArgString(Index - 1));
case MultiArgClass: {
// Matches iff this is an exact match.
- // FIXME: Avoid strlen.
- if (ArgSize != strlen(Args.getArgString(Index)))
+ if (ArgSize != ArgStringIndexSize)
return nullptr;
Index += 1 + getNumArgs();
@@ -178,8 +177,7 @@
}
case JoinedOrSeparateClass: {
// If this is not an exact match, it is a joined arg.
- // FIXME: Avoid strlen.
- if (ArgSize != strlen(Args.getArgString(Index))) {
+ if (ArgSize != ArgStringIndexSize) {
const char *Value = Args.getArgString(Index) + ArgSize;
return std::make_unique<Arg>(*this, Spelling, Index++, Value);
}
@@ -205,8 +203,7 @@
Args.getArgString(Index - 1));
case RemainingArgsClass: {
// Matches iff this is an exact match.
- // FIXME: Avoid strlen.
- if (ArgSize != strlen(Args.getArgString(Index)))
+ if (ArgSize != ArgStringIndexSize)
return nullptr;
auto A = std::make_unique<Arg>(*this, Spelling, Index++);
while (Index < Args.getNumInputArgStrings() &&
@@ -216,7 +213,7 @@
}
case RemainingArgsJoinedClass: {
auto A = std::make_unique<Arg>(*this, Spelling, Index);
- if (ArgSize != strlen(Args.getArgString(Index))) {
+ if (ArgSize != ArgStringIndexSize) {
// An inexact match means there is a joined arg.
A->getValues().push_back(Args.getArgString(Index) + ArgSize);
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D146369.506325.patch
Type: text/x-patch
Size: 2401 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230318/76c58758/attachment.bin>
More information about the llvm-commits
mailing list