reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Declarations

gen/tools/clang/include/clang/AST/DeclNodes.inc
  219 VARTEMPLATE(VarTemplate, RedeclarableTemplateDecl)
tools/clang/include/clang/AST/ASTContext.h
  125 class VarTemplateDecl;
tools/clang/include/clang/AST/ASTMutationListener.h
   40   class VarTemplateDecl;
tools/clang/include/clang/AST/Decl.h
   78 class VarTemplateDecl;
tools/clang/include/clang/AST/DeclTemplate.h
   55 class VarTemplateDecl;

References

include/llvm/ADT/STLExtras.h
   75       typename std::add_pointer<typename std::add_const<T>::type>::type;
include/llvm/Support/Casting.h
   57   static inline bool doit(const From &Val) {
   58     return To::classof(&Val);
   66   static inline bool doit(const From &) { return true; }
  104   static inline bool doit(const From *Val) {
  106     return isa_impl<To, From>::doit(*Val);
  106     return isa_impl<To, From>::doit(*Val);
  122     return isa_impl_wrap<To, SimpleFrom,
  132     return isa_impl_cl<To,FromTy>::doit(Val);
  142   return isa_impl_wrap<X, const Y,
  172   using ret_type = To *;       // Pointer arg case, return Ty*
  176   using ret_type = const To *; // Constant pointer arg case, return const Ty*
  198   using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
  204   using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
  210       To, From, typename simplify_type<From>::SimpleType>::ret_type;
  227   static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
  228     typename cast_retty<To, FromTy>::ret_type Res2
  256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  265   return cast_convert_val<X, Y*,
  265   return cast_convert_val<X, Y*,
  266                           typename simplify_type<Y*>::SimpleType>::doit(Val);
  305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  309   return cast<X>(Val);
  337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
include/llvm/Support/PointerLikeTypeTraits.h
   56   static inline void *getAsVoidPointer(T *P) { return P; }
   57   static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
   59   enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
tools/clang/include/clang/AST/ASTContext.h
  432       llvm::PointerUnion<VarTemplateDecl *, MemberSpecializationInfo *>;
tools/clang/include/clang/AST/ASTDumper.h
   51   void VisitVarTemplateDecl(const VarTemplateDecl *D);
tools/clang/include/clang/AST/ASTMutationListener.h
   67   AddedCXXTemplateSpecialization(const VarTemplateDecl *TD,
tools/clang/include/clang/AST/ASTNodeTraverser.h
  448   void dumpTemplateDecl(const TemplateDecl *D) {
  495   void VisitVarTemplateDecl(const VarTemplateDecl *D) { dumpTemplateDecl(D); }
tools/clang/include/clang/AST/ASTTypeTraits.h
   65     return ASTNodeKind(KindToKindId<T>::Id);
   65     return ASTNodeKind(KindToKindId<T>::Id);
   65     return ASTNodeKind(KindToKindId<T>::Id);
  251   const T *get() const {
  252     return BaseConverter<T>::get(NodeKind, Storage.buffer);
  394     static const T *get(ASTNodeKind NodeKind, const char Storage[]) {
  395       if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
  399     static const T &getUnchecked(ASTNodeKind NodeKind, const char Storage[]) {
  401       return *cast<T>(static_cast<const BaseT *>(
  469     : public DynCastPtrConverter<T, Decl> {};
tools/clang/include/clang/AST/Decl.h
 1515   VarTemplateDecl *getDescribedVarTemplate() const;
 1517   void setDescribedVarTemplate(VarTemplateDecl *Template);
tools/clang/include/clang/AST/DeclBase.h
 2536   static ::clang::DeclContext *doit(const FromTy *Val) {
 2537     return FromTy::castToDeclContext(Val);
tools/clang/include/clang/AST/DeclTemplate.h
 2502   llvm::PointerUnion<VarTemplateDecl *, SpecializedPartialSpecialization *>
 2543                                 VarTemplateDecl *SpecializedTemplate,
 2557          SourceLocation IdLoc, VarTemplateDecl *SpecializedTemplate, QualType T,
 2572   VarTemplateDecl *getSpecializedTemplate() const;
 2628   llvm::PointerUnion<VarTemplateDecl *, VarTemplatePartialSpecializationDecl *>
 2639   llvm::PointerUnion<VarTemplateDecl *, VarTemplatePartialSpecializationDecl *>
 2645     return SpecializedTemplate.get<VarTemplateDecl *>();
 2682   void setInstantiationOf(VarTemplateDecl *TemplDecl) {
 2766       VarTemplateDecl *SpecializedTemplate, QualType T, TypeSourceInfo *TInfo,
 2784          VarTemplateDecl *SpecializedTemplate, QualType T,
 2946   VarTemplateDecl *getDefinition();
 2949   static VarTemplateDecl *Create(ASTContext &C, DeclContext *DC,
 2955   static VarTemplateDecl *CreateDeserialized(ASTContext &C, unsigned ID);
 2966   VarTemplateDecl *getCanonicalDecl() override {
 2967     return cast<VarTemplateDecl>(RedeclarableTemplateDecl::getCanonicalDecl());
 2969   const VarTemplateDecl *getCanonicalDecl() const {
 2970     return cast<VarTemplateDecl>(RedeclarableTemplateDecl::getCanonicalDecl());
 2975   VarTemplateDecl *getPreviousDecl() {
 2976     return cast_or_null<VarTemplateDecl>(
 2979   const VarTemplateDecl *getPreviousDecl() const {
 2980     return cast_or_null<VarTemplateDecl>(
 2985   VarTemplateDecl *getMostRecentDecl() {
 2986     return cast<VarTemplateDecl>(
 2989   const VarTemplateDecl *getMostRecentDecl() const {
 2993   VarTemplateDecl *getInstantiatedFromMemberTemplate() const {
 2994     return cast_or_null<VarTemplateDecl>(
tools/clang/include/clang/AST/JSONNodeDumper.h
  390   void writeTemplateDecl(const TemplateDecl *TD, bool DumpExplicitInst) {
  420   void VisitVarTemplateDecl(const VarTemplateDecl *VTD) {
tools/clang/include/clang/AST/RecursiveASTVisitor.h
 1689     VarTemplateDecl *D) {
tools/clang/include/clang/AST/TextNodeDumper.h
  324   void VisitVarTemplateDecl(const VarTemplateDecl *D);
tools/clang/include/clang/ASTMatchers/ASTMatchers.h
  110   const T *getNodeAs(StringRef ID) const {
  111     return MyBoundNodes.getNodeAs<T>(ID);
tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
  160   const T *getNodeAs(StringRef ID) const {
  165     return It->second.get<T>();
  499   explicit Matcher(MatcherInterface<T> *Implementation)
  507           typename std::enable_if<std::is_base_of<From, T>::value &&
  508                                !std::is_same<From, T>::value>::type * = nullptr)
  520             std::is_same<T, QualType>::value &&
  529     static_assert(std::is_base_of<To, T>::value, "Invalid dynCast call.");
  534   bool matches(const T &Node,
  581     return Other.dynCastTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
 1243   operator Matcher<T>() const {
 1245                ast_type_traits::ASTNodeKind::getFromNodeKind<T>())
 1246         .template unconditionalConvertTo<T>();
 1255 class BindableMatcher : public Matcher<T> {
 1257   explicit BindableMatcher(const Matcher<T> &M) : Matcher<T>(M) {}
 1258   explicit BindableMatcher(MatcherInterface<T> *Implementation)
 1265   Matcher<T> bind(StringRef ID) const {
 1370 inline Matcher<T> DynTypedMatcher::unconditionalConvertTo() const {
 1376 BindableMatcher<T> makeAllOfComposite(
 1377     ArrayRef<const Matcher<T> *> InnerMatchers) {
 1388   using PI = llvm::pointee_iterator<const Matcher<T> *const *>;
 1395           ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
 1397           .template unconditionalConvertTo<T>());
 1408     ArrayRef<const Matcher<InnerT> *> InnerMatchers) {
 1557     : public VariadicFunction<BindableMatcher<SourceT>, Matcher<TargetT>,
 1558                               makeDynCastAllOfComposite<SourceT, TargetT>> {
tools/clang/include/clang/Sema/Lookup.h
  507   DeclClass *getAsSingle() const {
  509     return dyn_cast<DeclClass>(getFoundDecl());
tools/clang/include/clang/Sema/Sema.h
 6809   DeclResult CheckVarTemplateId(VarTemplateDecl *Template,
 6816                                 VarTemplateDecl *Template,
 8462       VarTemplateDecl *VarTemplate, VarDecl *FromVar,
 8482       VarTemplateDecl *VarTempl, const TemplateArgumentListInfo *TemplateArgs,
tools/clang/include/clang/Sema/Template.h
  439         std::pair<VarTemplateDecl *, VarTemplatePartialSpecializationDecl *>, 4>
  505         VarTemplateDecl *, VarTemplatePartialSpecializationDecl *>>::iterator;
  546         VarTemplateDecl *VarTemplate, VarDecl *FromVar, void *InsertPos,
  558         VarTemplateDecl *VarTemplate,
tools/clang/include/clang/Serialization/ASTReader.h
 1887   T *ReadDeclAs(ModuleFile &F, const RecordData &R, unsigned &I) {
 1888     return cast_or_null<T>(GetDecl(ReadDeclID(F, R, I)));
 2541   T *readDeclAs() {
 2542     return Reader->ReadDeclAs<T>(*F, Record, Idx);
tools/clang/include/clang/Serialization/ASTWriter.h
  720       const VarTemplateDecl *TD,
tools/clang/lib/AST/ASTDumper.cpp
  127 void ASTDumper::dumpTemplateDecl(const TemplateDecl *D, bool DumpExplicitInst) {
  148 void ASTDumper::VisitVarTemplateDecl(const VarTemplateDecl *D) {
tools/clang/lib/AST/ASTImporter.cpp
  152     LLVM_NODISCARD Error importInto(ImportT *&To, ImportT *From) {
  152     LLVM_NODISCARD Error importInto(ImportT *&To, ImportT *From) {
  155         To = cast_or_null<ImportT>(*ToOrErr);
  162     Expected<T *> import(T *From) {
  162     Expected<T *> import(T *From) {
  166       return cast_or_null<T>(*ToOrErr);
  170     Expected<T *> import(const T *From) {
  170     Expected<T *> import(const T *From) {
  217           -> decltype(ToDeclT::Create(std::forward<Args>(args)...)) {
  218         return ToDeclT::Create(std::forward<Args>(args)...);
  229     LLVM_NODISCARD bool GetImportedOrCreateDecl(ToDeclT *&ToD, FromDeclT *FromD,
  229     LLVM_NODISCARD bool GetImportedOrCreateDecl(ToDeclT *&ToD, FromDeclT *FromD,
  234       CallOverloadedCreateFun<ToDeclT> OC;
  256     GetImportedOrCreateSpecialDecl(ToDeclT *&ToD, CreateFunT CreateFun,
  257                                    FromDeclT *FromD, Args &&... args) {
  262       ToD = cast_or_null<ToDeclT>(Importer.GetAlreadyImportedOrNull(FromD));
  447     bool IsStructuralMatch(VarTemplateDecl *From, VarTemplateDecl *To);
  447     bool IsStructuralMatch(VarTemplateDecl *From, VarTemplateDecl *To);
  501     ExpectedDecl VisitVarTemplateDecl(VarTemplateDecl *D);
 2073 bool ASTNodeImporter::IsStructuralMatch(VarTemplateDecl *From,
 2074                                         VarTemplateDecl *To) {
 5317 ExpectedDecl ASTNodeImporter::VisitVarTemplateDecl(VarTemplateDecl *D) {
 5352     if (VarTemplateDecl *FoundTemplate = dyn_cast<VarTemplateDecl>(Found)) {
 5352     if (VarTemplateDecl *FoundTemplate = dyn_cast<VarTemplateDecl>(Found)) {
 5391   VarTemplateDecl *ToVarTD;
 5423   VarTemplateDecl *VarTemplate = nullptr;
tools/clang/lib/AST/Decl.cpp
  514   VarTemplateDecl *temp = spec->getSpecializedTemplate();
 2487       if (auto *VTD = From.dyn_cast<VarTemplateDecl *>()) {
 2487       if (auto *VTD = From.dyn_cast<VarTemplateDecl *>()) {
 2489           auto *NewVTD = VTD->getInstantiatedFromMemberTemplate();
 2511   if (VarTemplateDecl *VarTemplate = VD->getDescribedVarTemplate()) {
 2513       auto *NewVT = VarTemplate->getInstantiatedFromMemberTemplate();
 2565 VarTemplateDecl *VarDecl::getDescribedVarTemplate() const {
 2567       .dyn_cast<VarTemplateDecl *>();
 2570 void VarDecl::setDescribedVarTemplate(VarTemplateDecl *Template) {
tools/clang/lib/AST/DeclTemplate.cpp
  271     L->AddedCXXTemplateSpecialization(cast<Derived>(this),
  988 VarTemplateDecl *VarTemplateDecl::getDefinition() {
  989   VarTemplateDecl *CurD = this;
  998 VarTemplateDecl *VarTemplateDecl::Create(ASTContext &C, DeclContext *DC,
 1003   return new (C, DC) VarTemplateDecl(C, DC, L, Name, Params, Decl);
 1006 VarTemplateDecl *VarTemplateDecl::CreateDeserialized(ASTContext &C,
 1008   return new (C, ID) VarTemplateDecl(C, nullptr, SourceLocation(),
 1043   addSpecializationImpl<VarTemplateDecl>(getSpecializations(), D, InsertPos);
 1095     SourceLocation IdLoc, VarTemplateDecl *SpecializedTemplate, QualType T,
 1111     SourceLocation IdLoc, VarTemplateDecl *SpecializedTemplate, QualType T,
 1138 VarTemplateDecl *VarTemplateSpecializationDecl::getSpecializedTemplate() const {
 1142   return SpecializedTemplate.get<VarTemplateDecl *>();
 1162     VarTemplateDecl *SpecializedTemplate, QualType T, TypeSourceInfo *TInfo,
 1178     VarTemplateDecl *SpecializedTemplate, QualType T, TypeSourceInfo *TInfo,
tools/clang/lib/AST/ExternalASTMerger.cpp
  455 static bool importSpecializations(DeclTy *D, ASTImporter *Importer) {
  474   else if (auto *VarTD = dyn_cast<VarTemplateDecl>(D))
  474   else if (auto *VarTD = dyn_cast<VarTemplateDecl>(D))
tools/clang/lib/AST/TextNodeDumper.cpp
 1674 void TextNodeDumper::VisitVarTemplateDecl(const VarTemplateDecl *D) {
tools/clang/lib/CodeGen/Address.h
  108 template <class U> inline U cast(CodeGen::Address addr) {
tools/clang/lib/CodeGen/CGDebugInfo.cpp
 1876   VarTemplateDecl *T = TS->getSpecializedTemplate();
tools/clang/lib/Index/IndexSymbol.cpp
   99   if (auto *VT = dyn_cast<VarTemplateDecl>(D)) {
tools/clang/lib/Index/USRGeneration.cpp
  310   if (VarTemplateDecl *VarTmpl = D->getDescribedVarTemplate()) {
tools/clang/lib/Parse/ParseDecl.cpp
 2289     if (VarTemplateDecl *VT = dyn_cast_or_null<VarTemplateDecl>(ThisDecl))
 2289     if (VarTemplateDecl *VT = dyn_cast_or_null<VarTemplateDecl>(ThisDecl))
tools/clang/lib/Parse/ParseDeclCXX.cpp
 2815       if (VarTemplateDecl *VT =
 2816               ThisDecl ? dyn_cast<VarTemplateDecl>(ThisDecl) : nullptr)
tools/clang/lib/Sema/Sema.cpp
  615     if (VarTemplateDecl *Template = VD->getDescribedVarTemplate())
tools/clang/lib/Sema/SemaCXXScopeSpec.cpp
  943       isa<FunctionTemplateDecl>(TD) || isa<VarTemplateDecl>(TD)) {
  949       << (TD && isa<VarTemplateDecl>(TD)) << Template << R;
tools/clang/lib/Sema/SemaDecl.cpp
 1093       IsVarTemplate = isa<VarTemplateDecl>(TD);
 1155       !isa<VarTemplateDecl>(FirstDecl))
 1239   if (isa<VarTemplateDecl>(TD))
 3046 template<typename T> static bool isExternC(T *D) { return D->isExternC(); }
 3047 static bool isExternC(VarTemplateDecl *) { return false; }
 3054                                    ExpectedDecl *New) {
 3072   auto *Old = dyn_cast<ExpectedDecl>(OldS->getTargetDecl());
 3072   auto *Old = dyn_cast<ExpectedDecl>(OldS->getTargetDecl());
 3971   VarTemplateDecl *NewTemplate = New->getDescribedVarTemplate();
 3975   VarTemplateDecl *OldTemplate = nullptr;
 3978       OldTemplate = dyn_cast<VarTemplateDecl>(Previous.getFoundDecl());
 3983         if (checkUsingShadowRedecl<VarTemplateDecl>(*this, Shadow, NewTemplate))
 4266     if (auto *OldTD = Old->getDescribedVarTemplate())
 6641   VarTemplateDecl *NewTemplate = nullptr;
 6781           VarTemplateDecl::Create(Context, DC, D.getIdentifierLoc(), Name,
 7088       VarTemplateDecl *PrevVarTemplate =
tools/clang/lib/Sema/SemaDeclCXX.cpp
 3356       } else if (isa<VarDecl>(Member) || isa<VarTemplateDecl>(Member)) {
 3380     else if (VarTemplateDecl *VarTmpl = dyn_cast<VarTemplateDecl>(Member))
 3380     else if (VarTemplateDecl *VarTmpl = dyn_cast<VarTemplateDecl>(Member))
tools/clang/lib/Sema/SemaExprMember.cpp
  938 Sema::getVarTemplateSpecialization(VarTemplateDecl *VarTempl,
 1096       if (isa<VarTemplateDecl>(MemberDecl)) {
 1098             cast<VarTemplateDecl>(MemberDecl), TemplateArgs,
 1161   if (VarTemplateDecl *VarTempl = dyn_cast<VarTemplateDecl>(MemberDecl)) {
 1161   if (VarTemplateDecl *VarTempl = dyn_cast<VarTemplateDecl>(MemberDecl)) {
tools/clang/lib/Sema/SemaTemplate.cpp
  258           isa<VarTemplateDecl>(TD) ? TNK_Var_template :
 2971                       : isa<VarTemplateDecl>(Template)
 3213       isa<VarTemplateDecl>(Template) ||
 3732   auto *Template = Partial->getSpecializedTemplate();
 3735       << isa<VarTemplateDecl>(Template);
 3850   VarTemplateDecl *VarTemplate =
 3851       dyn_cast_or_null<VarTemplateDecl>(Name.getAsTemplateDecl());
 4036 Sema::CheckVarTemplateId(VarTemplateDecl *Template, SourceLocation TemplateLoc,
 4300   if (R.getAsSingle<VarTemplateDecl>() && !AnyDependentArguments()) {
 4302                               R.getAsSingle<VarTemplateDecl>(),
 7467   else if (isa<VarTemplateDecl>(Specialized))
 9454     VarTemplateDecl *PrevTemplate = Previous.getAsSingle<VarTemplateDecl>();
 9454     VarTemplateDecl *PrevTemplate = Previous.getAsSingle<VarTemplateDecl>();
10460     if (auto *TD = From.dyn_cast<VarTemplateDecl *>())
10460     if (auto *TD = From.dyn_cast<VarTemplateDecl *>())
10473   void checkTemplate(TemplDecl *TD) {
tools/clang/lib/Sema/SemaTemplateDeduction.cpp
 2748   auto *Template = Partial->getSpecializedTemplate();
tools/clang/lib/Sema/SemaTemplateInstantiate.cpp
   86       llvm::PointerUnion<VarTemplateDecl*,
   94         VarTemplateDecl *Tmpl = Specialized.get<VarTemplateDecl *>();
   94         VarTemplateDecl *Tmpl = Specialized.get<VarTemplateDecl *>();
  570         bool IsVar = isa<VarTemplateDecl>(Active->Entity) ||
tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
 1519 Decl *TemplateDeclInstantiator::VisitVarTemplateDecl(VarTemplateDecl *D) {
 1532   VarTemplateDecl *PrevVarTemplate = nullptr;
 1537       PrevVarTemplate = dyn_cast<VarTemplateDecl>(Found.front());
 1547   VarTemplateDecl *Inst = VarTemplateDecl::Create(
 1547   VarTemplateDecl *Inst = VarTemplateDecl::Create(
 1584   VarTemplateDecl *VarTemplate = D->getSpecializedTemplate();
 1590   VarTemplateDecl *InstVarTemplate = dyn_cast<VarTemplateDecl>(Found.front());
 1590   VarTemplateDecl *InstVarTemplate = dyn_cast<VarTemplateDecl>(Found.front());
 3381   VarTemplateDecl *VarTemplate = D->getSpecializedTemplate();
 3385   VarTemplateDecl *InstVarTemplate =
 3386       cast_or_null<VarTemplateDecl>(SemaRef.FindInstantiatedDecl(
 3425     VarTemplateDecl *VarTemplate, VarDecl *D, void *InsertPos,
 3687     VarTemplateDecl *VarTemplate,
 4406     VarTemplateDecl *VarTemplate, VarDecl *FromVar,
 4436   else if (VarTemplateDecl *FromTemplate = FromVar->getDescribedVarTemplate())
 4880       llvm::PointerUnion<VarTemplateDecl *,
 5527         VarTemplateDecl *Templ = cast_or_null<VarTemplateDecl>(
 5527         VarTemplateDecl *Templ = cast_or_null<VarTemplateDecl>(
tools/clang/lib/Serialization/ASTReaderDecl.cpp
  144     T *ReadDeclAs() {
  145       return Record.readDeclAs<T>();
  264     void AddLazySpecializations(T *D,
  389     void VisitVarTemplateDecl(VarTemplateDecl *D);
 1423     VD->setDescribedVarTemplate(ReadDeclAs<VarTemplateDecl>());
 2080 void ASTDeclReader::VisitVarTemplateDecl(VarTemplateDecl *D) {
 2212     if (auto *VTD = dyn_cast<VarTemplateDecl>(InstD)) {
 2212     if (auto *VTD = dyn_cast<VarTemplateDecl>(InstD)) {
 2248     auto *CanonPattern = ReadDeclAs<VarTemplateDecl>();
 2248     auto *CanonPattern = ReadDeclAs<VarTemplateDecl>();
 3739     D = VarTemplateDecl::CreateDeserialized(Context, ID);
 4028   else if (auto *VTD = dyn_cast<VarTemplateDecl>(D))
 4028   else if (auto *VTD = dyn_cast<VarTemplateDecl>(D))
tools/clang/lib/Serialization/ASTWriter.cpp
 6590     const VarTemplateDecl *TD, const VarTemplateSpecializationDecl *D) {
tools/clang/lib/Serialization/ASTWriterDecl.cpp
  108     void VisitVarTemplateDecl(VarTemplateDecl *D);
  203     void AddTemplateSpecializations(DeclTy *D) {
 1012   if (VarTemplateDecl *TemplD = D->getDescribedVarTemplate()) {
 1528 void ASTDeclWriter::VisitVarTemplateDecl(VarTemplateDecl *D) {
 1542   llvm::PointerUnion<VarTemplateDecl *, VarTemplatePartialSpecializationDecl *>
 1544   if (Decl *InstFromD = InstFrom.dyn_cast<VarTemplateDecl *>()) {
tools/clang/tools/libclang/CIndex.cpp
 6370             cast<VarTemplateDecl>(D)->getTemplatedDecl()->getDefinition())
tools/clang/unittests/AST/ASTImporterODRStrategiesTest.cpp
  131 static const internal::VariadicDynCastAllOfMatcher<Decl, VarTemplateDecl>
  135   using DeclTy = VarTemplateDecl;
  253     auto *ToD = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  256     auto *FromD = FirstDeclMatcher<DeclTy>().match(FromTU, getPattern());
tools/clang/unittests/AST/DeclMatcher.h
   22   NodeType *Node = nullptr;
   26       Node = const_cast<NodeType *>(Result.Nodes.getNodeAs<NodeType>(""));
   32   NodeType *match(const Decl *D, const MatcherType &AMatcher) {
   47   using UnaryPredicate = std::function<bool(const NodeType *)>;
   51     if (auto N = Result.Nodes.getNodeAs<NodeType>("")) {
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_Tp>>::type
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  602                           is_void<_Tp>>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
 1554     { typedef _Tp     type; };
 1558     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1580     { typedef _Tp const     type; };
 1629     { typedef _Tp   type; };
 1983     { typedef _Up     type; };
 1999     { typedef typename remove_reference<_Tp>::type*     type; };
 2003     : public __add_pointer_helper<_Tp>