diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-09-23 23:55:25 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-09-23 23:55:25 +0000 |
commit | 8a2d496e180023cdad774c1512cce1ef69bf4f9c (patch) | |
tree | 619618b4d4cb69f3c08561b468e66d9de7f281a2 /clang | |
parent | 3cd55f49ab372aedc781d44c28d7bc8d1b67cc17 (diff) | |
download | bcm5719-llvm-8a2d496e180023cdad774c1512cce1ef69bf4f9c.tar.gz bcm5719-llvm-8a2d496e180023cdad774c1512cce1ef69bf4f9c.zip |
Produce errors for unknown options.
This doesn't change a lot since clang still thinks it knows all of the
-f*, -m* and -W* options for example.
Other than the options clang explicitly claims to know, this fixes pr9701.
llvm-svn: 191249
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/Driver/Driver.cpp | 5 | ||||
-rw-r--r-- | clang/test/Driver/unknown-arg.c | 11 |
2 files changed, 11 insertions, 5 deletions
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index a2cf06a20cd..1cbb623824a 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -144,6 +144,11 @@ InputArgList *Driver::ParseArgStrings(ArrayRef<const char *> ArgList) { } } + for (arg_iterator it = Args->filtered_begin(options::OPT_UNKNOWN), + ie = Args->filtered_end(); it != ie; ++it) { + Diags.Report(diag::err_drv_unknown_argument) << (*it) ->getAsString(*Args); + } + return Args; } diff --git a/clang/test/Driver/unknown-arg.c b/clang/test/Driver/unknown-arg.c index b254968c9b7..f1cbbdbe8b0 100644 --- a/clang/test/Driver/unknown-arg.c +++ b/clang/test/Driver/unknown-arg.c @@ -1,9 +1,10 @@ -// RUN: not %clang_cc1 %s -cake-is-lie -%0 -%d 2> %t.log -// RUN: FileCheck %s -input-file=%t.log +// RUN: not %clang_cc1 %s -cake-is-lie -%0 -%d -HHHH 2>&1 | \ +// RUN: FileCheck %s -// CHECK: unknown argument -// CHECK: unknown argument -// CHECK: unknown argument +// CHECK: unknown argument: '-cake-is-lie' +// CHECK: unknown argument: '-%0' +// CHECK: unknown argument: '-%d' +// CHECK: unknown argument: '-HHHH' // RUN: %clang -S %s -o %t.s -funknown-to-clang-option -Wunknown-to-clang-option -munknown-to-clang-option 2>&1 | FileCheck --check-prefix=IGNORED %s |