diff options
Diffstat (limited to 'clang/lib/Frontend')
| -rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 5 | ||||
| -rw-r--r-- | clang/lib/Frontend/Warnings.cpp | 4 | 
2 files changed, 9 insertions, 0 deletions
| diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index dc2c6bf3614..b9afcb5cfa6 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -232,6 +232,10 @@ static void DiagnosticOptsToArgs(const DiagnosticOptions &Opts,      Res.push_back("-fdiagnostics-binary");    if (Opts.ShowOptionNames)      Res.push_back("-fdiagnostics-show-option"); +  if (Opts.ErrorLimit) { +    Res.push_back("-ferror-limit"); +    Res.push_back(llvm::utostr(Opts.ErrorLimit)); +  }    if (Opts.TabStop != DiagnosticOptions::DefaultTabStop) {      Res.push_back("-ftabstop");      Res.push_back(llvm::utostr(Opts.TabStop)); @@ -830,6 +834,7 @@ static void ParseDiagnosticArgs(DiagnosticOptions &Opts, ArgList &Args,    Opts.ShowSourceRanges = Args.hasArg(OPT_fdiagnostics_print_source_range_info);    Opts.VerifyDiagnostics = Args.hasArg(OPT_verify);    Opts.BinaryOutput = Args.hasArg(OPT_fdiagnostics_binary); +  Opts.ErrorLimit = getLastArgIntValue(Args, OPT_ferror_limit, 0, Diags);    Opts.TabStop = getLastArgIntValue(Args, OPT_ftabstop,                                      DiagnosticOptions::DefaultTabStop, Diags);    if (Opts.TabStop == 0 || Opts.TabStop > DiagnosticOptions::MaxTabStop) { diff --git a/clang/lib/Frontend/Warnings.cpp b/clang/lib/Frontend/Warnings.cpp index ea9635e7984..39cda8783b4 100644 --- a/clang/lib/Frontend/Warnings.cpp +++ b/clang/lib/Frontend/Warnings.cpp @@ -35,6 +35,10 @@ void clang::ProcessWarningOptions(Diagnostic &Diags,                                    const DiagnosticOptions &Opts) {    Diags.setSuppressSystemWarnings(true);  // Default to -Wno-system-headers    Diags.setIgnoreAllWarnings(Opts.IgnoreWarnings); +   +  // Handle -ferror-limit +  if (Opts.ErrorLimit) +    Diags.setErrorLimit(Opts.ErrorLimit);    // If -pedantic or -pedantic-errors was specified, then we want to map all    // extension diagnostics onto WARNING or ERROR unless the user has futz'd | 

