|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
Derived Classes
tools/clang/include/clang/AST/DeclTemplate.h 961 class FunctionTemplateDecl : public RedeclarableTemplateDecl {
2069 class ClassTemplateDecl : public RedeclarableTemplateDecl {
2341 class TypeAliasTemplateDecl : public RedeclarableTemplateDecl {
2891 class VarTemplateDecl : public RedeclarableTemplateDecl {
Declarations
gen/tools/clang/include/clang/AST/DeclNodes.inc 197 ABSTRACT_DECL(REDECLARABLETEMPLATE(RedeclarableTemplate, TemplateDecl))
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
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;
360 typename cast_retty<X, Y>::ret_type>::type
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/Decl.h 4406 decl_type *MostRecent = First->getNextRedeclaration();
4407 RedeclLink = PreviousDeclLink(cast<decl_type>(MostRecent));
tools/clang/include/clang/AST/DeclTemplate.h 737 public Redeclarable<RedeclarableTemplateDecl>
739 using redeclarable_base = Redeclarable<RedeclarableTemplateDecl>;
741 RedeclarableTemplateDecl *getNextRedeclarationImpl() override {
745 RedeclarableTemplateDecl *getPreviousDeclImpl() override {
749 RedeclarableTemplateDecl *getMostRecentDeclImpl() override {
812 llvm::PointerIntPair<RedeclarableTemplateDecl*, 1, bool>
847 RedeclarableTemplateDecl *getCanonicalDecl() override {
850 const RedeclarableTemplateDecl *getCanonicalDecl() const {
919 RedeclarableTemplateDecl *getInstantiatedFromMemberTemplate() const {
923 void setInstantiatedFromMemberTemplate(RedeclarableTemplateDecl *TD) {
961 class FunctionTemplateDecl : public RedeclarableTemplateDecl {
2069 class ClassTemplateDecl : public RedeclarableTemplateDecl {
2341 class TypeAliasTemplateDecl : public RedeclarableTemplateDecl {
2891 class VarTemplateDecl : public RedeclarableTemplateDecl {
tools/clang/include/clang/AST/JSONNodeDumper.h 172 template <typename T> void writePreviousDeclImpl(const Redeclarable<T> *D) {
173 const T *Prev = D->getPreviousDecl();
tools/clang/include/clang/AST/Redeclarable.h 113 DeclLink(PreviousTag, decl_type *D) : Link(NotKnownLatest(Previous(D))) {}
122 decl_type *getPrevious(const decl_type *D) const {
122 decl_type *getPrevious(const decl_type *D) const {
137 void setPrevious(decl_type *D) {
142 void setLatest(decl_type *D) {
166 static DeclLink PreviousDeclLink(decl_type *D) {
187 decl_type *First;
189 decl_type *getNextRedeclaration() const {
203 decl_type *getPreviousDecl() {
208 const decl_type *getPreviousDecl() const {
215 decl_type *getFirstDecl() { return First; }
219 const decl_type *getFirstDecl() const { return First; }
225 decl_type *getMostRecentDecl() {
230 const decl_type *getMostRecentDecl() const {
236 void setPreviousDecl(decl_type *PrevDecl);
241 decl_type *Current = nullptr;
242 decl_type *Starter;
246 using value_type = decl_type *;
247 using reference = decl_type *;
248 using pointer = decl_type *;
253 explicit redecl_iterator(decl_type *C) : Current(C), Starter(C) {}
271 decl_type *Next = Current->getNextRedeclaration();
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/lib/AST/ASTContext.cpp 165 isa<RedeclarableTemplateDecl>(D) ||
tools/clang/lib/AST/Decl.cpp 188 std::enable_if<!std::is_base_of<RedeclarableTemplateDecl, T>::value, bool>::type
200 static bool isExplicitMemberSpecialization(const RedeclarableTemplateDecl *D) {
1034 if (const auto *redeclTemp = dyn_cast<RedeclarableTemplateDecl>(temp)) {
1034 if (const auto *redeclTemp = dyn_cast<RedeclarableTemplateDecl>(temp)) {
1676 template<typename T> static bool isRedeclarableImpl(Redeclarable<T> *) {
tools/clang/lib/AST/DeclPrinter.cpp 797 VisitRedeclarableTemplateDecl(CTD);
1151 VisitRedeclarableTemplateDecl(D);
1177 VisitRedeclarableTemplateDecl(D);
tools/clang/lib/AST/DeclTemplate.cpp 189 RedeclarableTemplateDecl::CommonBase *RedeclarableTemplateDecl::getCommonPtr() const {
195 SmallVector<const RedeclarableTemplateDecl *, 2> PrevDecls;
196 for (const RedeclarableTemplateDecl *Prev = getPreviousDecl(); Prev;
215 for (const RedeclarableTemplateDecl *Prev : PrevDecls)
235 typename RedeclarableTemplateDecl::SpecEntryTraits<EntryType>::DeclType *
295 RedeclarableTemplateDecl::CommonBase *
341 using Base = RedeclarableTemplateDecl;
411 RedeclarableTemplateDecl::CommonBase *
964 RedeclarableTemplateDecl::CommonBase *
1028 RedeclarableTemplateDecl::CommonBase *
tools/clang/lib/AST/ODRHash.cpp 418 void VisitRedeclarableTemplateDecl(const RedeclarableTemplateDecl *D) {
420 Inherited::VisitRedeclarableTemplateDecl(D);
tools/clang/lib/AST/TextNodeDumper.cpp 31 static void dumpPreviousDeclImpl(raw_ostream &OS, const Redeclarable<T> *D) {
32 const T *Prev = D->getPreviousDecl();
tools/clang/lib/Serialization/ASTReader.cpp 9997 auto RTD = cast<RedeclarableTemplateDecl>(D)->getCanonicalDecl();
9999 cast<RedeclarableTemplateDecl>(R)->Common = RTD->Common;
tools/clang/lib/Serialization/ASTReaderDecl.cpp 144 T *ReadDeclAs() {
145 return Record.readDeclAs<T>();
249 operator T*() const { return dyn_cast_or_null<T>(Existing); }
249 operator T*() const { return dyn_cast_or_null<T>(Existing); }
386 RedeclarableResult VisitRedeclarableTemplateDecl(RedeclarableTemplateDecl *D);
412 RedeclarableResult VisitRedeclarable(Redeclarable<T> *D);
415 void mergeRedeclarable(Redeclarable<T> *D, RedeclarableResult &Redecl,
419 void mergeRedeclarable(Redeclarable<T> *D, T *Existing,
419 void mergeRedeclarable(Redeclarable<T> *D, T *Existing,
426 void mergeTemplatePattern(RedeclarableTemplateDecl *D,
427 RedeclarableTemplateDecl *Existing,
2016 ASTDeclReader::VisitRedeclarableTemplateDecl(RedeclarableTemplateDecl *D) {
2021 RedeclarableTemplateDecl *CanonD = D->getCanonicalDecl();
2031 if (auto *RTD = ReadDeclAs<RedeclarableTemplateDecl>()) {
2031 if (auto *RTD = ReadDeclAs<RedeclarableTemplateDecl>()) {
2394 auto *FirstDecl = cast_or_null<T>(Reader.GetDecl(FirstDeclID));
2394 auto *FirstDecl = cast_or_null<T>(Reader.GetDecl(FirstDeclID));
2400 D->RedeclLink = Redeclarable<T>::PreviousDeclLink(FirstDecl);
2404 auto *DAsT = static_cast<T *>(D);
2430 auto *D = static_cast<T *>(DBase);
2434 mergeRedeclarable(D, cast<T>(Existing), Redecl, TemplatePatternID);
2436 if (T *Existing = ExistingRes)
2450 void ASTDeclReader::mergeTemplatePattern(RedeclarableTemplateDecl *D,
2451 RedeclarableTemplateDecl *Existing,
2496 auto *D = static_cast<T *>(DBase);
2497 T *ExistingCanon = Existing->getCanonicalDecl();
2498 T *DCanon = D->getCanonicalDecl();
2506 D->RedeclLink = Redeclarable<T>::PreviousDeclLink(ExistingCanon);
2519 if (auto *DTemplate = dyn_cast<RedeclarableTemplateDecl>(D))
2519 if (auto *DTemplate = dyn_cast<RedeclarableTemplateDecl>(D))
2521 DTemplate, assert_cast<RedeclarableTemplateDecl*>(ExistingCanon),
3381 Decl *ASTDeclReader::getMostRecentDeclImpl(Redeclarable<DeclT> *D) {
3408 Redeclarable<DeclT> *D,
3410 D->RedeclLink.setPrevious(cast<DeclT>(Previous));
3411 D->First = cast<DeclT>(Previous)->First;
3567 void ASTDeclReader::attachLatestDeclImpl(Redeclarable<DeclT> *D, Decl *Latest) {
3568 D->RedeclLink.setLatest(cast<DeclT>(Latest));
3589 void ASTDeclReader::markIncompleteDeclChainImpl(Redeclarable<DeclT> *D) {
tools/clang/lib/Serialization/ASTWriterDecl.cpp 106 void VisitRedeclarableTemplateDecl(RedeclarableTemplateDecl *D);
129 template <typename T> void VisitRedeclarable(Redeclarable<T> *D);
188 typename RedeclarableTemplateDecl::SpecEntryTraits<EntryType>::DeclType *
190 return RedeclarableTemplateDecl::SpecEntryTraits<EntryType>::getDecl(&T);
1452 void ASTDeclWriter::VisitRedeclarableTemplateDecl(RedeclarableTemplateDecl *D) {
1722 T *First = D->getFirstDecl();
1723 T *MostRecent = First->getMostRecentDecl();
1724 T *DAsT = static_cast<T *>(D);
tools/clang/tools/libclang/CIndexCXX.cpp 114 } else if (const RedeclarableTemplateDecl *Tmpl
115 = dyn_cast<RedeclarableTemplateDecl>(D))
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>