clang
3.9.0
|
#include "clang/Sema/SemaInternal.h"
#include "TreeTransform.h"
#include "clang/AST/ASTConsumer.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/ASTLambda.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/Expr.h"
#include "clang/Basic/LangOptions.h"
#include "clang/Sema/DeclSpec.h"
#include "clang/Sema/Initialization.h"
#include "clang/Sema/Lookup.h"
#include "clang/Sema/PrettyDeclStackTrace.h"
#include "clang/Sema/Template.h"
#include "clang/Sema/TemplateDeduction.h"
Go to the source code of this file.
Namespaces | |
clang | |
Dataflow Directional Tag Classes. | |
clang::sema | |
Functions | |
static std::pair< unsigned, unsigned > | getDepthAndIndex (NamedDecl *ND) |
Retrieve the depth and index of a parameter pack. More... | |
static TemplateArgument | getPackSubstitutedTemplateArgument (Sema &S, TemplateArgument Arg) |
static bool | NeedsInstantiationAsFunctionType (TypeSourceInfo *T) |
Attr * | clang::sema::instantiateTemplateAttribute (const Attr *At, ASTContext &C, Sema &S, const MultiLevelTemplateArgumentList &TemplateArgs) |
static bool | DiagnoseUninstantiableTemplate (Sema &S, SourceLocation PointOfInstantiation, TagDecl *Instantiation, bool InstantiatedFromMember, TagDecl *Pattern, TagDecl *PatternDef, TemplateSpecializationKind TSK, bool Complain=true) |
Determine whether we would be unable to instantiate this template (because it either has no definition, or is in the process of being instantiated). More... | |
static const Decl * | getCanonicalParmVarDecl (const Decl *D) |
|
static |
Determine whether we would be unable to instantiate this template (because it either has no definition, or is in the process of being instantiated).
Definition at line 1849 of file SemaTemplateInstantiate.cpp.
References clang::Sema::Context, clang::Sema::Definition, clang::Sema::Diag(), clang::Sema::diagnoseMissingImport(), clang::ASTContext::getTypeDeclType(), clang::Sema::hasVisibleDefinition(), clang::TagDecl::isBeingDefined(), clang::Sema::isSFINAEContext(), clang::TSK_ExplicitInstantiationDeclaration, and clang::TSK_ImplicitInstantiation.
Referenced by clang::Sema::InstantiateClass(), and clang::Sema::InstantiateEnum().
Definition at line 2746 of file SemaTemplateInstantiate.cpp.
Referenced by clang::LocalInstantiationScope::findInstantiationOf(), clang::LocalInstantiationScope::InstantiatedLocal(), clang::LocalInstantiationScope::InstantiatedLocalPackArg(), and clang::LocalInstantiationScope::MakeInstantiatedLocalArgPack().
Retrieve the depth and index of a parameter pack.
Definition at line 607 of file SemaTemplateInstantiate.cpp.
References clang::TemplateParmPosition::getDepth(), and clang::TemplateParmPosition::getIndex().
|
static |
Definition at line 855 of file SemaTemplateInstantiate.cpp.
References clang::Sema::ArgumentPackSubstitutionIndex, clang::TemplateArgument::getPackExpansionPattern(), clang::TemplateArgument::pack_begin(), and clang::TemplateArgument::pack_size().
|
static |
Definition at line 1516 of file SemaTemplateInstantiate.cpp.
References clang::TypeLoc::castAs(), clang::TypeLoc::getAs(), clang::FunctionTypeLoc::getParams(), clang::TypeSourceInfo::getType(), clang::TypeSourceInfo::getTypeLoc(), clang::TypeLoc::IgnoreParens(), clang::Type::isInstantiationDependentType(), clang::Type::isVariablyModifiedType(), and P.
Referenced by clang::Sema::SubstFunctionDeclType().