diff options
| author | Douglas Gregor <dgregor@apple.com> | 2010-04-20 07:18:24 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2010-04-20 07:18:24 +0000 |
| commit | ffed1cb339106c7bc04337aec61bf5da9ecfc742 (patch) | |
| tree | d3bfaf12596740eace062bbbcf7a7e0fe20b1ae3 /clang/lib/Driver | |
| parent | 5debc3316841966d66bda90106560ffc09d2757c (diff) | |
| download | bcm5719-llvm-ffed1cb339106c7bc04337aec61bf5da9ecfc742.tar.gz bcm5719-llvm-ffed1cb339106c7bc04337aec61bf5da9ecfc742.zip | |
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.
llvm-svn: 101882
Diffstat (limited to 'clang/lib/Driver')
| -rw-r--r-- | clang/lib/Driver/Tools.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index d9df471714a..4653551a469 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -1079,6 +1079,12 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back(A->getValue(Args)); else CmdArgs.push_back("19"); + + CmdArgs.push_back("-ftemplate-backtrace-limit"); + if (Arg *A = Args.getLastArg(options::OPT_ftemplate_backtrace_limit_EQ)) + CmdArgs.push_back(A->getValue(Args)); + else + CmdArgs.push_back("10"); // Pass -fmessage-length=. CmdArgs.push_back("-fmessage-length"); |

