diff options
-rw-r--r-- | lib/Driver/Driver.cpp | 1 | ||||
-rw-r--r-- | test/Driver/redundant-args.c | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp index 35e63989a3..7ab3278c7f 100644 --- a/lib/Driver/Driver.cpp +++ b/lib/Driver/Driver.cpp @@ -1003,6 +1003,7 @@ void Driver::BuildInputs(const ToolChain &TC, const DerivedArgList &Args, } else if (A->getOption().matches(options::OPT_x)) { InputTypeArg = A; InputType = types::lookupTypeForTypeSpecifier(A->getValue(Args)); + A->claim(); // Follow gcc behavior and treat as linker input for invalid -x // options. Its not clear why we shouldn't just revert to unknown; but diff --git a/test/Driver/redundant-args.c b/test/Driver/redundant-args.c new file mode 100644 index 0000000000..7bf98e1e73 --- /dev/null +++ b/test/Driver/redundant-args.c @@ -0,0 +1,2 @@ +// RUN: %clang -target x86_64-apple-darwin10 \ +// RUN: -Werror -x c -x c -fsyntax-only %s |