]> granicus.if.org Git - clang/commitdiff
switch -Werror/-Wfatal-errors error conditions to use diagnostics instead
authorChris Lattner <sabre@nondot.org>
Wed, 23 Dec 2009 18:53:37 +0000 (18:53 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 23 Dec 2009 18:53:37 +0000 (18:53 +0000)
of printf, patch by Christian Adaker!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92019 91177308-0d34-0410-b5e6-96231b3b80d8

TODO.txt
include/clang/Basic/DiagnosticFrontendKinds.td
lib/Frontend/Warnings.cpp

index 067f07b9d323c779aea6126fa944a88e81e1093a..c63b1b33d6d6d3da2139d01ffcd142b8695954db 100644 (file)
--- a/TODO.txt
+++ b/TODO.txt
@@ -69,7 +69,6 @@ More ideas for code modification hints:
 //===---------------------------------------------------------------------===//
 
 Options to support:
-   -Wfatal-errors
    -ftabstop=width
    -fpreprocessed mode.
    -nostdinc++
index 252900d18b3fbdf4adc6c80121d493d0061d90d7..66a841a8afae722ef49ee9c6635216290ac1fe49 100644 (file)
@@ -219,4 +219,7 @@ def err_not_a_pch_file : Error<
 def warn_unknown_warning_option : Warning<
     "unknown warning option '%0'">,
     InGroup<DiagGroup<"unknown-warning-option"> >;
+def warn_unknown_warning_specifier : Warning<
+    "unknown %0 warning specifier: '%1'">,
+    InGroup<DiagGroup<"unknown-warning-option"> >;
 }
index 4d12bcf7e0f98ade59995f8a6738cebbd1975755..4bf507d48dca550300a6bee8c20709cac86d63ef 100644 (file)
 //
 // This file is responsible for handling all warning options. This includes
 // a number of -Wfoo options and their variants, which are driven by TableGen-
-// generated data, and the special cases -pedantic, -pedantic-errors, -w and
-// -Werror.
+// generated data, and the special cases -pedantic, -pedantic-errors, -w,
+// -Werror and -Wfatal-errors.
 //
 // Each warning option controls any number of actual warnings.
 // Given a warning option 'foo', the following are valid:
-//    -Wfoo, -Wno-foo, -Werror=foo
+//    -Wfoo, -Wno-foo, -Werror=foo, -Wfatal-errors=foo
 //
 #include "clang/Frontend/Utils.h"
 #include "clang/Basic/Diagnostic.h"
@@ -26,7 +26,6 @@
 #include "clang/Lex/LexDiagnostic.h"
 #include "clang/Frontend/DiagnosticOptions.h"
 #include "clang/Frontend/FrontendDiagnostic.h"
-#include <cstdio>
 #include <cstring>
 #include <utility>
 #include <algorithm>
@@ -79,8 +78,8 @@ bool clang::ProcessWarningOptions(Diagnostic &Diags,
       if (OptEnd-OptStart != 5) {  // Specifier must be present.
         if ((OptStart[5] != '=' && OptStart[5] != '-') ||
             OptEnd-OptStart == 6) {
-          fprintf(stderr, "warning: unknown -Werror warning specifier: -W%s\n",
-                  Opt.c_str());
+          Diags.Report(diag::warn_unknown_warning_specifier)
+            << "-Werror" << ("-W" + Opt);
           continue;
         }
         Specifier = OptStart+6;
@@ -102,9 +101,8 @@ bool clang::ProcessWarningOptions(Diagnostic &Diags,
       if (OptEnd-OptStart != 12) {
         if ((OptStart[12] != '=' && OptStart[12] != '-') ||
             OptEnd-OptStart == 13) {
-          fprintf(stderr,
-                  "warning: unknown -Wfatal-errors warning specifier: -W%s\n",
-                  Opt.c_str());
+          Diags.Report(diag::warn_unknown_warning_specifier)
+            << "-Wfatal-errors" << ("-W" + Opt);
           continue;
         }
         Specifier = OptStart + 13;