http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44783
--- Comment #6 from Manuel López-Ibáñez <manu at gcc dot gnu.org> 2012-02-13 17:09:50 UTC --- Any of you has a minimal self-contained testcase? The ones I used when implementing this, no longer need this option. Thanks. This is my totally untested but compiles patch. Probably it needs some tuning. Index: gcc/c-family/c.opt =================================================================== --- gcc/c-family/c.opt (revision 184150) +++ gcc/c-family/c.opt (working copy) @@ -1033,10 +1033,14 @@ C++ ObjC++ Ignore Warn(switch %qs is no ftabstop= C ObjC C++ ObjC++ Joined RejectNegative UInteger -ftabstop=<number> Distance between tab stops for column reporting +ftemplate-backtrace-limit= +C++ ObjC++ Joined RejectNegative UInteger Var(template_backtrace_limit) Init(10) +Specify number of template instantiations notes for a single warning or error + ftemplate-depth- C++ ObjC++ Joined RejectNegative Undocumented Alias(ftemplate-depth=) ftemplate-depth= C++ ObjC++ Joined RejectNegative UInteger Index: gcc/cp/error.c =================================================================== --- gcc/cp/error.c (revision 184150) +++ gcc/cp/error.c (working copy) @@ -3072,14 +3072,15 @@ print_instantiation_partial_context (dia n_total++; } t = t0; - if (n_total >= 12) + if (template_backtrace_limit && + n_total > template_backtrace_limit) { - int skip = n_total - 10; - for (n = 0; n < 5; n++) + int skip = n_total - template_backtrace_limit; + for (n = 0; n < template_backtrace_limit/2; n++) { gcc_assert (t != NULL); if (loc != t->locus) print_instantiation_partial_context_line (context, t, loc, /*recursive_p=*/false);