summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2011-04-07 18:11:14 +0000
committerDaniel Dunbar <daniel@zuster.org>2011-04-07 18:11:14 +0000
commit6b58486466dc34aec37211713483d3dc6c7f99d5 (patch)
tree2705f96f833aa255ffe5a78caa5af103bd0ccde4
parent2f8165b685e7abd2c0788e5792802a56ddaf13ad (diff)
downloadbcm5719-llvm-6b58486466dc34aec37211713483d3dc6c7f99d5.tar.gz
bcm5719-llvm-6b58486466dc34aec37211713483d3dc6c7f99d5.zip
Frontend: Sketch support for -diagnostic-log-file, which still doesn't do anything.
llvm-svn: 129086
-rw-r--r--clang/include/clang/Basic/DiagnosticFrontendKinds.td2
-rw-r--r--clang/include/clang/Driver/CC1Options.td2
-rw-r--r--clang/include/clang/Frontend/DiagnosticOptions.h3
-rw-r--r--clang/lib/Frontend/CompilerInvocation.cpp5
4 files changed, 11 insertions, 1 deletions
diff --git a/clang/include/clang/Basic/DiagnosticFrontendKinds.td b/clang/include/clang/Basic/DiagnosticFrontendKinds.td
index 6ad9529c5f1..d93502c7747 100644
--- a/clang/include/clang/Basic/DiagnosticFrontendKinds.td
+++ b/clang/include/clang/Basic/DiagnosticFrontendKinds.td
@@ -79,7 +79,7 @@ def warn_fe_macro_contains_embedded_newline : Warning<
"macro '%0' contains embedded newline, text after the newline is ignored.">;
def warn_fe_cc_print_header_failure : Warning<
"unable to open CC_PRINT_HEADERS file: %0 (using stderr)">;
-def warn_fe_cc_log_diagnositcs_failure : Warning<
+def warn_fe_cc_log_diagnostics_failure : Warning<
"unable to open CC_LOG_DIAGNOSTICS file: %0 (using stderr)">;
def err_verify_missing_start : Error<
diff --git a/clang/include/clang/Driver/CC1Options.td b/clang/include/clang/Driver/CC1Options.td
index 7c1a9f071e5..f2aba0dfcb5 100644
--- a/clang/include/clang/Driver/CC1Options.td
+++ b/clang/include/clang/Driver/CC1Options.td
@@ -201,6 +201,8 @@ def MP : Flag<"-MP">,
def dump_build_information : Separate<"-dump-build-information">,
MetaVarName<"<filename>">,
HelpText<"output a dump of some build information to a file">;
+def diagnostic_log_file : Separate<"-diagnostic-log-file">,
+ HelpText<"Filename (or -) to log diagnostics to">;
def fno_show_column : Flag<"-fno-show-column">,
HelpText<"Do not include column number on diagnostics">;
def fno_show_source_location : Flag<"-fno-show-source-location">,
diff --git a/clang/include/clang/Frontend/DiagnosticOptions.h b/clang/include/clang/Frontend/DiagnosticOptions.h
index 4e46b4fbf02..2193591368f 100644
--- a/clang/include/clang/Frontend/DiagnosticOptions.h
+++ b/clang/include/clang/Frontend/DiagnosticOptions.h
@@ -61,6 +61,9 @@ public:
/// testing and analysis.
std::string DumpBuildInformation;
+ /// The file to log diagnostic output to.
+ std::string DiagnosticLogFile;
+
/// The list of -W... options used to alter the diagnostic mappings, with the
/// prefixes removed.
std::vector<std::string> Warnings;
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp
index 4fc8b5bdf76..df876d80c77 100644
--- a/clang/lib/Frontend/CompilerInvocation.cpp
+++ b/clang/lib/Frontend/CompilerInvocation.cpp
@@ -273,6 +273,10 @@ static void DiagnosticOptsToArgs(const DiagnosticOptions &Opts,
Res.push_back("-ferror-limit");
Res.push_back(llvm::utostr(Opts.ErrorLimit));
}
+ if (!Opts.DiagnosticLogFile.empty()) {
+ Res.push_back("-diagnostic-log-file");
+ Res.push_back(Opts.DiagnosticLogFile);
+ }
if (Opts.MacroBacktraceLimit
!= DiagnosticOptions::DefaultMacroBacktraceLimit) {
Res.push_back("-fmacro-backtrace-limit");
@@ -981,6 +985,7 @@ static void ParseDependencyOutputArgs(DependencyOutputOptions &Opts,
static void ParseDiagnosticArgs(DiagnosticOptions &Opts, ArgList &Args,
Diagnostic &Diags) {
using namespace cc1options;
+ Opts.DiagnosticLogFile = Args.getLastArgValue(OPT_diagnostic_log_file);
Opts.IgnoreWarnings = Args.hasArg(OPT_w);
Opts.NoRewriteMacros = Args.hasArg(OPT_Wno_rewrite_macros);
Opts.Pedantic = Args.hasArg(OPT_pedantic);
OpenPOWER on IntegriCloud