diff options
-rw-r--r-- | docs/UsersManual.html | 4 | ||||
-rw-r--r-- | include/clang/Driver/Options.td | 1 | ||||
-rw-r--r-- | lib/Driver/Tools.cpp | 6 |
3 files changed, 11 insertions, 0 deletions
diff --git a/docs/UsersManual.html b/docs/UsersManual.html index e7ea133ce9..f6651b1678 100644 --- a/docs/UsersManual.html +++ b/docs/UsersManual.html @@ -189,6 +189,10 @@ introduces the language selection and other high level options like -c, -g, etc. <p><b>-pedantic-errors</b>: Error on language extensions.</p> <p><b>-Wsystem-headers</b>: Enable warnings from system headers.</p> +<p><b>-ferror-limit=123</b>: Stop emitting diagnostics after 123 errors have + been produced. The default is 20, and the error limit can be disabled with + -ferror-limit=0.</p> + <!-- ================================================= --> <h4 id="cl_diag_formatting">Formatting of Diagnostics</h4> <!-- ================================================= --> diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td index ed68d68dd6..dd4586e619 100644 --- a/include/clang/Driver/Options.td +++ b/include/clang/Driver/Options.td @@ -356,6 +356,7 @@ def fstack_protector : Flag<"-fstack-protector">, Group<f_Group>; def fstrict_aliasing : Flag<"-fstrict-aliasing">, Group<clang_ignored_f_Group>; def fsyntax_only : Flag<"-fsyntax-only">, Flags<[DriverOption]>; def ftabstop_EQ : Joined<"-ftabstop=">, Group<f_Group>; +def ferror_limit_EQ : Joined<"-ferror-limit=">, Group<f_Group>; def ftemplate_depth_ : Joined<"-ftemplate-depth-">, Group<f_Group>; def fterminated_vtables : Flag<"-fterminated-vtables">, Group<f_Group>; def fthreadsafe_statics : Flag<"-fthreadsafe-statics">, Group<f_Group>; diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 2a3799152a..cd38c4d9fd 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -1073,6 +1073,12 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back(A->getValue(Args)); } + CmdArgs.push_back("-ferror-limit"); + if (Arg *A = Args.getLastArg(options::OPT_ferror_limit_EQ)) + CmdArgs.push_back(A->getValue(Args)); + else + CmdArgs.push_back("19"); + // Pass -fmessage-length=. CmdArgs.push_back("-fmessage-length"); if (Arg *A = Args.getLastArg(options::OPT_fmessage_length_EQ)) { |