Implement support for -w, which silences all warnings. PR2384.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51683 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Driver/clang.cpp b/Driver/clang.cpp
index 21f1eb4..714b03e 100644
--- a/Driver/clang.cpp
+++ b/Driver/clang.cpp
@@ -462,6 +462,9 @@
 WarningsAsErrors("Werror", llvm::cl::desc("Treat all warnings as errors"));
 
 static llvm::cl::opt<bool>
+SilenceWarnings("w", llvm::cl::desc("Do not emit any warnings"));
+
+static llvm::cl::opt<bool>
 WarnOnExtensions("pedantic", llvm::cl::init(false),
                  llvm::cl::desc("Issue a warning on uses of GCC extensions"));
 
@@ -492,6 +495,7 @@
 /// InitializeDiagnostics - Initialize the diagnostic object, based on the
 /// current command line option settings.
 static void InitializeDiagnostics(Diagnostic &Diags) {
+  Diags.setIgnoreAllWarnings(SilenceWarnings);
   Diags.setWarningsAsErrors(WarningsAsErrors);
   Diags.setWarnOnExtensions(WarnOnExtensions);
   Diags.setErrorOnExtensions(ErrorOnExtensions);