diff options
Diffstat (limited to 'lib/Option/OptTable.cpp')
| -rw-r--r-- | lib/Option/OptTable.cpp | 27 | 
1 files changed, 13 insertions, 14 deletions
| diff --git a/lib/Option/OptTable.cpp b/lib/Option/OptTable.cpp index c37f193fa64e..e83536f2b572 100644 --- a/lib/Option/OptTable.cpp +++ b/lib/Option/OptTable.cpp @@ -79,8 +79,8 @@ static inline bool operator<(const OptTable::Info &A, const OptTable::Info &B) {  static inline bool operator<(const OptTable::Info &I, const char *Name) {    return StrCmpOptionNameIgnoreCase(I.Name, Name) < 0;  } -} // namespace opt -} // namespace llvm +} +}  OptSpecifier::OptSpecifier(const Option *Opt) : ID(Opt->getID()) {} @@ -247,33 +247,32 @@ Arg *OptTable::ParseOneArg(const ArgList &Args, unsigned &Index,    return new Arg(getOption(TheUnknownOptionID), Str, Index++, Str);  } -InputArgList *OptTable::ParseArgs(const char *const *ArgBegin, -                                  const char *const *ArgEnd, -                                  unsigned &MissingArgIndex, -                                  unsigned &MissingArgCount, -                                  unsigned FlagsToInclude, -                                  unsigned FlagsToExclude) const { -  InputArgList *Args = new InputArgList(ArgBegin, ArgEnd); +InputArgList OptTable::ParseArgs(ArrayRef<const char *> ArgArr, +                                 unsigned &MissingArgIndex, +                                 unsigned &MissingArgCount, +                                 unsigned FlagsToInclude, +                                 unsigned FlagsToExclude) const { +  InputArgList Args(ArgArr.begin(), ArgArr.end());    // FIXME: Handle '@' args (or at least error on them).    MissingArgIndex = MissingArgCount = 0; -  unsigned Index = 0, End = ArgEnd - ArgBegin; +  unsigned Index = 0, End = ArgArr.size();    while (Index < End) {      // Ingore nullptrs, they are response file's EOL markers -    if (Args->getArgString(Index) == nullptr) { +    if (Args.getArgString(Index) == nullptr) {        ++Index;        continue;      }      // Ignore empty arguments (other things may still take them as arguments). -    StringRef Str = Args->getArgString(Index); +    StringRef Str = Args.getArgString(Index);      if (Str == "") {        ++Index;        continue;      }      unsigned Prev = Index; -    Arg *A = ParseOneArg(*Args, Index, FlagsToInclude, FlagsToExclude); +    Arg *A = ParseOneArg(Args, Index, FlagsToInclude, FlagsToExclude);      assert(Index > Prev && "Parser failed to consume argument.");      // Check for missing argument error. @@ -285,7 +284,7 @@ InputArgList *OptTable::ParseArgs(const char *const *ArgBegin,        break;      } -    Args->append(A); +    Args.append(A);    }    return Args; | 
