clang-1/lib/Sema
Douglas Gregor 26dce44534 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
2009-03-10 00:06:19 +00:00
..
CMakeLists.txt Implement the basic approach for instantiating types, with a lot of FIXME'd 2009-02-27 19:31:52 +00:00
CXXFieldCollector.h Unifies the name-lookup mechanisms used in various parts of the AST 2008-12-11 16:49:14 +00:00
IdentifierResolver.cpp Switch attributes to be allocated from the declcontext bump pointer just like 2009-03-04 06:34:08 +00:00
IdentifierResolver.h Rework the way we find locally-scoped external declarations when we 2009-03-02 00:19:53 +00:00
Makefile rename libclangSEMA to libclangSema 2008-09-07 17:09:06 +00:00
ParseAST.cpp Patch by Alexei Svitkine: Refactor Sema::ParseAST API to allow clients to pass as an argument a TranslationUnit object whose contents live beyond the call to ParseAST. 2009-01-28 04:29:29 +00:00
Sema.cpp Fix <rdar://problem/6451399> problems with labels and blocks. 2009-02-28 16:48:43 +00:00
Sema.h Limit the template instantiation depth to some user-configurable value 2009-03-10 00:06:19 +00:00
SemaAttr.cpp Handle #pragma pack(0). I left this out of diagnostic because users should 2009-03-06 20:45:54 +00:00
SemaCXXScopeSpec.cpp Implement parsing of nested-name-specifiers that involve template-ids, e.g., 2009-02-25 19:37:18 +00:00
SemaChecking.cpp When checking printf-arguments for functions with '__attribute__ ((format (printf, X, Y)))' 2009-02-27 17:58:43 +00:00
SemaDecl.cpp Rename DiagnoseIncompleteType to RequireCompleteType, and update the documentation to reflect the fact that we can instantiate templates here 2009-03-09 16:13:40 +00:00
SemaDeclAttr.cpp Add Parse/Sema support for weak_import attribute. 2009-03-06 06:39:57 +00:00
SemaDeclCXX.cpp Limit the template instantiation depth to some user-configurable value 2009-03-10 00:06:19 +00:00
SemaDeclObjC.cpp Revert my last couple patches until I can get them to not make the tests fail. 2009-03-07 01:47:10 +00:00
SemaExpr.cpp Implement property '.' notation on Factory/Class objects. Parser changes aren't very pretty:-( 2009-03-09 21:12:44 +00:00
SemaExprCXX.cpp Rename DiagnoseIncompleteType to RequireCompleteType, and update the documentation to reflect the fact that we can instantiate templates here 2009-03-09 16:13:40 +00:00
SemaExprObjC.cpp Fix PR3766, a really nasty silent miscompilation case where we emitted 2009-03-09 21:19:16 +00:00
SemaInherit.cpp Eliminate CXXRecordType 2009-02-28 01:32:25 +00:00
SemaInherit.h Eliminate CXXRecordType 2009-02-28 01:32:25 +00:00
SemaInit.cpp Fix PR3509 by providing correct starting locations for initializer lists 2009-03-01 17:12:46 +00:00
SemaLookup.cpp Eliminate CXXRecordType 2009-02-28 01:32:25 +00:00
SemaNamedCast.cpp Rename DiagnoseIncompleteType to RequireCompleteType, and update the documentation to reflect the fact that we can instantiate templates here 2009-03-09 16:13:40 +00:00
SemaOverload.cpp Eliminate CXXRecordType 2009-02-28 01:32:25 +00:00
SemaOverload.h Introduce _Complex conversions into the function overloading 2009-02-12 00:15:05 +00:00
SemaStmt.cpp Change Parser::ParseCaseStatement to use an iterative approach to parsing 2009-03-04 04:23:07 +00:00
SemaTemplate.cpp Implement template instantiation for ClassTemplateSpecializationTypes, 2009-03-09 23:48:35 +00:00
SemaTemplateInstantiate.cpp Limit the template instantiation depth to some user-configurable value 2009-03-10 00:06:19 +00:00
SemaType.cpp Rename DiagnoseIncompleteType to RequireCompleteType, and update the documentation to reflect the fact that we can instantiate templates here 2009-03-09 16:13:40 +00:00