llvm-project/clang/lib/Sema
Douglas Gregor ad3f2fcf43 Improved semantic analysis and AST respresentation for function
templates.

For example, this now type-checks (but does not instantiate the body
of deref<int>):

  template<typename T> T& deref(T* t) { return *t; }

  void test(int *ip) {
    int &ir = deref(ip);
  }

Specific changes/additions:
  * Template argument deduction from a call to a function template.
  * Instantiation of a function template specializations (just the
  declarations) from the template arguments deduced from a call.
  * FunctionTemplateDecls are stored directly in declaration contexts
  and found via name lookup (all forms), rather than finding the
  FunctionDecl and then realizing it is a template. This is
  responsible for most of the churn, since some of the core
  declaration matching and lookup code assumes that all functions are
  FunctionDecls.

llvm-svn: 74213
2009-06-25 22:08:12 +00:00
..
CMakeLists.txt When performing template argument deduction, ensure that multiple 2009-06-04 00:03:07 +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 Lazy deserialization of the declaration chains associated with 2009-04-21 22:25:48 +00:00
IdentifierResolver.h Lazy deserialization of the declaration chains associated with 2009-04-21 22:25:48 +00:00
JumpDiagnostics.cpp Move the static DeclAttrs map into ASTContext. Fixes <rdar://problem/6983177>. 2009-06-18 16:11:24 +00:00
Makefile Build system changes to use TableGen to generate the various 2009-03-16 23:06:59 +00:00
ParseAST.cpp Lazy deserialization of the declaration chains associated with 2009-04-21 22:25:48 +00:00
Sema.cpp Implement implicit instantiation of the member functions of a class template 2009-06-22 23:06:13 +00:00
Sema.h Improved semantic analysis and AST respresentation for function 2009-06-25 22:08:12 +00:00
SemaAccess.cpp Add a new, more advanced CheckDerivedToBaseConversion that takes custom diagnostic IDs. 2009-05-13 21:11:42 +00:00
SemaAttr.cpp Move the static DeclAttrs map into ASTContext. Fixes <rdar://problem/6983177>. 2009-06-18 16:11:24 +00:00
SemaCXXScopeSpec.cpp Factor out some common code into Sema::EnterDeclaratorContext/ExitDeclaratorContext. 2009-06-17 23:15:40 +00:00
SemaChecking.cpp Move the static DeclAttrs map into ASTContext. Fixes <rdar://problem/6983177>. 2009-06-18 16:11:24 +00:00
SemaDecl.cpp Improved semantic analysis and AST respresentation for function 2009-06-25 22:08:12 +00:00
SemaDeclAttr.cpp Move the static DeclAttrs map into ASTContext. Fixes <rdar://problem/6983177>. 2009-06-18 16:11:24 +00:00
SemaDeclCXX.cpp Improved semantic analysis and AST respresentation for function 2009-06-25 22:08:12 +00:00
SemaDeclObjC.cpp Support dependent extended vector types and template instantiation 2009-06-17 21:51:59 +00:00
SemaExpr.cpp Improved semantic analysis and AST respresentation for function 2009-06-25 22:08:12 +00:00
SemaExprCXX.cpp Eliminate DeclPtrTy() arguments to ActOnDeclarator that are just a very, very weird way to pass "false". No functionality change 2009-06-23 21:43:56 +00:00
SemaExprObjC.cpp First step toward fixing <rdar://problem/6613046> refactor clang objc type representation. 2009-06-17 22:40:22 +00:00
SemaInherit.cpp Fix PR4365. 2009-06-12 18:53:02 +00:00
SemaInherit.h Add a member lookup criteria constructor for searching for overridden virtual member functions. Use this instead of regular name lookup when checking for overriding functions so we will see declarations that would otherwise be hidden. Fixes 6902298. 2009-05-30 00:52:53 +00:00
SemaInit.cpp Allow initializing a vector with a vector in addition to allowing a list 2009-06-13 10:38:46 +00:00
SemaLookup.cpp Improved semantic analysis and AST respresentation for function 2009-06-25 22:08:12 +00:00
SemaNamedCast.cpp Reflow some comments. 2009-05-16 07:39:55 +00:00
SemaOverload.cpp Improved semantic analysis and AST respresentation for function 2009-06-25 22:08:12 +00:00
SemaOverload.h Fix a crash bug when comparing overload quality of conversion operators with conversion constructors. 2009-04-16 17:51:27 +00:00
SemaStmt.cpp Support for [class.local]p4. 2009-06-24 00:28:53 +00:00
SemaTemplate.cpp Improved semantic analysis and AST respresentation for function 2009-06-25 22:08:12 +00:00
SemaTemplateDeduction.cpp Improved semantic analysis and AST respresentation for function 2009-06-25 22:08:12 +00:00
SemaTemplateInstantiate.cpp Add a DecltypeType type. 2009-06-24 19:06:50 +00:00
SemaTemplateInstantiateDecl.cpp Improved semantic analysis and AST respresentation for function 2009-06-25 22:08:12 +00:00
SemaTemplateInstantiateExpr.cpp Improved semantic analysis and AST respresentation for function 2009-06-25 22:08:12 +00:00
SemaTemplateInstantiateStmt.cpp Rework the way we track which declarations are "used" during 2009-06-22 20:57:11 +00:00
SemaType.cpp C++ decltype support (N2343) 2009-06-24 21:24:56 +00:00