aboutsummaryrefslogtreecommitdiff
path: root/lib/Frontend/Warnings.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-04-20 07:18:24 +0000
committerDouglas Gregor <dgregor@apple.com>2010-04-20 07:18:24 +0000
commit575cf3791216c33770ba950430493cdd43099f8f (patch)
tree7daf7c81b0f30f5b5ba975d6a94f89a5dfe13d14 /lib/Frontend/Warnings.cpp
parent40ab43b29bff9a240e5281e5952f59ddee623fca (diff)
Introduce a limit on the depth of the template instantiation backtrace
we will print with each error that occurs during template instantiation. When the backtrace is longer than that, we will print N/2 of the innermost backtrace entries and N/2 of the outermost backtrace entries, then skip the middle entries with a note such as: note: suppressed 2 template instantiation contexts; use -ftemplate-backtrace-limit=N to change the number of template instantiation entries shown This should eliminate some excessively long backtraces that aren't providing any value. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101882 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Frontend/Warnings.cpp')
-rw-r--r--lib/Frontend/Warnings.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/Frontend/Warnings.cpp b/lib/Frontend/Warnings.cpp
index 39cda8783b..84c4f5d40f 100644
--- a/lib/Frontend/Warnings.cpp
+++ b/lib/Frontend/Warnings.cpp
@@ -39,6 +39,8 @@ void clang::ProcessWarningOptions(Diagnostic &Diags,
// Handle -ferror-limit
if (Opts.ErrorLimit)
Diags.setErrorLimit(Opts.ErrorLimit);
+ if (Opts.TemplateBacktraceLimit)
+ Diags.setTemplateBacktraceLimit(Opts.TemplateBacktraceLimit);
// 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