diff options
| author | 2017-01-14 19:55:43 +0000 | |
|---|---|---|
| committer | 2017-01-14 19:55:43 +0000 | |
| commit | bd3306aecb3a15e8967143b8cdbbccf2b1b19b74 (patch) | |
| tree | 309a8132b44564b9e634c0da6815187ce8eab27c /gnu/llvm/lib/Option/Option.cpp | |
| parent | killp -a should not kill the window if only one pane. (diff) | |
| download | wireguard-openbsd-bd3306aecb3a15e8967143b8cdbbccf2b1b19b74.tar.xz wireguard-openbsd-bd3306aecb3a15e8967143b8cdbbccf2b1b19b74.zip | |
Import LLVM 3.9.1 including clang and lld.
Diffstat (limited to 'gnu/llvm/lib/Option/Option.cpp')
| -rw-r--r-- | gnu/llvm/lib/Option/Option.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/gnu/llvm/lib/Option/Option.cpp b/gnu/llvm/lib/Option/Option.cpp index ebf05aab764..5eb179fbd25 100644 --- a/gnu/llvm/lib/Option/Option.cpp +++ b/gnu/llvm/lib/Option/Option.cpp @@ -51,6 +51,7 @@ void Option::print(raw_ostream &O) const { P(JoinedOrSeparateClass); P(JoinedAndSeparateClass); P(RemainingArgsClass); + P(RemainingArgsJoinedClass); #undef P } @@ -82,7 +83,7 @@ void Option::print(raw_ostream &O) const { O << ">\n"; } -void Option::dump() const { print(dbgs()); } +LLVM_DUMP_METHOD void Option::dump() const { print(dbgs()); } bool Option::matches(OptSpecifier Opt) const { // Aliases are never considered in matching, look through them. @@ -234,6 +235,19 @@ Arg *Option::accept(const ArgList &Args, A->getValues().push_back(Args.getArgString(Index++)); return A; } + case RemainingArgsJoinedClass: { + Arg *A = new Arg(UnaliasedOption, Spelling, Index); + if (ArgSize != strlen(Args.getArgString(Index))) { + // An inexact match means there is a joined arg. + A->getValues().push_back(Args.getArgString(Index) + ArgSize); + } + Index++; + while (Index < Args.getNumInputArgStrings() && + Args.getArgString(Index) != nullptr) + A->getValues().push_back(Args.getArgString(Index++)); + return A; + } + default: llvm_unreachable("Invalid option kind!"); } |
