diff options
Diffstat (limited to 'clang/tools/clang-cc/clang-cc.cpp')
| -rw-r--r-- | clang/tools/clang-cc/clang-cc.cpp | 17 | 
1 files changed, 16 insertions, 1 deletions
| diff --git a/clang/tools/clang-cc/clang-cc.cpp b/clang/tools/clang-cc/clang-cc.cpp index 4bf92577fd0..81a819e38d2 100644 --- a/clang/tools/clang-cc/clang-cc.cpp +++ b/clang/tools/clang-cc/clang-cc.cpp @@ -1497,6 +1497,20 @@ SilenceRewriteMacroWarning("Wno-rewrite-macros", llvm::cl::init(false),                             llvm::cl::desc("Silence ObjC rewriting warnings"));  //===----------------------------------------------------------------------===// +// Warning Options +//===----------------------------------------------------------------------===// + +// This gets all -W options, including -Werror, -W[no-]system-headers, etc.  The +// driver has stripped off -Wa,foo etc.  The driver has also translated -W to +// -Wextra, so we don't need to worry about it. +static llvm::cl::list<std::string> +OptWarnings("W", llvm::cl::Prefix, llvm::cl::ValueOptional); + +static llvm::cl::opt<bool> OptPedantic("pedantic"); +static llvm::cl::opt<bool> OptPedanticErrors("pedantic-errors"); +static llvm::cl::opt<bool> OptNoWarnings("w"); + +//===----------------------------------------------------------------------===//  // -dump-build-information Stuff  //===----------------------------------------------------------------------===// @@ -2028,7 +2042,8 @@ int main(int argc, char **argv) {    // Configure our handling of diagnostics.    Diagnostic Diags(DiagClient.get()); -  if (ProcessWarningOptions(Diags)) +  if (ProcessWarningOptions(Diags, OptWarnings, OptPedantic, OptPedanticErrors, +                            OptNoWarnings))      return 1;    // -I- is a deprecated GCC feature, scan for it and reject it. | 

