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

Derived Classes

tools/clang/include/clang/AST/DeclTemplate.h
 1904 class ClassTemplatePartialSpecializationDecl

Declarations

gen/tools/clang/include/clang/AST/DeclNodes.inc
  261 CLASSTEMPLATESPECIALIZATION(ClassTemplateSpecialization, CXXRecordDecl)
tools/clang/include/clang/AST/ASTMutationListener.h
   18   class ClassTemplateSpecializationDecl;
tools/clang/include/clang/Sema/Sema.h
  100   class ClassTemplateSpecializationDecl;
tools/clang/lib/CodeGen/CGDebugInfo.h
   37 class ClassTemplateSpecializationDecl;
tools/clang/tools/libclang/CXIndexDataConsumer.h
   26   class ClassTemplateSpecializationDecl;
tools/lldb/include/lldb/Core/ClangForward.h
   28 class ClassTemplateSpecializationDecl;

References

include/llvm/ADT/FoldingSet.h
  221   static void Profile(const T &X, FoldingSetNodeID &ID) {
  224   static void Profile(T &X, FoldingSetNodeID &ID) {
  232   static inline bool Equals(T &X, const FoldingSetNodeID &ID, unsigned IDHash,
  240   static inline unsigned ComputeHash(T &X, FoldingSetNodeID &TempID);
  250   : public DefaultFoldingSetTrait<T> {};
  369   FoldingSetTrait<T>::Profile(X, TempID);
  375   FoldingSetTrait<T>::Profile(X, TempID);
  410   using iterator = FoldingSetIterator<T>;
  415   using const_iterator = FoldingSetIterator<const T>;
  420   using bucket_iterator = FoldingSetBucketIterator<T>;
  432   bool RemoveNode(T *N) { return FoldingSetBase::RemoveNode(N); }
  437   T *GetOrInsertNode(T *N) {
  437   T *GetOrInsertNode(T *N) {
  444   T *FindNodeOrInsertPos(const FoldingSetNodeID &ID, void *&InsertPos) {
  451   void InsertNode(T *N, void *InsertPos) {
  457   void InsertNode(T *N) {
  473 template <class T> class FoldingSet final : public FoldingSetImpl<T> {
  474   using Super = FoldingSetImpl<T>;
  480     T *TN = static_cast<T *>(N);
  481     FoldingSetTrait<T>::Profile(*TN, ID);
  488     T *TN = static_cast<T *>(N);
  489     return FoldingSetTrait<T>::Equals(*TN, ID, IDHash, TempID);
  495     T *TN = static_cast<T *>(N);
  496     return FoldingSetTrait<T>::ComputeHash(*TN, TempID);
  559   FoldingSet<T> Set;
  581   T *FindNodeOrInsertPos(const FoldingSetNodeID &ID, void *&InsertPos) {
  588   T *GetOrInsertNode(T *N) {
  588   T *GetOrInsertNode(T *N) {
  589     T *Result = Set.GetOrInsertNode(N);
  597   void InsertNode(T *N, void *InsertPos) {
  604   void InsertNode(T *N) {
include/llvm/ADT/STLExtras.h
   75       typename std::add_pointer<typename std::add_const<T>::type>::type;
include/llvm/ADT/iterator.h
   68     : public std::iterator<IteratorCategoryT, T, DifferenceTypeT, PointerT,
  206     : public iterator_facade_base<DerivedT, IteratorCategoryT, T,
  288           pointee_iterator<WrappedIteratorT, T>, WrappedIteratorT,
  290           T> {
  296   T &operator*() const { return **this->I; }
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
  305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  306 cast_or_null(Y *Val) {
  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;
tools/clang/include/clang/AST/ASTMutationListener.h
   62                                     const ClassTemplateSpecializationDecl *D) {}
tools/clang/include/clang/AST/ASTNodeTraverser.h
  429   void dumpTemplateDeclSpecialization(const SpecializationDecl *D) {
  434       auto *Redecl = dyn_cast<SpecializationDecl>(RedeclWithBadType);
  453     for (const auto *Child : D->specializations())
  480       const ClassTemplateSpecializationDecl *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);
  234   static DynTypedNode create(const T &Node) {
  235     return BaseConverter<T>::create(Node);
  251   const T *get() const {
  252     return BaseConverter<T>::get(NodeKind, Storage.buffer);
  259   const T &getUnchecked() const {
  260     return BaseConverter<T>::getUnchecked(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/DeclBase.h
 2474   static const ToTy *doit(const DeclContext *Val) {
 2478   static ToTy *doit(DeclContext *Val) {
 2491     return To::classofKind(Val.getDeclKind());
 2514   static const ToTy *doit(const ::clang::DeclContext *Val) {
 2515     return ::clang::cast_convert_decl_context<ToTy>::doit(Val);
 2521   static ToTy *doit(::clang::DeclContext *Val) {
 2522     return ::clang::cast_convert_decl_context<ToTy>::doit(Val);
 2536   static ::clang::DeclContext *doit(const FromTy *Val) {
 2537     return FromTy::castToDeclContext(Val);
tools/clang/include/clang/AST/DeclTemplate.h
  756     using DeclType = EntryType;
  758     static DeclType *getDecl(EntryType *D) {
  762     static ArrayRef<TemplateArgument> getTemplateArgs(EntryType *D) {
  771             SpecIterator<EntryType, SETraits, DeclType>,
  771             SpecIterator<EntryType, SETraits, DeclType>,
  772             typename llvm::FoldingSetVector<EntryType>::iterator,
  774                 EntryType>::iterator>::iterator_category,
  775             DeclType *, ptrdiff_t, DeclType *, DeclType *> {
  775             DeclType *, ptrdiff_t, DeclType *, DeclType *> {
  775             DeclType *, ptrdiff_t, DeclType *, DeclType *> {
  778         typename llvm::FoldingSetVector<EntryType>::iterator SetIter)
  781     DeclType *operator*() const {
  785     DeclType *operator->() const { return **this; }
  789   static SpecIterator<EntryType>
  790   makeSpecIterator(llvm::FoldingSetVector<EntryType> &Specs, bool isEnd) {
 1693                                   ClassTemplateSpecializationDecl *PrevDecl);
 1701   static ClassTemplateSpecializationDecl *
 1706          ClassTemplateSpecializationDecl *PrevDecl);
 1707   static ClassTemplateSpecializationDecl *
 1718   ClassTemplateSpecializationDecl *getMostRecentDecl() {
 1719     return cast<ClassTemplateSpecializationDecl>(
 1905   : public ClassTemplateSpecializationDecl {
 2076     llvm::FoldingSetVector<ClassTemplateSpecializationDecl> Specializations;
 2090   llvm::FoldingSetVector<ClassTemplateSpecializationDecl> &
 2139   ClassTemplateSpecializationDecl *
 2144   void AddSpecialization(ClassTemplateSpecializationDecl *D, void *InsertPos);
 2232   using spec_iterator = SpecIterator<ClassTemplateSpecializationDecl>;
tools/clang/include/clang/AST/JSONNodeDumper.h
  347   void writeTemplateDeclSpecialization(const SpecializationDecl *SD,
  355       const auto *Redecl = dyn_cast<SpecializationDecl>(RedeclWithBadType);
  355       const auto *Redecl = dyn_cast<SpecializationDecl>(RedeclWithBadType);
  401     for (const auto *Child : TD->specializations())
tools/clang/include/clang/AST/RecursiveASTVisitor.h
 1659   for (auto *SD : D->specializations()) {
 1666           cast<ClassTemplateSpecializationDecl>(RD)->getSpecializationKind()) {
tools/clang/include/clang/ASTMatchers/ASTMatchers.h
  110   const T *getNodeAs(StringRef ID) const {
  111     return MyBoundNodes.getNodeAs<T>(ID);
  412     Decl, ClassTemplateSpecializationDecl>
tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
  160   const T *getNodeAs(StringRef ID) const {
  165     return It->second.get<T>();
  302   virtual bool matches(const T &Node,
  309     return matches(DynNode.getUnchecked<T>(), Finder, Builder);
  345   DynTypedMatcher(MatcherInterface<T> *Implementation)
  346       : SupportedKind(ast_type_traits::ASTNodeKind::getFromNodeKind<T>()),
  436     return canConvertTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  445   template <typename T> Matcher<T> convertTo() const {
  447     return unconditionalConvertTo<T>();
  479 class WrapperMatcherInterface : public MatcherInterface<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>());
  596 inline Matcher<T> makeMatcher(MatcherInterface<T> *Implementation) {
  596 inline Matcher<T> makeMatcher(MatcherInterface<T> *Implementation) {
  994   bool matchesChildOf(const T &Node, const DynTypedMatcher &Matcher,
  997     static_assert(std::is_base_of<Decl, T>::value ||
  998                   std::is_base_of<Stmt, T>::value ||
  999                   std::is_base_of<NestedNameSpecifier, T>::value ||
 1000                   std::is_base_of<NestedNameSpecifierLoc, T>::value ||
 1001                   std::is_base_of<TypeLoc, T>::value ||
 1002                   std::is_base_of<QualType, T>::value,
 1067   using head = T1;
 1084       std::is_base_of<typename AnyTypeList::head, T>::value ||
 1085       TypeListContainsSuperOf<typename AnyTypeList::tail, T>::value;
 1146     template <typename To> operator Matcher<To>() const {
 1202   operator Matcher<T>() const {
 1203     static_assert(TypeListContainsSuperOf<ReturnTypes, T>::value,
 1223   operator Matcher<T>() const {
 1224     static_assert(TypeListContainsSuperOf<ReturnTypes, T>::value,
 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 {
 1285 class HasMatcher : public WrapperMatcherInterface<T> {
 1290   bool matches(const T &Node, ASTMatchFinder *Finder,
 1304 class ForEachMatcher : public WrapperMatcherInterface<T> {
 1312   bool matches(const T& Node, ASTMatchFinder* Finder,
 1335   template <typename T> operator Matcher<T>() const {
 1337                Op, ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
 1338                getMatchers<T>(std::index_sequence_for<Ps...>()))
 1339         .template unconditionalConvertTo<T>();
 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>> {
 1740 getTemplateSpecializationArgs(const ClassTemplateSpecializationDecl &D) {
tools/clang/include/clang/ASTMatchers/Dynamic/VariantValue.h
  199   ast_matchers::internal::Matcher<T> getTypedMatcher() const {
  202         ->template convertTo<T>();
  227       : MatcherOps(ast_type_traits::ASTNodeKind::getFromNodeKind<T>()) {}
  228   typedef ast_matchers::internal::Matcher<T> MatcherT;
  232     return DynTypedMatcher(Matcher.convertTo<T>());
tools/clang/include/clang/Sema/Sema.h
 6356       ClassTemplateSpecializationDecl *BaseTemplateSpec,
 8418       SourceLocation Loc, ClassTemplateSpecializationDecl *ClassTemplateSpec);
 8422                            ClassTemplateSpecializationDecl *ClassTemplateSpec,
 8433                            ClassTemplateSpecializationDecl *ClassTemplateSpec,
tools/clang/include/clang/Serialization/ASTWriter.h
  718       const ClassTemplateSpecializationDecl *D) override;
tools/clang/lib/AST/ASTContext.cpp
  129   if (const auto *CTSD = dyn_cast<ClassTemplateSpecializationDecl>(D)) {
  129   if (const auto *CTSD = dyn_cast<ClassTemplateSpecializationDecl>(D)) {
  166       isa<ClassTemplateSpecializationDecl>(D))
  335     if (const auto *CTSD = dyn_cast<ClassTemplateSpecializationDecl>(CRD)) {
  335     if (const auto *CTSD = dyn_cast<ClassTemplateSpecializationDecl>(CRD)) {
 3943       !isa<ClassTemplateSpecializationDecl>(RD))
 6950       if (const auto *Spec = dyn_cast<ClassTemplateSpecializationDecl>(RDecl)) {
 6950       if (const auto *Spec = dyn_cast<ClassTemplateSpecializationDecl>(RDecl)) {
tools/clang/lib/AST/ASTDiagnostic.cpp
 1082     const ClassTemplateSpecializationDecl *CTSD =
 1083         dyn_cast<ClassTemplateSpecializationDecl>(RT->getDecl());
tools/clang/lib/AST/ASTDumper.cpp
   85 void ASTDumper::dumpTemplateDeclSpecialization(const SpecializationDecl *D,
   93     auto *Redecl = dyn_cast<SpecializationDecl>(RedeclWithBadType);
  132   for (const auto *Child : D->specializations())
tools/clang/lib/AST/ASTImporter.cpp
  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;
  245     LLVM_NODISCARD bool GetImportedOrCreateDecl(ToDeclT *&ToD, FromDeclT *FromD,
  245     LLVM_NODISCARD bool GetImportedOrCreateDecl(ToDeclT *&ToD, FromDeclT *FromD,
  256     GetImportedOrCreateSpecialDecl(ToDeclT *&ToD, CreateFunT CreateFun,
  257                                    FromDeclT *FromD, Args &&... args) {
  262       ToD = cast_or_null<ToDeclT>(Importer.GetAlreadyImportedOrNull(FromD));
  500                                             ClassTemplateSpecializationDecl *D);
 5152                                           ClassTemplateSpecializationDecl *D) {
 5170   ClassTemplateSpecializationDecl *PrevDecl = nullptr;
 5221   ClassTemplateSpecializationDecl *D2 = nullptr;
tools/clang/lib/AST/ASTStructuralEquivalence.cpp
 1131   const auto *Spec1 = dyn_cast<ClassTemplateSpecializationDecl>(D1);
 1131   const auto *Spec1 = dyn_cast<ClassTemplateSpecializationDecl>(D1);
 1132   const auto *Spec2 = dyn_cast<ClassTemplateSpecializationDecl>(D2);
 1132   const auto *Spec2 = dyn_cast<ClassTemplateSpecializationDecl>(D2);
tools/clang/lib/AST/Decl.cpp
  419                                  const ClassTemplateSpecializationDecl *spec,
  455     LinkageInfo &LV, const ClassTemplateSpecializationDecl *spec,
  855     if (const auto *spec = dyn_cast<ClassTemplateSpecializationDecl>(Tag)) {
  855     if (const auto *spec = dyn_cast<ClassTemplateSpecializationDecl>(Tag)) {
  990     if (const auto *spec = dyn_cast<ClassTemplateSpecializationDecl>(RD)) {
  990     if (const auto *spec = dyn_cast<ClassTemplateSpecializationDecl>(RD)) {
 1118   if (const auto *spec = dyn_cast<ClassTemplateSpecializationDecl>(ND)) {
 1118   if (const auto *spec = dyn_cast<ClassTemplateSpecializationDecl>(ND)) {
 1608     if (const auto *Spec = dyn_cast<ClassTemplateSpecializationDecl>(DC)) {
 1608     if (const auto *Spec = dyn_cast<ClassTemplateSpecializationDecl>(DC)) {
tools/clang/lib/AST/DeclBase.cpp
 1432   if (isa<ClassTemplateSpecializationDecl>(D))
tools/clang/lib/AST/DeclCXX.cpp
 1696   if (const auto *Spec = dyn_cast<ClassTemplateSpecializationDecl>(this))
 1696   if (const auto *Spec = dyn_cast<ClassTemplateSpecializationDecl>(this))
 1707   if (auto *Spec = dyn_cast<ClassTemplateSpecializationDecl>(this)) {
 1707   if (auto *Spec = dyn_cast<ClassTemplateSpecializationDecl>(this)) {
 1730   if (auto *TD = dyn_cast<ClassTemplateSpecializationDecl>(this)) {
tools/clang/lib/AST/DeclPrinter.cpp
   86                                             ClassTemplateSpecializationDecl *D);
  391           !isa<ClassTemplateSpecializationDecl>(DC))
  962     else if (auto S = dyn_cast<ClassTemplateSpecializationDecl>(D))
 1180     for (auto *I : D->specializations())
 1191                                            ClassTemplateSpecializationDecl *D) {
tools/clang/lib/AST/DeclTemplate.cpp
  235 typename RedeclarableTemplateDecl::SpecEntryTraits<EntryType>::DeclType *
  237     llvm::FoldingSetVector<EntryType> &Specs, ArrayRef<TemplateArgument> Args,
  239   using SETraits = SpecEntryTraits<EntryType>;
  242   EntryType::Profile(ID, Args, getASTContext());
  243   EntryType *Entry = Specs.FindNodeOrInsertPos(ID, InsertPos);
  249     llvm::FoldingSetVector<EntryType> &Specializations, EntryType *Entry,
  249     llvm::FoldingSetVector<EntryType> &Specializations, EntryType *Entry,
  251   using SETraits = SpecEntryTraits<EntryType>;
  264     EntryType *Existing = Specializations.GetOrInsertNode(Entry);
  399 llvm::FoldingSetVector<ClassTemplateSpecializationDecl> &
  418 ClassTemplateSpecializationDecl *
  424 void ClassTemplateDecl::AddSpecialization(ClassTemplateSpecializationDecl *D,
  747                                 ClassTemplateSpecializationDecl *PrevDecl)
  761 ClassTemplateSpecializationDecl *
  768                                    ClassTemplateSpecializationDecl *PrevDecl) {
  769   auto *Result =
  770       new (Context, DC) ClassTemplateSpecializationDecl(
  779 ClassTemplateSpecializationDecl *
  782   auto *Result =
  783     new (C, ID) ClassTemplateSpecializationDecl(C, ClassTemplateSpecialization);
tools/clang/lib/AST/Expr.cpp
  786     typedef SmallVector<const ClassTemplateSpecializationDecl *, 8> SpecsTy;
  790       const ClassTemplateSpecializationDecl *Spec
  791                                = dyn_cast<ClassTemplateSpecializationDecl>(Ctx);
tools/clang/lib/AST/ExprConstant.cpp
 1014         const auto *CTSD =
 1015             dyn_cast<ClassTemplateSpecializationDecl>(MD->getParent());
tools/clang/lib/AST/ExternalASTMerger.cpp
  456   for (auto *Spec : D->specializations()) {
tools/clang/lib/AST/ItaniumMangle.cpp
  800   if (const ClassTemplateSpecializationDecl *Spec =
  801         dyn_cast<ClassTemplateSpecializationDecl>(ND)) {
 4733   const ClassTemplateSpecializationDecl *SD =
 4734     dyn_cast<ClassTemplateSpecializationDecl>(RT->getDecl());
 4752 static bool isStreamCharSpecialization(const ClassTemplateSpecializationDecl*SD,
 4796   if (const ClassTemplateSpecializationDecl *SD =
 4797         dyn_cast<ClassTemplateSpecializationDecl>(ND)) {
tools/clang/lib/AST/Linkage.h
  116                        const ClassTemplateSpecializationDecl *spec,
tools/clang/lib/AST/MicrosoftMangle.cpp
  770   if (const ClassTemplateSpecializationDecl *Spec =
  771           dyn_cast<ClassTemplateSpecializationDecl>(ND)) {
tools/clang/lib/AST/NestedNameSpecifier.cpp
  307     const auto *Record =
  308             dyn_cast_or_null<ClassTemplateSpecializationDecl>(getAsRecordDecl());
tools/clang/lib/AST/ODRHash.cpp
  473     if (isa<ClassTemplateSpecializationDecl>(DC)) {
  521     if (isa<ClassTemplateSpecializationDecl>(DC)) return;
  638   const auto *Specialization =
  639             dyn_cast<ClassTemplateSpecializationDecl>(D);
tools/clang/lib/AST/QualTypeNames.cpp
  154     if (const auto *TSTDecl =
  155         dyn_cast<ClassTemplateSpecializationDecl>(TSTRecord->getDecl())) {
tools/clang/lib/AST/TypePrinter.cpp
 1122   } else if (const auto *Spec = dyn_cast<ClassTemplateSpecializationDecl>(DC)) {
 1122   } else if (const auto *Spec = dyn_cast<ClassTemplateSpecializationDecl>(DC)) {
 1205   if (const auto *Spec = dyn_cast<ClassTemplateSpecializationDecl>(D)) {
 1205   if (const auto *Spec = dyn_cast<ClassTemplateSpecializationDecl>(D)) {
tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp
  492       if (!isa<ClassTemplateSpecializationDecl>(Ctx)) {
  573                                             ClassTemplateSpecializationDecl>
tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h
   75     return Value.isMatcher() && Value.getMatcher().hasTypedMatcher<T>();
   78   static ast_matchers::internal::Matcher<T> get(const VariantValue &Value) {
   79     return Value.getMatcher().getTypedMatcher<T>();
   83     return ArgKind(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  361     RetTypes.push_back(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  466       ast_matchers::internal::VariadicDynCastAllOfMatcher<BaseT, DerivedT> Func,
  469         DerivedKind(ast_type_traits::ASTNodeKind::getFromNodeKind<DerivedT>()) {
  778     ast_matchers::internal::VariadicDynCastAllOfMatcher<BaseT, DerivedT>
tools/clang/lib/Analysis/PathDiagnostic.cpp
  910   if (const auto T = dyn_cast<ClassTemplateSpecializationDecl>(D))
tools/clang/lib/CodeGen/Address.h
  108 template <class U> inline U cast(CodeGen::Address addr) {
tools/clang/lib/CodeGen/CGDebugInfo.cpp
  314   if (isa<ClassTemplateSpecializationDecl>(RD)) {
  991     if (auto *TSpecial = dyn_cast<ClassTemplateSpecializationDecl>(RD))
 1489   if (isa<ClassTemplateSpecializationDecl>(RD)) {
 1883     const ClassTemplateSpecializationDecl *TSpecial, llvm::DIFile *Unit) {
 2111       if (auto *TD = dyn_cast<ClassTemplateSpecializationDecl>(CXXDecl))
 2197   if (const auto *SD = dyn_cast<ClassTemplateSpecializationDecl>(RD))
 2197   if (const auto *SD = dyn_cast<ClassTemplateSpecializationDecl>(RD))
 2929     const ClassTemplateSpecializationDecl &SD) {
 3187   if (const auto *TSpecial = dyn_cast<ClassTemplateSpecializationDecl>(RD))
 3187   if (const auto *TSpecial = dyn_cast<ClassTemplateSpecializationDecl>(RD))
tools/clang/lib/CodeGen/CGDebugInfo.h
  266   CollectCXXTemplateParams(const ClassTemplateSpecializationDecl *TS,
  503   void completeTemplateDefinition(const ClassTemplateSpecializationDecl &SD);
tools/clang/lib/CodeGen/CodeGenModule.cpp
 5260     const auto *Spec = cast<ClassTemplateSpecializationDecl>(D);
 5260     const auto *Spec = cast<ClassTemplateSpecializationDecl>(D);
tools/clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp
  152     for (const auto *D : CTD.specializations())
  170       HandleDecls(cast<ClassTemplateSpecializationDecl>(ND)->decls(), Symbols,
tools/clang/lib/Index/IndexDecl.cpp
  195     const auto *CTSD =
  196         dyn_cast<ClassTemplateSpecializationDecl>(D->getLexicalDeclContext());
  633                                            ClassTemplateSpecializationDecl *D) {
tools/clang/lib/Index/IndexSymbol.cpp
  137     } else if (isa<ClassTemplateSpecializationDecl>(D)) {
tools/clang/lib/Index/IndexingContext.cpp
  152   if (const ClassTemplateSpecializationDecl *
  153       SD = dyn_cast<ClassTemplateSpecializationDecl>(D)) {
  198   if (const auto *CTSD =
  199           dyn_cast<ClassTemplateSpecializationDecl>(D->getDeclContext()))
  207   if (const ClassTemplateSpecializationDecl *
  208       SD = dyn_cast<ClassTemplateSpecializationDecl>(D)) {
tools/clang/lib/Index/USRGeneration.cpp
  568   if (const ClassTemplateSpecializationDecl *Spec
  569                               = dyn_cast<ClassTemplateSpecializationDecl>(D)) {
tools/clang/lib/Sema/SemaAccess.cpp
  452     if (isa<ClassTemplateSpecializationDecl>(Record)) {
  453       CTD = cast<ClassTemplateSpecializationDecl>(Record)
tools/clang/lib/Sema/SemaCodeComplete.cpp
  747   if (isa<ClassTemplateSpecializationDecl>(ND) ||
 1031     if (isa<ClassTemplateSpecializationDecl>(Record))
tools/clang/lib/Sema/SemaDecl.cpp
  100                isa<ClassTemplateSpecializationDecl>(RD);
tools/clang/lib/Sema/SemaDeclCXX.cpp
 2471       if (auto *BaseTemplate = dyn_cast_or_null<ClassTemplateSpecializationDecl>(
 2471       if (auto *BaseTemplate = dyn_cast_or_null<ClassTemplateSpecializationDecl>(
 6031     ClassTemplateSpecializationDecl *BaseTemplateSpec, SourceLocation BaseLoc) {
 9660     ClassTemplateSpecializationDecl *Specialization =
 9661         dyn_cast<ClassTemplateSpecializationDecl>(RT->getDecl());
tools/clang/lib/Sema/SemaExpr.cpp
10883       if (auto *CTSD = dyn_cast<ClassTemplateSpecializationDecl>(DC)) {
10883       if (auto *CTSD = dyn_cast<ClassTemplateSpecializationDecl>(DC)) {
tools/clang/lib/Sema/SemaExprCXX.cpp
  297         if (ClassTemplateSpecializationDecl *Spec
  298               = dyn_cast<ClassTemplateSpecializationDecl>(Record->getDecl())) {
  611   if (const auto *CTSD = dyn_cast<ClassTemplateSpecializationDecl>(TD)) {
  611   if (const auto *CTSD = dyn_cast<ClassTemplateSpecializationDecl>(TD)) {
tools/clang/lib/Sema/SemaInit.cpp
 9662     auto *CTSD = dyn_cast<ClassTemplateSpecializationDecl>(Candidate);
tools/clang/lib/Sema/SemaLookup.cpp
 2749   if (ClassTemplateSpecializationDecl *Spec
 2750         = dyn_cast<ClassTemplateSpecializationDecl>(Class)) {
 4310           (SSIsTemplate || !isa<ClassTemplateSpecializationDecl>(CD)) &&
tools/clang/lib/Sema/SemaOpenMP.cpp
 1252   if (const auto *CTSD = dyn_cast_or_null<ClassTemplateSpecializationDecl>(RD))
 1252   if (const auto *CTSD = dyn_cast_or_null<ClassTemplateSpecializationDecl>(RD))
16160       !isa<ClassTemplateSpecializationDecl>(CurLexicalContext)) {
tools/clang/lib/Sema/SemaTemplate.cpp
   84       if (ClassTemplateSpecializationDecl *Spec
   85             = dyn_cast<ClassTemplateSpecializationDecl>(Record))
 1453     if (!PrevClassTemplate && isa<ClassTemplateSpecializationDecl>(PrevDecl)) {
 1455         = cast<ClassTemplateSpecializationDecl>(PrevDecl)
 2641       if (ClassTemplateSpecializationDecl *Spec
 2642           = dyn_cast<ClassTemplateSpecializationDecl>(Record)) {
 2780       } else if (ClassTemplateSpecializationDecl *Spec
 2781                      = dyn_cast<ClassTemplateSpecializationDecl>(Record)) {
 3350     ClassTemplateSpecializationDecl *Decl
 3356       Decl = ClassTemplateSpecializationDecl::Create(
 4859     if (auto *CTSD =
 4860             dyn_cast<ClassTemplateSpecializationDecl>(RecLoc.getDecl()))
 7820   ClassTemplateSpecializationDecl *PrevDecl = nullptr;
 7828   ClassTemplateSpecializationDecl *Specialization = nullptr;
 7903       = ClassTemplateSpecializationDecl::Create(Context, Kind,
 8926     Sema &S, ClassTemplateSpecializationDecl *Def) {
 8939     if (auto *BT = dyn_cast_or_null<ClassTemplateSpecializationDecl>(
 8939     if (auto *BT = dyn_cast_or_null<ClassTemplateSpecializationDecl>(
 9049   ClassTemplateSpecializationDecl *PrevDecl
 9072   ClassTemplateSpecializationDecl *Specialization = nullptr;
 9108       = ClassTemplateSpecializationDecl::Create(Context, Kind,
 9163   ClassTemplateSpecializationDecl *Def
 9164     = cast_or_null<ClassTemplateSpecializationDecl>(
 9174   Def = cast_or_null<ClassTemplateSpecializationDecl>(
10439     auto *SD = dyn_cast<ClassTemplateSpecializationDecl>(RD);
10439     auto *SD = dyn_cast<ClassTemplateSpecializationDecl>(RD);
tools/clang/lib/Sema/SemaTemplateDeduction.cpp
  585   ClassTemplateSpecializationDecl *SpecArg
  586     = dyn_cast<ClassTemplateSpecializationDecl>(RecordArg->getDecl());
tools/clang/lib/Sema/SemaTemplateInstantiate.cpp
  118     ClassTemplateSpecializationDecl *Spec
  119           = dyn_cast<ClassTemplateSpecializationDecl>(Ctx);
  495         if (isa<ClassTemplateSpecializationDecl>(Record))
 2102   } else if (ClassTemplateSpecializationDecl *Spec
 2103         = dyn_cast<ClassTemplateSpecializationDecl>(Instantiation)) {
 2465     SourceLocation Loc, ClassTemplateSpecializationDecl *ClassTemplateSpec) {
 2489     ClassTemplateSpecializationDecl *ClassTemplateSpec,
 2633     ClassTemplateSpecializationDecl *ClassTemplateSpec,
 2636   ClassTemplateSpec = cast<ClassTemplateSpecializationDecl>(
 2877                             ClassTemplateSpecializationDecl *ClassTemplateSpec,
tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
 2375       else if (const auto *Spec = dyn_cast<ClassTemplateSpecializationDecl>(A))
 2375       else if (const auto *Spec = dyn_cast<ClassTemplateSpecializationDecl>(A))
 3245     ClassTemplateSpecializationDecl *D) {
 3288   ClassTemplateSpecializationDecl *PrevDecl =
 3324   ClassTemplateSpecializationDecl *InstD =
 3325       ClassTemplateSpecializationDecl::Create(
 3604   ClassTemplateSpecializationDecl *PrevDecl
 5420         if (ClassTemplateSpecializationDecl *InstSpec
 5421                       = dyn_cast<ClassTemplateSpecializationDecl>(InstRecord)){
 5466                   Loc, cast<ClassTemplateSpecializationDecl>(SubstRecord))) {
tools/clang/lib/Sema/SemaType.cpp
 8075     } else if (auto *ClassTemplateSpec =
 8076             dyn_cast<ClassTemplateSpecializationDecl>(RD)) {
tools/clang/lib/Serialization/ASTReader.cpp
 7644   if (auto *CTSD = dyn_cast<ClassTemplateSpecializationDecl>(D))
tools/clang/lib/Serialization/ASTReaderDecl.cpp
  343                                             ClassTemplateSpecializationDecl *D);
  346         ClassTemplateSpecializationDecl *D) {
 1847     if (!isa<ClassTemplateSpecializationDecl>(D))
 2094     ClassTemplateSpecializationDecl *D) {
 2107           new (C) ClassTemplateSpecializationDecl::
 2127       ClassTemplateSpecializationDecl *CanonSpec;
 2155         new (C) ClassTemplateSpecializationDecl::ExplicitSpecializationInfo;
 2966   if (isa<ClassTemplateSpecializationDecl>(X)) {
 3733     D = ClassTemplateSpecializationDecl::CreateDeserialized(Context, ID);
 4388         auto *Spec = cast<ClassTemplateSpecializationDecl>(RD);
 4388         auto *Spec = cast<ClassTemplateSpecializationDecl>(RD);
tools/clang/lib/Serialization/ASTWriter.cpp
 5331           auto *Spec = cast<ClassTemplateSpecializationDecl>(RD);
 6578     const ClassTemplateDecl *TD, const ClassTemplateSpecializationDecl *D) {
tools/clang/lib/Serialization/ASTWriterDecl.cpp
   76                                             ClassTemplateSpecializationDecl *D);
  188     typename RedeclarableTemplateDecl::SpecEntryTraits<EntryType>::DeclType *
  189     getSpecializationDecl(EntryType &T) {
  190       return RedeclarableTemplateDecl::SpecEntryTraits<EntryType>::getDecl(&T);
  226       for (auto &Entry : Common->Specializations)
 1477                                            ClassTemplateSpecializationDecl *D) {
tools/clang/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp
  318     if (auto *TSD = dyn_cast<ClassTemplateSpecializationDecl>(RD)) {
tools/clang/lib/Tooling/Refactoring/Rename/USRFindingAction.cpp
  112     if (const auto *ClassTemplateSpecDecl =
  113             dyn_cast<ClassTemplateSpecializationDecl>(RecordDecl))
  119     for (const auto *Specialization : TemplateDecl->specializations())
tools/clang/tools/extra/clang-doc/Serialize.cpp
  598   if (const auto *SD =
  599           dyn_cast<ClassTemplateSpecializationDecl>(D->getParent()))
tools/clang/tools/extra/clang-tidy/bugprone/ParentVirtualCallCheck.cpp
  145       !isa<ClassTemplateSpecializationDecl>(Parents.front()))
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/ProBoundsConstantArrayIndexCheck.cpp
  106   const auto *StdArrayDecl =
  107       Result.Nodes.getNodeAs<ClassTemplateSpecializationDecl>("type");
tools/clang/tools/extra/clang-tidy/google/ExplicitConstructorCheck.cpp
   80     if (const auto *Specialization =
   81             dyn_cast<ClassTemplateSpecializationDecl>(RT->getDecl()))
tools/clang/tools/extra/clang-tidy/misc/UniqueptrResetReleaseCheck.cpp
   46   const auto *Class =
   47       Result.Nodes.getNodeAs<ClassTemplateSpecializationDecl>(ID);
   77   const auto *LeftAsTemplate =
   78       dyn_cast<ClassTemplateSpecializationDecl>(LeftDeleter);
   79   const auto *RightAsTemplate =
   80       dyn_cast<ClassTemplateSpecializationDecl>(RightDeleter);
tools/clang/tools/extra/clang-tidy/misc/UnusedUsingDeclsCheck.cpp
  112     } else if (const auto *Specialization =
  113                    dyn_cast<ClassTemplateSpecializationDecl>(Used)) {
tools/clang/tools/extra/clang-tidy/modernize/UseTransparentFunctorsCheck.cpp
   83   const auto *FuncClass =
   84       Result.Nodes.getNodeAs<ClassTemplateSpecializationDecl>("FunctorClass");
tools/clang/tools/extra/clang-tidy/performance/InefficientAlgorithmCheck.cpp
   69   const auto *IneffCont =
   70       Result.Nodes.getNodeAs<ClassTemplateSpecializationDecl>("IneffCont");
   74         Result.Nodes.getNodeAs<ClassTemplateSpecializationDecl>("IneffContPtr");
tools/clang/tools/extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp
  215   if (const auto *CTS = dyn_cast<ClassTemplateSpecializationDecl>(Container)) {
  215   if (const auto *CTS = dyn_cast<ClassTemplateSpecializationDecl>(Container)) {
tools/clang/tools/extra/clang-tidy/readability/IdentifierNamingCheck.cpp
  843     if (isa<ClassTemplateSpecializationDecl>(Decl))
tools/clang/tools/extra/clangd/AST.cpp
  169   } else if (auto *Cls = llvm::dyn_cast<ClassTemplateSpecializationDecl>(&ND)) {
tools/clang/tools/extra/clangd/FindSymbols.cpp
  243     if (auto *TemplSpec = llvm::dyn_cast<ClassTemplateSpecializationDecl>(D)) {
  243     if (auto *TemplSpec = llvm::dyn_cast<ClassTemplateSpecializationDecl>(D)) {
tools/clang/tools/extra/clangd/unittests/TypeHierarchyTests.cpp
  222   const ClassTemplateSpecializationDecl *CTS =
  223       dyn_cast<ClassTemplateSpecializationDecl>(arg);
tools/clang/tools/extra/modularize/Modularize.cpp
  620         isa<ClassTemplateSpecializationDecl>(ND) || isa<UsingDecl>(ND) ||
tools/clang/tools/libclang/CIndex.cpp
  706                                           ClassTemplateSpecializationDecl *D) {
 5039   if (const ClassTemplateSpecializationDecl *ClassSpec
 5040                               = dyn_cast<ClassTemplateSpecializationDecl>(D)) {
tools/clang/tools/libclang/CIndexCXX.cpp
   62     if (const ClassTemplateSpecializationDecl *PartialSpec
   95     else if (const ClassTemplateSpecializationDecl *ClassSpec 
   96                = dyn_cast<ClassTemplateSpecializationDecl>(CXXRecord)) {
tools/clang/tools/libclang/CXIndexDataConsumer.cpp
  130                                            ClassTemplateSpecializationDecl *D) {
 1231   if (const ClassTemplateSpecializationDecl *
 1232         SD = dyn_cast<ClassTemplateSpecializationDecl>(D)) {
tools/clang/tools/libclang/CXType.cpp
  183     const auto *TemplateDecl =
  184       dyn_cast<ClassTemplateSpecializationDecl>(RecordDecl);
tools/clang/tools/libclang/CursorVisitor.h
  207   bool VisitClassTemplateSpecializationDecl(ClassTemplateSpecializationDecl *D);
tools/clang/unittests/AST/ASTImporterFixtures.h
  174   template <class DeclT> DeclT *Import(DeclT *From, Language Lang) {
  174   template <class DeclT> DeclT *Import(DeclT *From, Language Lang) {
  175     return cast_or_null<DeclT>(Import(cast<Decl>(From), Lang));
tools/clang/unittests/AST/ASTImporterGenericRedeclTest.cpp
   94   using DeclTy = ClassTemplateSpecializationDecl;
  160     auto *FromD = FirstDeclMatcher<DeclTy>().match(FromTU, getPattern());
  167     auto *ToD = LastDeclMatcher<DeclTy>().match(ToTU, getPattern());
  177     auto *FromD = FirstDeclMatcher<DeclTy>().match(FromTU, getPattern());
  184     auto *ToD = LastDeclMatcher<DeclTy>().match(ToTU, getPattern());
  193     auto *From0 = FirstDeclMatcher<DeclTy>().match(FromTU, getPattern());
  194     auto *From1 = LastDeclMatcher<DeclTy>().match(FromTU, getPattern());
  203     auto *To0 = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  204     auto *To1 = LastDeclMatcher<DeclTy>().match(ToTU, getPattern());
  215     auto *FromProto = FirstDeclMatcher<DeclTy>().match(FromTU, getPattern());
  216     auto *FromDef = LastDeclMatcher<DeclTy>().match(FromTU, getPattern());
  225     auto *ToProto = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  226     auto *ToDef = LastDeclMatcher<DeclTy>().match(ToTU, getPattern());
  237     auto *FromDef = FirstDeclMatcher<DeclTy>().match(FromTU, getPattern());
  238     auto *FromProto = LastDeclMatcher<DeclTy>().match(FromTU, getPattern());
  247     auto *ToDef = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  248     auto *ToProto = LastDeclMatcher<DeclTy>().match(ToTU, getPattern());
  260     auto *From0 = FirstDeclMatcher<DeclTy>().match(FromTU0, getPattern());
  261     auto *From1 = FirstDeclMatcher<DeclTy>().match(FromTU1, getPattern());
  270     auto *To0 = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  271     auto *To1 = LastDeclMatcher<DeclTy>().match(ToTU, getPattern());
  283     auto *From0 = FirstDeclMatcher<DeclTy>().match(FromTU0, getPattern());
  284     auto *From1 = FirstDeclMatcher<DeclTy>().match(FromTU1, getPattern());
  294     auto *To0 = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  305     auto *FromDef = FirstDeclMatcher<DeclTy>().match(FromTUDef, getPattern());
  306     auto *FromProto =
  317     auto *ToDef = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  318     auto *ToProto = LastDeclMatcher<DeclTy>().match(ToTU, getPattern());
  330     auto *FromProto =
  332     auto *FromDef = FirstDeclMatcher<DeclTy>().match(FromTUDef, getPattern());
  342     auto *ToProto = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  343     auto *ToDef = LastDeclMatcher<DeclTy>().match(ToTU, getPattern());
tools/clang/unittests/AST/ASTImporterODRStrategiesTest.cpp
  151   using DeclTy = ClassTemplateSpecializationDecl;
  253     auto *ToD = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  256     auto *FromD = FirstDeclMatcher<DeclTy>().match(FromTU, getPattern());
tools/clang/unittests/AST/ASTImporterTest.cpp
 1818   auto *FromD = FirstDeclMatcher<ClassTemplateSpecializationDecl>().match(
 3312   auto *ToSpec = FirstDeclMatcher<ClassTemplateSpecializationDecl>().match(
 3325   auto *FromSpec = FirstDeclMatcher<ClassTemplateSpecializationDecl>().match(
 3332   auto *ImportedSpec = Import(FromSpec, Lang_CXX11);
 3364   auto *FromSpec = FirstDeclMatcher<ClassTemplateSpecializationDecl>().match(
 3374   auto *ImportedSpec = Import(FromSpec, Lang_CXX11);
 3376   auto *ToSpec = FirstDeclMatcher<ClassTemplateSpecializationDecl>().match(
 3411   auto *FromSpec = FirstDeclMatcher<ClassTemplateSpecializationDecl>().match(
 3413   auto *ImportedSpec = Import(FromSpec, Lang_CXX11);
 3449   auto *FromSpec = FirstDeclMatcher<ClassTemplateSpecializationDecl>().match(
 3461   auto *ImportedSpec = Import(FromSpec, Lang_CXX11);
 3463   auto *ToSpec = FirstDeclMatcher<ClassTemplateSpecializationDecl>().match(
 3510   auto *FromSpec = FirstDeclMatcher<ClassTemplateSpecializationDecl>().match(
 3512   auto *ToSpec = FirstDeclMatcher<ClassTemplateSpecializationDecl>().match(
 3515   auto *ImportedSpec = Import(FromSpec, Lang_CXX11);
 3540   auto *FromSpec = FirstDeclMatcher<ClassTemplateSpecializationDecl>().match(
 3543   auto *ImportedSpec = Import(FromSpec, Lang_CXX11);
 3807   ClassTemplateSpecializationDecl *Imported1;
 3812     auto *FromD = FirstDeclMatcher<ClassTemplateSpecializationDecl>().match(
 3815     Imported1 = cast<ClassTemplateSpecializationDecl>(Import(FromD, Lang_CXX));
 3817   ClassTemplateSpecializationDecl *Imported2;
 3823     auto *FromD = FirstDeclMatcher<ClassTemplateSpecializationDecl>().match(
 3826     Imported2 = cast<ClassTemplateSpecializationDecl>(Import(FromD, Lang_CXX));
 4002   auto *Spec = FirstDeclMatcher<ClassTemplateSpecializationDecl>().match(
 4655   auto *Spec = FirstDeclMatcher<ClassTemplateSpecializationDecl>().match(
 4892   auto *FromSpec = FirstDeclMatcher<ClassTemplateSpecializationDecl>().match(
 4894   ClassTemplateSpecializationDecl *ImportedSpec = Import(FromSpec, Lang_CXX);
tools/clang/unittests/AST/ASTTraverserTest.cpp
  217   auto Templ = Result[0].getNodeAs<ClassTemplateSpecializationDecl>("fn");
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>("")) {
tools/clang/unittests/AST/StructuralEquivalenceTest.cpp
   25   std::tuple<NodeType *, NodeType *> makeDecls(
   25   std::tuple<NodeType *, NodeType *> makeDecls(
   37     NodeType *D0 = FirstDeclMatcher<NodeType>().match(
   39     NodeType *D1 = FirstDeclMatcher<NodeType>().match(
   63   std::tuple<NodeType *, NodeType *> makeDecls(
   63   std::tuple<NodeType *, NodeType *> makeDecls(
   66     return makeDecls<NodeType, MatcherType>(
  140   auto Decls = makeDecls<ClassTemplateSpecializationDecl>(
  151   auto Decls = makeDecls<ClassTemplateSpecializationDecl>(
  162   auto Decls = makeDecls<ClassTemplateSpecializationDecl>(
  949   auto t = makeDecls<ClassTemplateSpecializationDecl>(
  979   auto t = makeDecls<ClassTemplateSpecializationDecl>(
 1149   auto t = makeDecls<ClassTemplateSpecializationDecl>(
 1175   auto t = makeDecls<ClassTemplateSpecializationDecl>(
 1202   auto t = makeDecls<ClassTemplateSpecializationDecl>(
 1228   auto t = makeDecls<ClassTemplateSpecializationDecl>(
 1255   auto t = makeDecls<ClassTemplateSpecializationDecl>(
tools/lldb/include/lldb/Symbol/ClangASTContext.h
  301   clang::ClassTemplateSpecializationDecl *CreateClassTemplateSpecializationDecl(
  307   CreateClassTemplateSpecializationType(clang::ClassTemplateSpecializationDecl *
  977   const clang::ClassTemplateSpecializationDecl *
tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
 1535         clang::ClassTemplateSpecializationDecl *class_specialization_decl =
tools/lldb/source/Symbol/ClangASTContext.cpp
 1608 ClassTemplateSpecializationDecl *
 1622   ClassTemplateSpecializationDecl *class_template_specialization_decl =
 1623       ClassTemplateSpecializationDecl::Create(
 1635     ClassTemplateSpecializationDecl *class_template_specialization_decl) {
 7655         const clang::ClassTemplateSpecializationDecl *template_decl =
 7656             llvm::dyn_cast<clang::ClassTemplateSpecializationDecl>(
 7696 const clang::ClassTemplateSpecializationDecl *
 7712     return llvm::dyn_cast<clang::ClassTemplateSpecializationDecl>(
 7745   const clang::ClassTemplateSpecializationDecl *template_decl =
 7784   const clang::ClassTemplateSpecializationDecl *template_decl =
 7800   const clang::ClassTemplateSpecializationDecl *template_decl =
tools/lldb/source/Symbol/CxxModuleHandler.cpp
  171 T *createDecl(ASTImporter &importer, Decl *from_d, Args &&... args) {
  172   T *to_d = T::Create(std::forward<Args>(args)...);
  172   T *to_d = T::Create(std::forward<Args>(args)...);
  181   auto td = dyn_cast<ClassTemplateSpecializationDecl>(d);
  258   ClassTemplateSpecializationDecl *result =
  269   result = createDecl<ClassTemplateSpecializationDecl>(
usr/include/c++/7.4.0/bits/stl_iterator_base_types.h
  123       typedef _Tp        value_type;
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; };
 1633     { typedef _Tp   type; };
 1983     { typedef _Up     type; };
 1999     { typedef typename remove_reference<_Tp>::type*     type; };
 2003     : public __add_pointer_helper<_Tp>
utils/unittest/googletest/include/gtest/gtest-printers.h
  407                     T* p, ::std::ostream* os) {
  416     if (IsTrue(ImplicitlyConvertible<T*, const void*>::value)) {