llvm-project/clang/lib/Sema
John McCall 2408e32096 Make the InjectedClassNameType the canonical type of the current instantiation
of a class template or class template partial specialization.  That is to
say, in
  template <class T> class A { ... };
or
  template <class T> class B<const T*> { ... };
make 'A<T>' and 'B<const T*>' sugar for the corresponding InjectedClassNameType
when written inside the appropriate context.  This allows us to track the
current instantiation appropriately even inside AST routines.  It also allows
us to compute a DeclContext for a type much more efficiently, at some extra
cost every time we write a template specialization (which can be optimized,
but I've left it simple in this patch).

llvm-svn: 102407
2010-04-27 00:57:59 +00:00
..
AnalysisBasedWarnings.cpp If a non-noreturn virtual member function is guaranteed not to return, 2010-04-16 23:28:44 +00:00
AnalysisBasedWarnings.h Remove micro-optimization for not issueing CFG-based warnings for 'static inline' functions 2010-04-08 18:51:44 +00:00
CMakeLists.txt Refactor CFG-based warnings in Sema to be run by a worked object called AnalysisBasedWarnings. 2010-03-20 21:06:02 +00:00
CXXFieldCollector.h ActOnTagDefinitionError is supposed to 'unwind' ActOnTagStartDefinition, not 2010-03-17 19:25:57 +00:00
CodeCompleteConsumer.cpp Add raw_ostream operators to NamedDecl for convenience. Switch over all users of getNameAsString on a stream. 2010-04-17 09:33:03 +00:00
IdentifierResolver.cpp Optimize the implementation of IdDeclInfo pooling in the IdentifierResolver. 2010-02-15 19:38:00 +00:00
IdentifierResolver.h Eliminate dead code. 2010-01-02 21:44:36 +00:00
JumpDiagnostics.cpp Improve the AST representation of Objective-C @try/@catch/@finally 2010-04-23 22:50:49 +00:00
Lookup.h Recommit r102215, this time being more careful to only set the "principal 2010-04-24 01:30:58 +00:00
Makefile Allow users to set CPPFLAGS and CXXFLAGS on the make command line. 2010-03-12 22:55:16 +00:00
ParseAST.cpp push some source location information down through the compiler, 2010-04-20 20:35:58 +00:00
Sema.cpp Add base paths to CK_UncheckedDerivedToBase and CK_DerivedToBaseMemberPointer. 2010-04-24 19:22:20 +00:00
Sema.h Make the InjectedClassNameType the canonical type of the current instantiation 2010-04-27 00:57:59 +00:00
SemaAccess.cpp Add another 'catch all' access diagnostic. 2010-04-23 03:41:35 +00:00
SemaAttr.cpp Rip out the last remaining implicit use of OverloadedFunctionDecl in Sema: 2009-12-02 08:25:40 +00:00
SemaCXXCast.cpp Add base paths for CK_BaseToDerived and CK_BaseToDerivedMemberPointer. 2010-04-24 19:36:51 +00:00
SemaCXXScopeSpec.cpp Make the InjectedClassNameType the canonical type of the current instantiation 2010-04-27 00:57:59 +00:00
SemaChecking.cpp Actually produce base paths for CastExprs of kind CK_DerivedToBase. 2010-04-24 19:06:50 +00:00
SemaCodeComplete.cpp Recommit my change to how C++ does elaborated type lookups, now with 2010-04-23 18:46:30 +00:00
SemaDecl.cpp Diagnose declaration of reference typed ivars. 2010-04-26 22:07:03 +00:00
SemaDeclAttr.cpp Keep track of the actual storage specifier written on a variable or 2010-04-19 22:54:31 +00:00
SemaDeclCXX.cpp Revert enough of my patches to fix self-host again :( 2010-04-25 00:52:09 +00:00
SemaDeclObjC.cpp Implement template instantiation for Objective-C @catch 2010-04-26 17:57:08 +00:00
SemaExceptionSpec.cpp Reinstate my CodeModificationHint -> FixItHint renaming patch, without 2010-03-31 17:46:05 +00:00
SemaExpr.cpp When name lookup finds a single declaration that was imported via a 2010-04-25 21:15:30 +00:00
SemaExprCXX.cpp Improve source-location information in a C++ typeid (type) expression 2010-04-26 22:37:10 +00:00
SemaExprObjC.cpp With -fno-constant-cfstrrings, class NSConstantString 2010-04-23 23:19:04 +00:00
SemaInit.cpp Introduce Type::isStructureOrClassType(), which does the obvious 2010-04-26 21:31:17 +00:00
SemaInit.h Whenever we complain about a failed initialization of a function or 2010-04-22 00:20:18 +00:00
SemaLookup.cpp When name lookup finds a single declaration that was imported via a 2010-04-25 21:15:30 +00:00
SemaObjCProperty.cpp Improve on source location of diagnostic when default 2010-04-21 18:57:20 +00:00
SemaOverload.cpp When copying a temporary object to initialize an entity for which the 2010-04-25 00:55:24 +00:00
SemaOverload.h Improve our handling of user-defined conversions as part of overload 2010-04-17 22:01:05 +00:00
SemaStmt.cpp Refactor Objective-C @catch parameter checking by detangling it from 2010-04-26 17:32:49 +00:00
SemaTemplate.cpp Make the InjectedClassNameType the canonical type of the current instantiation 2010-04-27 00:57:59 +00:00
SemaTemplate.h After performing template argument deduction for a function template, 2010-03-28 02:42:43 +00:00
SemaTemplateDeduction.cpp Make the InjectedClassNameType the canonical type of the current instantiation 2010-04-27 00:57:59 +00:00
SemaTemplateInstantiate.cpp Implement template instantiation for Objective-C @catch 2010-04-26 17:57:08 +00:00
SemaTemplateInstantiateDecl.cpp Make the InjectedClassNameType the canonical type of the current instantiation 2010-04-27 00:57:59 +00:00
SemaType.cpp Implement template instantiation for Objective-C++ message sends. We 2010-04-22 16:44:27 +00:00
TargetAttributesSema.cpp Don't emit a warning about a dllimport attribute being used in a typedef 2010-02-21 05:12:56 +00:00
TargetAttributesSema.h Generalize target weirdness handling having proper layering in mind: 2010-01-10 12:58:08 +00:00
TreeTransform.h Improve source-location information in a C++ typeid (type) expression 2010-04-26 22:37:10 +00:00