diff options
-rw-r--r-- | include/clang/AST/Decl.h | 162 | ||||
-rw-r--r-- | include/clang/AST/DeclBase.h | 26 | ||||
-rw-r--r-- | include/clang/AST/DeclCXX.h | 15 | ||||
-rw-r--r-- | include/clang/AST/DeclObjC.h | 52 | ||||
-rw-r--r-- | include/clang/AST/DeclTemplate.h | 72 | ||||
-rw-r--r-- | include/clang/AST/Redeclarable.h | 18 | ||||
-rw-r--r-- | lib/AST/ASTContext.cpp | 10 | ||||
-rw-r--r-- | lib/AST/Decl.cpp | 26 | ||||
-rw-r--r-- | lib/AST/DeclBase.cpp | 4 | ||||
-rw-r--r-- | lib/AST/DeclCXX.cpp | 8 | ||||
-rw-r--r-- | lib/AST/DeclTemplate.cpp | 12 | ||||
-rw-r--r-- | lib/AST/DumpXML.cpp | 2 | ||||
-rw-r--r-- | lib/CodeGen/CodeGenModule.cpp | 2 | ||||
-rw-r--r-- | lib/Sema/Sema.cpp | 4 | ||||
-rw-r--r-- | lib/Sema/SemaAccess.cpp | 8 | ||||
-rw-r--r-- | lib/Sema/SemaDecl.cpp | 12 | ||||
-rw-r--r-- | lib/Sema/SemaDeclCXX.cpp | 8 | ||||
-rw-r--r-- | lib/Sema/SemaLookup.cpp | 2 | ||||
-rw-r--r-- | lib/Sema/SemaTemplate.cpp | 4 | ||||
-rw-r--r-- | lib/Sema/SemaTemplateInstantiate.cpp | 4 | ||||
-rw-r--r-- | lib/Sema/SemaTemplateInstantiateDecl.cpp | 20 | ||||
-rw-r--r-- | lib/Serialization/ASTReaderDecl.cpp | 2 | ||||
-rw-r--r-- | lib/Serialization/ASTWriterDecl.cpp | 20 | ||||
-rw-r--r-- | tools/libclang/IndexingContext.cpp | 4 | ||||
-rw-r--r-- | tools/libclang/IndexingContext.h | 4 |
25 files changed, 255 insertions, 246 deletions
diff --git a/include/clang/AST/Decl.h b/include/clang/AST/Decl.h index c85894d96f..4d01520467 100644 --- a/include/clang/AST/Decl.h +++ b/include/clang/AST/Decl.h @@ -380,7 +380,13 @@ class NamespaceDecl : public NamedDecl, public DeclContext, virtual NamespaceDecl *getNextRedeclaration() { return RedeclLink.getNext(); } - + virtual NamespaceDecl *getPreviousDeclImpl() { + return getPreviousDecl(); + } + virtual NamespaceDecl *getMostRecentDeclImpl() { + return getMostRecentDecl(); + } + public: static NamespaceDecl *Create(ASTContext &C, DeclContext *DC, bool Inline, SourceLocation StartLoc, @@ -388,14 +394,12 @@ public: NamespaceDecl *PrevDecl); static NamespaceDecl *CreateDeserialized(ASTContext &C, unsigned ID); - - typedef redeclarable_base::redecl_iterator redecl_iterator; - redecl_iterator redecls_begin() const { - return redeclarable_base::redecls_begin(); - } - redecl_iterator redecls_end() const { - return redeclarable_base::redecls_end(); - } + + using redeclarable_base::redecl_iterator; + using redeclarable_base::redecls_begin; + using redeclarable_base::redecls_end; + using redeclarable_base::getPreviousDecl; + using redeclarable_base::getMostRecentDecl; /// \brief Returns true if this is an anonymous namespace declaration. /// @@ -461,14 +465,6 @@ public: return AnonOrFirstNamespaceAndInline.getPointer(); } - virtual NamespaceDecl *getPreviousDecl() { - return redeclarable_base::getPreviousDeclaration(); - } - - virtual NamespaceDecl *getMostRecentDecl() { - return redeclarable_base::getMostRecentDeclaration(); - } - virtual SourceRange getSourceRange() const { return SourceRange(LocStart, RBraceLoc); } @@ -788,23 +784,19 @@ protected: typedef Redeclarable<VarDecl> redeclarable_base; virtual VarDecl *getNextRedeclaration() { return RedeclLink.getNext(); } - -public: - typedef redeclarable_base::redecl_iterator redecl_iterator; - redecl_iterator redecls_begin() const { - return redeclarable_base::redecls_begin(); + virtual VarDecl *getPreviousDeclImpl() { + return getPreviousDecl(); } - redecl_iterator redecls_end() const { - return redeclarable_base::redecls_end(); + virtual VarDecl *getMostRecentDeclImpl() { + return getMostRecentDecl(); } - virtual VarDecl *getPreviousDecl() { - return redeclarable_base::getPreviousDeclaration(); - } - - virtual VarDecl *getMostRecentDecl() { - return redeclarable_base::getMostRecentDeclaration(); - } +public: + using redeclarable_base::redecl_iterator; + using redeclarable_base::redecls_begin; + using redeclarable_base::redecls_end; + using redeclarable_base::getPreviousDecl; + using redeclarable_base::getMostRecentDecl; static VarDecl *Create(ASTContext &C, DeclContext *DC, SourceLocation StartLoc, SourceLocation IdLoc, @@ -1375,7 +1367,7 @@ private: /// FunctionDecl (e.g., the translation unit); this FunctionDecl /// contains all of the information known about the function. Other, /// previous declarations of the function are available via the -/// getPreviousDeclaration() chain. +/// getPreviousDecl() chain. class FunctionDecl : public DeclaratorDecl, public DeclContext, public Redeclarable<FunctionDecl> { public: @@ -1505,23 +1497,19 @@ protected: typedef Redeclarable<FunctionDecl> redeclarable_base; virtual FunctionDecl *getNextRedeclaration() { return RedeclLink.getNext(); } - -public: - typedef redeclarable_base::redecl_iterator redecl_iterator; - redecl_iterator redecls_begin() const { - return redeclarable_base::redecls_begin(); + virtual FunctionDecl *getPreviousDeclImpl() { + return getPreviousDecl(); } - redecl_iterator redecls_end() const { - return redeclarable_base::redecls_end(); + virtual FunctionDecl *getMostRecentDeclImpl() { + return getMostRecentDecl(); } - virtual FunctionDecl *getPreviousDecl() { - return redeclarable_base::getPreviousDeclaration(); - } - - virtual FunctionDecl *getMostRecentDecl() { - return redeclarable_base::getMostRecentDeclaration(); - } +public: + using redeclarable_base::redecl_iterator; + using redeclarable_base::redecls_begin; + using redeclarable_base::redecls_end; + using redeclarable_base::getPreviousDecl; + using redeclarable_base::getMostRecentDecl; static FunctionDecl *Create(ASTContext &C, DeclContext *DC, SourceLocation StartLoc, SourceLocation NLoc, @@ -2295,23 +2283,19 @@ protected: virtual TypedefNameDecl *getNextRedeclaration() { return RedeclLink.getNext(); } - -public: - typedef redeclarable_base::redecl_iterator redecl_iterator; - redecl_iterator redecls_begin() const { - return redeclarable_base::redecls_begin(); + virtual TypedefNameDecl *getPreviousDeclImpl() { + return getPreviousDecl(); } - redecl_iterator redecls_end() const { - return redeclarable_base::redecls_end(); + virtual TypedefNameDecl *getMostRecentDeclImpl() { + return getMostRecentDecl(); } - virtual TypedefNameDecl *getPreviousDecl() { - return redeclarable_base::getPreviousDeclaration(); - } - - virtual TypedefNameDecl *getMostRecentDecl() { - return redeclarable_base::getMostRecentDeclaration(); - } +public: + using redeclarable_base::redecl_iterator; + using redeclarable_base::redecls_begin; + using redeclarable_base::redecls_end; + using redeclarable_base::getPreviousDecl; + using redeclarable_base::getMostRecentDecl; TypeSourceInfo *getTypeSourceInfo() const { return TInfo; @@ -2466,6 +2450,12 @@ protected: typedef Redeclarable<TagDecl> redeclarable_base; virtual TagDecl *getNextRedeclaration() { return RedeclLink.getNext(); } + virtual TagDecl *getPreviousDeclImpl() { + return getPreviousDecl(); + } + virtual TagDecl *getMostRecentDeclImpl() { + return getMostRecentDecl(); + } /// @brief Completes the definition of this tag declaration. /// @@ -2473,21 +2463,11 @@ protected: void completeDefinition(); public: - typedef redeclarable_base::redecl_iterator redecl_iterator; - redecl_iterator redecls_begin() const { - return redeclarable_base::redecls_begin(); - } - redecl_iterator redecls_end() const { - return redeclarable_base::redecls_end(); - } - - virtual TagDecl *getPreviousDecl() { - return redeclarable_base::getPreviousDeclaration(); - } - - virtual TagDecl *getMostRecentDecl() { - return redeclarable_base::getMostRecentDeclaration(); - } + using redeclarable_base::redecl_iterator; + using redeclarable_base::redecls_begin; + using redeclarable_base::redecls_end; + using redeclarable_base::getPreviousDecl; + using redeclarable_base::getMostRecentDecl; SourceLocation getRBraceLoc() const { return RBraceLoc; } void setRBraceLoc(SourceLocation L) { RBraceLoc = L; } @@ -2684,11 +2664,18 @@ public: return cast<EnumDecl>(TagDecl::getCanonicalDecl()); } - const EnumDecl *getPreviousDeclaration() const { - return cast_or_null<EnumDecl>(TagDecl::getPreviousDeclaration()); + const EnumDecl *getPreviousDecl() const { + return cast_or_null<EnumDecl>(TagDecl::getPreviousDecl()); + } + EnumDecl *getPreviousDecl() { + return cast_or_null<EnumDecl>(TagDecl::getPreviousDecl()); + } + + const EnumDecl *getMostRecentDecl() const { + return cast<EnumDecl>(TagDecl::getMostRecentDecl()); } - EnumDecl *getPreviousDeclaration() { - return cast_or_null<EnumDecl>(TagDecl::getPreviousDeclaration()); + EnumDecl *getMostRecentDecl() { + return cast<EnumDecl>(TagDecl::getMostRecentDecl()); } static EnumDecl *Create(ASTContext &C, DeclContext *DC, @@ -2857,11 +2844,18 @@ public: IdentifierInfo *Id, RecordDecl* PrevDecl = 0); static RecordDecl *CreateDeserialized(const ASTContext &C, unsigned ID); - const RecordDecl *getPreviousDeclaration() const { - return cast_or_null<RecordDecl>(TagDecl::getPreviousDeclaration()); + const RecordDecl *getPreviousDecl() const { + return cast_or_null<RecordDecl>(TagDecl::getPreviousDecl()); + } + RecordDecl *getPreviousDecl() { + return cast_or_null<RecordDecl>(TagDecl::getPreviousDecl()); + } + + const RecordDecl *getMostRecentDecl() const { + return cast<RecordDecl>(TagDecl::getMostRecentDecl()); } - RecordDecl *getPreviousDeclaration() { - return cast_or_null<RecordDecl>(TagDecl::getPreviousDeclaration()); + RecordDecl *getMostRecentDecl() { + return cast<RecordDecl>(TagDecl::getMostRecentDecl()); } bool hasFlexibleArrayMember() const { return HasFlexibleArrayMember; } @@ -3220,7 +3214,7 @@ void Redeclarable<decl_type>::setPreviousDeclaration(decl_type *PrevDecl) { // redeclaration, or we can build invalid chains. If the most recent // redeclaration is invalid, it won't be PrevDecl, but we want it anyway. RedeclLink = PreviousDeclLink( - llvm::cast<decl_type>(PrevDecl->getMostRecentDeclaration())); + llvm::cast<decl_type>(PrevDecl->getMostRecentDecl())); First = PrevDecl->getFirstDeclaration(); assert(First->RedeclLink.NextIsLatest() && "Expected first"); } else { diff --git a/include/clang/AST/DeclBase.h b/include/clang/AST/DeclBase.h index 210511e0de..c92e6dde28 100644 --- a/include/clang/AST/DeclBase.h +++ b/include/clang/AST/DeclBase.h @@ -666,6 +666,14 @@ protected: /// Decl::redecl_iterator can iterate over them. virtual Decl *getNextRedeclaration() { return this; } + /// \brief Implementation of getPreviousDecl(), to be overridden by any + /// subclass that has a redeclaration chain. + virtual Decl *getPreviousDeclImpl() { return 0; } + + /// \brief Implementation of getMostRecentDecl(), to be overridden by any + /// subclass that has a redeclaration chain. + virtual Decl *getMostRecentDeclImpl() { return this; } + public: /// \brief Iterates through all the redeclarations of the same decl. class redecl_iterator { @@ -718,12 +726,24 @@ public: /// \brief Retrieve the previous declaration that declares the same entity /// as this declaration, or NULL if there is no previous declaration. - virtual Decl *getPreviousDecl() { return 0; } + Decl *getPreviousDecl() { return getPreviousDeclImpl(); } /// \brief Retrieve the most recent declaration that declares the same entity - /// as this declaration (which may be this declaration). - virtual Decl *getMostRecentDecl() { return this; } + /// as this declaration, or NULL if there is no previous declaration. + const Decl *getPreviousDecl() const { + return const_cast<Decl *>(this)->getPreviousDeclImpl(); + } + /// \brief Retrieve the most recent declaration that declares the same entity + /// as this declaration (which may be this declaration). + Decl *getMostRecentDecl() { return getMostRecentDeclImpl(); } + + /// \brief Retrieve the most recent declaration that declares the same entity + /// as this declaration (which may be this declaration). + const Decl *getMostRecentDecl() const { + return const_cast<Decl *>(this)->getMostRecentDeclImpl(); + } + /// getBody - If this Decl represents a declaration for a body of code, /// such as a function or method definition, this method returns the /// top-level Stmt* of that body. Otherwise this method returns null. diff --git a/include/clang/AST/DeclCXX.h b/include/clang/AST/DeclCXX.h index 983139b7b4..6592e1beaa 100644 --- a/include/clang/AST/DeclCXX.h +++ b/include/clang/AST/DeclCXX.h @@ -616,11 +616,18 @@ public: return cast<CXXRecordDecl>(RecordDecl::getCanonicalDecl()); } - const CXXRecordDecl *getPreviousDeclaration() const { - return cast_or_null<CXXRecordDecl>(RecordDecl::getPreviousDeclaration()); + const CXXRecordDecl *getPreviousDecl() const { + return cast_or_null<CXXRecordDecl>(RecordDecl::getPreviousDecl()); } - CXXRecordDecl *getPreviousDeclaration() { - return cast_or_null<CXXRecordDecl>(RecordDecl::getPreviousDeclaration()); + CXXRecordDecl *getPreviousDecl() { + return cast_or_null<CXXRecordDecl>(RecordDecl::getPreviousDecl()); + } + + const CXXRecordDecl *getMostRecentDecl() const { + return cast_or_null<CXXRecordDecl>(RecordDecl::getMostRecentDecl()); + } + CXXRecordDecl *getMostRecentDecl() { + return cast_or_null<CXXRecordDecl>(RecordDecl::getMostRecentDecl()); } CXXRecordDecl *getDefinition() const { diff --git a/include/clang/AST/DeclObjC.h b/include/clang/AST/DeclObjC.h index a8a5c06dea..be0e3d9240 100644 --- a/include/clang/AST/DeclObjC.h +++ b/include/clang/AST/DeclObjC.h @@ -620,6 +620,12 @@ class ObjCInterfaceDecl : public ObjCContainerDecl virtual ObjCInterfaceDecl *getNextRedeclaration() { return RedeclLink.getNext(); } + virtual ObjCInterfaceDecl *getPreviousDeclImpl() { + return getPreviousDecl(); + } + virtual ObjCInterfaceDecl *getMostRecentDeclImpl() { + return getMostRecentDecl(); + } public: static ObjCInterfaceDecl *Create(ASTContext &C, DeclContext *DC, @@ -930,21 +936,11 @@ public: bool lookupCategory, bool RHSIsQualifiedID = false); - typedef redeclarable_base::redecl_iterator redecl_iterator; - redecl_iterator redecls_begin() const { - return redeclarable_base::redecls_begin(); - } - redecl_iterator redecls_end() const { - return redeclarable_base::redecls_end(); - } - - virtual ObjCInterfaceDecl *getPreviousDecl() { - return redeclarable_base::getPreviousDeclaration(); - } - - virtual ObjCInterfaceDecl *getMostRecentDecl() { - return redeclarable_base::getMostRecentDeclaration(); - } + using redeclarable_base::redecl_iterator; + using redeclarable_base::redecls_begin; + using redeclarable_base::redecls_end; + using redeclarable_base::getPreviousDecl; + using redeclarable_base::getMostRecentDecl; /// Retrieves the canonical declaration of this Objective-C class. ObjCInterfaceDecl *getCanonicalDecl() { @@ -1123,6 +1119,12 @@ class ObjCProtocolDecl : public ObjCContainerDecl, virtual ObjCProtocolDecl *getNextRedeclaration() { return RedeclLink.getNext(); } + virtual ObjCProtocolDecl *getPreviousDeclImpl() { + return getPreviousDecl(); + } + virtual ObjCProtocolDecl *getMostRecentDeclImpl() { + return getMostRecentDecl(); + } public: static ObjCProtocolDecl *Create(ASTContext &C, DeclContext *DC, @@ -1218,22 +1220,12 @@ public: return SourceRange(getAtStartLoc(), getLocation()); } - - typedef redeclarable_base::redecl_iterator redecl_iterator; - redecl_iterator redecls_begin() const { - return redeclarable_base::redecls_begin(); - } - redecl_iterator redecls_end() const { - return redeclarable_base::redecls_end(); - } - virtual ObjCProtocolDecl *getPreviousDecl() { - return redeclarable_base::getPreviousDeclaration(); - } - - virtual ObjCProtocolDecl *getMostRecentDecl() { - return redeclarable_base::getMostRecentDeclaration(); - } + using redeclarable_base::redecl_iterator; + using redeclarable_base::redecls_begin; + using redeclarable_base::redecls_end; + using redeclarable_base::getPreviousDecl; + using redeclarable_base::getMostRecentDecl; /// Retrieves the canonical declaration of this Objective-C protocol. ObjCProtocolDecl *getCanonicalDecl() { diff --git a/include/clang/AST/DeclTemplate.h b/include/clang/AST/DeclTemplate.h index d0e76ecb09..e66fee9da8 100644 --- a/include/clang/AST/DeclTemplate.h +++ b/include/clang/AST/DeclTemplate.h @@ -486,13 +486,19 @@ class RedeclarableTemplateDecl : public TemplateDecl, virtual RedeclarableTemplateDecl *getNextRedeclaration() { return RedeclLink.getNext(); } + virtual RedeclarableTemplateDecl *getPreviousDeclImpl() { + return getPreviousDecl(); + } + virtual RedeclarableTemplateDecl *getMostRecentDeclImpl() { + return getMostRecentDecl(); + } protected: template <typename EntryType> struct SpecEntryTraits { typedef EntryType DeclType; - static DeclType *getMostRecentDeclaration(EntryType *D) { - return D->getMostRecentDeclaration(); + static DeclType *getMostRecentDecl(EntryType *D) { + return D->getMostRecentDecl(); } }; @@ -514,7 +520,7 @@ protected: SpecIterator(SetIteratorType SetIter) : SetIter(SetIter) {} DeclType *operator*() const { - return SETraits::getMostRecentDeclaration(&*SetIter); + return SETraits::getMostRecentDecl(&*SetIter); } DeclType *operator->() const { return **this; } @@ -622,21 +628,11 @@ public: getCommonPtr()->InstantiatedFromMember.setPointer(TD); } - typedef redeclarable_base::redecl_iterator redecl_iterator; - redecl_iterator redecls_begin() const { - return redeclarable_base::redecls_begin(); - } - redecl_iterator redecls_end() const { - return redeclarable_base::redecls_end(); - } - - virtual RedeclarableTemplateDecl *getPreviousDecl() { - return redeclarable_base::getPreviousDeclaration(); - } - - virtual RedeclarableTemplateDecl *getMostRecentDecl() { - return redeclarable_base::getMostRecentDeclaration(); - } + using redeclarable_base::redecl_iterator; + using redeclarable_base::redecls_begin; + using redeclarable_base::redecls_end; + using redeclarable_base::getPreviousDecl; + using redeclarable_base::getMostRecentDecl; // Implement isa/cast/dyncast/etc. static bool classof(const Decl *D) { return classofKind(D->getKind()); } @@ -658,8 +654,8 @@ SpecEntryTraits<FunctionTemplateSpecializationInfo> { typedef FunctionDecl DeclType; static DeclType * - getMostRecentDeclaration(FunctionTemplateSpecializationInfo *I) { - return I->Function->getMostRecentDeclaration(); + getMostRecentDecl(FunctionTemplateSpecializationInfo *I) { + return I->Function->getMostRecentDecl(); } }; @@ -740,16 +736,16 @@ public: /// \brief Retrieve the previous declaration of this function template, or /// NULL if no such declaration exists. - FunctionTemplateDecl *getPreviousDeclaration() { + FunctionTemplateDecl *getPreviousDecl() { return cast_or_null<FunctionTemplateDecl>( - RedeclarableTemplateDecl::getPreviousDeclaration()); + RedeclarableTemplateDecl::getPreviousDecl()); } /// \brief Retrieve the previous declaration of this function template, or /// NULL if no such declaration exists. - const FunctionTemplateDecl *getPreviousDeclaration() const { + const FunctionTemplateDecl *getPreviousDecl() const { return cast_or_null<FunctionTemplateDecl>( - RedeclarableTemplateDecl::getPreviousDeclaration()); + RedeclarableTemplateDecl::getPreviousDecl()); } FunctionTemplateDecl *getInstantiatedFromMemberTemplate() { @@ -1287,13 +1283,13 @@ public: const PrintingPolicy &Policy, bool Qualified) const; - ClassTemplateSpecializationDecl *getMostRecentDeclaration() { + ClassTemplateSpecializationDecl *getMostRecentDecl() { CXXRecordDecl *Recent - = cast<CXXRecordDecl>(CXXRecordDecl::getMostRecentDeclaration()); + = cast<CXXRecordDecl>(CXXRecordDecl::getMostRecentDecl()); if (!isa<ClassTemplateSpecializationDecl>(Recent)) { // FIXME: Does injected class name need to be in the redeclarations chain? - assert(Recent->isInjectedClassName() && Recent->getPreviousDeclaration()); - Recent = Recent->getPreviousDeclaration(); + assert(Recent->isInjectedClassName() && Recent->getPreviousDecl()); + Recent = Recent->getPreviousDecl(); } return cast<ClassTemplateSpecializationDecl>(Recent); } @@ -1533,9 +1529,9 @@ public: static ClassTemplatePartialSpecializationDecl * CreateDeserialized(ASTContext &C, unsigned ID); - ClassTemplatePartialSpecializationDecl *getMostRecentDeclaration() { + ClassTemplatePartialSpecializationDecl *getMostRecentDecl() { return cast<ClassTemplatePartialSpecializationDecl>( - ClassTemplateSpecializationDecl::getMostRecentDeclaration()); + ClassTemplateSpecializationDecl::getMostRecentDecl()); } /// Get the list of template parameters @@ -1744,16 +1740,16 @@ public: /// \brief Retrieve the previous declaration of this class template, or /// NULL if no such declaration exists. - ClassTemplateDecl *getPreviousDeclaration() { + ClassTemplateDecl *getPreviousDecl() { return cast_or_null<ClassTemplateDecl>( - RedeclarableTemplateDecl::getPreviousDeclaration()); + RedeclarableTemplateDecl::getPreviousDecl()); } /// \brief Retrieve the previous declaration of this class template, or /// NULL if no such declaration exists. - const ClassTemplateDecl *getPreviousDeclaration() const { + const ClassTemplateDecl *getPreviousDecl() const { return cast_or_null<ClassTemplateDecl>( - RedeclarableTemplateDecl::getPreviousDeclaration()); + RedeclarableTemplateDecl::getPreviousDecl()); } ClassTemplateDecl *getInstantiatedFromMemberTemplate() { @@ -1978,16 +1974,16 @@ public: /// \brief Retrieve the previous declaration of this function template, or /// NULL if no such declaration exists. - TypeAliasTemplateDecl *getPreviousDeclaration() { + TypeAliasTemplateDecl *getPreviousDecl() { return cast_or_null<TypeAliasTemplateDecl>( - RedeclarableTemplateDecl::getPreviousDeclaration()); + RedeclarableTemplateDecl::getPreviousDecl()); } /// \brief Retrieve the previous declaration of this function template, or /// NULL if no such declaration exists. - const TypeAliasTemplateDecl *getPreviousDeclaration() const { + const TypeAliasTemplateDecl *getPreviousDecl() const { return cast_or_null<TypeAliasTemplateDecl>( - RedeclarableTemplateDecl::getPreviousDeclaration()); + RedeclarableTemplateDecl::getPreviousDecl()); } TypeAliasTemplateDecl *getInstantiatedFromMemberTemplate() { diff --git a/include/clang/AST/Redeclarable.h b/include/clang/AST/Redeclarable.h index c223d768c6..88abadb26a 100644 --- a/include/clang/AST/Redeclarable.h +++ b/include/clang/AST/Redeclarable.h @@ -64,22 +64,22 @@ public: /// \brief Return the previous declaration of this declaration or NULL if this /// is the first declaration. - decl_type *getPreviousDeclaration() { + decl_type *getPreviousDecl() { if (RedeclLink.NextIsPrevious()) return RedeclLink.getNext(); return 0; } - const decl_type *getPreviousDeclaration() const { + const decl_type *getPreviousDecl() const { return const_cast<decl_type *>( - static_cast<const decl_type*>(this))->getPreviousDeclaration(); + static_cast<const decl_type*>(this))->getPreviousDecl(); } /// \brief Return the first declaration of this declaration or itself if this /// is the only declaration. decl_type *getFirstDeclaration() { decl_type *D = static_cast<decl_type*>(this); - while (D->getPreviousDeclaration()) - D = D->getPreviousDeclaration(); + while (D->getPreviousDecl()) + D = D->getPreviousDecl(); return D; } @@ -87,8 +87,8 @@ public: /// is the only declaration. const decl_type *getFirstDeclaration() const { const decl_type *D = static_cast<const decl_type*>(this); - while (D->getPreviousDeclaration()) - D = D->getPreviousDeclaration(); + while (D->getPreviousDecl()) + D = D->getPreviousDecl(); return D; } @@ -98,12 +98,12 @@ public: } /// \brief Returns the most recent (re)declaration of this declaration. - decl_type *getMostRecentDeclaration() { + decl_type *getMostRecentDecl() { return getFirstDeclaration()->RedeclLink.getNext(); } /// \brief Returns the most recent (re)declaration of this declaration. - const decl_type *getMostRecentDeclaration() const { + const decl_type *getMostRecentDecl() const { return getFirstDeclaration()->RedeclLink.getNext(); } diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp index 514a013e93..048d9e873e 100644 --- a/lib/AST/ASTContext.cpp +++ b/lib/AST/ASTContext.cpp @@ -2195,7 +2195,7 @@ QualType ASTContext::getInjectedClassNameType(CXXRecordDecl *Decl, assert(NeedsInjectedClassNameType(Decl)); if (Decl->TypeForDecl) { assert(isa<InjectedClassNameType>(Decl->TypeForDecl)); - } else if (CXXRecordDecl *PrevDecl = Decl->getPreviousDeclaration()) { + } else if (CXXRecordDecl *PrevDecl = Decl->getPreviousDecl()) { assert(PrevDecl->TypeForDecl && "previous declaration has no type"); Decl->TypeForDecl = PrevDecl->TypeForDecl; assert(isa<InjectedClassNameType>(Decl->TypeForDecl)); @@ -2221,12 +2221,12 @@ QualType ASTContext::getTypeDeclTypeSlow(const TypeDecl *Decl) const { "Template type parameter types are always available."); if (const RecordDecl *Record = dyn_cast<RecordDecl>(Decl)) { - assert(!Record->getPreviousDeclaration() && + assert(!Record->getPreviousDecl() && "struct/union has previous declaration"); assert(!NeedsInjectedClassNameType(Record)); return getRecordType(Record); } else if (const EnumDecl *Enum = dyn_cast<EnumDecl>(Decl)) { - assert(!Enum->getPreviousDeclaration() && + assert(!Enum->getPreviousDecl() && "enum has previous declaration"); return getEnumType(Enum); } else if (const UnresolvedUsingTypenameDecl *Using = @@ -2259,7 +2259,7 @@ ASTContext::getTypedefType(const TypedefNameDecl *Decl, QualType ASTContext::getRecordType(const RecordDecl *Decl) const { if (Decl->TypeForDecl) return QualType(Decl->TypeForDecl, 0); - if (const RecordDecl *PrevDecl = Decl->getPreviousDeclaration()) + if (const RecordDecl *PrevDecl = Decl->getPreviousDecl()) if (PrevDecl->TypeForDecl) return QualType(Decl->TypeForDecl = PrevDecl->TypeForDecl, 0); @@ -2272,7 +2272,7 @@ QualType ASTContext::getRecordType(const RecordDecl *Decl) const { QualType ASTContext::getEnumType(const EnumDecl *Decl) const { if (Decl->TypeForDecl) return QualType(Decl->TypeForDecl, 0); - if (const EnumDecl *PrevDecl = Decl->getPreviousDeclaration()) + if (const EnumDecl *PrevDecl = Decl->getPreviousDecl()) if (PrevDecl->TypeForDecl) return QualType(Decl->TypeForDecl = PrevDecl->TypeForDecl, 0); diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp index 3caca9d7e6..0564f297a4 100644 --- a/lib/AST/Decl.cpp +++ b/lib/AST/Decl.cpp @@ -229,9 +229,9 @@ static LinkageInfo getLVForNamespaceScopeDecl(const NamedDecl *D, LVFlags F) { Var->getStorageClass() != SC_Extern && Var->getStorageClass() != SC_PrivateExtern) { bool FoundExtern = false; - for (const VarDecl *PrevVar = Var->getPreviousDeclaration(); + for (const VarDecl *PrevVar = Var->getPreviousDecl(); PrevVar && !FoundExtern; - PrevVar = PrevVar->getPreviousDeclaration()) + PrevVar = PrevVar->getPreviousDecl()) if (isExternalLinkage(PrevVar->getLinkage())) FoundExtern = true; @@ -239,8 +239,8 @@ static LinkageInfo getLVForNamespaceScopeDecl(const NamedDecl *D, LVFlags F) { return LinkageInfo::internal(); } if (Var->getStorageClass() == SC_None) { - const VarDecl *PrevVar = Var->getPreviousDeclaration(); - for (; PrevVar; PrevVar = PrevVar->getPreviousDeclaration()) + const VarDecl *PrevVar = Var->getPreviousDecl(); + for (; PrevVar; PrevVar = PrevVar->getPreviousDecl()) if (PrevVar->getStorageClass() == SC_PrivateExtern) break; if (PrevVar) @@ -354,7 +354,7 @@ static LinkageInfo getLVForNamespaceScopeDecl(const NamedDecl *D, LVFlags F) { // specified at the prior declaration. If no prior declaration // is visible, or if the prior declaration specifies no // linkage, then the identifier has external linkage. - if (const VarDecl *PrevVar = Var->getPreviousDeclaration()) { + if (const VarDecl *PrevVar = Var->getPreviousDecl()) { LinkageInfo PrevLV = getLVForDecl(PrevVar, F); if (PrevLV.linkage()) LV.setLinkage(PrevLV.linkage()); LV.mergeVisibility(PrevLV); @@ -389,7 +389,7 @@ static LinkageInfo getLVForNamespaceScopeDecl(const NamedDecl *D, LVFlags F) { // specified at the prior declaration. If no prior declaration // is visible, or if the prior declaration specifies no // linkage, then the identifier has external linkage. - if (const FunctionDecl *PrevFunc = Function->getPreviousDeclaration()) { + if (const FunctionDecl *PrevFunc = Function->getPreviousDecl()) { LinkageInfo PrevLV = getLVForDecl(PrevFunc, F); if (PrevLV.linkage()) LV.setLinkage(PrevLV.linkage()); LV.mergeVisibility(PrevLV); @@ -681,13 +681,13 @@ LinkageInfo NamedDecl::getLinkageAndVisibility() const { llvm::Optional<Visibility> NamedDecl::getExplicitVisibility() const { // Use the most recent declaration of a variable. if (const VarDecl *var = dyn_cast<VarDecl>(this)) - return getVisibilityOf(var->getMostRecentDeclaration()); + return getVisibilityOf(var->getMostRecentDecl()); // Use the most recent declaration of a function, and also handle // function template specializations. if (const FunctionDecl *fn = dyn_cast<FunctionDecl>(this)) { if (llvm::Optional<Visibility> V - = getVisibilityOf(fn->getMostRecentDeclaration())) + = getVisibilityOf(fn->getMostRecentDecl())) return V; // If the function is a specialization of a template with an @@ -771,7 +771,7 @@ static LinkageInfo getLVForDecl(const NamedDecl *D, LVFlags Flags) { LV.setVisibility(*Vis); } - if (const FunctionDecl *Prev = Function->getPreviousDeclaration()) { + if (const FunctionDecl *Prev = Function->getPreviousDecl()) { LinkageInfo PrevLV = getLVForDecl(Prev, Flags); if (PrevLV.linkage()) LV.setLinkage(PrevLV.linkage()); LV.mergeVisibility(PrevLV); @@ -794,7 +794,7 @@ static LinkageInfo getLVForDecl(const NamedDecl *D, LVFlags Flags) { LV.setVisibility(*Vis); } - if (const VarDecl *Prev = Var->getPreviousDeclaration()) { + if (const VarDecl *Prev = Var->getPreviousDecl()) { LinkageInfo PrevLV = getLVForDecl(Prev, Flags); if (PrevLV.linkage()) LV.setLinkage(PrevLV.linkage()); LV.mergeVisibility(PrevLV); @@ -903,7 +903,7 @@ bool NamedDecl::declarationReplaces(NamedDecl *OldD) const { if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(this)) // For function declarations, we keep track of redeclarations. - return FD->getPreviousDeclaration() == OldD; + return FD->getPreviousDecl() == OldD; // For function templates, the underlying function declarations are linked. if (const FunctionTemplateDecl *FunctionTemplate @@ -1225,8 +1225,8 @@ VarDecl::DefinitionKind VarDecl::isThisDeclarationADefinition() const { |