From 371de80ceaed2cef750e1b78710436e408865658 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Thu, 13 Mar 2014 02:13:41 +0000 Subject: [PATCH] [C++11] Add 'override' keyword to virtual methods that override their base class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203746 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Serialization/ASTReader.h | 177 ++++++++++++------------ include/clang/Serialization/ASTWriter.h | 57 ++++---- lib/Serialization/ASTReader.cpp | 16 +-- lib/Serialization/GlobalModuleIndex.cpp | 2 +- 4 files changed, 124 insertions(+), 128 deletions(-) diff --git a/include/clang/Serialization/ASTReader.h b/include/clang/Serialization/ASTReader.h index 5c7a1ee635..13909dbbd3 100644 --- a/include/clang/Serialization/ASTReader.h +++ b/include/clang/Serialization/ASTReader.h @@ -196,27 +196,25 @@ public: ChainedASTReaderListener(ASTReaderListener *First, ASTReaderListener *Second) : First(First), Second(Second) { } - virtual bool ReadFullVersionInformation(StringRef FullVersion); - virtual bool ReadLanguageOptions(const LangOptions &LangOpts, - bool Complain); - virtual bool ReadTargetOptions(const TargetOptions &TargetOpts, - bool Complain); - virtual bool ReadDiagnosticOptions(const DiagnosticOptions &DiagOpts, - bool Complain); - virtual bool ReadFileSystemOptions(const FileSystemOptions &FSOpts, - bool Complain); - - virtual bool ReadHeaderSearchOptions(const HeaderSearchOptions &HSOpts, - bool Complain); - virtual bool ReadPreprocessorOptions(const PreprocessorOptions &PPOpts, - bool Complain, - std::string &SuggestedPredefines); - - virtual void ReadCounter(const serialization::ModuleFile &M, - unsigned Value); - virtual bool needsInputFileVisitation(); - virtual bool needsSystemInputFileVisitation(); - virtual bool visitInputFile(StringRef Filename, bool isSystem); + bool ReadFullVersionInformation(StringRef FullVersion) override; + bool ReadLanguageOptions(const LangOptions &LangOpts, bool Complain) override; + bool ReadTargetOptions(const TargetOptions &TargetOpts, + bool Complain) override; + bool ReadDiagnosticOptions(const DiagnosticOptions &DiagOpts, + bool Complain) override; + bool ReadFileSystemOptions(const FileSystemOptions &FSOpts, + bool Complain) override; + + bool ReadHeaderSearchOptions(const HeaderSearchOptions &HSOpts, + bool Complain) override; + bool ReadPreprocessorOptions(const PreprocessorOptions &PPOpts, + bool Complain, + std::string &SuggestedPredefines) override; + + void ReadCounter(const serialization::ModuleFile &M, unsigned Value) override; + bool needsInputFileVisitation() override; + bool needsSystemInputFileVisitation() override; + bool visitInputFile(StringRef Filename, bool isSystem) override; }; /// \brief ASTReaderListener implementation to validate the information of @@ -229,14 +227,13 @@ public: PCHValidator(Preprocessor &PP, ASTReader &Reader) : PP(PP), Reader(Reader) {} - virtual bool ReadLanguageOptions(const LangOptions &LangOpts, - bool Complain); - virtual bool ReadTargetOptions(const TargetOptions &TargetOpts, - bool Complain); - virtual bool ReadPreprocessorOptions(const PreprocessorOptions &PPOpts, - bool Complain, - std::string &SuggestedPredefines); - virtual void ReadCounter(const serialization::ModuleFile &M, unsigned Value); + bool ReadLanguageOptions(const LangOptions &LangOpts, + bool Complain) override; + bool ReadTargetOptions(const TargetOptions &TargetOpts, + bool Complain) override; + bool ReadPreprocessorOptions(const PreprocessorOptions &PPOpts, bool Complain, + std::string &SuggestedPredefines) override; + void ReadCounter(const serialization::ModuleFile &M, unsigned Value) override; private: void Error(const char *Msg); @@ -1405,20 +1402,20 @@ public: /// /// \returns null if an error occurred that prevented the preprocessed /// entity from being loaded. - virtual PreprocessedEntity *ReadPreprocessedEntity(unsigned Index); + PreprocessedEntity *ReadPreprocessedEntity(unsigned Index) override; /// \brief Returns a pair of [Begin, End) indices of preallocated /// preprocessed entities that \p Range encompasses. - virtual std::pair - findPreprocessedEntitiesInRange(SourceRange Range); + std::pair + findPreprocessedEntitiesInRange(SourceRange Range) override; /// \brief Optionally returns true or false if the preallocated preprocessed /// entity with index \p Index came from file \p FID. - virtual Optional isPreprocessedEntityInFileID(unsigned Index, - FileID FID); + Optional isPreprocessedEntityInFileID(unsigned Index, + FileID FID) override; /// \brief Read the header file information for the given file entry. - virtual HeaderFileInfo GetHeaderFileInfo(const FileEntry *FE); + HeaderFileInfo GetHeaderFileInfo(const FileEntry *FE) override; void ReadPragmaDiagnosticMappings(DiagnosticsEngine &Diag); @@ -1530,7 +1527,7 @@ public: /// \brief Resolve a declaration ID into a declaration, potentially /// building a new declaration. Decl *GetDecl(serialization::DeclID ID); - virtual Decl *GetExternalDecl(uint32_t ID); + Decl *GetExternalDecl(uint32_t ID) override; /// \brief Reads a declaration with the given local ID in the given module. Decl *GetLocalDecl(ModuleFile &F, uint32_t LocalID) { @@ -1582,14 +1579,14 @@ public: uint64_t readCXXBaseSpecifiers(ModuleFile &M, const RecordData &Record, unsigned &Idx); - virtual CXXBaseSpecifier *GetExternalCXXBaseSpecifiers(uint64_t Offset); + CXXBaseSpecifier *GetExternalCXXBaseSpecifiers(uint64_t Offset) override; /// \brief Resolve the offset of a statement into a statement. /// /// This operation will read a new statement from the external /// source each time it is called, and is meant to be used via a /// LazyOffsetPtr (which is used by Decls for the body of functions, etc). - virtual Stmt *GetExternalDeclStmt(uint64_t Offset); + Stmt *GetExternalDeclStmt(uint64_t Offset) override; /// ReadBlockAbbrevs - Enter a subblock of the specified BlockID with the /// specified cursor. Read the abbreviations that are at the top of the block @@ -1599,9 +1596,8 @@ public: /// \brief Finds all the visible declarations with a given name. /// The current implementation of this method just loads the entire /// lookup table as unmaterialized references. - virtual bool - FindExternalVisibleDeclsByName(const DeclContext *DC, - DeclarationName Name); + bool FindExternalVisibleDeclsByName(const DeclContext *DC, + DeclarationName Name) override; /// \brief Read all of the declarations lexically stored in a /// declaration context. @@ -1616,49 +1612,49 @@ public: /// /// \returns true if there was an error while reading the /// declarations for this declaration context. - virtual ExternalLoadResult FindExternalLexicalDecls(const DeclContext *DC, - bool (*isKindWeWant)(Decl::Kind), - SmallVectorImpl &Decls); + ExternalLoadResult FindExternalLexicalDecls(const DeclContext *DC, + bool (*isKindWeWant)(Decl::Kind), + SmallVectorImpl &Decls) override; /// \brief Get the decls that are contained in a file in the Offset/Length /// range. \p Length can be 0 to indicate a point at \p Offset instead of /// a range. - virtual void FindFileRegionDecls(FileID File, unsigned Offset,unsigned Length, - SmallVectorImpl &Decls); + void FindFileRegionDecls(FileID File, unsigned Offset, unsigned Length, + SmallVectorImpl &Decls) override; /// \brief Notify ASTReader that we started deserialization of /// a decl or type so until FinishedDeserializing is called there may be /// decls that are initializing. Must be paired with FinishedDeserializing. - virtual void StartedDeserializing() { ++NumCurrentElementsDeserializing; } + void StartedDeserializing() override { ++NumCurrentElementsDeserializing; } /// \brief Notify ASTReader that we finished the deserialization of /// a decl or type. Must be paired with StartedDeserializing. - virtual void FinishedDeserializing(); + void FinishedDeserializing() override; /// \brief Function that will be invoked when we begin parsing a new /// translation unit involving this external AST source. /// /// This function will provide all of the external definitions to /// the ASTConsumer. - virtual void StartTranslationUnit(ASTConsumer *Consumer); + void StartTranslationUnit(ASTConsumer *Consumer) override; /// \brief Print some statistics about AST usage. - virtual void PrintStats(); + void PrintStats() override; /// \brief Dump information about the AST reader to standard error. void dump(); /// Return the amount of memory used by memory buffers, breaking down /// by heap-backed versus mmap'ed memory. - virtual void getMemoryBufferSizes(MemoryBufferSizes &sizes) const; + void getMemoryBufferSizes(MemoryBufferSizes &sizes) const override; /// \brief Initialize the semantic source with the Sema instance /// being used to perform semantic analysis on the abstract syntax /// tree. - virtual void InitializeSema(Sema &S); + void InitializeSema(Sema &S) override; /// \brief Inform the semantic consumer that Sema is no longer available. - virtual void ForgetSema() { SemaObj = 0; } + void ForgetSema() override { SemaObj = 0; } /// \brief Retrieve the IdentifierInfo for the named identifier. /// @@ -1667,56 +1663,57 @@ public: /// declarations will be deserialized and introduced into the declaration /// chain of the identifier. virtual IdentifierInfo *get(const char *NameStart, const char *NameEnd); - IdentifierInfo *get(StringRef Name) { + IdentifierInfo *get(StringRef Name) override { return get(Name.begin(), Name.end()); } /// \brief Retrieve an iterator into the set of all identifiers /// in all loaded AST files. - virtual IdentifierIterator *getIdentifiers(); + IdentifierIterator *getIdentifiers() override; /// \brief Load the contents of the global method pool for a given /// selector. - virtual void ReadMethodPool(Selector Sel); + void ReadMethodPool(Selector Sel) override; /// \brief Load the set of namespaces that are known to the external source, /// which will be used during typo correction. - virtual void ReadKnownNamespaces( - SmallVectorImpl &Namespaces); + void ReadKnownNamespaces( + SmallVectorImpl &Namespaces) override; - virtual void ReadUndefinedButUsed( - llvm::DenseMap &Undefined); + void ReadUndefinedButUsed( + llvm::DenseMap &Undefined) override; - virtual void ReadTentativeDefinitions( - SmallVectorImpl &TentativeDefs); + void ReadTentativeDefinitions( + SmallVectorImpl &TentativeDefs) override; - virtual void ReadUnusedFileScopedDecls( - SmallVectorImpl &Decls); + void ReadUnusedFileScopedDecls( + SmallVectorImpl &Decls) override; - virtual void ReadDelegatingConstructors( - SmallVectorImpl &Decls); + void ReadDelegatingConstructors( + SmallVectorImpl &Decls) override; - virtual void ReadExtVectorDecls(SmallVectorImpl &Decls); + void ReadExtVectorDecls(SmallVectorImpl &Decls) override; - virtual void ReadDynamicClasses(SmallVectorImpl &Decls); + void ReadDynamicClasses(SmallVectorImpl &Decls) override; - virtual void ReadLocallyScopedExternCDecls( - SmallVectorImpl &Decls); + void ReadLocallyScopedExternCDecls( + SmallVectorImpl &Decls) override; - virtual void ReadReferencedSelectors( - SmallVectorImpl > &Sels); + void ReadReferencedSelectors( + SmallVectorImpl > &Sels) override; - virtual void ReadWeakUndeclaredIdentifiers( - SmallVectorImpl > &WI); + void ReadWeakUndeclaredIdentifiers( + SmallVectorImpl > &WI) override; - virtual void ReadUsedVTables(SmallVectorImpl &VTables); + void ReadUsedVTables(SmallVectorImpl &VTables) override; - virtual void ReadPendingInstantiations( + void ReadPendingInstantiations( SmallVectorImpl > &Pending); + SourceLocation> > &Pending) override; - virtual void ReadLateParsedTemplates( - llvm::DenseMap &LPTMap); + void ReadLateParsedTemplates( + llvm::DenseMap &LPTMap) override; /// \brief Load a selector from disk, registering its ID if it exists. void LoadSelector(Selector Sel); @@ -1739,7 +1736,7 @@ public: return DecodeIdentifierInfo(getGlobalIdentifierID(M, Record[Idx++])); } - virtual IdentifierInfo *GetIdentifier(serialization::IdentifierID ID) { + IdentifierInfo *GetIdentifier(serialization::IdentifierID ID) override { // Note that we are loading an identifier. Deserializing AnIdentifier(this); @@ -1780,11 +1777,11 @@ public: serialization::MacroID getGlobalMacroID(ModuleFile &M, unsigned LocalID); /// \brief Read the source location entry with index ID. - virtual bool ReadSLocEntry(int ID); + bool ReadSLocEntry(int ID) override; /// \brief Retrieve the module import location and module name for the /// given source manager entry ID. - virtual std::pair getModuleImportLoc(int ID); + std::pair getModuleImportLoc(int ID) override; /// \brief Retrieve the global submodule ID given a module and its local ID /// number. @@ -1798,7 +1795,7 @@ public: /// \brief Retrieve the module that corresponds to the given module ID. /// /// Note: overrides method in ExternalASTSource - virtual Module *getModule(unsigned ID); + Module *getModule(unsigned ID) override; /// \brief Retrieve a selector from the given module with its local ID /// number. @@ -1806,8 +1803,8 @@ public: Selector DecodeSelector(serialization::SelectorID Idx); - virtual Selector GetExternalSelector(serialization::SelectorID ID); - uint32_t GetNumExternalSelectors(); + Selector GetExternalSelector(serialization::SelectorID ID) override; + uint32_t GetNumExternalSelectors() override; Selector ReadSelector(ModuleFile &M, const RecordData &Record, unsigned &Idx) { return getLocalSelector(M, Record[Idx++]); @@ -1963,16 +1960,16 @@ public: ModuleFile *M, uint64_t MacroDirectivesOffset); /// \brief Read the set of macros defined by this external macro source. - virtual void ReadDefinedMacros(); + void ReadDefinedMacros() override; /// \brief Update an out-of-date identifier. - virtual void updateOutOfDateIdentifier(IdentifierInfo &II); + void updateOutOfDateIdentifier(IdentifierInfo &II) override; /// \brief Note that this identifier is up-to-date. void markIdentifierUpToDate(IdentifierInfo *II); /// \brief Load all external visible decls in the given DeclContext. - void completeVisibleDeclsMap(const DeclContext *DC); + void completeVisibleDeclsMap(const DeclContext *DC) override; /// \brief Retrieve the AST context that this AST reader supplements. ASTContext &getContext() { return Context; } @@ -2003,8 +2000,8 @@ public: SmallVector, 8> CommentsCursors; - /// \brief Loads comments ranges. - void ReadComments(); + //RIDErief Loads comments ranges. + void ReadComments() override; }; /// \brief Helper class that saves the current stream position and diff --git a/include/clang/Serialization/ASTWriter.h b/include/clang/Serialization/ASTWriter.h index d4a9ec5687..c20477fc43 100644 --- a/include/clang/Serialization/ASTWriter.h +++ b/include/clang/Serialization/ASTWriter.h @@ -714,34 +714,33 @@ public: bool hasChain() const { return Chain; } // ASTDeserializationListener implementation - void ReaderInitialized(ASTReader *Reader); - void IdentifierRead(serialization::IdentID ID, IdentifierInfo *II); - void MacroRead(serialization::MacroID ID, MacroInfo *MI); - void TypeRead(serialization::TypeIdx Idx, QualType T); - void SelectorRead(serialization::SelectorID ID, Selector Sel); + void ReaderInitialized(ASTReader *Reader) override; + void IdentifierRead(serialization::IdentID ID, IdentifierInfo *II) override; + void MacroRead(serialization::MacroID ID, MacroInfo *MI) override; + void TypeRead(serialization::TypeIdx Idx, QualType T) override; + void SelectorRead(serialization::SelectorID ID, Selector Sel) override; void MacroDefinitionRead(serialization::PreprocessedEntityID ID, - MacroDefinition *MD); - void ModuleRead(serialization::SubmoduleID ID, Module *Mod); + MacroDefinition *MD) override; + void ModuleRead(serialization::SubmoduleID ID, Module *Mod) override; // ASTMutationListener implementation. - virtual void CompletedTagDefinition(const TagDecl *D); - virtual void AddedVisibleDecl(const DeclContext *DC, const Decl *D); - virtual void AddedCXXImplicitMember(const CXXRecordDecl *RD, const Decl *D); - virtual void AddedCXXTemplateSpecialization(const ClassTemplateDecl *TD, - const ClassTemplateSpecializationDecl *D); - virtual void - AddedCXXTemplateSpecialization(const VarTemplateDecl *TD, - const VarTemplateSpecializationDecl *D); - virtual void AddedCXXTemplateSpecialization(const FunctionTemplateDecl *TD, - const FunctionDecl *D); - virtual void DeducedReturnType(const FunctionDecl *FD, QualType ReturnType); - virtual void CompletedImplicitDefinition(const FunctionDecl *D); - virtual void StaticDataMemberInstantiated(const VarDecl *D); - virtual void AddedObjCCategoryToInterface(const ObjCCategoryDecl *CatD, - const ObjCInterfaceDecl *IFD); - virtual void AddedObjCPropertyInClassExtension(const ObjCPropertyDecl *Prop, - const ObjCPropertyDecl *OrigProp, - const ObjCCategoryDecl *ClassExt); + void CompletedTagDefinition(const TagDecl *D) override; + void AddedVisibleDecl(const DeclContext *DC, const Decl *D) override; + void AddedCXXImplicitMember(const CXXRecordDecl *RD, const Decl *D) override; + void AddedCXXTemplateSpecialization(const ClassTemplateDecl *TD, + const ClassTemplateSpecializationDecl *D) override; + void AddedCXXTemplateSpecialization(const VarTemplateDecl *TD, + const VarTemplateSpecializationDecl *D) override; + void AddedCXXTemplateSpecialization(const FunctionTemplateDecl *TD, + const FunctionDecl *D) override; + void DeducedReturnType(const FunctionDecl *FD, QualType ReturnType) override; + void CompletedImplicitDefinition(const FunctionDecl *D) override; + void StaticDataMemberInstantiated(const VarDecl *D) override; + void AddedObjCCategoryToInterface(const ObjCCategoryDecl *CatD, + const ObjCInterfaceDecl *IFD) override; + void AddedObjCPropertyInClassExtension(const ObjCPropertyDecl *Prop, + const ObjCPropertyDecl *OrigProp, + const ObjCCategoryDecl *ClassExt) override; void DeclarationMarkedUsed(const Decl *D) override; }; @@ -770,10 +769,10 @@ public: StringRef isysroot, raw_ostream *Out, bool AllowASTWithErrors = false); ~PCHGenerator(); - virtual void InitializeSema(Sema &S) { SemaPtr = &S; } - virtual void HandleTranslationUnit(ASTContext &Ctx); - virtual ASTMutationListener *GetASTMutationListener(); - virtual ASTDeserializationListener *GetASTDeserializationListener(); + void InitializeSema(Sema &S) override { SemaPtr = &S; } + void HandleTranslationUnit(ASTContext &Ctx) override; + ASTMutationListener *GetASTMutationListener() override; + ASTDeserializationListener *GetASTDeserializationListener() override; bool hasEmittedPCH() const { return HasEmittedPCH; } }; diff --git a/lib/Serialization/ASTReader.cpp b/lib/Serialization/ASTReader.cpp index 24cb7a6ca4..5d175bb720 100644 --- a/lib/Serialization/ASTReader.cpp +++ b/lib/Serialization/ASTReader.cpp @@ -3782,17 +3782,17 @@ namespace { { } - virtual bool ReadLanguageOptions(const LangOptions &LangOpts, - bool Complain) { + bool ReadLanguageOptions(const LangOptions &LangOpts, + bool Complain) override { return checkLanguageOptions(ExistingLangOpts, LangOpts, 0); } - virtual bool ReadTargetOptions(const TargetOptions &TargetOpts, - bool Complain) { + bool ReadTargetOptions(const TargetOptions &TargetOpts, + bool Complain) override { return checkTargetOptions(ExistingTargetOpts, TargetOpts, 0); } - virtual bool ReadPreprocessorOptions(const PreprocessorOptions &PPOpts, - bool Complain, - std::string &SuggestedPredefines) { + bool ReadPreprocessorOptions(const PreprocessorOptions &PPOpts, + bool Complain, + std::string &SuggestedPredefines) override { return checkPreprocessorOptions(ExistingPPOpts, PPOpts, 0, FileMgr, SuggestedPredefines, ExistingLangOpts); } @@ -6566,7 +6566,7 @@ namespace clang { public: explicit ASTIdentifierIterator(const ASTReader &Reader); - virtual StringRef Next(); + StringRef Next() override; }; } diff --git a/lib/Serialization/GlobalModuleIndex.cpp b/lib/Serialization/GlobalModuleIndex.cpp index 5cd3ad5575..b9e6130bad 100644 --- a/lib/Serialization/GlobalModuleIndex.cpp +++ b/lib/Serialization/GlobalModuleIndex.cpp @@ -835,7 +835,7 @@ namespace { End = Idx.key_end(); } - virtual StringRef Next() { + StringRef Next() override { if (Current == End) return StringRef(); -- 2.40.0