switch -Werror/-Wfatal-errors error conditions to use diagnostics instead

of printf, patch by Christian Adaker!

llvm-svn: 92019
This commit is contained in:
Chris Lattner 2009-12-23 18:53:37 +00:00
parent 38b9ad88e2
commit b089c1de55
3 changed files with 10 additions and 10 deletions

View File

@ -69,7 +69,6 @@ More ideas for code modification hints:
//===---------------------------------------------------------------------===//
Options to support:
-Wfatal-errors
-ftabstop=width
-fpreprocessed mode.
-nostdinc++

View 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"> >;
}

View File

@ -13,12 +13,12 @@
//
// 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;