]> granicus.if.org Git - clang/commit
Limit the template instantiation depth to some user-configurable value
authorDouglas Gregor <dgregor@apple.com>
Tue, 10 Mar 2009 00:06:19 +0000 (00:06 +0000)
committerDouglas Gregor <dgregor@apple.com>
Tue, 10 Mar 2009 00:06:19 +0000 (00:06 +0000)
commit26dce44534602660ea9f4152bffc5436fc5fe3b2
tree96930b1ee0febd8c91ad96a06bee73fdc67392e7
parent42745815fa4e90bfb07e581d2e5152b2c2db08ff
Limit the template instantiation depth to some user-configurable value
(default: 99). Beyond this limit, produce an error and consider the
current template instantiation a failure.

The stack we're building to track the instantiations will, eventually,
be used to produce instantiation backtraces from diagnostics within
template instantiation. However, we're not quite there yet.

This adds a new Clang driver option -ftemplate-depth=NNN, which should
eventually be generated from the GCC command-line operation
-ftemplate-depth-NNN (note the '-' rather than the '='!). I did not
make the driver changes to do this mapping.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66513 91177308-0d34-0410-b5e6-96231b3b80d8
Driver/clang.cpp
include/clang/Basic/DiagnosticSemaKinds.def
include/clang/Basic/LangOptions.h
lib/Sema/Sema.h
lib/Sema/SemaDeclCXX.cpp
lib/Sema/SemaTemplateInstantiate.cpp
test/SemaTemplate/instantiation-depth.cpp [new file with mode: 0644]