diff options
Diffstat (limited to 'include/clang/Serialization/ASTWriter.h')
-rw-r--r-- | include/clang/Serialization/ASTWriter.h | 266 |
1 files changed, 133 insertions, 133 deletions
diff --git a/include/clang/Serialization/ASTWriter.h b/include/clang/Serialization/ASTWriter.h index 9437bf7f2c..9d4a3f9cf5 100644 --- a/include/clang/Serialization/ASTWriter.h +++ b/include/clang/Serialization/ASTWriter.h @@ -95,7 +95,7 @@ class Token; class TypeSourceInfo; class VersionTuple; -/// \brief Writes an AST file containing the contents of a translation unit. +/// Writes an AST file containing the contents of a translation unit. /// /// The ASTWriter class produces a bitstream containing the serialized /// representation of a given abstract syntax tree and its supporting @@ -114,7 +114,7 @@ public: using RecordDataRef = ArrayRef<uint64_t>; private: - /// \brief Map that provides the ID numbers of each type within the + /// Map that provides the ID numbers of each type within the /// output stream, plus those deserialized from a chained PCH. /// /// The ID numbers of types are consecutive (in order of discovery) @@ -126,52 +126,52 @@ private: using TypeIdxMap = llvm::DenseMap<QualType, serialization::TypeIdx, serialization::UnsafeQualTypeDenseMapInfo>; - /// \brief The bitstream writer used to emit this precompiled header. + /// The bitstream writer used to emit this precompiled header. llvm::BitstreamWriter &Stream; /// The buffer associated with the bitstream. const SmallVectorImpl<char> &Buffer; - /// \brief The PCM manager which manages memory buffers for pcm files. + /// The PCM manager which manages memory buffers for pcm files. MemoryBufferCache &PCMCache; - /// \brief The ASTContext we're writing. + /// The ASTContext we're writing. ASTContext *Context = nullptr; - /// \brief The preprocessor we're writing. + /// The preprocessor we're writing. Preprocessor *PP = nullptr; - /// \brief The reader of existing AST files, if we're chaining. + /// The reader of existing AST files, if we're chaining. ASTReader *Chain = nullptr; - /// \brief The module we're currently writing, if any. + /// The module we're currently writing, if any. Module *WritingModule = nullptr; - /// \brief The base directory for any relative paths we emit. + /// The base directory for any relative paths we emit. std::string BaseDirectory; - /// \brief Indicates whether timestamps should be written to the produced + /// Indicates whether timestamps should be written to the produced /// module file. This is the case for files implicitly written to the /// module cache, where we need the timestamps to determine if the module /// file is up to date, but not otherwise. bool IncludeTimestamps; - /// \brief Indicates when the AST writing is actively performing + /// Indicates when the AST writing is actively performing /// serialization, rather than just queueing updates. bool WritingAST = false; - /// \brief Indicates that we are done serializing the collection of decls + /// Indicates that we are done serializing the collection of decls /// and types to emit. bool DoneWritingDeclsAndTypes = false; - /// \brief Indicates that the AST contained compiler errors. + /// Indicates that the AST contained compiler errors. bool ASTHasCompilerErrors = false; - /// \brief Mapping from input file entries to the index into the + /// Mapping from input file entries to the index into the /// offset table where information about that input file is stored. llvm::DenseMap<const FileEntry *, uint32_t> InputFileIDs; - /// \brief Stores a declaration or a type to be written to the AST file. + /// Stores a declaration or a type to be written to the AST file. class DeclOrType { public: DeclOrType(Decl *D) : Stored(D), IsType(false) {} @@ -195,16 +195,16 @@ private: bool IsType; }; - /// \brief The declarations and types to emit. + /// The declarations and types to emit. std::queue<DeclOrType> DeclTypesToEmit; - /// \brief The first ID number we can use for our own declarations. + /// The first ID number we can use for our own declarations. serialization::DeclID FirstDeclID = serialization::NUM_PREDEF_DECL_IDS; - /// \brief The decl ID that will be assigned to the next new decl. + /// The decl ID that will be assigned to the next new decl. serialization::DeclID NextDeclID = FirstDeclID; - /// \brief Map that provides the ID numbers of each declaration within + /// Map that provides the ID numbers of each declaration within /// the output stream, as well as those deserialized from a chained PCH. /// /// The ID numbers of declarations are consecutive (in order of @@ -212,35 +212,35 @@ private: /// unit, while 0 is reserved for NULL. llvm::DenseMap<const Decl *, serialization::DeclID> DeclIDs; - /// \brief Offset of each declaration in the bitstream, indexed by + /// Offset of each declaration in the bitstream, indexed by /// the declaration's ID. std::vector<serialization::DeclOffset> DeclOffsets; - /// \brief Sorted (by file offset) vector of pairs of file offset/DeclID. + /// Sorted (by file offset) vector of pairs of file offset/DeclID. using LocDeclIDsTy = SmallVector<std::pair<unsigned, serialization::DeclID>, 64>; struct DeclIDInFileInfo { LocDeclIDsTy DeclIDs; - /// \brief Set when the DeclIDs vectors from all files are joined, this + /// Set when the DeclIDs vectors from all files are joined, this /// indicates the index that this particular vector has in the global one. unsigned FirstDeclIndex; }; using FileDeclIDsTy = llvm::DenseMap<FileID, DeclIDInFileInfo *>; - /// \brief Map from file SLocEntries to info about the file-level declarations + /// Map from file SLocEntries to info about the file-level declarations /// that it contains. FileDeclIDsTy FileDeclIDs; void associateDeclWithFile(const Decl *D, serialization::DeclID); - /// \brief The first ID number we can use for our own types. + /// The first ID number we can use for our own types. serialization::TypeID FirstTypeID = serialization::NUM_PREDEF_TYPE_IDS; - /// \brief The type ID that will be assigned to the next new type. + /// The type ID that will be assigned to the next new type. serialization::TypeID NextTypeID = FirstTypeID; - /// \brief Map that provides the ID numbers of each type within the + /// Map that provides the ID numbers of each type within the /// output stream, plus those deserialized from a chained PCH. /// /// The ID numbers of types are consecutive (in order of discovery) @@ -251,17 +251,17 @@ private: /// Keys in the map never have const/volatile qualifiers. TypeIdxMap TypeIdxs; - /// \brief Offset of each type in the bitstream, indexed by + /// Offset of each type in the bitstream, indexed by /// the type's ID. std::vector<uint32_t> TypeOffsets; - /// \brief The first ID number we can use for our own identifiers. + /// The first ID number we can use for our own identifiers. serialization::IdentID FirstIdentID = serialization::NUM_PREDEF_IDENT_IDS; - /// \brief The identifier ID that will be assigned to the next new identifier. + /// The identifier ID that will be assigned to the next new identifier. serialization::IdentID NextIdentID = FirstIdentID; - /// \brief Map that provides the ID numbers of each identifier in + /// Map that provides the ID numbers of each identifier in /// the output stream. /// /// The ID numbers for identifiers are consecutive (in order of @@ -269,13 +269,13 @@ private: /// IdentifierInfo. llvm::MapVector<const IdentifierInfo *, serialization::IdentID> IdentifierIDs; - /// \brief The first ID number we can use for our own macros. + /// The first ID number we can use for our own macros. serialization::MacroID FirstMacroID = serialization::NUM_PREDEF_MACRO_IDS; - /// \brief The identifier ID that will be assigned to the next new identifier. + /// The identifier ID that will be assigned to the next new identifier. serialization::MacroID NextMacroID = FirstMacroID; - /// \brief Map that provides the ID numbers of each macro. + /// Map that provides the ID numbers of each macro. llvm::DenseMap<MacroInfo *, serialization::MacroID> MacroIDs; struct MacroInfoToEmitData { @@ -284,7 +284,7 @@ private: serialization::MacroID ID; }; - /// \brief The macro infos to emit. + /// The macro infos to emit. std::vector<MacroInfoToEmitData> MacroInfosToEmit; llvm::DenseMap<const IdentifierInfo *, uint64_t> IdentMacroDirectivesOffsetMap; @@ -292,46 +292,46 @@ private: /// @name FlushStmt Caches /// @{ - /// \brief Set of parent Stmts for the currently serializing sub-stmt. + /// Set of parent Stmts for the currently serializing sub-stmt. llvm::DenseSet<Stmt *> ParentStmts; - /// \brief Offsets of sub-stmts already serialized. The offset points + /// Offsets of sub-stmts already serialized. The offset points /// just after the stmt record. llvm::DenseMap<Stmt *, uint64_t> SubStmtEntries; /// @} - /// \brief Offsets of each of the identifier IDs into the identifier + /// Offsets of each of the identifier IDs into the identifier /// table. std::vector<uint32_t> IdentifierOffsets; - /// \brief The first ID number we can use for our own submodules. + /// The first ID number we can use for our own submodules. serialization::SubmoduleID FirstSubmoduleID = serialization::NUM_PREDEF_SUBMODULE_IDS; - /// \brief The submodule ID that will be assigned to the next new submodule. + /// The submodule ID that will be assigned to the next new submodule. serialization::SubmoduleID NextSubmoduleID = FirstSubmoduleID; - /// \brief The first ID number we can use for our own selectors. + /// The first ID number we can use for our own selectors. serialization::SelectorID FirstSelectorID = serialization::NUM_PREDEF_SELECTOR_IDS; - /// \brief The selector ID that will be assigned to the next new selector. + /// The selector ID that will be assigned to the next new selector. serialization::SelectorID NextSelectorID = FirstSelectorID; - /// \brief Map that provides the ID numbers of each Selector. + /// Map that provides the ID numbers of each Selector. llvm::MapVector<Selector, serialization::SelectorID> SelectorIDs; - /// \brief Offset of each selector within the method pool/selector + /// Offset of each selector within the method pool/selector /// table, indexed by the Selector ID (-1). std::vector<uint32_t> SelectorOffsets; - /// \brief Mapping from macro definitions (as they occur in the preprocessing + /// Mapping from macro definitions (as they occur in the preprocessing /// record) to the macro IDs. llvm::DenseMap<const MacroDefinitionRecord *, serialization::PreprocessedEntityID> MacroDefinitions; - /// \brief Cache of indices of anonymous declarations within their lexical + /// Cache of indices of anonymous declarations within their lexical /// contexts. llvm::DenseMap<const Decl *, unsigned> AnonymousDeclarationNumbers; @@ -376,17 +376,17 @@ private: using UpdateRecord = SmallVector<DeclUpdate, 1>; using DeclUpdateMap = llvm::MapVector<const Decl *, UpdateRecord>; - /// \brief Mapping from declarations that came from a chained PCH to the + /// Mapping from declarations that came from a chained PCH to the /// record containing modifications to them. DeclUpdateMap DeclUpdates; using FirstLatestDeclMap = llvm::DenseMap<Decl *, Decl *>; - /// \brief Map of first declarations from a chained PCH that point to the + /// Map of first declarations from a chained PCH that point to the /// most recent declarations in another PCH. FirstLatestDeclMap FirstLatestDecls; - /// \brief Declarations encountered that might be external + /// Declarations encountered that might be external /// definitions. /// /// We keep track of external definitions and other 'interesting' declarations @@ -400,7 +400,7 @@ private: SmallVector<uint64_t, 16> EagerlyDeserializedDecls; SmallVector<uint64_t, 16> ModularCodegenDecls; - /// \brief DeclContexts that have received extensions since their serialized + /// DeclContexts that have received extensions since their serialized /// form. /// /// For namespaces, when we're chaining and encountering a namespace, we check @@ -409,52 +409,52 @@ private: /// it. llvm::SmallSetVector<const DeclContext *, 16> UpdatedDeclContexts; - /// \brief Keeps track of declarations that we must emit, even though we're + /// Keeps track of declarations that we must emit, even though we're /// not guaranteed to be able to find them by walking the AST starting at the /// translation unit. SmallVector<const Decl *, 16> DeclsToEmitEvenIfUnreferenced; - /// \brief The set of Objective-C class that have categories we + /// The set of Objective-C class that have categories we /// should serialize. llvm::SetVector<ObjCInterfaceDecl *> ObjCClassesWithCategories; - /// \brief The set of declarations that may have redeclaration chains that + /// The set of declarations that may have redeclaration chains that /// need to be serialized. llvm::SmallVector<const Decl *, 16> Redeclarations; - /// \brief A cache of the first local declaration for "interesting" + /// A cache of the first local declaration for "interesting" /// redeclaration chains. llvm::DenseMap<const Decl *, const Decl *> FirstLocalDeclCache; - /// \brief Mapping from SwitchCase statements to IDs. + /// Mapping from SwitchCase statements to IDs. llvm::DenseMap<SwitchCase *, unsigned> SwitchCaseIDs; - /// \brief The number of statements written to the AST file. + /// The number of statements written to the AST file. unsigned NumStatements = 0; - /// \brief The number of macros written to the AST file. + /// The number of macros written to the AST file. unsigned NumMacros = 0; - /// \brief The number of lexical declcontexts written to the AST + /// The number of lexical declcontexts written to the AST /// file. unsigned NumLexicalDeclContexts = 0; - /// \brief The number of visible declcontexts written to the AST + /// The number of visible declcontexts written to the AST /// file. unsigned NumVisibleDeclContexts = 0; - /// \brief A mapping from each known submodule to its ID number, which will + /// A mapping from each known submodule to its ID number, which will /// be a positive integer. llvm::DenseMap<Module *, unsigned> SubmoduleIDs; - /// \brief A list of the module file extension writers. + /// A list of the module file extension writers. std::vector<std::unique_ptr<ModuleFileExtensionWriter>> ModuleFileExtensionWriters; - /// \brief Retrieve or create a submodule ID for this module. + /// Retrieve or create a submodule ID for this module. unsigned getSubmoduleID(Module *Mod); - /// \brief Write the given subexpression to the bitstream. + /// Write the given subexpression to the bitstream. void WriteSubStmt(Stmt *S); void WriteBlockInfoBlock(); @@ -540,7 +540,7 @@ private: Module *WritingModule); public: - /// \brief Create a new precompiled header writer that outputs to + /// Create a new precompiled header writer that outputs to /// the given bitstream. ASTWriter(llvm::BitstreamWriter &Stream, SmallVectorImpl<char> &Buffer, MemoryBufferCache &PCMCache, @@ -550,12 +550,12 @@ public: const LangOptions &getLangOpts() const; - /// \brief Get a timestamp for output into the AST file. The actual timestamp + /// Get a timestamp for output into the AST file. The actual timestamp /// of the specified file may be ignored if we have been instructed to not /// include timestamps in the output file. time_t getTimestampForOutput(const FileEntry *E) const; - /// \brief Write a precompiled header for the given semantic analysis. + /// Write a precompiled header for the given semantic analysis. /// /// \param SemaRef a reference to the semantic analysis object that processed /// the AST to be written into the precompiled header. @@ -573,46 +573,46 @@ public: Module *WritingModule, StringRef isysroot, bool hasErrors = false); - /// \brief Emit a token. + /// Emit a token. void AddToken(const Token &Tok, RecordDataImpl &Record); - /// \brief Emit a source location. + /// Emit a source location. void AddSourceLocation(SourceLocation Loc, RecordDataImpl &Record); - /// \brief Emit a source range. + /// Emit a source range. void AddSourceRange(SourceRange Range, RecordDataImpl &Record); - /// \brief Emit a reference to an identifier. + /// Emit a reference to an identifier. void AddIdentifierRef(const IdentifierInfo *II, RecordDataImpl &Record); - /// \brief Get the unique number used to refer to the given selector. + /// Get the unique number used to refer to the given selector. serialization::SelectorID getSelectorRef(Selector Sel); - /// \brief Get the unique number used to refer to the given identifier. + /// Get the unique number used to refer to the given identifier. serialization::IdentID getIdentifierRef(const IdentifierInfo *II); - /// \brief Get the unique number used to refer to the given macro. + /// Get the unique number used to refer to the given macro. serialization::MacroID getMacroRef(MacroInfo *MI, const IdentifierInfo *Name); - /// \brief Determine the ID of an already-emitted macro. + /// Determine the ID of an already-emitted macro. serialization::MacroID getMacroID(MacroInfo *MI); uint64_t getMacroDirectivesOffset(const IdentifierInfo *Name); - /// \brief Emit a reference to a type. + /// Emit a reference to a type. void AddTypeRef(QualType T, RecordDataImpl &Record); - /// \brief Force a type to be emitted and get its ID. + /// Force a type to be emitted and get its ID. serialization::TypeID GetOrCreateTypeID(QualType T); - /// \brief Determine the type ID of an already-emitted type. + /// Determine the type ID of an already-emitted type. serialization::TypeID getTypeID(QualType T) const; - /// \brief Find the first local declaration of a given local redeclarable + /// Find the first local declaration of a given local redeclarable /// decl. const Decl *getFirstLocalDecl(const Decl *D); - /// \brief Is this a local declaration (that is, one that will be written to + /// Is this a local declaration (that is, one that will be written to /// our AST file)? This is the case for declarations that are neither imported /// from another AST file nor predefined. bool IsLocalDecl(const Decl *D) { @@ -623,52 +623,52 @@ public: I->second >= serialization::NUM_PREDEF_DECL_IDS); }; - /// \brief Emit a reference to a declaration. + /// Emit a reference to a declaration. void AddDeclRef(const Decl *D, RecordDataImpl &Record); - /// \brief Force a declaration to be emitted and get its ID. + /// Force a declaration to be emitted and get its ID. serialization::DeclID GetDeclRef(const Decl *D); - /// \brief Determine the declaration ID of an already-emitted + /// Determine the declaration ID of an already-emitted /// declaration. serialization::DeclID getDeclID(const Decl *D); unsigned getAnonymousDeclarationNumber(const NamedDecl *D); - /// \brief Add a string to the given record. + /// Add a string to the given record. void AddString(StringRef Str, RecordDataImpl &Record); - /// \brief Convert a path from this build process into one that is appropriate + /// Convert a path from this build process into one that is appropriate /// for emission in the module file. bool PreparePathForOutput(SmallVectorImpl<char> &Path); - /// \brief Add a path to the given record. + /// Add a path to the given record. void AddPath(StringRef Path, RecordDataImpl &Record); - /// \brief Emit the current record with the given path as a blob. + /// Emit the current record with the given path as a blob. void EmitRecordWithPath(unsigned Abbrev, RecordDataRef Record, StringRef Path); - /// \brief Add a version tuple to the given record + /// Add a version tuple to the given record void AddVersionTuple(const VersionTuple &Version, RecordDataImpl &Record); - /// \brief Retrieve or create a submodule ID for this module, or return 0 if + /// Retrieve or create a submodule ID for this module, or return 0 if /// the submodule is neither local (a submodle of the currently-written module) /// nor from an imported module. unsigned getLocalOrImportedSubmoduleID(Module *Mod); - /// \brief Note that the identifier II occurs at the given offset + /// Note that the identifier II occurs at the given offset /// within the identifier table. void SetIdentifierOffset(const IdentifierInfo *II, uint32_t Offset); - /// \brief Note that the selector Sel occurs at the given offset + /// Note that the selector Sel occurs at the given offset /// within the method pool/selector table. void SetSelectorOffset(Selector Sel, uint32_t Offset); - /// \brief Record an ID for the given switch-case statement. + /// Record an ID for the given switch-case statement. unsigned RecordSwitchCaseID(SwitchCase *S); - /// \brief Retrieve the ID for the given switch-case statement. + /// Retrieve the ID for the given switch-case statement. unsigned getSwitchCaseID(SwitchCase *S); void ClearSwitchCaseIDs(); @@ -743,21 +743,21 @@ private: const RecordDecl *Record) override; }; -/// \brief An object for streaming information to a record. +/// An object for streaming information to a record. class ASTRecordWriter { ASTWriter *Writer; ASTWriter::RecordDataImpl *Record; - /// \brief Statements that we've encountered while serializing a + /// Statements that we've encountered while serializing a /// declaration or type. SmallVector<Stmt *, 16> StmtsToEmit; - /// \brief Indices of record elements that describe offsets within the + /// Indices of record elements that describe offsets within the /// bitcode. These will be converted to offsets relative to the current /// record when emitted. SmallVector<unsigned, 8> OffsetIndices; - /// \brief Flush all of the statements and expressions that have + /// Flush all of the statements and expressions that have /// been added to the queue via AddStmt(). void FlushStmts(); void FlushSubStmts(); @@ -787,10 +787,10 @@ public: ASTRecordWriter(const ASTRecordWriter &) = delete; ASTRecordWriter &operator=(const ASTRecordWriter &) = delete; - /// \brief Extract the underlying record storage. + /// Extract the underlying record storage. ASTWriter::RecordDataImpl &getRecordData() const { return *Record; } - /// \brief Minimal vector-like interface. + /// Minimal vector-like interface. /// @{ void push_back(uint64_t N) { Record->push_back(N); } template<typename InputIterator> @@ -802,7 +802,7 @@ public: uint64_t &operator[](size_t N) { return (*Record)[N]; } /// @} - /// \brief Emit the record to the stream, followed by its substatements, and + /// Emit the record to the stream, followed by its substatements, and /// return its offset. // FIXME: Allow record producers to suggest Abbrevs. uint64_t Emit(unsigned Code, unsigned Abbrev = 0) { @@ -813,7 +813,7 @@ public: return Offset; } - /// \brief Emit the record to the stream, preceded by its substatements. + /// Emit the record to the stream, preceded by its substatements. uint64_t EmitStmt(unsigned Code, unsigned Abbrev = 0) { FlushSubStmts(); PrepareToEmit(Writer->Stream.GetCurrentBitNo()); @@ -821,14 +821,14 @@ public: return Writer->Stream.GetCurrentBitNo(); } - /// \brief Add a bit offset into the record. This will be converted into an + /// Add a bit offset into the record. This will be converted into an /// offset relative to the current record when emitted. void AddOffset(uint64_t BitOffset) { OffsetIndices.push_back(Record->size()); Record->push_back(BitOffset); } - /// \brief Add the given statement or expression to the queue of + /// Add the given statement or expression to the queue of /// statements to emit. /// /// This routine should be used when emitting types and declarations @@ -839,74 +839,74 @@ public: StmtsToEmit.push_back(S); } - /// \brief Add a definition for the given function to the queue of statements + /// Add a definition for the given function to the queue of statements /// to emit. void AddFunctionDefinition(const FunctionDecl *FD); - /// \brief Emit a source location. + /// Emit a source location. void AddSourceLocation(SourceLocation Loc) { return Writer->AddSourceLocation(Loc, *Record); } - /// \brief Emit a source range. + /// Emit a source range. void AddSourceRange(SourceRange Range) { return Writer->AddSourceRange(Range, *Record); } - /// \brief Emit an integral value. + /// Emit an integral value. void AddAPInt(const llvm::APInt &Value); - /// \brief Emit a signed integral value. + /// Emit a signed integral value. void AddAPSInt(const llvm::APSInt &Value); - /// \brief Emit a floating-point value. + /// Emit a floating-point value. void AddAPFloat(const llvm::APFloat &Value); - /// \brief Emit a reference to an identifier. + /// Emit a reference to an identifier. void AddIdentifierRef(const IdentifierInfo *II) { return Writer->AddIdentifierRef(II, *Record); } - /// \brief Emit a Selector (which is a smart pointer reference). + /// Emit a Selector (which is a smart pointer reference). void AddSelectorRef(Selector S); - /// \brief Emit a CXXTemporary. + /// Emit a CXXTemporary. void AddCXXTemporary(const CXXTemporary *Temp); - /// \brief Emit a C++ base specifier. + /// Emit a C++ base specifier. void AddCXXBaseSpecifier(const CXXBaseSpecifier &Base); - /// \brief Emit a set of C++ base specifiers. + /// Emit a set of C++ base specifiers. void AddCXXBaseSpecifiers(ArrayRef<CXXBaseSpecifier> Bases); - /// \brief Emit a reference to a type. + /// Emit a reference to a type. void AddTypeRef(QualType T) { return Writer->AddTypeRef(T, *Record); } - /// \brief Emits a reference to a declarator info. + /// Emits a reference to a declarator info. void AddTypeSourceInfo(TypeSourceInfo *TInfo); - /// \brief Emits a type with source-location information. + /// Emits a type with source-location information. void AddTypeLoc(TypeLoc TL); - /// \brief Emits a template argument location info. + /// Emits a template argument location info. void AddTemplateArgumentLocInfo(TemplateArgument::ArgKind Kind, const TemplateArgumentLocInfo &Arg); - /// \brief Emits a template argument location. + /// Emits a template argument location. void AddTemplateArgumentLoc(const TemplateArgumentLoc &Arg); - /// \brief Emits an AST template argument list info. + /// Emits an AST template argument list info. void AddASTTemplateArgumentListInfo( const ASTTemplateArgumentListInfo *ASTTemplArgList); - /// \brief Emit a reference to a declaration. + /// Emit a reference to a declaration. void AddDeclRef(const Decl *D) { return Writer->AddDeclRef(D, *Record); } - /// \brief Emit a declaration name. + /// Emit a declaration name. void AddDeclarationName(DeclarationName Name); void AddDeclarationNameLoc(const DeclarationNameLoc &DNLoc, @@ -915,52 +915,52 @@ public: void AddQualifierInfo(const QualifierInfo &Info); - /// \brief Emit a nested name specifier. + /// Emit a nested name specifier. void AddNestedNameSpecifier(NestedNameSpecifier *NNS); - /// \brief Emit a nested name specifier with source-location information. + /// Emit a nested name specifier with source-location information. void AddNestedNameSpecifierLoc(NestedNameSpecifierLoc NNS); - /// \brief Emit a template name. + /// Emit a template name. void AddTemplateName(TemplateName Name); - /// \brief Emit a template argument. + /// Emit a template argument. void AddTemplateArgument(const TemplateArgument &Arg); - /// \brief Emit a template parameter list. + /// Emit a template parameter list. void AddTemplateParameterList(const TemplateParameterList *TemplateParams); - /// \brief Emit a template argument list. + /// Emit a template argument list. void AddTemplateArgumentList(const TemplateArgumentList *TemplateArgs); - /// \brief Emit a UnresolvedSet structure. + /// Emit a UnresolvedSet structure. void AddUnresolvedSet(const ASTUnresolvedSet &Set); - /// \brief Emit a CXXCtorInitializer array. + /// Emit a CXXCtorInitializer array. void AddCXXCtorInitializers(ArrayRef<CXXCtorInitializer *> CtorInits); void AddCXXDefinitionData(const CXXRecordDecl *D); - /// \brief Emit a string. + /// Emit a string. void AddString(StringRef Str) { return Writer->AddString(Str, *Record); } - /// \brief Emit a path. + /// Emit a path. void AddPath(StringRef Path) { return Writer->AddPath(Path, *Record); } - /// \brief Emit a version tuple. + /// Emit a version tuple. void AddVersionTuple(const VersionTuple &Version) { return Writer->AddVersionTuple(Version, *Record); } - /// \brief Emit a list of attributes. + /// Emit a list of attributes. void AddAttributes(ArrayRef<const Attr*> Attrs); }; -/// \brief AST and semantic-analysis consumer that generates a +/// AST and semantic-analysis consumer that generates a /// precompiled header from the parsed source code. class PCHGenerator : public SemaConsumer { const Preprocessor &PP; |