[llvm] 6ffd8e3 - [llvm] Convert OptTable::ParseOneArg() to std::unique_ptr<>
Nico Weber via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 27 08:19:45 PDT 2021
Author: Nico Weber
Date: 2021-09-27T11:19:21-04:00
New Revision: 6ffd8e39028d63dc213354c8cba8c79583d57c3e
URL: https://github.com/llvm/llvm-project/commit/6ffd8e39028d63dc213354c8cba8c79583d57c3e
DIFF: https://github.com/llvm/llvm-project/commit/6ffd8e39028d63dc213354c8cba8c79583d57c3e.diff
LOG: [llvm] Convert OptTable::ParseOneArg() to std::unique_ptr<>
Added:
Modified:
llvm/include/llvm/Option/OptTable.h
llvm/lib/Option/OptTable.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/Option/OptTable.h b/llvm/include/llvm/Option/OptTable.h
index 30c39471e2aa..4388e7efc8ae 100644
--- a/llvm/include/llvm/Option/OptTable.h
+++ b/llvm/include/llvm/Option/OptTable.h
@@ -200,9 +200,9 @@ class OptTable {
/// \return The parsed argument, or 0 if the argument is missing values
/// (in which case Index still points at the conceptual next argument string
/// to parse).
- Arg *ParseOneArg(const ArgList &Args, unsigned &Index,
- unsigned FlagsToInclude = 0,
- unsigned FlagsToExclude = 0) const;
+ std::unique_ptr<Arg> ParseOneArg(const ArgList &Args, unsigned &Index,
+ unsigned FlagsToInclude = 0,
+ unsigned FlagsToExclude = 0) const;
/// Parse an list of arguments into an InputArgList.
///
diff --git a/llvm/lib/Option/OptTable.cpp b/llvm/lib/Option/OptTable.cpp
index fb83a2b73e78..405e18e2c2fd 100644
--- a/llvm/lib/Option/OptTable.cpp
+++ b/llvm/lib/Option/OptTable.cpp
@@ -402,16 +402,17 @@ std::unique_ptr<Arg> OptTable::parseOneArgGrouped(InputArgList &Args,
CStr);
}
-Arg *OptTable::ParseOneArg(const ArgList &Args, unsigned &Index,
- unsigned FlagsToInclude,
- unsigned FlagsToExclude) const {
+std::unique_ptr<Arg> OptTable::ParseOneArg(const ArgList &Args, unsigned &Index,
+ unsigned FlagsToInclude,
+ unsigned FlagsToExclude) const {
unsigned Prev = Index;
const char *Str = Args.getArgString(Index);
// Anything that doesn't start with PrefixesUnion is an input, as is '-'
// itself.
if (isInput(PrefixesUnion, Str))
- return new Arg(getOption(TheInputOptionID), Str, Index++, Str);
+ return std::make_unique<Arg>(getOption(TheInputOptionID), Str, Index++,
+ Str);
const Info *Start = OptionInfos.data() + FirstSearchableIndex;
const Info *End = OptionInfos.data() + OptionInfos.size();
@@ -447,7 +448,7 @@ Arg *OptTable::ParseOneArg(const ArgList &Args, unsigned &Index,
// See if this option matches.
if (std::unique_ptr<Arg> A = Opt.accept(
Args, StringRef(Args.getArgString(Index), ArgSize), false, Index))
- return A.release();
+ return A;
// Otherwise, see if this argument was missing values.
if (Prev != Index)
@@ -457,9 +458,11 @@ Arg *OptTable::ParseOneArg(const ArgList &Args, unsigned &Index,
// If we failed to find an option and this arg started with /, then it's
// probably an input path.
if (Str[0] == '/')
- return new Arg(getOption(TheInputOptionID), Str, Index++, Str);
+ return std::make_unique<Arg>(getOption(TheInputOptionID), Str, Index++,
+ Str);
- return new Arg(getOption(TheUnknownOptionID), Str, Index++, Str);
+ return std::make_unique<Arg>(getOption(TheUnknownOptionID), Str, Index++,
+ Str);
}
InputArgList OptTable::ParseArgs(ArrayRef<const char *> ArgArr,
@@ -487,8 +490,8 @@ InputArgList OptTable::ParseArgs(ArrayRef<const char *> ArgArr,
}
unsigned Prev = Index;
- Arg *A = GroupedShortOptions
- ? parseOneArgGrouped(Args, Index).release()
+ std::unique_ptr<Arg> A = GroupedShortOptions
+ ? parseOneArgGrouped(Args, Index)
: ParseOneArg(Args, Index, FlagsToInclude, FlagsToExclude);
assert((Index > Prev || GroupedShortOptions) &&
"Parser failed to consume argument.");
@@ -502,7 +505,7 @@ InputArgList OptTable::ParseArgs(ArrayRef<const char *> ArgArr,
break;
}
- Args.append(A);
+ Args.append(A.release());
}
return Args;
More information about the llvm-commits
mailing list