clang API Documentation
#include "clang/Sema/SemaInternal.h"#include "clang/Sema/Lookup.h"#include "clang/Sema/Scope.h"#include "clang/Sema/Template.h"#include "clang/Sema/TemplateDeduction.h"#include "TreeTransform.h"#include "clang/AST/ASTContext.h"#include "clang/AST/Expr.h"#include "clang/AST/ExprCXX.h"#include "clang/AST/DeclFriend.h"#include "clang/AST/DeclTemplate.h"#include "clang/AST/RecursiveASTVisitor.h"#include "clang/AST/TypeVisitor.h"#include "clang/Sema/DeclSpec.h"#include "clang/Sema/ParsedTemplate.h"#include "clang/Basic/LangOptions.h"#include "clang/Basic/PartialDiagnostic.h"#include "llvm/ADT/SmallBitVector.h"#include "llvm/ADT/SmallString.h"#include "llvm/ADT/StringExtras.h"#include "clang/AST/TypeNodes.def"
Go to the source code of this file.
Defines | |
| #define | TYPE(Class, Parent) bool Visit##Class##Type(const Class##Type *); |
| #define | ABSTRACT_TYPE(Class, Parent) bool Visit##Class##Type(const Class##Type *) { return false; } |
| #define | NON_CANONICAL_TYPE(Class, Parent) bool Visit##Class##Type(const Class##Type *) { return false; } |
Functions | |
| static NamedDecl * | isAcceptableTemplateName (ASTContext &Context, NamedDecl *Orig) |
| Determine whether the declaration found is acceptable as the name of a template and, if so, return that template declaration. Otherwise, returns NULL. | |
| static TemplateArgumentLoc | translateTemplateArgument (Sema &SemaRef, const ParsedTemplateArgument &Arg) |
| static void | SetNestedNameSpecifier (TagDecl *T, const CXXScopeSpec &SS) |
| static bool | DiagnoseDefaultTemplateArgument (Sema &S, Sema::TemplateParamListContext TPC, SourceLocation ParamLoc, SourceRange DefArgRange) |
| Diagnose the presence of a default template argument on a template parameter, which is ill-formed in certain contexts. | |
| static bool | DiagnoseUnexpandedParameterPacks (Sema &S, TemplateTemplateParmDecl *TTP) |
| Check for unexpanded parameter packs within the template parameters of a template template parameter, recursively. | |
| static bool | DependsOnTemplateParameters (QualType T, TemplateParameterList *Params) |
| static SourceRange | getRangeOfTypeInNestedNameSpecifier (ASTContext &Context, QualType T, const CXXScopeSpec &SS) |
| static TypeSourceInfo * | SubstDefaultTemplateArgument (Sema &SemaRef, TemplateDecl *Template, SourceLocation TemplateLoc, SourceLocation RAngleLoc, TemplateTypeParmDecl *Param, SmallVectorImpl< TemplateArgument > &Converted) |
| Substitute template arguments into the default template argument for the given template type parameter. | |
| static ExprResult | SubstDefaultTemplateArgument (Sema &SemaRef, TemplateDecl *Template, SourceLocation TemplateLoc, SourceLocation RAngleLoc, NonTypeTemplateParmDecl *Param, SmallVectorImpl< TemplateArgument > &Converted) |
| Substitute template arguments into the default template argument for the given non-type template parameter. | |
| static TemplateName | SubstDefaultTemplateArgument (Sema &SemaRef, TemplateDecl *Template, SourceLocation TemplateLoc, SourceLocation RAngleLoc, TemplateTemplateParmDecl *Param, SmallVectorImpl< TemplateArgument > &Converted, NestedNameSpecifierLoc &QualifierLoc) |
| Substitute template arguments into the default template argument for the given template template parameter. | |
| static bool | diagnoseArityMismatch (Sema &S, TemplateDecl *Template, SourceLocation TemplateLoc, TemplateArgumentListInfo &TemplateArgs) |
| Diagnose an arity mismatch in the. | |
| static bool | CheckTemplateArgumentAddressOfObjectOrFunction (Sema &S, NonTypeTemplateParmDecl *Param, QualType ParamType, Expr *ArgIn, TemplateArgument &Converted) |
| Checks whether the given template argument is the address of an object or function according to C++ [temp.arg.nontype]p1. | |
| static bool | MatchTemplateParameterKind (Sema &S, NamedDecl *New, NamedDecl *Old, bool Complain, Sema::TemplateParameterListEqualKind Kind, SourceLocation TemplateArgLoc) |
| Match two template parameters within template parameter lists. | |
| static void | DiagnoseTemplateParameterListArityMismatch (Sema &S, TemplateParameterList *New, TemplateParameterList *Old, Sema::TemplateParameterListEqualKind Kind, SourceLocation TemplateArgLoc) |
| Diagnose a known arity mismatch when comparing template argument lists. | |
| static TemplateSpecializationKind | getTemplateSpecializationKind (Decl *D) |
| Determine what kind of template specialization the given declaration is. | |
| static bool | CheckTemplateSpecializationScope (Sema &S, NamedDecl *Specialized, NamedDecl *PrevDecl, SourceLocation Loc, bool IsPartialSpecialization) |
| Check whether a specialization is well-formed in the current context. | |
| static bool | CheckNonTypeClassTemplatePartialSpecializationArgs (Sema &S, NonTypeTemplateParmDecl *Param, const TemplateArgument *Args, unsigned NumArgs) |
| Subroutine of Sema::CheckClassTemplatePartialSpecializationArgs that checks non-type template partial specialization arguments. | |
| static bool | CheckClassTemplatePartialSpecializationArgs (Sema &S, TemplateParameterList *TemplateParams, SmallVectorImpl< TemplateArgument > &TemplateArgs) |
| Check the non-type template arguments of a class template partial specialization according to C++ [temp.class.spec]p9. | |
| static void | StripImplicitInstantiation (NamedDecl *D) |
| Strips various properties off an implicit instantiation that has just been explicitly specialized. | |
| static SourceLocation | DiagLocForExplicitInstantiation (NamedDecl *D, SourceLocation PointOfInstantiation) |
| Compute the diagnostic location for an explicit instantiation. | |
| static bool | CheckExplicitInstantiationScope (Sema &S, NamedDecl *D, SourceLocation InstLoc, bool WasQualifiedName) |
| Check the scope of an explicit instantiation. | |
| static bool | ScopeSpecifierHasTemplateId (const CXXScopeSpec &SS) |
| Determine whether the given scope specifier has a template-id in it. | |
| #define ABSTRACT_TYPE | ( | Class, | |
| Parent | |||
| ) | bool Visit##Class##Type(const Class##Type *) { return false; } |
Definition at line 3179 of file SemaTemplate.cpp.
| #define NON_CANONICAL_TYPE | ( | Class, | |
| Parent | |||
| ) | bool Visit##Class##Type(const Class##Type *) { return false; } |
Definition at line 3181 of file SemaTemplate.cpp.
Definition at line 3177 of file SemaTemplate.cpp.
| static bool CheckClassTemplatePartialSpecializationArgs | ( | Sema & | S, |
| TemplateParameterList * | TemplateParams, | ||
| SmallVectorImpl< TemplateArgument > & | TemplateArgs | ||
| ) | [static] |
Check the non-type template arguments of a class template partial specialization according to C++ [temp.class.spec]p9.
| TemplateParams | the template parameters of the primary class template. |
| TemplateArg | the template arguments of the class template partial specialization. |
Definition at line 4882 of file SemaTemplate.cpp.
References CheckNonTypeClassTemplatePartialSpecializationArgs(), clang::TemplateParameterList::getParam(), Param, and clang::TemplateParameterList::size().
Referenced by clang::Sema::ActOnClassTemplateSpecialization().
| static bool CheckExplicitInstantiationScope | ( | Sema & | S, |
| NamedDecl * | D, | ||
| SourceLocation | InstLoc, | ||
| bool | WasQualifiedName | ||
| ) | [static] |
Check the scope of an explicit instantiation.
Definition at line 5905 of file SemaTemplate.cpp.
References clang::Sema::CurContext, clang::Sema::Diag(), clang::DeclContext::Encloses(), clang::Decl::getDeclContext(), clang::DeclContext::getEnclosingNamespaceContext(), clang::Sema::getLangOptions(), clang::Decl::getLocation(), clang::DeclContext::getRedeclContext(), clang::DeclContext::InEnclosingNamespaceSetOf(), and clang::DeclContext::isRecord().
Referenced by clang::Sema::ActOnExplicitInstantiation().
| static bool CheckNonTypeClassTemplatePartialSpecializationArgs | ( | Sema & | S, |
| NonTypeTemplateParmDecl * | Param, | ||
| const TemplateArgument * | Args, | ||
| unsigned | NumArgs | ||
| ) | [static] |
Subroutine of Sema::CheckClassTemplatePartialSpecializationArgs that checks non-type template partial specialization arguments.
Definition at line 4803 of file SemaTemplate.cpp.
References clang::Sema::Diag(), clang::TemplateArgument::getAsExpr(), clang::Decl::getLocation(), clang::Stmt::getLocStart(), clang::Stmt::getSourceRange(), clang::ValueDecl::getType(), clang::Expr::isTypeDependent(), clang::Expr::isValueDependent(), NumArgs, and clang::TemplateArgument::Pack.
Referenced by CheckClassTemplatePartialSpecializationArgs().
| static bool CheckTemplateArgumentAddressOfObjectOrFunction | ( | Sema & | S, |
| NonTypeTemplateParmDecl * | Param, | ||
| QualType | ParamType, | ||
| Expr * | ArgIn, | ||
| TemplateArgument & | Converted | ||
| ) | [static] |
Checks whether the given template argument is the address of an object or function according to C++ [temp.arg.nontype]p1.
Definition at line 3441 of file SemaTemplate.cpp.
References Arg, clang::Sema::Context, clang::FixItHint::CreateInsertion(), clang::FixItHint::CreateRemoval(), clang::Sema::Diag(), clang::ASTContext::getArrayDecayedType(), clang::SourceRange::getBegin(), clang::Decl::getCanonicalDecl(), clang::QualType::getCVRQualifiers(), clang::DeclRefExpr::getDecl(), clang::Sema::getLangOptions(), clang::Decl::getLocation(), clang::Stmt::getLocStart(), clang::QualType::getNonReferenceType(), clang::ASTContext::getPointerType(), clang::Stmt::getSourceRange(), clang::Expr::getType(), clang::ASTContext::hasSameUnqualifiedType(), clang::Expr::IgnoreImpCasts(), clang::isExternalLinkage(), clang::Type::isFunctionType(), clang::Sema::IsQualificationConversion(), clang::Expr::isValueDependent(), clang::Sema::MarkAnyDeclReferenced(), and clang::UO_AddrOf.
Referenced by clang::Sema::CheckTemplateArgument().
| static bool CheckTemplateSpecializationScope | ( | Sema & | S, |
| NamedDecl * | Specialized, | ||
| NamedDecl * | PrevDecl, | ||
| SourceLocation | Loc, | ||
| bool | IsPartialSpecialization | ||
| ) | [static] |
Check whether a specialization is well-formed in the current context.
This routine determines whether a template specialization can be declared in the current context (C++ [temp.expl.spec]p2).
| S | the semantic analysis object for which this check is being performed. |
| Specialized | the entity being specialized or instantiated, which may be a kind of template (class template, function template, etc.) or a member of a class template (member function, static data member, member class). |
| PrevDecl | the previous declaration of this entity, if any. |
| Loc | the location of the explicit specialization or instantiation of this entity. |
| IsPartialSpecialization | whether this is a partial specialization of a class template. |
Definition at line 4661 of file SemaTemplate.cpp.
References clang::Sema::ActiveTemplateInstantiations, clang::Sema::CurContext, Diag(), clang::Sema::Diag(), clang::DeclContext::Encloses(), clang::DeclContext::Equals(), clang::Decl::getDeclContext(), clang::DeclContext::getEnclosingNamespaceContext(), clang::Sema::getLangOptions(), clang::Decl::getLocation(), clang::DeclContext::getRedeclContext(), getTemplateSpecializationKind(), clang::DeclContext::InEnclosingNamespaceSetOf(), clang::DeclContext::isFunctionOrMethod(), clang::DeclContext::isRecord(), clang::TSK_ImplicitInstantiation, and clang::TSK_Undeclared.
Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::CheckFunctionTemplateSpecialization(), and clang::Sema::CheckMemberSpecialization().
| static bool DependsOnTemplateParameters | ( | QualType | T, |
| TemplateParameterList * | Params | ||
| ) | [static] |
Determines whether a given type depends on the given parameter list.
Definition at line 1482 of file SemaTemplate.cpp.
Referenced by clang::Sema::MatchTemplateParametersToScopeSpecifier().
| static SourceLocation DiagLocForExplicitInstantiation | ( | NamedDecl * | D, |
| SourceLocation | PointOfInstantiation | ||
| ) | [static] |
Compute the diagnostic location for an explicit instantiation.
Definition at line 5357 of file SemaTemplate.cpp.
References clang::SourceLocation::isValid().
Referenced by clang::Sema::CheckSpecializationInstantiationRedecl().
| static bool diagnoseArityMismatch | ( | Sema & | S, |
| TemplateDecl * | Template, | ||
| SourceLocation | TemplateLoc, | ||
| TemplateArgumentListInfo & | TemplateArgs | ||
| ) | [static] |
Diagnose an arity mismatch in the.
Definition at line 2874 of file SemaTemplate.cpp.
References clang::Sema::Diag(), clang::Decl::getLocation(), clang::TemplateArgumentListInfo::getRAngleLoc(), clang::TemplateParameterList::getSourceRange(), clang::TemplateDecl::getTemplateParameters(), NumArgs, clang::TemplateParameterList::size(), and clang::TemplateArgumentListInfo::size().
Referenced by clang::Sema::CheckTemplateArgumentList().
| static bool DiagnoseDefaultTemplateArgument | ( | Sema & | S, |
| Sema::TemplateParamListContext | TPC, | ||
| SourceLocation | ParamLoc, | ||
| SourceRange | DefArgRange | ||
| ) | [static] |
Diagnose the presence of a default template argument on a template parameter, which is ill-formed in certain contexts.
Definition at line 1100 of file SemaTemplate.cpp.
References clang::Sema::Diag(), clang::Sema::getLangOptions(), clang::Sema::TPC_ClassTemplate, clang::Sema::TPC_ClassTemplateMember, clang::Sema::TPC_FriendFunctionTemplate, clang::Sema::TPC_FriendFunctionTemplateDefinition, clang::Sema::TPC_FunctionTemplate, and clang::Sema::TPC_TypeAliasTemplate.
Referenced by clang::Sema::CheckTemplateParameterList().
| static void DiagnoseTemplateParameterListArityMismatch | ( | Sema & | S, |
| TemplateParameterList * | New, | ||
| TemplateParameterList * | Old, | ||
| Sema::TemplateParameterListEqualKind | Kind, | ||
| SourceLocation | TemplateArgLoc | ||
| ) | [static] |
Diagnose a known arity mismatch when comparing template argument lists.
Definition at line 4476 of file SemaTemplate.cpp.
References clang::Sema::Diag(), clang::TemplateParameterList::getRAngleLoc(), clang::TemplateParameterList::getTemplateLoc(), clang::SourceLocation::isValid(), clang::TemplateParameterList::size(), and clang::Sema::TPL_TemplateMatch.
Referenced by clang::Sema::TemplateParameterListsAreEqual().
| static bool DiagnoseUnexpandedParameterPacks | ( | Sema & | S, |
| TemplateTemplateParmDecl * | TTP | ||
| ) | [static] |
Check for unexpanded parameter packs within the template parameters of a template template parameter, recursively.
Definition at line 1152 of file SemaTemplate.cpp.
References clang::Sema::DiagnoseUnexpandedParameterPack(), clang::TemplateParameterList::getParam(), clang::TemplateDecl::getTemplateParameters(), P, clang::TemplateParameterList::size(), and clang::Sema::UPPC_NonTypeTemplateParameterType.
Referenced by clang::Sema::CheckMicrosoftIfExistsSymbol(), and clang::Sema::CheckTemplateParameterList().
| static SourceRange getRangeOfTypeInNestedNameSpecifier | ( | ASTContext & | Context, |
| QualType | T, | ||
| const CXXScopeSpec & | SS | ||
| ) | [static] |
Definition at line 1490 of file SemaTemplate.cpp.
References clang::CXXScopeSpec::getScopeRep(), clang::TypeLoc::getSourceRange(), clang::NestedNameSpecifierLoc::getTypeLoc(), clang::ASTContext::hasSameUnqualifiedType(), and clang::CXXScopeSpec::location_data().
Referenced by clang::Sema::MatchTemplateParametersToScopeSpecifier().
| static TemplateSpecializationKind getTemplateSpecializationKind | ( | Decl * | D | ) | [static] |
Determine what kind of template specialization the given declaration is.
Definition at line 4623 of file SemaTemplate.cpp.
References clang::TSK_Undeclared.
Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnTag(), clang::Sema::CheckMemberSpecialization(), clang::Sema::CheckSpecializationInstantiationRedecl(), CheckTemplateSpecializationScope(), and clang::FriendDecl::Create().
| static NamedDecl* isAcceptableTemplateName | ( | ASTContext & | Context, |
| NamedDecl * | Orig | ||
| ) | [static] |
Determine whether the declaration found is acceptable as the name of a template and, if so, return that template declaration. Otherwise, returns NULL.
Definition at line 46 of file SemaTemplate.cpp.
References clang::NamedDecl::getUnderlyingDecl().
Referenced by clang::Sema::FilterAcceptableTemplateNames(), and clang::Sema::hasAnyAcceptableTemplateNames().
| static bool MatchTemplateParameterKind | ( | Sema & | S, |
| NamedDecl * | New, | ||
| NamedDecl * | Old, | ||
| bool | Complain, | ||
| Sema::TemplateParameterListEqualKind | Kind, | ||
| SourceLocation | TemplateArgLoc | ||
| ) | [static] |
Match two template parameters within template parameter lists.
Definition at line 4371 of file SemaTemplate.cpp.
References clang::Sema::Context, clang::Sema::Diag(), clang::Decl::getKind(), clang::Decl::getLocation(), clang::TemplateDecl::getTemplateParameters(), clang::ValueDecl::getType(), clang::ASTContext::hasSameType(), clang::Decl::isParameterPack(), clang::Decl::isTemplateParameterPack(), clang::SourceLocation::isValid(), clang::Sema::TemplateParameterListsAreEqual(), clang::Sema::TPL_TemplateMatch, clang::Sema::TPL_TemplateTemplateArgumentMatch, and clang::Sema::TPL_TemplateTemplateParmMatch.
Referenced by clang::Sema::TemplateParameterListsAreEqual().
| static bool ScopeSpecifierHasTemplateId | ( | const CXXScopeSpec & | SS | ) | [static] |
Determine whether the given scope specifier has a template-id in it.
Definition at line 5957 of file SemaTemplate.cpp.
References clang::NestedNameSpecifier::getAsType(), clang::NestedNameSpecifier::getPrefix(), clang::CXXScopeSpec::getScopeRep(), and clang::CXXScopeSpec::isSet().
Referenced by clang::Sema::ActOnExplicitInstantiation().
| static void SetNestedNameSpecifier | ( | TagDecl * | T, |
| const CXXScopeSpec & | SS | ||
| ) | [static] |
Definition at line 821 of file SemaTemplate.cpp.
References clang::Decl::getASTContext(), clang::CXXScopeSpec::getWithLocInContext(), clang::CXXScopeSpec::isSet(), and clang::TagDecl::setQualifierInfo().
Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnExplicitInstantiation(), and clang::Sema::CheckClassTemplate().
| static void StripImplicitInstantiation | ( | NamedDecl * | D | ) | [static] |
Strips various properties off an implicit instantiation that has just been explicitly specialized.
Definition at line 5347 of file SemaTemplate.cpp.
References clang::Decl::dropAttrs().
Referenced by clang::Sema::CheckSpecializationInstantiationRedecl().
| static TypeSourceInfo* SubstDefaultTemplateArgument | ( | Sema & | SemaRef, |
| TemplateDecl * | Template, | ||
| SourceLocation | TemplateLoc, | ||
| SourceLocation | RAngleLoc, | ||
| TemplateTypeParmDecl * | Param, | ||
| SmallVectorImpl< TemplateArgument > & | Converted | ||
| ) | [static] |
Substitute template arguments into the default template argument for the given template type parameter.
| SemaRef | the semantic analysis object for which we are performing the substitution. |
| Template | the template that we are synthesizing template arguments for. |
| TemplateLoc | the location of the template name that started the template-id we are checking. |
| RAngleLoc | the location of the right angle bracket ('>') that terminates the template-id. |
| Param | the template template parameter whose default we are substituting into. |
| Converted | the list of template arguments provided for template parameters that precede Param in the template parameter list. |
Definition at line 2451 of file SemaTemplate.cpp.
References clang::NamedDecl::getDeclName(), clang::TemplateTypeParmDecl::getDefaultArgumentInfo(), clang::TemplateTypeParmDecl::getDefaultArgumentLoc(), clang::Sema::getTemplateInstantiationArgs(), clang::TypeSourceInfo::getType(), clang::TemplateArgumentList::OnStack, and clang::Sema::SubstType().
Referenced by clang::Sema::CheckTemplateArgumentList(), and clang::Sema::SubstDefaultTemplateArgumentIfAvailable().
| static ExprResult SubstDefaultTemplateArgument | ( | Sema & | SemaRef, |
| TemplateDecl * | Template, | ||
| SourceLocation | TemplateLoc, | ||
| SourceLocation | RAngleLoc, | ||
| NonTypeTemplateParmDecl * | Param, | ||
| SmallVectorImpl< TemplateArgument > & | Converted | ||
| ) | [static] |
Substitute template arguments into the default template argument for the given non-type template parameter.
| SemaRef | the semantic analysis object for which we are performing the substitution. |
| Template | the template that we are synthesizing template arguments for. |
| TemplateLoc | the location of the template name that started the template-id we are checking. |
| RAngleLoc | the location of the right angle bracket ('>') that terminates the template-id. |
| Param | the non-type template parameter whose default we are substituting into. |
| Converted | the list of template arguments provided for template parameters that precede Param in the template parameter list. |
Definition at line 2504 of file SemaTemplate.cpp.
References clang::NonTypeTemplateParmDecl::getDefaultArgument(), clang::Sema::getTemplateInstantiationArgs(), clang::TemplateArgumentList::OnStack, and clang::Sema::SubstExpr().
| static TemplateName SubstDefaultTemplateArgument | ( | Sema & | SemaRef, |
| TemplateDecl * | Template, | ||
| SourceLocation | TemplateLoc, | ||
| SourceLocation | RAngleLoc, | ||
| TemplateTemplateParmDecl * | Param, | ||
| SmallVectorImpl< TemplateArgument > & | Converted, | ||
| NestedNameSpecifierLoc & | QualifierLoc | ||
| ) | [static] |
Substitute template arguments into the default template argument for the given template template parameter.
| SemaRef | the semantic analysis object for which we are performing the substitution. |
| Template | the template that we are synthesizing template arguments for. |
| TemplateLoc | the location of the template name that started the template-id we are checking. |
| RAngleLoc | the location of the right angle bracket ('>') that terminates the template-id. |
| Param | the template template parameter whose default we are substituting into. |
| Converted | the list of template arguments provided for template parameters that precede Param in the template parameter list. |
| QualifierLoc | Will be set to the nested-name-specifier (with source-location information) that precedes the template name. |
Definition at line 2550 of file SemaTemplate.cpp.
References clang::TemplateArgumentLoc::getArgument(), clang::TemplateArgument::getAsTemplate(), clang::TemplateTemplateParmDecl::getDefaultArgument(), clang::Sema::getTemplateInstantiationArgs(), clang::TemplateArgumentLoc::getTemplateNameLoc(), clang::TemplateArgumentLoc::getTemplateQualifierLoc(), clang::TemplateArgumentList::OnStack, clang::Sema::SubstNestedNameSpecifierLoc(), and clang::Sema::SubstTemplateName().
| static TemplateArgumentLoc translateTemplateArgument | ( | Sema & | SemaRef, |
| const ParsedTemplateArgument & | Arg | ||
| ) | [static] |
Definition at line 478 of file SemaTemplate.cpp.
References clang::Sema::Context, clang::OpaquePtr< PtrTy >::get(), clang::ParsedTemplateArgument::getAsExpr(), clang::ParsedTemplateArgument::getAsTemplate(), clang::ParsedTemplateArgument::getAsType(), clang::ParsedTemplateArgument::getEllipsisLoc(), clang::ParsedTemplateArgument::getKind(), clang::ParsedTemplateArgument::getLocation(), clang::ParsedTemplateArgument::getScopeSpec(), clang::ASTContext::getTrivialTypeSourceInfo(), clang::Sema::GetTypeFromParser(), clang::CXXScopeSpec::getWithLocInContext(), clang::SourceLocation::isValid(), clang::ParsedTemplateArgument::NonType, clang::ParsedTemplateArgument::Template, and clang::ParsedTemplateArgument::Type.
Referenced by clang::Sema::ActOnTemplateTemplateParameter(), and clang::Sema::translateTemplateArguments().