Index: cfe/trunk/docs/LibFormat.rst =================================================================== --- cfe/trunk/docs/LibFormat.rst +++ cfe/trunk/docs/LibFormat.rst @@ -44,11 +44,11 @@ .. code-block:: c++ - /// \brief Returns a format style complying with the LLVM coding standards: + /// Returns a format style complying with the LLVM coding standards: /// http://llvm.org/docs/CodingStandards.html. FormatStyle getLLVMStyle(); - /// \brief Returns a format style complying with Google's C++ style guide: + /// Returns a format style complying with Google's C++ style guide: /// http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml. FormatStyle getGoogleStyle(); Index: cfe/trunk/docs/doxygen.cfg.in =================================================================== --- cfe/trunk/docs/doxygen.cfg.in +++ cfe/trunk/docs/doxygen.cfg.in @@ -174,7 +174,7 @@ # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first # line (until the first dot) of a Qt-style comment as the brief description. If # set to NO, the Qt-style will behave just like regular Qt-style comments (thus -# requiring an explicit \brief command for a brief description.) +# requiring an explicit command for a brief description.) # The default value is: NO. QT_AUTOBRIEF = YES Index: cfe/trunk/include/clang-c/BuildSystem.h =================================================================== --- cfe/trunk/include/clang-c/BuildSystem.h +++ cfe/trunk/include/clang-c/BuildSystem.h @@ -28,19 +28,19 @@ */ /** - * \brief Return the timestamp for use with Clang's + * Return the timestamp for use with Clang's * \c -fbuild-session-timestamp= option. */ CINDEX_LINKAGE unsigned long long clang_getBuildSessionTimestamp(void); /** - * \brief Object encapsulating information about overlaying virtual + * Object encapsulating information about overlaying virtual * file/directories over the real file system. */ typedef struct CXVirtualFileOverlayImpl *CXVirtualFileOverlay; /** - * \brief Create a \c CXVirtualFileOverlay object. + * Create a \c CXVirtualFileOverlay object. * Must be disposed with \c clang_VirtualFileOverlay_dispose(). * * \param options is reserved, always pass 0. @@ -49,7 +49,7 @@ clang_VirtualFileOverlay_create(unsigned options); /** - * \brief Map an absolute virtual file path to an absolute real one. + * Map an absolute virtual file path to an absolute real one. * The virtual path must be canonicalized (not contain "."/".."). * \returns 0 for success, non-zero to indicate an error. */ @@ -59,7 +59,7 @@ const char *realPath); /** - * \brief Set the case sensitivity for the \c CXVirtualFileOverlay object. + * Set the case sensitivity for the \c CXVirtualFileOverlay object. * The \c CXVirtualFileOverlay object is case-sensitive by default, this * option can be used to override the default. * \returns 0 for success, non-zero to indicate an error. @@ -69,7 +69,7 @@ int caseSensitive); /** - * \brief Write out the \c CXVirtualFileOverlay object to a char buffer. + * Write out the \c CXVirtualFileOverlay object to a char buffer. * * \param options is reserved, always pass 0. * \param out_buffer_ptr pointer to receive the buffer pointer, which should be @@ -83,7 +83,7 @@ unsigned *out_buffer_size); /** - * \brief free memory allocated by libclang, such as the buffer returned by + * free memory allocated by libclang, such as the buffer returned by * \c CXVirtualFileOverlay() or \c clang_ModuleMapDescriptor_writeToBuffer(). * * \param buffer memory pointer to free. @@ -91,17 +91,17 @@ CINDEX_LINKAGE void clang_free(void *buffer); /** - * \brief Dispose a \c CXVirtualFileOverlay object. + * Dispose a \c CXVirtualFileOverlay object. */ CINDEX_LINKAGE void clang_VirtualFileOverlay_dispose(CXVirtualFileOverlay); /** - * \brief Object encapsulating information about a module.map file. + * Object encapsulating information about a module.map file. */ typedef struct CXModuleMapDescriptorImpl *CXModuleMapDescriptor; /** - * \brief Create a \c CXModuleMapDescriptor object. + * Create a \c CXModuleMapDescriptor object. * Must be disposed with \c clang_ModuleMapDescriptor_dispose(). * * \param options is reserved, always pass 0. @@ -110,7 +110,7 @@ clang_ModuleMapDescriptor_create(unsigned options); /** - * \brief Sets the framework module name that the module.map describes. + * Sets the framework module name that the module.map describes. * \returns 0 for success, non-zero to indicate an error. */ CINDEX_LINKAGE enum CXErrorCode @@ -118,7 +118,7 @@ const char *name); /** - * \brief Sets the umbrealla header name that the module.map describes. + * Sets the umbrealla header name that the module.map describes. * \returns 0 for success, non-zero to indicate an error. */ CINDEX_LINKAGE enum CXErrorCode @@ -126,7 +126,7 @@ const char *name); /** - * \brief Write out the \c CXModuleMapDescriptor object to a char buffer. + * Write out the \c CXModuleMapDescriptor object to a char buffer. * * \param options is reserved, always pass 0. * \param out_buffer_ptr pointer to receive the buffer pointer, which should be @@ -140,7 +140,7 @@ unsigned *out_buffer_size); /** - * \brief Dispose a \c CXModuleMapDescriptor object. + * Dispose a \c CXModuleMapDescriptor object. */ CINDEX_LINKAGE void clang_ModuleMapDescriptor_dispose(CXModuleMapDescriptor); Index: cfe/trunk/include/clang-c/CXCompilationDatabase.h =================================================================== --- cfe/trunk/include/clang-c/CXCompilationDatabase.h +++ cfe/trunk/include/clang-c/CXCompilationDatabase.h @@ -38,7 +38,7 @@ typedef void * CXCompilationDatabase; /** - * \brief Contains the results of a search in the compilation database + * Contains the results of a search in the compilation database * * When searching for the compile command for a file, the compilation db can * return several commands, as the file may have been compiled with @@ -49,28 +49,28 @@ typedef void * CXCompileCommands; /** - * \brief Represents the command line invocation to compile a specific file. + * Represents the command line invocation to compile a specific file. */ typedef void * CXCompileCommand; /** - * \brief Error codes for Compilation Database + * Error codes for Compilation Database */ typedef enum { /* - * \brief No error occurred + * No error occurred */ CXCompilationDatabase_NoError = 0, /* - * \brief Database can not be loaded + * Database can not be loaded */ CXCompilationDatabase_CanNotLoadDatabase = 1 } CXCompilationDatabase_Error; /** - * \brief Creates a compilation database from the database found in directory + * Creates a compilation database from the database found in directory * buildDir. For example, CMake can output a compile_commands.json which can * be used to build the database. * @@ -81,13 +81,13 @@ CXCompilationDatabase_Error *ErrorCode); /** - * \brief Free the given compilation database + * Free the given compilation database */ CINDEX_LINKAGE void clang_CompilationDatabase_dispose(CXCompilationDatabase); /** - * \brief Find the compile commands used for a file. The compile commands + * Find the compile commands used for a file. The compile commands * must be freed by \c clang_CompileCommands_dispose. */ CINDEX_LINKAGE CXCompileCommands @@ -95,24 +95,24 @@ const char *CompleteFileName); /** - * \brief Get all the compile commands in the given compilation database. + * Get all the compile commands in the given compilation database. */ CINDEX_LINKAGE CXCompileCommands clang_CompilationDatabase_getAllCompileCommands(CXCompilationDatabase); /** - * \brief Free the given CompileCommands + * Free the given CompileCommands */ CINDEX_LINKAGE void clang_CompileCommands_dispose(CXCompileCommands); /** - * \brief Get the number of CompileCommand we have for a file + * Get the number of CompileCommand we have for a file */ CINDEX_LINKAGE unsigned clang_CompileCommands_getSize(CXCompileCommands); /** - * \brief Get the I'th CompileCommand for a file + * Get the I'th CompileCommand for a file * * Note : 0 <= i < clang_CompileCommands_getSize(CXCompileCommands) */ @@ -120,26 +120,26 @@ clang_CompileCommands_getCommand(CXCompileCommands, unsigned I); /** - * \brief Get the working directory where the CompileCommand was executed from + * Get the working directory where the CompileCommand was executed from */ CINDEX_LINKAGE CXString clang_CompileCommand_getDirectory(CXCompileCommand); /** - * \brief Get the filename associated with the CompileCommand. + * Get the filename associated with the CompileCommand. */ CINDEX_LINKAGE CXString clang_CompileCommand_getFilename(CXCompileCommand); /** - * \brief Get the number of arguments in the compiler invocation. + * Get the number of arguments in the compiler invocation. * */ CINDEX_LINKAGE unsigned clang_CompileCommand_getNumArgs(CXCompileCommand); /** - * \brief Get the I'th argument value in the compiler invocations + * Get the I'th argument value in the compiler invocations * * Invariant : * - argument 0 is the compiler executable @@ -148,19 +148,19 @@ clang_CompileCommand_getArg(CXCompileCommand, unsigned I); /** - * \brief Get the number of source mappings for the compiler invocation. + * Get the number of source mappings for the compiler invocation. */ CINDEX_LINKAGE unsigned clang_CompileCommand_getNumMappedSources(CXCompileCommand); /** - * \brief Get the I'th mapped source path for the compiler invocation. + * Get the I'th mapped source path for the compiler invocation. */ CINDEX_LINKAGE CXString clang_CompileCommand_getMappedSourcePath(CXCompileCommand, unsigned I); /** - * \brief Get the I'th mapped source content for the compiler invocation. + * Get the I'th mapped source content for the compiler invocation. */ CINDEX_LINKAGE CXString clang_CompileCommand_getMappedSourceContent(CXCompileCommand, unsigned I); Index: cfe/trunk/include/clang-c/CXErrorCode.h =================================================================== --- cfe/trunk/include/clang-c/CXErrorCode.h +++ cfe/trunk/include/clang-c/CXErrorCode.h @@ -21,19 +21,19 @@ #endif /** - * \brief Error codes returned by libclang routines. + * Error codes returned by libclang routines. * * Zero (\c CXError_Success) is the only error code indicating success. Other * error codes, including not yet assigned non-zero values, indicate errors. */ enum CXErrorCode { /** - * \brief No error. + * No error. */ CXError_Success = 0, /** - * \brief A generic error code, no further details are available. + * A generic error code, no further details are available. * * Errors of this kind can get their own specific error codes in future * libclang versions. @@ -41,18 +41,18 @@ CXError_Failure = 1, /** - * \brief libclang crashed while performing the requested operation. + * libclang crashed while performing the requested operation. */ CXError_Crashed = 2, /** - * \brief The function detected that the arguments violate the function + * The function detected that the arguments violate the function * contract. */ CXError_InvalidArguments = 3, /** - * \brief An AST deserialization error has occurred. + * An AST deserialization error has occurred. */ CXError_ASTReadError = 4 }; Index: cfe/trunk/include/clang-c/CXString.h =================================================================== --- cfe/trunk/include/clang-c/CXString.h +++ cfe/trunk/include/clang-c/CXString.h @@ -28,7 +28,7 @@ */ /** - * \brief A character string. + * A character string. * * The \c CXString type is used to return strings from the interface when * the ownership of that string might differ from one call to the next. @@ -46,17 +46,17 @@ } CXStringSet; /** - * \brief Retrieve the character data associated with the given string. + * Retrieve the character data associated with the given string. */ CINDEX_LINKAGE const char *clang_getCString(CXString string); /** - * \brief Free the given string. + * Free the given string. */ CINDEX_LINKAGE void clang_disposeString(CXString string); /** - * \brief Free the given string set. + * Free the given string set. */ CINDEX_LINKAGE void clang_disposeStringSet(CXStringSet *set); Index: cfe/trunk/include/clang-c/Documentation.h =================================================================== --- cfe/trunk/include/clang-c/Documentation.h +++ cfe/trunk/include/clang-c/Documentation.h @@ -32,7 +32,7 @@ */ /** - * \brief A parsed comment. + * A parsed comment. */ typedef struct { const void *ASTNode; @@ -40,38 +40,38 @@ } CXComment; /** - * \brief Given a cursor that represents a documentable entity (e.g., + * Given a cursor that represents a documentable entity (e.g., * declaration), return the associated parsed comment as a * \c CXComment_FullComment AST node. */ CINDEX_LINKAGE CXComment clang_Cursor_getParsedComment(CXCursor C); /** - * \brief Describes the type of the comment AST node (\c CXComment). A comment + * Describes the type of the comment AST node (\c CXComment). A comment * node can be considered block content (e. g., paragraph), inline content * (plain text) or neither (the root AST node). */ enum CXCommentKind { /** - * \brief Null comment. No AST node is constructed at the requested location + * Null comment. No AST node is constructed at the requested location * because there is no text or a syntax error. */ CXComment_Null = 0, /** - * \brief Plain text. Inline content. + * Plain text. Inline content. */ CXComment_Text = 1, /** - * \brief A command with word-like arguments that is considered inline content. + * A command with word-like arguments that is considered inline content. * * For example: \\c command. */ CXComment_InlineCommand = 2, /** - * \brief HTML start tag with attributes (name-value pairs). Considered + * HTML start tag with attributes (name-value pairs). Considered * inline content. * * For example: @@ -82,7 +82,7 @@ CXComment_HTMLStartTag = 3, /** - * \brief HTML end tag. Considered inline content. + * HTML end tag. Considered inline content. * * For example: * \verbatim @@ -92,19 +92,19 @@ CXComment_HTMLEndTag = 4, /** - * \brief A paragraph, contains inline comment. The paragraph itself is + * A paragraph, contains inline comment. The paragraph itself is * block content. */ CXComment_Paragraph = 5, /** - * \brief A command that has zero or more word-like arguments (number of + * A command that has zero or more word-like arguments (number of * word-like arguments depends on command name) and a paragraph as an * argument. Block command is block content. * * Paragraph argument is also a child of the block command. * - * For example: \\brief has 0 word-like arguments and a paragraph argument. + * For example: \has 0 word-like arguments and a paragraph argument. * * AST nodes of special kinds that parser knows about (e. g., \\param * command) have their own node kinds. @@ -112,7 +112,7 @@ CXComment_BlockCommand = 6, /** - * \brief A \\param or \\arg command that describes the function parameter + * A \\param or \\arg command that describes the function parameter * (name, passing direction, description). * * For example: \\param [in] ParamName description. @@ -120,7 +120,7 @@ CXComment_ParamCommand = 7, /** - * \brief A \\tparam command that describes a template parameter (name and + * A \\tparam command that describes a template parameter (name and * description). * * For example: \\tparam T description. @@ -128,7 +128,7 @@ CXComment_TParamCommand = 8, /** - * \brief A verbatim block command (e. g., preformatted code). Verbatim + * A verbatim block command (e. g., preformatted code). Verbatim * block has an opening and a closing command and contains multiple lines of * text (\c CXComment_VerbatimBlockLine child nodes). * @@ -140,67 +140,67 @@ CXComment_VerbatimBlockCommand = 9, /** - * \brief A line of text that is contained within a + * A line of text that is contained within a * CXComment_VerbatimBlockCommand node. */ CXComment_VerbatimBlockLine = 10, /** - * \brief A verbatim line command. Verbatim line has an opening command, + * A verbatim line command. Verbatim line has an opening command, * a single line of text (up to the newline after the opening command) and * has no closing command. */ CXComment_VerbatimLine = 11, /** - * \brief A full comment attached to a declaration, contains block content. + * A full comment attached to a declaration, contains block content. */ CXComment_FullComment = 12 }; /** - * \brief The most appropriate rendering mode for an inline command, chosen on + * The most appropriate rendering mode for an inline command, chosen on * command semantics in Doxygen. */ enum CXCommentInlineCommandRenderKind { /** - * \brief Command argument should be rendered in a normal font. + * Command argument should be rendered in a normal font. */ CXCommentInlineCommandRenderKind_Normal, /** - * \brief Command argument should be rendered in a bold font. + * Command argument should be rendered in a bold font. */ CXCommentInlineCommandRenderKind_Bold, /** - * \brief Command argument should be rendered in a monospaced font. + * Command argument should be rendered in a monospaced font. */ CXCommentInlineCommandRenderKind_Monospaced, /** - * \brief Command argument should be rendered emphasized (typically italic + * Command argument should be rendered emphasized (typically italic * font). */ CXCommentInlineCommandRenderKind_Emphasized }; /** - * \brief Describes parameter passing direction for \\param or \\arg command. + * Describes parameter passing direction for \\param or \\arg command. */ enum CXCommentParamPassDirection { /** - * \brief The parameter is an input parameter. + * The parameter is an input parameter. */ CXCommentParamPassDirection_In, /** - * \brief The parameter is an output parameter. + * The parameter is an output parameter. */ CXCommentParamPassDirection_Out, /** - * \brief The parameter is an input and output parameter. + * The parameter is an input and output parameter. */ CXCommentParamPassDirection_InOut }; @@ -230,7 +230,7 @@ CXComment clang_Comment_getChild(CXComment Comment, unsigned ChildIdx); /** - * \brief A \c CXComment_Paragraph node is considered whitespace if it contains + * A \c CXComment_Paragraph node is considered whitespace if it contains * only \c CXComment_Text nodes that are empty or whitespace. * * Other AST nodes (except \c CXComment_Paragraph and \c CXComment_Text) are @@ -487,7 +487,7 @@ CINDEX_LINKAGE CXString clang_VerbatimLineComment_getText(CXComment Comment); /** - * \brief Convert an HTML tag AST node to string. + * Convert an HTML tag AST node to string. * * \param Comment a \c CXComment_HTMLStartTag or \c CXComment_HTMLEndTag AST * node. @@ -497,13 +497,13 @@ CINDEX_LINKAGE CXString clang_HTMLTagComment_getAsString(CXComment Comment); /** - * \brief Convert a given full parsed comment to an HTML fragment. + * Convert a given full parsed comment to an HTML fragment. * * Specific details of HTML layout are subject to change. Don't try to parse * this HTML back into an AST, use other APIs instead. * * Currently the following CSS classes are used: - * \li "para-brief" for \\brief paragraph and equivalent commands; + * \li "para-brief" for \paragraph and equivalent commands; * \li "para-returns" for \\returns paragraph and equivalent commands; * \li "word-returns" for the "Returns" word in \\returns paragraph. * @@ -530,7 +530,7 @@ CINDEX_LINKAGE CXString clang_FullComment_getAsHTML(CXComment Comment); /** - * \brief Convert a given full parsed comment to an XML document. + * Convert a given full parsed comment to an XML document. * * A Relax NG schema for the XML can be found in comment-xml-schema.rng file * inside clang source tree. Index: cfe/trunk/include/clang-c/Index.h =================================================================== --- cfe/trunk/include/clang-c/Index.h +++ cfe/trunk/include/clang-c/Index.h @@ -24,7 +24,7 @@ #include "clang-c/BuildSystem.h" /** - * \brief The version constants for the libclang API. + * The version constants for the libclang API. * CINDEX_VERSION_MINOR should increase when there are API additions. * CINDEX_VERSION_MAJOR is intended for "major" source/ABI breaking changes. * @@ -75,30 +75,30 @@ */ /** - * \brief An "index" that consists of a set of translation units that would + * An "index" that consists of a set of translation units that would * typically be linked together into an executable or library. */ typedef void *CXIndex; /** - * \brief An opaque type representing target information for a given translation + * An opaque type representing target information for a given translation * unit. */ typedef struct CXTargetInfoImpl *CXTargetInfo; /** - * \brief A single translation unit, which resides in an index. + * A single translation unit, which resides in an index. */ typedef struct CXTranslationUnitImpl *CXTranslationUnit; /** - * \brief Opaque pointer representing client data that will be passed through + * Opaque pointer representing client data that will be passed through * to various callbacks and visitors. */ typedef void *CXClientData; /** - * \brief Provides the contents of a file that has not yet been saved to disk. + * Provides the contents of a file that has not yet been saved to disk. * * Each CXUnsavedFile instance provides the name of a file on the * system along with the current contents of that file that have not @@ -106,66 +106,66 @@ */ struct CXUnsavedFile { /** - * \brief The file whose contents have not yet been saved. + * The file whose contents have not yet been saved. * * This file must already exist in the file system. */ const char *Filename; /** - * \brief A buffer containing the unsaved contents of this file. + * A buffer containing the unsaved contents of this file. */ const char *Contents; /** - * \brief The length of the unsaved contents of this buffer. + * The length of the unsaved contents of this buffer. */ unsigned long Length; }; /** - * \brief Describes the availability of a particular entity, which indicates + * Describes the availability of a particular entity, which indicates * whether the use of this entity will result in a warning or error due to * it being deprecated or unavailable. */ enum CXAvailabilityKind { /** - * \brief The entity is available. + * The entity is available. */ CXAvailability_Available, /** - * \brief The entity is available, but has been deprecated (and its use is + * The entity is available, but has been deprecated (and its use is * not recommended). */ CXAvailability_Deprecated, /** - * \brief The entity is not available; any use of it will be an error. + * The entity is not available; any use of it will be an error. */ CXAvailability_NotAvailable, /** - * \brief The entity is available, but not accessible; any use of it will be + * The entity is available, but not accessible; any use of it will be * an error. */ CXAvailability_NotAccessible }; /** - * \brief Describes a version number of the form major.minor.subminor. + * Describes a version number of the form major.minor.subminor. */ typedef struct CXVersion { /** - * \brief The major version number, e.g., the '10' in '10.7.3'. A negative + * The major version number, e.g., the '10' in '10.7.3'. A negative * value indicates that there is no version number at all. */ int Major; /** - * \brief The minor version number, e.g., the '7' in '10.7.3'. This value + * The minor version number, e.g., the '7' in '10.7.3'. This value * will be negative if no minor version number was provided, e.g., for * version '10'. */ int Minor; /** - * \brief The subminor version number, e.g., the '3' in '10.7.3'. This value + * The subminor version number, e.g., the '3' in '10.7.3'. This value * will be negative if no minor or subminor version number was provided, * e.g., in version '10' or '10.7'. */ @@ -173,60 +173,60 @@ } CXVersion; /** - * \brief Describes the exception specification of a cursor. + * Describes the exception specification of a cursor. * * A negative value indicates that the cursor is not a function declaration. */ enum CXCursor_ExceptionSpecificationKind { /** - * \brief The cursor has no exception specification. + * The cursor has no exception specification. */ CXCursor_ExceptionSpecificationKind_None, /** - * \brief The cursor has exception specification throw() + * The cursor has exception specification throw() */ CXCursor_ExceptionSpecificationKind_DynamicNone, /** - * \brief The cursor has exception specification throw(T1, T2) + * The cursor has exception specification throw(T1, T2) */ CXCursor_ExceptionSpecificationKind_Dynamic, /** - * \brief The cursor has exception specification throw(...). + * The cursor has exception specification throw(...). */ CXCursor_ExceptionSpecificationKind_MSAny, /** - * \brief The cursor has exception specification basic noexcept. + * The cursor has exception specification basic noexcept. */ CXCursor_ExceptionSpecificationKind_BasicNoexcept, /** - * \brief The cursor has exception specification computed noexcept. + * The cursor has exception specification computed noexcept. */ CXCursor_ExceptionSpecificationKind_ComputedNoexcept, /** - * \brief The exception specification has not yet been evaluated. + * The exception specification has not yet been evaluated. */ CXCursor_ExceptionSpecificationKind_Unevaluated, /** - * \brief The exception specification has not yet been instantiated. + * The exception specification has not yet been instantiated. */ CXCursor_ExceptionSpecificationKind_Uninstantiated, /** - * \brief The exception specification has not been parsed yet. + * The exception specification has not been parsed yet. */ CXCursor_ExceptionSpecificationKind_Unparsed }; /** - * \brief Provides a shared context for creating translation units. + * Provides a shared context for creating translation units. * * It provides two options: * @@ -269,7 +269,7 @@ int displayDiagnostics); /** - * \brief Destroy the given index. + * Destroy the given index. * * The index must not be destroyed until all of the translation units created * within that index have been destroyed. @@ -278,12 +278,12 @@ typedef enum { /** - * \brief Used to indicate that no special CXIndex options are needed. + * Used to indicate that no special CXIndex options are needed. */ CXGlobalOpt_None = 0x0, /** - * \brief Used to indicate that threads that libclang creates for indexing + * Used to indicate that threads that libclang creates for indexing * purposes should use background priority. * * Affects #clang_indexSourceFile, #clang_indexTranslationUnit, @@ -292,7 +292,7 @@ CXGlobalOpt_ThreadBackgroundPriorityForIndexing = 0x1, /** - * \brief Used to indicate that threads that libclang creates for editing + * Used to indicate that threads that libclang creates for editing * purposes should use background priority. * * Affects #clang_reparseTranslationUnit, #clang_codeCompleteAt, @@ -301,7 +301,7 @@ CXGlobalOpt_ThreadBackgroundPriorityForEditing = 0x2, /** - * \brief Used to indicate that all threads that libclang creates should use + * Used to indicate that all threads that libclang creates should use * background priority. */ CXGlobalOpt_ThreadBackgroundPriorityForAll = @@ -311,7 +311,7 @@ } CXGlobalOptFlags; /** - * \brief Sets general options associated with a CXIndex. + * Sets general options associated with a CXIndex. * * For example: * \code @@ -326,7 +326,7 @@ CINDEX_LINKAGE void clang_CXIndex_setGlobalOptions(CXIndex, unsigned options); /** - * \brief Gets the general options associated with a CXIndex. + * Gets the general options associated with a CXIndex. * * \returns A bitmask of options, a bitwise OR of CXGlobalOpt_XXX flags that * are associated with the given CXIndex object. @@ -334,7 +334,7 @@ CINDEX_LINKAGE unsigned clang_CXIndex_getGlobalOptions(CXIndex); /** - * \brief Sets the invocation emission path option in a CXIndex. + * Sets the invocation emission path option in a CXIndex. * * The invocation emission path specifies a path which will contain log * files for certain libclang invocations. A null value (default) implies that @@ -350,22 +350,22 @@ */ /** - * \brief A particular source file that is part of a translation unit. + * A particular source file that is part of a translation unit. */ typedef void *CXFile; /** - * \brief Retrieve the complete file and path name of the given file. + * Retrieve the complete file and path name of the given file. */ CINDEX_LINKAGE CXString clang_getFileName(CXFile SFile); /** - * \brief Retrieve the last modification time of the given file. + * Retrieve the last modification time of the given file. */ CINDEX_LINKAGE time_t clang_getFileTime(CXFile SFile); /** - * \brief Uniquely identifies a CXFile, that refers to the same underlying file, + * Uniquely identifies a CXFile, that refers to the same underlying file, * across an indexing session. */ typedef struct { @@ -373,7 +373,7 @@ } CXFileUniqueID; /** - * \brief Retrieve the unique ID for the given \c file. + * Retrieve the unique ID for the given \c file. * * \param file the file to get the ID for. * \param outID stores the returned CXFileUniqueID. @@ -383,7 +383,7 @@ CINDEX_LINKAGE int clang_getFileUniqueID(CXFile file, CXFileUniqueID *outID); /** - * \brief Determine whether the given header is guarded against + * Determine whether the given header is guarded against * multiple inclusions, either with the conventional * \#ifndef/\#define/\#endif macro guards or with \#pragma once. */ @@ -391,7 +391,7 @@ clang_isFileMultipleIncludeGuarded(CXTranslationUnit tu, CXFile file); /** - * \brief Retrieve a file handle within the given translation unit. + * Retrieve a file handle within the given translation unit. * * \param tu the translation unit * @@ -404,7 +404,7 @@ const char *file_name); /** - * \brief Retrieve the buffer associated with the given file. + * Retrieve the buffer associated with the given file. * * \param tu the translation unit * @@ -419,13 +419,13 @@ CXFile file, size_t *size); /** - * \brief Returns non-zero if the \c file1 and \c file2 point to the same file, + * Returns non-zero if the \c file1 and \c file2 point to the same file, * or they are both NULL. */ CINDEX_LINKAGE int clang_File_isEqual(CXFile file1, CXFile file2); /** - * \brief Returns the real path name of \c file. + * Returns the real path name of \c file. * * An empty string may be returned. Use \c clang_getFileName() in that case. */ @@ -449,7 +449,7 @@ */ /** - * \brief Identifies a specific source location within a translation + * Identifies a specific source location within a translation * unit. * * Use clang_getExpansionLocation() or clang_getSpellingLocation() @@ -461,7 +461,7 @@ } CXSourceLocation; /** - * \brief Identifies a half-open character range in the source code. + * Identifies a half-open character range in the source code. * * Use clang_getRangeStart() and clang_getRangeEnd() to retrieve the * starting and end locations from a source range, respectively. @@ -473,12 +473,12 @@ } CXSourceRange; /** - * \brief Retrieve a NULL (invalid) source location. + * Retrieve a NULL (invalid) source location. */ CINDEX_LINKAGE CXSourceLocation clang_getNullLocation(void); /** - * \brief Determine whether two source locations, which must refer into + * Determine whether two source locations, which must refer into * the same translation unit, refer to exactly the same point in the source * code. * @@ -489,7 +489,7 @@ CXSourceLocation loc2); /** - * \brief Retrieves the source location associated with a given file/line/column + * Retrieves the source location associated with a given file/line/column * in a particular translation unit. */ CINDEX_LINKAGE CXSourceLocation clang_getLocation(CXTranslationUnit tu, @@ -497,7 +497,7 @@ unsigned line, unsigned column); /** - * \brief Retrieves the source location associated with a given character offset + * Retrieves the source location associated with a given character offset * in a particular translation unit. */ CINDEX_LINKAGE CXSourceLocation clang_getLocationForOffset(CXTranslationUnit tu, @@ -505,30 +505,30 @@ unsigned offset); /** - * \brief Returns non-zero if the given source location is in a system header. + * Returns non-zero if the given source location is in a system header. */ CINDEX_LINKAGE int clang_Location_isInSystemHeader(CXSourceLocation location); /** - * \brief Returns non-zero if the given source location is in the main file of + * Returns non-zero if the given source location is in the main file of * the corresponding translation unit. */ CINDEX_LINKAGE int clang_Location_isFromMainFile(CXSourceLocation location); /** - * \brief Retrieve a NULL (invalid) source range. + * Retrieve a NULL (invalid) source range. */ CINDEX_LINKAGE CXSourceRange clang_getNullRange(void); /** - * \brief Retrieve a source range given the beginning and ending source + * Retrieve a source range given the beginning and ending source * locations. */ CINDEX_LINKAGE CXSourceRange clang_getRange(CXSourceLocation begin, CXSourceLocation end); /** - * \brief Determine whether two ranges are equivalent. + * Determine whether two ranges are equivalent. * * \returns non-zero if the ranges are the same, zero if they differ. */ @@ -536,12 +536,12 @@ CXSourceRange range2); /** - * \brief Returns non-zero if \p range is null. + * Returns non-zero if \p range is null. */ CINDEX_LINKAGE int clang_Range_isNull(CXSourceRange range); /** - * \brief Retrieve the file, line, column, and offset represented by + * Retrieve the file, line, column, and offset represented by * the given source location. * * If the location refers into a macro expansion, retrieves the @@ -569,7 +569,7 @@ unsigned *offset); /** - * \brief Retrieve the file, line and column represented by the given source + * Retrieve the file, line and column represented by the given source * location, as specified in a # line directive. * * Example: given the following source code in a file somefile.c @@ -614,7 +614,7 @@ unsigned *column); /** - * \brief Legacy API to retrieve the file, line, column, and offset represented + * Legacy API to retrieve the file, line, column, and offset represented * by the given source location. * * This interface has been replaced by the newer interface @@ -628,7 +628,7 @@ unsigned *offset); /** - * \brief Retrieve the file, line, column, and offset represented by + * Retrieve the file, line, column, and offset represented by * the given source location. * * If the location refers into a macro instantiation, return where the @@ -656,7 +656,7 @@ unsigned *offset); /** - * \brief Retrieve the file, line, column, and offset represented by + * Retrieve the file, line, column, and offset represented by * the given source location. * * If the location refers into a macro expansion, return where the macro was @@ -685,31 +685,31 @@ unsigned *offset); /** - * \brief Retrieve a source location representing the first character within a + * Retrieve a source location representing the first character within a * source range. */ CINDEX_LINKAGE CXSourceLocation clang_getRangeStart(CXSourceRange range); /** - * \brief Retrieve a source location representing the last character within a + * Retrieve a source location representing the last character within a * source range. */ CINDEX_LINKAGE CXSourceLocation clang_getRangeEnd(CXSourceRange range); /** - * \brief Identifies an array of ranges. + * Identifies an array of ranges. */ typedef struct { - /** \brief The number of ranges in the \c ranges array. */ + /** The number of ranges in the \c ranges array. */ unsigned count; /** - * \brief An array of \c CXSourceRanges. + * An array of \c CXSourceRanges. */ CXSourceRange *ranges; } CXSourceRangeList; /** - * \brief Retrieve all ranges that were skipped by the preprocessor. + * Retrieve all ranges that were skipped by the preprocessor. * * The preprocessor will skip lines when they are surrounded by an * if/ifdef/ifndef directive whose condition does not evaluate to true. @@ -718,7 +718,7 @@ CXFile file); /** - * \brief Retrieve all ranges from all files that were skipped by the + * Retrieve all ranges from all files that were skipped by the * preprocessor. * * The preprocessor will skip lines when they are surrounded by an @@ -727,7 +727,7 @@ CINDEX_LINKAGE CXSourceRangeList *clang_getAllSkippedRanges(CXTranslationUnit tu); /** - * \brief Destroy the given \c CXSourceRangeList. + * Destroy the given \c CXSourceRangeList. */ CINDEX_LINKAGE void clang_disposeSourceRangeList(CXSourceRangeList *ranges); @@ -742,34 +742,34 @@ */ /** - * \brief Describes the severity of a particular diagnostic. + * Describes the severity of a particular diagnostic. */ enum CXDiagnosticSeverity { /** - * \brief A diagnostic that has been suppressed, e.g., by a command-line + * A diagnostic that has been suppressed, e.g., by a command-line * option. */ CXDiagnostic_Ignored = 0, /** - * \brief This diagnostic is a note that should be attached to the + * This diagnostic is a note that should be attached to the * previous (non-note) diagnostic. */ CXDiagnostic_Note = 1, /** - * \brief This diagnostic indicates suspicious code that may not be + * This diagnostic indicates suspicious code that may not be * wrong. */ CXDiagnostic_Warning = 2, /** - * \brief This diagnostic indicates that the code is ill-formed. + * This diagnostic indicates that the code is ill-formed. */ CXDiagnostic_Error = 3, /** - * \brief This diagnostic indicates that the code is ill-formed such + * This diagnostic indicates that the code is ill-formed such * that future parser recovery is unlikely to produce useful * results. */ @@ -777,23 +777,23 @@ }; /** - * \brief A single diagnostic, containing the diagnostic's severity, + * A single diagnostic, containing the diagnostic's severity, * location, text, source ranges, and fix-it hints. */ typedef void *CXDiagnostic; /** - * \brief A group of CXDiagnostics. + * A group of CXDiagnostics. */ typedef void *CXDiagnosticSet; /** - * \brief Determine the number of diagnostics in a CXDiagnosticSet. + * Determine the number of diagnostics in a CXDiagnosticSet. */ CINDEX_LINKAGE unsigned clang_getNumDiagnosticsInSet(CXDiagnosticSet Diags); /** - * \brief Retrieve a diagnostic associated with the given CXDiagnosticSet. + * Retrieve a diagnostic associated with the given CXDiagnosticSet. * * \param Diags the CXDiagnosticSet to query. * \param Index the zero-based diagnostic number to retrieve. @@ -805,36 +805,36 @@ unsigned Index); /** - * \brief Describes the kind of error that occurred (if any) in a call to + * Describes the kind of error that occurred (if any) in a call to * \c clang_loadDiagnostics. */ enum CXLoadDiag_Error { /** - * \brief Indicates that no error occurred. + * Indicates that no error occurred. */ CXLoadDiag_None = 0, /** - * \brief Indicates that an unknown error occurred while attempting to + * Indicates that an unknown error occurred while attempting to * deserialize diagnostics. */ CXLoadDiag_Unknown = 1, /** - * \brief Indicates that the file containing the serialized diagnostics + * Indicates that the file containing the serialized diagnostics * could not be opened. */ CXLoadDiag_CannotLoad = 2, /** - * \brief Indicates that the serialized diagnostics file is invalid or + * Indicates that the serialized diagnostics file is invalid or * corrupt. */ CXLoadDiag_InvalidFile = 3 }; /** - * \brief Deserialize a set of diagnostics from a Clang diagnostics bitcode + * Deserialize a set of diagnostics from a Clang diagnostics bitcode * file. * * \param file The name of the file to deserialize. @@ -851,12 +851,12 @@ CXString *errorString); /** - * \brief Release a CXDiagnosticSet and all of its contained diagnostics. + * Release a CXDiagnosticSet and all of its contained diagnostics. */ CINDEX_LINKAGE void clang_disposeDiagnosticSet(CXDiagnosticSet Diags); /** - * \brief Retrieve the child diagnostics of a CXDiagnostic. + * Retrieve the child diagnostics of a CXDiagnostic. * * This CXDiagnosticSet does not need to be released by * clang_disposeDiagnosticSet. @@ -864,13 +864,13 @@ CINDEX_LINKAGE CXDiagnosticSet clang_getChildDiagnostics(CXDiagnostic D); /** - * \brief Determine the number of diagnostics produced for the given + * Determine the number of diagnostics produced for the given * translation unit. */ CINDEX_LINKAGE unsigned clang_getNumDiagnostics(CXTranslationUnit Unit); /** - * \brief Retrieve a diagnostic associated with the given translation unit. + * Retrieve a diagnostic associated with the given translation unit. * * \param Unit the translation unit to query. * \param Index the zero-based diagnostic number to retrieve. @@ -882,7 +882,7 @@ unsigned Index); /** - * \brief Retrieve the complete set of diagnostics associated with a + * Retrieve the complete set of diagnostics associated with a * translation unit. * * \param Unit the translation unit to query. @@ -891,19 +891,19 @@ clang_getDiagnosticSetFromTU(CXTranslationUnit Unit); /** - * \brief Destroy a diagnostic. + * Destroy a diagnostic. */ CINDEX_LINKAGE void clang_disposeDiagnostic(CXDiagnostic Diagnostic); /** - * \brief Options to control the display of diagnostics. + * Options to control the display of diagnostics. * * The values in this enum are meant to be combined to customize the * behavior of \c clang_formatDiagnostic(). */ enum CXDiagnosticDisplayOptions { /** - * \brief Display the source-location information where the + * Display the source-location information where the * diagnostic was located. * * When set, diagnostics will be prefixed by the file, line, and @@ -918,7 +918,7 @@ CXDiagnostic_DisplaySourceLocation = 0x01, /** - * \brief If displaying the source-location information of the + * If displaying the source-location information of the * diagnostic, also include the column number. * * This option corresponds to the clang flag \c -fshow-column. @@ -926,7 +926,7 @@ CXDiagnostic_DisplayColumn = 0x02, /** - * \brief If displaying the source-location information of the + * If displaying the source-location information of the * diagnostic, also include information about source ranges in a * machine-parsable format. * @@ -936,7 +936,7 @@ CXDiagnostic_DisplaySourceRanges = 0x04, /** - * \brief Display the option name associated with this diagnostic, if any. + * Display the option name associated with this diagnostic, if any. * * The option name displayed (e.g., -Wconversion) will be placed in brackets * after the diagnostic text. This option corresponds to the clang flag @@ -945,7 +945,7 @@ CXDiagnostic_DisplayOption = 0x08, /** - * \brief Display the category number associated with this diagnostic, if any. + * Display the category number associated with this diagnostic, if any. * * The category number is displayed within brackets after the diagnostic text. * This option corresponds to the clang flag @@ -954,7 +954,7 @@ CXDiagnostic_DisplayCategoryId = 0x10, /** - * \brief Display the category name associated with this diagnostic, if any. + * Display the category name associated with this diagnostic, if any. * * The category name is displayed within brackets after the diagnostic text. * This option corresponds to the clang flag @@ -964,7 +964,7 @@ }; /** - * \brief Format the given diagnostic in a manner that is suitable for display. + * Format the given diagnostic in a manner that is suitable for display. * * This routine will format the given diagnostic to a string, rendering * the diagnostic according to the various options given. The @@ -982,7 +982,7 @@ unsigned Options); /** - * \brief Retrieve the set of display options most similar to the + * Retrieve the set of display options most similar to the * default behavior of the clang compiler. * * \returns A set of display options suitable for use with \c @@ -991,13 +991,13 @@ CINDEX_LINKAGE unsigned clang_defaultDiagnosticDisplayOptions(void); /** - * \brief Determine the severity of the given diagnostic. + * Determine the severity of the given diagnostic. */ CINDEX_LINKAGE enum CXDiagnosticSeverity clang_getDiagnosticSeverity(CXDiagnostic); /** - * \brief Retrieve the source location of the given diagnostic. + * Retrieve the source location of the given diagnostic. * * This location is where Clang would print the caret ('^') when * displaying the diagnostic on the command line. @@ -1005,12 +1005,12 @@ CINDEX_LINKAGE CXSourceLocation clang_getDiagnosticLocation(CXDiagnostic); /** - * \brief Retrieve the text of the given diagnostic. + * Retrieve the text of the given diagnostic. */ CINDEX_LINKAGE CXString clang_getDiagnosticSpelling(CXDiagnostic); /** - * \brief Retrieve the name of the command-line option that enabled this + * Retrieve the name of the command-line option that enabled this * diagnostic. * * \param Diag The diagnostic to be queried. @@ -1025,7 +1025,7 @@ CXString *Disable); /** - * \brief Retrieve the category number for this diagnostic. + * Retrieve the category number for this diagnostic. * * Diagnostics can be categorized into groups along with other, related * diagnostics (e.g., diagnostics under the same warning flag). This routine @@ -1037,7 +1037,7 @@ CINDEX_LINKAGE unsigned clang_getDiagnosticCategory(CXDiagnostic); /** - * \brief Retrieve the name of a particular diagnostic category. This + * Retrieve the name of a particular diagnostic category. This * is now deprecated. Use clang_getDiagnosticCategoryText() * instead. * @@ -1050,20 +1050,20 @@ CXString clang_getDiagnosticCategoryName(unsigned Category); /** - * \brief Retrieve the diagnostic category text for a given diagnostic. + * Retrieve the diagnostic category text for a given diagnostic. * * \returns The text of the given diagnostic category. */ CINDEX_LINKAGE CXString clang_getDiagnosticCategoryText(CXDiagnostic); /** - * \brief Determine the number of source ranges associated with the given + * Determine the number of source ranges associated with the given * diagnostic. */ CINDEX_LINKAGE unsigned clang_getDiagnosticNumRanges(CXDiagnostic); /** - * \brief Retrieve a source range associated with the diagnostic. + * Retrieve a source range associated with the diagnostic. * * A diagnostic's source ranges highlight important elements in the source * code. On the command line, Clang displays source ranges by @@ -1079,13 +1079,13 @@ unsigned Range); /** - * \brief Determine the number of fix-it hints associated with the + * Determine the number of fix-it hints associated with the * given diagnostic. */ CINDEX_LINKAGE unsigned clang_getDiagnosticNumFixIts(CXDiagnostic Diagnostic); /** - * \brief Retrieve the replacement information for a given fix-it. + * Retrieve the replacement information for a given fix-it. * * Fix-its are described in terms of a source range whose contents * should be replaced by a string. This approach generalizes over @@ -1128,13 +1128,13 @@ */ /** - * \brief Get the original translation unit source file name. + * Get the original translation unit source file name. */ CINDEX_LINKAGE CXString clang_getTranslationUnitSpelling(CXTranslationUnit CTUnit); /** - * \brief Return the CXTranslationUnit for a given source file and the provided + * Return the CXTranslationUnit for a given source file and the provided * command line arguments one would pass to the compiler. * * Note: The 'source_filename' argument is optional. If the caller provides a @@ -1182,7 +1182,7 @@ struct CXUnsavedFile *unsaved_files); /** - * \brief Same as \c clang_createTranslationUnit2, but returns + * Same as \c clang_createTranslationUnit2, but returns * the \c CXTranslationUnit instead of an error code. In case of an error this * routine returns a \c NULL \c CXTranslationUnit, without further detailed * error codes. @@ -1192,7 +1192,7 @@ const char *ast_filename); /** - * \brief Create a translation unit from an AST file (\c -emit-ast). + * Create a translation unit from an AST file (\c -emit-ast). * * \param[out] out_TU A non-NULL pointer to store the created * \c CXTranslationUnit. @@ -1205,7 +1205,7 @@ CXTranslationUnit *out_TU); /** - * \brief Flags that control the creation of translation units. + * Flags that control the creation of translation units. * * The enumerators in this enumeration type are meant to be bitwise * ORed together to specify which options should be used when @@ -1213,13 +1213,13 @@ */ enum CXTranslationUnit_Flags { /** - * \brief Used to indicate that no special translation-unit options are + * Used to indicate that no special translation-unit options are * needed. */ CXTranslationUnit_None = 0x0, /** - * \brief Used to indicate that the parser should construct a "detailed" + * Used to indicate that the parser should construct a "detailed" * preprocessing record, including all macro definitions and instantiations. * * Constructing a detailed preprocessing record requires more memory @@ -1231,7 +1231,7 @@ CXTranslationUnit_DetailedPreprocessingRecord = 0x01, /** - * \brief Used to indicate that the translation unit is incomplete. + * Used to indicate that the translation unit is incomplete. * * When a translation unit is considered "incomplete", semantic * analysis that is typically performed at the end of the @@ -1244,7 +1244,7 @@ CXTranslationUnit_Incomplete = 0x02, /** - * \brief Used to indicate that the translation unit should be built with an + * Used to indicate that the translation unit should be built with an * implicit precompiled header for the preamble. * * An implicit precompiled header is used as an optimization when a @@ -1260,7 +1260,7 @@ CXTranslationUnit_PrecompiledPreamble = 0x04, /** - * \brief Used to indicate that the translation unit should cache some + * Used to indicate that the translation unit should cache some * code-completion results with each reparse of the source file. * * Caching of code-completion results is a performance optimization that @@ -1270,7 +1270,7 @@ CXTranslationUnit_CacheCompletionResults = 0x08, /** - * \brief Used to indicate that the translation unit will be serialized with + * Used to indicate that the translation unit will be serialized with * \c clang_saveTranslationUnit. * * This option is typically used when parsing a header with the intent of @@ -1279,7 +1279,7 @@ CXTranslationUnit_ForSerialization = 0x10, /** - * \brief DEPRECATED: Enabled chained precompiled preambles in C++. + * DEPRECATED: Enabled chained precompiled preambles in C++. * * Note: this is a *temporary* option that is available only while * we are testing C++ precompiled preamble support. It is deprecated. @@ -1287,7 +1287,7 @@ CXTranslationUnit_CXXChainedPCH = 0x20, /** - * \brief Used to indicate that function/method bodies should be skipped while + * Used to indicate that function/method bodies should be skipped while * parsing. * * This option can be used to search for declarations/definitions while @@ -1296,14 +1296,14 @@ CXTranslationUnit_SkipFunctionBodies = 0x40, /** - * \brief Used to indicate that brief documentation comments should be + * Used to indicate that brief documentation comments should be * included into the set of code completions returned from this translation * unit. */ CXTranslationUnit_IncludeBriefCommentsInCodeCompletion = 0x80, /** - * \brief Used to indicate that the precompiled preamble should be created on + * Used to indicate that the precompiled preamble should be created on * the first parse. Otherwise it will be created on the first reparse. This * trades runtime on the first parse (serializing the preamble takes time) for * reduced runtime on the second parse (can now reuse the preamble). @@ -1311,7 +1311,7 @@ CXTranslationUnit_CreatePreambleOnFirstParse = 0x100, /** - * \brief Do not stop processing when fatal errors are encountered. + * Do not stop processing when fatal errors are encountered. * * When fatal errors are encountered while parsing a translation unit, * semantic analysis is typically stopped early when compiling code. A common @@ -1322,13 +1322,13 @@ CXTranslationUnit_KeepGoing = 0x200, /** - * \brief Sets the preprocessor in a mode for parsing a single file only. + * Sets the preprocessor in a mode for parsing a single file only. */ CXTranslationUnit_SingleFileParse = 0x400 }; /** - * \brief Returns the set of flags that is suitable for parsing a translation + * Returns the set of flags that is suitable for parsing a translation * unit that is being edited. * * The set of flags returned provide options for \c clang_parseTranslationUnit() @@ -1342,7 +1342,7 @@ CINDEX_LINKAGE unsigned clang_defaultEditingTranslationUnitOptions(void); /** - * \brief Same as \c clang_parseTranslationUnit2, but returns + * Same as \c clang_parseTranslationUnit2, but returns * the \c CXTranslationUnit instead of an error code. In case of an error this * routine returns a \c NULL \c CXTranslationUnit, without further detailed * error codes. @@ -1357,7 +1357,7 @@ unsigned options); /** - * \brief Parse the given source file and the translation unit corresponding + * Parse the given source file and the translation unit corresponding * to that file. * * This routine is the main entry point for the Clang C API, providing the @@ -1411,7 +1411,7 @@ CXTranslationUnit *out_TU); /** - * \brief Same as clang_parseTranslationUnit2 but requires a full command line + * Same as clang_parseTranslationUnit2 but requires a full command line * for \c command_line_args including argv[0]. This is useful if the standard * library paths are relative to the binary. */ @@ -1422,7 +1422,7 @@ unsigned options, CXTranslationUnit *out_TU); /** - * \brief Flags that control how translation units are saved. + * Flags that control how translation units are saved. * * The enumerators in this enumeration type are meant to be bitwise * ORed together to specify which options should be used when @@ -1430,13 +1430,13 @@ */ enum CXSaveTranslationUnit_Flags { /** - * \brief Used to indicate that no special saving options are needed. + * Used to indicate that no special saving options are needed. */ CXSaveTranslationUnit_None = 0x0 }; /** - * \brief Returns the set of flags that is suitable for saving a translation + * Returns the set of flags that is suitable for saving a translation * unit. * * The set of flags returned provide options for @@ -1447,17 +1447,17 @@ CINDEX_LINKAGE unsigned clang_defaultSaveOptions(CXTranslationUnit TU); /** - * \brief Describes the kind of error that occurred (if any) in a call to + * Describes the kind of error that occurred (if any) in a call to * \c clang_saveTranslationUnit(). */ enum CXSaveError { /** - * \brief Indicates that no error occurred while saving a translation unit. + * Indicates that no error occurred while saving a translation unit. */ CXSaveError_None = 0, /** - * \brief Indicates that an unknown error occurred while attempting to save + * Indicates that an unknown error occurred while attempting to save * the file. * * This error typically indicates that file I/O failed when attempting to @@ -1466,7 +1466,7 @@ CXSaveError_Unknown = 1, /** - * \brief Indicates that errors during translation prevented this attempt + * Indicates that errors during translation prevented this attempt * to save the translation unit. * * Errors that prevent the translation unit from being saved can be @@ -1475,14 +1475,14 @@ CXSaveError_TranslationErrors = 2, /** - * \brief Indicates that the translation unit to be saved was somehow + * Indicates that the translation unit to be saved was somehow * invalid (e.g., NULL). */ CXSaveError_InvalidTU = 3 }; /** - * \brief Saves a translation unit into a serialized representation of + * Saves a translation unit into a serialized representation of * that translation unit on disk. * * Any translation unit that was parsed without error can be saved @@ -1509,7 +1509,7 @@ unsigned options); /** - * \brief Suspend a translation unit in order to free memory associated with it. + * Suspend a translation unit in order to free memory associated with it. * * A suspended translation unit uses significantly less memory but on the other * side does not support any other calls than \c clang_reparseTranslationUnit @@ -1518,12 +1518,12 @@ CINDEX_LINKAGE unsigned clang_suspendTranslationUnit(CXTranslationUnit); /** - * \brief Destroy the specified CXTranslationUnit object. + * Destroy the specified CXTranslationUnit object. */ CINDEX_LINKAGE void clang_disposeTranslationUnit(CXTranslationUnit); /** - * \brief Flags that control the reparsing of translation units. + * Flags that control the reparsing of translation units. * * The enumerators in this enumeration type are meant to be bitwise * ORed together to specify which options should be used when @@ -1531,13 +1531,13 @@ */ enum CXReparse_Flags { /** - * \brief Used to indicate that no special reparsing options are needed. + * Used to indicate that no special reparsing options are needed. */ CXReparse_None = 0x0 }; /** - * \brief Returns the set of flags that is suitable for reparsing a translation + * Returns the set of flags that is suitable for reparsing a translation * unit. * * The set of flags returned provide options for @@ -1549,7 +1549,7 @@ CINDEX_LINKAGE unsigned clang_defaultReparseOptions(CXTranslationUnit TU); /** - * \brief Reparse the source files that produced this translation unit. + * Reparse the source files that produced this translation unit. * * This routine can be used to re-parse the source files that originally * created the given translation unit, for example because those source files @@ -1593,7 +1593,7 @@ unsigned options); /** - * \brief Categorizes how memory is being used by a translation unit. + * Categorizes how memory is being used by a translation unit. */ enum CXTUResourceUsageKind { CXTUResourceUsage_AST = 1, @@ -1619,38 +1619,38 @@ }; /** - * \brief Returns the human-readable null-terminated C string that represents + * Returns the human-readable null-terminated C string that represents * the name of the memory category. This string should never be freed. */ CINDEX_LINKAGE const char *clang_getTUResourceUsageName(enum CXTUResourceUsageKind kind); typedef struct CXTUResourceUsageEntry { - /* \brief The memory usage category. */ + /* The memory usage category. */ enum CXTUResourceUsageKind kind; - /* \brief Amount of resources used. + /* Amount of resources used. The units will depend on the resource kind. */ unsigned long amount; } CXTUResourceUsageEntry; /** - * \brief The memory usage of a CXTranslationUnit, broken into categories. + * The memory usage of a CXTranslationUnit, broken into categories. */ typedef struct CXTUResourceUsage { - /* \brief Private data member, used for queries. */ + /* Private data member, used for queries. */ void *data; - /* \brief The number of entries in the 'entries' array. */ + /* The number of entries in the 'entries' array. */ unsigned numEntries; - /* \brief An array of key-value pairs, representing the breakdown of memory + /* An array of key-value pairs, representing the breakdown of memory usage. */ CXTUResourceUsageEntry *entries; } CXTUResourceUsage; /** - * \brief Return the memory usage of a translation unit. This object + * Return the memory usage of a translation unit. This object * should be released with clang_disposeCXTUResourceUsage(). */ CINDEX_LINKAGE CXTUResourceUsage clang_getCXTUResourceUsage(CXTranslationUnit TU); @@ -1658,7 +1658,7 @@ CINDEX_LINKAGE void clang_disposeCXTUResourceUsage(CXTUResourceUsage usage); /** - * \brief Get target information for this translation unit. + * Get target information for this translation unit. * * The CXTargetInfo object cannot outlive the CXTranslationUnit object. */ @@ -1666,13 +1666,13 @@ clang_getTranslationUnitTargetInfo(CXTranslationUnit CTUnit); /** - * \brief Destroy the CXTargetInfo object. + * Destroy the CXTargetInfo object. */ CINDEX_LINKAGE void clang_TargetInfo_dispose(CXTargetInfo Info); /** - * \brief Get the normalized target triple as a string. + * Get the normalized target triple as a string. * * Returns the empty string in case of any error. */ @@ -1680,7 +1680,7 @@ clang_TargetInfo_getTriple(CXTargetInfo Info); /** - * \brief Get the pointer width of the target in bits. + * Get the pointer width of the target in bits. * * Returns -1 in case of error. */ @@ -1692,12 +1692,12 @@ */ /** - * \brief Describes the kind of entity that a cursor refers to. + * Describes the kind of entity that a cursor refers to. */ enum CXCursorKind { /* Declarations */ /** - * \brief A declaration whose specific kind is not exposed via this + * A declaration whose specific kind is not exposed via this * interface. * * Unexposed declarations have the same operations as any other kind @@ -1706,84 +1706,84 @@ * of the declaration is not reported. */ CXCursor_UnexposedDecl = 1, - /** \brief A C or C++ struct. */ + /** A C or C++ struct. */ CXCursor_StructDecl = 2, - /** \brief A C or C++ union. */ + /** A C or C++ union. */ CXCursor_UnionDecl = 3, - /** \brief A C++ class. */ + /** A C++ class. */ CXCursor_ClassDecl = 4, - /** \brief An enumeration. */ + /** An enumeration. */ CXCursor_EnumDecl = 5, /** - * \brief A field (in C) or non-static data member (in C++) in a + * A field (in C) or non-static data member (in C++) in a * struct, union, or C++ class. */ CXCursor_FieldDecl = 6, - /** \brief An enumerator constant. */ + /** An enumerator constant. */ CXCursor_EnumConstantDecl = 7, - /** \brief A function. */ + /** A function. */ CXCursor_FunctionDecl = 8, - /** \brief A variable. */ + /** A variable. */ CXCursor_VarDecl = 9, - /** \brief A function or method parameter. */ + /** A function or method parameter. */ CXCursor_ParmDecl = 10, - /** \brief An Objective-C \@interface. */ + /** An Objective-C \@interface. */ CXCursor_ObjCInterfaceDecl = 11, - /** \brief An Objective-C \@interface for a category. */ + /** An Objective-C \@interface for a category. */ CXCursor_ObjCCategoryDecl = 12, - /** \brief An Objective-C \@protocol declaration. */ + /** An Objective-C \@protocol declaration. */ CXCursor_ObjCProtocolDecl = 13, - /** \brief An Objective-C \@property declaration. */ + /** An Objective-C \@property declaration. */ CXCursor_ObjCPropertyDecl = 14, - /** \brief An Objective-C instance variable. */ + /** An Objective-C instance variable. */ CXCursor_ObjCIvarDecl = 15, - /** \brief An Objective-C instance method. */ + /** An Objective-C instance method. */ CXCursor_ObjCInstanceMethodDecl = 16, - /** \brief An Objective-C class method. */ + /** An Objective-C class method. */ CXCursor_ObjCClassMethodDecl = 17, - /** \brief An Objective-C \@implementation. */ + /** An Objective-C \@implementation. */ CXCursor_ObjCImplementationDecl = 18, - /** \brief An Objective-C \@implementation for a category. */ + /** An Objective-C \@implementation for a category. */ CXCursor_ObjCCategoryImplDecl = 19, - /** \brief A typedef. */ + /** A typedef. */ CXCursor_TypedefDecl = 20, - /** \brief A C++ class method. */ + /** A C++ class method. */ CXCursor_CXXMethod = 21, - /** \brief A C++ namespace. */ + /** A C++ namespace. */ CXCursor_Namespace = 22, - /** \brief A linkage specification, e.g. 'extern "C"'. */ + /** A linkage specification, e.g. 'extern "C"'. */ CXCursor_LinkageSpec = 23, - /** \brief A C++ constructor. */ + /** A C++ constructor. */ CXCursor_Constructor = 24, - /** \brief A C++ destructor. */ + /** A C++ destructor. */ CXCursor_Destructor = 25, - /** \brief A C++ conversion function. */ + /** A C++ conversion function. */ CXCursor_ConversionFunction = 26, - /** \brief A C++ template type parameter. */ + /** A C++ template type parameter. */ CXCursor_TemplateTypeParameter = 27, - /** \brief A C++ non-type template parameter. */ + /** A C++ non-type template parameter. */ CXCursor_NonTypeTemplateParameter = 28, - /** \brief A C++ template template parameter. */ + /** A C++ template template parameter. */ CXCursor_TemplateTemplateParameter = 29, - /** \brief A C++ function template. */ + /** A C++ function template. */ CXCursor_FunctionTemplate = 30, - /** \brief A C++ class template. */ + /** A C++ class template. */ CXCursor_ClassTemplate = 31, - /** \brief A C++ class template partial specialization. */ + /** A C++ class template partial specialization. */ CXCursor_ClassTemplatePartialSpecialization = 32, - /** \brief A C++ namespace alias declaration. */ + /** A C++ namespace alias declaration. */ CXCursor_NamespaceAlias = 33, - /** \brief A C++ using directive. */ + /** A C++ using directive. */ CXCursor_UsingDirective = 34, - /** \brief A C++ using declaration. */ + /** A C++ using declaration. */ CXCursor_UsingDeclaration = 35, - /** \brief A C++ alias declaration */ + /** A C++ alias declaration */ CXCursor_TypeAliasDecl = 36, - /** \brief An Objective-C \@synthesize definition. */ + /** An Objective-C \@synthesize definition. */ CXCursor_ObjCSynthesizeDecl = 37, - /** \brief An Objective-C \@dynamic definition. */ + /** An Objective-C \@dynamic definition. */ CXCursor_ObjCDynamicDecl = 38, - /** \brief An access specifier. */ + /** An access specifier. */ CXCursor_CXXAccessSpecifier = 39, CXCursor_FirstDecl = CXCursor_UnexposedDecl, @@ -1795,7 +1795,7 @@ CXCursor_ObjCProtocolRef = 41, CXCursor_ObjCClassRef = 42, /** - * \brief A reference to a type declaration. + * A reference to a type declaration. * * A type reference occurs anywhere where a type is named but not * declared. For example, given: @@ -1812,21 +1812,21 @@ CXCursor_TypeRef = 43, CXCursor_CXXBaseSpecifier = 44, /** - * \brief A reference to a class template, function template, template + * A reference to a class template, function template, template * template parameter, or class template partial specialization. */ CXCursor_TemplateRef = 45, /** - * \brief A reference to a namespace or namespace alias. + * A reference to a namespace or namespace alias. */ CXCursor_NamespaceRef = 46, /** - * \brief A reference to a member of a struct, union, or class that occurs in + * A reference to a member of a struct, union, or class that occurs in * some non-expression context, e.g., a designated initializer. */ CXCursor_MemberRef = 47, /** - * \brief A reference to a labeled statement. + * A reference to a labeled statement. * * This cursor kind is used to describe the jump to "start_over" in the * goto statement in the following example: @@ -1843,7 +1843,7 @@ CXCursor_LabelRef = 48, /** - * \brief A reference to a set of overloaded functions or function templates + * A reference to a set of overloaded functions or function templates * that has not yet been resolved to a specific function or function template. * * An overloaded declaration reference cursor occurs in C++ templates where @@ -1881,7 +1881,7 @@ CXCursor_OverloadedDeclRef = 49, /** - * \brief A reference to a variable that occurs in some non-expression + * A reference to a variable that occurs in some non-expression * context, e.g., a C++ lambda capture list. */ CXCursor_VariableRef = 50, @@ -1900,7 +1900,7 @@ CXCursor_FirstExpr = 100, /** - * \brief An expression whose specific kind is not exposed via this + * An expression whose specific kind is not exposed via this * interface. * * Unexposed expressions have the same operations as any other kind @@ -1911,103 +1911,103 @@ CXCursor_UnexposedExpr = 100, /** - * \brief An expression that refers to some value declaration, such + * An expression that refers to some value declaration, such * as a function, variable, or enumerator. */ CXCursor_DeclRefExpr = 101, /** - * \brief An expression that refers to a member of a struct, union, + * An expression that refers to a member of a struct, union, * class, Objective-C class, etc. */ CXCursor_MemberRefExpr = 102, - /** \brief An expression that calls a function. */ + /** An expression that calls a function. */ CXCursor_CallExpr = 103, - /** \brief An expression that sends a message to an Objective-C + /** An expression that sends a message to an Objective-C object or class. */ CXCursor_ObjCMessageExpr = 104, - /** \brief An expression that represents a block literal. */ + /** An expression that represents a block literal. */ CXCursor_BlockExpr = 105, - /** \brief An integer literal. + /** An integer literal. */ CXCursor_IntegerLiteral = 106, - /** \brief A floating point number literal. + /** A floating point number literal. */ CXCursor_FloatingLiteral = 107, - /** \brief An imaginary number literal. + /** An imaginary number literal. */ CXCursor_ImaginaryLiteral = 108, - /** \brief A string literal. + /** A string literal. */ CXCursor_StringLiteral = 109, - /** \brief A character literal. + /** A character literal. */ CXCursor_CharacterLiteral = 110, - /** \brief A parenthesized expression, e.g. "(1)". + /** A parenthesized expression, e.g. "(1)". * * This AST node is only formed if full location information is requested. */ CXCursor_ParenExpr = 111, - /** \brief This represents the unary-expression's (except sizeof and + /** This represents the unary-expression's (except sizeof and * alignof). */ CXCursor_UnaryOperator = 112, - /** \brief [C99 6.5.2.1] Array Subscripting. + /** [C99 6.5.2.1] Array Subscripting. */ CXCursor_ArraySubscriptExpr = 113, - /** \brief A builtin binary operation expression such as "x + y" or + /** A builtin binary operation expression such as "x + y" or * "x <= y". */ CXCursor_BinaryOperator = 114, - /** \brief Compound assignment such as "+=". + /** Compound assignment such as "+=". */ CXCursor_CompoundAssignOperator = 115, - /** \brief The ?: ternary operator. + /** The ?: ternary operator. */ CXCursor_ConditionalOperator = 116, - /** \brief An explicit cast in C (C99 6.5.4) or a C-style cast in C++ + /** An explicit cast in C (C99 6.5.4) or a C-style cast in C++ * (C++ [expr.cast]), which uses the syntax (Type)expr. * * For example: (int)f. */ CXCursor_CStyleCastExpr = 117, - /** \brief [C99 6.5.2.5] + /** [C99 6.5.2.5] */ CXCursor_CompoundLiteralExpr = 118, - /** \brief Describes an C or C++ initializer list. + /** Describes an C or C++ initializer list. */ CXCursor_InitListExpr = 119, - /** \brief The GNU address of label extension, representing &&label. + /** The GNU address of label extension, representing &&label. */ CXCursor_AddrLabelExpr = 120, - /** \brief This is the GNU Statement Expression extension: ({int X=4; X;}) + /** This is the GNU Statement Expression extension: ({int X=4; X;}) */ CXCursor_StmtExpr = 121, - /** \brief Represents a C11 generic selection. + /** Represents a C11 generic selection. */ CXCursor_GenericSelectionExpr = 122, - /** \brief Implements the GNU __null extension, which is a name for a null + /** Implements the GNU __null extension, which is a name for a null * pointer constant that has integral type (e.g., int or long) and is the same * size and alignment as a pointer. * @@ -2017,23 +2017,23 @@ */ CXCursor_GNUNullExpr = 123, - /** \brief C++'s static_cast<> expression. + /** C++'s static_cast<> expression. */ CXCursor_CXXStaticCastExpr = 124, - /** \brief C++'s dynamic_cast<> expression. + /** C++'s dynamic_cast<> expression. */ CXCursor_CXXDynamicCastExpr = 125, - /** \brief C++'s reinterpret_cast<> expression. + /** C++'s reinterpret_cast<> expression. */ CXCursor_CXXReinterpretCastExpr = 126, - /** \brief C++'s const_cast<> expression. + /** C++'s const_cast<> expression. */ CXCursor_CXXConstCastExpr = 127, - /** \brief Represents an explicit C++ type conversion that uses "functional" + /** Represents an explicit C++ type conversion that uses "functional" * notion (C++ [expr.type.conv]). * * Example: @@ -2043,60 +2043,60 @@ */ CXCursor_CXXFunctionalCastExpr = 128, - /** \brief A C++ typeid expression (C++ [expr.typeid]). + /** A C++ typeid expression (C++ [expr.typeid]). */ CXCursor_CXXTypeidExpr = 129, - /** \brief [C++ 2.13.5] C++ Boolean Literal. + /** [C++ 2.13.5] C++ Boolean Literal. */ CXCursor_CXXBoolLiteralExpr = 130, - /** \brief [C++0x 2.14.7] C++ Pointer Literal. + /** [C++0x 2.14.7] C++ Pointer Literal. */ CXCursor_CXXNullPtrLiteralExpr = 131, - /** \brief Represents the "this" expression in C++ + /** Represents the "this" expression in C++ */ CXCursor_CXXThisExpr = 132, - /** \brief [C++ 15] C++ Throw Expression. + /** [C++ 15] C++ Throw Expression. * * This handles 'throw' and 'throw' assignment-expression. When * assignment-expression isn't present, Op will be null. */ CXCursor_CXXThrowExpr = 133, - /** \brief A new expression for memory allocation and constructor calls, e.g: + /** A new expression for memory allocation and constructor calls, e.g: * "new CXXNewExpr(foo)". */ CXCursor_CXXNewExpr = 134, - /** \brief A delete expression for memory deallocation and destructor calls, + /** A delete expression for memory deallocation and destructor calls, * e.g. "delete[] pArray". */ CXCursor_CXXDeleteExpr = 135, - /** \brief A unary expression. (noexcept, sizeof, or other traits) + /** A unary expression. (noexcept, sizeof, or other traits) */ CXCursor_UnaryExpr = 136, - /** \brief An Objective-C string literal i.e. @"foo". + /** An Objective-C string literal i.e. @"foo". */ CXCursor_ObjCStringLiteral = 137, - /** \brief An Objective-C \@encode expression. + /** An Objective-C \@encode expression. */ CXCursor_ObjCEncodeExpr = 138, - /** \brief An Objective-C \@selector expression. + /** An Objective-C \@selector expression. */ CXCursor_ObjCSelectorExpr = 139, - /** \brief An Objective-C \@protocol expression. + /** An Objective-C \@protocol expression. */ CXCursor_ObjCProtocolExpr = 140, - /** \brief An Objective-C "bridged" cast expression, which casts between + /** An Objective-C "bridged" cast expression, which casts between * Objective-C pointers and C pointers, transferring ownership in the process. * * \code @@ -2105,7 +2105,7 @@ */ CXCursor_ObjCBridgedCastExpr = 141, - /** \brief Represents a C++0x pack expansion that produces a sequence of + /** Represents a C++0x pack expansion that produces a sequence of * expressions. * * A pack expansion expression contains a pattern (which itself is an @@ -2120,7 +2120,7 @@ */ CXCursor_PackExpansionExpr = 142, - /** \brief Represents an expression that computes the length of a parameter + /** Represents an expression that computes the length of a parameter * pack. * * \code @@ -2132,7 +2132,7 @@ */ CXCursor_SizeOfPackExpr = 143, - /* \brief Represents a C++ lambda expression that produces a local function + /* Represents a C++ lambda expression that produces a local function * object. * * \code @@ -2146,19 +2146,19 @@ */ CXCursor_LambdaExpr = 144, - /** \brief Objective-c Boolean Literal. + /** Objective-c Boolean Literal. */ CXCursor_ObjCBoolLiteralExpr = 145, - /** \brief Represents the "self" expression in an Objective-C method. + /** Represents the "self" expression in an Objective-C method. */ CXCursor_ObjCSelfExpr = 146, - /** \brief OpenMP 4.0 [2.4, Array Section]. + /** OpenMP 4.0 [2.4, Array Section]. */ CXCursor_OMPArraySectionExpr = 147, - /** \brief Represents an @available(...) check. + /** Represents an @available(...) check. */ CXCursor_ObjCAvailabilityCheckExpr = 148, @@ -2167,7 +2167,7 @@ /* Statements */ CXCursor_FirstStmt = 200, /** - * \brief A statement whose specific kind is not exposed via this + * A statement whose specific kind is not exposed via this * interface. * * Unexposed statements have the same operations as any other kind of @@ -2177,7 +2177,7 @@ */ CXCursor_UnexposedStmt = 200, - /** \brief A labelled statement in a function. + /** A labelled statement in a function. * * This cursor kind is used to describe the "start_over:" label statement in * the following example: @@ -2190,329 +2190,329 @@ */ CXCursor_LabelStmt = 201, - /** \brief A group of statements like { stmt stmt }. + /** A group of statements like { stmt stmt }. * * This cursor kind is used to describe compound statements, e.g. function * bodies. */ CXCursor_CompoundStmt = 202, - /** \brief A case statement. + /** A case statement. */ CXCursor_CaseStmt = 203, - /** \brief A default statement. + /** A default statement. */ CXCursor_DefaultStmt = 204, - /** \brief An if statement + /** An if statement */ CXCursor_IfStmt = 205, - /** \brief A switch statement. + /** A switch statement. */ CXCursor_SwitchStmt = 206, - /** \brief A while statement. + /** A while statement. */ CXCursor_WhileStmt = 207, - /** \brief A do statement. + /** A do statement. */ CXCursor_DoStmt = 208, - /** \brief A for statement. + /** A for statement. */ CXCursor_ForStmt = 209, - /** \brief A goto statement. + /** A goto statement. */ CXCursor_GotoStmt = 210, - /** \brief An indirect goto statement. + /** An indirect goto statement. */ CXCursor_IndirectGotoStmt = 211, - /** \brief A continue statement. + /** A continue statement. */ CXCursor_ContinueStmt = 212, - /** \brief A break statement. + /** A break statement. */ CXCursor_BreakStmt = 213, - /** \brief A return statement. + /** A return statement. */ CXCursor_ReturnStmt = 214, - /** \brief A GCC inline assembly statement extension. + /** A GCC inline assembly statement extension. */ CXCursor_GCCAsmStmt = 215, CXCursor_AsmStmt = CXCursor_GCCAsmStmt, - /** \brief Objective-C's overall \@try-\@catch-\@finally statement. + /** Objective-C's overall \@try-\@catch-\@finally statement. */ CXCursor_ObjCAtTryStmt = 216, - /** \brief Objective-C's \@catch statement. + /** Objective-C's \@catch statement. */ CXCursor_ObjCAtCatchStmt = 217, - /** \brief Objective-C's \@finally statement. + /** Objective-C's \@finally statement. */ CXCursor_ObjCAtFinallyStmt = 218, - /** \brief Objective-C's \@throw statement. + /** Objective-C's \@throw statement. */ CXCursor_ObjCAtThrowStmt = 219, - /** \brief Objective-C's \@synchronized statement. + /** Objective-C's \@synchronized statement. */ CXCursor_ObjCAtSynchronizedStmt = 220, - /** \brief Objective-C's autorelease pool statement. + /** Objective-C's autorelease pool statement. */ CXCursor_ObjCAutoreleasePoolStmt = 221, - /** \brief Objective-C's collection statement. + /** Objective-C's collection statement. */ CXCursor_ObjCForCollectionStmt = 222, - /** \brief C++'s catch statement. + /** C++'s catch statement. */ CXCursor_CXXCatchStmt = 223, - /** \brief C++'s try statement. + /** C++'s try statement. */ CXCursor_CXXTryStmt = 224, - /** \brief C++'s for (* : *) statement. + /** C++'s for (* : *) statement. */ CXCursor_CXXForRangeStmt = 225, - /** \brief Windows Structured Exception Handling's try statement. + /** Windows Structured Exception Handling's try statement. */ CXCursor_SEHTryStmt = 226, - /** \brief Windows Structured Exception Handling's except statement. + /** Windows Structured Exception Handling's except statement. */ CXCursor_SEHExceptStmt = 227, - /** \brief Windows Structured Exception Handling's finally statement. + /** Windows Structured Exception Handling's finally statement. */ CXCursor_SEHFinallyStmt = 228, - /** \brief A MS inline assembly statement extension. + /** A MS inline assembly statement extension. */ CXCursor_MSAsmStmt = 229, - /** \brief The null statement ";": C99 6.8.3p3. + /** The null statement ";": C99 6.8.3p3. * * This cursor kind is used to describe the null statement. */ CXCursor_NullStmt = 230, - /** \brief Adaptor class for mixing declarations with statements and + /** Adaptor class for mixing declarations with statements and * expressions. */ CXCursor_DeclStmt = 231, - /** \brief OpenMP parallel directive. + /** OpenMP parallel directive. */ CXCursor_OMPParallelDirective = 232, - /** \brief OpenMP SIMD directive. + /** OpenMP SIMD directive. */ CXCursor_OMPSimdDirective = 233, - /** \brief OpenMP for directive. + /** OpenMP for directive. */ CXCursor_OMPForDirective = 234, - /** \brief OpenMP sections directive. + /** OpenMP sections directive. */ CXCursor_OMPSectionsDirective = 235, - /** \brief OpenMP section directive. + /** OpenMP section directive. */ CXCursor_OMPSectionDirective = 236, - /** \brief OpenMP single directive. + /** OpenMP single directive. */ CXCursor_OMPSingleDirective = 237, - /** \brief OpenMP parallel for directive. + /** OpenMP parallel for directive. */ CXCursor_OMPParallelForDirective = 238, - /** \brief OpenMP parallel sections directive. + /** OpenMP parallel sections directive. */ CXCursor_OMPParallelSectionsDirective = 239, - /** \brief OpenMP task directive. + /** OpenMP task directive. */ CXCursor_OMPTaskDirective = 240, - /** \brief OpenMP master directive. + /** OpenMP master directive. */ CXCursor_OMPMasterDirective = 241, - /** \brief OpenMP critical directive. + /** OpenMP critical directive. */ CXCursor_OMPCriticalDirective = 242, - /** \brief OpenMP taskyield directive. + /** OpenMP taskyield directive. */ CXCursor_OMPTaskyieldDirective = 243, - /** \brief OpenMP barrier directive. + /** OpenMP barrier directive. */ CXCursor_OMPBarrierDirective = 244, - /** \brief OpenMP taskwait directive. + /** OpenMP taskwait directive. */ CXCursor_OMPTaskwaitDirective = 245, - /** \brief OpenMP flush directive. + /** OpenMP flush directive. */ CXCursor_OMPFlushDirective = 246, - /** \brief Windows Structured Exception Handling's leave statement. + /** Windows Structured Exception Handling's leave statement. */ CXCursor_SEHLeaveStmt = 247, - /** \brief OpenMP ordered directive. + /** OpenMP ordered directive. */ CXCursor_OMPOrderedDirective = 248, - /** \brief OpenMP atomic directive. + /** OpenMP atomic directive. */ CXCursor_OMPAtomicDirective = 249, - /** \brief OpenMP for SIMD directive. + /** OpenMP for SIMD directive. */ CXCursor_OMPForSimdDirective = 250, - /** \brief OpenMP parallel for SIMD directive. + /** OpenMP parallel for SIMD directive. */ CXCursor_OMPParallelForSimdDirective = 251, - /** \brief OpenMP target directive. + /** OpenMP target directive. */ CXCursor_OMPTargetDirective = 252, - /** \brief OpenMP teams directive. + /** OpenMP teams directive. */ CXCursor_OMPTeamsDirective = 253, - /** \brief OpenMP taskgroup directive. + /** OpenMP taskgroup directive. */ CXCursor_OMPTaskgroupDirective = 254, - /** \brief OpenMP cancellation point directive. + /** OpenMP cancellation point directive. */ CXCursor_OMPCancellationPointDirective = 255, - /** \brief OpenMP cancel directive. + /** OpenMP cancel directive. */ CXCursor_OMPCancelDirective = 256, - /** \brief OpenMP target data directive. + /** OpenMP target data directive. */ CXCursor_OMPTargetDataDirective = 257, - /** \brief OpenMP taskloop directive. + /** OpenMP taskloop directive. */ CXCursor_OMPTaskLoopDirective = 258, - /** \brief OpenMP taskloop simd directive. + /** OpenMP taskloop simd directive. */ CXCursor_OMPTaskLoopSimdDirective = 259, - /** \brief OpenMP distribute directive. + /** OpenMP distribute directive. */ CXCursor_OMPDistributeDirective = 260, - /** \brief OpenMP target enter data directive. + /** OpenMP target enter data directive. */ CXCursor_OMPTargetEnterDataDirective = 261, - /** \brief OpenMP target exit data directive. + /** OpenMP target exit data directive. */ CXCursor_OMPTargetExitDataDirective = 262, - /** \brief OpenMP target parallel directive. + /** OpenMP target parallel directive. */ CXCursor_OMPTargetParallelDirective = 263, - /** \brief OpenMP target parallel for directive. + /** OpenMP target parallel for directive. */ CXCursor_OMPTargetParallelForDirective = 264, - /** \brief OpenMP target update directive. + /** OpenMP target update directive. */ CXCursor_OMPTargetUpdateDirective = 265, - /** \brief OpenMP distribute parallel for directive. + /** OpenMP distribute parallel for directive. */ CXCursor_OMPDistributeParallelForDirective = 266, - /** \brief OpenMP distribute parallel for simd directive. + /** OpenMP distribute parallel for simd directive. */ CXCursor_OMPDistributeParallelForSimdDirective = 267, - /** \brief OpenMP distribute simd directive. + /** OpenMP distribute simd directive. */ CXCursor_OMPDistributeSimdDirective = 268, - /** \brief OpenMP target parallel for simd directive. + /** OpenMP target parallel for simd directive. */ CXCursor_OMPTargetParallelForSimdDirective = 269, - /** \brief OpenMP target simd directive. + /** OpenMP target simd directive. */ CXCursor_OMPTargetSimdDirective = 270, - /** \brief OpenMP teams distribute directive. + /** OpenMP teams distribute directive. */ CXCursor_OMPTeamsDistributeDirective = 271, - /** \brief OpenMP teams distribute simd directive. + /** OpenMP teams distribute simd directive. */ CXCursor_OMPTeamsDistributeSimdDirective = 272, - /** \brief OpenMP teams distribute parallel for simd directive. + /** OpenMP teams distribute parallel for simd directive. */ CXCursor_OMPTeamsDistributeParallelForSimdDirective = 273, - /** \brief OpenMP teams distribute parallel for directive. + /** OpenMP teams distribute parallel for directive. */ CXCursor_OMPTeamsDistributeParallelForDirective = 274, - /** \brief OpenMP target teams directive. + /** OpenMP target teams directive. */ CXCursor_OMPTargetTeamsDirective = 275, - /** \brief OpenMP target teams distribute directive. + /** OpenMP target teams distribute directive. */ CXCursor_OMPTargetTeamsDistributeDirective = 276, - /** \brief OpenMP target teams distribute parallel for directive. + /** OpenMP target teams distribute parallel for directive. */ CXCursor_OMPTargetTeamsDistributeParallelForDirective = 277, - /** \brief OpenMP target teams distribute parallel for simd directive. + /** OpenMP target teams distribute parallel for simd directive. */ CXCursor_OMPTargetTeamsDistributeParallelForSimdDirective = 278, - /** \brief OpenMP target teams distribute simd directive. + /** OpenMP target teams distribute simd directive. */ CXCursor_OMPTargetTeamsDistributeSimdDirective = 279, CXCursor_LastStmt = CXCursor_OMPTargetTeamsDistributeSimdDirective, /** - * \brief Cursor that represents the translation unit itself. + * Cursor that represents the translation unit itself. * * The translation unit cursor exists primarily to act as the root * cursor for traversing the contents of a translation unit. @@ -2522,7 +2522,7 @@ /* Attributes */ CXCursor_FirstAttr = 400, /** - * \brief An attribute whose specific kind is not exposed via this + * An attribute whose specific kind is not exposed via this * interface. */ CXCursor_UnexposedAttr = 400, @@ -2559,29 +2559,29 @@ /* Extra Declarations */ /** - * \brief A module import declaration. + * A module import declaration. */ CXCursor_ModuleImportDecl = 600, CXCursor_TypeAliasTemplateDecl = 601, /** - * \brief A static_assert or _Static_assert node + * A static_assert or _Static_assert node */ CXCursor_StaticAssert = 602, /** - * \brief a friend declaration. + * a friend declaration. */ CXCursor_FriendDecl = 603, CXCursor_FirstExtraDecl = CXCursor_ModuleImportDecl, CXCursor_LastExtraDecl = CXCursor_FriendDecl, /** - * \brief A code completion overload candidate. + * A code completion overload candidate. */ CXCursor_OverloadCandidate = 700 }; /** - * \brief A cursor representing some element in the abstract syntax tree for + * A cursor representing some element in the abstract syntax tree for * a translation unit. * * The cursor abstraction unifies the different kinds of entities in a @@ -2611,12 +2611,12 @@ */ /** - * \brief Retrieve the NULL cursor, which represents no entity. + * Retrieve the NULL cursor, which represents no entity. */ CINDEX_LINKAGE CXCursor clang_getNullCursor(void); /** - * \brief Retrieve the cursor that represents the given translation unit. + * Retrieve the cursor that represents the given translation unit. * * The translation unit cursor can be used to start traversing the * various declarations within the given translation unit. @@ -2624,32 +2624,32 @@ CINDEX_LINKAGE CXCursor clang_getTranslationUnitCursor(CXTranslationUnit); /** - * \brief Determine whether two cursors are equivalent. + * Determine whether two cursors are equivalent. */ CINDEX_LINKAGE unsigned clang_equalCursors(CXCursor, CXCursor); /** - * \brief Returns non-zero if \p cursor is null. + * Returns non-zero if \p cursor is null. */ CINDEX_LINKAGE int clang_Cursor_isNull(CXCursor cursor); /** - * \brief Compute a hash value for the given cursor. + * Compute a hash value for the given cursor. */ CINDEX_LINKAGE unsigned clang_hashCursor(CXCursor); /** - * \brief Retrieve the kind of the given cursor. + * Retrieve the kind of the given cursor. */ CINDEX_LINKAGE enum CXCursorKind clang_getCursorKind(CXCursor); /** - * \brief Determine whether the given cursor kind represents a declaration. + * Determine whether the given cursor kind represents a declaration. */ CINDEX_LINKAGE unsigned clang_isDeclaration(enum CXCursorKind); /** - * \brief Determine whether the given declaration is invalid. + * Determine whether the given declaration is invalid. * * A declaration is invalid if it could not be parsed successfully. * @@ -2659,7 +2659,7 @@ CINDEX_LINKAGE unsigned clang_isInvalidDeclaration(CXCursor); /** - * \brief Determine whether the given cursor kind represents a simple + * Determine whether the given cursor kind represents a simple * reference. * * Note that other kinds of cursors (such as expressions) can also refer to @@ -2669,90 +2669,90 @@ CINDEX_LINKAGE unsigned clang_isReference(enum CXCursorKind); /** - * \brief Determine whether the given cursor kind represents an expression. + * Determine whether the given cursor kind represents an expression. */ CINDEX_LINKAGE unsigned clang_isExpression(enum CXCursorKind); /** - * \brief Determine whether the given cursor kind represents a statement. + * Determine whether the given cursor kind represents a statement. */ CINDEX_LINKAGE unsigned clang_isStatement(enum CXCursorKind); /** - * \brief Determine whether the given cursor kind represents an attribute. + * Determine whether the given cursor kind represents an attribute. */ CINDEX_LINKAGE unsigned clang_isAttribute(enum CXCursorKind); /** - * \brief Determine whether the given cursor has any attributes. + * Determine whether the given cursor has any attributes. */ CINDEX_LINKAGE unsigned clang_Cursor_hasAttrs(CXCursor C); /** - * \brief Determine whether the given cursor kind represents an invalid + * Determine whether the given cursor kind represents an invalid * cursor. */ CINDEX_LINKAGE unsigned clang_isInvalid(enum CXCursorKind); /** - * \brief Determine whether the given cursor kind represents a translation + * Determine whether the given cursor kind represents a translation * unit. */ CINDEX_LINKAGE unsigned clang_isTranslationUnit(enum CXCursorKind); /*** - * \brief Determine whether the given cursor represents a preprocessing + * Determine whether the given cursor represents a preprocessing * element, such as a preprocessor directive or macro instantiation. */ CINDEX_LINKAGE unsigned clang_isPreprocessing(enum CXCursorKind); /*** - * \brief Determine whether the given cursor represents a currently + * Determine whether the given cursor represents a currently * unexposed piece of the AST (e.g., CXCursor_UnexposedStmt). */ CINDEX_LINKAGE unsigned clang_isUnexposed(enum CXCursorKind); /** - * \brief Describe the linkage of the entity referred to by a cursor. + * Describe the linkage of the entity referred to by a cursor. */ enum CXLinkageKind { - /** \brief This value indicates that no linkage information is available + /** This value indicates that no linkage information is available * for a provided CXCursor. */ CXLinkage_Invalid, /** - * \brief This is the linkage for variables, parameters, and so on that + * This is the linkage for variables, parameters, and so on that * have automatic storage. This covers normal (non-extern) local variables. */ CXLinkage_NoLinkage, - /** \brief This is the linkage for static variables and static functions. */ + /** This is the linkage for static variables and static functions. */ CXLinkage_Internal, - /** \brief This is the linkage for entities with external linkage that live + /** This is the linkage for entities with external linkage that live * in C++ anonymous namespaces.*/ CXLinkage_UniqueExternal, - /** \brief This is the linkage for entities with true, external linkage. */ + /** This is the linkage for entities with true, external linkage. */ CXLinkage_External }; /** - * \brief Determine the linkage of the entity referred to by a given cursor. + * Determine the linkage of the entity referred to by a given cursor. */ CINDEX_LINKAGE enum CXLinkageKind clang_getCursorLinkage(CXCursor cursor); enum CXVisibilityKind { - /** \brief This value indicates that no visibility information is available + /** This value indicates that no visibility information is available * for a provided CXCursor. */ CXVisibility_Invalid, - /** \brief Symbol not seen by the linker. */ + /** Symbol not seen by the linker. */ CXVisibility_Hidden, - /** \brief Symbol seen by the linker but resolves to a symbol inside this object. */ + /** Symbol seen by the linker but resolves to a symbol inside this object. */ CXVisibility_Protected, - /** \brief Symbol seen by the linker and acts like a normal symbol. */ + /** Symbol seen by the linker and acts like a normal symbol. */ CXVisibility_Default }; /** - * \brief Describe the visibility of the entity referred to by a cursor. + * Describe the visibility of the entity referred to by a cursor. * * This returns the default visibility if not explicitly specified by * a visibility attribute. The default visibility may be changed by @@ -2765,7 +2765,7 @@ CINDEX_LINKAGE enum CXVisibilityKind clang_getCursorVisibility(CXCursor cursor); /** - * \brief Determine the availability of the entity that this cursor refers to, + * Determine the availability of the entity that this cursor refers to, * taking the current target platform into account. * * \param cursor The cursor to query. @@ -2781,39 +2781,39 @@ */ typedef struct CXPlatformAvailability { /** - * \brief A string that describes the platform for which this structure + * A string that describes the platform for which this structure * provides availability information. * * Possible values are "ios" or "macos". */ CXString Platform; /** - * \brief The version number in which this entity was introduced. + * The version number in which this entity was introduced. */ CXVersion Introduced; /** - * \brief The version number in which this entity was deprecated (but is + * The version number in which this entity was deprecated (but is * still available). */ CXVersion Deprecated; /** - * \brief The version number in which this entity was obsoleted, and therefore + * The version number in which this entity was obsoleted, and therefore * is no longer available. */ CXVersion Obsoleted; /** - * \brief Whether the entity is unconditionally unavailable on this platform. + * Whether the entity is unconditionally unavailable on this platform. */ int Unavailable; /** - * \brief An optional message to provide to a user of this API, e.g., to + * An optional message to provide to a user of this API, e.g., to * suggest replacement APIs. */ CXString Message; } CXPlatformAvailability; /** - * \brief Determine the availability of the entity that this cursor refers to + * Determine the availability of the entity that this cursor refers to * on any platforms for which availability information is known. * * \param cursor The cursor to query. @@ -2858,13 +2858,13 @@ int availability_size); /** - * \brief Free the memory associated with a \c CXPlatformAvailability structure. + * Free the memory associated with a \c CXPlatformAvailability structure. */ CINDEX_LINKAGE void clang_disposeCXPlatformAvailability(CXPlatformAvailability *availability); /** - * \brief Describe the "language" of the entity referred to by a cursor. + * Describe the "language" of the entity referred to by a cursor. */ enum CXLanguageKind { CXLanguage_Invalid = 0, @@ -2874,12 +2874,12 @@ }; /** - * \brief Determine the "language" of the entity referred to by a given cursor. + * Determine the "language" of the entity referred to by a given cursor. */ CINDEX_LINKAGE enum CXLanguageKind clang_getCursorLanguage(CXCursor cursor); /** - * \brief Describe the "thread-local storage (TLS) kind" of the declaration + * Describe the "thread-local storage (TLS) kind" of the declaration * referred to by a cursor. */ enum CXTLSKind { @@ -2889,33 +2889,33 @@ }; /** - * \brief Determine the "thread-local storage (TLS) kind" of the declaration + * Determine the "thread-local storage (TLS) kind" of the declaration * referred to by a cursor. */ CINDEX_LINKAGE enum CXTLSKind clang_getCursorTLSKind(CXCursor cursor); /** - * \brief Returns the translation unit that a cursor originated from. + * Returns the translation unit that a cursor originated from. */ CINDEX_LINKAGE CXTranslationUnit clang_Cursor_getTranslationUnit(CXCursor); /** - * \brief A fast container representing a set of CXCursors. + * A fast container representing a set of CXCursors. */ typedef struct CXCursorSetImpl *CXCursorSet; /** - * \brief Creates an empty CXCursorSet. + * Creates an empty CXCursorSet. */ CINDEX_LINKAGE CXCursorSet clang_createCXCursorSet(void); /** - * \brief Disposes a CXCursorSet and releases its associated memory. + * Disposes a CXCursorSet and releases its associated memory. */ CINDEX_LINKAGE void clang_disposeCXCursorSet(CXCursorSet cset); /** - * \brief Queries a CXCursorSet to see if it contains a specific CXCursor. + * Queries a CXCursorSet to see if it contains a specific CXCursor. * * \returns non-zero if the set contains the specified cursor. */ @@ -2923,7 +2923,7 @@ CXCursor cursor); /** - * \brief Inserts a CXCursor into a CXCursorSet. + * Inserts a CXCursor into a CXCursorSet. * * \returns zero if the CXCursor was already in the set, and non-zero otherwise. */ @@ -2931,7 +2931,7 @@ CXCursor cursor); /** - * \brief Determine the semantic parent of the given cursor. + * Determine the semantic parent of the given cursor. * * The semantic parent of a cursor is the cursor that semantically contains * the given \p cursor. For many declarations, the lexical and semantic parents @@ -2966,7 +2966,7 @@ CINDEX_LINKAGE CXCursor clang_getCursorSemanticParent(CXCursor cursor); /** - * \brief Determine the lexical parent of the given cursor. + * Determine the lexical parent of the given cursor. * * The lexical parent of a cursor is the cursor in which the given \p cursor * was actually written. For many declarations, the lexical and semantic parents @@ -3002,7 +3002,7 @@ CINDEX_LINKAGE CXCursor clang_getCursorLexicalParent(CXCursor cursor); /** - * \brief Determine the set of methods that are overridden by the given + * Determine the set of methods that are overridden by the given * method. * * In both Objective-C and C++, a method (aka virtual member function, @@ -3049,13 +3049,13 @@ unsigned *num_overridden); /** - * \brief Free the set of overridden cursors returned by \c + * Free the set of overridden cursors returned by \c * clang_getOverriddenCursors(). */ CINDEX_LINKAGE void clang_disposeOverriddenCursors(CXCursor *overridden); /** - * \brief Retrieve the file that is included by the given inclusion directive + * Retrieve the file that is included by the given inclusion directive * cursor. */ CINDEX_LINKAGE CXFile clang_getIncludedFile(CXCursor cursor); @@ -3076,7 +3076,7 @@ */ /** - * \brief Map a source location to the cursor that describes the entity at that + * Map a source location to the cursor that describes the entity at that * location in the source code. * * clang_getCursor() maps an arbitrary source location within a translation @@ -3093,7 +3093,7 @@ CINDEX_LINKAGE CXCursor clang_getCursor(CXTranslationUnit, CXSourceLocation); /** - * \brief Retrieve the physical location of the source constructor referenced + * Retrieve the physical location of the source constructor referenced * by the given cursor. * * The location of a declaration is typically the location of the name of that @@ -3105,7 +3105,7 @@ CINDEX_LINKAGE CXSourceLocation clang_getCursorLocation(CXCursor); /** - * \brief Retrieve the physical extent of the source construct referenced by + * Retrieve the physical extent of the source construct referenced by * the given cursor. * * The extent of a cursor starts with the file/line/column pointing at the @@ -3128,16 +3128,16 @@ */ /** - * \brief Describes the kind of type + * Describes the kind of type */ enum CXTypeKind { /** - * \brief Represents an invalid type (e.g., where no type is available). + * Represents an invalid type (e.g., where no type is available). */ CXType_Invalid = 0, /** - * \brief A type whose specific kind is not exposed via this + * A type whose specific kind is not exposed via this * interface. */ CXType_Unexposed = 1, @@ -3198,7 +3198,7 @@ CXType_Auto = 118, /** - * \brief Represents a type that was referred to using an elaborated type keyword. + * Represents a type that was referred to using an elaborated type keyword. * * E.g., struct S, or via a qualified name, e.g., N::M::type, or both. */ @@ -3251,7 +3251,7 @@ }; /** - * \brief Describes the calling convention of a function type + * Describes the calling convention of a function type */ enum CXCallingConv { CXCallingConv_Default = 0, @@ -3278,7 +3278,7 @@ }; /** - * \brief The type of an element in the abstract syntax tree. + * The type of an element in the abstract syntax tree. * */ typedef struct { @@ -3287,12 +3287,12 @@ } CXType; /** - * \brief Retrieve the type of a CXCursor (if any). + * Retrieve the type of a CXCursor (if any). */ CINDEX_LINKAGE CXType clang_getCursorType(CXCursor C); /** - * \brief Pretty-print the underlying type using the rules of the + * Pretty-print the underlying type using the rules of the * language of the translation unit from which it came. * * If the type is invalid, an empty string is returned. @@ -3300,7 +3300,7 @@ CINDEX_LINKAGE CXString clang_getTypeSpelling(CXType CT); /** - * \brief Retrieve the underlying type of a typedef declaration. + * Retrieve the underlying type of a typedef declaration. * * If the cursor does not reference a typedef declaration, an invalid type is * returned. @@ -3308,7 +3308,7 @@ CINDEX_LINKAGE CXType clang_getTypedefDeclUnderlyingType(CXCursor C); /** - * \brief Retrieve the integer type of an enum declaration. + * Retrieve the integer type of an enum declaration. * * If the cursor does not reference an enum declaration, an invalid type is * returned. @@ -3316,7 +3316,7 @@ CINDEX_LINKAGE CXType clang_getEnumDeclIntegerType(CXCursor C); /** - * \brief Retrieve the integer value of an enum constant declaration as a signed + * Retrieve the integer value of an enum constant declaration as a signed * long long. * * If the cursor does not reference an enum constant declaration, LLONG_MIN is returned. @@ -3326,7 +3326,7 @@ CINDEX_LINKAGE long long clang_getEnumConstantDeclValue(CXCursor C); /** - * \brief Retrieve the integer value of an enum constant declaration as an unsigned + * Retrieve the integer value of an enum constant declaration as an unsigned * long long. * * If the cursor does not reference an enum constant declaration, ULLONG_MAX is returned. @@ -3336,14 +3336,14 @@ CINDEX_LINKAGE unsigned long long clang_getEnumConstantDeclUnsignedValue(CXCursor C); /** - * \brief Retrieve the bit width of a bit field declaration as an integer. + * Retrieve the bit width of a bit field declaration as an integer. * * If a cursor that is not a bit field declaration is passed in, -1 is returned. */ CINDEX_LINKAGE int clang_getFieldDeclBitWidth(CXCursor C); /** - * \brief Retrieve the number of non-variadic arguments associated with a given + * Retrieve the number of non-variadic arguments associated with a given * cursor. * * The number of arguments can be determined for calls as well as for @@ -3352,7 +3352,7 @@ CINDEX_LINKAGE int clang_Cursor_getNumArguments(CXCursor C); /** - * \brief Retrieve the argument cursor of a function or method. + * Retrieve the argument cursor of a function or method. * * The argument cursor can be determined for calls as well as for declarations * of functions or methods. For other cursors and for invalid indices, an @@ -3361,7 +3361,7 @@ CINDEX_LINKAGE CXCursor clang_Cursor_getArgument(CXCursor C, unsigned i); /** - * \brief Describes the kind of a template argument. + * Describes the kind of a template argument. * * See the definition of llvm::clang::TemplateArgument::ArgKind for full * element descriptions. @@ -3381,7 +3381,7 @@ }; /** - *\brief Returns the number of template args of a function decl representing a + *Returns the number of template args of a function decl representing a * template specialization. * * If the argument cursor cannot be converted into a template function @@ -3399,7 +3399,7 @@ CINDEX_LINKAGE int clang_Cursor_getNumTemplateArguments(CXCursor C); /** - * \brief Retrieve the kind of the I'th template argument of the CXCursor C. + * Retrieve the kind of the I'th template argument of the CXCursor C. * * If the argument CXCursor does not represent a FunctionDecl, an invalid * template argument kind is returned. @@ -3418,7 +3418,7 @@ CXCursor C, unsigned I); /** - * \brief Retrieve a CXType representing the type of a TemplateArgument of a + * Retrieve a CXType representing the type of a TemplateArgument of a * function decl representing a template specialization. * * If the argument CXCursor does not represent a FunctionDecl whose I'th @@ -3439,7 +3439,7 @@ unsigned I); /** - * \brief Retrieve the value of an Integral TemplateArgument (of a function + * Retrieve the value of an Integral TemplateArgument (of a function * decl representing a template specialization) as a signed long long. * * It is undefined to call this function on a CXCursor that does not represent a @@ -3459,7 +3459,7 @@ unsigned I); /** - * \brief Retrieve the value of an Integral TemplateArgument (of a function + * Retrieve the value of an Integral TemplateArgument (of a function * decl representing a template specialization) as an unsigned long long. * * It is undefined to call this function on a CXCursor that does not represent a @@ -3479,7 +3479,7 @@ CXCursor C, unsigned I); /** - * \brief Determine whether two CXTypes represent the same type. + * Determine whether two CXTypes represent the same type. * * \returns non-zero if the CXTypes represent the same type and * zero otherwise. @@ -3487,7 +3487,7 @@ CINDEX_LINKAGE unsigned clang_equalTypes(CXType A, CXType B); /** - * \brief Return the canonical type for a CXType. + * Return the canonical type for a CXType. * * Clang's type system explicitly models typedefs and all the ways * a specific type can be represented. The canonical type is the underlying @@ -3497,61 +3497,61 @@ CINDEX_LINKAGE CXType clang_getCanonicalType(CXType T); /** - * \brief Determine whether a CXType has the "const" qualifier set, + * Determine whether a CXType has the "const" qualifier set, * without looking through typedefs that may have added "const" at a * different level. */ CINDEX_LINKAGE unsigned clang_isConstQualifiedType(CXType T); /** - * \brief Determine whether a CXCursor that is a macro, is + * Determine whether a CXCursor that is a macro, is * function like. */ CINDEX_LINKAGE unsigned clang_Cursor_isMacroFunctionLike(CXCursor C); /** - * \brief Determine whether a CXCursor that is a macro, is a + * Determine whether a CXCursor that is a macro, is a * builtin one. */ CINDEX_LINKAGE unsigned clang_Cursor_isMacroBuiltin(CXCursor C); /** - * \brief Determine whether a CXCursor that is a function declaration, is an + * Determine whether a CXCursor that is a function declaration, is an * inline declaration. */ CINDEX_LINKAGE unsigned clang_Cursor_isFunctionInlined(CXCursor C); /** - * \brief Determine whether a CXType has the "volatile" qualifier set, + * Determine whether a CXType has the "volatile" qualifier set, * without looking through typedefs that may have added "volatile" at * a different level. */ CINDEX_LINKAGE unsigned clang_isVolatileQualifiedType(CXType T); /** - * \brief Determine whether a CXType has the "restrict" qualifier set, + * Determine whether a CXType has the "restrict" qualifier set, * without looking through typedefs that may have added "restrict" at a * different level. */ CINDEX_LINKAGE unsigned clang_isRestrictQualifiedType(CXType T); /** - * \brief Returns the address space of the given type. + * Returns the address space of the given type. */ CINDEX_LINKAGE unsigned clang_getAddressSpace(CXType T); /** - * \brief Returns the typedef name of the given type. + * Returns the typedef name of the given type. */ CINDEX_LINKAGE CXString clang_getTypedefName(CXType CT); /** - * \brief For pointer types, returns the type of the pointee. + * For pointer types, returns the type of the pointee. */ CINDEX_LINKAGE CXType clang_getPointeeType(CXType T); /** - * \brief Return the cursor for the declaration of the given type. + * Return the cursor for the declaration of the given type. */ CINDEX_LINKAGE CXCursor clang_getTypeDeclaration(CXType T); @@ -3566,33 +3566,33 @@ CINDEX_LINKAGE CXString clang_Type_getObjCEncoding(CXType type); /** - * \brief Retrieve the spelling of a given CXTypeKind. + * Retrieve the spelling of a given CXTypeKind. */ CINDEX_LINKAGE CXString clang_getTypeKindSpelling(enum CXTypeKind K); /** - * \brief Retrieve the calling convention associated with a function type. + * Retrieve the calling convention associated with a function type. * * If a non-function type is passed in, CXCallingConv_Invalid is returned. */ CINDEX_LINKAGE enum CXCallingConv clang_getFunctionTypeCallingConv(CXType T); /** - * \brief Retrieve the return type associated with a function type. + * Retrieve the return type associated with a function type. * * If a non-function type is passed in, an invalid type is returned. */ CINDEX_LINKAGE CXType clang_getResultType(CXType T); /** - * \brief Retrieve the exception specification type associated with a function type. + * Retrieve the exception specification type associated with a function type. * * If a non-function type is passed in, an error code of -1 is returned. */ CINDEX_LINKAGE int clang_getExceptionSpecificationType(CXType T); /** - * \brief Retrieve the number of non-variadic parameters associated with a + * Retrieve the number of non-variadic parameters associated with a * function type. * * If a non-function type is passed in, -1 is returned. @@ -3600,7 +3600,7 @@ CINDEX_LINKAGE int clang_getNumArgTypes(CXType T); /** - * \brief Retrieve the type of a parameter of a function type. + * Retrieve the type of a parameter of a function type. * * If a non-function type is passed in or the function does not have enough * parameters, an invalid type is returned. @@ -3608,32 +3608,32 @@ CINDEX_LINKAGE CXType clang_getArgType(CXType T, unsigned i); /** - * \brief Return 1 if the CXType is a variadic function type, and 0 otherwise. + * Return 1 if the CXType is a variadic function type, and 0 otherwise. */ CINDEX_LINKAGE unsigned clang_isFunctionTypeVariadic(CXType T); /** - * \brief Retrieve the return type associated with a given cursor. + * Retrieve the return type associated with a given cursor. * * This only returns a valid type if the cursor refers to a function or method. */ CINDEX_LINKAGE CXType clang_getCursorResultType(CXCursor C); /** - * \brief Retrieve the exception specification type associated with a given cursor. + * Retrieve the exception specification type associated with a given cursor. * * This only returns a valid result if the cursor refers to a function or method. */ CINDEX_LINKAGE int clang_getCursorExceptionSpecificationType(CXCursor C); /** - * \brief Return 1 if the CXType is a POD (plain old data) type, and 0 + * Return 1 if the CXType is a POD (plain old data) type, and 0 * otherwise. */ CINDEX_LINKAGE unsigned clang_isPODType(CXType T); /** - * \brief Return the element type of an array, complex, or vector type. + * Return the element type of an array, complex, or vector type. * * If a type is passed in that is not an array, complex, or vector type, * an invalid type is returned. @@ -3641,7 +3641,7 @@ CINDEX_LINKAGE CXType clang_getElementType(CXType T); /** - * \brief Return the number of elements of an array or vector type. + * Return the number of elements of an array or vector type. * * If a type is passed in that is not an array or vector type, * -1 is returned. @@ -3649,28 +3649,28 @@ CINDEX_LINKAGE long long clang_getNumElements(CXType T); /** - * \brief Return the element type of an array type. + * Return the element type of an array type. * * If a non-array type is passed in, an invalid type is returned. */ CINDEX_LINKAGE CXType clang_getArrayElementType(CXType T); /** - * \brief Return the array size of a constant array. + * Return the array size of a constant array. * * If a non-array type is passed in, -1 is returned. */ CINDEX_LINKAGE long long clang_getArraySize(CXType T); /** - * \brief Retrieve the type named by the qualified-id. + * Retrieve the type named by the qualified-id. * * If a non-elaborated type is passed in, an invalid type is returned. */ CINDEX_LINKAGE CXType clang_Type_getNamedType(CXType T); /** - * \brief Determine if a typedef is 'transparent' tag. + * Determine if a typedef is 'transparent' tag. * * A typedef is considered 'transparent' if it shares a name and spelling * location with its underlying tag type, as is the case with the NS_ENUM macro. @@ -3680,7 +3680,7 @@ CINDEX_LINKAGE unsigned clang_Type_isTransparentTagTypedef(CXType T); /** - * \brief List the possible error codes for \c clang_Type_getSizeOf, + * List the possible error codes for \c clang_Type_getSizeOf, * \c clang_Type_getAlignOf, \c clang_Type_getOffsetOf and * \c clang_Cursor_getOffsetOf. * @@ -3689,29 +3689,29 @@ */ enum CXTypeLayoutError { /** - * \brief Type is of kind CXType_Invalid. + * Type is of kind CXType_Invalid. */ CXTypeLayoutError_Invalid = -1, /** - * \brief The type is an incomplete Type. + * The type is an incomplete Type. */ CXTypeLayoutError_Incomplete = -2, /** - * \brief The type is a dependent Type. + * The type is a dependent Type. */ CXTypeLayoutError_Dependent = -3, /** - * \brief The type is not a constant size type. + * The type is not a constant size type. */ CXTypeLayoutError_NotConstantSize = -4, /** - * \brief The Field name is not valid for this record. + * The Field name is not valid for this record. */ CXTypeLayoutError_InvalidFieldName = -5 }; /** - * \brief Return the alignment of a type in bytes as per C++[expr.alignof] + * Return the alignment of a type in bytes as per C++[expr.alignof] * standard. * * If the type declaration is invalid, CXTypeLayoutError_Invalid is returned. @@ -3725,14 +3725,14 @@ CINDEX_LINKAGE long long clang_Type_getAlignOf(CXType T); /** - * \brief Return the class type of an member pointer type. + * Return the class type of an member pointer type. * * If a non-member-pointer type is passed in, an invalid type is returned. */ CINDEX_LINKAGE CXType clang_Type_getClassType(CXType T); /** - * \brief Return the size of a type in bytes as per C++[expr.sizeof] standard. + * Return the size of a type in bytes as per C++[expr.sizeof] standard. * * If the type declaration is invalid, CXTypeLayoutError_Invalid is returned. * If the type declaration is an incomplete type, CXTypeLayoutError_Incomplete @@ -3743,7 +3743,7 @@ CINDEX_LINKAGE long long clang_Type_getSizeOf(CXType T); /** - * \brief Return the offset of a field named S in a record of type T in bits + * Return the offset of a field named S in a record of type T in bits * as it would be returned by __offsetof__ as per C++11[18.2p4] * * If the cursor is not a record field declaration, CXTypeLayoutError_Invalid @@ -3758,7 +3758,7 @@ CINDEX_LINKAGE long long clang_Type_getOffsetOf(CXType T, const char *S); /** - * \brief Return the offset of the field represented by the Cursor. + * Return the offset of the field represented by the Cursor. * * If the cursor is not a field declaration, -1 is returned. * If the cursor semantic parent is not a record field declaration, @@ -3773,28 +3773,28 @@ CINDEX_LINKAGE long long clang_Cursor_getOffsetOfField(CXCursor C); /** - * \brief Determine whether the given cursor represents an anonymous record + * Determine whether the given cursor represents an anonymous record * declaration. */ CINDEX_LINKAGE unsigned clang_Cursor_isAnonymous(CXCursor C); enum CXRefQualifierKind { - /** \brief No ref-qualifier was provided. */ + /** No ref-qualifier was provided. */ CXRefQualifier_None = 0, - /** \brief An lvalue ref-qualifier was provided (\c &). */ + /** An lvalue ref-qualifier was provided (\c &). */ CXRefQualifier_LValue, - /** \brief An rvalue ref-qualifier was provided (\c &&). */ + /** An rvalue ref-qualifier was provided (\c &&). */ CXRefQualifier_RValue }; /** - * \brief Returns the number of template arguments for given template + * Returns the number of template arguments for given template * specialization, or -1 if type \c T is not a template specialization. */ CINDEX_LINKAGE int clang_Type_getNumTemplateArguments(CXType T); /** - * \brief Returns the type template argument of a template class specialization + * Returns the type template argument of a template class specialization * at given index. * * This function only returns template type arguments and does not handle @@ -3803,7 +3803,7 @@ CINDEX_LINKAGE CXType clang_Type_getTemplateArgumentAsType(CXType T, unsigned i); /** - * \brief Retrieve the ref-qualifier kind of a function or method. + * Retrieve the ref-qualifier kind of a function or method. * * The ref-qualifier is returned for C++ functions or methods. For other types * or non-C++ declarations, CXRefQualifier_None is returned. @@ -3811,19 +3811,19 @@ CINDEX_LINKAGE enum CXRefQualifierKind clang_Type_getCXXRefQualifier(CXType T); /** - * \brief Returns non-zero if the cursor specifies a Record member that is a + * Returns non-zero if the cursor specifies a Record member that is a * bitfield. */ CINDEX_LINKAGE unsigned clang_Cursor_isBitField(CXCursor C); /** - * \brief Returns 1 if the base class specified by the cursor with kind + * Returns 1 if the base class specified by the cursor with kind * CX_CXXBaseSpecifier is virtual. */ CINDEX_LINKAGE unsigned clang_isVirtualBase(CXCursor); /** - * \brief Represents the C++ access control level to a base class for a + * Represents the C++ access control level to a base class for a * cursor with kind CX_CXXBaseSpecifier. */ enum CX_CXXAccessSpecifier { @@ -3834,7 +3834,7 @@ }; /** - * \brief Returns the access control level for the referenced object. + * Returns the access control level for the referenced object. * * If the cursor refers to a C++ declaration, its access control level within its * parent scope is returned. Otherwise, if the cursor refers to a base specifier or @@ -3843,7 +3843,7 @@ CINDEX_LINKAGE enum CX_CXXAccessSpecifier clang_getCXXAccessSpecifier(CXCursor); /** - * \brief Represents the storage classes as declared in the source. CX_SC_Invalid + * Represents the storage classes as declared in the source. CX_SC_Invalid * was added for the case that the passed cursor in not a declaration. */ enum CX_StorageClass { @@ -3858,7 +3858,7 @@ }; /** - * \brief Returns the storage class for a function or variable declaration. + * Returns the storage class for a function or variable declaration. * * If the passed in Cursor is not a function or variable declaration, * CX_SC_Invalid is returned else the storage class. @@ -3866,7 +3866,7 @@ CINDEX_LINKAGE enum CX_StorageClass clang_Cursor_getStorageClass(CXCursor); /** - * \brief Determine the number of overloaded declarations referenced by a + * Determine the number of overloaded declarations referenced by a * \c CXCursor_OverloadedDeclRef cursor. * * \param cursor The cursor whose overloaded declarations are being queried. @@ -3877,7 +3877,7 @@ CINDEX_LINKAGE unsigned clang_getNumOverloadedDecls(CXCursor cursor); /** - * \brief Retrieve a cursor for one of the overloaded declarations referenced + * Retrieve a cursor for one of the overloaded declarations referenced * by a \c CXCursor_OverloadedDeclRef cursor. * * \param cursor The cursor whose overloaded declarations are being queried. @@ -3904,7 +3904,7 @@ */ /** - * \brief For cursors representing an iboutletcollection attribute, + * For cursors representing an iboutletcollection attribute, * this function returns the collection element type. * */ @@ -3924,7 +3924,7 @@ */ /** - * \brief Describes how the traversal of the children of a particular + * Describes how the traversal of the children of a particular * cursor should proceed after visiting a particular child cursor. * * A value of this enumeration type should be returned by each @@ -3932,23 +3932,23 @@ */ enum CXChildVisitResult { /** - * \brief Terminates the cursor traversal. + * Terminates the cursor traversal. */ CXChildVisit_Break, /** - * \brief Continues the cursor traversal with the next sibling of + * Continues the cursor traversal with the next sibling of * the cursor just visited, without visiting its children. */ CXChildVisit_Continue, /** - * \brief Recursively traverse the children of this cursor, using + * Recursively traverse the children of this cursor, using * the same visitor and client data. */ CXChildVisit_Recurse }; /** - * \brief Visitor invoked for each cursor found by a traversal. + * Visitor invoked for each cursor found by a traversal. * * This visitor function will be invoked for each cursor found by * clang_visitCursorChildren(). Its first argument is the cursor being @@ -3964,7 +3964,7 @@ CXClientData client_data); /** - * \brief Visit the children of a particular cursor. + * Visit the children of a particular cursor. * * This function visits all the direct children of the given cursor, * invoking the given \p visitor function with the cursors of each @@ -3991,7 +3991,7 @@ #ifdef __has_feature # if __has_feature(blocks) /** - * \brief Visitor invoked for each cursor found by a traversal. + * Visitor invoked for each cursor found by a traversal. * * This visitor block will be invoked for each cursor found by * clang_visitChildrenWithBlock(). Its first argument is the cursor being @@ -4028,7 +4028,7 @@ */ /** - * \brief Retrieve a Unified Symbol Resolution (USR) for the entity referenced + * Retrieve a Unified Symbol Resolution (USR) for the entity referenced * by the given cursor. * * A Unified Symbol Resolution (USR) is a string that identifies a particular @@ -4039,32 +4039,32 @@ CINDEX_LINKAGE CXString clang_getCursorUSR(CXCursor); /** - * \brief Construct a USR for a specified Objective-C class. + * Construct a USR for a specified Objective-C class. */ CINDEX_LINKAGE CXString clang_constructUSR_ObjCClass(const char *class_name); /** - * \brief Construct a USR for a specified Objective-C category. + * Construct a USR for a specified Objective-C category. */ CINDEX_LINKAGE CXString clang_constructUSR_ObjCCategory(const char *class_name, const char *category_name); /** - * \brief Construct a USR for a specified Objective-C protocol. + * Construct a USR for a specified Objective-C protocol. */ CINDEX_LINKAGE CXString clang_constructUSR_ObjCProtocol(const char *protocol_name); /** - * \brief Construct a USR for a specified Objective-C instance variable and + * Construct a USR for a specified Objective-C instance variable and * the USR for its containing class. */ CINDEX_LINKAGE CXString clang_constructUSR_ObjCIvar(const char *name, CXString classUSR); /** - * \brief Construct a USR for a specified Objective-C method and + * Construct a USR for a specified Objective-C method and * the USR for its containing class. */ CINDEX_LINKAGE CXString clang_constructUSR_ObjCMethod(const char *name, @@ -4072,19 +4072,19 @@ CXString classUSR); /** - * \brief Construct a USR for a specified Objective-C property and the USR + * Construct a USR for a specified Objective-C property and the USR * for its containing class. */ CINDEX_LINKAGE CXString clang_constructUSR_ObjCProperty(const char *property, CXString classUSR); /** - * \brief Retrieve a name for the entity referenced by this cursor. + * Retrieve a name for the entity referenced by this cursor. */ CINDEX_LINKAGE CXString clang_getCursorSpelling(CXCursor); /** - * \brief Retrieve a range for a piece that forms the cursors spelling name. + * Retrieve a range for a piece that forms the cursors spelling name. * Most of the times there is only one range for the complete spelling but for * Objective-C methods and Objective-C message expressions, there are multiple * pieces for each selector identifier. @@ -4099,13 +4099,13 @@ unsigned options); /** - * \brief Opaque pointer representing a policy that controls pretty printing + * Opaque pointer representing a policy that controls pretty printing * for \c clang_getCursorPrettyPrinted. */ typedef void *CXPrintingPolicy; /** - * \brief Properties for the printing policy. + * Properties for the printing policy. * * See \c clang::PrintingPolicy for more information. */ @@ -4141,21 +4141,21 @@ }; /** - * \brief Get a property value for the given printing policy. + * Get a property value for the given printing policy. */ CINDEX_LINKAGE unsigned clang_PrintingPolicy_getProperty(CXPrintingPolicy Policy, enum CXPrintingPolicyProperty Property); /** - * \brief Set a property value for the given printing policy. + * Set a property value for the given printing policy. */ CINDEX_LINKAGE void clang_PrintingPolicy_setProperty(CXPrintingPolicy Policy, enum CXPrintingPolicyProperty Property, unsigned Value); /** - * \brief Retrieve the default policy for the cursor. + * Retrieve the default policy for the cursor. * * The policy should be released after use with \c * clang_PrintingPolicy_dispose. @@ -4163,12 +4163,12 @@ CINDEX_LINKAGE CXPrintingPolicy clang_getCursorPrintingPolicy(CXCursor); /** - * \brief Release a printing policy. + * Release a printing policy. */ CINDEX_LINKAGE void clang_PrintingPolicy_dispose(CXPrintingPolicy Policy); /** - * \brief Pretty print declarations. + * Pretty print declarations. * * \param Cursor The cursor representing a declaration. * @@ -4182,7 +4182,7 @@ CXPrintingPolicy Policy); /** - * \brief Retrieve the display name for the entity referenced by this cursor. + * Retrieve the display name for the entity referenced by this cursor. * * The display name contains extra information that helps identify the cursor, * such as the parameters of a function or template or the arguments of a @@ -4190,7 +4190,7 @@ */ CINDEX_LINKAGE CXString clang_getCursorDisplayName(CXCursor); -/** \brief For a cursor that is a reference, retrieve a cursor representing the +/** For a cursor that is a reference, retrieve a cursor representing the * entity that it references. * * Reference cursors refer to other entities in the AST. For example, an @@ -4203,7 +4203,7 @@ CINDEX_LINKAGE CXCursor clang_getCursorReferenced(CXCursor); /** - * \brief For a cursor that is either a reference to or a declaration + * For a cursor that is either a reference to or a declaration * of some entity, retrieve a cursor that describes the definition of * that entity. * @@ -4233,13 +4233,13 @@ CINDEX_LINKAGE CXCursor clang_getCursorDefinition(CXCursor); /** - * \brief Determine whether the declaration pointed to by this cursor + * Determine whether the declaration pointed to by this cursor * is also a definition of that entity. */ CINDEX_LINKAGE unsigned clang_isCursorDefinition(CXCursor); /** - * \brief Retrieve the canonical cursor corresponding to the given cursor. + * Retrieve the canonical cursor corresponding to the given cursor. * * In the C family of languages, many kinds of entities can be declared several * times within a single translation unit. For example, a structure type can @@ -4265,7 +4265,7 @@ CINDEX_LINKAGE CXCursor clang_getCanonicalCursor(CXCursor); /** - * \brief If the cursor points to a selector identifier in an Objective-C + * If the cursor points to a selector identifier in an Objective-C * method or message expression, this returns the selector index. * * After getting a cursor with #clang_getCursor, this can be called to @@ -4278,7 +4278,7 @@ CINDEX_LINKAGE int clang_Cursor_getObjCSelectorIndex(CXCursor); /** - * \brief Given a cursor pointing to a C++ method call or an Objective-C + * Given a cursor pointing to a C++ method call or an Objective-C * message, returns non-zero if the method/message is "dynamic", meaning: * * For a C++ method: the call is virtual. @@ -4291,13 +4291,13 @@ CINDEX_LINKAGE int clang_Cursor_isDynamicCall(CXCursor C); /** - * \brief Given a cursor pointing to an Objective-C message or property + * Given a cursor pointing to an Objective-C message or property * reference, or C++ method call, returns the CXType of the receiver. */ CINDEX_LINKAGE CXType clang_Cursor_getReceiverType(CXCursor C); /** - * \brief Property attributes for a \c CXCursor_ObjCPropertyDecl. + * Property attributes for a \c CXCursor_ObjCPropertyDecl. */ typedef enum { CXObjCPropertyAttr_noattr = 0x00, @@ -4317,7 +4317,7 @@ } CXObjCPropertyAttrKind; /** - * \brief Given a cursor that represents a property declaration, return the + * Given a cursor that represents a property declaration, return the * associated property attributes. The bits are formed from * \c CXObjCPropertyAttrKind. * @@ -4327,7 +4327,7 @@ unsigned reserved); /** - * \brief 'Qualifiers' written next to the return and parameter types in + * 'Qualifiers' written next to the return and parameter types in * Objective-C method declarations. */ typedef enum { @@ -4341,7 +4341,7 @@ } CXObjCDeclQualifierKind; /** - * \brief Given a cursor that represents an Objective-C method or parameter + * Given a cursor that represents an Objective-C method or parameter * declaration, return the associated Objective-C qualifiers for the return * type or the parameter respectively. The bits are formed from * CXObjCDeclQualifierKind. @@ -4349,19 +4349,19 @@ CINDEX_LINKAGE unsigned clang_Cursor_getObjCDeclQualifiers(CXCursor C); /** - * \brief Given a cursor that represents an Objective-C method or property + * Given a cursor that represents an Objective-C method or property * declaration, return non-zero if the declaration was affected by "\@optional". * Returns zero if the cursor is not such a declaration or it is "\@required". */ CINDEX_LINKAGE unsigned clang_Cursor_isObjCOptional(CXCursor C); /** - * \brief Returns non-zero if the given cursor is a variadic function or method. + * Returns non-zero if the given cursor is a variadic function or method. */ CINDEX_LINKAGE unsigned clang_Cursor_isVariadic(CXCursor C); /** - * \brief Returns non-zero if the given cursor points to a symbol marked with + * Returns non-zero if the given cursor points to a symbol marked with * external_source_symbol attribute. * * \param language If non-NULL, and the attribute is present, will be set to @@ -4378,21 +4378,21 @@ unsigned *isGenerated); /** - * \brief Given a cursor that represents a declaration, return the associated + * Given a cursor that represents a declaration, return the associated * comment's source range. The range may include multiple consecutive comments * with whitespace in between. */ CINDEX_LINKAGE CXSourceRange clang_Cursor_getCommentRange(CXCursor C); /** - * \brief Given a cursor that represents a declaration, return the associated + * Given a cursor that represents a declaration, return the associated * comment text, including comment markers. */ CINDEX_LINKAGE CXString clang_Cursor_getRawCommentText(CXCursor C); /** - * \brief Given a cursor that represents a documentable entity (e.g., - * declaration), return the associated \\brief paragraph; otherwise return the + * Given a cursor that represents a documentable entity (e.g., + * declaration), return the associated \paragraph; otherwise return the * first paragraph. */ CINDEX_LINKAGE CXString clang_Cursor_getBriefCommentText(CXCursor C); @@ -4407,18 +4407,18 @@ */ /** - * \brief Retrieve the CXString representing the mangled name of the cursor. + * Retrieve the CXString representing the mangled name of the cursor. */ CINDEX_LINKAGE CXString clang_Cursor_getMangling(CXCursor); /** - * \brief Retrieve the CXStrings representing the mangled symbols of the C++ + * Retrieve the CXStrings representing the mangled symbols of the C++ * constructor or destructor at the cursor. */ CINDEX_LINKAGE CXStringSet *clang_Cursor_getCXXManglings(CXCursor); /** - * \brief Retrieve the CXStrings representing the mangled symbols of the ObjC + * Retrieve the CXStrings representing the mangled symbols of the ObjC * class interface or implementation at the cursor. */ CINDEX_LINKAGE CXStringSet *clang_Cursor_getObjCManglings(CXCursor); @@ -4438,12 +4438,12 @@ typedef void *CXModule; /** - * \brief Given a CXCursor_ModuleImportDecl cursor, return the associated module. + * Given a CXCursor_ModuleImportDecl cursor, return the associated module. */ CINDEX_LINKAGE CXModule clang_Cursor_getModule(CXCursor C); /** - * \brief Given a CXFile header file, return the module that contains it, if one + * Given a CXFile header file, return the module that contains it, if one * exists. */ CINDEX_LINKAGE CXModule clang_getModuleForFile(CXTranslationUnit, CXFile); @@ -4518,73 +4518,73 @@ */ /** - * \brief Determine if a C++ constructor is a converting constructor. + * Determine if a C++ constructor is a converting constructor. */ CINDEX_LINKAGE unsigned clang_CXXConstructor_isConvertingConstructor(CXCursor C); /** - * \brief Determine if a C++ constructor is a copy constructor. + * Determine if a C++ constructor is a copy constructor. */ CINDEX_LINKAGE unsigned clang_CXXConstructor_isCopyConstructor(CXCursor C); /** - * \brief Determine if a C++ constructor is the default constructor. + * Determine if a C++ constructor is the default constructor. */ CINDEX_LINKAGE unsigned clang_CXXConstructor_isDefaultConstructor(CXCursor C); /** - * \brief Determine if a C++ constructor is a move constructor. + * Determine if a C++ constructor is a move constructor. */ CINDEX_LINKAGE unsigned clang_CXXConstructor_isMoveConstructor(CXCursor C); /** - * \brief Determine if a C++ field is declared 'mutable'. + * Determine if a C++ field is declared 'mutable'. */ CINDEX_LINKAGE unsigned clang_CXXField_isMutable(CXCursor C); /** - * \brief Determine if a C++ method is declared '= default'. + * Determine if a C++ method is declared '= default'. */ CINDEX_LINKAGE unsigned clang_CXXMethod_isDefaulted(CXCursor C); /** - * \brief Determine if a C++ member function or member function template is + * Determine if a C++ member function or member function template is * pure virtual. */ CINDEX_LINKAGE unsigned clang_CXXMethod_isPureVirtual(CXCursor C); /** - * \brief Determine if a C++ member function or member function template is + * Determine if a C++ member function or member function template is * declared 'static'. */ CINDEX_LINKAGE unsigned clang_CXXMethod_isStatic(CXCursor C); /** - * \brief Determine if a C++ member function or member function template is + * Determine if a C++ member function or member function template is * explicitly declared 'virtual' or if it overrides a virtual method from * one of the base classes. */ CINDEX_LINKAGE unsigned clang_CXXMethod_isVirtual(CXCursor C); /** - * \brief Determine if a C++ record is abstract, i.e. whether a class or struct + * Determine if a C++ record is abstract, i.e. whether a class or struct * has a pure virtual member function. */ CINDEX_LINKAGE unsigned clang_CXXRecord_isAbstract(CXCursor C); /** - * \brief Determine if an enum declaration refers to a scoped enum. + * Determine if an enum declaration refers to a scoped enum. */ CINDEX_LINKAGE unsigned clang_EnumDecl_isScoped(CXCursor C); /** - * \brief Determine if a C++ member function or member function template is + * Determine if a C++ member function or member function template is * declared 'const'. */ CINDEX_LINKAGE unsigned clang_CXXMethod_isConst(CXCursor C); /** - * \brief Given a cursor that represents a template, determine + * Given a cursor that represents a template, determine * the cursor kind of the specializations would be generated by instantiating * the template. * @@ -4603,7 +4603,7 @@ CINDEX_LINKAGE enum CXCursorKind clang_getTemplateCursorKind(CXCursor C); /** - * \brief Given a cursor that may represent a specialization or instantiation + * Given a cursor that may represent a specialization or instantiation * of a template, retrieve the cursor that represents the template that it * specializes or from which it was instantiated. * @@ -4633,7 +4633,7 @@ CINDEX_LINKAGE CXCursor clang_getSpecializedCursorTemplate(CXCursor C); /** - * \brief Given a cursor that references something else, return the source range + * Given a cursor that references something else, return the source range * covering that reference. * * \param C A cursor pointing to a member reference, a declaration reference, or @@ -4656,19 +4656,19 @@ enum CXNameRefFlags { /** - * \brief Include the nested-name-specifier, e.g. Foo:: in x.Foo::y, in the + * Include the nested-name-specifier, e.g. Foo:: in x.Foo::y, in the * range. */ CXNameRange_WantQualifier = 0x1, /** - * \brief Include the explicit template arguments, e.g. \ in x.f, + * Include the explicit template arguments, e.g. \ in x.f, * in the range. */ CXNameRange_WantTemplateArgs = 0x2, /** - * \brief If the name is non-contiguous, return the full spanning range. + * If the name is non-contiguous, return the full spanning range. * * Non-contiguous names occur in Objective-C when a selector with two or more * parameters is used, or in C++ when using an operator: @@ -4695,37 +4695,37 @@ */ /** - * \brief Describes a kind of token. + * Describes a kind of token. */ typedef enum CXTokenKind { /** - * \brief A token that contains some kind of punctuation. + * A token that contains some kind of punctuation. */ CXToken_Punctuation, /** - * \brief A language keyword. + * A language keyword. */ CXToken_Keyword, /** - * \brief An identifier (that is not a keyword). + * An identifier (that is not a keyword). */ CXToken_Identifier, /** - * \brief A numeric, string, or character literal. + * A numeric, string, or character literal. */ CXToken_Literal, /** - * \brief A comment. + * A comment. */ CXToken_Comment } CXTokenKind; /** - * \brief Describes a single preprocessing token. + * Describes a single preprocessing token. */ typedef struct { unsigned int_data[4]; @@ -4733,12 +4733,12 @@ } CXToken; /** - * \brief Determine the kind of the given token. + * Determine the kind of the given token. */ CINDEX_LINKAGE CXTokenKind clang_getTokenKind(CXToken); /** - * \brief Determine the spelling of the given token. + * Determine the spelling of the given token. * * The spelling of a token is the textual representation of that token, e.g., * the text of an identifier or keyword. @@ -4746,18 +4746,18 @@ CINDEX_LINKAGE CXString clang_getTokenSpelling(CXTranslationUnit, CXToken); /** - * \brief Retrieve the source location of the given token. + * Retrieve the source location of the given token. */ CINDEX_LINKAGE CXSourceLocation clang_getTokenLocation(CXTranslationUnit, CXToken); /** - * \brief Retrieve a source range that covers the given token. + * Retrieve a source range that covers the given token. */ CINDEX_LINKAGE CXSourceRange clang_getTokenExtent(CXTranslationUnit, CXToken); /** - * \brief Tokenize the source code described by the given range into raw + * Tokenize the source code described by the given range into raw * lexical tokens. * * \param TU the translation unit whose text is being tokenized. @@ -4777,7 +4777,7 @@ CXToken **Tokens, unsigned *NumTokens); /** - * \brief Annotate the given set of tokens by providing cursors for each token + * Annotate the given set of tokens by providing cursors for each token * that can be mapped to a specific entity within the abstract syntax tree. * * This token-annotation routine is equivalent to invoking @@ -4811,7 +4811,7 @@ CXCursor *Cursors); /** - * \brief Free the given set of tokens. + * Free the given set of tokens. */ CINDEX_LINKAGE void clang_disposeTokens(CXTranslationUnit TU, CXToken *Tokens, unsigned NumTokens); @@ -4859,7 +4859,7 @@ */ /** - * \brief A semantic string that describes a code-completion result. + * A semantic string that describes a code-completion result. * * A semantic string that describes the formatting of a code-completion * result as a single "template" of text that should be inserted into the @@ -4874,11 +4874,11 @@ typedef void *CXCompletionString; /** - * \brief A single result of code completion. + * A single result of code completion. */ typedef struct { /** - * \brief The kind of entity that this completion refers to. + * The kind of entity that this completion refers to. * * The cursor kind will be a macro, keyword, or a declaration (one of the * *Decl cursor kinds), describing the entity that the completion is @@ -4890,14 +4890,14 @@ enum CXCursorKind CursorKind; /** - * \brief The code-completion string that describes how to insert this + * The code-completion string that describes how to insert this * code-completion result into the editing buffer. */ CXCompletionString CompletionString; } CXCompletionResult; /** - * \brief Describes a single piece of text within a code-completion string. + * Describes a single piece of text within a code-completion string. * * Each "chunk" within a code-completion string (\c CXCompletionString) is * either a piece of text with a specific "kind" that describes how that text @@ -4905,7 +4905,7 @@ */ enum CXCompletionChunkKind { /** - * \brief A code-completion string that describes "optional" text that + * A code-completion string that describes "optional" text that * could be a part of the template (but is not required). * * The Optional chunk is the only kind of chunk that has a code-completion @@ -4939,7 +4939,7 @@ */ CXCompletionChunk_Optional, /** - * \brief Text that a user would be expected to type to get this + * Text that a user would be expected to type to get this * code-completion result. * * There will be exactly one "typed text" chunk in a semantic string, which @@ -4950,7 +4950,7 @@ */ CXCompletionChunk_TypedText, /** - * \brief Text that should be inserted as part of a code-completion result. + * Text that should be inserted as part of a code-completion result. * * A "text" chunk represents text that is part of the template to be * inserted into user code should this particular code-completion result @@ -4958,7 +4958,7 @@ */ CXCompletionChunk_Text, /** - * \brief Placeholder text that should be replaced by the user. + * Placeholder text that should be replaced by the user. * * A "placeholder" chunk marks a place where the user should insert text * into the code-completion template. For example, placeholders might mark @@ -4969,7 +4969,7 @@ */ CXCompletionChunk_Placeholder, /** - * \brief Informative text that should be displayed but never inserted as + * Informative text that should be displayed but never inserted as * part of the template. * * An "informative" chunk contains annotations that can be displayed to @@ -4979,7 +4979,7 @@ */ CXCompletionChunk_Informative, /** - * \brief Text that describes the current parameter when code-completion is + * Text that describes the current parameter when code-completion is * referring to function call, message send, or template specialization. * * A "current parameter" chunk occurs when code-completion is providing @@ -4999,45 +4999,45 @@ */ CXCompletionChunk_CurrentParameter, /** - * \brief A left parenthesis ('('), used to initiate a function call or + * A left parenthesis ('('), used to initiate a function call or * signal the beginning of a function parameter list. */ CXCompletionChunk_LeftParen, /** - * \brief A right parenthesis (')'), used to finish a function call or + * A right parenthesis (')'), used to finish a function call or * signal the end of a function parameter list. */ CXCompletionChunk_RightParen, /** - * \brief A left bracket ('['). + * A left bracket ('['). */ CXCompletionChunk_LeftBracket, /** - * \brief A right bracket (']'). + * A right bracket (']'). */ CXCompletionChunk_RightBracket, /** - * \brief A left brace ('{'). + * A left brace ('{'). */ CXCompletionChunk_LeftBrace, /** - * \brief A right brace ('}'). + * A right brace ('}'). */ CXCompletionChunk_RightBrace, /** - * \brief A left angle bracket ('<'). + * A left angle bracket ('<'). */ CXCompletionChunk_LeftAngle, /** - * \brief A right angle bracket ('>'). + * A right angle bracket ('>'). */ CXCompletionChunk_RightAngle, /** - * \brief A comma separator (','). + * A comma separator (','). */ CXCompletionChunk_Comma, /** - * \brief Text that specifies the result type of a given result. + * Text that specifies the result type of a given result. * * This special kind of informative chunk is not meant to be inserted into * the text buffer. Rather, it is meant to illustrate the type that an @@ -5045,15 +5045,15 @@ */ CXCompletionChunk_ResultType, /** - * \brief A colon (':'). + * A colon (':'). */ CXCompletionChunk_Colon, /** - * \brief A semicolon (';'). + * A semicolon (';'). */ CXCompletionChunk_SemiColon, /** - * \brief An '=' sign. + * An '=' sign. */ CXCompletionChunk_Equal, /** @@ -5068,7 +5068,7 @@ }; /** - * \brief Determine the kind of a particular chunk within a completion string. + * Determine the kind of a particular chunk within a completion string. * * \param completion_string the completion string to query. * @@ -5081,7 +5081,7 @@ unsigned chunk_number); /** - * \brief Retrieve the text associated with a particular chunk within a + * Retrieve the text associated with a particular chunk within a * completion string. * * \param completion_string the completion string to query. @@ -5095,7 +5095,7 @@ unsigned chunk_number); /** - * \brief Retrieve the completion string associated with a particular chunk + * Retrieve the completion string associated with a particular chunk * within a completion string. * * \param completion_string the completion string to query. @@ -5110,13 +5110,13 @@ unsigned chunk_number); /** - * \brief Retrieve the number of chunks in the given code-completion string. + * Retrieve the number of chunks in the given code-completion string. */ CINDEX_LINKAGE unsigned clang_getNumCompletionChunks(CXCompletionString completion_string); /** - * \brief Determine the priority of this code completion. + * Determine the priority of this code completion. * * The priority of a code completion indicates how likely it is that this * particular completion is the completion that the user will select. The @@ -5131,7 +5131,7 @@ clang_getCompletionPriority(CXCompletionString completion_string); /** - * \brief Determine the availability of the entity that this code-completion + * Determine the availability of the entity that this code-completion * string refers to. * * \param completion_string The completion string to query. @@ -5142,7 +5142,7 @@ clang_getCompletionAvailability(CXCompletionString completion_string); /** - * \brief Retrieve the number of annotations associated with the given + * Retrieve the number of annotations associated with the given * completion string. * * \param completion_string the completion string to query. @@ -5154,7 +5154,7 @@ clang_getCompletionNumAnnotations(CXCompletionString completion_string); /** - * \brief Retrieve the annotation associated with the given completion string. + * Retrieve the annotation associated with the given completion string. * * \param completion_string the completion string to query. * @@ -5169,7 +5169,7 @@ unsigned annotation_number); /** - * \brief Retrieve the parent context of the given completion string. + * Retrieve the parent context of the given completion string. * * The parent context of a completion string is the semantic parent of * the declaration (if any) that the code completion represents. For example, @@ -5189,14 +5189,14 @@ enum CXCursorKind *kind); /** - * \brief Retrieve the brief documentation comment attached to the declaration + * Retrieve the brief documentation comment attached to the declaration * that corresponds to the given completion string. */ CINDEX_LINKAGE CXString clang_getCompletionBriefComment(CXCompletionString completion_string); /** - * \brief Retrieve a completion string for an arbitrary declaration or macro + * Retrieve a completion string for an arbitrary declaration or macro * definition cursor. * * \param cursor The cursor to query. @@ -5208,7 +5208,7 @@ clang_getCursorCompletionString(CXCursor cursor); /** - * \brief Contains the results of code-completion. + * Contains the results of code-completion. * * This data structure contains the results of code completion, as * produced by \c clang_codeCompleteAt(). Its contents must be freed by @@ -5216,19 +5216,19 @@ */ typedef struct { /** - * \brief The code-completion results. + * The code-completion results. */ CXCompletionResult *Results; /** - * \brief The number of code-completion results stored in the + * The number of code-completion results stored in the * \c Results array. */ unsigned NumResults; } CXCodeCompleteResults; /** - * \brief Flags that can be passed to \c clang_codeCompleteAt() to + * Flags that can be passed to \c clang_codeCompleteAt() to * modify its behavior. * * The enumerators in this enumeration can be bitwise-OR'd together to @@ -5236,19 +5236,19 @@ */ enum CXCodeComplete_Flags { /** - * \brief Whether to include macros within the set of code + * Whether to include macros within the set of code * completions returned. */ CXCodeComplete_IncludeMacros = 0x01, /** - * \brief Whether to include code patterns for language constructs + * Whether to include code patterns for language constructs * within the set of code completions, e.g., for loops. */ CXCodeComplete_IncludeCodePatterns = 0x02, /** - * \brief Whether to include brief documentation within the set of code + * Whether to include brief documentation within the set of code * completions returned. */ CXCodeComplete_IncludeBriefComments = 0x04, @@ -5262,144 +5262,144 @@ }; /** - * \brief Bits that represent the context under which completion is occurring. + * Bits that represent the context under which completion is occurring. * * The enumerators in this enumeration may be bitwise-OR'd together if multiple * contexts are occurring simultaneously. */ enum CXCompletionContext { /** - * \brief The context for completions is unexposed, as only Clang results + * The context for completions is unexposed, as only Clang results * should be included. (This is equivalent to having no context bits set.) */ CXCompletionContext_Unexposed = 0, /** - * \brief Completions for any possible type should be included in the results. + * Completions for any possible type should be included in the results. */ CXCompletionContext_AnyType = 1 << 0, /** - * \brief Completions for any possible value (variables, function calls, etc.) + * Completions for any possible value (variables, function calls, etc.) * should be included in the results. */ CXCompletionContext_AnyValue = 1 << 1, /** - * \brief Completions for values that resolve to an Objective-C object should + * Completions for values that resolve to an Objective-C object should * be included in the results. */ CXCompletionContext_ObjCObjectValue = 1 << 2, /** - * \brief Completions for values that resolve to an Objective-C selector + * Completions for values that resolve to an Objective-C selector * should be included in the results. */ CXCompletionContext_ObjCSelectorValue = 1 << 3, /** - * \brief Completions for values that resolve to a C++ class type should be + * Completions for values that resolve to a C++ class type should be * included in the results. */ CXCompletionContext_CXXClassTypeValue = 1 << 4, /** - * \brief Completions for fields of the member being accessed using the dot + * Completions for fields of the member being accessed using the dot * operator should be included in the results. */ CXCompletionContext_DotMemberAccess = 1 << 5, /** - * \brief Completions for fields of the member being accessed using the arrow + * Completions for fields of the member being accessed using the arrow * operator should be included in the results. */ CXCompletionContext_ArrowMemberAccess = 1 << 6, /** - * \brief Completions for properties of the Objective-C object being accessed + * Completions for properties of the Objective-C object being accessed * using the dot operator should be included in the results. */ CXCompletionContext_ObjCPropertyAccess = 1 << 7, /** - * \brief Completions for enum tags should be included in the results. + * Completions for enum tags should be included in the results. */ CXCompletionContext_EnumTag = 1 << 8, /** - * \brief Completions for union tags should be included in the results. + * Completions for union tags should be included in the results. */ CXCompletionContext_UnionTag = 1 << 9, /** - * \brief Completions for struct tags should be included in the results. + * Completions for struct tags should be included in the results. */ CXCompletionContext_StructTag = 1 << 10, /** - * \brief Completions for C++ class names should be included in the results. + * Completions for C++ class names should be included in the results. */ CXCompletionContext_ClassTag = 1 << 11, /** - * \brief Completions for C++ namespaces and namespace aliases should be + * Completions for C++ namespaces and namespace aliases should be * included in the results. */ CXCompletionContext_Namespace = 1 << 12, /** - * \brief Completions for C++ nested name specifiers should be included in + * Completions for C++ nested name specifiers should be included in * the results. */ CXCompletionContext_NestedNameSpecifier = 1 << 13, /** - * \brief Completions for Objective-C interfaces (classes) should be included + * Completions for Objective-C interfaces (classes) should be included * in the results. */ CXCompletionContext_ObjCInterface = 1 << 14, /** - * \brief Completions for Objective-C protocols should be included in + * Completions for Objective-C protocols should be included in * the results. */ CXCompletionContext_ObjCProtocol = 1 << 15, /** - * \brief Completions for Objective-C categories should be included in + * Completions for Objective-C categories should be included in * the results. */ CXCompletionContext_ObjCCategory = 1 << 16, /** - * \brief Completions for Objective-C instance messages should be included + * Completions for Objective-C instance messages should be included * in the results. */ CXCompletionContext_ObjCInstanceMessage = 1 << 17, /** - * \brief Completions for Objective-C class messages should be included in + * Completions for Objective-C class messages should be included in * the results. */ CXCompletionContext_ObjCClassMessage = 1 << 18, /** - * \brief Completions for Objective-C selector names should be included in + * Completions for Objective-C selector names should be included in * the results. */ CXCompletionContext_ObjCSelectorName = 1 << 19, /** - * \brief Completions for preprocessor macro names should be included in + * Completions for preprocessor macro names should be included in * the results. */ CXCompletionContext_MacroName = 1 << 20, /** - * \brief Natural language completions should be included in the results. + * Natural language completions should be included in the results. */ CXCompletionContext_NaturalLanguage = 1 << 21, /** - * \brief The current context is unknown, so set all contexts. + * The current context is unknown, so set all contexts. */ CXCompletionContext_Unknown = ((1 << 22) - 1) }; /** - * \brief Returns a default set of code-completion options that can be + * Returns a default set of code-completion options that can be * passed to\c clang_codeCompleteAt(). */ CINDEX_LINKAGE unsigned clang_defaultCodeCompleteOptions(void); /** - * \brief Perform code completion at a given location in a translation unit. + * Perform code completion at a given location in a translation unit. * * This function performs code completion at a particular file, line, and * column within source code, providing results that suggest potential @@ -5476,7 +5476,7 @@ unsigned options); /** - * \brief Sort the code-completion results in case-insensitive alphabetical + * Sort the code-completion results in case-insensitive alphabetical * order. * * \param Results The set of results to sort. @@ -5487,20 +5487,20 @@ unsigned NumResults); /** - * \brief Free the given set of code-completion results. + * Free the given set of code-completion results. */ CINDEX_LINKAGE void clang_disposeCodeCompleteResults(CXCodeCompleteResults *Results); /** - * \brief Determine the number of diagnostics produced prior to the + * Determine the number of diagnostics produced prior to the * location where code completion was performed. */ CINDEX_LINKAGE unsigned clang_codeCompleteGetNumDiagnostics(CXCodeCompleteResults *Results); /** - * \brief Retrieve a diagnostic associated with the given code completion. + * Retrieve a diagnostic associated with the given code completion. * * \param Results the code completion results to query. * \param Index the zero-based diagnostic number to retrieve. @@ -5513,7 +5513,7 @@ unsigned Index); /** - * \brief Determines what completions are appropriate for the context + * Determines what completions are appropriate for the context * the given code completion. * * \param Results the code completion results to query @@ -5526,7 +5526,7 @@ CXCodeCompleteResults *Results); /** - * \brief Returns the cursor kind for the container for the current code + * Returns the cursor kind for the container for the current code * completion context. The container is only guaranteed to be set for * contexts where a container exists (i.e. member accesses or Objective-C * message sends); if there is not a container, this function will return @@ -5547,7 +5547,7 @@ unsigned *IsIncomplete); /** - * \brief Returns the USR for the container for the current code completion + * Returns the USR for the container for the current code completion * context. If there is not a container for the current context, this * function will return the empty string. * @@ -5559,7 +5559,7 @@ CXString clang_codeCompleteGetContainerUSR(CXCodeCompleteResults *Results); /** - * \brief Returns the currently-entered selector for an Objective-C message + * Returns the currently-entered selector for an Objective-C message * send, formatted like "initWithFoo:bar:". Only guaranteed to return a * non-empty string for CXCompletionContext_ObjCInstanceMessage and * CXCompletionContext_ObjCClassMessage. @@ -5583,13 +5583,13 @@ */ /** - * \brief Return a version string, suitable for showing to a user, but not + * Return a version string, suitable for showing to a user, but not * intended to be parsed (the format is not guaranteed to be stable). */ CINDEX_LINKAGE CXString clang_getClangVersion(void); /** - * \brief Enable/disable crash recovery. + * Enable/disable crash recovery. * * \param isEnabled Flag to indicate if crash recovery is enabled. A non-zero * value enables crash recovery, while 0 disables it. @@ -5597,7 +5597,7 @@ CINDEX_LINKAGE void clang_toggleCrashRecovery(unsigned isEnabled); /** - * \brief Visitor invoked for each file in a translation unit + * Visitor invoked for each file in a translation unit * (used with clang_getInclusions()). * * This visitor function will be invoked by clang_getInclusions() for each @@ -5613,7 +5613,7 @@ CXClientData client_data); /** - * \brief Visit the set of preprocessor inclusions in a translation unit. + * Visit the set of preprocessor inclusions in a translation unit. * The visitor function is called with the provided data for every included * file. This does not include headers included by the PCH file (unless one * is inspecting the inclusions in the PCH file itself). @@ -5635,55 +5635,55 @@ } CXEvalResultKind ; /** - * \brief Evaluation result of a cursor + * Evaluation result of a cursor */ typedef void * CXEvalResult; /** - * \brief If cursor is a statement declaration tries to evaluate the + * If cursor is a statement declaration tries to evaluate the * statement and if its variable, tries to evaluate its initializer, * into its corresponding type. */ CINDEX_LINKAGE CXEvalResult clang_Cursor_Evaluate(CXCursor C); /** - * \brief Returns the kind of the evaluated result. + * Returns the kind of the evaluated result. */ CINDEX_LINKAGE CXEvalResultKind clang_EvalResult_getKind(CXEvalResult E); /** - * \brief Returns the evaluation result as integer if the + * Returns the evaluation result as integer if the * kind is Int. */ CINDEX_LINKAGE int clang_EvalResult_getAsInt(CXEvalResult E); /** - * \brief Returns the evaluation result as a long long integer if the + * Returns the evaluation result as a long long integer if the * kind is Int. This prevents overflows that may happen if the result is * returned with clang_EvalResult_getAsInt. */ CINDEX_LINKAGE long long clang_EvalResult_getAsLongLong(CXEvalResult E); /** - * \brief Returns a non-zero value if the kind is Int and the evaluation + * Returns a non-zero value if the kind is Int and the evaluation * result resulted in an unsigned integer. */ CINDEX_LINKAGE unsigned clang_EvalResult_isUnsignedInt(CXEvalResult E); /** - * \brief Returns the evaluation result as an unsigned integer if + * Returns the evaluation result as an unsigned integer if * the kind is Int and clang_EvalResult_isUnsignedInt is non-zero. */ CINDEX_LINKAGE unsigned long long clang_EvalResult_getAsUnsigned(CXEvalResult E); /** - * \brief Returns the evaluation result as double if the + * Returns the evaluation result as double if the * kind is double. */ CINDEX_LINKAGE double clang_EvalResult_getAsDouble(CXEvalResult E); /** - * \brief Returns the evaluation result as a constant string if the + * Returns the evaluation result as a constant string if the * kind is other than Int or float. User must not free this pointer, * instead call clang_EvalResult_dispose on the CXEvalResult returned * by clang_Cursor_Evaluate. @@ -5691,7 +5691,7 @@ CINDEX_LINKAGE const char* clang_EvalResult_getAsStr(CXEvalResult E); /** - * \brief Disposes the created Eval memory. + * Disposes the created Eval memory. */ CINDEX_LINKAGE void clang_EvalResult_dispose(CXEvalResult E); /** @@ -5704,12 +5704,12 @@ */ /** - * \brief A remapping of original source files and their translated files. + * A remapping of original source files and their translated files. */ typedef void *CXRemapping; /** - * \brief Retrieve a remapping. + * Retrieve a remapping. * * \param path the path that contains metadata about remappings. * @@ -5719,7 +5719,7 @@ CINDEX_LINKAGE CXRemapping clang_getRemappings(const char *path); /** - * \brief Retrieve a remapping. + * Retrieve a remapping. * * \param filePaths pointer to an array of file paths containing remapping info. * @@ -5733,12 +5733,12 @@ unsigned numFiles); /** - * \brief Determine the number of remappings. + * Determine the number of remappings. */ CINDEX_LINKAGE unsigned clang_remap_getNumFiles(CXRemapping); /** - * \brief Get the original and the associated filename from the remapping. + * Get the original and the associated filename from the remapping. * * \param original If non-NULL, will be set to the original filename. * @@ -5749,7 +5749,7 @@ CXString *original, CXString *transformed); /** - * \brief Dispose the remapping. + * Dispose the remapping. */ CINDEX_LINKAGE void clang_remap_dispose(CXRemapping); @@ -5774,15 +5774,15 @@ typedef enum { /** - * \brief Function returned successfully. + * Function returned successfully. */ CXResult_Success = 0, /** - * \brief One of the parameters was invalid for the function. + * One of the parameters was invalid for the function. */ CXResult_Invalid = 1, /** - * \brief The function was terminated by a callback (e.g. it returned + * The function was terminated by a callback (e.g. it returned * CXVisit_Break) */ CXResult_VisitBreak = 2 @@ -5790,7 +5790,7 @@ } CXResult; /** - * \brief Find references of a declaration in a specific file. + * Find references of a declaration in a specific file. * * \param cursor pointing to a declaration or a reference of one. * @@ -5807,7 +5807,7 @@ CXCursorAndRangeVisitor visitor); /** - * \brief Find #import/#include directives in a specific file. + * Find #import/#include directives in a specific file. * * \param TU translation unit containing the file to query. * @@ -5840,29 +5840,29 @@ #endif /** - * \brief The client's data object that is associated with a CXFile. + * The client's data object that is associated with a CXFile. */ typedef void *CXIdxClientFile; /** - * \brief The client's data object that is associated with a semantic entity. + * The client's data object that is associated with a semantic entity. */ typedef void *CXIdxClientEntity; /** - * \brief The client's data object that is associated with a semantic container + * The client's data object that is associated with a semantic container * of entities. */ typedef void *CXIdxClientContainer; /** - * \brief The client's data object that is associated with an AST file (PCH + * The client's data object that is associated with an AST file (PCH * or module). */ typedef void *CXIdxClientASTFile; /** - * \brief Source location passed to index callbacks. + * Source location passed to index callbacks. */ typedef struct { void *ptr_data[2]; @@ -5870,48 +5870,48 @@ } CXIdxLoc; /** - * \brief Data for ppIncludedFile callback. + * Data for ppIncludedFile callback. */ typedef struct { /** - * \brief Location of '#' in the \#include/\#import directive. + * Location of '#' in the \#include/\#import directive. */ CXIdxLoc hashLoc; /** - * \brief Filename as written in the \#include/\#import directive. + * Filename as written in the \#include/\#import directive. */ const char *filename; /** - * \brief The actual file that the \#include/\#import directive resolved to. + * The actual file that the \#include/\#import directive resolved to. */ CXFile file; int isImport; int isAngled; /** - * \brief Non-zero if the directive was automatically turned into a module + * Non-zero if the directive was automatically turned into a module * import. */ int isModuleImport; } CXIdxIncludedFileInfo; /** - * \brief Data for IndexerCallbacks#importedASTFile. + * Data for IndexerCallbacks#importedASTFile. */ typedef struct { /** - * \brief Top level AST file containing the imported PCH, module or submodule. + * Top level AST file containing the imported PCH, module or submodule. */ CXFile file; /** - * \brief The imported module or NULL if the AST file is a PCH. + * The imported module or NULL if the AST file is a PCH. */ CXModule module; /** - * \brief Location where the file is imported. Applicable only for modules. + * Location where the file is imported. Applicable only for modules. */ CXIdxLoc loc; /** - * \brief Non-zero if an inclusion directive was automatically turned into + * Non-zero if an inclusion directive was automatically turned into * a module import. Applicable only for modules. */ int isImplicit; @@ -5962,7 +5962,7 @@ } CXIdxEntityLanguage; /** - * \brief Extra C++ template information for an entity. This can apply to: + * Extra C++ template information for an entity. This can apply to: * CXIdxEntity_Function * CXIdxEntity_CXXClass * CXIdxEntity_CXXStaticMethod @@ -6023,7 +6023,7 @@ CXIdxLoc loc; const CXIdxContainerInfo *semanticContainer; /** - * \brief Generally same as #semanticContainer but can be different in + * Generally same as #semanticContainer but can be different in * cases like out-of-line C++ member functions. */ const CXIdxContainerInfo *lexicalContainer; @@ -6032,7 +6032,7 @@ int isContainer; const CXIdxContainerInfo *declAsContainer; /** - * \brief Whether the declaration exists in code or was created implicitly + * Whether the declaration exists in code or was created implicitly * by the compiler, e.g. implicit Objective-C methods for properties. */ int isImplicit; @@ -6098,25 +6098,25 @@ } CXIdxCXXClassDeclInfo; /** - * \brief Data for IndexerCallbacks#indexEntityReference. + * Data for IndexerCallbacks#indexEntityReference. * * This may be deprecated in a future version as this duplicates * the \c CXSymbolRole_Implicit bit in \c CXSymbolRole. */ typedef enum { /** - * \brief The entity is referenced directly in user's code. + * The entity is referenced directly in user's code. */ CXIdxEntityRef_Direct = 1, /** - * \brief An implicit reference, e.g. a reference of an Objective-C method + * An implicit reference, e.g. a reference of an Objective-C method * via the dot syntax. */ CXIdxEntityRef_Implicit = 2 } CXIdxEntityRefKind; /** - * \brief Roles that are attributed to symbol occurrences. + * Roles that are attributed to symbol occurrences. * * Internal: this currently mirrors low 9 bits of clang::index::SymbolRole with * higher bits zeroed. These high bits may be exposed in the future. @@ -6135,21 +6135,21 @@ } CXSymbolRole; /** - * \brief Data for IndexerCallbacks#indexEntityReference. + * Data for IndexerCallbacks#indexEntityReference. */ typedef struct { CXIdxEntityRefKind kind; /** - * \brief Reference cursor. + * Reference cursor. */ CXCursor cursor; CXIdxLoc loc; /** - * \brief The entity that gets referenced. + * The entity that gets referenced. */ const CXIdxEntityInfo *referencedEntity; /** - * \brief Immediate "parent" of the reference. For example: + * Immediate "parent" of the reference. For example: * * \code * Foo *var; @@ -6161,28 +6161,28 @@ */ const CXIdxEntityInfo *parentEntity; /** - * \brief Lexical container context of the reference. + * Lexical container context of the reference. */ const CXIdxContainerInfo *container; /** - * \brief Sets of symbol roles of the reference. + * Sets of symbol roles of the reference. */ CXSymbolRole role; } CXIdxEntityRefInfo; /** - * \brief A group of callbacks used by #clang_indexSourceFile and + * A group of callbacks used by #clang_indexSourceFile and * #clang_indexTranslationUnit. */ typedef struct { /** - * \brief Called periodically to check whether indexing should be aborted. + * Called periodically to check whether indexing should be aborted. * Should return 0 to continue, and non-zero to abort. */ int (*abortQuery)(CXClientData client_data, void *reserved); /** - * \brief Called at the end of indexing; passes the complete diagnostic set. + * Called at the end of indexing; passes the complete diagnostic set. */ void (*diagnostic)(CXClientData client_data, CXDiagnosticSet, void *reserved); @@ -6191,13 +6191,13 @@ CXFile mainFile, void *reserved); /** - * \brief Called when a file gets \#included/\#imported. + * Called when a file gets \#included/\#imported. */ CXIdxClientFile (*ppIncludedFile)(CXClientData client_data, const CXIdxIncludedFileInfo *); /** - * \brief Called when a AST file (PCH or module) gets imported. + * Called when a AST file (PCH or module) gets imported. * * AST files will not get indexed (there will not be callbacks to index all * the entities in an AST file). The recommended action is that, if the AST @@ -6208,7 +6208,7 @@ const CXIdxImportedASTFileInfo *); /** - * \brief Called at the beginning of indexing a translation unit. + * Called at the beginning of indexing a translation unit. */ CXIdxClientContainer (*startedTranslationUnit)(CXClientData client_data, void *reserved); @@ -6217,7 +6217,7 @@ const CXIdxDeclInfo *); /** - * \brief Called to index a reference of an entity. + * Called to index a reference of an entity. */ void (*indexEntityReference)(CXClientData client_data, const CXIdxEntityRefInfo *); @@ -6248,39 +6248,39 @@ clang_index_getCXXClassDeclInfo(const CXIdxDeclInfo *); /** - * \brief For retrieving a custom CXIdxClientContainer attached to a + * For retrieving a custom CXIdxClientContainer attached to a * container. */ CINDEX_LINKAGE CXIdxClientContainer clang_index_getClientContainer(const CXIdxContainerInfo *); /** - * \brief For setting a custom CXIdxClientContainer attached to a + * For setting a custom CXIdxClientContainer attached to a * container. */ CINDEX_LINKAGE void clang_index_setClientContainer(const CXIdxContainerInfo *,CXIdxClientContainer); /** - * \brief For retrieving a custom CXIdxClientEntity attached to an entity. + * For retrieving a custom CXIdxClientEntity attached to an entity. */ CINDEX_LINKAGE CXIdxClientEntity clang_index_getClientEntity(const CXIdxEntityInfo *); /** - * \brief For setting a custom CXIdxClientEntity attached to an entity. + * For setting a custom CXIdxClientEntity attached to an entity. */ CINDEX_LINKAGE void clang_index_setClientEntity(const CXIdxEntityInfo *, CXIdxClientEntity); /** - * \brief An indexing action/session, to be applied to one or multiple + * An indexing action/session, to be applied to one or multiple * translation units. */ typedef void *CXIndexAction; /** - * \brief An indexing action/session, to be applied to one or multiple + * An indexing action/session, to be applied to one or multiple * translation units. * * \param CIdx The index object with which the index action will be associated. @@ -6288,7 +6288,7 @@ CINDEX_LINKAGE CXIndexAction clang_IndexAction_create(CXIndex CIdx); /** - * \brief Destroy the given index action. + * Destroy the given index action. * * The index action must not be destroyed until all of the translation units * created within that index action have been destroyed. @@ -6297,36 +6297,36 @@ typedef enum { /** - * \brief Used to indicate that no special indexing options are needed. + * Used to indicate that no special indexing options are needed. */ CXIndexOpt_None = 0x0, /** - * \brief Used to indicate that IndexerCallbacks#indexEntityReference should + * Used to indicate that IndexerCallbacks#indexEntityReference should * be invoked for only one reference of an entity per source file that does * not also include a declaration/definition of the entity. */ CXIndexOpt_SuppressRedundantRefs = 0x1, /** - * \brief Function-local symbols should be indexed. If this is not set + * Function-local symbols should be indexed. If this is not set * function-local symbols will be ignored. */ CXIndexOpt_IndexFunctionLocalSymbols = 0x2, /** - * \brief Implicit function/class template instantiations should be indexed. + * Implicit function/class template instantiations should be indexed. * If this is not set, implicit instantiations will be ignored. */ CXIndexOpt_IndexImplicitTemplateInstantiations = 0x4, /** - * \brief Suppress all compiler warnings when parsing for indexing. + * Suppress all compiler warnings when parsing for indexing. */ CXIndexOpt_SuppressWarnings = 0x8, /** - * \brief Skip a function/method body that was already parsed during an + * Skip a function/method body that was already parsed during an * indexing session associated with a \c CXIndexAction object. * Bodies in system headers are always skipped. */ @@ -6335,7 +6335,7 @@ } CXIndexOptFlags; /** - * \brief Index the given source file and the translation unit corresponding + * Index the given source file and the translation unit corresponding * to that file via callbacks implemented through #IndexerCallbacks. * * \param client_data pointer data supplied by the client, which will @@ -6373,7 +6373,7 @@ unsigned TU_options); /** - * \brief Same as clang_indexSourceFile but requires a full command line + * Same as clang_indexSourceFile but requires a full command line * for \c command_line_args including argv[0]. This is useful if the standard * library paths are relative to the binary. */ @@ -6385,7 +6385,7 @@ unsigned num_unsaved_files, CXTranslationUnit *out_TU, unsigned TU_options); /** - * \brief Index the given translation unit via callbacks implemented through + * Index the given translation unit via callbacks implemented through * #IndexerCallbacks. * * The order of callback invocations is not guaranteed to be the same as @@ -6408,7 +6408,7 @@ CXTranslationUnit); /** - * \brief Retrieve the CXIdxFile, file, line, column, and offset represented by + * Retrieve the CXIdxFile, file, line, column, and offset represented by * the given CXIdxLoc. * * If the location refers into a macro expansion, retrieves the @@ -6423,13 +6423,13 @@ unsigned *offset); /** - * \brief Retrieve the CXSourceLocation represented by the given CXIdxLoc. + * Retrieve the CXSourceLocation represented by the given CXIdxLoc. */ CINDEX_LINKAGE CXSourceLocation clang_indexLoc_getCXSourceLocation(CXIdxLoc loc); /** - * \brief Visitor invoked for each field found by a traversal. + * Visitor invoked for each field found by a traversal. * * This visitor function will be invoked for each field found by * \c clang_Type_visitFields. Its first argument is the cursor being @@ -6443,7 +6443,7 @@ CXClientData client_data); /** - * \brief Visit the fields of a particular type. + * Visit the fields of a particular type. * * This function visits all the direct fields of the given cursor, * invoking the given \p visitor function with the cursors of each Index: cfe/trunk/include/clang/ARCMigrate/ARCMT.h =================================================================== --- cfe/trunk/include/clang/ARCMigrate/ARCMT.h +++ cfe/trunk/include/clang/ARCMigrate/ARCMT.h @@ -22,7 +22,7 @@ namespace arcmt { class MigrationPass; -/// \brief Creates an AST with the provided CompilerInvocation but with these +/// Creates an AST with the provided CompilerInvocation but with these /// changes: /// -if a PCH/PTH is set, the original header is used instead /// -Automatic Reference Counting mode is enabled @@ -45,7 +45,7 @@ bool emitPremigrationARCErrors = false, StringRef plistOut = StringRef()); -/// \brief Works similar to checkForManualIssues but instead of checking, it +/// Works similar to checkForManualIssues but instead of checking, it /// applies automatic modifications to source files to conform to ARC. /// /// \returns false if no error is produced, true otherwise. @@ -55,7 +55,7 @@ std::shared_ptr PCHContainerOps, DiagnosticConsumer *DiagClient); -/// \brief Applies automatic modifications and produces temporary files +/// Applies automatic modifications and produces temporary files /// and metadata into the \p outputDir path. /// /// \param emitPremigrationARCErrors if true all ARC errors will get emitted @@ -72,7 +72,7 @@ DiagnosticConsumer *DiagClient, StringRef outputDir, bool emitPremigrationARCErrors, StringRef plistOut); -/// \brief Get the set of file remappings from the \p outputDir path that +/// Get the set of file remappings from the \p outputDir path that /// migrateWithTemporaryFiles produced. /// /// \returns false if no error is produced, true otherwise. @@ -80,7 +80,7 @@ StringRef outputDir, DiagnosticConsumer *DiagClient); -/// \brief Get the set of file remappings from a list of files with remapping +/// Get the set of file remappings from a list of files with remapping /// info. /// /// \returns false if no error is produced, true otherwise. Index: cfe/trunk/include/clang/ARCMigrate/ARCMTActions.h =================================================================== --- cfe/trunk/include/clang/ARCMigrate/ARCMTActions.h +++ cfe/trunk/include/clang/ARCMigrate/ARCMTActions.h @@ -55,7 +55,7 @@ bool emitPremigrationARCErrors); }; -/// \brief Migrates to modern ObjC syntax. +/// Migrates to modern ObjC syntax. class ObjCMigrateAction : public WrapperFrontendAction { std::string MigrateDir; unsigned ObjCMigAction; Index: cfe/trunk/include/clang/AST/APValue.h =================================================================== --- cfe/trunk/include/clang/AST/APValue.h +++ cfe/trunk/include/clang/AST/APValue.h @@ -219,14 +219,14 @@ MakeUninit(); } - /// \brief Returns whether the object performed allocations. + /// Returns whether the object performed allocations. /// /// If APValues are constructed via placement new, \c needsCleanup() /// indicates whether the destructor must be called in order to correctly /// free all allocated memory. bool needsCleanup() const; - /// \brief Swaps the contents of this and the given APValue. + /// Swaps the contents of this and the given APValue. void swap(APValue &RHS); ValueKind getKind() const { return Kind; } Index: cfe/trunk/include/clang/AST/ASTConsumer.h =================================================================== --- cfe/trunk/include/clang/AST/ASTConsumer.h +++ cfe/trunk/include/clang/AST/ASTConsumer.h @@ -32,7 +32,7 @@ /// clients that read ASTs. This abstraction layer allows the client to be /// independent of the AST producer (e.g. parser vs AST dump file reader, etc). class ASTConsumer { - /// \brief Whether this AST consumer also requires information about + /// Whether this AST consumer also requires information about /// semantic analysis. bool SemaConsumer; @@ -53,7 +53,7 @@ /// \returns true to continue parsing, or false to abort parsing. virtual bool HandleTopLevelDecl(DeclGroupRef D); - /// \brief This callback is invoked each time an inline (method or friend) + /// This callback is invoked each time an inline (method or friend) /// function definition in a class is completed. virtual void HandleInlineFunctionDefinition(FunctionDecl *D) {} @@ -72,22 +72,22 @@ /// can be defined in declspecs). virtual void HandleTagDeclDefinition(TagDecl *D) {} - /// \brief This callback is invoked the first time each TagDecl is required to + /// This callback is invoked the first time each TagDecl is required to /// be complete. virtual void HandleTagDeclRequiredDefinition(const TagDecl *D) {} - /// \brief Invoked when a function is implicitly instantiated. + /// Invoked when a function is implicitly instantiated. /// Note that at this point point it does not have a body, its body is /// instantiated at the end of the translation unit and passed to /// HandleTopLevelDecl. virtual void HandleCXXImplicitFunctionInstantiation(FunctionDecl *D) {} - /// \brief Handle the specified top-level declaration that occurred inside + /// Handle the specified top-level declaration that occurred inside /// and ObjC container. /// The default implementation ignored them. virtual void HandleTopLevelDeclInObjCContainer(DeclGroupRef D); - /// \brief Handle an ImportDecl that was implicitly created due to an + /// Handle an ImportDecl that was implicitly created due to an /// inclusion directive. /// The default implementation passes it to HandleTopLevelDecl. virtual void HandleImplicitImportDecl(ImportDecl *D); @@ -103,7 +103,7 @@ /// modified by the introduction of an implicit zero initializer. virtual void CompleteTentativeDefinition(VarDecl *D) {} - /// \brief Callback invoked when an MSInheritanceAttr has been attached to a + /// Callback invoked when an MSInheritanceAttr has been attached to a /// CXXRecordDecl. virtual void AssignInheritanceModel(CXXRecordDecl *RD) {} @@ -111,19 +111,19 @@ // variable has been instantiated. virtual void HandleCXXStaticMemberVarInstantiation(VarDecl *D) {} - /// \brief Callback involved at the end of a translation unit to + /// Callback involved at the end of a translation unit to /// notify the consumer that a vtable for the given C++ class is /// required. /// /// \param RD The class whose vtable was used. virtual void HandleVTable(CXXRecordDecl *RD) {} - /// \brief If the consumer is interested in entities getting modified after + /// If the consumer is interested in entities getting modified after /// their initial creation, it should return a pointer to /// an ASTMutationListener here. virtual ASTMutationListener *GetASTMutationListener() { return nullptr; } - /// \brief If the consumer is interested in entities being deserialized from + /// If the consumer is interested in entities being deserialized from /// AST files, it should return a pointer to a ASTDeserializationListener here virtual ASTDeserializationListener *GetASTDeserializationListener() { return nullptr; @@ -132,7 +132,7 @@ /// PrintStats - If desired, print any statistics. virtual void PrintStats() {} - /// \brief This callback is called for each function if the Parser was + /// This callback is called for each function if the Parser was /// initialized with \c SkipFunctionBodies set to \c true. /// /// \return \c true if the function's body should be skipped. The function Index: cfe/trunk/include/clang/AST/ASTContext.h =================================================================== --- cfe/trunk/include/clang/AST/ASTContext.h +++ cfe/trunk/include/clang/AST/ASTContext.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Defines the clang::ASTContext interface. +/// Defines the clang::ASTContext interface. // //===----------------------------------------------------------------------===// @@ -145,7 +145,7 @@ : Width(Width), Align(Align), AlignIsRequired(AlignIsRequired) {} }; -/// \brief Holds long-lived AST nodes (such as types and decls) that can be +/// Holds long-lived AST nodes (such as types and decls) that can be /// referred to throughout the semantic analysis of a file. class ASTContext : public RefCountedBase { friend class NestedNameSpecifier; @@ -207,13 +207,13 @@ ASTContext&> SubstTemplateTemplateParmPacks; - /// \brief The set of nested name specifiers. + /// The set of nested name specifiers. /// /// This set is managed by the NestedNameSpecifier class. mutable llvm::FoldingSet NestedNameSpecifiers; mutable NestedNameSpecifier *GlobalNestedNameSpecifier = nullptr; - /// \brief A cache mapping from RecordDecls to ASTRecordLayouts. + /// A cache mapping from RecordDecls to ASTRecordLayouts. /// /// This is lazily created. This is intentionally not serialized. mutable llvm::DenseMap @@ -221,35 +221,35 @@ mutable llvm::DenseMap ObjCLayouts; - /// \brief A cache from types to size and alignment information. + /// A cache from types to size and alignment information. using TypeInfoMap = llvm::DenseMap; mutable TypeInfoMap MemoizedTypeInfo; - /// \brief A cache mapping from CXXRecordDecls to key functions. + /// A cache mapping from CXXRecordDecls to key functions. llvm::DenseMap KeyFunctions; - /// \brief Mapping from ObjCContainers to their ObjCImplementations. + /// Mapping from ObjCContainers to their ObjCImplementations. llvm::DenseMap ObjCImpls; - /// \brief Mapping from ObjCMethod to its duplicate declaration in the same + /// Mapping from ObjCMethod to its duplicate declaration in the same /// interface. llvm::DenseMap ObjCMethodRedecls; - /// \brief Mapping from __block VarDecls to their copy initialization expr. + /// Mapping from __block VarDecls to their copy initialization expr. llvm::DenseMap BlockVarCopyInits; - /// \brief Mapping from class scope functions specialization to their + /// Mapping from class scope functions specialization to their /// template patterns. llvm::DenseMap ClassScopeSpecializationPattern; - /// \brief Mapping from materialized temporaries with static storage duration + /// Mapping from materialized temporaries with static storage duration /// that appear in constant initializers to their evaluated values. These are /// allocated in a std::map because their address must be stable. llvm::DenseMap MaterializedTemporaryValues; - /// \brief Representation of a "canonical" template template parameter that + /// Representation of a "canonical" template template parameter that /// is used in canonical template names. class CanonicalTemplateTemplateParm : public llvm::FoldingSetNode { TemplateTemplateParmDecl *Parm; @@ -271,32 +271,32 @@ TemplateTemplateParmDecl * getCanonicalTemplateTemplateParmDecl(TemplateTemplateParmDecl *TTP) const; - /// \brief The typedef for the __int128_t type. + /// The typedef for the __int128_t type. mutable TypedefDecl *Int128Decl = nullptr; - /// \brief The typedef for the __uint128_t type. + /// The typedef for the __uint128_t type. mutable TypedefDecl *UInt128Decl = nullptr; - /// \brief The typedef for the target specific predefined + /// The typedef for the target specific predefined /// __builtin_va_list type. mutable TypedefDecl *BuiltinVaListDecl = nullptr; /// The typedef for the predefined \c __builtin_ms_va_list type. mutable TypedefDecl *BuiltinMSVaListDecl = nullptr; - /// \brief The typedef for the predefined \c id type. + /// The typedef for the predefined \c id type. mutable TypedefDecl *ObjCIdDecl = nullptr; - /// \brief The typedef for the predefined \c SEL type. + /// The typedef for the predefined \c SEL type. mutable TypedefDecl *ObjCSelDecl = nullptr; - /// \brief The typedef for the predefined \c Class type. + /// The typedef for the predefined \c Class type. mutable TypedefDecl *ObjCClassDecl = nullptr; - /// \brief The typedef for the predefined \c Protocol class in Objective-C. + /// The typedef for the predefined \c Protocol class in Objective-C. mutable ObjCInterfaceDecl *ObjCProtocolClassDecl = nullptr; - /// \brief The typedef for the predefined 'BOOL' type. + /// The typedef for the predefined 'BOOL' type. mutable TypedefDecl *BOOLDecl = nullptr; // Typedefs which may be provided defining the structure of Objective-C @@ -328,53 +328,53 @@ QualType ObjCNSStringType; - /// \brief The typedef declaration for the Objective-C "instancetype" type. + /// The typedef declaration for the Objective-C "instancetype" type. TypedefDecl *ObjCInstanceTypeDecl = nullptr; - /// \brief The type for the C FILE type. + /// The type for the C FILE type. TypeDecl *FILEDecl = nullptr; - /// \brief The type for the C jmp_buf type. + /// The type for the C jmp_buf type. TypeDecl *jmp_bufDecl = nullptr; - /// \brief The type for the C sigjmp_buf type. + /// The type for the C sigjmp_buf type. TypeDecl *sigjmp_bufDecl = nullptr; - /// \brief The type for the C ucontext_t type. + /// The type for the C ucontext_t type. TypeDecl *ucontext_tDecl = nullptr; - /// \brief Type for the Block descriptor for Blocks CodeGen. + /// Type for the Block descriptor for Blocks CodeGen. /// /// Since this is only used for generation of debug info, it is not /// serialized. mutable RecordDecl *BlockDescriptorType = nullptr; - /// \brief Type for the Block descriptor for Blocks CodeGen. + /// Type for the Block descriptor for Blocks CodeGen. /// /// Since this is only used for generation of debug info, it is not /// serialized. mutable RecordDecl *BlockDescriptorExtendedType = nullptr; - /// \brief Declaration for the CUDA cudaConfigureCall function. + /// Declaration for the CUDA cudaConfigureCall function. FunctionDecl *cudaConfigureCallDecl = nullptr; - /// \brief Keeps track of all declaration attributes. + /// Keeps track of all declaration attributes. /// /// Since so few decls have attrs, we keep them in a hash map instead of /// wasting space in the Decl class. llvm::DenseMap DeclAttrs; - /// \brief A mapping from non-redeclarable declarations in modules that were + /// A mapping from non-redeclarable declarations in modules that were /// merged with other declarations to the canonical declaration that they were /// merged into. llvm::DenseMap MergedDecls; - /// \brief A mapping from a defining declaration to a list of modules (other + /// A mapping from a defining declaration to a list of modules (other /// than the owning module of the declaration) that contain merged /// definitions of that entity. llvm::DenseMap> MergedDefModules; - /// \brief Initializers for a module, in order. Each Decl will be either + /// Initializers for a module, in order. Each Decl will be either /// something that has a semantic effect on startup (such as a variable with /// a non-constant initializer), or an ImportDecl (which recursively triggers /// initialization of another module). @@ -389,7 +389,7 @@ ASTContext &this_() { return *this; } public: - /// \brief A type synonym for the TemplateOrInstantiation mapping. + /// A type synonym for the TemplateOrInstantiation mapping. using TemplateOrSpecializationInfo = llvm::PointerUnion; @@ -399,7 +399,7 @@ friend class ASTWriter; friend class CXXRecordDecl; - /// \brief A mapping to contain the template or declaration that + /// A mapping to contain the template or declaration that /// a variable declaration describes or was instantiated from, /// respectively. /// @@ -432,7 +432,7 @@ llvm::DenseMap TemplateOrInstantiation; - /// \brief Keeps track of the declaration from which a using declaration was + /// Keeps track of the declaration from which a using declaration was /// created during instantiation. /// /// The source and target declarations are always a UsingDecl, an @@ -462,7 +462,7 @@ llvm::DenseMap InstantiatedFromUnnamedFieldDecl; - /// \brief Mapping that stores the methods overridden by a given C++ + /// Mapping that stores the methods overridden by a given C++ /// member function. /// /// Since most C++ member functions aren't virtual and therefore @@ -471,18 +471,18 @@ using CXXMethodVector = llvm::TinyPtrVector; llvm::DenseMap OverriddenMethods; - /// \brief Mapping from each declaration context to its corresponding + /// Mapping from each declaration context to its corresponding /// mangling numbering context (used for constructs like lambdas which /// need to be consistently numbered for the mangler). llvm::DenseMap> MangleNumberingContexts; - /// \brief Side-table of mangling numbers for declarations which rarely + /// Side-table of mangling numbers for declarations which rarely /// need them (like static local vars). llvm::MapVector MangleNumbers; llvm::MapVector StaticLocalNumbers; - /// \brief Mapping that stores parameterIndex values for ParmVarDecls when + /// Mapping that stores parameterIndex values for ParmVarDecls when /// that value exceeds the bitfield size of ParmVarDeclBits.ParameterIndex. using ParameterIndexTable = llvm::DenseMap; ParameterIndexTable ParamIndices; @@ -495,38 +495,38 @@ mutable BuiltinTemplateDecl *MakeIntegerSeqDecl = nullptr; mutable BuiltinTemplateDecl *TypePackElementDecl = nullptr; - /// \brief The associated SourceManager object. + /// The associated SourceManager object. SourceManager &SourceMgr; - /// \brief The language options used to create the AST associated with + /// The language options used to create the AST associated with /// this ASTContext object. LangOptions &LangOpts; - /// \brief Blacklist object that is used by sanitizers to decide which + /// Blacklist object that is used by sanitizers to decide which /// entities should not be instrumented. std::unique_ptr SanitizerBL; - /// \brief Function filtering mechanism to determine whether a given function + /// Function filtering mechanism to determine whether a given function /// should be imbued with the XRay "always" or "never" attributes. std::unique_ptr XRayFilter; - /// \brief The allocator used to create AST objects. + /// The allocator used to create AST objects. /// /// AST objects are never destructed; rather, all memory associated with the /// AST objects will be released when the ASTContext itself is destroyed. mutable llvm::BumpPtrAllocator BumpAlloc; - /// \brief Allocator for partial diagnostics. + /// Allocator for partial diagnostics. PartialDiagnostic::StorageAllocator DiagAllocator; - /// \brief The current C++ ABI. + /// The current C++ ABI. std::unique_ptr ABI; CXXABI *createCXXABI(const TargetInfo &T); - /// \brief The logical -> physical address space map. + /// The logical -> physical address space map. const LangASMap *AddrSpaceMap = nullptr; - /// \brief Address space map mangling must be used with language specific + /// Address space map mangling must be used with language specific /// address spaces (e.g. OpenCL/CUDA) bool AddrSpaceMapMangling; @@ -542,10 +542,10 @@ IntrusiveRefCntPtr ExternalSource; ASTMutationListener *Listener = nullptr; - /// \brief Contains parents of a node. + /// Contains parents of a node. using ParentVector = llvm::SmallVector; - /// \brief Maps from a node to its parents. This is used for nodes that have + /// Maps from a node to its parents. This is used for nodes that have /// pointer identity only, which are more common and we can save space by /// only storing a unique pointer to them. using ParentMapPointers = @@ -603,7 +603,7 @@ } }; - /// \brief Returns the parents of the given node. + /// Returns the parents of the given node. /// /// Note that this will lazily compute the parents of all nodes /// and store them for later retrieval. Thus, the first call is O(n) @@ -702,10 +702,10 @@ return FullSourceLoc(Loc,SourceMgr); } - /// \brief All comments in this translation unit. + /// All comments in this translation unit. RawCommentList Comments; - /// \brief True if comments are already loaded from ExternalASTSource. + /// True if comments are already loaded from ExternalASTSource. mutable bool CommentsLoaded = false; class RawCommentAndCacheFlags { @@ -762,18 +762,18 @@ const Decl *OriginalDecl; }; - /// \brief Mapping from declarations to comments attached to any + /// Mapping from declarations to comments attached to any /// redeclaration. /// /// Raw comments are owned by Comments list. This mapping is populated /// lazily. mutable llvm::DenseMap RedeclComments; - /// \brief Mapping from declarations to parsed comments attached to any + /// Mapping from declarations to parsed comments attached to any /// redeclaration. mutable llvm::DenseMap ParsedComments; - /// \brief Return the documentation comment attached to a given declaration, + /// Return the documentation comment attached to a given declaration, /// without looking into cache. RawComment *getRawCommentForDeclNoCache(const Decl *D) const; @@ -788,7 +788,7 @@ Comments.addComment(RC, LangOpts.CommentOpts, BumpAlloc); } - /// \brief Return the documentation comment attached to a given declaration. + /// Return the documentation comment attached to a given declaration. /// Returns nullptr if no comment is attached. /// /// \param OriginalDecl if not nullptr, is set to declaration AST node that @@ -816,7 +816,7 @@ private: mutable comments::CommandTraits CommentCommandTraits; - /// \brief Iterator that visits import declarations. + /// Iterator that visits import declarations. class import_iterator { ImportDecl *Import = nullptr; @@ -858,13 +858,13 @@ return CommentCommandTraits; } - /// \brief Retrieve the attributes for the given declaration. + /// Retrieve the attributes for the given declaration. AttrVec& getDeclAttrs(const Decl *D); - /// \brief Erase the attributes corresponding to the given declaration. + /// Erase the attributes corresponding to the given declaration. void eraseDeclAttrs(const Decl *D); - /// \brief If this variable is an instantiated static data member of a + /// If this variable is an instantiated static data member of a /// class template specialization, returns the templated static data member /// from which it was instantiated. // FIXME: Remove ? @@ -879,7 +879,7 @@ void setClassScopeSpecializationPattern(FunctionDecl *FD, FunctionDecl *Pattern); - /// \brief Note that the static data member \p Inst is an instantiation of + /// Note that the static data member \p Inst is an instantiation of /// the static data member template \p Tmpl of a class template. void setInstantiatedFromStaticDataMember(VarDecl *Inst, VarDecl *Tmpl, TemplateSpecializationKind TSK, @@ -888,12 +888,12 @@ void setTemplateOrSpecializationInfo(VarDecl *Inst, TemplateOrSpecializationInfo TSI); - /// \brief If the given using decl \p Inst is an instantiation of a + /// If the given using decl \p Inst is an instantiation of a /// (possibly unresolved) using decl from a template instantiation, /// return it. NamedDecl *getInstantiatedFromUsingDecl(NamedDecl *Inst); - /// \brief Remember that the using decl \p Inst is an instantiation + /// Remember that the using decl \p Inst is an instantiation /// of the using decl \p Pattern of a class template. void setInstantiatedFromUsingDecl(NamedDecl *Inst, NamedDecl *Pattern); @@ -920,12 +920,12 @@ overridden_method_range overridden_methods(const CXXMethodDecl *Method) const; - /// \brief Note that the given C++ \p Method overrides the given \p + /// Note that the given C++ \p Method overrides the given \p /// Overridden method. void addOverriddenMethod(const CXXMethodDecl *Method, const CXXMethodDecl *Overridden); - /// \brief Return C++ or ObjC overridden methods for the given \p Method. + /// Return C++ or ObjC overridden methods for the given \p Method. /// /// An ObjC method is considered to override any method in the class's /// base classes, its protocols, or its categories' protocols, that has @@ -936,7 +936,7 @@ const NamedDecl *Method, SmallVectorImpl &Overridden) const; - /// \brief Notify the AST context that a new import declaration has been + /// Notify the AST context that a new import declaration has been /// parsed or implicitly created within this translation unit. void addedLocalImportDecl(ImportDecl *Import); @@ -958,16 +958,16 @@ MergedDecls[D] = Primary; } - /// \brief Note that the definition \p ND has been merged into module \p M, + /// Note that the definition \p ND has been merged into module \p M, /// and should be visible whenever \p M is visible. void mergeDefinitionIntoModule(NamedDecl *ND, Module *M, bool NotifyListeners = true); - /// \brief Clean up the merged definition list. Call this if you might have + /// Clean up the merged definition list. Call this if you might have /// added duplicates into the list. void deduplicateMergedDefinitonsFor(NamedDecl *ND); - /// \brief Get the additional modules in which the definition \p Def has + /// Get the additional modules in which the definition \p Def has /// been merged. ArrayRef getModulesWithMergedDefinition(const NamedDecl *Def) { auto MergedIt = MergedDefModules.find(Def); @@ -1038,20 +1038,20 @@ ASTContext &operator=(const ASTContext &) = delete; ~ASTContext(); - /// \brief Attach an external AST source to the AST context. + /// Attach an external AST source to the AST context. /// /// The external AST source provides the ability to load parts of /// the abstract syntax tree as needed from some external storage, /// e.g., a precompiled header. void setExternalSource(IntrusiveRefCntPtr Source); - /// \brief Retrieve a pointer to the external AST source associated + /// Retrieve a pointer to the external AST source associated /// with this AST context, if any. ExternalASTSource *getExternalSource() const { return ExternalSource.get(); } - /// \brief Attach an AST mutation listener to the AST context. + /// Attach an AST mutation listener to the AST context. /// /// The AST mutation listener provides the ability to track modifications to /// the abstract syntax tree entities committed after they were initially @@ -1060,7 +1060,7 @@ this->Listener = Listener; } - /// \brief Retrieve a pointer to the AST mutation listener associated + /// Retrieve a pointer to the AST mutation listener associated /// with this AST context, if any. ASTMutationListener *getASTMutationListener() const { return Listener; } @@ -1070,18 +1070,18 @@ BuiltinTemplateDecl *buildBuiltinTemplateDecl(BuiltinTemplateKind BTK, const IdentifierInfo *II) const; - /// \brief Create a new implicit TU-level CXXRecordDecl or RecordDecl + /// Create a new implicit TU-level CXXRecordDecl or RecordDecl /// declaration. RecordDecl *buildImplicitRecord(StringRef Name, RecordDecl::TagKind TK = TTK_Struct) const; - /// \brief Create a new implicit TU-level typedef declaration. + /// Create a new implicit TU-level typedef declaration. TypedefDecl *buildImplicitTypedef(QualType T, StringRef Name) const; - /// \brief Retrieve the declaration for the 128-bit signed integer type. + /// Retrieve the declaration for the 128-bit signed integer type. TypedefDecl *getInt128Decl() const; - /// \brief Retrieve the declaration for the 128-bit unsigned integer type. + /// Retrieve the declaration for the 128-bit unsigned integer type. TypedefDecl *getUInt128Decl() const; //===--------------------------------------------------------------------===// @@ -1089,7 +1089,7 @@ //===--------------------------------------------------------------------===// private: - /// \brief Return a type with extended qualifiers. + /// Return a type with extended qualifiers. QualType getExtQualType(const Type *Base, Qualifiers Quals) const; QualType getTypeDeclTypeSlow(const TypeDecl *Decl) const; @@ -1097,7 +1097,7 @@ QualType getPipeType(QualType T, bool ReadOnly) const; public: - /// \brief Return the uniqued reference to the type for an address space + /// Return the uniqued reference to the type for an address space /// qualified type with the specified type and address space. /// /// The resulting type has a union of the qualifiers from T and the address @@ -1105,14 +1105,14 @@ /// replaced. QualType getAddrSpaceQualType(QualType T, LangAS AddressSpace) const; - /// \brief Remove any existing address space on the type and returns the type + /// Remove any existing address space on the type and returns the type /// with qualifiers intact (or that's the idea anyway) /// /// The return type should be T with all prior qualifiers minus the address /// space. QualType removeAddrSpaceQualType(QualType T) const; - /// \brief Apply Objective-C protocol qualifiers to the given type. + /// Apply Objective-C protocol qualifiers to the given type. /// \param allowOnPointerType specifies if we can apply protocol /// qualifiers on ObjCObjectPointerType. It can be set to true when /// constructing the canonical type of a Objective-C type parameter. @@ -1120,14 +1120,14 @@ ArrayRef protocols, bool &hasError, bool allowOnPointerType = false) const; - /// \brief Return the uniqued reference to the type for an Objective-C + /// Return the uniqued reference to the type for an Objective-C /// gc-qualified type. /// /// The retulting type has a union of the qualifiers from T and the gc /// attribute. QualType getObjCGCQualType(QualType T, Qualifiers::GC gcAttr) const; - /// \brief Return the uniqued reference to the type for a \c restrict + /// Return the uniqued reference to the type for a \c restrict /// qualified type. /// /// The resulting type has a union of the qualifiers from \p T and @@ -1136,7 +1136,7 @@ return T.withFastQualifiers(Qualifiers::Restrict); } - /// \brief Return the uniqued reference to the type for a \c volatile + /// Return the uniqued reference to the type for a \c volatile /// qualified type. /// /// The resulting type has a union of the qualifiers from \p T and @@ -1145,7 +1145,7 @@ return T.withFastQualifiers(Qualifiers::Volatile); } - /// \brief Return the uniqued reference to the type for a \c const + /// Return the uniqued reference to the type for a \c const /// qualified type. /// /// The resulting type has a union of the qualifiers from \p T and \c const. @@ -1154,14 +1154,14 @@ /// calling T.withConst(). QualType getConstType(QualType T) const { return T.withConst(); } - /// \brief Change the ExtInfo on a function type. + /// Change the ExtInfo on a function type. const FunctionType *adjustFunctionType(const FunctionType *Fn, FunctionType::ExtInfo EInfo); /// Adjust the given function result type. CanQualType getCanonicalFunctionResultType(QualType ResultType) const; - /// \brief Change the result type of a function type once it is deduced. + /// Change the result type of a function type once it is deduced. void adjustDeducedFunctionResultType(FunctionDecl *FD, QualType ResultType); /// Get a function type and produce the equivalent function type with the @@ -1171,11 +1171,11 @@ QualType getFunctionTypeWithExceptionSpec( QualType Orig, const FunctionProtoType::ExceptionSpecInfo &ESI); - /// \brief Determine whether two function types are the same, ignoring + /// Determine whether two function types are the same, ignoring /// exception specifications in cases where they're part of the type. bool hasSameFunctionTypeIgnoringExceptionSpec(QualType T, QualType U); - /// \brief Change the exception specification on a function once it is + /// Change the exception specification on a function once it is /// delay-parsed, instantiated, or computed. void adjustExceptionSpec(FunctionDecl *FD, const FunctionProtoType::ExceptionSpecInfo &ESI, @@ -1185,21 +1185,21 @@ /// callee function. bool isParamDestroyedInCallee(QualType T) const; - /// \brief Return the uniqued reference to the type for a complex + /// Return the uniqued reference to the type for a complex /// number with the specified element type. QualType getComplexType(QualType T) const; CanQualType getComplexType(CanQualType T) const { return CanQualType::CreateUnsafe(getComplexType((QualType) T)); } - /// \brief Return the uniqued reference to the type for a pointer to + /// Return the uniqued reference to the type for a pointer to /// the specified type. QualType getPointerType(QualType T) const; CanQualType getPointerType(CanQualType T) const { return CanQualType::CreateUnsafe(getPointerType((QualType) T)); } - /// \brief Return the uniqued reference to a type adjusted from the original + /// Return the uniqued reference to a type adjusted from the original /// type to a new type. QualType getAdjustedType(QualType Orig, QualType New) const; CanQualType getAdjustedType(CanQualType Orig, CanQualType New) const { @@ -1207,7 +1207,7 @@ getAdjustedType((QualType)Orig, (QualType)New)); } - /// \brief Return the uniqued reference to the decayed version of the given + /// Return the uniqued reference to the decayed version of the given /// type. Can only be called on array and function types which decay to /// pointer types. QualType getDecayedType(QualType T) const; @@ -1215,11 +1215,11 @@ return CanQualType::CreateUnsafe(getDecayedType((QualType) T)); } - /// \brief Return the uniqued reference to the atomic type for the specified + /// Return the uniqued reference to the atomic type for the specified /// type. QualType getAtomicType(QualType T) const; - /// \brief Return the uniqued reference to the type for a block of the + /// Return the uniqued reference to the type for a block of the /// specified type. QualType getBlockPointerType(QualType T) const; @@ -1227,10 +1227,10 @@ /// blocks. QualType getBlockDescriptorType() const; - /// \brief Return a read_only pipe type for the specified type. + /// Return a read_only pipe type for the specified type. QualType getReadPipeType(QualType T) const; - /// \brief Return a write_only pipe type for the specified type. + /// Return a write_only pipe type for the specified type. QualType getWritePipeType(QualType T) const; /// Gets the struct used to keep track of the extended descriptor for @@ -1261,29 +1261,29 @@ Qualifiers::ObjCLifetime &Lifetime, bool &HasByrefExtendedLayout) const; - /// \brief Return the uniqued reference to the type for an lvalue reference + /// Return the uniqued reference to the type for an lvalue reference /// to the specified type. QualType getLValueReferenceType(QualType T, bool SpelledAsLValue = true) const; - /// \brief Return the uniqued reference to the type for an rvalue reference + /// Return the uniqued reference to the type for an rvalue reference /// to the specified type. QualType getRValueReferenceType(QualType T) const; - /// \brief Return the uniqued reference to the type for a member pointer to + /// Return the uniqued reference to the type for a member pointer to /// the specified type in the specified class. /// /// The class \p Cls is a \c Type because it could be a dependent name. QualType getMemberPointerType(QualType T, const Type *Cls) const; - /// \brief Return a non-unique reference to the type for a variable array of + /// Return a non-unique reference to the type for a variable array of /// the specified element type. QualType getVariableArrayType(QualType EltTy, Expr *NumElts, ArrayType::ArraySizeModifier ASM, unsigned IndexTypeQuals, SourceRange Brackets) const; - /// \brief Return a non-unique reference to the type for a dependently-sized + /// Return a non-unique reference to the type for a dependently-sized /// array of the specified element type. /// /// FIXME: We will need these to be uniqued, or at least comparable, at some @@ -1293,29 +1293,29 @@ unsigned IndexTypeQuals, SourceRange Brackets) const; - /// \brief Return a unique reference to the type for an incomplete array of + /// Return a unique reference to the type for an incomplete array of /// the specified element type. QualType getIncompleteArrayType(QualType EltTy, ArrayType::ArraySizeModifier ASM, unsigned IndexTypeQuals) const; - /// \brief Return the unique reference to the type for a constant array of + /// Return the unique reference to the type for a constant array of /// the specified element type. QualType getConstantArrayType(QualType EltTy, const llvm::APInt &ArySize, ArrayType::ArraySizeModifier ASM, unsigned IndexTypeQuals) const; - /// \brief Returns a vla type where known sizes are replaced with [*]. + /// Returns a vla type where known sizes are replaced with [*]. QualType getVariableArrayDecayedType(QualType Ty) const; - /// \brief Return the unique reference to a vector type of the specified + /// Return the unique reference to a vector type of the specified /// element type and size. /// /// \pre \p VectorType must be a built-in type. QualType getVectorType(QualType VectorType, unsigned NumElts, VectorType::VectorKind VecKind) const; - /// \brief Return the unique reference to an extended vector type + /// Return the unique reference to an extended vector type /// of the specified element type and size. /// /// \pre \p VectorType must be a built-in type. @@ -1334,7 +1334,7 @@ Expr *AddrSpaceExpr, SourceLocation AttrLoc) const; - /// \brief Return a K&R style C function type like 'int()'. + /// Return a K&R style C function type like 'int()'. QualType getFunctionNoProtoType(QualType ResultTy, const FunctionType::ExtInfo &Info) const; @@ -1342,20 +1342,20 @@ return getFunctionNoProtoType(ResultTy, FunctionType::ExtInfo()); } - /// \brief Return a normal function type with a typed argument list. + /// Return a normal function type with a typed argument list. QualType getFunctionType(QualType ResultTy, ArrayRef Args, const FunctionProtoType::ExtProtoInfo &EPI) const { return getFunctionTypeInternal(ResultTy, Args, EPI, false); } private: - /// \brief Return a normal function type with a typed argument list. + /// Return a normal function type with a typed argument list. QualType getFunctionTypeInternal(QualType ResultTy, ArrayRef Args, const FunctionProtoType::ExtProtoInfo &EPI, bool OnlyWantCanonical) const; public: - /// \brief Return the unique reference to the type for the specified type + /// Return the unique reference to the type for the specified type /// declaration. QualType getTypeDeclType(const TypeDecl *Decl, const TypeDecl *PrevDecl = nullptr) const { @@ -1371,7 +1371,7 @@ return getTypeDeclTypeSlow(Decl); } - /// \brief Return the unique reference to the type for the specified + /// Return the unique reference to the type for the specified /// typedef-name decl. QualType getTypedefType(const TypedefNameDecl *Decl, QualType Canon = QualType()) const; @@ -1468,105 +1468,105 @@ bool QIdProtocolsAdoptObjCObjectProtocols(QualType QT, ObjCInterfaceDecl *IDecl); - /// \brief Return a ObjCObjectPointerType type for the given ObjCObjectType. + /// Return a ObjCObjectPointerType type for the given ObjCObjectType. QualType getObjCObjectPointerType(QualType OIT) const; - /// \brief GCC extension. + /// GCC extension. QualType getTypeOfExprType(Expr *e) const; QualType getTypeOfType(QualType t) const; - /// \brief C++11 decltype. + /// C++11 decltype. QualType getDecltypeType(Expr *e, QualType UnderlyingType) const; - /// \brief Unary type transforms + /// Unary type transforms QualType getUnaryTransformType(QualType BaseType, QualType UnderlyingType, UnaryTransformType::UTTKind UKind) const; - /// \brief C++11 deduced auto type. + /// C++11 deduced auto type. QualType getAutoType(QualType DeducedType, AutoTypeKeyword Keyword, bool IsDependent) const; - /// \brief C++11 deduction pattern for 'auto' type. + /// C++11 deduction pattern for 'auto' type. QualType getAutoDeductType() const; - /// \brief C++11 deduction pattern for 'auto &&' type. + /// C++11 deduction pattern for 'auto &&' type. QualType getAutoRRefDeductType() const; - /// \brief C++17 deduced class template specialization type. + /// C++17 deduced class template specialization type. QualType getDeducedTemplateSpecializationType(TemplateName Template, QualType DeducedType, bool IsDependent) const; - /// \brief Return the unique reference to the type for the specified TagDecl + /// Return the unique reference to the type for the specified TagDecl /// (struct/union/class/enum) decl. QualType getTagDeclType(const TagDecl *Decl) const; - /// \brief Return the unique type for "size_t" (C99 7.17), defined in + /// Return the unique type for "size_t" (C99 7.17), defined in /// . /// /// The sizeof operator requires this (C99 6.5.3.4p4). CanQualType getSizeType() const; - /// \brief Return the unique signed counterpart of + /// Return the unique signed counterpart of /// the integer type corresponding to size_t. CanQualType getSignedSizeType() const; - /// \brief Return the unique type for "intmax_t" (C99 7.18.1.5), defined in + /// Return the unique type for "intmax_t" (C99 7.18.1.5), defined in /// . CanQualType getIntMaxType() const; - /// \brief Return the unique type for "uintmax_t" (C99 7.18.1.5), defined in + /// Return the unique type for "uintmax_t" (C99 7.18.1.5), defined in /// . CanQualType getUIntMaxType() const; - /// \brief Return the unique wchar_t type available in C++ (and available as + /// Return the unique wchar_t type available in C++ (and available as /// __wchar_t as a Microsoft extension). QualType getWCharType() const { return WCharTy; } - /// \brief Return the type of wide characters. In C++, this returns the + /// Return the type of wide characters. In C++, this returns the /// unique wchar_t type. In C99, this returns a type compatible with the type /// defined in as defined by the target. QualType getWideCharType() const { return WideCharTy; } - /// \brief Return the type of "signed wchar_t". + /// Return the type of "signed wchar_t". /// /// Used when in C++, as a GCC extension. QualType getSignedWCharType() const; - /// \brief Return the type of "unsigned wchar_t". + /// Return the type of "unsigned wchar_t". /// /// Used when in C++, as a GCC extension. QualType getUnsignedWCharType() const; - /// \brief In C99, this returns a type compatible with the type + /// In C99, this returns a type compatible with the type /// defined in as defined by the target. QualType getWIntType() const { return WIntTy; } - /// \brief Return a type compatible with "intptr_t" (C99 7.18.1.4), + /// Return a type compatible with "intptr_t" (C99 7.18.1.4), /// as defined by the target. QualType getIntPtrType() const; - /// \brief Return a type compatible with "uintptr_t" (C99 7.18.1.4), + /// Return a type compatible with "uintptr_t" (C99 7.18.1.4), /// as defined by the target. QualType getUIntPtrType() const; - /// \brief Return the unique type for "ptrdiff_t" (C99 7.17) defined in + /// Return the unique type for "ptrdiff_t" (C99 7.17) defined in /// . Pointer - pointer requires this (C99 6.5.6p9). QualType getPointerDiffType() const; - /// \brief Return the unique unsigned counterpart of "ptrdiff_t" + /// Return the unique unsigned counterpart of "ptrdiff_t" /// integer type. The standard (C11 7.21.6.1p7) refers to this type /// in the definition of %tu format specifier. QualType getUnsignedPointerDiffType() const; - /// \brief Return the unique type for "pid_t" defined in + /// Return the unique type for "pid_t" defined in /// . We need this to compute the correct type for vfork(). QualType getProcessIDType() const; - /// \brief Return the C structure type used to represent constant CFStrings. + /// Return the C structure type used to represent constant CFStrings. QualType getCFConstantStringType() const; - /// \brief Returns the C struct type for objc_super + /// Returns the C struct type for objc_super QualType getObjCSuperType() const; void setObjCSuperType(QualType ST) { ObjCSuperType = ST; } @@ -1595,7 +1595,7 @@ ObjCNSStringType = T; } - /// \brief Retrieve the type that \c id has been defined to, which may be + /// Retrieve the type that \c id has been defined to, which may be /// different from the built-in \c id if \c id has been typedef'd. QualType getObjCIdRedefinitionType() const { if (ObjCIdRedefinitionType.isNull()) @@ -1603,12 +1603,12 @@ return ObjCIdRedefinitionType; } - /// \brief Set the user-written type that redefines \c id. + /// Set the user-written type that redefines \c id. void setObjCIdRedefinitionType(QualType RedefType) { ObjCIdRedefinitionType = RedefType; } - /// \brief Retrieve the type that \c Class has been defined to, which may be + /// Retrieve the type that \c Class has been defined to, which may be /// different from the built-in \c Class if \c Class has been typedef'd. QualType getObjCClassRedefinitionType() const { if (ObjCClassRedefinitionType.isNull()) @@ -1616,12 +1616,12 @@ return ObjCClassRedefinitionType; } - /// \brief Set the user-written type that redefines 'SEL'. + /// Set the user-written type that redefines 'SEL'. void setObjCClassRedefinitionType(QualType RedefType) { ObjCClassRedefinitionType = RedefType; } - /// \brief Retrieve the type that 'SEL' has been defined to, which may be + /// Retrieve the type that 'SEL' has been defined to, which may be /// different from the built-in 'SEL' if 'SEL' has been typedef'd. QualType getObjCSelRedefinitionType() const { if (ObjCSelRedefinitionType.isNull()) @@ -1629,7 +1629,7 @@ return ObjCSelRedefinitionType; } - /// \brief Set the user-written type that redefines 'SEL'. + /// Set the user-written type that redefines 'SEL'. void setObjCSelRedefinitionType(QualType RedefType) { ObjCSelRedefinitionType = RedefType; } @@ -1689,68 +1689,68 @@ return TypePackElementName; } - /// \brief Retrieve the Objective-C "instancetype" type, if already known; + /// Retrieve the Objective-C "instancetype" type, if already known; /// otherwise, returns a NULL type; QualType getObjCInstanceType() { return getTypeDeclType(getObjCInstanceTypeDecl()); } - /// \brief Retrieve the typedef declaration corresponding to the Objective-C + /// Retrieve the typedef declaration corresponding to the Objective-C /// "instancetype" type. TypedefDecl *getObjCInstanceTypeDecl(); - /// \brief Set the type for the C FILE type. + /// Set the type for the C FILE type. void setFILEDecl(TypeDecl *FILEDecl) { this->FILEDecl = FILEDecl; } - /// \brief Retrieve the C FILE type. + /// Retrieve the C FILE type. QualType getFILEType() const { if (FILEDecl) return getTypeDeclType(FILEDecl); return QualType(); } - /// \brief Set the type for the C jmp_buf type. + /// Set the type for the C jmp_buf type. void setjmp_bufDecl(TypeDecl *jmp_bufDecl) { this->jmp_bufDecl = jmp_bufDecl; } - /// \brief Retrieve the C jmp_buf type. + /// Retrieve the C jmp_buf type. QualType getjmp_bufType() const { if (jmp_bufDecl) return getTypeDeclType(jmp_bufDecl); return QualType(); } - /// \brief Set the type for the C sigjmp_buf type. + /// Set the type for the C sigjmp_buf type. void setsigjmp_bufDecl(TypeDecl *sigjmp_bufDecl) { this->sigjmp_bufDecl = sigjmp_bufDecl; } - /// \brief Retrieve the C sigjmp_buf type. + /// Retrieve the C sigjmp_buf type. QualType getsigjmp_bufType() const { if (sigjmp_bufDecl) return getTypeDeclType(sigjmp_bufDecl); return QualType(); } - /// \brief Set the type for the C ucontext_t type. + /// Set the type for the C ucontext_t type. void setucontext_tDecl(TypeDecl *ucontext_tDecl) { this->ucontext_tDecl = ucontext_tDecl; } - /// \brief Retrieve the C ucontext_t type. + /// Retrieve the C ucontext_t type. QualType getucontext_tType() const { if (ucontext_tDecl) return getTypeDeclType(ucontext_tDecl); return QualType(); } - /// \brief The result type of logical operations, '<', '>', '!=', etc. + /// The result type of logical operations, '<', '>', '!=', etc. QualType getLogicalOperationType() const { return getLangOpts().CPlusPlus ? BoolTy : IntTy; } - /// \brief Emit the Objective-CC type encoding for the given type \p T into + /// Emit the Objective-CC type encoding for the given type \p T into /// \p S. /// /// If \p Field is specified then record field names are also encoded. @@ -1758,17 +1758,17 @@ const FieldDecl *Field=nullptr, QualType *NotEncodedT=nullptr) const; - /// \brief Emit the Objective-C property type encoding for the given + /// Emit the Objective-C property type encoding for the given /// type \p T into \p S. void getObjCEncodingForPropertyType(QualType T, std::string &S) const; void getLegacyIntegralTypeEncoding(QualType &t) const; - /// \brief Put the string version of the type qualifiers \p QT into \p S. + /// Put the string version of the type qualifiers \p QT into \p S. void getObjCEncodingForTypeQualifier(Decl::ObjCDeclQualifier QT, std::string &S) const; - /// \brief Emit the encoded type for the function \p Decl into \p S. + /// Emit the encoded type for the function \p Decl into \p S. /// /// This is in the same format as Objective-C method encodings. /// @@ -1776,12 +1776,12 @@ /// types is incomplete), false otherwise. std::string getObjCEncodingForFunctionDecl(const FunctionDecl *Decl) const; - /// \brief Emit the encoded type for the method declaration \p Decl into + /// Emit the encoded type for the method declaration \p Decl into /// \p S. std::string getObjCEncodingForMethodDecl(const ObjCMethodDecl *Decl, bool Extended = false) const; - /// \brief Return the encoded type for this block declaration. + /// Return the encoded type for this block declaration. std::string getObjCEncodingForBlock(const BlockExpr *blockExpr) const; /// getObjCEncodingForPropertyDecl - Return the encoded type for @@ -1798,15 +1798,15 @@ const ObjCPropertyDecl *PD, const Decl *Container) const; - /// \brief Return the size of type \p T for Objective-C encoding purpose, + /// Return the size of type \p T for Objective-C encoding purpose, /// in characters. CharUnits getObjCEncodingTypeSize(QualType T) const; - /// \brief Retrieve the typedef corresponding to the predefined \c id type + /// Retrieve the typedef corresponding to the predefined \c id type /// in Objective-C. TypedefDecl *getObjCIdDecl() const; - /// \brief Represents the Objective-CC \c id type. + /// Represents the Objective-CC \c id type. /// /// This is set up lazily, by Sema. \c id is always a (typedef for a) /// pointer type, a pointer to a struct. @@ -1814,21 +1814,21 @@ return getTypeDeclType(getObjCIdDecl()); } - /// \brief Retrieve the typedef corresponding to the predefined 'SEL' type + /// Retrieve the typedef corresponding to the predefined 'SEL' type /// in Objective-C. TypedefDecl *getObjCSelDecl() const; - /// \brief Retrieve the type that corresponds to the predefined Objective-C + /// Retrieve the type that corresponds to the predefined Objective-C /// 'SEL' type. QualType getObjCSelType() const { return getTypeDeclType(getObjCSelDecl()); } - /// \brief Retrieve the typedef declaration corresponding to the predefined + /// Retrieve the typedef declaration corresponding to the predefined /// Objective-C 'Class' type. TypedefDecl *getObjCClassDecl() const; - /// \brief Represents the Objective-C \c Class type. + /// Represents the Objective-C \c Class type. /// /// This is set up lazily, by Sema. \c Class is always a (typedef for a) /// pointer type, a pointer to a struct. @@ -1836,40 +1836,40 @@ return getTypeDeclType(getObjCClassDecl()); } - /// \brief Retrieve the Objective-C class declaration corresponding to + /// Retrieve the Objective-C class declaration corresponding to /// the predefined \c Protocol class. ObjCInterfaceDecl *getObjCProtocolDecl() const; - /// \brief Retrieve declaration of 'BOOL' typedef + /// Retrieve declaration of 'BOOL' typedef TypedefDecl *getBOOLDecl() const { return BOOLDecl; } - /// \brief Save declaration of 'BOOL' typedef + /// Save declaration of 'BOOL' typedef void setBOOLDecl(TypedefDecl *TD) { BOOLDecl = TD; } - /// \brief type of 'BOOL' type. + /// type of 'BOOL' type. QualType getBOOLType() const { return getTypeDeclType(getBOOLDecl()); } - /// \brief Retrieve the type of the Objective-C \c Protocol class. + /// Retrieve the type of the Objective-C \c Protocol class. QualType getObjCProtoType() const { return getObjCInterfaceType(getObjCProtocolDecl()); } - /// \brief Retrieve the C type declaration corresponding to the predefined + /// Retrieve the C type declaration corresponding to the predefined /// \c __builtin_va_list type. TypedefDecl *getBuiltinVaListDecl() const; - /// \brief Retrieve the type of the \c __builtin_va_list type. + /// Retrieve the type of the \c __builtin_va_list type. QualType getBuiltinVaListType() const { return getTypeDeclType(getBuiltinVaListDecl()); } - /// \brief Retrieve the C type declaration corresponding to the predefined + /// Retrieve the C type declaration corresponding to the predefined /// \c __va_list_tag type used to help define the \c __builtin_va_list type /// for some targets. Decl *getVaListTagDecl() const; @@ -1887,18 +1887,18 @@ /// overloaded/redeclared. bool canBuiltinBeRedeclared(const FunctionDecl *) const; - /// \brief Return a type with additional \c const, \c volatile, or + /// Return a type with additional \c const, \c volatile, or /// \c restrict qualifiers. QualType getCVRQualifiedType(QualType T, unsigned CVR) const { return getQualifiedType(T, Qualifiers::fromCVRMask(CVR)); } - /// \brief Un-split a SplitQualType. + /// Un-split a SplitQualType. QualType getQualifiedType(SplitQualType split) const { return getQualifiedType(split.Ty, split.Quals); } - /// \brief Return a type with additional qualifiers. + /// Return a type with additional qualifiers. QualType getQualifiedType(QualType T, Qualifiers Qs) const { if (!Qs.hasNonFastQualifiers()) return T.withFastQualifiers(Qs.getFastQualifiers()); @@ -1907,14 +1907,14 @@ return getExtQualType(Ptr, Qc); } - /// \brief Return a type with additional qualifiers. + /// Return a type with additional qualifiers. QualType getQualifiedType(const Type *T, Qualifiers Qs) const { if (!Qs.hasNonFastQualifiers()) return QualType(T, Qs.getFastQualifiers()); return getExtQualType(T, Qs); } - /// \brief Return a type with the given lifetime qualifier. + /// Return a type with the given lifetime qualifier. /// /// \pre Neither type.ObjCLifetime() nor \p lifetime may be \c OCL_None. QualType getLifetimeQualifiedType(QualType type, @@ -1971,7 +1971,7 @@ GE_Missing_ucontext }; - /// \brief Return the type for the specified builtin. + /// Return the type for the specified builtin. /// /// If \p IntegerConstantArgs is non-null, it is filled in with a bitmask of /// arguments to the builtin that are required to be integer constant @@ -1992,18 +1992,18 @@ //===--------------------------------------------------------------------===// public: - /// \brief Return one of the GCNone, Weak or Strong Objective-C garbage + /// Return one of the GCNone, Weak or Strong Objective-C garbage /// collection attributes. Qualifiers::GC getObjCGCAttrKind(QualType Ty) const; - /// \brief Return true if the given vector types are of the same unqualified + /// Return true if the given vector types are of the same unqualified /// type or if they are equivalent to the same GCC vector type. /// /// \note This ignores whether they are target-specific (AltiVec or Neon) /// types. bool areCompatibleVectorTypes(QualType FirstVec, QualType SecondVec); - /// \brief Return true if this is an \c NSObject object with its \c NSObject + /// Return true if this is an \c NSObject object with its \c NSObject /// attribute set. static bool isObjCNSObjectType(QualType Ty) { return Ty->isObjCNSObjectType(); @@ -2013,48 +2013,48 @@ // Type Sizing and Analysis //===--------------------------------------------------------------------===// - /// \brief Return the APFloat 'semantics' for the specified scalar floating + /// Return the APFloat 'semantics' for the specified scalar floating /// point type. const llvm::fltSemantics &getFloatTypeSemantics(QualType T) const; - /// \brief Get the size and alignment of the specified complete type in bits. + /// Get the size and alignment of the specified complete type in bits. TypeInfo getTypeInfo(const Type *T) const; TypeInfo getTypeInfo(QualType T) const { return getTypeInfo(T.getTypePtr()); } - /// \brief Get default simd alignment of the specified complete type in bits. + /// Get default simd alignment of the specified complete type in bits. unsigned getOpenMPDefaultSimdAlign(QualType T) const; - /// \brief Return the size of the specified (complete) type \p T, in bits. + /// Return the size of the specified (complete) type \p T, in bits. uint64_t getTypeSize(QualType T) const { return getTypeInfo(T).Width; } uint64_t getTypeSize(const Type *T) const { return getTypeInfo(T).Width; } - /// \brief Return the size of the character type, in bits. + /// Return the size of the character type, in bits. uint64_t getCharWidth() const { return getTypeSize(CharTy); } - /// \brief Convert a size in bits to a size in characters. + /// Convert a size in bits to a size in characters. CharUnits toCharUnitsFromBits(int64_t BitSize) const; - /// \brief Convert a size in characters to a size in bits. + /// Convert a size in characters to a size in bits. int64_t toBits(CharUnits CharSize) const; - /// \brief Return the size of the specified (complete) type \p T, in + /// Return the size of the specified (complete) type \p T, in /// characters. CharUnits getTypeSizeInChars(QualType T) const; CharUnits getTypeSizeInChars(const Type *T) const; - /// \brief Return the ABI-specified alignment of a (complete) type \p T, in + /// Return the ABI-specified alignment of a (complete) type \p T, in /// bits. unsigned getTypeAlign(QualType T) const { return getTypeInfo(T).Align; } unsigned getTypeAlign(const Type *T) const { return getTypeInfo(T).Align; } - /// \brief Return the ABI-specified alignment of a type, in bits, or 0 if + /// Return the ABI-specified alignment of a type, in bits, or 0 if /// the type is incomplete and we cannot determine the alignment (for /// example, from alignment attributes). unsigned getTypeAlignIfKnown(QualType T) const; - /// \brief Return the ABI-specified alignment of a (complete) type \p T, in + /// Return the ABI-specified alignment of a (complete) type \p T, in /// characters. CharUnits getTypeAlignInChars(QualType T) const; CharUnits getTypeAlignInChars(const Type *T) const; @@ -2066,31 +2066,31 @@ std::pair getTypeInfoInChars(const Type *T) const; std::pair getTypeInfoInChars(QualType T) const; - /// \brief Determine if the alignment the type has was required using an + /// Determine if the alignment the type has was required using an /// alignment attribute. bool isAlignmentRequired(const Type *T) const; bool isAlignmentRequired(QualType T) const; - /// \brief Return the "preferred" alignment of the specified type \p T for + /// Return the "preferred" alignment of the specified type \p T for /// the current target, in bits. /// /// This can be different than the ABI alignment in cases where it is /// beneficial for performance to overalign a data type. unsigned getPreferredTypeAlign(const Type *T) const; - /// \brief Return the default alignment for __attribute__((aligned)) on + /// Return the default alignment for __attribute__((aligned)) on /// this target, to be used if no alignment value is specified. unsigned getTargetDefaultAlignForAttributeAligned() const; - /// \brief Return the alignment in bits that should be given to a + /// Return the alignment in bits that should be given to a /// global variable with type \p T. unsigned getAlignOfGlobalVar(QualType T) const; - /// \brief Return the alignment in characters that should be given to a + /// Return the alignment in characters that should be given to a /// global variable with type \p T. CharUnits getAlignOfGlobalVarInChars(QualType T) const; - /// \brief Return a conservative estimate of the alignment of the specified + /// Return a conservative estimate of the alignment of the specified /// decl \p D. /// /// \pre \p D must not be a bitfield type, as bitfields do not have a valid @@ -2102,12 +2102,12 @@ /// pointers and large arrays get extra alignment. CharUnits getDeclAlign(const Decl *D, bool ForAlignof = false) const; - /// \brief Get or compute information about the layout of the specified + /// Get or compute information about the layout of the specified /// record (struct/union/class) \p D, which indicates its size and field /// position information. const ASTRecordLayout &getASTRecordLayout(const RecordDecl *D) const; - /// \brief Get or compute information about the layout of the specified + /// Get or compute information about the layout of the specified /// Objective-C interface. const ASTRecordLayout &getASTObjCInterfaceLayout(const ObjCInterfaceDecl *D) const; @@ -2115,14 +2115,14 @@ void DumpRecordLayout(const RecordDecl *RD, raw_ostream &OS, bool Simple = false) const; - /// \brief Get or compute information about the layout of the specified + /// Get or compute information about the layout of the specified /// Objective-C implementation. /// /// This may differ from the interface if synthesized ivars are present. const ASTRecordLayout & getASTObjCImplementationLayout(const ObjCImplementationDecl *D) const; - /// \brief Get our current best idea for the key function of the + /// Get our current best idea for the key function of the /// given record decl, or nullptr if there isn't one. /// /// The key function is, according to the Itanium C++ ABI section 5.2.3: @@ -2134,7 +2134,7 @@ /// the result of this computation can change. const CXXMethodDecl *getCurrentKeyFunction(const CXXRecordDecl *RD); - /// \brief Observe that the given method cannot be a key function. + /// Observe that the given method cannot be a key function. /// Checks the key-function cache for the method's class and clears it /// if matches the given declaration. /// @@ -2176,7 +2176,7 @@ void CollectInheritedProtocols(const Decl *CDecl, llvm::SmallPtrSet &Protocols); - /// \brief Return true if the specified type has unique object representations + /// Return true if the specified type has unique object representations /// according to (C++17 [meta.unary.prop]p9) bool hasUniqueObjectRepresentations(QualType Ty) const; @@ -2184,7 +2184,7 @@ // Type Operators //===--------------------------------------------------------------------===// - /// \brief Return the canonical (structural) type corresponding to the + /// Return the canonical (structural) type corresponding to the /// specified potentially non-canonical type \p T. /// /// The non-canonical version of a type may have many "decorated" versions of @@ -2200,14 +2200,14 @@ return T->getCanonicalTypeInternal().getTypePtr(); } - /// \brief Return the canonical parameter type corresponding to the specific + /// Return the canonical parameter type corresponding to the specific /// potentially non-canonical one. /// /// Qualifiers are stripped off, functions are turned into function /// pointers, and arrays decay one level into pointers. CanQualType getCanonicalParamType(QualType T) const; - /// \brief Determine whether the given types \p T1 and \p T2 are equivalent. + /// Determine whether the given types \p T1 and \p T2 are equivalent. bool hasSameType(QualType T1, QualType T2) const { return getCanonicalType(T1) == getCanonicalType(T2); } @@ -2215,7 +2215,7 @@ return getCanonicalType(T1) == getCanonicalType(T2); } - /// \brief Return this type as a completely-unqualified array type, + /// Return this type as a completely-unqualified array type, /// capturing the qualifiers in \p Quals. /// /// This will remove the minimal amount of sugaring from the types, similar @@ -2230,7 +2230,7 @@ /// that corresponds to it. Otherwise, returns T.getUnqualifiedType(). QualType getUnqualifiedArrayType(QualType T, Qualifiers &Quals); - /// \brief Determine whether the given types are equivalent after + /// Determine whether the given types are equivalent after /// cvr-qualifiers have been removed. bool hasSameUnqualifiedType(QualType T1, QualType T2) const { return getCanonicalType(T1).getTypePtr() == @@ -2272,7 +2272,7 @@ bool UnwrapSimilarPointerTypes(QualType &T1, QualType &T2); - /// \brief Retrieves the "canonical" nested name specifier for a + /// Retrieves the "canonical" nested name specifier for a /// given nested name specifier. /// /// The canonical nested name specifier is a nested name specifier @@ -2298,11 +2298,11 @@ NestedNameSpecifier * getCanonicalNestedNameSpecifier(NestedNameSpecifier *NNS) const; - /// \brief Retrieves the default calling convention for the current target. + /// Retrieves the default calling convention for the current target. CallingConv getDefaultCallingConvention(bool IsVariadic, bool IsCXXMethod) const; - /// \brief Retrieves the "canonical" template name that refers to a + /// Retrieves the "canonical" template name that refers to a /// given template. /// /// The canonical template name is the simplest expression that can @@ -2322,11 +2322,11 @@ /// types, values, and templates. TemplateName getCanonicalTemplateName(TemplateName Name) const; - /// \brief Determine whether the given template names refer to the same + /// Determine whether the given template names refer to the same /// template. bool hasSameTemplateName(TemplateName X, TemplateName Y); - /// \brief Retrieve the "canonical" template argument. + /// Retrieve the "canonical" template argument. /// /// The canonical template argument is the simplest template argument /// (which may be a type, value, expression, or declaration) that @@ -2353,33 +2353,33 @@ return dyn_cast_or_null(getAsArrayType(T)); } - /// \brief Return the innermost element type of an array type. + /// Return the innermost element type of an array type. /// /// For example, will return "int" for int[m][n] QualType getBaseElementType(const ArrayType *VAT) const; - /// \brief Return the innermost element type of a type (which needn't + /// Return the innermost element type of a type (which needn't /// actually be an array type). QualType getBaseElementType(QualType QT) const; - /// \brief Return number of constant array elements. + /// Return number of constant array elements. uint64_t getConstantArrayElementCount(const ConstantArrayType *CA) const; - /// \brief Perform adjustment on the parameter type of a function. + /// Perform adjustment on the parameter type of a function. /// /// This routine adjusts the given parameter type @p T to the actual /// parameter type used by semantic analysis (C99 6.7.5.3p[7,8], /// C++ [dcl.fct]p3). The adjusted parameter type is returned. QualType getAdjustedParameterType(QualType T) const; - /// \brief Retrieve the parameter type as adjusted for use in the signature + /// Retrieve the parameter type as adjusted for use in the signature /// of a function, decaying array and function types and removing top-level /// cv-qualifiers. QualType getSignatureParameterType(QualType T) const; QualType getExceptionObjectType(QualType T) const; - /// \brief Return the properly qualified result of decaying the specified + /// Return the properly qualified result of decaying the specified /// array type to a pointer. /// /// This operation is non-trivial when handling typedefs etc. The canonical @@ -2389,35 +2389,35 @@ /// See C99 6.7.5.3p7 and C99 6.3.2.1p3. QualType getArrayDecayedType(QualType T) const; - /// \brief Return the type that \p PromotableType will promote to: C99 + /// Return the type that \p PromotableType will promote to: C99 /// 6.3.1.1p2, assuming that \p PromotableType is a promotable integer type. QualType getPromotedIntegerType(QualType PromotableType) const; - /// \brief Recurses in pointer/array types until it finds an Objective-C + /// Recurses in pointer/array types until it finds an Objective-C /// retainable type and returns its ownership. Qualifiers::ObjCLifetime getInnerObjCOwnership(QualType T) const; - /// \brief Whether this is a promotable bitfield reference according + /// Whether this is a promotable bitfield reference according /// to C99 6.3.1.1p2, bullet 2 (and GCC extensions). /// /// \returns the type this bit-field will promote to, or NULL if no /// promotion occurs. QualType isPromotableBitField(Expr *E) const; - /// \brief Return the highest ranked integer type, see C99 6.3.1.8p1. + /// Return the highest ranked integer type, see C99 6.3.1.8p1. /// /// If \p LHS > \p RHS, returns 1. If \p LHS == \p RHS, returns 0. If /// \p LHS < \p RHS, return -1. int getIntegerTypeOrder(QualType LHS, QualType RHS) const; - /// \brief Compare the rank of the two specified floating point types, + /// Compare the rank of the two specified floating point types, /// ignoring the domain of the type (i.e. 'double' == '_Complex double'). /// /// If \p LHS > \p RHS, returns 1. If \p LHS == \p RHS, returns 0. If /// \p LHS < \p RHS, return -1. int getFloatingTypeOrder(QualType LHS, QualType RHS) const; - /// \brief Return a real floating point or a complex type (based on + /// Return a real floating point or a complex type (based on /// \p typeDomain/\p typeSize). /// /// \param typeDomain a real floating point or complex type. @@ -2548,7 +2548,7 @@ // Integer Values //===--------------------------------------------------------------------===// - /// \brief Make an APSInt of the appropriate width and signedness for the + /// Make an APSInt of the appropriate width and signedness for the /// given \p Value and integer \p Type. llvm::APSInt MakeIntValue(uint64_t Value, QualType Type) const { // If Type is a signed integer type larger than 64 bits, we need to be sure @@ -2563,28 +2563,28 @@ bool isSentinelNullExpr(const Expr *E); - /// \brief Get the implementation of the ObjCInterfaceDecl \p D, or nullptr if + /// Get the implementation of the ObjCInterfaceDecl \p D, or nullptr if /// none exists. ObjCImplementationDecl *getObjCImplementation(ObjCInterfaceDecl *D); - /// \brief Get the implementation of the ObjCCategoryDecl \p D, or nullptr if + /// Get the implementation of the ObjCCategoryDecl \p D, or nullptr if /// none exists. ObjCCategoryImplDecl *getObjCImplementation(ObjCCategoryDecl *D); - /// \brief Return true if there is at least one \@implementation in the TU. + /// Return true if there is at least one \@implementation in the TU. bool AnyObjCImplementation() { return !ObjCImpls.empty(); } - /// \brief Set the implementation of ObjCInterfaceDecl. + /// Set the implementation of ObjCInterfaceDecl. void setObjCImplementation(ObjCInterfaceDecl *IFaceD, ObjCImplementationDecl *ImplD); - /// \brief Set the implementation of ObjCCategoryDecl. + /// Set the implementation of ObjCCategoryDecl. void setObjCImplementation(ObjCCategoryDecl *CatD, ObjCCategoryImplDecl *ImplD); - /// \brief Get the duplicate declaration of a ObjCMethod in the same + /// Get the duplicate declaration of a ObjCMethod in the same /// interface, or null if none exists. const ObjCMethodDecl * getObjCMethodRedeclaration(const ObjCMethodDecl *MD) const; @@ -2592,19 +2592,19 @@ void setObjCMethodRedeclaration(const ObjCMethodDecl *MD, const ObjCMethodDecl *Redecl); - /// \brief Returns the Objective-C interface that \p ND belongs to if it is + /// Returns the Objective-C interface that \p ND belongs to if it is /// an Objective-C method/property/ivar etc. that is part of an interface, /// otherwise returns null. const ObjCInterfaceDecl *getObjContainingInterface(const NamedDecl *ND) const; - /// \brief Set the copy inialization expression of a block var decl. + /// Set the copy inialization expression of a block var decl. void setBlockVarCopyInits(VarDecl*VD, Expr* Init); - /// \brief Get the copy initialization expression of the VarDecl \p VD, or + /// Get the copy initialization expression of the VarDecl \p VD, or /// nullptr if none exists. Expr *getBlockVarCopyInits(const VarDecl* VD); - /// \brief Allocate an uninitialized TypeSourceInfo. + /// Allocate an uninitialized TypeSourceInfo. /// /// The caller should initialize the memory held by TypeSourceInfo using /// the TypeLoc wrappers. @@ -2617,14 +2617,14 @@ /// should be calculated based on the type. TypeSourceInfo *CreateTypeSourceInfo(QualType T, unsigned Size = 0) const; - /// \brief Allocate a TypeSourceInfo where all locations have been + /// Allocate a TypeSourceInfo where all locations have been /// initialized to a given location, which defaults to the empty /// location. TypeSourceInfo * getTrivialTypeSourceInfo(QualType T, SourceLocation Loc = SourceLocation()) const; - /// \brief Add a deallocation callback that will be invoked when the + /// Add a deallocation callback that will be invoked when the /// ASTContext is destroyed. /// /// \param Callback A callback function that will be invoked on destruction. @@ -2646,7 +2646,7 @@ GVALinkage GetGVALinkageForFunction(const FunctionDecl *FD) const; GVALinkage GetGVALinkageForVariable(const VarDecl *VD); - /// \brief Determines if the decl can be CodeGen'ed or deserialized from PCH + /// Determines if the decl can be CodeGen'ed or deserialized from PCH /// lazily, only when used; this is only relevant for function or file scoped /// var definitions. /// @@ -2654,7 +2654,7 @@ /// it is not used. bool DeclMustBeEmitted(const Decl *D); - /// \brief Visits all versions of a multiversioned function with the passed + /// Visits all versions of a multiversioned function with the passed /// predicate. void forEachMultiversionedFunctionVersion( const FunctionDecl *FD, @@ -2680,21 +2680,21 @@ void setStaticLocalNumber(const VarDecl *VD, unsigned Number); unsigned getStaticLocalNumber(const VarDecl *VD) const; - /// \brief Retrieve the context for computing mangling numbers in the given + /// Retrieve the context for computing mangling numbers in the given /// DeclContext. MangleNumberingContext &getManglingNumberContext(const DeclContext *DC); std::unique_ptr createMangleNumberingContext() const; - /// \brief Used by ParmVarDecl to store on the side the + /// Used by ParmVarDecl to store on the side the /// index of the parameter when it exceeds the size of the normal bitfield. void setParameterIndex(const ParmVarDecl *D, unsigned index); - /// \brief Used by ParmVarDecl to retrieve on the side the + /// Used by ParmVarDecl to retrieve on the side the /// index of the parameter when it exceeds the size of the normal bitfield. unsigned getParameterIndex(const ParmVarDecl *D) const; - /// \brief Get the storage for the constant value of a materialized temporary + /// Get the storage for the constant value of a materialized temporary /// of static storage duration. APValue *getMaterializedTemporaryValue(const MaterializeTemporaryExpr *E, bool MayCreate); @@ -2703,50 +2703,50 @@ // Statistics //===--------------------------------------------------------------------===// - /// \brief The number of implicitly-declared default constructors. + /// The number of implicitly-declared default constructors. static unsigned NumImplicitDefaultConstructors; - /// \brief The number of implicitly-declared default constructors for + /// The number of implicitly-declared default constructors for /// which declarations were built. static unsigned NumImplicitDefaultConstructorsDeclared; - /// \brief The number of implicitly-declared copy constructors. + /// The number of implicitly-declared copy constructors. static unsigned NumImplicitCopyConstructors; - /// \brief The number of implicitly-declared copy constructors for + /// The number of implicitly-declared copy constructors for /// which declarations were built. static unsigned NumImplicitCopyConstructorsDeclared; - /// \brief The number of implicitly-declared move constructors. + /// The number of implicitly-declared move constructors. static unsigned NumImplicitMoveConstructors; - /// \brief The number of implicitly-declared move constructors for + /// The number of implicitly-declared move constructors for /// which declarations were built. static unsigned NumImplicitMoveConstructorsDeclared; - /// \brief The number of implicitly-declared copy assignment operators. + /// The number of implicitly-declared copy assignment operators. static unsigned NumImplicitCopyAssignmentOperators; - /// \brief The number of implicitly-declared copy assignment operators for + /// The number of implicitly-declared copy assignment operators for /// which declarations were built. static unsigned NumImplicitCopyAssignmentOperatorsDeclared; - /// \brief The number of implicitly-declared move assignment operators. + /// The number of implicitly-declared move assignment operators. static unsigned NumImplicitMoveAssignmentOperators; - /// \brief The number of implicitly-declared move assignment operators for + /// The number of implicitly-declared move assignment operators for /// which declarations were built. static unsigned NumImplicitMoveAssignmentOperatorsDeclared; - /// \brief The number of implicitly-declared destructors. + /// The number of implicitly-declared destructors. static unsigned NumImplicitDestructors; - /// \brief The number of implicitly-declared destructors for which + /// The number of implicitly-declared destructors for which /// declarations were built. static unsigned NumImplicitDestructorsDeclared; public: - /// \brief Initialize built-in types. + /// Initialize built-in types. /// /// This routine may only be invoked once for a given ASTContext object. /// It is normally invoked after ASTContext construction. @@ -2783,7 +2783,7 @@ QualType T, std::string& S, bool Extended) const; - /// \brief Returns true if this is an inline-initialized static data member + /// Returns true if this is an inline-initialized static data member /// which is treated as a definition for MSVC compatibility. bool isMSStaticDataMemberInlineDefinition(const VarDecl *VD) const; @@ -2801,7 +2801,7 @@ Strong }; - /// \brief Determine whether a definition of this inline variable should + /// Determine whether a definition of this inline variable should /// be treated as a weak or strong definition. For compatibility with /// C++14 and before, for a constexpr static data member, if there is an /// out-of-line declaration of the member, we may promote it from weak to @@ -2817,7 +2817,7 @@ getObjCLayout(const ObjCInterfaceDecl *D, const ObjCImplementationDecl *Impl) const; - /// \brief A set of deallocations that should be performed when the + /// A set of deallocations that should be performed when the /// ASTContext is destroyed. // FIXME: We really should have a better mechanism in the ASTContext to // manage running destructors for types which do variable sized allocation @@ -2868,13 +2868,13 @@ llvm::StringMap SectionInfos; }; -/// \brief Utility function for constructing a nullary selector. +/// Utility function for constructing a nullary selector. inline Selector GetNullarySelector(StringRef name, ASTContext &Ctx) { IdentifierInfo* II = &Ctx.Idents.get(name); return Ctx.Selectors.getSelector(0, &II); } -/// \brief Utility function for constructing an unary selector. +/// Utility function for constructing an unary selector. inline Selector GetUnarySelector(StringRef name, ASTContext &Ctx) { IdentifierInfo* II = &Ctx.Idents.get(name); return Ctx.Selectors.getSelector(1, &II); @@ -2884,7 +2884,7 @@ // operator new and delete aren't allowed inside namespaces. -/// @brief Placement new for using the ASTContext's allocator. +/// Placement new for using the ASTContext's allocator. /// /// This placement form of operator new uses the ASTContext's allocator for /// obtaining memory. @@ -2917,7 +2917,7 @@ return C.Allocate(Bytes, Alignment); } -/// @brief Placement delete companion to the new above. +/// Placement delete companion to the new above. /// /// This operator is just a companion to the new above. There is no way of /// invoking it directly; see the new operator for more details. This operator @@ -2955,7 +2955,7 @@ return C.Allocate(Bytes, Alignment); } -/// @brief Placement delete[] companion to the new[] above. +/// Placement delete[] companion to the new[] above. /// /// This operator is just a companion to the new[] above. There is no way of /// invoking it directly; see the new[] operator for more details. This operator @@ -2965,7 +2965,7 @@ C.Deallocate(Ptr); } -/// \brief Create the representation of a LazyGenerationalUpdatePtr. +/// Create the representation of a LazyGenerationalUpdatePtr. template typename clang::LazyGenerationalUpdatePtr::ValueType Index: cfe/trunk/include/clang/AST/ASTDiagnostic.h =================================================================== --- cfe/trunk/include/clang/AST/ASTDiagnostic.h +++ cfe/trunk/include/clang/AST/ASTDiagnostic.h @@ -24,7 +24,7 @@ }; } // end namespace diag - /// \brief DiagnosticsEngine argument formatting function for diagnostics that + /// DiagnosticsEngine argument formatting function for diagnostics that /// involve AST nodes. /// /// This function formats diagnostic arguments for various AST nodes, Index: cfe/trunk/include/clang/AST/ASTFwd.h =================================================================== --- cfe/trunk/include/clang/AST/ASTFwd.h +++ cfe/trunk/include/clang/AST/ASTFwd.h @@ -8,7 +8,7 @@ //===--------------------------------------------------------------===// /// /// \file -/// \brief Forward declaration of all AST node types. +/// Forward declaration of all AST node types. /// //===-------------------------------------------------------------===// Index: cfe/trunk/include/clang/AST/ASTImporter.h =================================================================== --- cfe/trunk/include/clang/AST/ASTImporter.h +++ cfe/trunk/include/clang/AST/ASTImporter.h @@ -43,7 +43,7 @@ class TypeSourceInfo; class Attr; - /// \brief Imports selected nodes from one AST context into another context, + /// Imports selected nodes from one AST context into another context, /// merging AST nodes where appropriate. class ASTImporter { public: @@ -52,45 +52,45 @@ llvm::DenseMap; private: - /// \brief The contexts we're importing to and from. + /// The contexts we're importing to and from. ASTContext &ToContext, &FromContext; - /// \brief The file managers we're importing to and from. + /// The file managers we're importing to and from. FileManager &ToFileManager, &FromFileManager; - /// \brief Whether to perform a minimal import. + /// Whether to perform a minimal import. bool Minimal; - /// \brief Whether the last diagnostic came from the "from" context. + /// Whether the last diagnostic came from the "from" context. bool LastDiagFromFrom = false; - /// \brief Mapping from the already-imported types in the "from" context + /// Mapping from the already-imported types in the "from" context /// to the corresponding types in the "to" context. llvm::DenseMap ImportedTypes; - /// \brief Mapping from the already-imported declarations in the "from" + /// Mapping from the already-imported declarations in the "from" /// context to the corresponding declarations in the "to" context. llvm::DenseMap ImportedDecls; - /// \brief Mapping from the already-imported statements in the "from" + /// Mapping from the already-imported statements in the "from" /// context to the corresponding statements in the "to" context. llvm::DenseMap ImportedStmts; - /// \brief Mapping from the already-imported FileIDs in the "from" source + /// Mapping from the already-imported FileIDs in the "from" source /// manager to the corresponding FileIDs in the "to" source manager. llvm::DenseMap ImportedFileIDs; - /// \brief Mapping from the already-imported CXXBasesSpecifier in + /// Mapping from the already-imported CXXBasesSpecifier in /// the "from" source manager to the corresponding CXXBasesSpecifier /// in the "to" source manager. ImportedCXXBaseSpecifierMap ImportedCXXBaseSpecifiers; - /// \brief Declaration (from, to) pairs that are known not to be equivalent + /// Declaration (from, to) pairs that are known not to be equivalent /// (which we have already complained about). NonEquivalentDeclSet NonEquivalentDecls; public: - /// \brief Create a new AST importer. + /// Create a new AST importer. /// /// \param ToContext The context we'll be importing into. /// @@ -109,31 +109,31 @@ virtual ~ASTImporter(); - /// \brief Whether the importer will perform a minimal import, creating + /// Whether the importer will perform a minimal import, creating /// to-be-completed forward declarations when possible. bool isMinimalImport() const { return Minimal; } - /// \brief Import the given type from the "from" context into the "to" + /// Import the given type from the "from" context into the "to" /// context. /// /// \returns the equivalent type in the "to" context, or a NULL type if /// an error occurred. QualType Import(QualType FromT); - /// \brief Import the given type source information from the + /// Import the given type source information from the /// "from" context into the "to" context. /// /// \returns the equivalent type source information in the "to" /// context, or NULL if an error occurred. TypeSourceInfo *Import(TypeSourceInfo *FromTSI); - /// \brief Import the given attribute from the "from" context into the + /// Import the given attribute from the "from" context into the /// "to" context. /// /// \returns the equivalent attribute in the "to" context. Attr *Import(const Attr *FromAttr); - /// \brief Import the given declaration from the "from" context into the + /// Import the given declaration from the "from" context into the /// "to" context. /// /// \returns the equivalent declaration in the "to" context, or a NULL type @@ -143,110 +143,110 @@ return Import(const_cast(FromD)); } - /// \brief Return the copy of the given declaration in the "to" context if + /// Return the copy of the given declaration in the "to" context if /// it has already been imported from the "from" context. Otherwise return /// NULL. Decl *GetAlreadyImportedOrNull(Decl *FromD); - /// \brief Import the given declaration context from the "from" + /// Import the given declaration context from the "from" /// AST context into the "to" AST context. /// /// \returns the equivalent declaration context in the "to" /// context, or a NULL type if an error occurred. DeclContext *ImportContext(DeclContext *FromDC); - /// \brief Import the given expression from the "from" context into the + /// Import the given expression from the "from" context into the /// "to" context. /// /// \returns the equivalent expression in the "to" context, or NULL if /// an error occurred. Expr *Import(Expr *FromE); - /// \brief Import the given statement from the "from" context into the + /// Import the given statement from the "from" context into the /// "to" context. /// /// \returns the equivalent statement in the "to" context, or NULL if /// an error occurred. Stmt *Import(Stmt *FromS); - /// \brief Import the given nested-name-specifier from the "from" + /// Import the given nested-name-specifier from the "from" /// context into the "to" context. /// /// \returns the equivalent nested-name-specifier in the "to" /// context, or NULL if an error occurred. NestedNameSpecifier *Import(NestedNameSpecifier *FromNNS); - /// \brief Import the given nested-name-specifier from the "from" + /// Import the given nested-name-specifier from the "from" /// context into the "to" context. /// /// \returns the equivalent nested-name-specifier in the "to" /// context. NestedNameSpecifierLoc Import(NestedNameSpecifierLoc FromNNS); - /// \brief Import the goven template name from the "from" context into the + /// Import the goven template name from the "from" context into the /// "to" context. TemplateName Import(TemplateName From); - /// \brief Import the given source location from the "from" context into + /// Import the given source location from the "from" context into /// the "to" context. /// /// \returns the equivalent source location in the "to" context, or an /// invalid source location if an error occurred. SourceLocation Import(SourceLocation FromLoc); - /// \brief Import the given source range from the "from" context into + /// Import the given source range from the "from" context into /// the "to" context. /// /// \returns the equivalent source range in the "to" context, or an /// invalid source location if an error occurred. SourceRange Import(SourceRange FromRange); - /// \brief Import the given declaration name from the "from" + /// Import the given declaration name from the "from" /// context into the "to" context. /// /// \returns the equivalent declaration name in the "to" context, /// or an empty declaration name if an error occurred. DeclarationName Import(DeclarationName FromName); - /// \brief Import the given identifier from the "from" context + /// Import the given identifier from the "from" context /// into the "to" context. /// /// \returns the equivalent identifier in the "to" context. IdentifierInfo *Import(const IdentifierInfo *FromId); - /// \brief Import the given Objective-C selector from the "from" + /// Import the given Objective-C selector from the "from" /// context into the "to" context. /// /// \returns the equivalent selector in the "to" context. Selector Import(Selector FromSel); - /// \brief Import the given file ID from the "from" context into the + /// Import the given file ID from the "from" context into the /// "to" context. /// /// \returns the equivalent file ID in the source manager of the "to" /// context. FileID Import(FileID); - /// \brief Import the given C++ constructor initializer from the "from" + /// Import the given C++ constructor initializer from the "from" /// context into the "to" context. /// /// \returns the equivalent initializer in the "to" context. CXXCtorInitializer *Import(CXXCtorInitializer *FromInit); - /// \brief Import the given CXXBaseSpecifier from the "from" context into + /// Import the given CXXBaseSpecifier from the "from" context into /// the "to" context. /// /// \returns the equivalent CXXBaseSpecifier in the source manager of the /// "to" context. CXXBaseSpecifier *Import(const CXXBaseSpecifier *FromSpec); - /// \brief Import the definition of the given declaration, including all of + /// Import the definition of the given declaration, including all of /// the declarations it contains. /// /// This routine is intended to be used void ImportDefinition(Decl *From); - /// \brief Cope with a name conflict when importing a declaration into the + /// Cope with a name conflict when importing a declaration into the /// given context. /// /// This routine is invoked whenever there is a name conflict while @@ -278,41 +278,41 @@ NamedDecl **Decls, unsigned NumDecls); - /// \brief Retrieve the context that AST nodes are being imported into. + /// Retrieve the context that AST nodes are being imported into. ASTContext &getToContext() const { return ToContext; } - /// \brief Retrieve the context that AST nodes are being imported from. + /// Retrieve the context that AST nodes are being imported from. ASTContext &getFromContext() const { return FromContext; } - /// \brief Retrieve the file manager that AST nodes are being imported into. + /// Retrieve the file manager that AST nodes are being imported into. FileManager &getToFileManager() const { return ToFileManager; } - /// \brief Retrieve the file manager that AST nodes are being imported from. + /// Retrieve the file manager that AST nodes are being imported from. FileManager &getFromFileManager() const { return FromFileManager; } - /// \brief Report a diagnostic in the "to" context. + /// Report a diagnostic in the "to" context. DiagnosticBuilder ToDiag(SourceLocation Loc, unsigned DiagID); - /// \brief Report a diagnostic in the "from" context. + /// Report a diagnostic in the "from" context. DiagnosticBuilder FromDiag(SourceLocation Loc, unsigned DiagID); - /// \brief Return the set of declarations that we know are not equivalent. + /// Return the set of declarations that we know are not equivalent. NonEquivalentDeclSet &getNonEquivalentDecls() { return NonEquivalentDecls; } - /// \brief Called for ObjCInterfaceDecl, ObjCProtocolDecl, and TagDecl. + /// Called for ObjCInterfaceDecl, ObjCProtocolDecl, and TagDecl. /// Mark the Decl as complete, filling it in as much as possible. /// /// \param D A declaration in the "to" context. virtual void CompleteDecl(Decl* D); - /// \brief Note that we have imported the "from" declaration by mapping it + /// Note that we have imported the "from" declaration by mapping it /// to the (potentially-newly-created) "to" declaration. /// /// Subclasses can override this function to observe all of the \c From -> /// \c To declaration mappings as they are imported. virtual Decl *Imported(Decl *From, Decl *To); - /// \brief Called by StructuralEquivalenceContext. If a RecordDecl is + /// Called by StructuralEquivalenceContext. If a RecordDecl is /// being compared to another RecordDecl as part of import, completing the /// other RecordDecl may trigger importation of the first RecordDecl. This /// happens especially for anonymous structs. If the original of the second @@ -320,7 +320,7 @@ /// importation, eliminating this loop. virtual Decl *GetOriginalDecl(Decl *To) { return nullptr; } - /// \brief Determine whether the given types are structurally + /// Determine whether the given types are structurally /// equivalent. bool IsStructurallyEquivalent(QualType From, QualType To, bool Complain = true); Index: cfe/trunk/include/clang/AST/ASTLambda.h =================================================================== --- cfe/trunk/include/clang/AST/ASTLambda.h +++ cfe/trunk/include/clang/AST/ASTLambda.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file provides some common utility functions for processing +/// This file provides some common utility functions for processing /// Lambda related AST Constructs. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/include/clang/AST/ASTMutationListener.h =================================================================== --- cfe/trunk/include/clang/AST/ASTMutationListener.h +++ cfe/trunk/include/clang/AST/ASTMutationListener.h @@ -41,86 +41,86 @@ class VarTemplateDecl; class VarTemplateSpecializationDecl; -/// \brief An abstract interface that should be implemented by listeners +/// An abstract interface that should be implemented by listeners /// that want to be notified when an AST entity gets modified after its /// initial creation. class ASTMutationListener { public: virtual ~ASTMutationListener(); - /// \brief A new TagDecl definition was completed. + /// A new TagDecl definition was completed. virtual void CompletedTagDefinition(const TagDecl *D) { } - /// \brief A new declaration with name has been added to a DeclContext. + /// A new declaration with name has been added to a DeclContext. virtual void AddedVisibleDecl(const DeclContext *DC, const Decl *D) {} - /// \brief An implicit member was added after the definition was completed. + /// An implicit member was added after the definition was completed. virtual void AddedCXXImplicitMember(const CXXRecordDecl *RD, const Decl *D) {} - /// \brief A template specialization (or partial one) was added to the + /// A template specialization (or partial one) was added to the /// template declaration. virtual void AddedCXXTemplateSpecialization(const ClassTemplateDecl *TD, const ClassTemplateSpecializationDecl *D) {} - /// \brief A template specialization (or partial one) was added to the + /// A template specialization (or partial one) was added to the /// template declaration. virtual void AddedCXXTemplateSpecialization(const VarTemplateDecl *TD, const VarTemplateSpecializationDecl *D) {} - /// \brief A template specialization (or partial one) was added to the + /// A template specialization (or partial one) was added to the /// template declaration. virtual void AddedCXXTemplateSpecialization(const FunctionTemplateDecl *TD, const FunctionDecl *D) {} - /// \brief A function's exception specification has been evaluated or + /// A function's exception specification has been evaluated or /// instantiated. virtual void ResolvedExceptionSpec(const FunctionDecl *FD) {} - /// \brief A function's return type has been deduced. + /// A function's return type has been deduced. virtual void DeducedReturnType(const FunctionDecl *FD, QualType ReturnType); - /// \brief A virtual destructor's operator delete has been resolved. + /// A virtual destructor's operator delete has been resolved. virtual void ResolvedOperatorDelete(const CXXDestructorDecl *DD, const FunctionDecl *Delete, Expr *ThisArg) {} - /// \brief An implicit member got a definition. + /// An implicit member got a definition. virtual void CompletedImplicitDefinition(const FunctionDecl *D) {} - /// \brief The instantiation of a templated function or variable was + /// The instantiation of a templated function or variable was /// requested. In particular, the point of instantiation and template /// specialization kind of \p D may have changed. virtual void InstantiationRequested(const ValueDecl *D) {} - /// \brief A templated variable's definition was implicitly instantiated. + /// A templated variable's definition was implicitly instantiated. virtual void VariableDefinitionInstantiated(const VarDecl *D) {} - /// \brief A function template's definition was instantiated. + /// A function template's definition was instantiated. virtual void FunctionDefinitionInstantiated(const FunctionDecl *D) {} - /// \brief A default argument was instantiated. + /// A default argument was instantiated. virtual void DefaultArgumentInstantiated(const ParmVarDecl *D) {} - /// \brief A default member initializer was instantiated. + /// A default member initializer was instantiated. virtual void DefaultMemberInitializerInstantiated(const FieldDecl *D) {} - /// \brief A new objc category class was added for an interface. + /// A new objc category class was added for an interface. virtual void AddedObjCCategoryToInterface(const ObjCCategoryDecl *CatD, const ObjCInterfaceDecl *IFD) {} - /// \brief A declaration is marked used which was not previously marked used. + /// A declaration is marked used which was not previously marked used. /// /// \param D the declaration marked used virtual void DeclarationMarkedUsed(const Decl *D) {} - /// \brief A declaration is marked as OpenMP threadprivate which was not + /// A declaration is marked as OpenMP threadprivate which was not /// previously marked as threadprivate. /// /// \param D the declaration marked OpenMP threadprivate. virtual void DeclarationMarkedOpenMPThreadPrivate(const Decl *D) {} - /// \brief A declaration is marked as OpenMP declaretarget which was not + /// A declaration is marked as OpenMP declaretarget which was not /// previously marked as declaretarget. /// /// \param D the declaration marked OpenMP declaretarget. @@ -128,14 +128,14 @@ virtual void DeclarationMarkedOpenMPDeclareTarget(const Decl *D, const Attr *Attr) {} - /// \brief A definition has been made visible by being redefined locally. + /// A definition has been made visible by being redefined locally. /// /// \param D The definition that was previously not visible. /// \param M The containing module in which the definition was made visible, /// if any. virtual void RedefinedHiddenDefinition(const NamedDecl *D, Module *M) {} - /// \brief An attribute was added to a RecordDecl + /// An attribute was added to a RecordDecl /// /// \param Attr The attribute that was added to the Record /// Index: cfe/trunk/include/clang/AST/ASTTypeTraits.h =================================================================== --- cfe/trunk/include/clang/AST/ASTTypeTraits.h +++ cfe/trunk/include/clang/AST/ASTTypeTraits.h @@ -38,62 +38,62 @@ namespace ast_type_traits { -/// \brief Kind identifier. +/// Kind identifier. /// /// It can be constructed from any node kind and allows for runtime type /// hierarchy checks. /// Use getFromNodeKind() to construct them. class ASTNodeKind { public: - /// \brief Empty identifier. It matches nothing. + /// Empty identifier. It matches nothing. ASTNodeKind() : KindId(NKI_None) {} - /// \brief Construct an identifier for T. + /// Construct an identifier for T. template static ASTNodeKind getFromNodeKind() { return ASTNodeKind(KindToKindId::Id); } /// \{ - /// \brief Construct an identifier for the dynamic type of the node + /// Construct an identifier for the dynamic type of the node static ASTNodeKind getFromNode(const Decl &D); static ASTNodeKind getFromNode(const Stmt &S); static ASTNodeKind getFromNode(const Type &T); /// \} - /// \brief Returns \c true if \c this and \c Other represent the same kind. + /// Returns \c true if \c this and \c Other represent the same kind. bool isSame(ASTNodeKind Other) const { return KindId != NKI_None && KindId == Other.KindId; } - /// \brief Returns \c true only for the default \c ASTNodeKind() + /// Returns \c true only for the default \c ASTNodeKind() bool isNone() const { return KindId == NKI_None; } - /// \brief Returns \c true if \c this is a base kind of (or same as) \c Other. + /// Returns \c true if \c this is a base kind of (or same as) \c Other. /// \param Distance If non-null, used to return the distance between \c this /// and \c Other in the class hierarchy. bool isBaseOf(ASTNodeKind Other, unsigned *Distance = nullptr) const; - /// \brief String representation of the kind. + /// String representation of the kind. StringRef asStringRef() const; - /// \brief Strict weak ordering for ASTNodeKind. + /// Strict weak ordering for ASTNodeKind. bool operator<(const ASTNodeKind &Other) const { return KindId < Other.KindId; } - /// \brief Return the most derived type between \p Kind1 and \p Kind2. + /// Return the most derived type between \p Kind1 and \p Kind2. /// /// Return ASTNodeKind() if they are not related. static ASTNodeKind getMostDerivedType(ASTNodeKind Kind1, ASTNodeKind Kind2); - /// \brief Return the most derived common ancestor between Kind1 and Kind2. + /// Return the most derived common ancestor between Kind1 and Kind2. /// /// Return ASTNodeKind() if they are not related. static ASTNodeKind getMostDerivedCommonAncestor(ASTNodeKind Kind1, ASTNodeKind Kind2); - /// \brief Hooks for using ASTNodeKind as a key in a DenseMap. + /// Hooks for using ASTNodeKind as a key in a DenseMap. struct DenseMapInfo { // ASTNodeKind() is a good empty key because it is represented as a 0. static inline ASTNodeKind getEmptyKey() { return ASTNodeKind(); } @@ -115,7 +115,7 @@ } private: - /// \brief Kind ids. + /// Kind ids. /// /// Includes all possible base and derived kinds. enum NodeKindId { @@ -140,16 +140,16 @@ NKI_NumberOfKinds }; - /// \brief Use getFromNodeKind() to construct the kind. + /// Use getFromNodeKind() to construct the kind. ASTNodeKind(NodeKindId KindId) : KindId(KindId) {} - /// \brief Returns \c true if \c Base is a base kind of (or same as) \c + /// Returns \c true if \c Base is a base kind of (or same as) \c /// Derived. /// \param Distance If non-null, used to return the distance between \c Base /// and \c Derived in the class hierarchy. static bool isBaseOf(NodeKindId Base, NodeKindId Derived, unsigned *Distance); - /// \brief Helper meta-function to convert a kind T to its enum value. + /// Helper meta-function to convert a kind T to its enum value. /// /// This struct is specialized below for all known kinds. template struct KindToKindId { @@ -158,11 +158,11 @@ template struct KindToKindId : KindToKindId {}; - /// \brief Per kind info. + /// Per kind info. struct KindInfo { - /// \brief The id of the parent kind, or None if it has no parent. + /// The id of the parent kind, or None if it has no parent. NodeKindId ParentId; - /// \brief Name of the kind. + /// Name of the kind. const char *Name; }; static const KindInfo AllKindInfo[NKI_NumberOfKinds]; @@ -197,7 +197,7 @@ return OS; } -/// \brief A dynamically typed AST node container. +/// A dynamically typed AST node container. /// /// Stores an AST node in a type safe way. This allows writing code that /// works with different kinds of AST nodes, despite the fact that they don't @@ -211,13 +211,13 @@ /// the supported base types. class DynTypedNode { public: - /// \brief Creates a \c DynTypedNode from \c Node. + /// Creates a \c DynTypedNode from \c Node. template static DynTypedNode create(const T &Node) { return BaseConverter::create(Node); } - /// \brief Retrieve the stored node as type \c T. + /// Retrieve the stored node as type \c T. /// /// Returns NULL if the stored node does not have a type that is /// convertible to \c T. @@ -234,7 +234,7 @@ return BaseConverter::get(NodeKind, Storage.buffer); } - /// \brief Retrieve the stored node as type \c T. + /// Retrieve the stored node as type \c T. /// /// Similar to \c get(), but asserts that the type is what we are expecting. template @@ -244,7 +244,7 @@ ASTNodeKind getNodeKind() const { return NodeKind; } - /// \brief Returns a pointer that identifies the stored AST node. + /// Returns a pointer that identifies the stored AST node. /// /// Note that this is not supported by all AST nodes. For AST nodes /// that don't have a pointer-defined identity inside the AST, this @@ -255,18 +255,18 @@ : nullptr; } - /// \brief Prints the node to the given output stream. + /// Prints the node to the given output stream. void print(llvm::raw_ostream &OS, const PrintingPolicy &PP) const; - /// \brief Dumps the node to the given output stream. + /// Dumps the node to the given output stream. void dump(llvm::raw_ostream &OS, SourceManager &SM) const; - /// \brief For nodes which represent textual entities in the source code, + /// For nodes which represent textual entities in the source code, /// return their SourceRange. For all other nodes, return SourceRange(). SourceRange getSourceRange() const; /// @{ - /// \brief Imposes an order on \c DynTypedNode. + /// Imposes an order on \c DynTypedNode. /// /// Supports comparison of nodes that support memoization. /// FIXME: Implement comparison for other node types (currently @@ -326,7 +326,7 @@ } /// @} - /// \brief Hooks for using DynTypedNode as a key in a DenseMap. + /// Hooks for using DynTypedNode as a key in a DenseMap. struct DenseMapInfo { static inline DynTypedNode getEmptyKey() { DynTypedNode Node; @@ -368,10 +368,10 @@ }; private: - /// \brief Takes care of converting from and to \c T. + /// Takes care of converting from and to \c T. template struct BaseConverter; - /// \brief Converter that uses dyn_cast from a stored BaseT*. + /// Converter that uses dyn_cast from a stored BaseT*. template struct DynCastPtrConverter { static const T *get(ASTNodeKind NodeKind, const char Storage[]) { if (ASTNodeKind::getFromNodeKind().isBaseOf(NodeKind)) @@ -391,7 +391,7 @@ } }; - /// \brief Converter that stores T* (by pointer). + /// Converter that stores T* (by pointer). template struct PtrConverter { static const T *get(ASTNodeKind NodeKind, const char Storage[]) { if (ASTNodeKind::getFromNodeKind().isSame(NodeKind)) @@ -411,7 +411,7 @@ } }; - /// \brief Converter that stores T (by value). + /// Converter that stores T (by value). template struct ValueConverter { static const T *get(ASTNodeKind NodeKind, const char Storage[]) { if (ASTNodeKind::getFromNodeKind().isSame(NodeKind)) @@ -432,7 +432,7 @@ ASTNodeKind NodeKind; - /// \brief Stores the data of the node. + /// Stores the data of the node. /// /// Note that we can store \c Decls, \c Stmts, \c Types, /// \c NestedNameSpecifiers and \c CXXCtorInitializer by pointer as they are Index: cfe/trunk/include/clang/AST/ASTUnresolvedSet.h =================================================================== --- cfe/trunk/include/clang/AST/ASTUnresolvedSet.h +++ cfe/trunk/include/clang/AST/ASTUnresolvedSet.h @@ -26,7 +26,7 @@ class NamedDecl; -/// \brief An UnresolvedSet-like class which uses the ASTContext's allocator. +/// An UnresolvedSet-like class which uses the ASTContext's allocator. class ASTUnresolvedSet { friend class LazyASTUnresolvedSet; @@ -89,7 +89,7 @@ const DeclAccessPair &operator[](unsigned I) const { return Decls[I]; } }; -/// \brief An UnresolvedSet-like class that might not have been loaded from the +/// An UnresolvedSet-like class that might not have been loaded from the /// external AST source yet. class LazyASTUnresolvedSet { mutable ASTUnresolvedSet Impl; Index: cfe/trunk/include/clang/AST/Attr.h =================================================================== --- cfe/trunk/include/clang/AST/Attr.h +++ cfe/trunk/include/clang/AST/Attr.h @@ -96,7 +96,7 @@ bool isInherited() const { return Inherited; } - /// \brief Returns true if the attribute has been implicitly created instead + /// Returns true if the attribute has been implicitly created instead /// of explicitly written by the user. bool isImplicit() const { return Implicit; } void setImplicit(bool I) { Implicit = I; } Index: cfe/trunk/include/clang/AST/Availability.h =================================================================== --- cfe/trunk/include/clang/AST/Availability.h +++ cfe/trunk/include/clang/AST/Availability.h @@ -20,7 +20,7 @@ namespace clang { -/// \brief One specifier in an @available expression. +/// One specifier in an @available expression. /// /// \code /// @available(macos 10.10, *) Index: cfe/trunk/include/clang/AST/CXXInheritance.h =================================================================== --- cfe/trunk/include/clang/AST/CXXInheritance.h +++ cfe/trunk/include/clang/AST/CXXInheritance.h @@ -35,7 +35,7 @@ class ASTContext; class NamedDecl; -/// \brief Represents an element in a path from a derived class to a +/// Represents an element in a path from a derived class to a /// base class. /// /// Each step in the path references the link from a @@ -43,15 +43,15 @@ /// base "number" that identifies which base subobject of the /// original derived class we are referencing. struct CXXBasePathElement { - /// \brief The base specifier that states the link from a derived + /// The base specifier that states the link from a derived /// class to a base class, which will be followed by this base /// path element. const CXXBaseSpecifier *Base; - /// \brief The record decl of the class that the base is a base of. + /// The record decl of the class that the base is a base of. const CXXRecordDecl *Class; - /// \brief Identifies which base class subobject (of type + /// Identifies which base class subobject (of type /// \c Base->getType()) this base path element refers to. /// /// This value is only valid if \c !Base->isVirtual(), because there @@ -60,7 +60,7 @@ int SubobjectNumber; }; -/// \brief Represents a path from a specific derived class +/// Represents a path from a specific derived class /// (which is not represented as part of the path) to a particular /// (direct or indirect) base class subobject. /// @@ -70,14 +70,14 @@ /// subobject is being used. class CXXBasePath : public SmallVector { public: - /// \brief The access along this inheritance path. This is only + /// The access along this inheritance path. This is only /// calculated when recording paths. AS_none is a special value /// used to indicate a path which permits no legal access. AccessSpecifier Access = AS_public; CXXBasePath() = default; - /// \brief The set of declarations found inside this base class + /// The set of declarations found inside this base class /// subobject. DeclContext::lookup_result Decls; @@ -119,7 +119,7 @@ class CXXBasePaths { friend class CXXRecordDecl; - /// \brief The type from which this search originated. + /// The type from which this search originated. CXXRecordDecl *Origin = nullptr; /// Paths - The actual set of paths that can be taken from the @@ -160,7 +160,7 @@ /// DetectedVirtual - The base class that is virtual. const RecordType *DetectedVirtual = nullptr; - /// \brief Array of the declarations that have been found. This + /// Array of the declarations that have been found. This /// array is constructed only if needed, e.g., to iterate over the /// results within LookupResult. std::unique_ptr DeclsFound; @@ -196,53 +196,53 @@ decl_range found_decls(); - /// \brief Determine whether the path from the most-derived type to the + /// Determine whether the path from the most-derived type to the /// given base type is ambiguous (i.e., it refers to multiple subobjects of /// the same base type). bool isAmbiguous(CanQualType BaseType); - /// \brief Whether we are finding multiple paths to detect ambiguities. + /// Whether we are finding multiple paths to detect ambiguities. bool isFindingAmbiguities() const { return FindAmbiguities; } - /// \brief Whether we are recording paths. + /// Whether we are recording paths. bool isRecordingPaths() const { return RecordPaths; } - /// \brief Specify whether we should be recording paths or not. + /// Specify whether we should be recording paths or not. void setRecordingPaths(bool RP) { RecordPaths = RP; } - /// \brief Whether we are detecting virtual bases. + /// Whether we are detecting virtual bases. bool isDetectingVirtual() const { return DetectVirtual; } - /// \brief The virtual base discovered on the path (if we are merely + /// The virtual base discovered on the path (if we are merely /// detecting virtuals). const RecordType* getDetectedVirtual() const { return DetectedVirtual; } - /// \brief Retrieve the type from which this base-paths search + /// Retrieve the type from which this base-paths search /// began CXXRecordDecl *getOrigin() const { return Origin; } void setOrigin(CXXRecordDecl *Rec) { Origin = Rec; } - /// \brief Clear the base-paths results. + /// Clear the base-paths results. void clear(); - /// \brief Swap this data structure's contents with another CXXBasePaths + /// Swap this data structure's contents with another CXXBasePaths /// object. void swap(CXXBasePaths &Other); }; -/// \brief Uniquely identifies a virtual method within a class +/// Uniquely identifies a virtual method within a class /// hierarchy by the method itself and a class subobject number. struct UniqueVirtualMethod { - /// \brief The overriding virtual method. + /// The overriding virtual method. CXXMethodDecl *Method = nullptr; - /// \brief The subobject in which the overriding virtual method + /// The subobject in which the overriding virtual method /// resides. unsigned Subobject = 0; - /// \brief The virtual base class subobject of which this overridden + /// The virtual base class subobject of which this overridden /// virtual method is a part. Note that this records the closest /// derived virtual base class subobject. const CXXRecordDecl *InVirtualSubobject = nullptr; @@ -266,7 +266,7 @@ } }; -/// \brief The set of methods that override a given virtual method in +/// The set of methods that override a given virtual method in /// each subobject where it occurs. /// /// The first part of the pair is the subobject in which the @@ -310,7 +310,7 @@ void replaceAll(UniqueVirtualMethod Overriding); }; -/// \brief A mapping from each virtual member function to its set of +/// A mapping from each virtual member function to its set of /// final overriders. /// /// Within a class hierarchy for a given derived class, each virtual @@ -364,7 +364,7 @@ class CXXFinalOverriderMap : public llvm::MapVector {}; -/// \brief A set of all the primary bases for a class. +/// A set of all the primary bases for a class. class CXXIndirectPrimaryBaseSet : public llvm::SmallSet {}; Index: cfe/trunk/include/clang/AST/CanonicalType.h =================================================================== --- cfe/trunk/include/clang/AST/CanonicalType.h +++ cfe/trunk/include/clang/AST/CanonicalType.h @@ -44,7 +44,7 @@ // Canonical, qualified type template //----------------------------------------------------------------------------// -/// \brief Represents a canonical, potentially-qualified type. +/// Represents a canonical, potentially-qualified type. /// /// The CanQual template is a lightweight smart pointer that provides access /// to the canonical representation of a type, where all typedefs and other @@ -64,35 +64,35 @@ /// a call to ASTContext::getCanonicalType(). template class CanQual { - /// \brief The actual, canonical type. + /// The actual, canonical type. QualType Stored; public: - /// \brief Constructs a NULL canonical type. + /// Constructs a NULL canonical type. CanQual() = default; - /// \brief Converting constructor that permits implicit upcasting of + /// Converting constructor that permits implicit upcasting of /// canonical type pointers. template CanQual(const CanQual &Other, typename std::enable_if::value, int>::type = 0); - /// \brief Retrieve the underlying type pointer, which refers to a + /// Retrieve the underlying type pointer, which refers to a /// canonical type. /// /// The underlying pointer must not be nullptr. const T *getTypePtr() const { return cast(Stored.getTypePtr()); } - /// \brief Retrieve the underlying type pointer, which refers to a + /// Retrieve the underlying type pointer, which refers to a /// canonical type, or nullptr. const T *getTypePtrOrNull() const { return cast_or_null(Stored.getTypePtrOrNull()); } - /// \brief Implicit conversion to a qualified type. + /// Implicit conversion to a qualified type. operator QualType() const { return Stored; } - /// \brief Implicit conversion to bool. + /// Implicit conversion to bool. explicit operator bool() const { return !isNull(); } bool isNull() const { @@ -101,7 +101,7 @@ SplitQualType split() const { return Stored.split(); } - /// \brief Retrieve a canonical type pointer with a different static type, + /// Retrieve a canonical type pointer with a different static type, /// upcasting or downcasting as needed. /// /// The getAs() function is typically used to try to downcast to a @@ -122,17 +122,17 @@ template CanProxy castAs() const; - /// \brief Overloaded arrow operator that produces a canonical type + /// Overloaded arrow operator that produces a canonical type /// proxy. CanProxy operator->() const; - /// \brief Retrieve all qualifiers. + /// Retrieve all qualifiers. Qualifiers getQualifiers() const { return Stored.getLocalQualifiers(); } - /// \brief Retrieve the const/volatile/restrict qualifiers. + /// Retrieve the const/volatile/restrict qualifiers. unsigned getCVRQualifiers() const { return Stored.getLocalCVRQualifiers(); } - /// \brief Determines whether this type has any qualifiers + /// Determines whether this type has any qualifiers bool hasQualifiers() const { return Stored.hasLocalQualifiers(); } bool isConstQualified() const { @@ -147,45 +147,45 @@ return Stored.isLocalRestrictQualified(); } - /// \brief Determines if this canonical type is furthermore + /// Determines if this canonical type is furthermore /// canonical as a parameter. The parameter-canonicalization /// process decays arrays to pointers and drops top-level qualifiers. bool isCanonicalAsParam() const { return Stored.isCanonicalAsParam(); } - /// \brief Retrieve the unqualified form of this type. + /// Retrieve the unqualified form of this type. CanQual getUnqualifiedType() const; - /// \brief Retrieves a version of this type with const applied. + /// Retrieves a version of this type with const applied. /// Note that this does not always yield a canonical type. QualType withConst() const { return Stored.withConst(); } - /// \brief Determines whether this canonical type is more qualified than + /// Determines whether this canonical type is more qualified than /// the @p Other canonical type. bool isMoreQualifiedThan(CanQual Other) const { return Stored.isMoreQualifiedThan(Other.Stored); } - /// \brief Determines whether this canonical type is at least as qualified as + /// Determines whether this canonical type is at least as qualified as /// the @p Other canonical type. bool isAtLeastAsQualifiedAs(CanQual Other) const { return Stored.isAtLeastAsQualifiedAs(Other.Stored); } - /// \brief If the canonical type is a reference type, returns the type that + /// If the canonical type is a reference type, returns the type that /// it refers to; otherwise, returns the type itself. CanQual getNonReferenceType() const; - /// \brief Retrieve the internal representation of this canonical type. + /// Retrieve the internal representation of this canonical type. void *getAsOpaquePtr() const { return Stored.getAsOpaquePtr(); } - /// \brief Construct a canonical type from its internal representation. + /// Construct a canonical type from its internal representation. static CanQual getFromOpaquePtr(void *Ptr); - /// \brief Builds a canonical type from a QualType. + /// Builds a canonical type from a QualType. /// /// This routine is inherently unsafe, because it requires the user to /// ensure that the given type is a canonical type with the correct @@ -209,7 +209,7 @@ return x.getAsOpaquePtr() != y.getAsOpaquePtr(); } -/// \brief Represents a canonical, potentially-qualified type. +/// Represents a canonical, potentially-qualified type. using CanQualType = CanQual; inline CanQualType Type::getCanonicalTypeUnqualified() const { @@ -234,7 +234,7 @@ #define LLVM_CLANG_CANPROXY_SIMPLE_ACCESSOR(Type, Accessor) \ Type Accessor() const { return this->getTypePtr()->Accessor(); } -/// \brief Base class of all canonical proxy types, which is responsible for +/// Base class of all canonical proxy types, which is responsible for /// storing the underlying canonical type and providing basic conversions. template class CanProxyBase { @@ -242,10 +242,10 @@ CanQual Stored; public: - /// \brief Retrieve the pointer to the underlying Type + /// Retrieve the pointer to the underlying Type const T *getTypePtr() const { return Stored.getTypePtr(); } - /// \brief Implicit conversion to the underlying pointer. + /// Implicit conversion to the underlying pointer. /// /// Also provides the ability to use canonical type proxies in a Boolean // context,e.g., @@ -254,7 +254,7 @@ /// @endcode operator const T*() const { return this->Stored.getTypePtrOrNull(); } - /// \brief Try to convert the given canonical type to a specific structural + /// Try to convert the given canonical type to a specific structural /// type. template CanProxy getAs() const { return this->Stored.template getAs(); @@ -313,7 +313,7 @@ LLVM_CLANG_CANPROXY_SIMPLE_ACCESSOR(bool, isSpecifierType) LLVM_CLANG_CANPROXY_SIMPLE_ACCESSOR(CXXRecordDecl*, getAsCXXRecordDecl) - /// \brief Retrieve the proxy-adaptor type. + /// Retrieve the proxy-adaptor type. /// /// This arrow operator is used when CanProxyAdaptor has been specialized /// for the given type T. In that case, we reference members of the @@ -324,7 +324,7 @@ } }; -/// \brief Replaceable canonical proxy adaptor class that provides the link +/// Replaceable canonical proxy adaptor class that provides the link /// between a canonical type and the accessors of the type. /// /// The CanProxyAdaptor is a replaceable class template that is instantiated @@ -337,7 +337,7 @@ template struct CanProxyAdaptor : CanProxyBase {}; -/// \brief Canonical proxy type returned when retrieving the members of a +/// Canonical proxy type returned when retrieving the members of a /// canonical type or as the result of the @c CanQual::getAs member /// function. /// @@ -347,13 +347,13 @@ template class CanProxy : public CanProxyAdaptor { public: - /// \brief Build a NULL proxy. + /// Build a NULL proxy. CanProxy() = default; - /// \brief Build a proxy to the given canonical type. + /// Build a proxy to the given canonical type. CanProxy(CanQual Stored) { this->Stored = Stored; } - /// \brief Implicit conversion to the stored canonical type. + /// Implicit conversion to the stored canonical type. operator CanQual() const { return this->Stored; } }; @@ -396,7 +396,7 @@ // Canonical proxy adaptors for canonical type nodes. //----------------------------------------------------------------------------// -/// \brief Iterator adaptor that turns an iterator over canonical QualTypes +/// Iterator adaptor that turns an iterator over canonical QualTypes /// into an iterator over CanQualTypes. template struct CanTypeIterator Index: cfe/trunk/include/clang/AST/CommentBriefParser.h =================================================================== --- cfe/trunk/include/clang/AST/CommentBriefParser.h +++ cfe/trunk/include/clang/AST/CommentBriefParser.h @@ -24,7 +24,7 @@ /// /// Due to a variety of comment styles, it considers the following as "a brief /// description", in order of priority: -/// \li a \\brief or \\short command, +/// \li a \or \\short command, /// \li the first paragraph, /// \li a \\result or \\return or \\returns paragraph. class BriefParser { Index: cfe/trunk/include/clang/AST/CommentCommandTraits.h =================================================================== --- cfe/trunk/include/clang/AST/CommentCommandTraits.h +++ cfe/trunk/include/clang/AST/CommentCommandTraits.h @@ -26,7 +26,7 @@ namespace clang { namespace comments { -/// \brief Information about a single command. +/// Information about a single command. /// /// When reordering, adding or removing members please update the corresponding /// TableGen backend. @@ -57,7 +57,7 @@ unsigned IsBlockCommand : 1; /// True if this command is introducing a brief documentation - /// paragraph (\\brief or an alias). + /// paragraph (\or an alias). unsigned IsBriefCommand : 1; /// True if this command is \\returns or an alias. @@ -77,29 +77,29 @@ /// True if this command is \\deprecated or an alias. unsigned IsDeprecatedCommand : 1; - /// \brief True if this is a \\headerfile-like command. + /// True if this is a \\headerfile-like command. unsigned IsHeaderfileCommand : 1; /// True if we don't want to warn about this command being passed an empty /// paragraph. Meaningful only for block commands. unsigned IsEmptyParagraphAllowed : 1; - /// \brief True if this command is a verbatim-like block command. + /// True if this command is a verbatim-like block command. /// /// A verbatim-like block command eats every character (except line starting /// decorations) until matching end command is seen or comment end is hit. unsigned IsVerbatimBlockCommand : 1; - /// \brief True if this command is an end command for a verbatim-like block. + /// True if this command is an end command for a verbatim-like block. unsigned IsVerbatimBlockEndCommand : 1; - /// \brief True if this command is a verbatim line command. + /// True if this command is a verbatim line command. /// /// A verbatim-like line command eats everything until a newline is seen or /// comment end is hit. unsigned IsVerbatimLineCommand : 1; - /// \brief True if this command contains a declaration for the entity being + /// True if this command contains a declaration for the entity being /// documented. /// /// For example: @@ -108,17 +108,17 @@ /// \endcode unsigned IsDeclarationCommand : 1; - /// \brief True if verbatim-like line command is a function declaration. + /// True if verbatim-like line command is a function declaration. unsigned IsFunctionDeclarationCommand : 1; - /// \brief True if block command is further describing a container API; such + /// True if block command is further describing a container API; such /// as \@coclass, \@classdesign, etc. unsigned IsRecordLikeDetailCommand : 1; - /// \brief True if block command is a container API; such as \@interface. + /// True if block command is a container API; such as \@interface. unsigned IsRecordLikeDeclarationCommand : 1; - /// \brief True if this command is unknown. This \c CommandInfo object was + /// True if this command is unknown. This \c CommandInfo object was /// created during parsing. unsigned IsUnknownCommand : 1; }; Index: cfe/trunk/include/clang/AST/CommentLexer.h =================================================================== --- cfe/trunk/include/clang/AST/CommentLexer.h +++ cfe/trunk/include/clang/AST/CommentLexer.h @@ -52,7 +52,7 @@ }; } // end namespace tok -/// \brief Comment token. +/// Comment token. class Token { friend class Lexer; friend class TextTokenRetokenizer; @@ -217,7 +217,7 @@ void dump(const Lexer &L, const SourceManager &SM) const; }; -/// \brief Comment lexer. +/// Comment lexer. class Lexer { private: Lexer(const Lexer &) = delete; Index: cfe/trunk/include/clang/AST/CommentSema.h =================================================================== --- cfe/trunk/include/clang/AST/CommentSema.h +++ cfe/trunk/include/clang/AST/CommentSema.h @@ -55,7 +55,7 @@ /// Contains a valid value if \c DeclInfo->IsFilled is true. llvm::StringMap TemplateParameterDocs; - /// AST node for the \\brief command and its aliases. + /// AST node for the \command and its aliases. const BlockCommandComment *BriefCommand; /// AST node for the \\headerfile command. @@ -187,7 +187,7 @@ void checkReturnsCommand(const BlockCommandComment *Command); /// Emit diagnostics about duplicate block commands that should be - /// used only once per comment, e.g., \\brief and \\returns. + /// used only once per comment, e.g., \and \\returns. void checkBlockCommandDuplicate(const BlockCommandComment *Command); void checkDeprecatedCommand(const BlockCommandComment *Comment); Index: cfe/trunk/include/clang/AST/ComparisonCategories.h =================================================================== --- cfe/trunk/include/clang/AST/ComparisonCategories.h +++ cfe/trunk/include/clang/AST/ComparisonCategories.h @@ -129,7 +129,7 @@ /// True iff the comparison category is an equality comparison. bool isEquality() const { return !isOrdered(); } - /// \brief True iff the comparison category is a relational comparison. + /// True iff the comparison category is a relational comparison. bool isOrdered() const { using CCK = ComparisonCategoryType; return Kind == CCK::PartialOrdering || Kind == CCK::WeakOrdering || Index: cfe/trunk/include/clang/AST/DataCollection.h =================================================================== --- cfe/trunk/include/clang/AST/DataCollection.h +++ cfe/trunk/include/clang/AST/DataCollection.h @@ -7,7 +7,7 @@ // //===----------------------------------------------------------------------===// /// \file -/// \brief This file declares helper methods for collecting data from AST nodes. +/// This file declares helper methods for collecting data from AST nodes. /// /// To collect data from Stmt nodes, subclass ConstStmtVisitor and include /// StmtDataCollectors.inc after defining the macros that you need. This Index: cfe/trunk/include/clang/AST/Decl.h =================================================================== --- cfe/trunk/include/clang/AST/Decl.h +++ cfe/trunk/include/clang/AST/Decl.h @@ -1232,30 +1232,30 @@ EvaluatedStmt *ensureEvaluatedStmt() const; - /// \brief Attempt to evaluate the value of the initializer attached to this + /// Attempt to evaluate the value of the initializer attached to this /// declaration, and produce notes explaining why it cannot be evaluated or is /// not a constant expression. Returns a pointer to the value if evaluation /// succeeded, 0 otherwise. APValue *evaluateValue() const; APValue *evaluateValue(SmallVectorImpl &Notes) const; - /// \brief Return the already-evaluated value of this variable's + /// Return the already-evaluated value of this variable's /// initializer, or NULL if the value is not yet known. Returns pointer /// to untyped APValue if the value could not be evaluated. APValue *getEvaluatedValue() const; - /// \brief Determines whether it is already known whether the + /// Determines whether it is already known whether the /// initializer is an integral constant expression or not. bool isInitKnownICE() const; - /// \brief Determines whether the initializer is an integral constant + /// Determines whether the initializer is an integral constant /// expression, or in C++11, whether the initializer is a constant /// expression. /// /// \pre isInitKnownICE() bool isInitICE() const; - /// \brief Determine whether the value of the initializer attached to this + /// Determine whether the value of the initializer attached to this /// declaration is an integral constant expression. bool checkInitIsICE() const; @@ -1263,7 +1263,7 @@ VarDeclBits.InitStyle = Style; } - /// \brief The style of initialization for this declaration. + /// The style of initialization for this declaration. /// /// C-style initialization is "int x = 1;". Call-style initialization is /// a C++98 direct-initializer, e.g. "int x(1);". The Init expression will be @@ -1277,18 +1277,18 @@ return static_cast(VarDeclBits.InitStyle); } - /// \brief Whether the initializer is a direct-initializer (list or call). + /// Whether the initializer is a direct-initializer (list or call). bool isDirectInit() const { return getInitStyle() != CInit; } - /// \brief If this definition should pretend to be a declaration. + /// If this definition should pretend to be a declaration. bool isThisDeclarationADemotedDefinition() const { return isa(this) ? false : NonParmVarDeclBits.IsThisDeclarationADemotedDefinition; } - /// \brief This is a definition which should be demoted to a declaration. + /// This is a definition which should be demoted to a declaration. /// /// In some cases (mostly module merging) we can end up with two visible /// definitions one of which needs to be demoted to a declaration to keep @@ -1299,7 +1299,7 @@ NonParmVarDeclBits.IsThisDeclarationADemotedDefinition = 1; } - /// \brief Determine whether this variable is the exception variable in a + /// Determine whether this variable is the exception variable in a /// C++ catch statememt or an Objective-C \@catch statement. bool isExceptionVariable() const { return isa(this) ? false : NonParmVarDeclBits.ExceptionVar; @@ -1309,7 +1309,7 @@ NonParmVarDeclBits.ExceptionVar = EV; } - /// \brief Determine whether this local variable can be used with the named + /// Determine whether this local variable can be used with the named /// return value optimization (NRVO). /// /// The named return value optimization (NRVO) works by marking certain @@ -1327,7 +1327,7 @@ NonParmVarDeclBits.NRVOVariable = NRVO; } - /// \brief Determine whether this variable is the for-range-declaration in + /// Determine whether this variable is the for-range-declaration in /// a C++0x for-range statement. bool isCXXForRangeDecl() const { return isa(this) ? false : NonParmVarDeclBits.CXXForRangeDecl; @@ -1337,7 +1337,7 @@ NonParmVarDeclBits.CXXForRangeDecl = FRD; } - /// \brief Determine whether this variable is a for-loop declaration for a + /// Determine whether this variable is a for-loop declaration for a /// for-in statement in Objective-C. bool isObjCForDecl() const { return NonParmVarDeclBits.ObjCForDecl; @@ -1347,7 +1347,7 @@ NonParmVarDeclBits.ObjCForDecl = FRD; } - /// \brief Determine whether this variable is an ARC pseudo-__strong + /// Determine whether this variable is an ARC pseudo-__strong /// variable. A pseudo-__strong variable has a __strong-qualified /// type but does not actually retain the object written into it. /// Generally such variables are also 'const' for safety. @@ -1407,41 +1407,41 @@ NonParmVarDeclBits.PreviousDeclInSameBlockScope = Same; } - /// \brief Retrieve the variable declaration from which this variable could + /// Retrieve the variable declaration from which this variable could /// be instantiated, if it is an instantiation (rather than a non-template). VarDecl *getTemplateInstantiationPattern() const; - /// \brief If this variable is an instantiated static data member of a + /// If this variable is an instantiated static data member of a /// class template specialization, returns the templated static data member /// from which it was instantiated. VarDecl *getInstantiatedFromStaticDataMember() const; - /// \brief If this variable is an instantiation of a variable template or a + /// If this variable is an instantiation of a variable template or a /// static data member of a class template, determine what kind of /// template specialization or instantiation this is. TemplateSpecializationKind getTemplateSpecializationKind() const; - /// \brief If this variable is an instantiation of a variable template or a + /// If this variable is an instantiation of a variable template or a /// static data member of a class template, determine its point of /// instantiation. SourceLocation getPointOfInstantiation() const; - /// \brief If this variable is an instantiation of a static data member of a + /// If this variable is an instantiation of a static data member of a /// class template specialization, retrieves the member specialization /// information. MemberSpecializationInfo *getMemberSpecializationInfo() const; - /// \brief For a static data member that was instantiated from a static + /// For a static data member that was instantiated from a static /// data member of a class template, set the template specialiation kind. void setTemplateSpecializationKind(TemplateSpecializationKind TSK, SourceLocation PointOfInstantiation = SourceLocation()); - /// \brief Specify that this variable is an instantiation of the + /// Specify that this variable is an instantiation of the /// static data member VD. void setInstantiationOfStaticDataMember(VarDecl *VD, TemplateSpecializationKind TSK); - /// \brief Retrieves the variable template that is described by this + /// Retrieves the variable template that is described by this /// variable declaration. /// /// Every variable template is represented as a VarTemplateDecl and a @@ -1613,7 +1613,7 @@ void setDefaultArg(Expr *defarg); - /// \brief Retrieve the source range that covers the entire default + /// Retrieve the source range that covers the entire default /// argument. SourceRange getDefaultArgRange() const; void setUninstantiatedDefaultArg(Expr *arg); @@ -1661,7 +1661,7 @@ QualType getOriginalType() const; - /// \brief Determine whether this parameter is actually a function + /// Determine whether this parameter is actually a function /// parameter pack. bool isParameterPack() const; @@ -1709,7 +1709,7 @@ class FunctionDecl : public DeclaratorDecl, public DeclContext, public Redeclarable { public: - /// \brief The kind of templated function a FunctionDecl can be. + /// The kind of templated function a FunctionDecl can be. enum TemplatedKind { TK_NonTemplate, TK_FunctionTemplate, @@ -1757,10 +1757,10 @@ unsigned IsConstexpr : 1; unsigned InstantiationIsPending : 1; - /// \brief Indicates if the function uses __try. + /// Indicates if the function uses __try. unsigned UsesSEHTry : 1; - /// \brief Indicates if the function was a definition but its body was + /// Indicates if the function was a definition but its body was /// skipped. unsigned HasSkippedBody : 1; @@ -1786,7 +1786,7 @@ unsigned HasODRHash : 1; unsigned ODRHash; - /// \brief End part of this FunctionDecl's source range. + /// End part of this FunctionDecl's source range. /// /// We could compute the full range in getSourceRange(). However, when we're /// dealing with a function definition deserialized from a PCH/AST file, @@ -1795,7 +1795,7 @@ /// EndRangeLoc. SourceLocation EndRangeLoc; - /// \brief The template or declaration that this declaration + /// The template or declaration that this declaration /// describes or was instantiated from, respectively. /// /// For non-templates, this value will be NULL. For function @@ -1817,7 +1817,7 @@ /// the DeclaratorDecl base class. DeclarationNameLoc DNLoc; - /// \brief Specify that this function declaration is actually a function + /// Specify that this function declaration is actually a function /// template specialization. /// /// \param C the ASTContext. @@ -1846,7 +1846,7 @@ const TemplateArgumentListInfo *TemplateArgsAsWritten, SourceLocation PointOfInstantiation); - /// \brief Specify that this record is an instantiation of the + /// Specify that this record is an instantiation of the /// member function FD. void setInstantiationOfMemberFunction(ASTContext &C, FunctionDecl *FD, TemplateSpecializationKind TSK); @@ -1980,7 +1980,7 @@ return isDefined(Definition); } - /// \brief Get the definition for this declaration. + /// Get the definition for this declaration. FunctionDecl *getDefinition() { const FunctionDecl *Definition; if (isDefined(Definition)) @@ -2064,7 +2064,7 @@ bool hasImplicitReturnZero() const { return HasImplicitReturnZero; } void setHasImplicitReturnZero(bool IRZ) { HasImplicitReturnZero = IRZ; } - /// \brief Whether this function has a prototype, either because one + /// Whether this function has a prototype, either because one /// was explicitly written or because it was "inherited" by merging /// a declaration without a prototype with a declaration that has a /// prototype. @@ -2074,7 +2074,7 @@ bool hasWrittenPrototype() const { return HasWrittenPrototype; } - /// \brief Whether this function inherited its prototype from a + /// Whether this function inherited its prototype from a /// previous declaration. bool hasInheritedPrototype() const { return HasInheritedPrototype; } void setHasInheritedPrototype(bool P = true) { HasInheritedPrototype = P; } @@ -2083,7 +2083,7 @@ bool isConstexpr() const { return IsConstexpr; } void setConstexpr(bool IC) { IsConstexpr = IC; } - /// \brief Whether the instantiation of this function is pending. + /// Whether the instantiation of this function is pending. /// This bit is set when the decision to instantiate this function is made /// and unset if and when the function body is created. That leaves out /// cases where instantiation did not happen because the template definition @@ -2092,11 +2092,11 @@ bool instantiationIsPending() const { return InstantiationIsPending; } void setInstantiationIsPending(bool IC) { InstantiationIsPending = IC; } - /// \brief Indicates the function uses __try. + /// Indicates the function uses __try. bool usesSEHTry() const { return UsesSEHTry; } void setUsesSEHTry(bool UST) { UsesSEHTry = UST; } - /// \brief Whether this function has been deleted. + /// Whether this function has been deleted. /// /// A function that is "deleted" (via the C++0x "= delete" syntax) /// acts like a normal function, except that it cannot actually be @@ -2119,15 +2119,15 @@ bool isDeletedAsWritten() const { return IsDeleted && !IsDefaulted; } void setDeletedAsWritten(bool D = true) { IsDeleted = D; } - /// \brief Determines whether this function is "main", which is the + /// Determines whether this function is "main", which is the /// entry point into an executable program. bool isMain() const; - /// \brief Determines whether this function is a MSVCRT user defined entry + /// Determines whether this function is a MSVCRT user defined entry /// point. bool isMSVCRTEntryPoint() const; - /// \brief Determines whether this operator new or delete is one + /// Determines whether this operator new or delete is one /// of the reserved global placement operators: /// void *operator new(size_t, void *); /// void *operator new[](size_t, void *); @@ -2142,7 +2142,7 @@ /// This function must be an allocation or deallocation function. bool isReservedGlobalPlacementOperator() const; - /// \brief Determines whether this function is one of the replaceable + /// Determines whether this function is one of the replaceable /// global allocation functions: /// void *operator new(size_t); /// void *operator new(size_t, const std::nothrow_t &) noexcept; @@ -2162,32 +2162,32 @@ /// true through IsAligned. bool isReplaceableGlobalAllocationFunction(bool *IsAligned = nullptr) const; - /// \brief Determine whether this is a destroying operator delete. + /// Determine whether this is a destroying operator delete. bool isDestroyingOperatorDelete() const; /// Compute the language linkage. LanguageLinkage getLanguageLinkage() const; - /// \brief Determines whether this function is a function with + /// Determines whether this function is a function with /// external, C linkage. bool isExternC() const; - /// \brief Determines whether this function's context is, or is nested within, + /// Determines whether this function's context is, or is nested within, /// a C++ extern "C" linkage spec. bool isInExternCContext() const; - /// \brief Determines whether this function's context is, or is nested within, + /// Determines whether this function's context is, or is nested within, /// a C++ extern "C++" linkage spec. bool isInExternCXXContext() const; - /// \brief Determines whether this is a global function. + /// Determines whether this is a global function. bool isGlobal() const; - /// \brief Determines whether this function is known to be 'noreturn', through + /// Determines whether this function is known to be 'noreturn', through /// an attribute on its declaration or its type. bool isNoReturn() const; - /// \brief True if the function was a definition but its body was skipped. + /// True if the function was a definition but its body was skipped. bool hasSkippedBody() const { return HasSkippedBody; } void setHasSkippedBody(bool Skipped = true) { HasSkippedBody = Skipped; } @@ -2259,34 +2259,34 @@ return getType()->getAs()->getReturnType(); } - /// \brief Attempt to compute an informative source range covering the + /// Attempt to compute an informative source range covering the /// function return type. This may omit qualifiers and other information with /// limited representation in the AST. SourceRange getReturnTypeSourceRange() const; - /// \brief Attempt to compute an informative source range covering the + /// Attempt to compute an informative source range covering the /// function exception specification, if any. SourceRange getExceptionSpecSourceRange() const; - /// \brief Determine the type of an expression that calls this function. + /// Determine the type of an expression that calls this function. QualType getCallResultType() const { assert(getType()->getAs() && "Expected a FunctionType!"); return getType()->getAs()->getCallResultType(getASTContext()); } - /// \brief Returns the WarnUnusedResultAttr that is either declared on this + /// Returns the WarnUnusedResultAttr that is either declared on this /// function, or its return type declaration. const Attr *getUnusedResultAttr() const; - /// \brief Returns true if this function or its return type has the + /// Returns true if this function or its return type has the /// warn_unused_result attribute. bool hasUnusedResultAttr() const { return getUnusedResultAttr() != nullptr; } - /// \brief Returns the storage class as written in the source. For the + /// Returns the storage class as written in the source. For the /// computed linkage of symbol, see getLinkage. StorageClass getStorageClass() const { return StorageClass(SClass); } - /// \brief Determine whether the "inline" keyword was specified for this + /// Determine whether the "inline" keyword was specified for this /// function. bool isInlineSpecified() const { return IsInlineSpecified; } @@ -2301,7 +2301,7 @@ IsInline = true; } - /// \brief Determine whether this function should be inlined, because it is + /// Determine whether this function should be inlined, because it is /// either marked "inline" or "constexpr" or is a member function of a class /// that was defined in the class body. bool isInlined() const { return IsInline; } @@ -2322,7 +2322,7 @@ const IdentifierInfo *getLiteralIdentifier() const; - /// \brief If this function is an instantiation of a member function + /// If this function is an instantiation of a member function /// of a class template specialization, retrieves the function from /// which it was instantiated. /// @@ -2345,22 +2345,22 @@ /// declaration returned by getInstantiatedFromMemberFunction(). FunctionDecl *getInstantiatedFromMemberFunction() const; - /// \brief What kind of templated function this is. + /// What kind of templated function this is. TemplatedKind getTemplatedKind() const; - /// \brief If this function is an instantiation of a member function of a + /// If this function is an instantiation of a member function of a /// class template specialization, retrieves the member specialization /// information. MemberSpecializationInfo *getMemberSpecializationInfo() const; - /// \brief Specify that this record is an instantiation of the + /// Specify that this record is an instantiation of the /// member function FD. void setInstantiationOfMemberFunction(FunctionDecl *FD, TemplateSpecializationKind TSK) { setInstantiationOfMemberFunction(getASTContext(), FD, TSK); } - /// \brief Retrieves the function template that is described by this + /// Retrieves the function template that is described by this /// function declaration. /// /// Every function template is represented as a FunctionTemplateDecl @@ -2376,50 +2376,50 @@ void setDescribedFunctionTemplate(FunctionTemplateDecl *Template); - /// \brief Determine whether this function is a function template + /// Determine whether this function is a function template /// specialization. bool isFunctionTemplateSpecialization() const { return getPrimaryTemplate() != nullptr; } - /// \brief Retrieve the class scope template pattern that this function + /// Retrieve the class scope template pattern that this function /// template specialization is instantiated from. FunctionDecl *getClassScopeSpecializationPattern() const; - /// \brief If this function is actually a function template specialization, + /// If this function is actually a function template specialization, /// retrieve information about this function template specialization. /// Otherwise, returns NULL. FunctionTemplateSpecializationInfo *getTemplateSpecializationInfo() const; - /// \brief Determines whether this function is a function template + /// Determines whether this function is a function template /// specialization or a member of a class template specialization that can /// be implicitly instantiated. bool isImplicitlyInstantiable() const; - /// \brief Determines if the given function was instantiated from a + /// Determines if the given function was instantiated from a /// function template. bool isTemplateInstantiation() const; - /// \brief Retrieve the function declaration from which this function could + /// Retrieve the function declaration from which this function could /// be instantiated, if it is an instantiation (rather than a non-template /// or a specialization, for example). FunctionDecl *getTemplateInstantiationPattern() const; - /// \brief Retrieve the primary template that this function template + /// Retrieve the primary template that this function template /// specialization either specializes or was instantiated from. /// /// If this function declaration is not a function template specialization, /// returns NULL. FunctionTemplateDecl *getPrimaryTemplate() const; - /// \brief Retrieve the template arguments used to produce this function + /// Retrieve the template arguments used to produce this function /// template specialization from the primary template. /// /// If this function declaration is not a function template specialization, /// returns NULL. const TemplateArgumentList *getTemplateSpecializationArgs() const; - /// \brief Retrieve the template argument list as written in the sources, + /// Retrieve the template argument list as written in the sources, /// if any. /// /// If this function declaration is not a function template specialization @@ -2429,7 +2429,7 @@ const ASTTemplateArgumentListInfo* getTemplateSpecializationArgsAsWritten() const; - /// \brief Specify that this function declaration is actually a function + /// Specify that this function declaration is actually a function /// template specialization. /// /// \param Template the function template that this function template @@ -2459,7 +2459,7 @@ PointOfInstantiation); } - /// \brief Specifies that this function declaration is actually a + /// Specifies that this function declaration is actually a /// dependent function template specialization. void setDependentTemplateSpecialization(ASTContext &Context, const UnresolvedSetImpl &Templates, @@ -2468,16 +2468,16 @@ DependentFunctionTemplateSpecializationInfo * getDependentSpecializationInfo() const; - /// \brief Determine what kind of template instantiation this function + /// Determine what kind of template instantiation this function /// represents. TemplateSpecializationKind getTemplateSpecializationKind() const; - /// \brief Determine what kind of template instantiation this function + /// Determine what kind of template instantiation this function /// represents. void setTemplateSpecializationKind(TemplateSpecializationKind TSK, SourceLocation PointOfInstantiation = SourceLocation()); - /// \brief Retrieve the (first) point of instantiation of a function template + /// Retrieve the (first) point of instantiation of a function template /// specialization or a member of a class template specialization. /// /// \returns the first point of instantiation, if this function was @@ -2485,17 +2485,17 @@ /// location. SourceLocation getPointOfInstantiation() const; - /// \brief Determine whether this is or was instantiated from an out-of-line + /// Determine whether this is or was instantiated from an out-of-line /// definition of a member function. bool isOutOfLine() const override; - /// \brief Identify a memory copying or setting function. + /// Identify a memory copying or setting function. /// If the given function is a memory copy or setting function, returns /// the corresponding Builtin ID. If the function is not a memory function, /// returns 0. unsigned getMemoryFunctionKind() const; - /// \brief Returns ODRHash of the function. This value is calculated and + /// Returns ODRHash of the function. This value is calculated and /// stored on first call, then the stored value returned on the other calls. unsigned getODRHash(); @@ -2548,7 +2548,7 @@ Expr *BitWidth; }; - /// \brief Storage for either the bit-width, the in-class initializer, or + /// Storage for either the bit-width, the in-class initializer, or /// both (via InitAndBitWidth), or the captured variable length array bound. /// /// If the storage kind is ISK_InClassCopyInit or @@ -2679,20 +2679,20 @@ InitStorage.setPointerAndInt(getBitWidth(), ISK_NoInit); } - /// \brief Determine whether this member captures the variable length array + /// Determine whether this member captures the variable length array /// type. bool hasCapturedVLAType() const { return InitStorage.getInt() == ISK_CapturedVLAType; } - /// \brief Get the captured variable length array type. + /// Get the captured variable length array type. const VariableArrayType *getCapturedVLAType() const { return hasCapturedVLAType() ? static_cast( InitStorage.getPointer()) : nullptr; } - /// \brief Set the captured variable length array type for this field. + /// Set the captured variable length array type for this field. void setCapturedVLAType(const VariableArrayType *VLAType); /// Returns the parent of this field declaration, which @@ -3062,7 +3062,7 @@ // to be used for the (uncommon) case of out-of-line declarations. using ExtInfo = QualifierInfo; - /// \brief If the (out-of-line) tag declaration name + /// If the (out-of-line) tag declaration name /// is qualified, it points to the qualifier info (nns and range); /// otherwise, if the tag declaration is anonymous and it is part of /// a typedef or alias, it points to the TypedefNameDecl (used for mangling); @@ -3106,7 +3106,7 @@ return getMostRecentDecl(); } - /// @brief Completes the definition of this tag declaration. + /// Completes the definition of this tag declaration. /// /// This is a helper function for derived classes. void completeDefinition(); @@ -3153,7 +3153,7 @@ return IsCompleteDefinition; } - /// \brief Return true if this complete decl is + /// Return true if this complete decl is /// required to be complete for some existing use. bool isCompleteDefinitionRequired() const { return IsCompleteDefinitionRequired; @@ -3176,7 +3176,7 @@ IsFreeStanding = isFreeStanding; } - /// \brief Whether this declaration declares a type that is + /// Whether this declaration declares a type that is /// dependent, i.e., a type that somehow depends on template /// parameters. bool isDependentType() const { return isDependentContext(); } @@ -3246,14 +3246,14 @@ void setTypedefNameForAnonDecl(TypedefNameDecl *TDD); - /// \brief Retrieve the nested-name-specifier that qualifies the name of this + /// Retrieve the nested-name-specifier that qualifies the name of this /// declaration, if it was present in the source. NestedNameSpecifier *getQualifier() const { return hasExtInfo() ? getExtInfo()->QualifierLoc.getNestedNameSpecifier() : nullptr; } - /// \brief Retrieve the nested-name-specifier (with source-location + /// Retrieve the nested-name-specifier (with source-location /// information) that qualifies the name of this declaration, if it was /// present in the source. NestedNameSpecifierLoc getQualifierLoc() const { @@ -3314,7 +3314,7 @@ /// in C++) are of the enum type instead. QualType PromotionType; - /// \brief If this enumeration is an instantiation of a member enumeration + /// If this enumeration is an instantiation of a member enumeration /// of a class template specialization, this is the member specialization /// information. MemberSpecializationInfo *SpecializationInfo = nullptr; @@ -3422,23 +3422,23 @@ return IntegerType.get()->getType().getUnqualifiedType(); } - /// \brief Set the underlying integer type. + /// Set the underlying integer type. void setIntegerType(QualType T) { IntegerType = T.getTypePtrOrNull(); } - /// \brief Set the underlying integer type source info. + /// Set the underlying integer type source info. void setIntegerTypeSourceInfo(TypeSourceInfo *TInfo) { IntegerType = TInfo; } - /// \brief Return the type source info for the underlying integer type, + /// Return the type source info for the underlying integer type, /// if no type source info exists, return 0. TypeSourceInfo *getIntegerTypeSourceInfo() const { return IntegerType.dyn_cast(); } - /// \brief Retrieve the source range that covers the underlying type if + /// Retrieve the source range that covers the underlying type if /// specified. SourceRange getIntegerTypeRange() const LLVM_READONLY; - /// \brief Returns the width in bits required to store all the + /// Returns the width in bits required to store all the /// non-negative enumerators of this enum. unsigned getNumPositiveBits() const { return NumPositiveBits; @@ -3448,7 +3448,7 @@ assert(NumPositiveBits == Num && "can't store this bitcount"); } - /// \brief Returns the width in bits required to store all the + /// Returns the width in bits required to store all the /// negative enumerators of this enum. These widths include /// the rightmost leading 1; that is: /// @@ -3464,23 +3464,23 @@ NumNegativeBits = Num; } - /// \brief Returns true if this is a C++11 scoped enumeration. + /// Returns true if this is a C++11 scoped enumeration. bool isScoped() const { return IsScoped; } - /// \brief Returns true if this is a C++11 scoped enumeration. + /// Returns true if this is a C++11 scoped enumeration. bool isScopedUsingClassTag() const { return IsScopedUsingClassTag; } - /// \brief Returns true if this is an Objective-C, C++11, or + /// Returns true if this is an Objective-C, C++11, or /// Microsoft-style enumeration with a fixed underlying type. bool isFixed() const { return IsFixed; } - /// \brief Returns true if this can be considered a complete type. + /// Returns true if this can be considered a complete type. bool isComplete() const { // IntegerType is set for fixed type enums and non-fixed but implicitly // int-sized Microsoft enums. @@ -3499,33 +3499,33 @@ /// enum_extensibility(open). bool isClosedNonFlag() const; - /// \brief Retrieve the enum definition from which this enumeration could + /// Retrieve the enum definition from which this enumeration could /// be instantiated, if it is an instantiation (rather than a non-template). EnumDecl *getTemplateInstantiationPattern() const; - /// \brief Returns the enumeration (declared within the template) + /// Returns the enumeration (declared within the template) /// from which this enumeration type was instantiated, or NULL if /// this enumeration was not instantiated from any template. EnumDecl *getInstantiatedFromMemberEnum() const; - /// \brief If this enumeration is a member of a specialization of a + /// If this enumeration is a member of a specialization of a /// templated class, determine what kind of template specialization /// or instantiation this is. TemplateSpecializationKind getTemplateSpecializationKind() const; - /// \brief For an enumeration member that was instantiated from a member + /// For an enumeration member that was instantiated from a member /// enumeration of a templated class, set the template specialiation kind. void setTemplateSpecializationKind(TemplateSpecializationKind TSK, SourceLocation PointOfInstantiation = SourceLocation()); - /// \brief If this enumeration is an instantiation of a member enumeration of + /// If this enumeration is an instantiation of a member enumeration of /// a class template specialization, retrieves the member specialization /// information. MemberSpecializationInfo *getMemberSpecializationInfo() const { return SpecializationInfo; } - /// \brief Specify that this enumeration is an instantiation of the + /// Specify that this enumeration is an instantiation of the /// member enumeration ED. void setInstantiationOfMemberEnum(EnumDecl *ED, TemplateSpecializationKind TSK) { @@ -3713,7 +3713,7 @@ ParamDestroyedInCallee = V; } - /// \brief Determines whether this declaration represents the + /// Determines whether this declaration represents the /// injected class name. /// /// The injected class name in C++ is the name of the class that @@ -3728,15 +3728,15 @@ /// \endcode bool isInjectedClassName() const; - /// \brief Determine whether this record is a class describing a lambda + /// Determine whether this record is a class describing a lambda /// function object. bool isLambda() const; - /// \brief Determine whether this record is a record for captured variables in + /// Determine whether this record is a record for captured variables in /// CapturedStmt construct. bool isCapturedRecord() const; - /// \brief Mark the record as a record for captured variables in CapturedStmt + /// Mark the record as a record for captured variables in CapturedStmt /// construct. void setCapturedRecord(); @@ -3778,12 +3778,12 @@ return K >= firstRecord && K <= lastRecord; } - /// \brief Get whether or not this is an ms_struct which can + /// Get whether or not this is an ms_struct which can /// be turned on with an attribute, pragma, or -mms-bitfields /// commandline option. bool isMsStruct(const ASTContext &C) const; - /// \brief Whether we are allowed to insert extra padding between fields. + /// Whether we are allowed to insert extra padding between fields. /// These padding are added to help AddressSanitizer detect /// intra-object-overflow bugs. bool mayInsertExtraPadding(bool EmitRemark = false) const; @@ -3793,7 +3793,7 @@ const FieldDecl *findFirstNamedDataMember() const; private: - /// \brief Deserialize just the fields. + /// Deserialize just the fields. void LoadFieldsFromExternalStorage() const; }; @@ -4019,13 +4019,13 @@ } private: - /// \brief The number of parameters to the outlined function. + /// The number of parameters to the outlined function. unsigned NumParams; - /// \brief The position of context parameter in list of parameters. + /// The position of context parameter in list of parameters. unsigned ContextParam; - /// \brief The body of the outlined function. + /// The body of the outlined function. llvm::PointerIntPair BodyAndNothrow; explicit CapturedDecl(DeclContext *DC, unsigned NumParams); @@ -4073,7 +4073,7 @@ return {getParams(), getNumParams()}; } - /// \brief Retrieve the parameter containing captured variables. + /// Retrieve the parameter containing captured variables. ImplicitParamDecl *getContextParam() const { assert(ContextParam < NumParams); return getParam(ContextParam); @@ -4088,9 +4088,9 @@ using param_iterator = ImplicitParamDecl *const *; using param_range = llvm::iterator_range; - /// \brief Retrieve an iterator pointing to the first parameter decl. + /// Retrieve an iterator pointing to the first parameter decl. param_iterator param_begin() const { return getParams(); } - /// \brief Retrieve an iterator one past the last parameter decl. + /// Retrieve an iterator one past the last parameter decl. param_iterator param_end() const { return getParams() + NumParams; } // Implement isa/cast/dyncast/etc. @@ -4104,7 +4104,7 @@ } }; -/// \brief Describes a module import declaration, which makes the contents +/// Describes a module import declaration, which makes the contents /// of the named module visible in the current translation unit. /// /// An import declaration imports the named module (or submodule). For example: @@ -4121,7 +4121,7 @@ friend class ASTReader; friend TrailingObjects; - /// \brief The imported module, along with a bit that indicates whether + /// The imported module, along with a bit that indicates whether /// we have source-location information for each identifier in the module /// name. /// @@ -4129,7 +4129,7 @@ /// end of the import declaration. llvm::PointerIntPair ImportedAndComplete; - /// \brief The next import in the list of imports local to the translation + /// The next import in the list of imports local to the translation /// unit being parsed (not loaded from an AST file). ImportDecl *NextLocalImport = nullptr; @@ -4142,25 +4142,25 @@ ImportDecl(EmptyShell Empty) : Decl(Import, Empty) {} public: - /// \brief Create a new module import declaration. + /// Create a new module import declaration. static ImportDecl *Create(ASTContext &C, DeclContext *DC, SourceLocation StartLoc, Module *Imported, ArrayRef IdentifierLocs); - /// \brief Create a new module import declaration for an implicitly-generated + /// Create a new module import declaration for an implicitly-generated /// import. static ImportDecl *CreateImplicit(ASTContext &C, DeclContext *DC, SourceLocation StartLoc, Module *Imported, SourceLocation EndLoc); - /// \brief Create a new, deserialized module import declaration. + /// Create a new, deserialized module import declaration. static ImportDecl *CreateDeserialized(ASTContext &C, unsigned ID, unsigned NumLocations); - /// \brief Retrieve the module that was imported by the import declaration. + /// Retrieve the module that was imported by the import declaration. Module *getImportedModule() const { return ImportedAndComplete.getPointer(); } - /// \brief Retrieves the locations of each of the identifiers that make up + /// Retrieves the locations of each of the identifiers that make up /// the complete module name in the import declaration. /// /// This will return an empty array if the locations of the individual @@ -4173,7 +4173,7 @@ static bool classofKind(Kind K) { return K == Import; } }; -/// \brief Represents a C++ Modules TS module export declaration. +/// Represents a C++ Modules TS module export declaration. /// /// For example: /// \code @@ -4185,7 +4185,7 @@ private: friend class ASTDeclReader; - /// \brief The source location for the right brace (if valid). + /// The source location for the right brace (if valid). SourceLocation RBraceLoc; ExportDecl(DeclContext *DC, SourceLocation ExportLoc) Index: cfe/trunk/include/clang/AST/DeclBase.h =================================================================== --- cfe/trunk/include/clang/AST/DeclBase.h +++ cfe/trunk/include/clang/AST/DeclBase.h @@ -67,7 +67,7 @@ class TranslationUnitDecl; class UsingDirectiveDecl; -/// \brief Captures the result of checking the availability of a +/// Captures the result of checking the availability of a /// declaration. enum AvailabilityResult { AR_Available = 0, @@ -85,7 +85,7 @@ /// asserted in DeclBase.cpp. class LLVM_ALIGNAS(/*alignof(uint64_t)*/ 8) Decl { public: - /// \brief Lists the kind of concrete classes of Decl. + /// Lists the kind of concrete classes of Decl. enum Kind { #define DECL(DERIVED, BASE) DERIVED, #define ABSTRACT_DECL(DECL) @@ -96,7 +96,7 @@ #include "clang/AST/DeclNodes.inc" }; - /// \brief A placeholder type used to construct an empty shell of a + /// A placeholder type used to construct an empty shell of a /// decl-derived type that will be filled in later (e.g., by some /// deserialization method). struct EmptyShell {}; @@ -231,7 +231,7 @@ }; protected: - /// \brief The next declaration within the same lexical + /// The next declaration within the same lexical /// DeclContext. These pointers form the linked list that is /// traversed via DeclContext's decls_begin()/decls_end(). /// @@ -288,22 +288,22 @@ /// the implementation rather than explicitly written by the user. unsigned Implicit : 1; - /// \brief Whether this declaration was "used", meaning that a definition is + /// Whether this declaration was "used", meaning that a definition is /// required. unsigned Used : 1; - /// \brief Whether this declaration was "referenced". + /// Whether this declaration was "referenced". /// The difference with 'Used' is whether the reference appears in a /// evaluated context or not, e.g. functions used in uninstantiated templates /// are regarded as "referenced" but not "used". unsigned Referenced : 1; - /// \brief Whether this declaration is a top-level declaration (function, + /// Whether this declaration is a top-level declaration (function, /// global variable, etc.) that is lexically inside an objc container /// definition. unsigned TopLevelDeclInObjCContainer : 1; - /// \brief Whether statistic collection is enabled. + /// Whether statistic collection is enabled. static bool StatisticsEnabled; protected: @@ -319,17 +319,17 @@ // NOTE: VC++ treats enums as signed, avoid using the AccessSpecifier enum unsigned Access : 2; - /// \brief Whether this declaration was loaded from an AST file. + /// Whether this declaration was loaded from an AST file. unsigned FromASTFile : 1; /// IdentifierNamespace - This specifies what IDNS_* namespace this lives in. unsigned IdentifierNamespace : 13; - /// \brief If 0, we have not computed the linkage of this declaration. + /// If 0, we have not computed the linkage of this declaration. /// Otherwise, it is the linkage + 1. mutable unsigned CacheValidAndLinkage : 3; - /// \brief Allocate memory for a deserialized declaration. + /// Allocate memory for a deserialized declaration. /// /// This routine must be used to allocate memory for any declaration that is /// deserialized from a module file. @@ -341,7 +341,7 @@ void *operator new(std::size_t Size, const ASTContext &Ctx, unsigned ID, std::size_t Extra = 0); - /// \brief Allocate memory for a non-deserialized declaration. + /// Allocate memory for a non-deserialized declaration. void *operator new(std::size_t Size, const ASTContext &Ctx, DeclContext *Parent, std::size_t Extra = 0); @@ -385,7 +385,7 @@ virtual ~Decl(); - /// \brief Update a potentially out-of-date declaration. + /// Update a potentially out-of-date declaration. void updateOutOfDate(IdentifierInfo &II) const; Linkage getCachedLinkage() const { @@ -401,7 +401,7 @@ } public: - /// \brief Source range that this declaration covers. + /// Source range that this declaration covers. virtual SourceRange getSourceRange() const LLVM_READONLY { return SourceRange(getLocation(), getLocation()); } @@ -463,7 +463,7 @@ return AccessSpecifier(Access); } - /// \brief Retrieve the access specifier for this declaration, even though + /// Retrieve the access specifier for this declaration, even though /// it may not yet have been properly set. AccessSpecifier getAccessUnsafe() const { return AccessSpecifier(Access); @@ -552,7 +552,7 @@ bool isImplicit() const { return Implicit; } void setImplicit(bool I = true) { Implicit = I; } - /// \brief Whether *any* (re-)declaration of the entity was used, meaning that + /// Whether *any* (re-)declaration of the entity was used, meaning that /// a definition is required. /// /// \param CheckUsedAttr When true, also consider the "used" attribute @@ -560,28 +560,28 @@ /// whether the function is used. bool isUsed(bool CheckUsedAttr = true) const; - /// \brief Set whether the declaration is used, in the sense of odr-use. + /// Set whether the declaration is used, in the sense of odr-use. /// /// This should only be used immediately after creating a declaration. /// It intentionally doesn't notify any listeners. void setIsUsed() { getCanonicalDecl()->Used = true; } - /// \brief Mark the declaration used, in the sense of odr-use. + /// Mark the declaration used, in the sense of odr-use. /// /// This notifies any mutation listeners in addition to setting a bit /// indicating the declaration is used. void markUsed(ASTContext &C); - /// \brief Whether any declaration of this entity was referenced. + /// Whether any declaration of this entity was referenced. bool isReferenced() const; - /// \brief Whether this declaration was referenced. This should not be relied + /// Whether this declaration was referenced. This should not be relied /// upon for anything other than debugging. bool isThisDeclarationReferenced() const { return Referenced; } void setReferenced(bool R = true) { Referenced = R; } - /// \brief Whether this declaration is a top-level declaration (function, + /// Whether this declaration is a top-level declaration (function, /// global variable, etc.) that is lexically inside an objc container /// definition. bool isTopLevelDeclInObjCContainer() const { @@ -592,17 +592,17 @@ TopLevelDeclInObjCContainer = V; } - /// \brief Looks on this and related declarations for an applicable + /// Looks on this and related declarations for an applicable /// external source symbol attribute. ExternalSourceSymbolAttr *getExternalSourceSymbolAttr() const; - /// \brief Whether this declaration was marked as being private to the + /// Whether this declaration was marked as being private to the /// module in which it was defined. bool isModulePrivate() const { return getModuleOwnershipKind() == ModuleOwnershipKind::ModulePrivate; } - /// \brief Whether this declaration is exported (by virtue of being lexically + /// Whether this declaration is exported (by virtue of being lexically /// within an ExportDecl or by being a NamespaceDecl). bool isExported() const; @@ -614,7 +614,7 @@ const Attr *getDefiningAttr() const; protected: - /// \brief Specify that this declaration was marked as being private + /// Specify that this declaration was marked as being private /// to the module in which it was defined. void setModulePrivate() { // The module-private specifier has no effect on unowned declarations. @@ -624,14 +624,14 @@ setModuleOwnershipKind(ModuleOwnershipKind::ModulePrivate); } - /// \brief Set the owning module ID. + /// Set the owning module ID. void setOwningModuleID(unsigned ID) { assert(isFromASTFile() && "Only works on a deserialized declaration"); *((unsigned*)this - 2) = ID; } public: - /// \brief Determine the availability of the given declaration. + /// Determine the availability of the given declaration. /// /// This routine will determine the most restrictive availability of /// the given declaration (e.g., preferring 'unavailable' to @@ -653,7 +653,7 @@ VersionTuple EnclosingVersion = VersionTuple(), StringRef *RealizedPlatform = nullptr) const; - /// \brief Retrieve the version of the target platform in which this + /// Retrieve the version of the target platform in which this /// declaration was introduced. /// /// \returns An empty version tuple if this declaration has no 'introduced' @@ -661,7 +661,7 @@ /// attribute otherwise. VersionTuple getVersionIntroduced() const; - /// \brief Determine whether this declaration is marked 'deprecated'. + /// Determine whether this declaration is marked 'deprecated'. /// /// \param Message If non-NULL and the declaration is deprecated, /// this will be set to the message describing why the declaration @@ -670,7 +670,7 @@ return getAvailability(Message) == AR_Deprecated; } - /// \brief Determine whether this declaration is marked 'unavailable'. + /// Determine whether this declaration is marked 'unavailable'. /// /// \param Message If non-NULL and the declaration is unavailable, /// this will be set to the message describing why the declaration @@ -679,7 +679,7 @@ return getAvailability(Message) == AR_Unavailable; } - /// \brief Determine whether this is a weak-imported symbol. + /// Determine whether this is a weak-imported symbol. /// /// Weak-imported symbols are typically marked with the /// 'weak_import' attribute, but may also be marked with an @@ -687,7 +687,7 @@ /// the introduction of this feature. bool isWeakImported() const; - /// \brief Determines whether this symbol can be weak-imported, + /// Determines whether this symbol can be weak-imported, /// e.g., whether it would be well-formed to add the weak_import /// attribute. /// @@ -695,11 +695,11 @@ /// declaration cannot be weak-imported because it has a definition. bool canBeWeakImported(bool &IsDefinition) const; - /// \brief Determine whether this declaration came from an AST file (such as + /// Determine whether this declaration came from an AST file (such as /// a precompiled header or module) rather than having been parsed. bool isFromASTFile() const { return FromASTFile; } - /// \brief Retrieve the global declaration ID associated with this + /// Retrieve the global declaration ID associated with this /// declaration, which specifies where this Decl was loaded from. unsigned getGlobalID() const { if (isFromASTFile()) @@ -707,7 +707,7 @@ return 0; } - /// \brief Retrieve the global ID of the module that owns this particular + /// Retrieve the global ID of the module that owns this particular /// declaration. unsigned getOwningModuleID() const { if (isFromASTFile()) @@ -722,7 +722,7 @@ bool hasLocalOwningModuleStorage() const; public: - /// \brief Get the imported owning module, if this decl is from an imported + /// Get the imported owning module, if this decl is from an imported /// (non-local) module. Module *getImportedOwningModule() const { if (!isFromASTFile() || !hasOwningModule()) @@ -731,7 +731,7 @@ return getOwningModuleSlow(); } - /// \brief Get the local owning module, if known. Returns nullptr if owner is + /// Get the local owning module, if known. Returns nullptr if owner is /// not yet known or declaration is not from a module. Module *getLocalOwningModule() const { if (isFromASTFile() || !hasOwningModule()) @@ -765,7 +765,7 @@ /// all declarations in a global module fragment are unowned. Module *getOwningModuleForLinkage(bool IgnoreLinkage = false) const; - /// \brief Determine whether this declaration might be hidden from name + /// Determine whether this declaration might be hidden from name /// lookup. Note that the declaration might be visible even if this returns /// \c false, if the owning module is visible within the query context. // FIXME: Rename this to make it clearer what it does. @@ -780,12 +780,12 @@ setModuleOwnershipKind(ModuleOwnershipKind::Visible); } - /// \brief Get the kind of module ownership for this declaration. + /// Get the kind of module ownership for this declaration. ModuleOwnershipKind getModuleOwnershipKind() const { return NextInContextAndBits.getInt(); } - /// \brief Set whether this declaration is hidden from name lookup. + /// Set whether this declaration is hidden from name lookup. void setModuleOwnershipKind(ModuleOwnershipKind MOK) { assert(!(getModuleOwnershipKind() == ModuleOwnershipKind::Unowned && MOK != ModuleOwnershipKind::Unowned && !isFromASTFile() && @@ -854,7 +854,7 @@ return getParentFunctionOrMethod() == nullptr; } - /// \brief Returns true if this declaration lexically is inside a function. + /// Returns true if this declaration lexically is inside a function. /// It recognizes non-defining declarations as well as members of local /// classes: /// \code @@ -863,7 +863,7 @@ /// \endcode bool isLexicallyWithinFunctionOrMethod() const; - /// \brief If this decl is defined inside a function/method/block it returns + /// If this decl is defined inside a function/method/block it returns /// the corresponding DeclContext, otherwise it returns null. const DeclContext *getParentFunctionOrMethod() const; DeclContext *getParentFunctionOrMethod() { @@ -871,32 +871,32 @@ const_cast(this)->getParentFunctionOrMethod()); } - /// \brief Retrieves the "canonical" declaration of the given declaration. + /// Retrieves the "canonical" declaration of the given declaration. virtual Decl *getCanonicalDecl() { return this; } const Decl *getCanonicalDecl() const { return const_cast(this)->getCanonicalDecl(); } - /// \brief Whether this particular Decl is a canonical one. + /// Whether this particular Decl is a canonical one. bool isCanonicalDecl() const { return getCanonicalDecl() == this; } protected: - /// \brief Returns the next redeclaration or itself if this is the only decl. + /// Returns the next redeclaration or itself if this is the only decl. /// /// Decl subclasses that can be redeclared should override this method so that /// Decl::redecl_iterator can iterate over them. virtual Decl *getNextRedeclarationImpl() { return this; } - /// \brief Implementation of getPreviousDecl(), to be overridden by any + /// Implementation of getPreviousDecl(), to be overridden by any /// subclass that has a redeclaration chain. virtual Decl *getPreviousDeclImpl() { return nullptr; } - /// \brief Implementation of getMostRecentDecl(), to be overridden by any + /// 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. + /// Iterates through all the redeclarations of the same decl. class redecl_iterator { /// Current - The current declaration. Decl *Current = nullptr; @@ -941,7 +941,7 @@ using redecl_range = llvm::iterator_range; - /// \brief Returns an iterator range for all the redeclarations of the same + /// Returns an iterator range for all the redeclarations of the same /// decl. It will iterate at least once (when this decl is the only one). redecl_range redecls() const { return redecl_range(redecls_begin(), redecls_end()); @@ -953,26 +953,26 @@ redecl_iterator redecls_end() const { return redecl_iterator(); } - /// \brief Retrieve the previous declaration that declares the same entity + /// Retrieve the previous declaration that declares the same entity /// as this declaration, or NULL if there is no previous declaration. Decl *getPreviousDecl() { return getPreviousDeclImpl(); } - /// \brief Retrieve the most recent declaration that declares the same entity + /// Retrieve the most recent declaration that declares the same entity /// as this declaration, or NULL if there is no previous declaration. const Decl *getPreviousDecl() const { return const_cast(this)->getPreviousDeclImpl(); } - /// \brief True if this is the first declaration in its redeclaration chain. + /// True if this is the first declaration in its redeclaration chain. bool isFirstDecl() const { return getPreviousDecl() == nullptr; } - /// \brief Retrieve the most recent declaration that declares the same entity + /// 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 + /// 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(this)->getMostRecentDeclImpl(); @@ -983,7 +983,7 @@ /// top-level Stmt* of that body. Otherwise this method returns null. virtual Stmt* getBody() const { return nullptr; } - /// \brief Returns true if this \c Decl represents a declaration for a body of + /// Returns true if this \c Decl represents a declaration for a body of /// code, such as a function or method definition. /// Note that \c hasBody can also return true if any redeclaration of this /// \c Decl represents a declaration for a body of code. @@ -1006,24 +1006,24 @@ /// template parameter pack. bool isTemplateParameterPack() const; - /// \brief Whether this declaration is a parameter pack. + /// Whether this declaration is a parameter pack. bool isParameterPack() const; - /// \brief returns true if this declaration is a template + /// returns true if this declaration is a template bool isTemplateDecl() const; - /// \brief Whether this declaration is a function or function template. + /// Whether this declaration is a function or function template. bool isFunctionOrFunctionTemplate() const { return (DeclKind >= Decl::firstFunction && DeclKind <= Decl::lastFunction) || DeclKind == FunctionTemplate; } - /// \brief If this is a declaration that describes some template, this + /// If this is a declaration that describes some template, this /// method returns that template declaration. TemplateDecl *getDescribedTemplate() const; - /// \brief Returns the function itself, or the templated function if this is a + /// Returns the function itself, or the templated function if this is a /// function template. FunctionDecl *getAsFunction() LLVM_READONLY; @@ -1031,7 +1031,7 @@ return const_cast(this)->getAsFunction(); } - /// \brief Changes the namespace of this declaration to reflect that it's + /// Changes the namespace of this declaration to reflect that it's /// a function-local extern declaration. /// /// These declarations appear in the lexical context of the extern @@ -1052,14 +1052,14 @@ IdentifierNamespace |= IDNS_Ordinary; } - /// \brief Determine whether this is a block-scope declaration with linkage. + /// Determine whether this is a block-scope declaration with linkage. /// This will either be a local variable declaration declared 'extern', or a /// local function declaration. bool isLocalExternDecl() { return IdentifierNamespace & IDNS_LocalExtern; } - /// \brief Changes the namespace of this declaration to reflect that it's + /// Changes the namespace of this declaration to reflect that it's /// the object of a friend declaration. /// /// These declarations appear in the lexical context of the friending @@ -1101,7 +1101,7 @@ FOK_Undeclared ///< A friend of a previously-undeclared entity. }; - /// \brief Determines whether this declaration is the object of a + /// Determines whether this declaration is the object of a /// friend declaration and, if so, what kind. /// /// There is currently no direct way to find the associated FriendDecl. @@ -1141,7 +1141,7 @@ void dump(raw_ostream &Out, bool Deserialize = false) const; - /// \brief Looks through the Decl's underlying type to extract a FunctionType + /// Looks through the Decl's underlying type to extract a FunctionType /// when possible. Will return null if the type underlying the Decl does not /// have a FunctionType. const FunctionType *getFunctionType(bool BlocksToo = true) const; @@ -1155,7 +1155,7 @@ ASTMutationListener *getASTMutationListener() const; }; -/// \brief Determine whether two declarations declare the same entity. +/// Determine whether two declarations declare the same entity. inline bool declaresSameEntity(const Decl *D1, const Decl *D2) { if (!D1 || !D2) return false; @@ -1182,7 +1182,7 @@ void print(raw_ostream &OS) const override; }; -/// \brief The results of name lookup within a DeclContext. This is either a +/// The results of name lookup within a DeclContext. This is either a /// single result (with no stable storage) or a collection of results (with /// stable storage provided by the lookup table). class DeclContextLookupResult { @@ -1263,36 +1263,36 @@ /// DeclKind - This indicates which class this is. unsigned DeclKind : 8; - /// \brief Whether this declaration context also has some external + /// Whether this declaration context also has some external /// storage that contains additional declarations that are lexically /// part of this context. mutable bool ExternalLexicalStorage : 1; - /// \brief Whether this declaration context also has some external + /// Whether this declaration context also has some external /// storage that contains additional declarations that are visible /// in this context. mutable bool ExternalVisibleStorage : 1; - /// \brief Whether this declaration context has had external visible + /// Whether this declaration context has had external visible /// storage added since the last lookup. In this case, \c LookupPtr's /// invariant may not hold and needs to be fixed before we perform /// another lookup. mutable bool NeedToReconcileExternalVisibleStorage : 1; - /// \brief If \c true, this context may have local lexical declarations + /// If \c true, this context may have local lexical declarations /// that are missing from the lookup table. mutable bool HasLazyLocalLexicalLookups : 1; - /// \brief If \c true, the external source may have lexical declarations + /// If \c true, the external source may have lexical declarations /// that are missing from the lookup table. mutable bool HasLazyExternalLexicalLookups : 1; - /// \brief If \c true, lookups should only return identifier from + /// If \c true, lookups should only return identifier from /// DeclContext scope (for example TranslationUnit). Used in /// LookupQualifiedName() mutable bool UseQualifiedLookup : 1; - /// \brief Pointer to the data structure used to lookup declarations + /// Pointer to the data structure used to lookup declarations /// within this context (or a DependentStoredDeclsMap if this is a /// dependent context). We maintain the invariant that, if the map /// contains an entry for a DeclarationName (and we haven't lazily @@ -1315,7 +1315,7 @@ /// another pointer. mutable Decl *LastDecl = nullptr; - /// \brief Build up a chain of declarations. + /// Build up a chain of declarations. /// /// \returns the first/last pair of declarations. static std::pair @@ -1398,7 +1398,7 @@ } } - /// \brief Test whether the context supports looking up names. + /// Test whether the context supports looking up names. bool isLookupContext() const { return !isFunctionOrMethod() && DeclKind != Decl::LinkageSpec && DeclKind != Decl::Export; @@ -1424,7 +1424,7 @@ bool isInlineNamespace() const; - /// \brief Determines whether this context is dependent on a + /// Determines whether this context is dependent on a /// template parameter. bool isDependentContext() const; @@ -1445,28 +1445,28 @@ /// C++0x scoped enums), and C++ linkage specifications. bool isTransparentContext() const; - /// \brief Determines whether this context or some of its ancestors is a + /// Determines whether this context or some of its ancestors is a /// linkage specification context that specifies C linkage. bool isExternCContext() const; - /// \brief Retrieve the nearest enclosing C linkage specification context. + /// Retrieve the nearest enclosing C linkage specification context. const LinkageSpecDecl *getExternCContext() const; - /// \brief Determines whether this context or some of its ancestors is a + /// Determines whether this context or some of its ancestors is a /// linkage specification context that specifies C++ linkage. bool isExternCXXContext() const; - /// \brief Determine whether this declaration context is equivalent + /// Determine whether this declaration context is equivalent /// to the declaration context DC. bool Equals(const DeclContext *DC) const { return DC && this->getPrimaryContext() == DC->getPrimaryContext(); } - /// \brief Determine whether this declaration context encloses the + /// Determine whether this declaration context encloses the /// declaration context DC. bool Encloses(const DeclContext *DC) const; - /// \brief Find the nearest non-closure ancestor of this context, + /// Find the nearest non-closure ancestor of this context, /// i.e. the innermost semantic parent of this context which is not /// a closure. A context may be its own non-closure ancestor. Decl *getNonClosureAncestor(); @@ -1493,19 +1493,19 @@ return const_cast(this)->getRedeclContext(); } - /// \brief Retrieve the nearest enclosing namespace context. + /// Retrieve the nearest enclosing namespace context. DeclContext *getEnclosingNamespaceContext(); const DeclContext *getEnclosingNamespaceContext() const { return const_cast(this)->getEnclosingNamespaceContext(); } - /// \brief Retrieve the outermost lexically enclosing record context. + /// Retrieve the outermost lexically enclosing record context. RecordDecl *getOuterLexicalRecordContext(); const RecordDecl *getOuterLexicalRecordContext() const { return const_cast(this)->getOuterLexicalRecordContext(); } - /// \brief Test if this context is part of the enclosing namespace set of + /// Test if this context is part of the enclosing namespace set of /// the context NS, as defined in C++0x [namespace.def]p9. If either context /// isn't a namespace, this is equivalent to Equals(). /// @@ -1513,7 +1513,7 @@ /// inline, its enclosing namespace, recursively. bool InEnclosingNamespaceSetOf(const DeclContext *NS) const; - /// \brief Collects all of the declaration contexts that are semantically + /// Collects all of the declaration contexts that are semantically /// connected to this declaration context. /// /// For declaration contexts that have multiple semantically connected but @@ -1669,7 +1669,7 @@ } }; - /// \brief Iterates over a filtered subrange of declarations stored + /// Iterates over a filtered subrange of declarations stored /// in a DeclContext. /// /// This iterator visits only those declarations that are of type @@ -1745,7 +1745,7 @@ } }; - /// @brief Add the declaration D into this context. + /// Add the declaration D into this context. /// /// This routine should be invoked when the declaration D has first /// been declared, to place D into the context where it was @@ -1759,7 +1759,7 @@ /// semantic context via makeDeclVisibleInContext. void addDecl(Decl *D); - /// @brief Add the declaration D into this context, but suppress + /// Add the declaration D into this context, but suppress /// searches for external declarations with the same name. /// /// Although analogous in function to addDecl, this removes an @@ -1769,7 +1769,7 @@ /// See the ASTImporter for use cases. void addDeclInternal(Decl *D); - /// @brief Add the declaration D to this context without modifying + /// Add the declaration D to this context without modifying /// any lookup tables. /// /// This is useful for some operations in dependent contexts where @@ -1777,10 +1777,10 @@ /// only happens with friends. void addHiddenDecl(Decl *D); - /// @brief Removes a declaration from this context. + /// Removes a declaration from this context. void removeDecl(Decl *D); - /// @brief Checks whether a declaration is in this context. + /// Checks whether a declaration is in this context. bool containsDecl(Decl *D) const; using lookup_result = DeclContextLookupResult; @@ -1793,12 +1793,12 @@ /// routine will not look into parent contexts. lookup_result lookup(DeclarationName Name) const; - /// \brief Find the declarations with the given name that are visible + /// Find the declarations with the given name that are visible /// within this context; don't attempt to retrieve anything from an /// external source. lookup_result noload_lookup(DeclarationName Name); - /// \brief A simplistic name lookup mechanism that performs name lookup + /// A simplistic name lookup mechanism that performs name lookup /// into this declaration context without consulting the external source. /// /// This function should almost never be used, because it subverts the @@ -1810,7 +1810,7 @@ void localUncachedLookup(DeclarationName Name, SmallVectorImpl &Results); - /// @brief Makes a declaration visible within this context. + /// Makes a declaration visible within this context. /// /// This routine makes the declaration D visible to name lookup /// within this context and, if this is a transparent context, @@ -1837,11 +1837,11 @@ // If PreserveInternalState, avoids building lookup data structures too. lookups_range noload_lookups(bool PreserveInternalState) const; - /// \brief Iterators over all possible lookups within this context. + /// Iterators over all possible lookups within this context. all_lookups_iterator lookups_begin() const; all_lookups_iterator lookups_end() const; - /// \brief Iterators over all possible lookups within this context that are + /// Iterators over all possible lookups within this context that are /// currently loaded; don't attempt to retrieve anything from an external /// source. all_lookups_iterator noload_lookups_begin() const; @@ -1873,7 +1873,7 @@ // Low-level accessors - /// \brief Mark that there are external lexical declarations that we need + /// Mark that there are external lexical declarations that we need /// to include in our lookup table (and that are not available as external /// visible lookups). These extra lookup results will be found by walking /// the lexical declarations of this context. This should be used only if @@ -1885,28 +1885,28 @@ HasLazyExternalLexicalLookups = true; } - /// \brief Retrieve the internal representation of the lookup structure. + /// Retrieve the internal representation of the lookup structure. /// This may omit some names if we are lazily building the structure. StoredDeclsMap *getLookupPtr() const { return LookupPtr; } - /// \brief Ensure the lookup structure is fully-built and return it. + /// Ensure the lookup structure is fully-built and return it. StoredDeclsMap *buildLookup(); - /// \brief Whether this DeclContext has external storage containing + /// Whether this DeclContext has external storage containing /// additional declarations that are lexically in this context. bool hasExternalLexicalStorage() const { return ExternalLexicalStorage; } - /// \brief State whether this DeclContext has external storage for + /// State whether this DeclContext has external storage for /// declarations lexically in this context. void setHasExternalLexicalStorage(bool ES = true) { ExternalLexicalStorage = ES; } - /// \brief Whether this DeclContext has external storage containing + /// Whether this DeclContext has external storage containing /// additional declarations that are visible in this context. bool hasExternalVisibleStorage() const { return ExternalVisibleStorage; } - /// \brief State whether this DeclContext has external storage for + /// State whether this DeclContext has external storage for /// declarations visible in this context. void setHasExternalVisibleStorage(bool ES = true) { ExternalVisibleStorage = ES; @@ -1914,7 +1914,7 @@ NeedToReconcileExternalVisibleStorage = true; } - /// \brief Determine whether the given declaration is stored in the list of + /// Determine whether the given declaration is stored in the list of /// declarations lexically within this context. bool isDeclInLexicalTraversal(const Decl *D) const { return D && (D->NextInContextAndBits.getPointer() || D == FirstDecl || @@ -1945,7 +1945,7 @@ void reconcileExternalVisibleStorage() const; bool LoadLexicalDeclsFromExternalStorage() const; - /// @brief Makes a declaration visible within this context, but + /// Makes a declaration visible within this context, but /// suppresses searches for external declarations with the same /// name. /// Index: cfe/trunk/include/clang/AST/DeclCXX.h =================================================================== --- cfe/trunk/include/clang/AST/DeclCXX.h +++ cfe/trunk/include/clang/AST/DeclCXX.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Defines the C++ Decl subclasses, other than those for templates +/// Defines the C++ Decl subclasses, other than those for templates /// (found in DeclTemplate.h) and friends (in DeclFriend.h). // //===----------------------------------------------------------------------===// @@ -73,7 +73,7 @@ class TemplateParameterList; class UsingDecl; -/// \brief Represents any kind of function declaration, whether it is a +/// Represents any kind of function declaration, whether it is a /// concrete function or a function template. class AnyFunctionDecl { NamedDecl *Function; @@ -84,11 +84,11 @@ AnyFunctionDecl(FunctionDecl *FD) : Function(FD) {} AnyFunctionDecl(FunctionTemplateDecl *FTD); - /// \brief Implicily converts any function or function template into a + /// Implicily converts any function or function template into a /// named declaration. operator NamedDecl *() const { return Function; } - /// \brief Retrieve the underlying function or function template. + /// Retrieve the underlying function or function template. NamedDecl *get() const { return Function; } static AnyFunctionDecl getFromNamedDecl(NamedDecl *ND) { @@ -119,7 +119,7 @@ namespace clang { -/// \brief Represents an access specifier followed by colon ':'. +/// Represents an access specifier followed by colon ':'. /// /// An objects of this class represents sugar for the syntactic occurrence /// of an access specifier followed by a colon in the list of member @@ -130,7 +130,7 @@ /// Also note that this class has nothing to do with so-called /// "access declarations" (C++98 11.3 [class.access.dcl]). class AccessSpecDecl : public Decl { - /// \brief The location of the ':'. + /// The location of the ':'. SourceLocation ColonLoc; AccessSpecDecl(AccessSpecifier AS, DeclContext *DC, @@ -144,16 +144,16 @@ virtual void anchor(); public: - /// \brief The location of the access specifier. + /// The location of the access specifier. SourceLocation getAccessSpecifierLoc() const { return getLocation(); } - /// \brief Sets the location of the access specifier. + /// Sets the location of the access specifier. void setAccessSpecifierLoc(SourceLocation ASLoc) { setLocation(ASLoc); } - /// \brief The location of the colon following the access specifier. + /// The location of the colon following the access specifier. SourceLocation getColonLoc() const { return ColonLoc; } - /// \brief Sets the location of the colon. + /// Sets the location of the colon. void setColonLoc(SourceLocation CLoc) { ColonLoc = CLoc; } SourceRange getSourceRange() const override LLVM_READONLY { @@ -173,7 +173,7 @@ static bool classofKind(Kind K) { return K == AccessSpec; } }; -/// \brief Represents a base class of a C++ class. +/// Represents a base class of a C++ class. /// /// Each CXXBaseSpecifier represents a single, direct base class (or /// struct) of a C++ class (or struct). It specifies the type of that @@ -190,35 +190,35 @@ /// In this code, C will have two CXXBaseSpecifiers, one for "public /// virtual A" and the other for "protected B". class CXXBaseSpecifier { - /// \brief The source code range that covers the full base + /// The source code range that covers the full base /// specifier, including the "virtual" (if present) and access /// specifier (if present). SourceRange Range; - /// \brief The source location of the ellipsis, if this is a pack + /// The source location of the ellipsis, if this is a pack /// expansion. SourceLocation EllipsisLoc; - /// \brief Whether this is a virtual base class or not. + /// Whether this is a virtual base class or not. unsigned Virtual : 1; - /// \brief Whether this is the base of a class (true) or of a struct (false). + /// Whether this is the base of a class (true) or of a struct (false). /// /// This determines the mapping from the access specifier as written in the /// source code to the access specifier used for semantic analysis. unsigned BaseOfClass : 1; - /// \brief Access specifier as written in the source code (may be AS_none). + /// Access specifier as written in the source code (may be AS_none). /// /// The actual type of data stored here is an AccessSpecifier, but we use /// "unsigned" here to work around a VC++ bug. unsigned Access : 2; - /// \brief Whether the class contains a using declaration + /// Whether the class contains a using declaration /// to inherit the named class's constructors. unsigned InheritConstructors : 1; - /// \brief The type of the base class. + /// The type of the base class. /// /// This will be a class or struct (or a typedef of such). The source code /// range does not include the \c virtual or the access specifier. @@ -231,40 +231,40 @@ : Range(R), EllipsisLoc(EllipsisLoc), Virtual(V), BaseOfClass(BC), Access(A), InheritConstructors(false), BaseTypeInfo(TInfo) {} - /// \brief Retrieves the source range that contains the entire base specifier. + /// Retrieves the source range that contains the entire base specifier. SourceRange getSourceRange() const LLVM_READONLY { return Range; } SourceLocation getLocStart() const LLVM_READONLY { return Range.getBegin(); } SourceLocation getLocEnd() const LLVM_READONLY { return Range.getEnd(); } - /// \brief Get the location at which the base class type was written. + /// Get the location at which the base class type was written. SourceLocation getBaseTypeLoc() const LLVM_READONLY { return BaseTypeInfo->getTypeLoc().getLocStart(); } - /// \brief Determines whether the base class is a virtual base class (or not). + /// Determines whether the base class is a virtual base class (or not). bool isVirtual() const { return Virtual; } - /// \brief Determine whether this base class is a base of a class declared + /// Determine whether this base class is a base of a class declared /// with the 'class' keyword (vs. one declared with the 'struct' keyword). bool isBaseOfClass() const { return BaseOfClass; } - /// \brief Determine whether this base specifier is a pack expansion. + /// Determine whether this base specifier is a pack expansion. bool isPackExpansion() const { return EllipsisLoc.isValid(); } - /// \brief Determine whether this base class's constructors get inherited. + /// Determine whether this base class's constructors get inherited. bool getInheritConstructors() const { return InheritConstructors; } - /// \brief Set that this base class's constructors should be inherited. + /// Set that this base class's constructors should be inherited. void setInheritConstructors(bool Inherit = true) { InheritConstructors = Inherit; } - /// \brief For a pack expansion, determine the location of the ellipsis. + /// For a pack expansion, determine the location of the ellipsis. SourceLocation getEllipsisLoc() const { return EllipsisLoc; } - /// \brief Returns the access specifier for this base specifier. + /// Returns the access specifier for this base specifier. /// /// This is the actual base specifier as used for semantic analysis, so /// the result can never be AS_none. To retrieve the access specifier as @@ -276,7 +276,7 @@ return (AccessSpecifier)Access; } - /// \brief Retrieves the access specifier as written in the source code + /// Retrieves the access specifier as written in the source code /// (which may mean that no access specifier was explicitly written). /// /// Use getAccessSpecifier() to retrieve the access specifier for use in @@ -285,18 +285,18 @@ return (AccessSpecifier)Access; } - /// \brief Retrieves the type of the base class. + /// Retrieves the type of the base class. /// /// This type will always be an unqualified class type. QualType getType() const { return BaseTypeInfo->getType().getUnqualifiedType(); } - /// \brief Retrieves the type and source location of the base class. + /// Retrieves the type and source location of the base class. TypeSourceInfo *getTypeSourceInfo() const { return BaseTypeInfo; } }; -/// \brief Represents a C++ struct/union/class. +/// Represents a C++ struct/union/class. class CXXRecordDecl : public RecordDecl { friend class ASTDeclReader; friend class ASTDeclWriter; @@ -322,16 +322,16 @@ }; struct DefinitionData { - /// \brief True if this class has any user-declared constructors. + /// True if this class has any user-declared constructors. unsigned UserDeclaredConstructor : 1; - /// \brief The user-declared special members which this class has. + /// The user-declared special members which this class has. unsigned UserDeclaredSpecialMembers : 6; - /// \brief True when this class is an aggregate. + /// True when this class is an aggregate. unsigned Aggregate : 1; - /// \brief True when this class is a POD-type. + /// True when this class is a POD-type. unsigned PlainOldData : 1; /// true when this class is empty for traits purposes, @@ -340,19 +340,19 @@ /// class. Doesn't take union-ness into account. unsigned Empty : 1; - /// \brief True when this class is polymorphic, i.e., has at + /// True when this class is polymorphic, i.e., has at /// least one virtual member or derives from a polymorphic class. unsigned Polymorphic : 1; - /// \brief True when this class is abstract, i.e., has at least + /// True when this class is abstract, i.e., has at least /// one pure virtual function, (that can come from a base class). unsigned Abstract : 1; - /// \brief True when this class is standard-layout, per the applicable + /// True when this class is standard-layout, per the applicable /// language rules (including DRs). unsigned IsStandardLayout : 1; - /// \brief True when this class was standard-layout under the C++11 + /// True when this class was standard-layout under the C++11 /// definition. /// /// C++11 [class]p7. A standard-layout class is a class that: @@ -369,61 +369,61 @@ /// member. unsigned IsCXX11StandardLayout : 1; - /// \brief True when any base class has any declared non-static data + /// True when any base class has any declared non-static data /// members or bit-fields. /// This is a helper bit of state used to implement IsStandardLayout more /// efficiently. unsigned HasBasesWithFields : 1; - /// \brief True when any base class has any declared non-static data + /// True when any base class has any declared non-static data /// members. /// This is a helper bit of state used to implement IsCXX11StandardLayout /// more efficiently. unsigned HasBasesWithNonStaticDataMembers : 1; - /// \brief True when there are private non-static data members. + /// True when there are private non-static data members. unsigned HasPrivateFields : 1; - /// \brief True when there are protected non-static data members. + /// True when there are protected non-static data members. unsigned HasProtectedFields : 1; - /// \brief True when there are private non-static data members. + /// True when there are private non-static data members. unsigned HasPublicFields : 1; - /// \brief True if this class (or any subobject) has mutable fields. + /// True if this class (or any subobject) has mutable fields. unsigned HasMutableFields : 1; - /// \brief True if this class (or any nested anonymous struct or union) + /// True if this class (or any nested anonymous struct or union) /// has variant members. unsigned HasVariantMembers : 1; - /// \brief True if there no non-field members declared by the user. + /// True if there no non-field members declared by the user. unsigned HasOnlyCMembers : 1; - /// \brief True if any field has an in-class initializer, including those + /// True if any field has an in-class initializer, including those /// within anonymous unions or structs. unsigned HasInClassInitializer : 1; - /// \brief True if any field is of reference type, and does not have an + /// True if any field is of reference type, and does not have an /// in-class initializer. /// /// In this case, value-initialization of this class is illegal in C++98 /// even if the class has a trivial default constructor. unsigned HasUninitializedReferenceMember : 1; - /// \brief True if any non-mutable field whose type doesn't have a user- + /// True if any non-mutable field whose type doesn't have a user- /// provided default ctor also doesn't have an in-class initializer. unsigned HasUninitializedFields : 1; - /// \brief True if there are any member using-declarations that inherit + /// True if there are any member using-declarations that inherit /// constructors from a base class. unsigned HasInheritedConstructor : 1; - /// \brief True if there are any member using-declarations named + /// True if there are any member using-declarations named /// 'operator='. unsigned HasInheritedAssignment : 1; - /// \brief These flags are \c true if a defaulted corresponding special + /// These flags are \c true if a defaulted corresponding special /// member can't be fully analyzed without performing overload resolution. /// @{ unsigned NeedOverloadResolutionForCopyConstructor : 1; @@ -432,7 +432,7 @@ unsigned NeedOverloadResolutionForDestructor : 1; /// @} - /// \brief These flags are \c true if an implicit defaulted corresponding + /// These flags are \c true if an implicit defaulted corresponding /// special member would be defined as deleted. /// @{ unsigned DefaultedCopyConstructorIsDeleted : 1; @@ -441,7 +441,7 @@ unsigned DefaultedDestructorIsDeleted : 1; /// @} - /// \brief The trivial special members which this class has, per + /// The trivial special members which this class has, per /// C++11 [class.ctor]p5, C++11 [class.copy]p12, C++11 [class.copy]p25, /// C++11 [class.dtor]p5, or would have if the member were not suppressed. /// @@ -454,7 +454,7 @@ /// SMF_MoveConstructor, and SMF_Destructor are meaningful here. unsigned HasTrivialSpecialMembersForCall : 6; - /// \brief The declared special members of this class which are known to be + /// The declared special members of this class which are known to be /// non-trivial. /// /// This excludes any user-declared but not user-provided special members @@ -468,102 +468,102 @@ /// SMF_MoveConstructor, and SMF_Destructor are meaningful here. unsigned DeclaredNonTrivialSpecialMembersForCall : 6; - /// \brief True when this class has a destructor with no semantic effect. + /// True when this class has a destructor with no semantic effect. unsigned HasIrrelevantDestructor : 1; - /// \brief True when this class has at least one user-declared constexpr + /// True when this class has at least one user-declared constexpr /// constructor which is neither the copy nor move constructor. unsigned HasConstexprNonCopyMoveConstructor : 1; - /// \brief True if this class has a (possibly implicit) defaulted default + /// True if this class has a (possibly implicit) defaulted default /// constructor. unsigned HasDefaultedDefaultConstructor : 1; - /// \brief True if a defaulted default constructor for this class would + /// True if a defaulted default constructor for this class would /// be constexpr. unsigned DefaultedDefaultConstructorIsConstexpr : 1; - /// \brief True if this class has a constexpr default constructor. + /// True if this class has a constexpr default constructor. /// /// This is true for either a user-declared constexpr default constructor /// or an implicitly declared constexpr default constructor. unsigned HasConstexprDefaultConstructor : 1; - /// \brief True when this class contains at least one non-static data + /// True when this class contains at least one non-static data /// member or base class of non-literal or volatile type. unsigned HasNonLiteralTypeFieldsOrBases : 1; - /// \brief True when visible conversion functions are already computed + /// True when visible conversion functions are already computed /// and are available. unsigned ComputedVisibleConversions : 1; - /// \brief Whether we have a C++11 user-provided default constructor (not + /// Whether we have a C++11 user-provided default constructor (not /// explicitly deleted or defaulted). unsigned UserProvidedDefaultConstructor : 1; - /// \brief The special members which have been declared for this class, + /// The special members which have been declared for this class, /// either by the user or implicitly. unsigned DeclaredSpecialMembers : 6; - /// \brief Whether an implicit copy constructor could have a const-qualified + /// Whether an implicit copy constructor could have a const-qualified /// parameter, for initializing virtual bases and for other subobjects. unsigned ImplicitCopyConstructorCanHaveConstParamForVBase : 1; unsigned ImplicitCopyConstructorCanHaveConstParamForNonVBase : 1; - /// \brief Whether an implicit copy assignment operator would have a + /// Whether an implicit copy assignment operator would have a /// const-qualified parameter. unsigned ImplicitCopyAssignmentHasConstParam : 1; - /// \brief Whether any declared copy constructor has a const-qualified + /// Whether any declared copy constructor has a const-qualified /// parameter. unsigned HasDeclaredCopyConstructorWithConstParam : 1; - /// \brief Whether any declared copy assignment operator has either a + /// Whether any declared copy assignment operator has either a /// const-qualified reference parameter or a non-reference parameter. unsigned HasDeclaredCopyAssignmentWithConstParam : 1; - /// \brief Whether this class describes a C++ lambda. + /// Whether this class describes a C++ lambda. unsigned IsLambda : 1; - /// \brief Whether we are currently parsing base specifiers. + /// Whether we are currently parsing base specifiers. unsigned IsParsingBaseSpecifiers : 1; unsigned HasODRHash : 1; - /// \brief A hash of parts of the class to help in ODR checking. + /// A hash of parts of the class to help in ODR checking. unsigned ODRHash = 0; - /// \brief The number of base class specifiers in Bases. + /// The number of base class specifiers in Bases. unsigned NumBases = 0; - /// \brief The number of virtual base class specifiers in VBases. + /// The number of virtual base class specifiers in VBases. unsigned NumVBases = 0; - /// \brief Base classes of this class. + /// Base classes of this class. /// /// FIXME: This is wasted space for a union. LazyCXXBaseSpecifiersPtr Bases; - /// \brief direct and indirect virtual base classes of this class. + /// direct and indirect virtual base classes of this class. LazyCXXBaseSpecifiersPtr VBases; - /// \brief The conversion functions of this C++ class (but not its + /// The conversion functions of this C++ class (but not its /// inherited conversion functions). /// /// Each of the entries in this overload set is a CXXConversionDecl. LazyASTUnresolvedSet Conversions; - /// \brief The conversion functions of this C++ class and all those + /// The conversion functions of this C++ class and all those /// inherited conversion functions that are visible in this class. /// /// Each of the entries in this overload set is a CXXConversionDecl or a /// FunctionTemplateDecl. LazyASTUnresolvedSet VisibleConversions; - /// \brief The declaration which defines this record. + /// The declaration which defines this record. CXXRecordDecl *Definition; - /// \brief The first friend declaration in this class, or null if there + /// The first friend declaration in this class, or null if there /// aren't any. /// /// This is actually currently stored in reverse order. @@ -571,14 +571,14 @@ DefinitionData(CXXRecordDecl *D); - /// \brief Retrieve the set of direct base classes. + /// Retrieve the set of direct base classes. CXXBaseSpecifier *getBases() const { if (!Bases.isOffset()) return Bases.get(nullptr); return getBasesSlowCase(); } - /// \brief Retrieve the set of virtual base classes. + /// Retrieve the set of virtual base classes. CXXBaseSpecifier *getVBases() const { if (!VBases.isOffset()) return VBases.get(nullptr); @@ -600,11 +600,11 @@ struct DefinitionData *DefinitionData; - /// \brief Describes a C++ closure type (generated by a lambda expression). + /// Describes a C++ closure type (generated by a lambda expression). struct LambdaDefinitionData : public DefinitionData { using Capture = LambdaCapture; - /// \brief Whether this lambda is known to be dependent, even if its + /// Whether this lambda is known to be dependent, even if its /// context isn't dependent. /// /// A lambda with a non-dependent context can be dependent if it occurs @@ -614,33 +614,33 @@ /// artifact of having to parse the default arguments before. unsigned Dependent : 1; - /// \brief Whether this lambda is a generic lambda. + /// Whether this lambda is a generic lambda. unsigned IsGenericLambda : 1; - /// \brief The Default Capture. + /// The Default Capture. unsigned CaptureDefault : 2; - /// \brief The number of captures in this lambda is limited 2^NumCaptures. + /// The number of captures in this lambda is limited 2^NumCaptures. unsigned NumCaptures : 15; - /// \brief The number of explicit captures in this lambda. + /// The number of explicit captures in this lambda. unsigned NumExplicitCaptures : 13; - /// \brief The number used to indicate this lambda expression for name + /// The number used to indicate this lambda expression for name /// mangling in the Itanium C++ ABI. unsigned ManglingNumber = 0; - /// \brief The declaration that provides context for this lambda, if the + /// The declaration that provides context for this lambda, if the /// actual DeclContext does not suffice. This is used for lambdas that /// occur within default arguments of function parameters within the class /// or within a data member initializer. LazyDeclPtr ContextDecl; - /// \brief The list of captures, both explicit and implicit, for this + /// The list of captures, both explicit and implicit, for this /// lambda. Capture *Captures = nullptr; - /// \brief The type of the call method. + /// The type of the call method. TypeSourceInfo *MethodTyInfo; LambdaDefinitionData(CXXRecordDecl *D, TypeSourceInfo *Info, @@ -678,7 +678,7 @@ return static_cast(*DD); } - /// \brief The template or declaration that this declaration + /// The template or declaration that this declaration /// describes or was instantiated from, respectively. /// /// For non-templates, this value will be null. For record @@ -690,11 +690,11 @@ llvm::PointerUnion TemplateOrInstantiation; - /// \brief Called from setBases and addedMember to notify the class that a + /// Called from setBases and addedMember to notify the class that a /// direct or virtual base class or a member of class type has been added. void addedClassSubobject(CXXRecordDecl *Base); - /// \brief Notify the class that member has been added. + /// Notify the class that member has been added. /// /// This routine helps maintain information about the class based on which /// members have been added. It will be invoked by DeclContext::addDecl() @@ -703,7 +703,7 @@ void markedVirtualFunctionPure(); - /// \brief Get the head of our list of friend declarations, possibly + /// Get the head of our list of friend declarations, possibly /// deserializing the friends from an external AST source. FriendDecl *getFirstFriend() const; @@ -719,10 +719,10 @@ IdentifierInfo *Id, CXXRecordDecl *PrevDecl); public: - /// \brief Iterator that traverses the base classes of a class. + /// Iterator that traverses the base classes of a class. using base_class_iterator = CXXBaseSpecifier *; - /// \brief Iterator that traverses the base classes of a class. + /// Iterator that traverses the base classes of a class. using base_class_const_iterator = const CXXBaseSpecifier *; CXXRecordDecl *getCanonicalDecl() override { @@ -783,10 +783,10 @@ unsigned getODRHash() const; - /// \brief Sets the base classes of this struct or class. + /// Sets the base classes of this struct or class. void setBases(CXXBaseSpecifier const * const *Bases, unsigned NumBases); - /// \brief Retrieves the number of base classes of this class. + /// Retrieves the number of base classes of this class. unsigned getNumBases() const { return data().NumBases; } using base_class_range = llvm::iterator_range; @@ -807,7 +807,7 @@ return bases_begin() + data().NumBases; } - /// \brief Retrieves the number of virtual base classes of this class. + /// Retrieves the number of virtual base classes of this class. unsigned getNumVBases() const { return data().NumVBases; } base_class_range vbases() { @@ -824,7 +824,7 @@ return vbases_begin() + data().NumVBases; } - /// \brief Determine whether this class has any dependent base classes which + /// Determine whether this class has any dependent base classes which /// are not the current instantiation. bool hasAnyDependentBases() const; @@ -839,13 +839,13 @@ return method_range(method_begin(), method_end()); } - /// \brief Method begin iterator. Iterates in the order the methods + /// Method begin iterator. Iterates in the order the methods /// were declared. method_iterator method_begin() const { return method_iterator(decls_begin()); } - /// \brief Method past-the-end iterator. + /// Method past-the-end iterator. method_iterator method_end() const { return method_iterator(decls_end()); } @@ -880,7 +880,7 @@ return data().FirstFriend.isValid(); } - /// \brief \c true if a defaulted copy constructor for this class would be + /// \c true if a defaulted copy constructor for this class would be /// deleted. bool defaultedCopyConstructorIsDeleted() const { assert((!needsOverloadResolutionForCopyConstructor() || @@ -889,7 +889,7 @@ return data().DefaultedCopyConstructorIsDeleted; } - /// \brief \c true if a defaulted move constructor for this class would be + /// \c true if a defaulted move constructor for this class would be /// deleted. bool defaultedMoveConstructorIsDeleted() const { assert((!needsOverloadResolutionForMoveConstructor() || @@ -898,7 +898,7 @@ return data().DefaultedMoveConstructorIsDeleted; } - /// \brief \c true if a defaulted destructor for this class would be deleted. + /// \c true if a defaulted destructor for this class would be deleted. bool defaultedDestructorIsDeleted() const { assert((!needsOverloadResolutionForDestructor() || (data().DeclaredSpecialMembers & SMF_Destructor)) && @@ -906,41 +906,41 @@ return data().DefaultedDestructorIsDeleted; } - /// \brief \c true if we know for sure that this class has a single, + /// \c true if we know for sure that this class has a single, /// accessible, unambiguous copy constructor that is not deleted. bool hasSimpleCopyConstructor() const { return !hasUserDeclaredCopyConstructor() && !data().DefaultedCopyConstructorIsDeleted; } - /// \brief \c true if we know for sure that this class has a single, + /// \c true if we know for sure that this class has a single, /// accessible, unambiguous move constructor that is not deleted. bool hasSimpleMoveConstructor() const { return !hasUserDeclaredMoveConstructor() && hasMoveConstructor() && !data().DefaultedMoveConstructorIsDeleted; } - /// \brief \c true if we know for sure that this class has a single, + /// \c true if we know for sure that this class has a single, /// accessible, unambiguous move assignment operator that is not deleted. bool hasSimpleMoveAssignment() const { return !hasUserDeclaredMoveAssignment() && hasMoveAssignment() && !data().DefaultedMoveAssignmentIsDeleted; } - /// \brief \c true if we know for sure that this class has an accessible + /// \c true if we know for sure that this class has an accessible /// destructor that is not deleted. bool hasSimpleDestructor() const { return !hasUserDeclaredDestructor() && !data().DefaultedDestructorIsDeleted; } - /// \brief Determine whether this class has any default constructors. + /// Determine whether this class has any default constructors. bool hasDefaultConstructor() const { return (data().DeclaredSpecialMembers & SMF_DefaultConstructor) || needsImplicitDefaultConstructor(); } - /// \brief Determine if we need to declare a default constructor for + /// Determine if we need to declare a default constructor for /// this class. /// /// This value is used for lazy creation of default constructors. @@ -953,33 +953,33 @@ !isLambda(); } - /// \brief Determine whether this class has any user-declared constructors. + /// Determine whether this class has any user-declared constructors. /// /// When true, a default constructor will not be implicitly declared. bool hasUserDeclaredConstructor() const { return data().UserDeclaredConstructor; } - /// \brief Whether this class has a user-provided default constructor + /// Whether this class has a user-provided default constructor /// per C++11. bool hasUserProvidedDefaultConstructor() const { return data().UserProvidedDefaultConstructor; } - /// \brief Determine whether this class has a user-declared copy constructor. + /// Determine whether this class has a user-declared copy constructor. /// /// When false, a copy constructor will be implicitly declared. bool hasUserDeclaredCopyConstructor() const { return data().UserDeclaredSpecialMembers & SMF_CopyConstructor; } - /// \brief Determine whether this class needs an implicit copy + /// Determine whether this class needs an implicit copy /// constructor to be lazily declared. bool needsImplicitCopyConstructor() const { return !(data().DeclaredSpecialMembers & SMF_CopyConstructor); } - /// \brief Determine whether we need to eagerly declare a defaulted copy + /// Determine whether we need to eagerly declare a defaulted copy /// constructor for this class. bool needsOverloadResolutionForCopyConstructor() const { // C++17 [class.copy.ctor]p6: @@ -994,7 +994,7 @@ return data().NeedOverloadResolutionForCopyConstructor; } - /// \brief Determine whether an implicit copy constructor for this type + /// Determine whether an implicit copy constructor for this type /// would have a parameter with a const-qualified reference type. bool implicitCopyConstructorHasConstParam() const { return data().ImplicitCopyConstructorCanHaveConstParamForNonVBase && @@ -1002,7 +1002,7 @@ data().ImplicitCopyConstructorCanHaveConstParamForVBase); } - /// \brief Determine whether this class has a copy constructor with + /// Determine whether this class has a copy constructor with /// a parameter type which is a reference to a const-qualified type. bool hasCopyConstructorWithConstParam() const { return data().HasDeclaredCopyConstructorWithConstParam || @@ -1010,7 +1010,7 @@ implicitCopyConstructorHasConstParam()); } - /// \brief Whether this class has a user-declared move constructor or + /// Whether this class has a user-declared move constructor or /// assignment operator. /// /// When false, a move constructor and assignment operator may be @@ -1020,19 +1020,19 @@ (SMF_MoveConstructor | SMF_MoveAssignment); } - /// \brief Determine whether this class has had a move constructor + /// Determine whether this class has had a move constructor /// declared by the user. bool hasUserDeclaredMoveConstructor() const { return data().UserDeclaredSpecialMembers & SMF_MoveConstructor; } - /// \brief Determine whether this class has a move constructor. + /// Determine whether this class has a move constructor. bool hasMoveConstructor() const { return (data().DeclaredSpecialMembers & SMF_MoveConstructor) || needsImplicitMoveConstructor(); } - /// \brief Set that we attempted to declare an implicit copy + /// Set that we attempted to declare an implicit copy /// constructor, but overload resolution failed so we deleted it. void setImplicitCopyConstructorIsDeleted() { assert((data().DefaultedCopyConstructorIsDeleted || @@ -1041,7 +1041,7 @@ data().DefaultedCopyConstructorIsDeleted = true; } - /// \brief Set that we attempted to declare an implicit move + /// Set that we attempted to declare an implicit move /// constructor, but overload resolution failed so we deleted it. void setImplicitMoveConstructorIsDeleted() { assert((data().DefaultedMoveConstructorIsDeleted || @@ -1050,7 +1050,7 @@ data().DefaultedMoveConstructorIsDeleted = true; } - /// \brief Set that we attempted to declare an implicit destructor, + /// Set that we attempted to declare an implicit destructor, /// but overload resolution failed so we deleted it. void setImplicitDestructorIsDeleted() { assert((data().DefaultedDestructorIsDeleted || @@ -1059,7 +1059,7 @@ data().DefaultedDestructorIsDeleted = true; } - /// \brief Determine whether this class should get an implicit move + /// Determine whether this class should get an implicit move /// constructor or if any existing special member function inhibits this. bool needsImplicitMoveConstructor() const { return !(data().DeclaredSpecialMembers & SMF_MoveConstructor) && @@ -1069,13 +1069,13 @@ !hasUserDeclaredDestructor(); } - /// \brief Determine whether we need to eagerly declare a defaulted move + /// Determine whether we need to eagerly declare a defaulted move /// constructor for this class. bool needsOverloadResolutionForMoveConstructor() const { return data().NeedOverloadResolutionForMoveConstructor; } - /// \brief Determine whether this class has a user-declared copy assignment + /// Determine whether this class has a user-declared copy assignment /// operator. /// /// When false, a copy assignment operator will be implicitly declared. @@ -1083,25 +1083,25 @@ return data().UserDeclaredSpecialMembers & SMF_CopyAssignment; } - /// \brief Determine whether this class needs an implicit copy + /// Determine whether this class needs an implicit copy /// assignment operator to be lazily declared. bool needsImplicitCopyAssignment() const { return !(data().DeclaredSpecialMembers & SMF_CopyAssignment); } - /// \brief Determine whether we need to eagerly declare a defaulted copy + /// Determine whether we need to eagerly declare a defaulted copy /// assignment operator for this class. bool needsOverloadResolutionForCopyAssignment() const { return data().HasMutableFields; } - /// \brief Determine whether an implicit copy assignment operator for this + /// Determine whether an implicit copy assignment operator for this /// type would have a parameter with a const-qualified reference type. bool implicitCopyAssignmentHasConstParam() const { return data().ImplicitCopyAssignmentHasConstParam; } - /// \brief Determine whether this class has a copy assignment operator with + /// Determine whether this class has a copy assignment operator with /// a parameter type which is a reference to a const-qualified type or is not /// a reference. bool hasCopyAssignmentWithConstParam() const { @@ -1110,19 +1110,19 @@ implicitCopyAssignmentHasConstParam()); } - /// \brief Determine whether this class has had a move assignment + /// Determine whether this class has had a move assignment /// declared by the user. bool hasUserDeclaredMoveAssignment() const { return data().UserDeclaredSpecialMembers & SMF_MoveAssignment; } - /// \brief Determine whether this class has a move assignment operator. + /// Determine whether this class has a move assignment operator. bool hasMoveAssignment() const { return (data().DeclaredSpecialMembers & SMF_MoveAssignment) || needsImplicitMoveAssignment(); } - /// \brief Set that we attempted to declare an implicit move assignment + /// Set that we attempted to declare an implicit move assignment /// operator, but overload resolution failed so we deleted it. void setImplicitMoveAssignmentIsDeleted() { assert((data().DefaultedMoveAssignmentIsDeleted || @@ -1131,7 +1131,7 @@ data().DefaultedMoveAssignmentIsDeleted = true; } - /// \brief Determine whether this class should get an implicit move + /// Determine whether this class should get an implicit move /// assignment operator or if any existing special member function inhibits /// this. bool needsImplicitMoveAssignment() const { @@ -1146,53 +1146,53 @@ !isLambda(); } - /// \brief Determine whether we need to eagerly declare a move assignment + /// Determine whether we need to eagerly declare a move assignment /// operator for this class. bool needsOverloadResolutionForMoveAssignment() const { return data().NeedOverloadResolutionForMoveAssignment; } - /// \brief Determine whether this class has a user-declared destructor. + /// Determine whether this class has a user-declared destructor. /// /// When false, a destructor will be implicitly declared. bool hasUserDeclaredDestructor() const { return data().UserDeclaredSpecialMembers & SMF_Destructor; } - /// \brief Determine whether this class needs an implicit destructor to + /// Determine whether this class needs an implicit destructor to /// be lazily declared. bool needsImplicitDestructor() const { return !(data().DeclaredSpecialMembers & SMF_Destructor); } - /// \brief Determine whether we need to eagerly declare a destructor for this + /// Determine whether we need to eagerly declare a destructor for this /// class. bool needsOverloadResolutionForDestructor() const { return data().NeedOverloadResolutionForDestructor; } - /// \brief Determine whether this class describes a lambda function object. + /// Determine whether this class describes a lambda function object. bool isLambda() const { // An update record can't turn a non-lambda into a lambda. auto *DD = DefinitionData; return DD && DD->IsLambda; } - /// \brief Determine whether this class describes a generic + /// Determine whether this class describes a generic /// lambda function object (i.e. function call operator is /// a template). bool isGenericLambda() const; - /// \brief Retrieve the lambda call operator of the closure type + /// Retrieve the lambda call operator of the closure type /// if this is a closure type. CXXMethodDecl *getLambdaCallOperator() const; - /// \brief Retrieve the lambda static invoker, the address of which + /// Retrieve the lambda static invoker, the address of which /// is returned by the conversion operator, and the body of which /// is forwarded to the lambda call operator. CXXMethodDecl *getLambdaStaticInvoker() const; - /// \brief Retrieve the generic lambda's template parameter list. + /// Retrieve the generic lambda's template parameter list. /// Returns null if the class does not represent a lambda or a generic /// lambda. TemplateParameterList *getGenericLambdaTemplateParameterList() const; @@ -1202,7 +1202,7 @@ return static_cast(getLambdaData().CaptureDefault); } - /// \brief For a closure type, retrieve the mapping from captured + /// For a closure type, retrieve the mapping from captured /// variables and \c this to the non-static data members that store the /// values or references of the captures. /// @@ -1248,7 +1248,7 @@ /// this class must currently be in the process of being defined. void removeConversion(const NamedDecl *Old); - /// \brief Get all conversion functions visible in current class, + /// Get all conversion functions visible in current class, /// including conversion function templates. llvm::iterator_range getVisibleConversionFunctions(); @@ -1258,12 +1258,12 @@ /// functions (C++ [dcl.init.aggr]p1). bool isAggregate() const { return data().Aggregate; } - /// \brief Whether this class has any in-class initializers + /// Whether this class has any in-class initializers /// for non-static data members (including those in anonymous unions or /// structs). bool hasInClassInitializer() const { return data().HasInClassInitializer; } - /// \brief Whether this class or any of its subobjects has any members of + /// Whether this class or any of its subobjects has any members of /// reference type which would make value-initialization ill-formed. /// /// Per C++03 [dcl.init]p5: @@ -1276,7 +1276,7 @@ data().HasUninitializedReferenceMember; } - /// \brief Whether this class is a POD-type (C++ [class]p4) + /// Whether this class is a POD-type (C++ [class]p4) /// /// For purposes of this function a class is POD if it is an aggregate /// that has no non-static non-POD data members, no reference data @@ -1286,11 +1286,11 @@ /// Note that this is the C++ TR1 definition of POD. bool isPOD() const { return data().PlainOldData; } - /// \brief True if this class is C-like, without C++-specific features, e.g. + /// True if this class is C-like, without C++-specific features, e.g. /// it contains only public fields, no bases, tag kind is not 'class', etc. bool isCLike() const; - /// \brief Determine whether this is an empty class in the sense of + /// Determine whether this is an empty class in the sense of /// (C++11 [meta.unary.prop]). /// /// The CXXRecordDecl is a class type, but not a union type, @@ -1301,7 +1301,7 @@ /// \note This does NOT include a check for union-ness. bool isEmpty() const { return data().Empty; } - /// \brief Determine whether this class has direct non-static data members. + /// Determine whether this class has direct non-static data members. bool hasDirectFields() const { auto &D = data(); return D.HasPublicFields || D.HasProtectedFields || D.HasPrivateFields; @@ -1311,36 +1311,36 @@ /// which means that the class contains or inherits a virtual function. bool isPolymorphic() const { return data().Polymorphic; } - /// \brief Determine whether this class has a pure virtual function. + /// Determine whether this class has a pure virtual function. /// /// The class is is abstract per (C++ [class.abstract]p2) if it declares /// a pure virtual function or inherits a pure virtual function that is /// not overridden. bool isAbstract() const { return data().Abstract; } - /// \brief Determine whether this class is standard-layout per + /// Determine whether this class is standard-layout per /// C++ [class]p7. bool isStandardLayout() const { return data().IsStandardLayout; } - /// \brief Determine whether this class was standard-layout per + /// Determine whether this class was standard-layout per /// C++11 [class]p7, specifically using the C++11 rules without any DRs. bool isCXX11StandardLayout() const { return data().IsCXX11StandardLayout; } - /// \brief Determine whether this class, or any of its class subobjects, + /// Determine whether this class, or any of its class subobjects, /// contains a mutable field. bool hasMutableFields() const { return data().HasMutableFields; } - /// \brief Determine whether this class has any variant members. + /// Determine whether this class has any variant members. bool hasVariantMembers() const { return data().HasVariantMembers; } - /// \brief Determine whether this class has a trivial default constructor + /// Determine whether this class has a trivial default constructor /// (C++11 [class.ctor]p5). bool hasTrivialDefaultConstructor() const { return hasDefaultConstructor() && (data().HasTrivialSpecialMembers & SMF_DefaultConstructor); } - /// \brief Determine whether this class has a non-trivial default constructor + /// Determine whether this class has a non-trivial default constructor /// (C++11 [class.ctor]p5). bool hasNonTrivialDefaultConstructor() const { return (data().DeclaredNonTrivialSpecialMembers & SMF_DefaultConstructor) || @@ -1348,7 +1348,7 @@ !(data().HasTrivialSpecialMembers & SMF_DefaultConstructor)); } - /// \brief Determine whether this class has at least one constexpr constructor + /// Determine whether this class has at least one constexpr constructor /// other than the copy or move constructors. bool hasConstexprNonCopyMoveConstructor() const { return data().HasConstexprNonCopyMoveConstructor || @@ -1356,21 +1356,21 @@ defaultedDefaultConstructorIsConstexpr()); } - /// \brief Determine whether a defaulted default constructor for this class + /// Determine whether a defaulted default constructor for this class /// would be constexpr. bool defaultedDefaultConstructorIsConstexpr() const { return data().DefaultedDefaultConstructorIsConstexpr && (!isUnion() || hasInClassInitializer() || !hasVariantMembers()); } - /// \brief Determine whether this class has a constexpr default constructor. + /// Determine whether this class has a constexpr default constructor. bool hasConstexprDefaultConstructor() const { return data().HasConstexprDefaultConstructor || (needsImplicitDefaultConstructor() && defaultedDefaultConstructorIsConstexpr()); } - /// \brief Determine whether this class has a trivial copy constructor + /// Determine whether this class has a trivial copy constructor /// (C++ [class.copy]p6, C++11 [class.copy]p12) bool hasTrivialCopyConstructor() const { return data().HasTrivialSpecialMembers & SMF_CopyConstructor; @@ -1380,7 +1380,7 @@ return data().HasTrivialSpecialMembersForCall & SMF_CopyConstructor; } - /// \brief Determine whether this class has a non-trivial copy constructor + /// Determine whether this class has a non-trivial copy constructor /// (C++ [class.copy]p6, C++11 [class.copy]p12) bool hasNonTrivialCopyConstructor() const { return data().DeclaredNonTrivialSpecialMembers & SMF_CopyConstructor || @@ -1393,7 +1393,7 @@ !hasTrivialCopyConstructorForCall(); } - /// \brief Determine whether this class has a trivial move constructor + /// Determine whether this class has a trivial move constructor /// (C++11 [class.copy]p12) bool hasTrivialMoveConstructor() const { return hasMoveConstructor() && @@ -1405,7 +1405,7 @@ (data().HasTrivialSpecialMembersForCall & SMF_MoveConstructor); } - /// \brief Determine whether this class has a non-trivial move constructor + /// Determine whether this class has a non-trivial move constructor /// (C++11 [class.copy]p12) bool hasNonTrivialMoveConstructor() const { return (data().DeclaredNonTrivialSpecialMembers & SMF_MoveConstructor) || @@ -1420,27 +1420,27 @@ !(data().HasTrivialSpecialMembersForCall & SMF_MoveConstructor)); } - /// \brief Determine whether this class has a trivial copy assignment operator + /// Determine whether this class has a trivial copy assignment operator /// (C++ [class.copy]p11, C++11 [class.copy]p25) bool hasTrivialCopyAssignment() const { return data().HasTrivialSpecialMembers & SMF_CopyAssignment; } - /// \brief Determine whether this class has a non-trivial copy assignment + /// Determine whether this class has a non-trivial copy assignment /// operator (C++ [class.copy]p11, C++11 [class.copy]p25) bool hasNonTrivialCopyAssignment() const { return data().DeclaredNonTrivialSpecialMembers & SMF_CopyAssignment || !hasTrivialCopyAssignment(); } - /// \brief Determine whether this class has a trivial move assignment operator + /// Determine whether this class has a trivial move assignment operator /// (C++11 [class.copy]p25) bool hasTrivialMoveAssignment() const { return hasMoveAssignment() && (data().HasTrivialSpecialMembers & SMF_MoveAssignment); } - /// \brief Determine whether this class has a non-trivial move assignment + /// Determine whether this class has a non-trivial move assignment /// operator (C++11 [class.copy]p25) bool hasNonTrivialMoveAssignment() const { return (data().DeclaredNonTrivialSpecialMembers & SMF_MoveAssignment) || @@ -1448,7 +1448,7 @@ !(data().HasTrivialSpecialMembers & SMF_MoveAssignment)); } - /// \brief Determine whether this class has a trivial destructor + /// Determine whether this class has a trivial destructor /// (C++ [class.dtor]p3) bool hasTrivialDestructor() const { return data().HasTrivialSpecialMembers & SMF_Destructor; @@ -1458,7 +1458,7 @@ return data().HasTrivialSpecialMembersForCall & SMF_Destructor; } - /// \brief Determine whether this class has a non-trivial destructor + /// Determine whether this class has a non-trivial destructor /// (C++ [class.dtor]p3) bool hasNonTrivialDestructor() const { return !(data().HasTrivialSpecialMembers & SMF_Destructor); @@ -1473,7 +1473,7 @@ (SMF_CopyConstructor | SMF_MoveConstructor | SMF_Destructor); } - /// \brief Determine whether declaring a const variable with this type is ok + /// Determine whether declaring a const variable with this type is ok /// per core issue 253. bool allowConstDefaultInit() const { return !data().HasUninitializedFields || @@ -1481,7 +1481,7 @@ needsImplicitDefaultConstructor()); } - /// \brief Determine whether this class has a destructor which has no + /// Determine whether this class has a destructor which has no /// semantic effect. /// /// Any such destructor will be trivial, public, defaulted and not deleted, @@ -1490,29 +1490,29 @@ return data().HasIrrelevantDestructor; } - /// \brief Determine whether this class has a non-literal or/ volatile type + /// Determine whether this class has a non-literal or/ volatile type /// non-static data member or base class. bool hasNonLiteralTypeFieldsOrBases() const { return data().HasNonLiteralTypeFieldsOrBases; } - /// \brief Determine whether this class has a using-declaration that names + /// Determine whether this class has a using-declaration that names /// a user-declared base class constructor. bool hasInheritedConstructor() const { return data().HasInheritedConstructor; } - /// \brief Determine whether this class has a using-declaration that names + /// Determine whether this class has a using-declaration that names /// a base class assignment operator. bool hasInheritedAssignment() const { return data().HasInheritedAssignment; } - /// \brief Determine whether this class is considered trivially copyable per + /// Determine whether this class is considered trivially copyable per /// (C++11 [class]p6). bool isTriviallyCopyable() const; - /// \brief Determine whether this class is considered trivial. + /// Determine whether this class is considered trivial. /// /// C++11 [class]p6: /// "A trivial class is a class that has a trivial default constructor and @@ -1521,7 +1521,7 @@ return isTriviallyCopyable() && hasTrivialDefaultConstructor(); } - /// \brief Determine whether this class is a literal type. + /// Determine whether this class is a literal type. /// /// C++11 [basic.types]p10: /// A class type that has all the following properties: @@ -1547,7 +1547,7 @@ hasTrivialDefaultConstructor()); } - /// \brief If this record is an instantiation of a member class, + /// If this record is an instantiation of a member class, /// retrieves the member class from which it was instantiated. /// /// This routine will return non-null for (non-templated) member @@ -1568,17 +1568,17 @@ /// declaration returned by getInstantiatedFromMemberClass(). CXXRecordDecl *getInstantiatedFromMemberClass() const; - /// \brief If this class is an instantiation of a member class of a + /// If this class is an instantiation of a member class of a /// class template specialization, retrieves the member specialization /// information. MemberSpecializationInfo *getMemberSpecializationInfo() const; - /// \brief Specify that this record is an instantiation of the + /// Specify that this record is an instantiation of the /// member class \p RD. void setInstantiationOfMemberClass(CXXRecordDecl *RD, TemplateSpecializationKind TSK); - /// \brief Retrieves the class template that is described by this + /// Retrieves the class template that is described by this /// class declaration. /// /// Every class template is represented as a ClassTemplateDecl and a @@ -1593,15 +1593,15 @@ void setDescribedClassTemplate(ClassTemplateDecl *Template); - /// \brief Determine whether this particular class is a specialization or + /// Determine whether this particular class is a specialization or /// instantiation of a class template or member class of a class template, /// and how it was instantiated or specialized. TemplateSpecializationKind getTemplateSpecializationKind() const; - /// \brief Set the kind of specialization or template instantiation this is. + /// Set the kind of specialization or template instantiation this is. void setTemplateSpecializationKind(TemplateSpecializationKind TSK); - /// \brief Retrieve the record declaration from which this record could be + /// Retrieve the record declaration from which this record could be /// instantiated. Returns null if this class is not a template instantiation. const CXXRecordDecl *getTemplateInstantiationPattern() const; @@ -1610,14 +1610,14 @@ ->getTemplateInstantiationPattern()); } - /// \brief Returns the destructor decl for this class. + /// Returns the destructor decl for this class. CXXDestructorDecl *getDestructor() const; - /// \brief Returns true if the class destructor, or any implicitly invoked + /// Returns true if the class destructor, or any implicitly invoked /// destructors are marked noreturn. bool isAnyDestructorNoReturn() const; - /// \brief If the class is a local class [class.local], returns + /// If the class is a local class [class.local], returns /// the enclosing function declaration. const FunctionDecl *isLocalClass() const { if (const auto *RD = dyn_cast(getDeclContext())) @@ -1631,11 +1631,11 @@ const_cast(this)->isLocalClass()); } - /// \brief Determine whether this dependent class is a current instantiation, + /// Determine whether this dependent class is a current instantiation, /// when viewed from within the given context. bool isCurrentInstantiation(const DeclContext *CurContext) const; - /// \brief Determine whether this class is derived from the class \p Base. + /// Determine whether this class is derived from the class \p Base. /// /// This routine only determines whether this class is derived from \p Base, /// but does not account for factors that may make a Derived -> Base class @@ -1647,7 +1647,7 @@ /// \returns true if this class is derived from Base, false otherwise. bool isDerivedFrom(const CXXRecordDecl *Base) const; - /// \brief Determine whether this class is derived from the type \p Base. + /// Determine whether this class is derived from the type \p Base. /// /// This routine only determines whether this class is derived from \p Base, /// but does not account for factors that may make a Derived -> Base class @@ -1665,7 +1665,7 @@ /// tangling input and output in \p Paths bool isDerivedFrom(const CXXRecordDecl *Base, CXXBasePaths &Paths) const; - /// \brief Determine whether this class is virtually derived from + /// Determine whether this class is virtually derived from /// the class \p Base. /// /// This routine only determines whether this class is virtually @@ -1680,11 +1680,11 @@ /// false otherwise. bool isVirtuallyDerivedFrom(const CXXRecordDecl *Base) const; - /// \brief Determine whether this class is provably not derived from + /// Determine whether this class is provably not derived from /// the type \p Base. bool isProvablyNotDerivedFrom(const CXXRecordDecl *Base) const; - /// \brief Function type used by forallBases() as a callback. + /// Function type used by forallBases() as a callback. /// /// \param BaseDefinition the definition of the base class /// @@ -1692,7 +1692,7 @@ using ForallBasesCallback = llvm::function_ref; - /// \brief Determines if the given callback holds for all the direct + /// Determines if the given callback holds for all the direct /// or indirect base classes of this type. /// /// The class itself does not count as a base class. This routine @@ -1708,7 +1708,7 @@ bool forallBases(ForallBasesCallback BaseMatches, bool AllowShortCircuit = true) const; - /// \brief Function type used by lookupInBases() to determine whether a + /// Function type used by lookupInBases() to determine whether a /// specific base class subobject matches the lookup criteria. /// /// \param Specifier the base-class specifier that describes the inheritance @@ -1722,7 +1722,7 @@ llvm::function_ref; - /// \brief Look for entities within the base classes of this C++ class, + /// Look for entities within the base classes of this C++ class, /// transitively searching all base class subobjects. /// /// This routine uses the callback function \p BaseMatches to find base @@ -1746,7 +1746,7 @@ bool lookupInBases(BaseMatchesCallback BaseMatches, CXXBasePaths &Paths, bool LookupInDependent = false) const; - /// \brief Base-class lookup callback that determines whether the given + /// Base-class lookup callback that determines whether the given /// base class specifier refers to a specific class declaration. /// /// This callback can be used with \c lookupInBases() to determine whether @@ -1756,7 +1756,7 @@ static bool FindBaseClass(const CXXBaseSpecifier *Specifier, CXXBasePath &Path, const CXXRecordDecl *BaseRecord); - /// \brief Base-class lookup callback that determines whether the + /// Base-class lookup callback that determines whether the /// given base class specifier refers to a specific class /// declaration and describes virtual derivation. /// @@ -1769,7 +1769,7 @@ CXXBasePath &Path, const CXXRecordDecl *BaseRecord); - /// \brief Base-class lookup callback that determines whether there exists + /// Base-class lookup callback that determines whether there exists /// a tag with the given name. /// /// This callback can be used with \c lookupInBases() to find tag members @@ -1777,7 +1777,7 @@ static bool FindTagMember(const CXXBaseSpecifier *Specifier, CXXBasePath &Path, DeclarationName Name); - /// \brief Base-class lookup callback that determines whether there exists + /// Base-class lookup callback that determines whether there exists /// a member with the given name. /// /// This callback can be used with \c lookupInBases() to find members @@ -1785,7 +1785,7 @@ static bool FindOrdinaryMember(const CXXBaseSpecifier *Specifier, CXXBasePath &Path, DeclarationName Name); - /// \brief Base-class lookup callback that determines whether there exists + /// Base-class lookup callback that determines whether there exists /// a member with the given name. /// /// This callback can be used with \c lookupInBases() to find members @@ -1795,7 +1795,7 @@ FindOrdinaryMemberInDependentClasses(const CXXBaseSpecifier *Specifier, CXXBasePath &Path, DeclarationName Name); - /// \brief Base-class lookup callback that determines whether there exists + /// Base-class lookup callback that determines whether there exists /// an OpenMP declare reduction member with the given name. /// /// This callback can be used with \c lookupInBases() to find members @@ -1803,7 +1803,7 @@ static bool FindOMPReductionMember(const CXXBaseSpecifier *Specifier, CXXBasePath &Path, DeclarationName Name); - /// \brief Base-class lookup callback that determines whether there exists + /// Base-class lookup callback that determines whether there exists /// a member with the given name that can be used in a nested-name-specifier. /// /// This callback can be used with \c lookupInBases() to find members of @@ -1813,12 +1813,12 @@ CXXBasePath &Path, DeclarationName Name); - /// \brief Retrieve the final overriders for each virtual member + /// Retrieve the final overriders for each virtual member /// function in the class hierarchy where this class is the /// most-derived class in the class hierarchy. void getFinalOverriders(CXXFinalOverriderMap &FinaOverriders) const; - /// \brief Get the indirect primary bases for this class. + /// Get the indirect primary bases for this class. void getIndirectPrimaryBases(CXXIndirectPrimaryBaseSet& Bases) const; /// Performs an imprecise lookup of a dependent name in this class. @@ -1834,7 +1834,7 @@ /// GraphViz. void viewInheritance(ASTContext& Context) const; - /// \brief Calculates the access of a decl that is reached + /// Calculates the access of a decl that is reached /// along a path. static AccessSpecifier MergeAccess(AccessSpecifier PathAccess, AccessSpecifier DeclAccess) { @@ -1843,16 +1843,16 @@ return (PathAccess > DeclAccess ? PathAccess : DeclAccess); } - /// \brief Indicates that the declaration of a defaulted or deleted special + /// Indicates that the declaration of a defaulted or deleted special /// member function is now complete. void finishedDefaultedOrDeletedMember(CXXMethodDecl *MD); void setTrivialForCallFlags(CXXMethodDecl *MD); - /// \brief Indicates that the definition of this class is now complete. + /// Indicates that the definition of this class is now complete. void completeDefinition() override; - /// \brief Indicates that the definition of this class is now complete, + /// Indicates that the definition of this class is now complete, /// and provides a final overrider map to help determine /// /// \param FinalOverriders The final overrider map for this class, which can @@ -1861,7 +1861,7 @@ /// definition. void completeDefinition(CXXFinalOverriderMap *FinalOverriders); - /// \brief Determine whether this class may end up being abstract, even though + /// Determine whether this class may end up being abstract, even though /// it is not yet known to be abstract. /// /// \returns true if this class is not known to be abstract but has any @@ -1870,7 +1870,7 @@ /// actually abstract. bool mayBeAbstract() const; - /// \brief If this is the closure type of a lambda expression, retrieve the + /// If this is the closure type of a lambda expression, retrieve the /// number to be used for name mangling in the Itanium C++ ABI. /// /// Zero indicates that this closure type has internal linkage, so the @@ -1881,7 +1881,7 @@ return getLambdaData().ManglingNumber; } - /// \brief Retrieve the declaration that provides additional context for a + /// Retrieve the declaration that provides additional context for a /// lambda, when the normal declaration context is not specific enough. /// /// Certain contexts (default arguments of in-class function parameters and @@ -1892,17 +1892,17 @@ /// the declaration context suffices. Decl *getLambdaContextDecl() const; - /// \brief Set the mangling number and context declaration for a lambda + /// Set the mangling number and context declaration for a lambda /// class. void setLambdaMangling(unsigned ManglingNumber, Decl *ContextDecl) { getLambdaData().ManglingNumber = ManglingNumber; getLambdaData().ContextDecl = ContextDecl; } - /// \brief Returns the inheritance model used for this record. + /// Returns the inheritance model used for this record. MSInheritanceAttr::Spelling getMSInheritanceModel() const; - /// \brief Calculate what the inheritance model would be for this class. + /// Calculate what the inheritance model would be for this class. MSInheritanceAttr::Spelling calculateInheritanceModel() const; /// In the Microsoft C++ ABI, use zero for the field offset of a null data @@ -1917,11 +1917,11 @@ (hasDefinition() && isPolymorphic()); } - /// \brief Controls when vtordisps will be emitted if this record is used as a + /// Controls when vtordisps will be emitted if this record is used as a /// virtual base. MSVtorDispAttr::Mode getMSVtorDispMode() const; - /// \brief Determine whether this lambda expression was known to be dependent + /// Determine whether this lambda expression was known to be dependent /// at the time it was created, even if its context does not appear to be /// dependent. /// @@ -1940,7 +1940,7 @@ return getLambdaData().MethodTyInfo; } - // \brief Determine whether this type is an Interface Like type for + // Determine whether this type is an Interface Like type for // __interface inheritance purposes. bool isInterfaceLike() const; @@ -1950,7 +1950,7 @@ } }; -/// \brief Represents a C++ deduction guide declaration. +/// Represents a C++ deduction guide declaration. /// /// \code /// template struct A { A(); A(T); }; @@ -2009,7 +2009,7 @@ static bool classofKind(Kind K) { return K == CXXDeductionGuide; } }; -/// \brief Represents a static or instance method of a struct/union/class. +/// Represents a static or instance method of a struct/union/class. /// /// In the terminology of the C++ Standard, these are the (static and /// non-static) member functions, whether virtual or not. @@ -2082,16 +2082,16 @@ Base, IsAppleKext); } - /// \brief Determine whether this is a usual deallocation function + /// Determine whether this is a usual deallocation function /// (C++ [basic.stc.dynamic.deallocation]p2), which is an overloaded /// delete or delete[] operator with a particular signature. bool isUsualDeallocationFunction() const; - /// \brief Determine whether this is a copy-assignment operator, regardless + /// Determine whether this is a copy-assignment operator, regardless /// of whether it was declared implicitly or explicitly. bool isCopyAssignmentOperator() const; - /// \brief Determine whether this is a move assignment operator. + /// Determine whether this is a move assignment operator. bool isMoveAssignmentOperator() const; CXXMethodDecl *getCanonicalDecl() override { @@ -2144,7 +2144,7 @@ cast(FunctionDecl::getParent())); } - /// \brief Returns the type of the \c this pointer. + /// Returns the type of the \c this pointer. /// /// Should only be called for instance (i.e., non-static) methods. Note /// that for the call operator of a lambda closure type, this returns the @@ -2156,7 +2156,7 @@ return getType()->getAs()->getTypeQuals(); } - /// \brief Retrieve the ref-qualifier associated with this method. + /// Retrieve the ref-qualifier associated with this method. /// /// In the following example, \c f() has an lvalue ref-qualifier, \c g() /// has an rvalue ref-qualifier, and \c h() has no ref-qualifier. @@ -2173,7 +2173,7 @@ bool hasInlineBody() const; - /// \brief Determine whether this is a lambda closure type's static member + /// Determine whether this is a lambda closure type's static member /// function that is used for the result of the lambda's conversion to /// function pointer (for a lambda with no captures). /// @@ -2182,7 +2182,7 @@ /// or clone the function call operator. bool isLambdaStaticInvoker() const; - /// \brief Find the method in \p RD that corresponds to this one. + /// Find the method in \p RD that corresponds to this one. /// /// Find if \p RD or one of the classes it inherits from override this method. /// If so, return it. \p RD is assumed to be a subclass of the class defining @@ -2205,7 +2205,7 @@ } }; -/// \brief Represents a C++ base or member initializer. +/// Represents a C++ base or member initializer. /// /// This is part of a constructor initializer that /// initializes one non-static member variable or one base class. For @@ -2221,13 +2221,13 @@ /// }; /// \endcode class CXXCtorInitializer final { - /// \brief Either the base class name/delegating constructor type (stored as + /// Either the base class name/delegating constructor type (stored as /// a TypeSourceInfo*), an normal field (FieldDecl), or an anonymous field /// (IndirectFieldDecl*) being initialized. llvm::PointerUnion3 Initializee; - /// \brief The source location for the field name or, for a base initializer + /// The source location for the field name or, for a base initializer /// pack expansion, the location of the ellipsis. /// /// In the case of a delegating @@ -2235,25 +2235,25 @@ /// Initializee points to the CXXConstructorDecl (to allow loop detection). SourceLocation MemberOrEllipsisLocation; - /// \brief The argument used to initialize the base or member, which may + /// The argument used to initialize the base or member, which may /// end up constructing an object (when multiple arguments are involved). Stmt *Init; - /// \brief Location of the left paren of the ctor-initializer. + /// Location of the left paren of the ctor-initializer. SourceLocation LParenLoc; - /// \brief Location of the right paren of the ctor-initializer. + /// Location of the right paren of the ctor-initializer. SourceLocation RParenLoc; - /// \brief If the initializee is a type, whether that type makes this + /// If the initializee is a type, whether that type makes this /// a delegating initialization. unsigned IsDelegating : 1; - /// \brief If the initializer is a base initializer, this keeps track + /// If the initializer is a base initializer, this keeps track /// of whether the base is virtual or not. unsigned IsVirtual : 1; - /// \brief Whether or not the initializer is explicitly written + /// Whether or not the initializer is explicitly written /// in the sources. unsigned IsWritten : 1; @@ -2262,35 +2262,35 @@ unsigned SourceOrder : 13; public: - /// \brief Creates a new base-class initializer. + /// Creates a new base-class initializer. explicit CXXCtorInitializer(ASTContext &Context, TypeSourceInfo *TInfo, bool IsVirtual, SourceLocation L, Expr *Init, SourceLocation R, SourceLocation EllipsisLoc); - /// \brief Creates a new member initializer. + /// Creates a new member initializer. explicit CXXCtorInitializer(ASTContext &Context, FieldDecl *Member, SourceLocation MemberLoc, SourceLocation L, Expr *Init, SourceLocation R); - /// \brief Creates a new anonymous field initializer. + /// Creates a new anonymous field initializer. explicit CXXCtorInitializer(ASTContext &Context, IndirectFieldDecl *Member, SourceLocation MemberLoc, SourceLocation L, Expr *Init, SourceLocation R); - /// \brief Creates a new delegating initializer. + /// Creates a new delegating initializer. explicit CXXCtorInitializer(ASTContext &Context, TypeSourceInfo *TInfo, SourceLocation L, Expr *Init, SourceLocation R); - /// \brief Determine whether this initializer is initializing a base class. + /// Determine whether this initializer is initializing a base class. bool isBaseInitializer() const { return Initializee.is() && !IsDelegating; } - /// \brief Determine whether this initializer is initializing a non-static + /// Determine whether this initializer is initializing a non-static /// data member. bool isMemberInitializer() const { return Initializee.is(); } @@ -2302,7 +2302,7 @@ return Initializee.is(); } - /// \brief Determine whether this initializer is an implicit initializer + /// Determine whether this initializer is an implicit initializer /// generated for a field with an initializer defined on the member /// declaration. /// @@ -2312,18 +2312,18 @@ return Init->getStmtClass() == Stmt::CXXDefaultInitExprClass; } - /// \brief Determine whether this initializer is creating a delegating + /// Determine whether this initializer is creating a delegating /// constructor. bool isDelegatingInitializer() const { return Initializee.is() && IsDelegating; } - /// \brief Determine whether this initializer is a pack expansion. + /// Determine whether this initializer is a pack expansion. bool isPackExpansion() const { return isBaseInitializer() && MemberOrEllipsisLocation.isValid(); } - // \brief For a pack expansion, returns the location of the ellipsis. + // For a pack expansion, returns the location of the ellipsis. SourceLocation getEllipsisLoc() const { assert(isPackExpansion() && "Initializer is not a pack expansion"); return MemberOrEllipsisLocation; @@ -2345,13 +2345,13 @@ return IsVirtual; } - /// \brief Returns the declarator information for a base class or delegating + /// Returns the declarator information for a base class or delegating /// initializer. TypeSourceInfo *getTypeSourceInfo() const { return Initializee.dyn_cast(); } - /// \brief If this is a member initializer, returns the declaration of the + /// If this is a member initializer, returns the declaration of the /// non-static data member being initialized. Otherwise, returns null. FieldDecl *getMember() const { if (isMemberInitializer()) @@ -2377,23 +2377,23 @@ return MemberOrEllipsisLocation; } - /// \brief Determine the source location of the initializer. + /// Determine the source location of the initializer. SourceLocation getSourceLocation() const; - /// \brief Determine the source range covering the entire initializer. + /// Determine the source range covering the entire initializer. SourceRange getSourceRange() const LLVM_READONLY; - /// \brief Determine whether this initializer is explicitly written + /// Determine whether this initializer is explicitly written /// in the source code. bool isWritten() const { return IsWritten; } - /// \brief Return the source position of the initializer, counting from 0. + /// Return the source position of the initializer, counting from 0. /// If the initializer was implicit, -1 is returned. int getSourceOrder() const { return IsWritten ? static_cast(SourceOrder) : -1; } - /// \brief Set the source order of this initializer. + /// Set the source order of this initializer. /// /// This can only be called once for each initializer; it cannot be called /// on an initializer having a positive number of (implicit) array indices. @@ -2414,7 +2414,7 @@ SourceLocation getLParenLoc() const { return LParenLoc; } SourceLocation getRParenLoc() const { return RParenLoc; } - /// \brief Get the initializer. + /// Get the initializer. Expr *getInit() const { return static_cast(Init); } }; @@ -2435,7 +2435,7 @@ CXXConstructorDecl *getConstructor() const { return BaseCtor; } }; -/// \brief Represents a C++ constructor within a class. +/// Represents a C++ constructor within a class. /// /// For example: /// @@ -2450,12 +2450,12 @@ private llvm::TrailingObjects { /// \name Support for base and member initializers. /// \{ - /// \brief The arguments used to initialize the base or member. + /// The arguments used to initialize the base or member. LazyCXXCtorInitializersPtr CtorInitializers; unsigned NumCtorInitializers : 31; /// \} - /// \brief Whether this constructor declaration is an implicitly-declared + /// Whether this constructor declaration is an implicitly-declared /// inheriting constructor. unsigned IsInheritingConstructor : 1; @@ -2490,10 +2490,10 @@ bool isConstexpr, InheritedConstructor Inherited = InheritedConstructor()); - /// \brief Iterates through the member/base initializer list. + /// Iterates through the member/base initializer list. using init_iterator = CXXCtorInitializer **; - /// \brief Iterates through the member/base initializer list. + /// Iterates through the member/base initializer list. using init_const_iterator = CXXCtorInitializer *const *; using init_range = llvm::iterator_range; @@ -2504,21 +2504,21 @@ return init_const_range(init_begin(), init_end()); } - /// \brief Retrieve an iterator to the first initializer. + /// Retrieve an iterator to the first initializer. init_iterator init_begin() { const auto *ConstThis = this; return const_cast(ConstThis->init_begin()); } - /// \brief Retrieve an iterator to the first initializer. + /// Retrieve an iterator to the first initializer. init_const_iterator init_begin() const; - /// \brief Retrieve an iterator past the last initializer. + /// Retrieve an iterator past the last initializer. init_iterator init_end() { return init_begin() + NumCtorInitializers; } - /// \brief Retrieve an iterator past the last initializer. + /// Retrieve an iterator past the last initializer. init_const_iterator init_end() const { return init_begin() + NumCtorInitializers; } @@ -2541,7 +2541,7 @@ return init_const_reverse_iterator(init_begin()); } - /// \brief Determine the number of arguments used to initialize the member + /// Determine the number of arguments used to initialize the member /// or base. unsigned getNumCtorInitializers() const { return NumCtorInitializers; @@ -2563,13 +2563,13 @@ return getCanonicalDecl()->isExplicitSpecified(); } - /// \brief Determine whether this constructor is a delegating constructor. + /// Determine whether this constructor is a delegating constructor. bool isDelegatingConstructor() const { return (getNumCtorInitializers() == 1) && init_begin()[0]->isDelegatingInitializer(); } - /// \brief When this constructor delegates to another, retrieve the target. + /// When this constructor delegates to another, retrieve the target. CXXConstructorDecl *getTargetConstructor() const; /// Whether this constructor is a default @@ -2577,7 +2577,7 @@ /// default-initialize a class of this type. bool isDefaultConstructor() const; - /// \brief Whether this constructor is a copy constructor (C++ [class.copy]p2, + /// Whether this constructor is a copy constructor (C++ [class.copy]p2, /// which can be used to copy the class. /// /// \p TypeQuals will be set to the qualifiers on the @@ -2600,27 +2600,27 @@ return isCopyConstructor(TypeQuals); } - /// \brief Determine whether this constructor is a move constructor + /// Determine whether this constructor is a move constructor /// (C++11 [class.copy]p3), which can be used to move values of the class. /// /// \param TypeQuals If this constructor is a move constructor, will be set /// to the type qualifiers on the referent of the first parameter's type. bool isMoveConstructor(unsigned &TypeQuals) const; - /// \brief Determine whether this constructor is a move constructor + /// Determine whether this constructor is a move constructor /// (C++11 [class.copy]p3), which can be used to move values of the class. bool isMoveConstructor() const { unsigned TypeQuals = 0; return isMoveConstructor(TypeQuals); } - /// \brief Determine whether this is a copy or move constructor. + /// Determine whether this is a copy or move constructor. /// /// \param TypeQuals Will be set to the type qualifiers on the reference /// parameter, if in fact this is a copy or move constructor. bool isCopyOrMoveConstructor(unsigned &TypeQuals) const; - /// \brief Determine whether this a copy or move constructor. + /// Determine whether this a copy or move constructor. bool isCopyOrMoveConstructor() const { unsigned Quals; return isCopyOrMoveConstructor(Quals); @@ -2631,16 +2631,16 @@ /// used for user-defined conversions. bool isConvertingConstructor(bool AllowExplicit) const; - /// \brief Determine whether this is a member template specialization that + /// Determine whether this is a member template specialization that /// would copy the object to itself. Such constructors are never used to copy /// an object. bool isSpecializationCopyingObject() const; - /// \brief Determine whether this is an implicit constructor synthesized to + /// Determine whether this is an implicit constructor synthesized to /// model a call to a constructor inherited from a base class. bool isInheritingConstructor() const { return IsInheritingConstructor; } - /// \brief Get the constructor that this inheriting constructor is based on. + /// Get the constructor that this inheriting constructor is based on. InheritedConstructor getInheritedConstructor() const { return IsInheritingConstructor ? *getTrailingObjects() : InheritedConstructor(); @@ -2658,7 +2658,7 @@ static bool classofKind(Kind K) { return K == CXXConstructor; } }; -/// \brief Represents a C++ destructor within a class. +/// Represents a C++ destructor within a class. /// /// For example: /// @@ -2720,7 +2720,7 @@ static bool classofKind(Kind K) { return K == CXXDestructor; } }; -/// \brief Represents a C++ conversion function within a class. +/// Represents a C++ conversion function within a class. /// /// For example: /// @@ -2764,12 +2764,12 @@ return getCanonicalDecl()->isExplicitSpecified(); } - /// \brief Returns the type that this conversion function is converting to. + /// Returns the type that this conversion function is converting to. QualType getConversionType() const { return getType()->getAs()->getReturnType(); } - /// \brief Determine whether this conversion function is a conversion from + /// Determine whether this conversion function is a conversion from /// a lambda closure type to a block pointer. bool isLambdaToBlockPointerConversion() const; @@ -2785,7 +2785,7 @@ static bool classofKind(Kind K) { return K == CXXConversion; } }; -/// \brief Represents a linkage specification. +/// Represents a linkage specification. /// /// For example: /// \code @@ -2795,7 +2795,7 @@ virtual void anchor(); public: - /// \brief Represents the language in a linkage specification. + /// Represents the language in a linkage specification. /// /// The values are part of the serialization ABI for /// ASTs and cannot be changed without altering that ABI. To help @@ -2807,20 +2807,20 @@ }; private: - /// \brief The language for this linkage specification. + /// The language for this linkage specification. unsigned Language : 3; - /// \brief True if this linkage spec has braces. + /// True if this linkage spec has braces. /// /// This is needed so that hasBraces() returns the correct result while the /// linkage spec body is being parsed. Once RBraceLoc has been set this is /// not used, so it doesn't need to be serialized. unsigned HasBraces : 1; - /// \brief The source location for the extern keyword. + /// The source location for the extern keyword. SourceLocation ExternLoc; - /// \brief The source location for the right brace (if valid). + /// The source location for the right brace (if valid). SourceLocation RBraceLoc; LinkageSpecDecl(DeclContext *DC, SourceLocation ExternLoc, @@ -2836,13 +2836,13 @@ bool HasBraces); static LinkageSpecDecl *CreateDeserialized(ASTContext &C, unsigned ID); - /// \brief Return the language specified by this linkage specification. + /// Return the language specified by this linkage specification. LanguageIDs getLanguage() const { return LanguageIDs(Language); } - /// \brief Set the language specified by this linkage specification. + /// Set the language specified by this linkage specification. void setLanguage(LanguageIDs L) { Language = L; } - /// \brief Determines whether this linkage specification had braces in + /// Determines whether this linkage specification had braces in /// its syntactic form. bool hasBraces() const { assert(!RBraceLoc.isValid() || HasBraces); @@ -2881,7 +2881,7 @@ } }; -/// \brief Represents C++ using-directive. +/// Represents C++ using-directive. /// /// For example: /// \code @@ -2892,16 +2892,16 @@ /// artificial names for all using-directives in order to store /// them in DeclContext effectively. class UsingDirectiveDecl : public NamedDecl { - /// \brief The location of the \c using keyword. + /// The location of the \c using keyword. SourceLocation UsingLoc; - /// \brief The location of the \c namespace keyword. + /// The location of the \c namespace keyword. SourceLocation NamespaceLoc; - /// \brief The nested-name-specifier that precedes the namespace. + /// The nested-name-specifier that precedes the namespace. NestedNameSpecifierLoc QualifierLoc; - /// \brief The namespace nominated by this using-directive. + /// The namespace nominated by this using-directive. NamedDecl *NominatedNamespace; /// Enclosing context containing both using-directive and nominated @@ -2918,7 +2918,7 @@ NamespaceLoc(NamespcLoc), QualifierLoc(QualifierLoc), NominatedNamespace(Nominated), CommonAncestor(CommonAncestor) {} - /// \brief Returns special DeclarationName used by using-directives. + /// Returns special DeclarationName used by using-directives. /// /// This is only used by DeclContext for storing UsingDirectiveDecls in /// its lookup structure. @@ -2934,11 +2934,11 @@ // Friend for getUsingDirectiveName. friend class DeclContext; - /// \brief Retrieve the nested-name-specifier that qualifies the + /// Retrieve the nested-name-specifier that qualifies the /// name of the namespace, with source-location information. NestedNameSpecifierLoc getQualifierLoc() const { return QualifierLoc; } - /// \brief Retrieve the nested-name-specifier that qualifies the + /// Retrieve the nested-name-specifier that qualifies the /// name of the namespace. NestedNameSpecifier *getQualifier() const { return QualifierLoc.getNestedNameSpecifier(); @@ -2949,26 +2949,26 @@ return NominatedNamespace; } - /// \brief Returns the namespace nominated by this using-directive. + /// Returns the namespace nominated by this using-directive. NamespaceDecl *getNominatedNamespace(); const NamespaceDecl *getNominatedNamespace() const { return const_cast(this)->getNominatedNamespace(); } - /// \brief Returns the common ancestor context of this using-directive and + /// Returns the common ancestor context of this using-directive and /// its nominated namespace. DeclContext *getCommonAncestor() { return CommonAncestor; } const DeclContext *getCommonAncestor() const { return CommonAncestor; } - /// \brief Return the location of the \c using keyword. + /// Return the location of the \c using keyword. SourceLocation getUsingLoc() const { return UsingLoc; } // FIXME: Could omit 'Key' in name. - /// \brief Returns the location of the \c namespace keyword. + /// Returns the location of the \c namespace keyword. SourceLocation getNamespaceKeyLocation() const { return NamespaceLoc; } - /// \brief Returns the location of this using declaration's identifier. + /// Returns the location of this using declaration's identifier. SourceLocation getIdentLocation() const { return getLocation(); } static UsingDirectiveDecl *Create(ASTContext &C, DeclContext *DC, @@ -2988,7 +2988,7 @@ static bool classofKind(Kind K) { return K == UsingDirective; } }; -/// \brief Represents a C++ namespace alias. +/// Represents a C++ namespace alias. /// /// For example: /// @@ -2999,18 +2999,18 @@ public Redeclarable { friend class ASTDeclReader; - /// \brief The location of the \c namespace keyword. + /// The location of the \c namespace keyword. SourceLocation NamespaceLoc; - /// \brief The location of the namespace's identifier. + /// The location of the namespace's identifier. /// /// This is accessed by TargetNameLoc. SourceLocation IdentLoc; - /// \brief The nested-name-specifier that precedes the namespace. + /// The nested-name-specifier that precedes the namespace. NestedNameSpecifierLoc QualifierLoc; - /// \brief The Decl that this alias points to, either a NamespaceDecl or + /// The Decl that this alias points to, either a NamespaceDecl or /// a NamespaceAliasDecl. NamedDecl *Namespace; @@ -3057,17 +3057,17 @@ return getFirstDecl(); } - /// \brief Retrieve the nested-name-specifier that qualifies the + /// Retrieve the nested-name-specifier that qualifies the /// name of the namespace, with source-location information. NestedNameSpecifierLoc getQualifierLoc() const { return QualifierLoc; } - /// \brief Retrieve the nested-name-specifier that qualifies the + /// Retrieve the nested-name-specifier that qualifies the /// name of the namespace. NestedNameSpecifier *getQualifier() const { return QualifierLoc.getNestedNameSpecifier(); } - /// \brief Retrieve the namespace declaration aliased by this directive. + /// Retrieve the namespace declaration aliased by this directive. NamespaceDecl *getNamespace() { if (auto *AD = dyn_cast(Namespace)) return AD->getNamespace(); @@ -3089,7 +3089,7 @@ /// Returns the location of the identifier in the named namespace. SourceLocation getTargetNameLoc() const { return IdentLoc; } - /// \brief Retrieve the namespace that this alias refers to, which + /// Retrieve the namespace that this alias refers to, which /// may either be a NamespaceDecl or a NamespaceAliasDecl. NamedDecl *getAliasedNamespace() const { return Namespace; } @@ -3101,7 +3101,7 @@ static bool classofKind(Kind K) { return K == NamespaceAlias; } }; -/// \brief Represents a shadow declaration introduced into a scope by a +/// Represents a shadow declaration introduced into a scope by a /// (resolved) using declaration. /// /// For example, @@ -3120,7 +3120,7 @@ /// The referenced declaration. NamedDecl *Underlying = nullptr; - /// \brief The using declaration which introduced this decl or the next using + /// The using declaration which introduced this decl or the next using /// shadow declaration contained in the aforementioned using declaration. NamedDecl *UsingOrNextShadow = nullptr; @@ -3174,11 +3174,11 @@ return getFirstDecl(); } - /// \brief Gets the underlying declaration which has been brought into the + /// Gets the underlying declaration which has been brought into the /// local scope. NamedDecl *getTargetDecl() const { return Underlying; } - /// \brief Sets the underlying declaration which has been brought into the + /// Sets the underlying declaration which has been brought into the /// local scope. void setTargetDecl(NamedDecl *ND) { assert(ND && "Target decl is null!"); @@ -3190,10 +3190,10 @@ ~(IDNS_OrdinaryFriend | IDNS_TagFriend | IDNS_LocalExtern); } - /// \brief Gets the using declaration to which this declaration is tied. + /// Gets the using declaration to which this declaration is tied. UsingDecl *getUsingDecl() const; - /// \brief The next using shadow declaration contained in the shadow decl + /// The next using shadow declaration contained in the shadow decl /// chain of the using declaration which introduced this decl. UsingShadowDecl *getNextUsingShadowDecl() const { return dyn_cast_or_null(UsingOrNextShadow); @@ -3205,7 +3205,7 @@ } }; -/// \brief Represents a shadow constructor declaration introduced into a +/// Represents a shadow constructor declaration introduced into a /// class by a C++11 using-declaration that names a constructor. /// /// For example: @@ -3216,18 +3216,18 @@ /// }; /// \endcode class ConstructorUsingShadowDecl final : public UsingShadowDecl { - /// \brief If this constructor using declaration inherted the constructor + /// If this constructor using declaration inherted the constructor /// from an indirect base class, this is the ConstructorUsingShadowDecl /// in the named direct base class from which the declaration was inherited. ConstructorUsingShadowDecl *NominatedBaseClassShadowDecl = nullptr; - /// \brief If this constructor using declaration inherted the constructor + /// If this constructor using declaration inherted the constructor /// from an indirect base class, this is the ConstructorUsingShadowDecl /// that will be used to construct the unique direct or virtual base class /// that receives the constructor arguments. ConstructorUsingShadowDecl *ConstructedBaseClassShadowDecl = nullptr; - /// \brief \c true if the constructor ultimately named by this using shadow + /// \c true if the constructor ultimately named by this using shadow /// declaration is within a virtual base class subobject of the class that /// contains this declaration. unsigned IsVirtual : 1; @@ -3279,24 +3279,24 @@ } //@} - /// \brief Get the inheriting constructor declaration for the direct base + /// Get the inheriting constructor declaration for the direct base /// class from which this using shadow declaration was inherited, if there is /// one. This can be different for each redeclaration of the same shadow decl. ConstructorUsingShadowDecl *getNominatedBaseClassShadowDecl() const { return NominatedBaseClassShadowDecl; } - /// \brief Get the inheriting constructor declaration for the base class + /// Get the inheriting constructor declaration for the base class /// for which we don't have an explicit initializer, if there is one. ConstructorUsingShadowDecl *getConstructedBaseClassShadowDecl() const { return ConstructedBaseClassShadowDecl; } - /// \brief Get the base class that was named in the using declaration. This + /// Get the base class that was named in the using declaration. This /// can be different for each redeclaration of this same shadow decl. CXXRecordDecl *getNominatedBaseClass() const; - /// \brief Get the base class whose constructor or constructor shadow + /// Get the base class whose constructor or constructor shadow /// declaration is passed the constructor arguments. CXXRecordDecl *getConstructedBaseClass() const { return cast((ConstructedBaseClassShadowDecl @@ -3305,13 +3305,13 @@ ->getDeclContext()); } - /// \brief Returns \c true if the constructed base class is a virtual base + /// Returns \c true if the constructed base class is a virtual base /// class subobject of this declaration's class. bool constructsVirtualBase() const { return IsVirtual; } - /// \brief Get the constructor or constructor template in the derived class + /// Get the constructor or constructor template in the derived class /// correspnding to this using shadow declaration, if it has been implicitly /// declared already. CXXConstructorDecl *getConstructor() const; @@ -3321,24 +3321,24 @@ static bool classofKind(Kind K) { return K == ConstructorUsingShadow; } }; -/// \brief Represents a C++ using-declaration. +/// Represents a C++ using-declaration. /// /// For example: /// \code /// using someNameSpace::someIdentifier; /// \endcode class UsingDecl : public NamedDecl, public Mergeable { - /// \brief The source location of the 'using' keyword itself. + /// The source location of the 'using' keyword itself. SourceLocation UsingLocation; - /// \brief The nested-name-specifier that precedes the name. + /// The nested-name-specifier that precedes the name. NestedNameSpecifierLoc QualifierLoc; - /// \brief Provides source/type location info for the declaration name + /// Provides source/type location info for the declaration name /// embedded in the ValueDecl base class. DeclarationNameLoc DNLoc; - /// \brief The first shadow declaration of the shadow decl chain associated + /// The first shadow declaration of the shadow decl chain associated /// with this using declaration. /// /// The bool member of the pair store whether this decl has the \c typename @@ -3359,17 +3359,17 @@ friend class ASTDeclReader; friend class ASTDeclWriter; - /// \brief Return the source location of the 'using' keyword. + /// Return the source location of the 'using' keyword. SourceLocation getUsingLoc() const { return UsingLocation; } - /// \brief Set the source location of the 'using' keyword. + /// Set the source location of the 'using' keyword. void setUsingLoc(SourceLocation L) { UsingLocation = L; } - /// \brief Retrieve the nested-name-specifier that qualifies the name, + /// Retrieve the nested-name-specifier that qualifies the name, /// with source-location information. NestedNameSpecifierLoc getQualifierLoc() const { return QualifierLoc; } - /// \brief Retrieve the nested-name-specifier that qualifies the name. + /// Retrieve the nested-name-specifier that qualifies the name. NestedNameSpecifier *getQualifier() const { return QualifierLoc.getNestedNameSpecifier(); } @@ -3378,19 +3378,19 @@ return DeclarationNameInfo(getDeclName(), getLocation(), DNLoc); } - /// \brief Return true if it is a C++03 access declaration (no 'using'). + /// Return true if it is a C++03 access declaration (no 'using'). bool isAccessDeclaration() const { return UsingLocation.isInvalid(); } - /// \brief Return true if the using declaration has 'typename'. + /// Return true if the using declaration has 'typename'. bool hasTypename() const { return FirstUsingShadow.getInt(); } - /// \brief Sets whether the using declaration has 'typename'. + /// Sets whether the using declaration has 'typename'. void setTypename(bool TN) { FirstUsingShadow.setInt(TN); } - /// \brief Iterates through the using shadow declarations associated with + /// Iterates through the using shadow declarations associated with /// this using declaration. class shadow_iterator { - /// \brief The current using shadow declaration. + /// The current using shadow declaration. UsingShadowDecl *Current = nullptr; public: @@ -3437,7 +3437,7 @@ shadow_iterator shadow_end() const { return shadow_iterator(); } - /// \brief Return the number of shadowed declarations associated with this + /// Return the number of shadowed declarations associated with this /// using declaration. unsigned shadow_size() const { return std::distance(shadow_begin(), shadow_end()); @@ -3535,7 +3535,7 @@ static bool classofKind(Kind K) { return K == UsingPack; } }; -/// \brief Represents a dependent using declaration which was not marked with +/// Represents a dependent using declaration which was not marked with /// \c typename. /// /// Unlike non-dependent using declarations, these *only* bring through @@ -3548,16 +3548,16 @@ /// \endcode class UnresolvedUsingValueDecl : public ValueDecl, public Mergeable { - /// \brief The source location of the 'using' keyword + /// The source location of the 'using' keyword SourceLocation UsingLocation; - /// \brief If this is a pack expansion, the location of the '...'. + /// If this is a pack expansion, the location of the '...'. SourceLocation EllipsisLoc; - /// \brief The nested-name-specifier that precedes the name. + /// The nested-name-specifier that precedes the name. NestedNameSpecifierLoc QualifierLoc; - /// \brief Provides source/type location info for the declaration name + /// Provides source/type location info for the declaration name /// embedded in the ValueDecl base class. DeclarationNameLoc DNLoc; @@ -3577,20 +3577,20 @@ friend class ASTDeclReader; friend class ASTDeclWriter; - /// \brief Returns the source location of the 'using' keyword. + /// Returns the source location of the 'using' keyword. SourceLocation getUsingLoc() const { return UsingLocation; } - /// \brief Set the source location of the 'using' keyword. + /// Set the source location of the 'using' keyword. void setUsingLoc(SourceLocation L) { UsingLocation = L; } - /// \brief Return true if it is a C++03 access declaration (no 'using'). + /// Return true if it is a C++03 access declaration (no 'using'). bool isAccessDeclaration() const { return UsingLocation.isInvalid(); } - /// \brief Retrieve the nested-name-specifier that qualifies the name, + /// Retrieve the nested-name-specifier that qualifies the name, /// with source-location information. NestedNameSpecifierLoc getQualifierLoc() const { return QualifierLoc; } - /// \brief Retrieve the nested-name-specifier that qualifies the name. + /// Retrieve the nested-name-specifier that qualifies the name. NestedNameSpecifier *getQualifier() const { return QualifierLoc.getNestedNameSpecifier(); } @@ -3599,12 +3599,12 @@ return DeclarationNameInfo(getDeclName(), getLocation(), DNLoc); } - /// \brief Determine whether this is a pack expansion. + /// Determine whether this is a pack expansion. bool isPackExpansion() const { return EllipsisLoc.isValid(); } - /// \brief Get the location of the ellipsis if this is a pack expansion. + /// Get the location of the ellipsis if this is a pack expansion. SourceLocation getEllipsisLoc() const { return EllipsisLoc; } @@ -3631,7 +3631,7 @@ static bool classofKind(Kind K) { return K == UnresolvedUsingValue; } }; -/// \brief Represents a dependent using declaration which was marked with +/// Represents a dependent using declaration which was marked with /// \c typename. /// /// \code @@ -3647,13 +3647,13 @@ public Mergeable { friend class ASTDeclReader; - /// \brief The source location of the 'typename' keyword + /// The source location of the 'typename' keyword SourceLocation TypenameLocation; - /// \brief If this is a pack expansion, the location of the '...'. + /// If this is a pack expansion, the location of the '...'. SourceLocation EllipsisLoc; - /// \brief The nested-name-specifier that precedes the name. + /// The nested-name-specifier that precedes the name. NestedNameSpecifierLoc QualifierLoc; UnresolvedUsingTypenameDecl(DeclContext *DC, SourceLocation UsingLoc, @@ -3670,17 +3670,17 @@ void anchor() override; public: - /// \brief Returns the source location of the 'using' keyword. + /// Returns the source location of the 'using' keyword. SourceLocation getUsingLoc() const { return getLocStart(); } - /// \brief Returns the source location of the 'typename' keyword. + /// Returns the source location of the 'typename' keyword. SourceLocation getTypenameLoc() const { return TypenameLocation; } - /// \brief Retrieve the nested-name-specifier that qualifies the name, + /// Retrieve the nested-name-specifier that qualifies the name, /// with source-location information. NestedNameSpecifierLoc getQualifierLoc() const { return QualifierLoc; } - /// \brief Retrieve the nested-name-specifier that qualifies the name. + /// Retrieve the nested-name-specifier that qualifies the name. NestedNameSpecifier *getQualifier() const { return QualifierLoc.getNestedNameSpecifier(); } @@ -3689,12 +3689,12 @@ return DeclarationNameInfo(getDeclName(), getLocation()); } - /// \brief Determine whether this is a pack expansion. + /// Determine whether this is a pack expansion. bool isPackExpansion() const { return EllipsisLoc.isValid(); } - /// \brief Get the location of the ellipsis if this is a pack expansion. + /// Get the location of the ellipsis if this is a pack expansion. SourceLocation getEllipsisLoc() const { return EllipsisLoc; } @@ -3720,7 +3720,7 @@ static bool classofKind(Kind K) { return K == UnresolvedUsingTypename; } }; -/// \brief Represents a C++11 static_assert declaration. +/// Represents a C++11 static_assert declaration. class StaticAssertDecl : public Decl { llvm::PointerIntPair AssertExprAndFailed; StringLiteral *Message; Index: cfe/trunk/include/clang/AST/DeclContextInternals.h =================================================================== --- cfe/trunk/include/clang/AST/DeclContextInternals.h +++ cfe/trunk/include/clang/AST/DeclContextInternals.h @@ -30,17 +30,17 @@ class DependentDiagnostic; -/// \brief An array of decls optimized for the common case of only containing +/// An array of decls optimized for the common case of only containing /// one entry. struct StoredDeclsList { - /// \brief When in vector form, this is what the Data pointer points to. + /// When in vector form, this is what the Data pointer points to. using DeclsTy = SmallVector; - /// \brief A collection of declarations, with a flag to indicate if we have + /// A collection of declarations, with a flag to indicate if we have /// further external declarations. using DeclsAndHasExternalTy = llvm::PointerIntPair; - /// \brief The stored data, which will be either a pointer to a NamedDecl, + /// The stored data, which will be either a pointer to a NamedDecl, /// or a pointer to a vector with a flag to indicate if there are further /// external declarations. llvm::PointerUnion Data; @@ -122,7 +122,7 @@ == Vec.end() && "list still contains decl"); } - /// \brief Remove any declarations which were imported from an external + /// Remove any declarations which were imported from an external /// AST source. void removeExternalDecls() { if (isNull()) { Index: cfe/trunk/include/clang/AST/DeclObjC.h =================================================================== --- cfe/trunk/include/clang/AST/DeclObjC.h +++ cfe/trunk/include/clang/AST/DeclObjC.h @@ -97,7 +97,7 @@ } }; -/// \brief A list of Objective-C protocols, along with the source +/// A list of Objective-C protocols, along with the source /// locations at which they were referenced. class ObjCProtocolList : public ObjCList { SourceLocation *Locations = nullptr; @@ -156,10 +156,10 @@ // Method has a definition. unsigned IsDefined : 1; - /// \brief Method redeclaration in the same interface. + /// Method redeclaration in the same interface. unsigned IsRedeclaration : 1; - /// \brief Is redeclared in the same interface. + /// Is redeclared in the same interface. mutable unsigned HasRedeclaration : 1; // NOTE: VC++ treats enums as signed, avoid using ImplementationControl enum @@ -170,14 +170,14 @@ /// in, inout, etc. unsigned objcDeclQualifier : 7; - /// \brief Indicates whether this method has a related result type. + /// Indicates whether this method has a related result type. unsigned RelatedResultType : 1; - /// \brief Whether the locations of the selector identifiers are in a + /// Whether the locations of the selector identifiers are in a /// "standard" position, a enum SelectorLocationsKind. unsigned SelLocsKind : 2; - /// \brief Whether this method overrides any other in the class hierarchy. + /// Whether this method overrides any other in the class hierarchy. /// /// A method is said to override any method in the class's /// base classes, its protocols, or its categories' protocols, that has @@ -186,7 +186,7 @@ /// method in the interface or its categories. unsigned IsOverriding : 1; - /// \brief Indicates if the method was a definition but its body was skipped. + /// Indicates if the method was a definition but its body was skipped. unsigned HasSkippedBody : 1; // Return type of this method. @@ -195,7 +195,7 @@ // Type source information for the return type. TypeSourceInfo *ReturnTInfo; - /// \brief Array of ParmVarDecls for the formal parameters of this method + /// Array of ParmVarDecls for the formal parameters of this method /// and optionally followed by selector locations. void *ParamsAndSelLocs = nullptr; unsigned NumParams = 0; @@ -241,7 +241,7 @@ return getSelLocsKind() != SelLoc_NonStandard; } - /// \brief Get a pointer to the stored selector identifiers locations array. + /// Get a pointer to the stored selector identifiers locations array. /// No locations will be stored if HasStandardSelLocs is true. SourceLocation *getStoredSelLocs() { return reinterpret_cast(getParams() + NumParams); @@ -250,7 +250,7 @@ return reinterpret_cast(getParams() + NumParams); } - /// \brief Get a pointer to the stored selector identifiers locations array. + /// Get a pointer to the stored selector identifiers locations array. /// No locations will be stored if HasStandardSelLocs is true. ParmVarDecl **getParams() { return reinterpret_cast(ParamsAndSelLocs); @@ -259,7 +259,7 @@ return reinterpret_cast(ParamsAndSelLocs); } - /// \brief Get the number of stored selector identifiers locations. + /// Get the number of stored selector identifiers locations. /// No locations will be stored if HasStandardSelLocs is true. unsigned getNumStoredSelLocs() const { if (hasStandardSelLocs()) @@ -271,7 +271,7 @@ ArrayRef Params, ArrayRef SelLocs); - /// \brief A definition will return its interface declaration. + /// A definition will return its interface declaration. /// An interface declaration will return its definition. /// Otherwise it will return itself. ObjCMethodDecl *getNextRedeclarationImpl() override; @@ -301,18 +301,18 @@ } void setObjCDeclQualifier(ObjCDeclQualifier QV) { objcDeclQualifier = QV; } - /// \brief Determine whether this method has a result type that is related + /// Determine whether this method has a result type that is related /// to the message receiver's type. bool hasRelatedResultType() const { return RelatedResultType; } - /// \brief Note whether this method has a related result type. + /// Note whether this method has a related result type. void SetRelatedResultType(bool RRT = true) { RelatedResultType = RRT; } - /// \brief True if this is a method redeclaration in the same interface. + /// True if this is a method redeclaration in the same interface. bool isRedeclaration() const { return IsRedeclaration; } void setAsRedeclaration(const ObjCMethodDecl *PrevMethod); - /// \brief Returns the location where the declarator ends. It will be + /// Returns the location where the declarator ends. It will be /// the location of ';' for a method declaration and the location of '{' /// for a method definition. SourceLocation getDeclaratorEndLoc() const { return DeclEndLoc; } @@ -362,7 +362,7 @@ void setReturnType(QualType T) { MethodDeclType = T; } SourceRange getReturnTypeSourceRange() const; - /// \brief Determine the type of an expression that sends a message to this + /// Determine the type of an expression that sends a message to this /// function. This replaces the type parameters with the types they would /// get if the receiver was parameterless (e.g. it may replace the type /// parameter with 'id'). @@ -407,7 +407,7 @@ NumParams); } - /// \brief Sets the method's parameters and selector source locations. + /// Sets the method's parameters and selector source locations. /// If the method is implicit (not coming from source) \p SelLocs is /// ignored. void setMethodParams(ASTContext &C, @@ -462,7 +462,7 @@ bool isDefined() const { return IsDefined; } void setDefined(bool isDefined) { IsDefined = isDefined; } - /// \brief Whether this method overrides any other in the class hierarchy. + /// Whether this method overrides any other in the class hierarchy. /// /// A method is said to override any method in the class's /// base classes, its protocols, or its categories' protocols, that has @@ -472,7 +472,7 @@ bool isOverriding() const { return IsOverriding; } void setOverriding(bool isOverriding) { IsOverriding = isOverriding; } - /// \brief Return overridden methods for the given \p Method. + /// Return overridden methods for the given \p Method. /// /// An ObjC method is considered to override any method in the class's /// base classes (and base's categories), its protocols, or its categories' @@ -483,11 +483,11 @@ void getOverriddenMethods( SmallVectorImpl &Overridden) const; - /// \brief True if the method was a definition but its body was skipped. + /// True if the method was a definition but its body was skipped. bool hasSkippedBody() const { return HasSkippedBody; } void setHasSkippedBody(bool Skipped = true) { HasSkippedBody = Skipped; } - /// \brief Returns the property associated with this method's selector. + /// Returns the property associated with this method's selector. /// /// Note that even if this particular method is not marked as a property /// accessor, it is still possible for it to match a property declared in a @@ -520,10 +520,10 @@ bool isDesignatedInitializerForTheInterface( const ObjCMethodDecl **InitMethod = nullptr) const; - /// \brief Determine whether this method has a body. + /// Determine whether this method has a body. bool hasBody() const override { return Body.isValid(); } - /// \brief Retrieve the body of this method, if it has one. + /// Retrieve the body of this method, if it has one. Stmt *getBody() const override; void setLazyBody(uint64_t Offset) { Body = Offset; } @@ -531,7 +531,7 @@ CompoundStmt *getCompoundBody() { return (CompoundStmt*)getBody(); } void setBody(Stmt *B) { Body = B; } - /// \brief Returns whether this specific method is a definition. + /// Returns whether this specific method is a definition. bool isThisDeclarationADefinition() const { return hasBody(); } // Implement isa/cast/dyncast/etc. @@ -737,7 +737,7 @@ OBJC_PR_query_class }; -/// \brief Represents one property declaration in an Objective-C interface. +/// Represents one property declaration in an Objective-C interface. /// /// For example: /// \code{.mm} @@ -770,7 +770,7 @@ }; enum { - /// \brief Number of bits fitting all the property attributes. + /// Number of bits fitting all the property attributes. NumPropertyAttrsBits = 15 }; @@ -1163,7 +1163,7 @@ } }; -/// \brief Represents an ObjC class declaration. +/// Represents an ObjC class declaration. /// /// For example: /// @@ -1197,7 +1197,7 @@ mutable const Type *TypeForDecl = nullptr; struct DefinitionData { - /// \brief The definition of this class, for quick access from any + /// The definition of this class, for quick access from any /// declaration. ObjCInterfaceDecl *Definition = nullptr; @@ -1210,7 +1210,7 @@ /// Protocols reference in both the \@interface and class extensions. ObjCList AllReferencedProtocols; - /// \brief List of categories and class extensions defined for this class. + /// List of categories and class extensions defined for this class. /// /// Categories are stored as a linked list in the AST, since the categories /// and class extensions come long after the initial interface declaration, @@ -1221,11 +1221,11 @@ /// extensions and implementation. This list is built lazily. ObjCIvarDecl *IvarList = nullptr; - /// \brief Indicates that the contents of this Objective-C class will be + /// Indicates that the contents of this Objective-C class will be /// completed by the external AST source when required. mutable unsigned ExternallyCompleted : 1; - /// \brief Indicates that the ivar cache does not yet include ivars + /// Indicates that the ivar cache does not yet include ivars /// declared in the implementation. mutable unsigned IvarListMissingImplementation : 1; @@ -1248,7 +1248,7 @@ /// One of the \c InheritedDesignatedInitializersState enumeratos. mutable unsigned InheritedDesignatedInitializers : 2; - /// \brief The location of the last location in this declaration, before + /// The location of the last location in this declaration, before /// the properties/methods. For example, this will be the '>', '}', or /// identifier, SourceLocation EndLoc; @@ -1262,7 +1262,7 @@ /// The type parameters associated with this class, if any. ObjCTypeParamList *TypeParamList = nullptr; - /// \brief Contains a pointer to the data associated with this class, + /// Contains a pointer to the data associated with this class, /// which will be NULL if this class has not yet been defined. /// /// The bit indicates when we don't need to check for out-of-date @@ -1283,7 +1283,7 @@ return *Data.getPointer(); } - /// \brief Allocate the definition data for this class. + /// Allocate the definition data for this class. void allocateDefinitionData(); using redeclarable_base = Redeclarable; @@ -1338,7 +1338,7 @@ return SourceRange(getAtStartLoc(), getLocation()); } - /// \brief Indicate that this Objective-C class is complete, but that + /// Indicate that this Objective-C class is complete, but that /// the external AST source will be responsible for filling in its contents /// when a complete class is required. void setExternallyCompleted(); @@ -1544,13 +1544,13 @@ isDesignatedInitializer(Selector Sel, const ObjCMethodDecl **InitMethod = nullptr) const; - /// \brief Determine whether this particular declaration of this class is + /// Determine whether this particular declaration of this class is /// actually also a definition. bool isThisDeclarationADefinition() const { return getDefinition() == this; } - /// \brief Determine whether this class has been defined. + /// Determine whether this class has been defined. bool hasDefinition() const { // If the name of this class is out-of-date, bring it up-to-date, which // might bring in a definition. @@ -1562,21 +1562,21 @@ return Data.getPointer(); } - /// \brief Retrieve the definition of this class, or NULL if this class + /// Retrieve the definition of this class, or NULL if this class /// has been forward-declared (with \@class) but not yet defined (with /// \@interface). ObjCInterfaceDecl *getDefinition() { return hasDefinition()? Data.getPointer()->Definition : nullptr; } - /// \brief Retrieve the definition of this class, or NULL if this class + /// Retrieve the definition of this class, or NULL if this class /// has been forward-declared (with \@class) but not yet defined (with /// \@interface). const ObjCInterfaceDecl *getDefinition() const { return hasDefinition()? Data.getPointer()->Definition : nullptr; } - /// \brief Starts the definition of this Objective-C class, taking it from + /// Starts the definition of this Objective-C class, taking it from /// a forward declaration (\@class) to a definition (\@interface). void startDefinition(); @@ -1608,7 +1608,7 @@ data().SuperClassTInfo = superClass; } - /// \brief Iterator that walks over the list of categories, filtering out + /// Iterator that walks over the list of categories, filtering out /// those that do not meet specific criteria. /// /// This class template is used for the various permutations of category @@ -1655,13 +1655,13 @@ }; private: - /// \brief Test whether the given category is visible. + /// Test whether the given category is visible. /// /// Used in the \c visible_categories_iterator. static bool isVisibleCategory(ObjCCategoryDecl *Cat); public: - /// \brief Iterator that walks over the list of categories and extensions + /// Iterator that walks over the list of categories and extensions /// that are visible, i.e., not hidden in a non-imported submodule. using visible_categories_iterator = filtered_category_iterator; @@ -1674,30 +1674,30 @@ visible_categories_end()); } - /// \brief Retrieve an iterator to the beginning of the visible-categories + /// Retrieve an iterator to the beginning of the visible-categories /// list. visible_categories_iterator visible_categories_begin() const { return visible_categories_iterator(getCategoryListRaw()); } - /// \brief Retrieve an iterator to the end of the visible-categories list. + /// Retrieve an iterator to the end of the visible-categories list. visible_categories_iterator visible_categories_end() const { return visible_categories_iterator(); } - /// \brief Determine whether the visible-categories list is empty. + /// Determine whether the visible-categories list is empty. bool visible_categories_empty() const { return visible_categories_begin() == visible_categories_end(); } private: - /// \brief Test whether the given category... is a category. + /// Test whether the given category... is a category. /// /// Used in the \c known_categories_iterator. static bool isKnownCategory(ObjCCategoryDecl *) { return true; } public: - /// \brief Iterator that walks over all of the known categories and + /// Iterator that walks over all of the known categories and /// extensions, including those that are hidden. using known_categories_iterator = filtered_category_iterator; using known_categories_range = @@ -1708,30 +1708,30 @@ known_categories_end()); } - /// \brief Retrieve an iterator to the beginning of the known-categories + /// Retrieve an iterator to the beginning of the known-categories /// list. known_categories_iterator known_categories_begin() const { return known_categories_iterator(getCategoryListRaw()); } - /// \brief Retrieve an iterator to the end of the known-categories list. + /// Retrieve an iterator to the end of the known-categories list. known_categories_iterator known_categories_end() const { return known_categories_iterator(); } - /// \brief Determine whether the known-categories list is empty. + /// Determine whether the known-categories list is empty. bool known_categories_empty() const { return known_categories_begin() == known_categories_end(); } private: - /// \brief Test whether the given category is a visible extension. + /// Test whether the given category is a visible extension. /// /// Used in the \c visible_extensions_iterator. static bool isVisibleExtension(ObjCCategoryDecl *Cat); public: - /// \brief Iterator that walks over all of the visible extensions, skipping + /// Iterator that walks over all of the visible extensions, skipping /// any that are known but hidden. using visible_extensions_iterator = filtered_category_iterator; @@ -1744,24 +1744,24 @@ visible_extensions_end()); } - /// \brief Retrieve an iterator to the beginning of the visible-extensions + /// Retrieve an iterator to the beginning of the visible-extensions /// list. visible_extensions_iterator visible_extensions_begin() const { return visible_extensions_iterator(getCategoryListRaw()); } - /// \brief Retrieve an iterator to the end of the visible-extensions list. + /// Retrieve an iterator to the end of the visible-extensions list. visible_extensions_iterator visible_extensions_end() const { return visible_extensions_iterator(); } - /// \brief Determine whether the visible-extensions list is empty. + /// Determine whether the visible-extensions list is empty. bool visible_extensions_empty() const { return visible_extensions_begin() == visible_extensions_end(); } private: - /// \brief Test whether the given category is an extension. + /// Test whether the given category is an extension. /// /// Used in the \c known_extensions_iterator. static bool isKnownExtension(ObjCCategoryDecl *Cat); @@ -1771,7 +1771,7 @@ friend class ASTDeclWriter; friend class ASTReader; - /// \brief Iterator that walks over all of the known extensions. + /// Iterator that walks over all of the known extensions. using known_extensions_iterator = filtered_category_iterator; using known_extensions_range = @@ -1782,23 +1782,23 @@ known_extensions_end()); } - /// \brief Retrieve an iterator to the beginning of the known-extensions + /// Retrieve an iterator to the beginning of the known-extensions /// list. known_extensions_iterator known_extensions_begin() const { return known_extensions_iterator(getCategoryListRaw()); } - /// \brief Retrieve an iterator to the end of the known-extensions list. + /// Retrieve an iterator to the end of the known-extensions list. known_extensions_iterator known_extensions_end() const { return known_extensions_iterator(); } - /// \brief Determine whether the known-extensions list is empty. + /// Determine whether the known-extensions list is empty. bool known_extensions_empty() const { return known_extensions_begin() == known_extensions_end(); } - /// \brief Retrieve the raw pointer to the start of the category/extension + /// Retrieve the raw pointer to the start of the category/extension /// list. ObjCCategoryDecl* getCategoryListRaw() const { // FIXME: Should make sure no callers ever do this. @@ -1811,7 +1811,7 @@ return data().CategoryList; } - /// \brief Set the raw pointer to the start of the category/extension + /// Set the raw pointer to the start of the category/extension /// list. void setCategoryListRaw(ObjCCategoryDecl *category) { data().CategoryList = category; @@ -1874,7 +1874,7 @@ ObjCInterfaceDecl *lookupInheritedClass(const IdentifierInfo *ICName); - /// \brief Lookup a method in the classes implementation hierarchy. + /// Lookup a method in the classes implementation hierarchy. ObjCMethodDecl *lookupPrivateMethod(const Selector &Sel, bool Instance=true) const; @@ -1882,7 +1882,7 @@ return lookupPrivateMethod(Sel, false); } - /// \brief Lookup a setter or getter in the class hierarchy, + /// Lookup a setter or getter in the class hierarchy, /// including in all categories except for category passed /// as argument. ObjCMethodDecl *lookupPropertyAccessor(const Selector Sel, @@ -1988,7 +1988,7 @@ static ObjCIvarDecl *CreateDeserialized(ASTContext &C, unsigned ID); - /// \brief Return the class interface that this ivar is logically contained + /// Return the class interface that this ivar is logically contained /// in; this is either the interface where the ivar was declared, or the /// interface the ivar is conceptually a part of in the case of synthesized /// ivars. @@ -2027,7 +2027,7 @@ unsigned Synthesized : 1; }; -/// \brief Represents a field declaration created by an \@defs(...). +/// Represents a field declaration created by an \@defs(...). class ObjCAtDefsFieldDecl : public FieldDecl { ObjCAtDefsFieldDecl(DeclContext *DC, SourceLocation StartLoc, SourceLocation IdLoc, IdentifierInfo *Id, @@ -2051,7 +2051,7 @@ static bool classofKind(Kind K) { return K == ObjCAtDefsField; } }; -/// \brief Represents an Objective-C protocol declaration. +/// Represents an Objective-C protocol declaration. /// /// Objective-C protocols declare a pure abstract type (i.e., no instance /// variables are permitted). Protocols originally drew inspiration from @@ -2083,14 +2083,14 @@ class ObjCProtocolDecl : public ObjCContainerDecl, public Redeclarable { struct DefinitionData { - // \brief The declaration that defines this protocol. + // The declaration that defines this protocol. ObjCProtocolDecl *Definition; - /// \brief Referenced protocols + /// Referenced protocols ObjCProtocolList ReferencedProtocols; }; - /// \brief Contains a pointer to the data associated with this class, + /// Contains a pointer to the data associated with this class, /// which will be NULL if this class has not yet been defined. /// /// The bit indicates when we don't need to check for out-of-date @@ -2213,7 +2213,7 @@ return lookupMethod(Sel, false/*isInstance*/); } - /// \brief Determine whether this protocol has a definition. + /// Determine whether this protocol has a definition. bool hasDefinition() const { // If the name of this protocol is out-of-date, bring it up-to-date, which // might bring in a definition. @@ -2225,23 +2225,23 @@ return Data.getPointer(); } - /// \brief Retrieve the definition of this protocol, if any. + /// Retrieve the definition of this protocol, if any. ObjCProtocolDecl *getDefinition() { return hasDefinition()? Data.getPointer()->Definition : nullptr; } - /// \brief Retrieve the definition of this protocol, if any. + /// Retrieve the definition of this protocol, if any. const ObjCProtocolDecl *getDefinition() const { return hasDefinition()? Data.getPointer()->Definition : nullptr; } - /// \brief Determine whether this particular declaration is also the + /// Determine whether this particular declaration is also the /// definition. bool isThisDeclarationADefinition() const { return getDefinition() == this; } - /// \brief Starts the definition of this Objective-C protocol. + /// Starts the definition of this Objective-C protocol. void startDefinition(); /// Produce a name to be used for protocol's metadata. It comes either via @@ -2310,7 +2310,7 @@ /// FIXME: this should not be a singly-linked list. Move storage elsewhere. ObjCCategoryDecl *NextClassCategory = nullptr; - /// \brief The location of the category name in this declaration. + /// The location of the category name in this declaration. SourceLocation CategoryNameLoc; /// class extension may have private ivars. @@ -2400,7 +2400,7 @@ ObjCCategoryDecl *getNextClassCategory() const { return NextClassCategory; } - /// \brief Retrieve the pointer to the next stored category (or extension), + /// Retrieve the pointer to the next stored category (or extension), /// which may be hidden. ObjCCategoryDecl *getNextClassCategoryRaw() const { return NextClassCategory; @@ -2578,7 +2578,7 @@ SourceLocation IvarRBraceLoc; /// Support for ivar initialization. - /// \brief The arguments used to initialize the ivars + /// The arguments used to initialize the ivars LazyCXXCtorInitializersPtr IvarInitializers; unsigned NumIvarInitializers = 0; @@ -2694,7 +2694,7 @@ return getIdentifier()->getName(); } - /// @brief Get the name of the class associated with this interface. + /// Get the name of the class associated with this interface. // // FIXME: Move to StringRef API. std::string getNameAsString() const { @@ -2785,7 +2785,7 @@ private: SourceLocation AtLoc; // location of \@synthesize or \@dynamic - /// \brief For \@synthesize, the location of the ivar, if it was written in + /// For \@synthesize, the location of the ivar, if it was written in /// the source code. /// /// \code @@ -2854,7 +2854,7 @@ this->IvarLoc = IvarLoc; } - /// \brief For \@synthesize, returns true if an ivar name was explicitly + /// For \@synthesize, returns true if an ivar name was explicitly /// specified. /// /// \code Index: cfe/trunk/include/clang/AST/DeclOpenMP.h =================================================================== --- cfe/trunk/include/clang/AST/DeclOpenMP.h +++ cfe/trunk/include/clang/AST/DeclOpenMP.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file defines OpenMP nodes for declarative directives. +/// This file defines OpenMP nodes for declarative directives. /// //===----------------------------------------------------------------------===// @@ -24,7 +24,7 @@ namespace clang { -/// \brief This represents '#pragma omp threadprivate ...' directive. +/// This represents '#pragma omp threadprivate ...' directive. /// For example, in the following, both 'a' and 'A::b' are threadprivate: /// /// \code @@ -89,7 +89,7 @@ static bool classofKind(Kind K) { return K == OMPThreadPrivate; } }; -/// \brief This represents '#pragma omp declare reduction ...' directive. +/// This represents '#pragma omp declare reduction ...' directive. /// For example, in the following, declared reduction 'foo' for types 'int' and /// 'float': /// @@ -109,14 +109,14 @@ private: friend class ASTDeclReader; - /// \brief Combiner for declare reduction construct. + /// Combiner for declare reduction construct. Expr *Combiner; - /// \brief Initializer for declare reduction construct. + /// Initializer for declare reduction construct. Expr *Initializer; /// Kind of initializer - function call or omp_priv initializtion. InitKind InitializerKind = CallInit; - /// \brief Reference to the previous declare reduction construct in the same + /// Reference to the previous declare reduction construct in the same /// scope with the same name. Required for proper templates instantiation if /// the declare reduction construct is declared inside compound statement. LazyDeclPtr PrevDeclInScope; @@ -135,33 +135,33 @@ } public: - /// \brief Create declare reduction node. + /// Create declare reduction node. static OMPDeclareReductionDecl * Create(ASTContext &C, DeclContext *DC, SourceLocation L, DeclarationName Name, QualType T, OMPDeclareReductionDecl *PrevDeclInScope); - /// \brief Create deserialized declare reduction node. + /// Create deserialized declare reduction node. static OMPDeclareReductionDecl *CreateDeserialized(ASTContext &C, unsigned ID); - /// \brief Get combiner expression of the declare reduction construct. + /// Get combiner expression of the declare reduction construct. Expr *getCombiner() { return Combiner; } const Expr *getCombiner() const { return Combiner; } - /// \brief Set combiner expression for the declare reduction construct. + /// Set combiner expression for the declare reduction construct. void setCombiner(Expr *E) { Combiner = E; } - /// \brief Get initializer expression (if specified) of the declare reduction + /// Get initializer expression (if specified) of the declare reduction /// construct. Expr *getInitializer() { return Initializer; } const Expr *getInitializer() const { return Initializer; } /// Get initializer kind. InitKind getInitializerKind() const { return InitializerKind; } - /// \brief Set initializer expression for the declare reduction construct. + /// Set initializer expression for the declare reduction construct. void setInitializer(Expr *E, InitKind IK) { Initializer = E; InitializerKind = IK; } - /// \brief Get reference to previous declare reduction construct in the same + /// Get reference to previous declare reduction construct in the same /// scope with the same name. OMPDeclareReductionDecl *getPrevDeclInScope(); const OMPDeclareReductionDecl *getPrevDeclInScope() const; Index: cfe/trunk/include/clang/AST/DeclTemplate.h =================================================================== --- cfe/trunk/include/clang/AST/DeclTemplate.h +++ cfe/trunk/include/clang/AST/DeclTemplate.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Defines the C++ template declaration subclasses. +/// Defines the C++ template declaration subclasses. // //===----------------------------------------------------------------------===// @@ -56,14 +56,14 @@ class VarTemplateDecl; class VarTemplatePartialSpecializationDecl; -/// \brief Stores a template parameter of any kind. +/// Stores a template parameter of any kind. using TemplateParameter = llvm::PointerUnion3; NamedDecl *getAsNamedDecl(TemplateParameter P); -/// \brief Stores a list of template parameters for a TemplateDecl and its +/// Stores a list of template parameters for a TemplateDecl and its /// derived classes. class TemplateParameterList final : private llvm::TrailingObjects(); } @@ -139,32 +139,32 @@ return begin()[Idx]; } - /// \brief Returns the minimum number of arguments needed to form a + /// Returns the minimum number of arguments needed to form a /// template specialization. /// /// This may be fewer than the number of template parameters, if some of /// the parameters have default arguments or if there is a parameter pack. unsigned getMinRequiredArguments() const; - /// \brief Get the depth of this template parameter list in the set of + /// Get the depth of this template parameter list in the set of /// template parameter lists. /// /// The first template parameter list in a declaration will have depth 0, /// the second template parameter list will have depth 1, etc. unsigned getDepth() const; - /// \brief Determine whether this template parameter list contains an + /// Determine whether this template parameter list contains an /// unexpanded parameter pack. bool containsUnexpandedParameterPack() const { return ContainsUnexpandedParameterPack; } - /// \brief The constraint-expression of the associated requires-clause. + /// The constraint-expression of the associated requires-clause. Expr *getRequiresClause() { return HasRequiresClause ? *getTrailingObjects() : nullptr; } - /// \brief The constraint-expression of the associated requires-clause. + /// The constraint-expression of the associated requires-clause. const Expr *getRequiresClause() const { return HasRequiresClause ? *getTrailingObjects() : nullptr; } @@ -182,7 +182,7 @@ using FixedSizeStorageOwner = TrailingObjects::FixedSizeStorageOwner; }; -/// \brief Stores a list of template parameters and the associated +/// Stores a list of template parameters and the associated /// requires-clause (if any) for a TemplateDecl and its derived classes. /// Suitable for creating on the stack. template @@ -206,13 +206,13 @@ TemplateLoc, LAngleLoc, Params, RAngleLoc, RequiresClause))) {} }; -/// \brief A template argument list. +/// A template argument list. class TemplateArgumentList final : private llvm::TrailingObjects { - /// \brief The template argument list. + /// The template argument list. const TemplateArgument *Arguments; - /// \brief The number of template arguments in this template + /// The number of template arguments in this template /// argument list. unsigned NumArguments; @@ -226,23 +226,23 @@ TemplateArgumentList(const TemplateArgumentList &) = delete; TemplateArgumentList &operator=(const TemplateArgumentList &) = delete; - /// \brief Type used to indicate that the template argument list itself is a + /// Type used to indicate that the template argument list itself is a /// stack object. It does not own its template arguments. enum OnStackType { OnStack }; - /// \brief Create a new template argument list that copies the given set of + /// Create a new template argument list that copies the given set of /// template arguments. static TemplateArgumentList *CreateCopy(ASTContext &Context, ArrayRef Args); - /// \brief Construct a new, temporary template argument list on the stack. + /// Construct a new, temporary template argument list on the stack. /// /// The template argument list does not own the template arguments /// provided. explicit TemplateArgumentList(OnStackType, ArrayRef Args) : Arguments(Args.data()), NumArguments(Args.size()) {} - /// \brief Produces a shallow copy of the given template argument list. + /// Produces a shallow copy of the given template argument list. /// /// This operation assumes that the input argument list outlives it. /// This takes the list as a pointer to avoid looking like a copy @@ -251,25 +251,25 @@ explicit TemplateArgumentList(const TemplateArgumentList *Other) : Arguments(Other->data()), NumArguments(Other->size()) {} - /// \brief Retrieve the template argument at a given index. + /// Retrieve the template argument at a given index. const TemplateArgument &get(unsigned Idx) const { assert(Idx < NumArguments && "Invalid template argument index"); return data()[Idx]; } - /// \brief Retrieve the template argument at a given index. + /// Retrieve the template argument at a given index. const TemplateArgument &operator[](unsigned Idx) const { return get(Idx); } - /// \brief Produce this as an array ref. + /// Produce this as an array ref. ArrayRef asArray() const { return llvm::makeArrayRef(data(), size()); } - /// \brief Retrieve the number of template arguments in this + /// Retrieve the number of template arguments in this /// template argument list. unsigned size() const { return NumArguments; } - /// \brief Retrieve a pointer to the template argument list. + /// Retrieve a pointer to the template argument list. const TemplateArgument *data() const { return Arguments; } }; @@ -365,7 +365,7 @@ // Kinds of Templates //===----------------------------------------------------------------------===// -/// \brief Stores the template parameter list and associated constraints for +/// Stores the template parameter list and associated constraints for /// \c TemplateDecl objects that track associated constraints. class ConstrainedTemplateDeclInfo { friend TemplateDecl; @@ -391,7 +391,7 @@ }; -/// \brief The base class of all kinds of template declarations (e.g., +/// The base class of all kinds of template declarations (e.g., /// class, function, etc.). /// /// The TemplateDecl class stores the list of template parameters and a @@ -467,7 +467,7 @@ protected: NamedDecl *TemplatedDecl; - /// \brief The template parameter list and optional requires-clause + /// The template parameter list and optional requires-clause /// associated with this declaration; alternatively, a /// \c ConstrainedTemplateDeclInfo if the associated constraints of the /// template are being tracked by this particular declaration. @@ -492,7 +492,7 @@ } public: - /// \brief Initialize the underlying templated declaration and + /// Initialize the underlying templated declaration and /// template parameters. void init(NamedDecl *templatedDecl, TemplateParameterList* templateParams) { assert(!TemplatedDecl && "TemplatedDecl already set!"); @@ -502,7 +502,7 @@ } }; -/// \brief Provides information about a function template specialization, +/// Provides information about a function template specialization, /// which is a FunctionDecl that has been explicitly specialization or /// instantiated from a function template. class FunctionTemplateSpecializationInfo : public llvm::FoldingSetNode { @@ -525,31 +525,31 @@ const TemplateArgumentListInfo *TemplateArgsAsWritten, SourceLocation POI); - /// \brief The function template specialization that this structure + /// The function template specialization that this structure /// describes. FunctionDecl *Function; - /// \brief The function template from which this function template + /// The function template from which this function template /// specialization was generated. /// /// The two bits contain the top 4 values of TemplateSpecializationKind. llvm::PointerIntPair Template; - /// \brief The template arguments used to produce the function template + /// The template arguments used to produce the function template /// specialization from the function template. const TemplateArgumentList *TemplateArguments; - /// \brief The template arguments as written in the sources, if provided. + /// The template arguments as written in the sources, if provided. const ASTTemplateArgumentListInfo *TemplateArgumentsAsWritten; - /// \brief The point at which this function template specialization was + /// The point at which this function template specialization was /// first instantiated. SourceLocation PointOfInstantiation; - /// \brief Retrieve the template from which this function was specialized. + /// Retrieve the template from which this function was specialized. FunctionTemplateDecl *getTemplate() const { return Template.getPointer(); } - /// \brief Determine what kind of template specialization this is. + /// Determine what kind of template specialization this is. TemplateSpecializationKind getTemplateSpecializationKind() const { return (TemplateSpecializationKind)(Template.getInt() + 1); } @@ -558,7 +558,7 @@ return getTemplateSpecializationKind() == TSK_ExplicitSpecialization; } - /// \brief True if this declaration is an explicit specialization, + /// True if this declaration is an explicit specialization, /// explicit instantiation declaration, or explicit instantiation /// definition. bool isExplicitInstantiationOrSpecialization() const { @@ -566,14 +566,14 @@ getTemplateSpecializationKind()); } - /// \brief Set the template specialization kind. + /// Set the template specialization kind. void setTemplateSpecializationKind(TemplateSpecializationKind TSK) { assert(TSK != TSK_Undeclared && "Cannot encode TSK_Undeclared for a function template specialization"); Template.setInt(TSK - 1); } - /// \brief Retrieve the first point of instantiation of this function + /// Retrieve the first point of instantiation of this function /// template specialization. /// /// The point of instantiation may be an invalid source location if this @@ -582,7 +582,7 @@ return PointOfInstantiation; } - /// \brief Set the (first) point of instantiation of this function template + /// Set the (first) point of instantiation of this function template /// specialization. void setPointOfInstantiation(SourceLocation POI) { PointOfInstantiation = POI; @@ -602,7 +602,7 @@ } }; -/// \brief Provides information a specialization of a member of a class +/// Provides information a specialization of a member of a class /// template, which may be a member function, static data member, /// member class or member enumeration. class MemberSpecializationInfo { @@ -622,11 +622,11 @@ "Cannot encode undeclared template specializations for members"); } - /// \brief Retrieve the member declaration from which this member was + /// Retrieve the member declaration from which this member was /// instantiated. NamedDecl *getInstantiatedFrom() const { return MemberAndTSK.getPointer(); } - /// \brief Determine what kind of template specialization this is. + /// Determine what kind of template specialization this is. TemplateSpecializationKind getTemplateSpecializationKind() const { return (TemplateSpecializationKind)(MemberAndTSK.getInt() + 1); } @@ -635,27 +635,27 @@ return getTemplateSpecializationKind() == TSK_ExplicitSpecialization; } - /// \brief Set the template specialization kind. + /// Set the template specialization kind. void setTemplateSpecializationKind(TemplateSpecializationKind TSK) { assert(TSK != TSK_Undeclared && "Cannot encode undeclared template specializations for members"); MemberAndTSK.setInt(TSK - 1); } - /// \brief Retrieve the first point of instantiation of this member. + /// Retrieve the first point of instantiation of this member. /// If the point of instantiation is an invalid location, then this member /// has not yet been instantiated. SourceLocation getPointOfInstantiation() const { return PointOfInstantiation; } - /// \brief Set the first point of instantiation. + /// Set the first point of instantiation. void setPointOfInstantiation(SourceLocation POI) { PointOfInstantiation = POI; } }; -/// \brief Provides information about a dependent function-template +/// Provides information about a dependent function-template /// specialization declaration. /// /// Since explicit function template specialization and instantiation @@ -700,25 +700,25 @@ Create(ASTContext &Context, const UnresolvedSetImpl &Templates, const TemplateArgumentListInfo &TemplateArgs); - /// \brief Returns the number of function templates that this might + /// Returns the number of function templates that this might /// be a specialization of. unsigned getNumTemplates() const { return NumTemplates; } - /// \brief Returns the i'th template candidate. + /// Returns the i'th template candidate. FunctionTemplateDecl *getTemplate(unsigned I) const { assert(I < getNumTemplates() && "template index out of range"); return getTrailingObjects()[I]; } - /// \brief Returns the explicit template arguments that were given. + /// Returns the explicit template arguments that were given. const TemplateArgumentLoc *getTemplateArgs() const { return getTrailingObjects(); } - /// \brief Returns the number of explicit template arguments that were given. + /// Returns the number of explicit template arguments that were given. unsigned getNumTemplateArgs() const { return NumArgs; } - /// \brief Returns the nth template argument. + /// Returns the nth template argument. const TemplateArgumentLoc &getTemplateArg(unsigned I) const { assert(I < getNumTemplateArgs() && "template arg index out of range"); return getTemplateArgs()[I]; @@ -804,7 +804,7 @@ struct CommonBase { CommonBase() : InstantiatedFromMember(nullptr, false) {} - /// \brief The template from which this was most + /// The template from which this was most /// directly instantiated (or null). /// /// The boolean value indicates whether this template @@ -812,7 +812,7 @@ llvm::PointerIntPair InstantiatedFromMember; - /// \brief If non-null, points to an array of specializations (including + /// If non-null, points to an array of specializations (including /// partial specializations) known only by their external declaration IDs. /// /// The first value in the array is the number of specializations/partial @@ -820,11 +820,11 @@ uint32_t *LazySpecializations = nullptr; }; - /// \brief Pointer to the common data shared by all declarations of this + /// Pointer to the common data shared by all declarations of this /// template. mutable CommonBase *Common = nullptr; - /// \brief Retrieves the "common" pointer shared by all (re-)declarations of + /// Retrieves the "common" pointer shared by all (re-)declarations of /// the same template. Calling this routine may implicitly allocate memory /// for the common pointer. CommonBase *getCommonPtr() const; @@ -850,7 +850,7 @@ friend class ASTReader; template friend class RedeclarableTemplate; - /// \brief Retrieves the canonical declaration of this template. + /// Retrieves the canonical declaration of this template. RedeclarableTemplateDecl *getCanonicalDecl() override { return getFirstDecl(); } @@ -858,7 +858,7 @@ return getFirstDecl(); } - /// \brief Determines whether this template was a specialization of a + /// Determines whether this template was a specialization of a /// member template. /// /// In the following example, the function template \c X::f and the @@ -880,14 +880,14 @@ return getCommonPtr()->InstantiatedFromMember.getInt(); } - /// \brief Note that this member template is a specialization. + /// Note that this member template is a specialization. void setMemberSpecialization() { assert(getCommonPtr()->InstantiatedFromMember.getPointer() && "Only member templates can be member template specializations"); getCommonPtr()->InstantiatedFromMember.setInt(true); } - /// \brief Retrieve the member template from which this template was + /// Retrieve the member template from which this template was /// instantiated, or nullptr if this template was not instantiated from a /// member template. /// @@ -969,14 +969,14 @@ protected: friend class FunctionDecl; - /// \brief Data that is common to all of the declarations of a given + /// Data that is common to all of the declarations of a given /// function template. struct Common : CommonBase { - /// \brief The function template specializations for this function + /// The function template specializations for this function /// template, including explicit specializations and instantiations. llvm::FoldingSetVector Specializations; - /// \brief The set of "injected" template arguments used within this + /// The set of "injected" template arguments used within this /// function template. /// /// This pointer refers to the template arguments (there are as @@ -1000,12 +1000,12 @@ return static_cast(RedeclarableTemplateDecl::getCommonPtr()); } - /// \brief Retrieve the set of function template specializations of this + /// Retrieve the set of function template specializations of this /// function template. llvm::FoldingSetVector & getSpecializations() const; - /// \brief Add a specialization of this function template. + /// Add a specialization of this function template. /// /// \param InsertPos Insert position in the FoldingSetVector, must have been /// retrieved by an earlier call to findSpecialization(). @@ -1016,7 +1016,7 @@ friend class ASTDeclReader; friend class ASTDeclWriter; - /// \brief Load any lazily-loaded specializations from the external source. + /// Load any lazily-loaded specializations from the external source. void LoadLazySpecializations() const; /// Get the underlying function declaration of the template. @@ -1030,7 +1030,7 @@ return getTemplatedDecl()->isThisDeclarationADefinition(); } - /// \brief Return the specialization with the provided arguments if it exists, + /// Return the specialization with the provided arguments if it exists, /// otherwise return the insertion point. FunctionDecl *findSpecialization(ArrayRef Args, void *&InsertPos); @@ -1044,7 +1044,7 @@ RedeclarableTemplateDecl::getCanonicalDecl()); } - /// \brief Retrieve the previous declaration of this function template, or + /// Retrieve the previous declaration of this function template, or /// nullptr if no such declaration exists. FunctionTemplateDecl *getPreviousDecl() { return cast_or_null( @@ -1084,7 +1084,7 @@ return makeSpecIterator(getSpecializations(), true); } - /// \brief Retrieve the "injected" template arguments that correspond to the + /// Retrieve the "injected" template arguments that correspond to the /// template parameters of this function template. /// /// Although the C++ standard has no notion of the "injected" template @@ -1093,14 +1093,14 @@ /// template. ArrayRef getInjectedTemplateArgs(); - /// \brief Create a function template node. + /// Create a function template node. static FunctionTemplateDecl *Create(ASTContext &C, DeclContext *DC, SourceLocation L, DeclarationName Name, TemplateParameterList *Params, NamedDecl *Decl); - /// \brief Create an empty function template node. + /// Create an empty function template node. static FunctionTemplateDecl *CreateDeserialized(ASTContext &C, unsigned ID); // Implement isa/cast/dyncast support @@ -1112,7 +1112,7 @@ // Kinds of Template Parameters //===----------------------------------------------------------------------===// -/// \brief Defines the position of a template parameter within a template +/// Defines the position of a template parameter within a template /// parameter list. /// /// Because template parameter can be listed @@ -1145,7 +1145,7 @@ unsigned getIndex() const { return Position; } }; -/// \brief Declaration of a template type parameter. +/// Declaration of a template type parameter. /// /// For example, "T" in /// \code @@ -1155,13 +1155,13 @@ /// Sema creates these on the stack during auto type deduction. friend class Sema; - /// \brief Whether this template type parameter was declaration with + /// Whether this template type parameter was declaration with /// the 'typename' keyword. /// /// If false, it was declared with the 'class' keyword. bool Typename : 1; - /// \brief The default template argument, if any. + /// The default template argument, if any. using DefArgStorage = DefaultArgStorage; DefArgStorage DefaultArgument; @@ -1181,7 +1181,7 @@ static TemplateTypeParmDecl *CreateDeserialized(const ASTContext &C, unsigned ID); - /// \brief Whether this template type parameter was declared with + /// Whether this template type parameter was declared with /// the 'typename' keyword. /// /// If not, it was declared with the 'class' keyword. @@ -1189,57 +1189,57 @@ const DefArgStorage &getDefaultArgStorage() const { return DefaultArgument; } - /// \brief Determine whether this template parameter has a default + /// Determine whether this template parameter has a default /// argument. bool hasDefaultArgument() const { return DefaultArgument.isSet(); } - /// \brief Retrieve the default argument, if any. + /// Retrieve the default argument, if any. QualType getDefaultArgument() const { return DefaultArgument.get()->getType(); } - /// \brief Retrieves the default argument's source information, if any. + /// Retrieves the default argument's source information, if any. TypeSourceInfo *getDefaultArgumentInfo() const { return DefaultArgument.get(); } - /// \brief Retrieves the location of the default argument declaration. + /// Retrieves the location of the default argument declaration. SourceLocation getDefaultArgumentLoc() const; - /// \brief Determines whether the default argument was inherited + /// Determines whether the default argument was inherited /// from a previous declaration of this template. bool defaultArgumentWasInherited() const { return DefaultArgument.isInherited(); } - /// \brief Set the default argument for this template parameter. + /// Set the default argument for this template parameter. void setDefaultArgument(TypeSourceInfo *DefArg) { DefaultArgument.set(DefArg); } - /// \brief Set that this default argument was inherited from another + /// Set that this default argument was inherited from another /// parameter. void setInheritedDefaultArgument(const ASTContext &C, TemplateTypeParmDecl *Prev) { DefaultArgument.setInherited(C, Prev); } - /// \brief Removes the default argument of this template parameter. + /// Removes the default argument of this template parameter. void removeDefaultArgument() { DefaultArgument.clear(); } - /// \brief Set whether this template type parameter was declared with + /// Set whether this template type parameter was declared with /// the 'typename' or 'class' keyword. void setDeclaredWithTypename(bool withTypename) { Typename = withTypename; } - /// \brief Retrieve the depth of the template parameter. + /// Retrieve the depth of the template parameter. unsigned getDepth() const; - /// \brief Retrieve the index of the template parameter. + /// Retrieve the index of the template parameter. unsigned getIndex() const; - /// \brief Returns whether this is a parameter pack. + /// Returns whether this is a parameter pack. bool isParameterPack() const; SourceRange getSourceRange() const override LLVM_READONLY; @@ -1262,7 +1262,7 @@ friend class ASTDeclReader; friend TrailingObjects; - /// \brief The default template argument, if any, and whether or not + /// The default template argument, if any, and whether or not /// it was inherited. using DefArgStorage = DefaultArgStorage; DefArgStorage DefaultArgument; @@ -1270,15 +1270,15 @@ // FIXME: Collapse this into TemplateParamPosition; or, just move depth/index // down here to save memory. - /// \brief Whether this non-type template parameter is a parameter pack. + /// Whether this non-type template parameter is a parameter pack. bool ParameterPack; - /// \brief Whether this non-type template parameter is an "expanded" + /// Whether this non-type template parameter is an "expanded" /// parameter pack, meaning that its type is a pack expansion and we /// already know the set of types that expansion expands to. bool ExpandedParameterPack = false; - /// \brief The number of types in an expanded parameter pack. + /// The number of types in an expanded parameter pack. unsigned NumExpandedTypes = 0; size_t numTrailingObjects( @@ -1328,23 +1328,23 @@ const DefArgStorage &getDefaultArgStorage() const { return DefaultArgument; } - /// \brief Determine whether this template parameter has a default + /// Determine whether this template parameter has a default /// argument. bool hasDefaultArgument() const { return DefaultArgument.isSet(); } - /// \brief Retrieve the default argument, if any. + /// Retrieve the default argument, if any. Expr *getDefaultArgument() const { return DefaultArgument.get(); } - /// \brief Retrieve the location of the default argument, if any. + /// Retrieve the location of the default argument, if any. SourceLocation getDefaultArgumentLoc() const; - /// \brief Determines whether the default argument was inherited + /// Determines whether the default argument was inherited /// from a previous declaration of this template. bool defaultArgumentWasInherited() const { return DefaultArgument.isInherited(); } - /// \brief Set the default argument for this template parameter, and + /// Set the default argument for this template parameter, and /// whether that default argument was inherited from another /// declaration. void setDefaultArgument(Expr *DefArg) { DefaultArgument.set(DefArg); } @@ -1353,10 +1353,10 @@ DefaultArgument.setInherited(C, Parm); } - /// \brief Removes the default argument of this template parameter. + /// Removes the default argument of this template parameter. void removeDefaultArgument() { DefaultArgument.clear(); } - /// \brief Whether this parameter is a non-type template parameter pack. + /// Whether this parameter is a non-type template parameter pack. /// /// If the parameter is a parameter pack, the type may be a /// \c PackExpansionType. In the following example, the \c Dims parameter @@ -1367,7 +1367,7 @@ /// \endcode bool isParameterPack() const { return ParameterPack; } - /// \brief Whether this parameter pack is a pack expansion. + /// Whether this parameter pack is a pack expansion. /// /// A non-type template parameter pack is a pack expansion if its type /// contains an unexpanded parameter pack. In this case, we will have @@ -1376,7 +1376,7 @@ return ParameterPack && getType()->getAs(); } - /// \brief Whether this parameter is a non-type template parameter pack + /// Whether this parameter is a non-type template parameter pack /// that has a known list of different types at different positions. /// /// A parameter pack is an expanded parameter pack when the original @@ -1402,14 +1402,14 @@ /// return the expansion types. bool isExpandedParameterPack() const { return ExpandedParameterPack; } - /// \brief Retrieves the number of expansion types in an expanded parameter + /// Retrieves the number of expansion types in an expanded parameter /// pack. unsigned getNumExpansionTypes() const { assert(ExpandedParameterPack && "Not an expansion parameter pack"); return NumExpandedTypes; } - /// \brief Retrieve a particular expansion type within an expanded parameter + /// Retrieve a particular expansion type within an expanded parameter /// pack. QualType getExpansionType(unsigned I) const { assert(I < NumExpandedTypes && "Out-of-range expansion type index"); @@ -1418,7 +1418,7 @@ return TypesAndInfos[I].first; } - /// \brief Retrieve a particular expansion type source info within an + /// Retrieve a particular expansion type source info within an /// expanded parameter pack. TypeSourceInfo *getExpansionTypeSourceInfo(unsigned I) const { assert(I < NumExpandedTypes && "Out-of-range expansion type index"); @@ -1444,20 +1444,20 @@ protected TemplateParmPosition, private llvm::TrailingObjects { - /// \brief The default template argument, if any. + /// The default template argument, if any. using DefArgStorage = DefaultArgStorage; DefArgStorage DefaultArgument; - /// \brief Whether this parameter is a parameter pack. + /// Whether this parameter is a parameter pack. bool ParameterPack; - /// \brief Whether this template template parameter is an "expanded" + /// Whether this template template parameter is an "expanded" /// parameter pack, meaning that it is a pack expansion and we /// already know the set of template parameters that expansion expands to. bool ExpandedParameterPack = false; - /// \brief The number of parameters in an expanded parameter pack. + /// The number of parameters in an expanded parameter pack. unsigned NumExpandedParams = 0; TemplateTemplateParmDecl(DeclContext *DC, SourceLocation L, @@ -1502,7 +1502,7 @@ using TemplateParmPosition::setPosition; using TemplateParmPosition::getIndex; - /// \brief Whether this template template parameter is a template + /// Whether this template template parameter is a template /// parameter pack. /// /// \code @@ -1510,7 +1510,7 @@ /// \endcode bool isParameterPack() const { return ParameterPack; } - /// \brief Whether this parameter pack is a pack expansion. + /// Whether this parameter pack is a pack expansion. /// /// A template template parameter pack is a pack expansion if its template /// parameter list contains an unexpanded parameter pack. @@ -1519,7 +1519,7 @@ getTemplateParameters()->containsUnexpandedParameterPack(); } - /// \brief Whether this parameter is a template template parameter pack that + /// Whether this parameter is a template template parameter pack that /// has a known list of different template parameter lists at different /// positions. /// @@ -1539,14 +1539,14 @@ /// parameter pack. bool isExpandedParameterPack() const { return ExpandedParameterPack; } - /// \brief Retrieves the number of expansion template parameters in + /// Retrieves the number of expansion template parameters in /// an expanded parameter pack. unsigned getNumExpansionTemplateParameters() const { assert(ExpandedParameterPack && "Not an expansion parameter pack"); return NumExpandedParams; } - /// \brief Retrieve a particular expansion type within an expanded parameter + /// Retrieve a particular expansion type within an expanded parameter /// pack. TemplateParameterList *getExpansionTemplateParameters(unsigned I) const { assert(I < NumExpandedParams && "Out-of-range expansion type index"); @@ -1555,26 +1555,26 @@ const DefArgStorage &getDefaultArgStorage() const { return DefaultArgument; } - /// \brief Determine whether this template parameter has a default + /// Determine whether this template parameter has a default /// argument. bool hasDefaultArgument() const { return DefaultArgument.isSet(); } - /// \brief Retrieve the default argument, if any. + /// Retrieve the default argument, if any. const TemplateArgumentLoc &getDefaultArgument() const { static const TemplateArgumentLoc None; return DefaultArgument.isSet() ? *DefaultArgument.get() : None; } - /// \brief Retrieve the location of the default argument, if any. + /// Retrieve the location of the default argument, if any. SourceLocation getDefaultArgumentLoc() const; - /// \brief Determines whether the default argument was inherited + /// Determines whether the default argument was inherited /// from a previous declaration of this template. bool defaultArgumentWasInherited() const { return DefaultArgument.isInherited(); } - /// \brief Set the default argument for this template parameter, and + /// Set the default argument for this template parameter, and /// whether that default argument was inherited from another /// declaration. void setDefaultArgument(const ASTContext &C, @@ -1584,7 +1584,7 @@ DefaultArgument.setInherited(C, Prev); } - /// \brief Removes the default argument of this template parameter. + /// Removes the default argument of this template parameter. void removeDefaultArgument() { DefaultArgument.clear(); } SourceRange getSourceRange() const override LLVM_READONLY { @@ -1599,7 +1599,7 @@ static bool classofKind(Kind K) { return K == TemplateTemplateParm; } }; -/// \brief Represents the builtin template declaration which is used to +/// Represents the builtin template declaration which is used to /// implement __make_integer_seq and other builtin templates. It serves /// no real purpose beyond existing as a place to hold template parameters. class BuiltinTemplateDecl : public TemplateDecl { @@ -1628,7 +1628,7 @@ BuiltinTemplateKind getBuiltinTemplateKind() const { return BTK; } }; -/// \brief Represents a class template specialization, which refers to +/// Represents a class template specialization, which refers to /// a class template with a given set of template arguments. /// /// Class template specializations represent both explicit @@ -1643,48 +1643,48 @@ /// \endcode class ClassTemplateSpecializationDecl : public CXXRecordDecl, public llvm::FoldingSetNode { - /// \brief Structure that stores information about a class template + /// Structure that stores information about a class template /// specialization that was instantiated from a class template partial /// specialization. struct SpecializedPartialSpecialization { - /// \brief The class template partial specialization from which this + /// The class template partial specialization from which this /// class template specialization was instantiated. ClassTemplatePartialSpecializationDecl *PartialSpecialization; - /// \brief The template argument list deduced for the class template + /// The template argument list deduced for the class template /// partial specialization itself. const TemplateArgumentList *TemplateArgs; }; - /// \brief The template that this specialization specializes + /// The template that this specialization specializes llvm::PointerUnion SpecializedTemplate; - /// \brief Further info for explicit template specialization/instantiation. + /// Further info for explicit template specialization/instantiation. struct ExplicitSpecializationInfo { - /// \brief The type-as-written. + /// The type-as-written. TypeSourceInfo *TypeAsWritten = nullptr; - /// \brief The location of the extern keyword. + /// The location of the extern keyword. SourceLocation ExternLoc; - /// \brief The location of the template keyword. + /// The location of the template keyword. SourceLocation TemplateKeywordLoc; ExplicitSpecializationInfo() = default; }; - /// \brief Further info for explicit template specialization/instantiation. + /// Further info for explicit template specialization/instantiation. /// Does not apply to implicit specializations. ExplicitSpecializationInfo *ExplicitInfo = nullptr; - /// \brief The template arguments used to describe this specialization. + /// The template arguments used to describe this specialization. const TemplateArgumentList *TemplateArgs; - /// \brief The point where this template was instantiated (if any) + /// The point where this template was instantiated (if any) SourceLocation PointOfInstantiation; - /// \brief The kind of specialization this declaration refers to. + /// The kind of specialization this declaration refers to. /// Really a value of type TemplateSpecializationKind. unsigned SpecializationKind : 3; @@ -1730,16 +1730,16 @@ return cast(Recent); } - /// \brief Retrieve the template that this specialization specializes. + /// Retrieve the template that this specialization specializes. ClassTemplateDecl *getSpecializedTemplate() const; - /// \brief Retrieve the template arguments of the class template + /// Retrieve the template arguments of the class template /// specialization. const TemplateArgumentList &getTemplateArgs() const { return *TemplateArgs; } - /// \brief Determine the kind of specialization that this + /// Determine the kind of specialization that this /// declaration represents. TemplateSpecializationKind getSpecializationKind() const { return static_cast(SpecializationKind); @@ -1749,7 +1749,7 @@ return getSpecializationKind() == TSK_ExplicitSpecialization; } - /// \brief True if this declaration is an explicit specialization, + /// True if this declaration is an explicit specialization, /// explicit instantiation declaration, or explicit instantiation /// definition. bool isExplicitInstantiationOrSpecialization() const { @@ -1761,7 +1761,7 @@ SpecializationKind = TSK; } - /// \brief Get the point of instantiation (if any), or null if none. + /// Get the point of instantiation (if any), or null if none. SourceLocation getPointOfInstantiation() const { return PointOfInstantiation; } @@ -1771,7 +1771,7 @@ PointOfInstantiation = Loc; } - /// \brief If this class template specialization is an instantiation of + /// If this class template specialization is an instantiation of /// a template (rather than an explicit specialization), return the /// class template or class template partial specialization from which it /// was instantiated. @@ -1785,7 +1785,7 @@ return getSpecializedTemplateOrPartial(); } - /// \brief Retrieve the class template or class template partial + /// Retrieve the class template or class template partial /// specialization which was specialized by this. llvm::PointerUnion @@ -1797,7 +1797,7 @@ return SpecializedTemplate.get(); } - /// \brief Retrieve the set of template arguments that should be used + /// Retrieve the set of template arguments that should be used /// to instantiate members of the class template or class template partial /// specialization from which this class template specialization was /// instantiated. @@ -1816,7 +1816,7 @@ return getTemplateArgs(); } - /// \brief Note that this class template specialization is actually an + /// Note that this class template specialization is actually an /// instantiation of the given class template partial specialization whose /// template arguments have been deduced. void setInstantiationOf(ClassTemplatePartialSpecializationDecl *PartialSpec, @@ -1829,7 +1829,7 @@ SpecializedTemplate = PS; } - /// \brief Note that this class template specialization is an instantiation + /// Note that this class template specialization is an instantiation /// of the given class template. void setInstantiationOf(ClassTemplateDecl *TemplDecl) { assert(!SpecializedTemplate.is() && @@ -1837,7 +1837,7 @@ SpecializedTemplate = TemplDecl; } - /// \brief Sets the type of this specialization as it was written by + /// Sets the type of this specialization as it was written by /// the user. This will be a class template specialization type. void setTypeAsWritten(TypeSourceInfo *T) { if (!ExplicitInfo) @@ -1845,32 +1845,32 @@ ExplicitInfo->TypeAsWritten = T; } - /// \brief Gets the type of this specialization as it was written by + /// Gets the type of this specialization as it was written by /// the user, if it was so written. TypeSourceInfo *getTypeAsWritten() const { return ExplicitInfo ? ExplicitInfo->TypeAsWritten : nullptr; } - /// \brief Gets the location of the extern keyword, if present. + /// Gets the location of the extern keyword, if present. SourceLocation getExternLoc() const { return ExplicitInfo ? ExplicitInfo->ExternLoc : SourceLocation(); } - /// \brief Sets the location of the extern keyword. + /// Sets the location of the extern keyword. void setExternLoc(SourceLocation Loc) { if (!ExplicitInfo) ExplicitInfo = new (getASTContext()) ExplicitSpecializationInfo; ExplicitInfo->ExternLoc = Loc; } - /// \brief Sets the location of the template keyword. + /// Sets the location of the template keyword. void setTemplateKeywordLoc(SourceLocation Loc) { if (!ExplicitInfo) ExplicitInfo = new (getASTContext()) ExplicitSpecializationInfo; ExplicitInfo->TemplateKeywordLoc = Loc; } - /// \brief Gets the location of the template keyword, if present. + /// Gets the location of the template keyword, if present. SourceLocation getTemplateKeywordLoc() const { return ExplicitInfo ? ExplicitInfo->TemplateKeywordLoc : SourceLocation(); } @@ -1899,14 +1899,14 @@ class ClassTemplatePartialSpecializationDecl : public ClassTemplateSpecializationDecl { - /// \brief The list of template parameters + /// The list of template parameters TemplateParameterList* TemplateParams = nullptr; - /// \brief The source info for the template arguments as written. + /// The source info for the template arguments as written. /// FIXME: redundant with TypeAsWritten? const ASTTemplateArgumentListInfo *ArgsAsWritten = nullptr; - /// \brief The class template partial specialization from which this + /// The class template partial specialization from which this /// class template partial specialization was instantiated. /// /// The boolean value will be true to indicate that this class template @@ -1963,7 +1963,7 @@ return ArgsAsWritten; } - /// \brief Retrieve the member class template partial specialization from + /// Retrieve the member class template partial specialization from /// which this particular class template partial specialization was /// instantiated. /// @@ -1999,7 +1999,7 @@ First->InstantiatedFromMember.setPointer(PartialSpec); } - /// \brief Determines whether this class template partial specialization + /// Determines whether this class template partial specialization /// template was a specialization of a member partial specialization. /// /// In the following example, the member template partial specialization @@ -2021,7 +2021,7 @@ return First->InstantiatedFromMember.getInt(); } - /// \brief Note that this member template is a specialization. + /// Note that this member template is a specialization. void setMemberSpecialization() { auto *First = cast(getFirstDecl()); assert(First->InstantiatedFromMember.getPointer() && @@ -2050,29 +2050,29 @@ /// Declaration of a class template. class ClassTemplateDecl : public RedeclarableTemplateDecl { protected: - /// \brief Data that is common to all of the declarations of a given + /// Data that is common to all of the declarations of a given /// class template. struct Common : CommonBase { - /// \brief The class template specializations for this class + /// The class template specializations for this class /// template, including explicit specializations and instantiations. llvm::FoldingSetVector Specializations; - /// \brief The class template partial specializations for this class + /// The class template partial specializations for this class /// template. llvm::FoldingSetVector PartialSpecializations; - /// \brief The injected-class-name type for this class template. + /// The injected-class-name type for this class template. QualType InjectedClassNameType; Common() = default; }; - /// \brief Retrieve the set of specializations of this class template. + /// Retrieve the set of specializations of this class template. llvm::FoldingSetVector & getSpecializations() const; - /// \brief Retrieve the set of partial specializations of this class + /// Retrieve the set of partial specializations of this class /// template. llvm::FoldingSetVector & getPartialSpecializations(); @@ -2098,22 +2098,22 @@ friend class ASTDeclReader; friend class ASTDeclWriter; - /// \brief Load any lazily-loaded specializations from the external source. + /// Load any lazily-loaded specializations from the external source. void LoadLazySpecializations() const; - /// \brief Get the underlying class declarations of the template. + /// Get the underlying class declarations of the template. CXXRecordDecl *getTemplatedDecl() const { return static_cast(TemplatedDecl); } - /// \brief Returns whether this template declaration defines the primary + /// Returns whether this template declaration defines the primary /// class pattern. bool isThisDeclarationADefinition() const { return getTemplatedDecl()->isThisDeclarationADefinition(); } // FIXME: remove default argument for AssociatedConstraints - /// \brief Create a class template node. + /// Create a class template node. static ClassTemplateDecl *Create(ASTContext &C, DeclContext *DC, SourceLocation L, DeclarationName Name, @@ -2121,15 +2121,15 @@ NamedDecl *Decl, Expr *AssociatedConstraints = nullptr); - /// \brief Create an empty class template node. + /// Create an empty class template node. static ClassTemplateDecl *CreateDeserialized(ASTContext &C, unsigned ID); - /// \brief Return the specialization with the provided arguments if it exists, + /// Return the specialization with the provided arguments if it exists, /// otherwise return the insertion point. ClassTemplateSpecializationDecl * findSpecialization(ArrayRef Args, void *&InsertPos); - /// \brief Insert the specified specialization knowing that it is not already + /// Insert the specified specialization knowing that it is not already /// in. InsertPos must be obtained from findSpecialization. void AddSpecialization(ClassTemplateSpecializationDecl *D, void *InsertPos); @@ -2142,7 +2142,7 @@ RedeclarableTemplateDecl::getCanonicalDecl()); } - /// \brief Retrieve the previous declaration of this class template, or + /// Retrieve the previous declaration of this class template, or /// nullptr if no such declaration exists. ClassTemplateDecl *getPreviousDecl() { return cast_or_null( @@ -2167,21 +2167,21 @@ RedeclarableTemplateDecl::getInstantiatedFromMemberTemplate()); } - /// \brief Return the partial specialization with the provided arguments if it + /// Return the partial specialization with the provided arguments if it /// exists, otherwise return the insertion point. ClassTemplatePartialSpecializationDecl * findPartialSpecialization(ArrayRef Args, void *&InsertPos); - /// \brief Insert the specified partial specialization knowing that it is not + /// Insert the specified partial specialization knowing that it is not /// already in. InsertPos must be obtained from findPartialSpecialization. void AddPartialSpecialization(ClassTemplatePartialSpecializationDecl *D, void *InsertPos); - /// \brief Retrieve the partial specializations as an ordered list. + /// Retrieve the partial specializations as an ordered list. void getPartialSpecializations( SmallVectorImpl &PS); - /// \brief Find a class template partial specialization with the given + /// Find a class template partial specialization with the given /// type T. /// /// \param T a dependent type that names a specialization of this class @@ -2191,7 +2191,7 @@ /// the type \p T, or nullptr if no such partial specialization exists. ClassTemplatePartialSpecializationDecl *findPartialSpecialization(QualType T); - /// \brief Find a class template partial specialization which was instantiated + /// Find a class template partial specialization which was instantiated /// from the given member partial specialization. /// /// \param D a member class template partial specialization. @@ -2203,7 +2203,7 @@ findPartialSpecInstantiatedFromMember( ClassTemplatePartialSpecializationDecl *D); - /// \brief Retrieve the template specialization type of the + /// Retrieve the template specialization type of the /// injected-class-name for this class template. /// /// The injected-class-name for a class template \c X is \c @@ -2239,7 +2239,7 @@ static bool classofKind(Kind K) { return K == ClassTemplate; } }; -/// \brief Declaration of a friend template. +/// Declaration of a friend template. /// /// For example: /// \code @@ -2303,7 +2303,7 @@ return Friend.dyn_cast(); } - /// \brief Retrieves the location of the 'friend' keyword. + /// Retrieves the location of the 'friend' keyword. SourceLocation getFriendLoc() const { return FriendLoc; } @@ -2322,7 +2322,7 @@ static bool classofKind(Kind K) { return K == Decl::FriendTemplate; } }; -/// \brief Declaration of an alias template. +/// Declaration of an alias template. /// /// For example: /// \code @@ -2363,7 +2363,7 @@ RedeclarableTemplateDecl::getCanonicalDecl()); } - /// \brief Retrieve the previous declaration of this function template, or + /// Retrieve the previous declaration of this function template, or /// nullptr if no such declaration exists. TypeAliasTemplateDecl *getPreviousDecl() { return cast_or_null( @@ -2380,14 +2380,14 @@ RedeclarableTemplateDecl::getInstantiatedFromMemberTemplate()); } - /// \brief Create a function template node. + /// Create a function template node. static TypeAliasTemplateDecl *Create(ASTContext &C, DeclContext *DC, SourceLocation L, DeclarationName Name, TemplateParameterList *Params, NamedDecl *Decl); - /// \brief Create an empty alias template node. + /// Create an empty alias template node. static TypeAliasTemplateDecl *CreateDeserialized(ASTContext &C, unsigned ID); // Implement isa/cast/dyncast support @@ -2395,7 +2395,7 @@ static bool classofKind(Kind K) { return K == TypeAliasTemplate; } }; -/// \brief Declaration of a function specialization at template class scope. +/// Declaration of a function specialization at template class scope. /// /// This is a non-standard extension needed to support MSVC. /// @@ -2461,7 +2461,7 @@ inline AnyFunctionDecl::AnyFunctionDecl(FunctionTemplateDecl *FTD) : Function(FTD) {} -/// \brief Represents a variable template specialization, which refers to +/// Represents a variable template specialization, which refers to /// a variable template with a given set of template arguments. /// /// Variable template specializations represent both explicit @@ -2477,53 +2477,53 @@ class VarTemplateSpecializationDecl : public VarDecl, public llvm::FoldingSetNode { - /// \brief Structure that stores information about a variable template + /// Structure that stores information about a variable template /// specialization that was instantiated from a variable template partial /// specialization. struct SpecializedPartialSpecialization { - /// \brief The variable template partial specialization from which this + /// The variable template partial specialization from which this /// variable template specialization was instantiated. VarTemplatePartialSpecializationDecl *PartialSpecialization; - /// \brief The template argument list deduced for the variable template + /// The template argument list deduced for the variable template /// partial specialization itself. const TemplateArgumentList *TemplateArgs; }; - /// \brief The template that this specialization specializes. + /// The template that this specialization specializes. llvm::PointerUnion SpecializedTemplate; - /// \brief Further info for explicit template specialization/instantiation. + /// Further info for explicit template specialization/instantiation. struct ExplicitSpecializationInfo { - /// \brief The type-as-written. + /// The type-as-written. TypeSourceInfo *TypeAsWritten = nullptr; - /// \brief The location of the extern keyword. + /// The location of the extern keyword. SourceLocation ExternLoc; - /// \brief The location of the template keyword. + /// The location of the template keyword. SourceLocation TemplateKeywordLoc; ExplicitSpecializationInfo() = default; }; - /// \brief Further info for explicit template specialization/instantiation. + /// Further info for explicit template specialization/instantiation. /// Does not apply to implicit specializations. ExplicitSpecializationInfo *ExplicitInfo = nullptr; - /// \brief The template arguments used to describe this specialization. + /// The template arguments used to describe this specialization. const TemplateArgumentList *TemplateArgs; TemplateArgumentListInfo TemplateArgsInfo; - /// \brief The point where this template was instantiated (if any). + /// The point where this template was instantiated (if any). SourceLocation PointOfInstantiation; - /// \brief The kind of specialization this declaration refers to. + /// The kind of specialization this declaration refers to. /// Really a value of type TemplateSpecializationKind. unsigned SpecializationKind : 3; - /// \brief Whether this declaration is a complete definition of the + /// Whether this declaration is a complete definition of the /// variable template specialization. We can't otherwise tell apart /// an instantiated declaration from an instantiated definition with /// no initializer. @@ -2560,10 +2560,10 @@ return cast(Recent); } - /// \brief Retrieve the template that this specialization specializes. + /// Retrieve the template that this specialization specializes. VarTemplateDecl *getSpecializedTemplate() const; - /// \brief Retrieve the template arguments of the variable template + /// Retrieve the template arguments of the variable template /// specialization. const TemplateArgumentList &getTemplateArgs() const { return *TemplateArgs; } @@ -2574,7 +2574,7 @@ return TemplateArgsInfo; } - /// \brief Determine the kind of specialization that this + /// Determine the kind of specialization that this /// declaration represents. TemplateSpecializationKind getSpecializationKind() const { return static_cast(SpecializationKind); @@ -2584,7 +2584,7 @@ return getSpecializationKind() == TSK_ExplicitSpecialization; } - /// \brief True if this declaration is an explicit specialization, + /// True if this declaration is an explicit specialization, /// explicit instantiation declaration, or explicit instantiation /// definition. bool isExplicitInstantiationOrSpecialization() const { @@ -2596,7 +2596,7 @@ SpecializationKind = TSK; } - /// \brief Get the point of instantiation (if any), or null if none. + /// Get the point of instantiation (if any), or null if none. SourceLocation getPointOfInstantiation() const { return PointOfInstantiation; } @@ -2608,7 +2608,7 @@ void setCompleteDefinition() { IsCompleteDefinition = true; } - /// \brief If this variable template specialization is an instantiation of + /// If this variable template specialization is an instantiation of /// a template (rather than an explicit specialization), return the /// variable template or variable template partial specialization from which /// it was instantiated. @@ -2621,7 +2621,7 @@ return getSpecializedTemplateOrPartial(); } - /// \brief Retrieve the variable template or variable template partial + /// Retrieve the variable template or variable template partial /// specialization which was specialized by this. llvm::PointerUnion getSpecializedTemplateOrPartial() const { @@ -2632,7 +2632,7 @@ return SpecializedTemplate.get(); } - /// \brief Retrieve the set of template arguments that should be used + /// Retrieve the set of template arguments that should be used /// to instantiate the initializer of the variable template or variable /// template partial specialization from which this variable template /// specialization was instantiated. @@ -2651,7 +2651,7 @@ return getTemplateArgs(); } - /// \brief Note that this variable template specialization is actually an + /// Note that this variable template specialization is actually an /// instantiation of the given variable template partial specialization whose /// template arguments have been deduced. void setInstantiationOf(VarTemplatePartialSpecializationDecl *PartialSpec, @@ -2664,7 +2664,7 @@ SpecializedTemplate = PS; } - /// \brief Note that this variable template specialization is an instantiation + /// Note that this variable template specialization is an instantiation /// of the given variable template. void setInstantiationOf(VarTemplateDecl *TemplDecl) { assert(!SpecializedTemplate.is() && @@ -2672,7 +2672,7 @@ SpecializedTemplate = TemplDecl; } - /// \brief Sets the type of this specialization as it was written by + /// Sets the type of this specialization as it was written by /// the user. void setTypeAsWritten(TypeSourceInfo *T) { if (!ExplicitInfo) @@ -2680,32 +2680,32 @@ ExplicitInfo->TypeAsWritten = T; } - /// \brief Gets the type of this specialization as it was written by + /// Gets the type of this specialization as it was written by /// the user, if it was so written. TypeSourceInfo *getTypeAsWritten() const { return ExplicitInfo ? ExplicitInfo->TypeAsWritten : nullptr; } - /// \brief Gets the location of the extern keyword, if present. + /// Gets the location of the extern keyword, if present. SourceLocation getExternLoc() const { return ExplicitInfo ? ExplicitInfo->ExternLoc : SourceLocation(); } - /// \brief Sets the location of the extern keyword. + /// Sets the location of the extern keyword. void setExternLoc(SourceLocation Loc) { if (!ExplicitInfo) ExplicitInfo = new (getASTContext()) ExplicitSpecializationInfo; ExplicitInfo->ExternLoc = Loc; } - /// \brief Sets the location of the template keyword. + /// Sets the location of the template keyword. void setTemplateKeywordLoc(SourceLocation Loc) { if (!ExplicitInfo) ExplicitInfo = new (getASTContext()) ExplicitSpecializationInfo; ExplicitInfo->TemplateKeywordLoc = Loc; } - /// \brief Gets the location of the template keyword, if present. + /// Gets the location of the template keyword, if present. SourceLocation getTemplateKeywordLoc() const { return ExplicitInfo ? ExplicitInfo->TemplateKeywordLoc : SourceLocation(); } @@ -2732,14 +2732,14 @@ class VarTemplatePartialSpecializationDecl : public VarTemplateSpecializationDecl { - /// \brief The list of template parameters + /// The list of template parameters TemplateParameterList *TemplateParams = nullptr; - /// \brief The source info for the template arguments as written. + /// The source info for the template arguments as written. /// FIXME: redundant with TypeAsWritten? const ASTTemplateArgumentListInfo *ArgsAsWritten = nullptr; - /// \brief The variable template partial specialization from which this + /// The variable template partial specialization from which this /// variable template partial specialization was instantiated. /// /// The boolean value will be true to indicate that this variable template @@ -2791,7 +2791,7 @@ return ArgsAsWritten; } - /// \brief Retrieve the member variable template partial specialization from + /// Retrieve the member variable template partial specialization from /// which this particular variable template partial specialization was /// instantiated. /// @@ -2823,7 +2823,7 @@ First->InstantiatedFromMember.setPointer(PartialSpec); } - /// \brief Determines whether this variable template partial specialization + /// Determines whether this variable template partial specialization /// was a specialization of a member partial specialization. /// /// In the following example, the member template partial specialization @@ -2845,7 +2845,7 @@ return First->InstantiatedFromMember.getInt(); } - /// \brief Note that this member template is a specialization. + /// Note that this member template is a specialization. void setMemberSpecialization() { auto *First = cast(getFirstDecl()); assert(First->InstantiatedFromMember.getPointer() && @@ -2863,14 +2863,14 @@ /// Declaration of a variable template. class VarTemplateDecl : public RedeclarableTemplateDecl { protected: - /// \brief Data that is common to all of the declarations of a given + /// Data that is common to all of the declarations of a given /// variable template. struct Common : CommonBase { - /// \brief The variable template specializations for this variable + /// The variable template specializations for this variable /// template, including explicit specializations and instantiations. llvm::FoldingSetVector Specializations; - /// \brief The variable template partial specializations for this variable + /// The variable template partial specializations for this variable /// template. llvm::FoldingSetVector PartialSpecializations; @@ -2878,11 +2878,11 @@ Common() = default; }; - /// \brief Retrieve the set of specializations of this variable template. + /// Retrieve the set of specializations of this variable template. llvm::FoldingSetVector & getSpecializations() const; - /// \brief Retrieve the set of partial specializations of this class + /// Retrieve the set of partial specializations of this class /// template. llvm::FoldingSetVector & getPartialSpecializations(); @@ -2902,15 +2902,15 @@ friend class ASTDeclReader; friend class ASTDeclWriter; - /// \brief Load any lazily-loaded specializations from the external source. + /// Load any lazily-loaded specializations from the external source. void LoadLazySpecializations() const; - /// \brief Get the underlying variable declarations of the template. + /// Get the underlying variable declarations of the template. VarDecl *getTemplatedDecl() const { return static_cast(TemplatedDecl); } - /// \brief Returns whether this template declaration defines the primary + /// Returns whether this template declaration defines the primary /// variable pattern. bool isThisDeclarationADefinition() const { return getTemplatedDecl()->isThisDeclarationADefinition(); @@ -2918,21 +2918,21 @@ VarTemplateDecl *getDefinition(); - /// \brief Create a variable template node. + /// Create a variable template node. static VarTemplateDecl *Create(ASTContext &C, DeclContext *DC, SourceLocation L, DeclarationName Name, TemplateParameterList *Params, VarDecl *Decl); - /// \brief Create an empty variable template node. + /// Create an empty variable template node. static VarTemplateDecl *CreateDeserialized(ASTContext &C, unsigned ID); - /// \brief Return the specialization with the provided arguments if it exists, + /// Return the specialization with the provided arguments if it exists, /// otherwise return the insertion point. VarTemplateSpecializationDecl * findSpecialization(ArrayRef Args, void *&InsertPos); - /// \brief Insert the specified specialization knowing that it is not already + /// Insert the specified specialization knowing that it is not already /// in. InsertPos must be obtained from findSpecialization. void AddSpecialization(VarTemplateSpecializationDecl *D, void *InsertPos); @@ -2943,7 +2943,7 @@ return cast(RedeclarableTemplateDecl::getCanonicalDecl()); } - /// \brief Retrieve the previous declaration of this variable template, or + /// Retrieve the previous declaration of this variable template, or /// nullptr if no such declaration exists. VarTemplateDecl *getPreviousDecl() { return cast_or_null( @@ -2968,21 +2968,21 @@ RedeclarableTemplateDecl::getInstantiatedFromMemberTemplate()); } - /// \brief Return the partial specialization with the provided arguments if it + /// Return the partial specialization with the provided arguments if it /// exists, otherwise return the insertion point. VarTemplatePartialSpecializationDecl * findPartialSpecialization(ArrayRef Args, void *&InsertPos); - /// \brief Insert the specified partial specialization knowing that it is not + /// Insert the specified partial specialization knowing that it is not /// already in. InsertPos must be obtained from findPartialSpecialization. void AddPartialSpecialization(VarTemplatePartialSpecializationDecl *D, void *InsertPos); - /// \brief Retrieve the partial specializations as an ordered list. + /// Retrieve the partial specializations as an ordered list. void getPartialSpecializations( SmallVectorImpl &PS); - /// \brief Find a variable template partial specialization which was + /// Find a variable template partial specialization which was /// instantiated /// from the given member partial specialization. /// Index: cfe/trunk/include/clang/AST/DeclVisitor.h =================================================================== --- cfe/trunk/include/clang/AST/DeclVisitor.h +++ cfe/trunk/include/clang/AST/DeclVisitor.h @@ -30,7 +30,7 @@ template struct make_ptr { using type = T *; }; template struct make_const_ptr { using type = const T *; }; -/// \brief A simple visitor class that helps create declaration visitors. +/// A simple visitor class that helps create declaration visitors. template