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. \<int> in x.f<int>, + * Include the explicit template arguments, e.g. \<int> in x.f<int>, * 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<PCHContainerOperations> 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<ASTContext> { 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<NestedNameSpecifier> 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<const RecordDecl*, const ASTRecordLayout*> @@ -221,35 +221,35 @@ mutable llvm::DenseMap<const ObjCContainerDecl*, const ASTRecordLayout*> ObjCLayouts; - /// \brief A cache from types to size and alignment information. + /// A cache from types to size and alignment information. using TypeInfoMap = llvm::DenseMap<const Type *, struct TypeInfo>; mutable TypeInfoMap MemoizedTypeInfo; - /// \brief A cache mapping from CXXRecordDecls to key functions. + /// A cache mapping from CXXRecordDecls to key functions. llvm::DenseMap<const CXXRecordDecl*, LazyDeclPtr> KeyFunctions; - /// \brief Mapping from ObjCContainers to their ObjCImplementations. + /// Mapping from ObjCContainers to their ObjCImplementations. llvm::DenseMap<ObjCContainerDecl*, ObjCImplDecl*> 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<const ObjCMethodDecl*,const ObjCMethodDecl*> ObjCMethodRedecls; - /// \brief Mapping from __block VarDecls to their copy initialization expr. + /// Mapping from __block VarDecls to their copy initialization expr. llvm::DenseMap<const VarDecl*, Expr*> BlockVarCopyInits; - /// \brief Mapping from class scope functions specialization to their + /// Mapping from class scope functions specialization to their /// template patterns. llvm::DenseMap<const FunctionDecl*, FunctionDecl*> 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<const MaterializeTemporaryExpr *, APValue *> 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<const Decl*, AttrVec*> 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<Decl*, Decl*> 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<NamedDecl*, llvm::TinyPtrVector<Module*>> 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<VarTemplateDecl *, MemberSpecializationInfo *>; @@ -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<const VarDecl *, TemplateOrSpecializationInfo> 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<FieldDecl *, FieldDecl *> 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<const CXXMethodDecl *>; llvm::DenseMap<const CXXMethodDecl *, CXXMethodVector> 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<const DeclContext *, std::unique_ptr<MangleNumberingContext>> 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<const NamedDecl *, unsigned> MangleNumbers; llvm::MapVector<const VarDecl *, unsigned> 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<const VarDecl *, unsigned>; 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<SanitizerBlacklist> 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<XRayFunctionFilter> 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<CXXABI> 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<ExternalASTSource> ExternalSource; ASTMutationListener *Listener = nullptr; - /// \brief Contains parents of a node. + /// Contains parents of a node. using ParentVector = llvm::SmallVector<ast_type_traits::DynTypedNode, 2>; - /// \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<const Decl *, RawCommentAndCacheFlags> RedeclComments; - /// \brief Mapping from declarations to parsed comments attached to any + /// Mapping from declarations to parsed comments attached to any /// redeclaration. mutable llvm::DenseMap<const Decl *, comments::FullComment *> 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<const NamedDecl *> &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<Module*> 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<ExternalASTSource> 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<ObjCProtocolDecl *> 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<QualType> 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<QualType> 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 /// <stddef.h>. /// /// 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 /// <stdint.h>. 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 /// <stdint.h>. 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 <stddef.h> 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 <stddef.h> 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 /// <stddef.h>. 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 /// <sys/types.h>. 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<CharUnits, CharUnits> getTypeInfoInChars(const Type *T) const; std::pair<CharUnits, CharUnits> 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<ObjCProtocolDecl*, 8> &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<DependentSizedArrayType>(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<MangleNumberingContext> 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<SectionInfo> 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 Owner, typename T, void (clang::ExternalASTSource::*Update)(Owner)> typename clang::LazyGenerationalUpdatePtr<Owner, T, Update>::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<const CXXBaseSpecifier *, CXXBaseSpecifier *>; 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<const Type *, const Type *> 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<Decl *, Decl *> 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<Stmt *, Stmt *> 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<FileID, FileID> 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<Decl *>(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<T>() 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 <class T> static ASTNodeKind getFromNodeKind() { return ASTNodeKind(KindToKindId<T>::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<T>() to construct the kind. + /// Use getFromNodeKind<T>() 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 <class T> struct KindToKindId { @@ -158,11 +158,11 @@ template <class T> struct KindToKindId<const T> : KindToKindId<T> {}; - /// \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 <typename T> static DynTypedNode create(const T &Node) { return BaseConverter<T>::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<T>::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 <typename T> @@ -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 <typename T, typename EnablerT = void> struct BaseConverter; - /// \brief Converter that uses dyn_cast<T> from a stored BaseT*. + /// Converter that uses dyn_cast<T> from a stored BaseT*. template <typename T, typename BaseT> struct DynCastPtrConverter { static const T *get(ASTNodeKind NodeKind, const char Storage[]) { if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind)) @@ -391,7 +391,7 @@ } }; - /// \brief Converter that stores T* (by pointer). + /// Converter that stores T* (by pointer). template <typename T> struct PtrConverter { static const T *get(ASTNodeKind NodeKind, const char Storage[]) { if (ASTNodeKind::getFromNodeKind<T>().isSame(NodeKind)) @@ -411,7 +411,7 @@ } }; - /// \brief Converter that stores T (by value). + /// Converter that stores T (by value). template <typename T> struct ValueConverter { static const T *get(ASTNodeKind NodeKind, const char Storage[]) { if (ASTNodeKind::getFromNodeKind<T>().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<CXXBasePathElement, 4> { 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<NamedDecl *[]> 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<const CXXMethodDecl *, OverridingMethods> {}; -/// \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<const CXXRecordDecl*, 32> {}; 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<typename T = Type> 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 <typename U> CanQual(const CanQual<U> &Other, typename std::enable_if<std::is_base_of<T, U>::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<T>(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<T>(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<typename U> CanProxy<U> castAs() const; - /// \brief Overloaded arrow operator that produces a canonical type + /// Overloaded arrow operator that produces a canonical type /// proxy. CanProxy<T> 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<T> 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<T> 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<T> 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<Type> 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<T> 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<Type>; 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<typename T> class CanProxyBase { @@ -242,10 +242,10 @@ CanQual<T> 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<typename U> CanProxy<U> getAs() const { return this->Stored.template getAs<U>(); @@ -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<typename T> struct CanProxyAdaptor : CanProxyBase<T> {}; -/// \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<T>::getAs member /// function. /// @@ -347,13 +347,13 @@ template<typename T> class CanProxy : public CanProxyAdaptor<T> { 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<T> Stored) { this->Stored = Stored; } - /// \brief Implicit conversion to the stored canonical type. + /// Implicit conversion to the stored canonical type. operator CanQual<T>() 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 <typename InputIterator> 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<TParamCommandComment *> 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<PartialDiagnosticAt> &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<InitializationStyle>(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<ParmVarDecl>(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<ParmVarDecl>(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<ParmVarDecl>(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<FunctionDecl> { 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<FunctionType>()->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<FunctionType>() && "Expected a FunctionType!"); return getType()->getAs<FunctionType>()->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<const VariableArrayType *>( 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<TypeSourceInfo*>()->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<TypeSourceInfo*>(); } - /// \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<Stmt *, 1, bool> 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<param_iterator>; - /// \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<Module *, 1, bool> 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<SourceLocation> 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<const Decl*>(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<Decl*>(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<redecl_iterator>; - /// \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<Decl *>(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<Decl *>(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<Decl *>(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<Decl *, Decl *> @@ -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<DeclContext *>(this)->getRedeclContext(); } - /// \brief Retrieve the nearest enclosing namespace context. + /// Retrieve the nearest enclosing namespace context. DeclContext *getEnclosingNamespaceContext(); const DeclContext *getEnclosingNamespaceContext() const { return const_cast<DeclContext *>(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<DeclContext *>(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<NamedDecl *> &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<LambdaDefinitionData&>(*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<ClassTemplateDecl *, MemberSpecializationInfo *> 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<base_class_iterator>; @@ -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<LambdaCaptureDefault>(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<conversion_iterator> 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<CXXRecordDecl>(getDeclContext())) @@ -1631,11 +1631,11 @@ const_cast<const CXXRecordDecl*>(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<bool(const CXXRecordDecl *BaseDefinition)>; - /// \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<bool(const CXXBaseSpecifier *Specifier, CXXBasePath &Path)>; - /// \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<typename T> 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<CXXRecordDecl>(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<FunctionProtoType>()->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<TypeSourceInfo *, FieldDecl *, IndirectFieldDecl *> 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<TypeSourceInfo*>() && !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<FieldDecl*>(); } @@ -2302,7 +2302,7 @@ return Initializee.is<IndirectFieldDecl*>(); } - /// \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<TypeSourceInfo*>() && 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<TypeSourceInfo *>(); } - /// \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<int>(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<Expr *>(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<CXXConstructorDecl, InheritedConstructor> { /// \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<init_iterator>; @@ -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<init_iterator>(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>() : 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<FunctionType>()->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<UsingDirectiveDecl*>(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<NamespaceAliasDecl> { 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<NamespaceAliasDecl>(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<UsingShadowDecl>(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<CXXRecordDecl>((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<UsingDecl> { - /// \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<UnresolvedUsingValueDecl> { - /// \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<UnresolvedUsingTypenameDecl> { 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<Expr *, 1, bool> 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<NamedDecl *, 4>; - /// \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<DeclsTy *, 1, bool>; - /// \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<NamedDecl *, DeclsAndHasExternalTy> 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<ObjCProtocolDecl> { 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<SourceLocation*>(getParams() + NumParams); @@ -250,7 +250,7 @@ return reinterpret_cast<const SourceLocation*>(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<ParmVarDecl **>(ParamsAndSelLocs); @@ -259,7 +259,7 @@ return reinterpret_cast<const ParmVarDecl *const *>(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<ParmVarDecl*> Params, ArrayRef<SourceLocation> 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<const ObjCMethodDecl *> &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<ObjCProtocolDecl> 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<ObjCInterfaceDecl>; @@ -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<isVisibleCategory>; @@ -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<isKnownCategory>; 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<isVisibleExtension>; @@ -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<isKnownExtension>; 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<ObjCProtocolDecl> { 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<init_expr> 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<TemplateTypeParmDecl *, NonTypeTemplateParmDecl *, TemplateTemplateParmDecl *>; 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<TemplateParameterList, NamedDecl *, @@ -110,10 +110,10 @@ SourceLocation RAngleLoc, Expr *RequiresClause); - /// \brief Iterates through the template parameters in this list. + /// Iterates through the template parameters in this list. using iterator = NamedDecl **; - /// \brief Iterates through the template parameters in this list. + /// Iterates through the template parameters in this list. using const_iterator = NamedDecl * const *; iterator begin() { return getTrailingObjects<NamedDecl *>(); } @@ -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<Expr *>() : 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<Expr *>() : 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 <size_t N, bool HasRequiresClause> @@ -206,13 +206,13 @@ TemplateLoc, LAngleLoc, Params, RAngleLoc, RequiresClause))) {} }; -/// \brief A template argument list. +/// A template argument list. class TemplateArgumentList final : private llvm::TrailingObjects<TemplateArgumentList, TemplateArgument> { - /// \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<TemplateArgument> 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<TemplateArgument> 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<TemplateArgument> 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<FunctionTemplateDecl *, 2> 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<FunctionTemplateDecl *>()[I]; } - /// \brief Returns the explicit template arguments that were given. + /// Returns the explicit template arguments that were given. const TemplateArgumentLoc *getTemplateArgs() const { return getTrailingObjects<TemplateArgumentLoc>(); } - /// \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<RedeclarableTemplateDecl*, 1, bool> 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 <class decl_type> 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<int>::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<FunctionTemplateSpecializationInfo> 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<Common *>(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<FunctionTemplateSpecializationInfo> & 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<TemplateArgument> 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<FunctionTemplateDecl>( @@ -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<TemplateArgument> 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<TemplateTypeParmDecl, TypeSourceInfo *>; 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<NonTypeTemplateParmDecl, Expr *>; 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<PackExpansionType>(); } - /// \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<TemplateTemplateParmDecl, TemplateParameterList *> { - /// \brief The default template argument, if any. + /// The default template argument, if any. using DefArgStorage = DefaultArgStorage<TemplateTemplateParmDecl, TemplateArgumentLoc *>; 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<ClassTemplateDecl *, SpecializedPartialSpecialization *> 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<ClassTemplateSpecializationDecl>(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<TemplateSpecializationKind>(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<ClassTemplateDecl *, ClassTemplatePartialSpecializationDecl *> @@ -1797,7 +1797,7 @@ return SpecializedTemplate.get<ClassTemplateDecl*>(); } - /// \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<SpecializedPartialSpecialization*>() && @@ -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<ClassTemplatePartialSpecializationDecl>(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<ClassTemplateSpecializationDecl> Specializations; - /// \brief The class template partial specializations for this class + /// The class template partial specializations for this class /// template. llvm::FoldingSetVector<ClassTemplatePartialSpecializationDecl> 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<ClassTemplateSpecializationDecl> & getSpecializations() const; - /// \brief Retrieve the set of partial specializations of this class + /// Retrieve the set of partial specializations of this class /// template. llvm::FoldingSetVector<ClassTemplatePartialSpecializationDecl> & 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<CXXRecordDecl *>(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<TemplateArgument> 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<ClassTemplateDecl>( @@ -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<TemplateArgument> 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<ClassTemplatePartialSpecializationDecl *> &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<NamedDecl*>(); } - /// \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<TypeAliasTemplateDecl>( @@ -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<VarTemplateDecl *, SpecializedPartialSpecialization *> 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<VarTemplateSpecializationDecl>(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<TemplateSpecializationKind>(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<VarTemplateDecl *, VarTemplatePartialSpecializationDecl *> getSpecializedTemplateOrPartial() const { @@ -2632,7 +2632,7 @@ return SpecializedTemplate.get<VarTemplateDecl *>(); } - /// \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<SpecializedPartialSpecialization *>() && @@ -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<VarTemplatePartialSpecializationDecl>(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<VarTemplateSpecializationDecl> Specializations; - /// \brief The variable template partial specializations for this variable + /// The variable template partial specializations for this variable /// template. llvm::FoldingSetVector<VarTemplatePartialSpecializationDecl> 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<VarTemplateSpecializationDecl> & getSpecializations() const; - /// \brief Retrieve the set of partial specializations of this class + /// Retrieve the set of partial specializations of this class /// template. llvm::FoldingSetVector<VarTemplatePartialSpecializationDecl> & 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<VarDecl *>(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<TemplateArgument> 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<VarTemplateDecl>(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<VarTemplateDecl>( @@ -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<TemplateArgument> 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<VarTemplatePartialSpecializationDecl *> &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 <typename T> struct make_ptr { using type = T *; }; template <typename T> 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<template <typename> class Ptr, typename ImplClass, typename RetTy=void> class Base { public: @@ -62,7 +62,7 @@ } // namespace declvisitor -/// \brief A simple visitor class that helps create declaration visitors. +/// A simple visitor class that helps create declaration visitors. /// /// This class does not preserve constness of Decl pointers (see also /// ConstDeclVisitor). @@ -70,7 +70,7 @@ class DeclVisitor : public declvisitor::Base<declvisitor::make_ptr, ImplClass, RetTy> {}; -/// \brief A simple visitor class that helps create declaration visitors. +/// A simple visitor class that helps create declaration visitors. /// /// This class preserves constness of Decl pointers (see also DeclVisitor). template<typename ImplClass, typename RetTy = void> Index: cfe/trunk/include/clang/AST/DeclarationName.h =================================================================== --- cfe/trunk/include/clang/AST/DeclarationName.h +++ cfe/trunk/include/clang/AST/DeclarationName.h @@ -194,7 +194,7 @@ (reinterpret_cast<IdentifierInfo *>(Ptr & ~PtrMask)); } - /// \brief Evaluates true when this declaration name is empty. + /// Evaluates true when this declaration name is empty. bool isEmpty() const { return !*this; } @@ -211,7 +211,7 @@ /// getNameKind - Determine what kind of name this is. NameKind getNameKind() const; - /// \brief Determines whether the name itself is dependent, e.g., because it + /// Determines whether the name itself is dependent, e.g., because it /// involves a C++ type that is itself dependent. /// /// Note that this does not capture all of the notions of "dependent name", @@ -541,10 +541,10 @@ LocInfo.CXXLiteralOperatorName.OpNameLoc = Loc.getRawEncoding(); } - /// \brief Determine whether this name involves a template parameter. + /// Determine whether this name involves a template parameter. bool isInstantiationDependent() const; - /// \brief Determine whether this name contains an unexpanded + /// Determine whether this name contains an unexpanded /// parameter pack. bool containsUnexpandedParameterPack() const; Index: cfe/trunk/include/clang/AST/EvaluatedExprVisitor.h =================================================================== --- cfe/trunk/include/clang/AST/EvaluatedExprVisitor.h +++ cfe/trunk/include/clang/AST/EvaluatedExprVisitor.h @@ -24,7 +24,7 @@ class ASTContext; -/// \brief Given a potentially-evaluated expression, this visitor visits all +/// Given a potentially-evaluated expression, this visitor visits all /// of its potentially-evaluated subexpressions, recursively. template<template <typename> class Ptr, typename ImplClass> class EvaluatedExprVisitorBase : public StmtVisitorBase<Ptr, ImplClass, void> { @@ -95,7 +95,7 @@ this->Visit(*I); } - /// \brief The basis case walks all of the children of the statement or + /// The basis case walks all of the children of the statement or /// expression, assuming they are all potentially evaluated. void VisitStmt(PTR(Stmt) S) { for (auto *SubStmt : S->children()) Index: cfe/trunk/include/clang/AST/Expr.h =================================================================== --- cfe/trunk/include/clang/AST/Expr.h +++ cfe/trunk/include/clang/AST/Expr.h @@ -52,10 +52,10 @@ class TargetInfo; class ValueDecl; -/// \brief A simple array of base specifiers. +/// A simple array of base specifiers. typedef SmallVector<CXXBaseSpecifier*, 4> CXXCastPath; -/// \brief An adjustment to be made to the temporary created when emitting a +/// An adjustment to be made to the temporary created when emitting a /// reference binding, which accesses a particular subobject of that temporary. struct SubobjectAdjustment { enum { @@ -121,7 +121,7 @@ setType(T); } - /// \brief Construct an empty expression. + /// Construct an empty expression. explicit Expr(StmtClass SC, EmptyShell) : Stmt(SC) { } public: @@ -148,7 +148,7 @@ /// @endcode bool isValueDependent() const { return ExprBits.ValueDependent; } - /// \brief Set whether this expression is value-dependent or not. + /// Set whether this expression is value-dependent or not. void setValueDependent(bool VD) { ExprBits.ValueDependent = VD; } @@ -166,12 +166,12 @@ /// @endcode bool isTypeDependent() const { return ExprBits.TypeDependent; } - /// \brief Set whether this expression is type-dependent or not. + /// Set whether this expression is type-dependent or not. void setTypeDependent(bool TD) { ExprBits.TypeDependent = TD; } - /// \brief Whether this expression is instantiation-dependent, meaning that + /// Whether this expression is instantiation-dependent, meaning that /// it depends in some way on a template parameter, even if neither its type /// nor (constant) value can change due to the template instantiation. /// @@ -192,12 +192,12 @@ return ExprBits.InstantiationDependent; } - /// \brief Set whether this expression is instantiation-dependent or not. + /// Set whether this expression is instantiation-dependent or not. void setInstantiationDependent(bool ID) { ExprBits.InstantiationDependent = ID; } - /// \brief Whether this expression contains an unexpanded parameter + /// Whether this expression contains an unexpanded parameter /// pack (for C++11 variadic templates). /// /// Given the following function template: @@ -215,7 +215,7 @@ return ExprBits.ContainsUnexpandedParameterPack; } - /// \brief Set the bit that describes whether this expression + /// Set the bit that describes whether this expression /// contains an unexpanded parameter pack. void setContainsUnexpandedParameterPack(bool PP = true) { ExprBits.ContainsUnexpandedParameterPack = PP; @@ -297,11 +297,11 @@ isModifiableLvalueResult isModifiableLvalue(ASTContext &Ctx, SourceLocation *Loc = nullptr) const; - /// \brief The return type of classify(). Represents the C++11 expression + /// The return type of classify(). Represents the C++11 expression /// taxonomy. class Classification { public: - /// \brief The various classification results. Most of these mean prvalue. + /// The various classification results. Most of these mean prvalue. enum Kinds { CL_LValue, CL_XValue, @@ -316,7 +316,7 @@ CL_ObjCMessageRValue, // ObjC message is an rvalue CL_PRValue // A prvalue for any other reason, of any other type }; - /// \brief The results of modification testing. + /// The results of modification testing. enum ModifiableType { CM_Untested, // testModifiable was false. CM_Modifiable, @@ -356,13 +356,13 @@ bool isRValue() const { return Kind >= CL_XValue; } bool isModifiable() const { return getModifiable() == CM_Modifiable; } - /// \brief Create a simple, modifiably lvalue + /// Create a simple, modifiably lvalue static Classification makeSimpleLValue() { return Classification(CL_LValue, CM_Modifiable); } }; - /// \brief Classify - Classify this expression according to the C++11 + /// Classify - Classify this expression according to the C++11 /// expression taxonomy. /// /// C++11 defines ([basic.lval]) a new taxonomy of expressions to replace the @@ -378,7 +378,7 @@ return ClassifyImpl(Ctx, nullptr); } - /// \brief ClassifyModifiable - Classify this expression according to the + /// ClassifyModifiable - Classify this expression according to the /// C++11 expression taxonomy, and see if it is valid on the left side /// of an assignment. /// @@ -429,14 +429,14 @@ public: - /// \brief Returns true if this expression is a gl-value that + /// Returns true if this expression is a gl-value that /// potentially refers to a bit-field. /// /// In C++, whether a gl-value refers to a bitfield is essentially /// an aspect of the value-kind type system. bool refersToBitField() const { return getObjectKind() == OK_BitField; } - /// \brief If this expression refers to a bit-field, retrieve the + /// If this expression refers to a bit-field, retrieve the /// declaration of that bit-field. /// /// Note that this returns a non-null pointer in subtly different @@ -454,26 +454,26 @@ return const_cast<Expr*>(this)->getReferencedDeclOfCallee(); } - /// \brief If this expression is an l-value for an Objective C + /// If this expression is an l-value for an Objective C /// property, find the underlying property reference expression. const ObjCPropertyRefExpr *getObjCProperty() const; - /// \brief Check if this expression is the ObjC 'self' implicit parameter. + /// Check if this expression is the ObjC 'self' implicit parameter. bool isObjCSelfExpr() const; - /// \brief Returns whether this expression refers to a vector element. + /// Returns whether this expression refers to a vector element. bool refersToVectorElement() const; - /// \brief Returns whether this expression refers to a global register + /// Returns whether this expression refers to a global register /// variable. bool refersToGlobalRegisterVar() const; - /// \brief Returns whether this expression has a placeholder type. + /// Returns whether this expression has a placeholder type. bool hasPlaceholderType() const { return getType()->isPlaceholderType(); } - /// \brief Returns whether this expression has a specific placeholder type. + /// Returns whether this expression has a specific placeholder type. bool hasPlaceholderType(BuiltinType::Kind K) const { assert(BuiltinType::isPlaceholderTypeKind(K)); if (const BuiltinType *BT = dyn_cast<BuiltinType>(getType())) @@ -539,11 +539,11 @@ /// EvalStatus is a struct with detailed info about an evaluation in progress. struct EvalStatus { - /// \brief Whether the evaluated expression has side effects. + /// Whether the evaluated expression has side effects. /// For example, (f() && 0) can be folded, but it still has side effects. bool HasSideEffects; - /// \brief Whether the evaluation hit undefined behavior. + /// Whether the evaluation hit undefined behavior. /// For example, 1.0 / 0.0 can be folded to Inf, but has undefined behavior. /// Likewise, INT_MAX + 1 can be folded to INT_MIN, but has UB. bool HasUndefinedBehavior; @@ -625,7 +625,7 @@ bool HasSideEffects(const ASTContext &Ctx, bool IncludePossibleEffects = true) const; - /// \brief Determine whether this expression involves a call to any function + /// Determine whether this expression involves a call to any function /// that is not trivial. bool hasNonTrivialCall(const ASTContext &Ctx) const; @@ -658,7 +658,7 @@ ArrayRef<const Expr*> Args, const Expr *This = nullptr) const; - /// \brief If the current Expr is a pointer, this will try to statically + /// If the current Expr is a pointer, this will try to statically /// determine the number of bytes available where the pointer is pointing. /// Returns true if all of the above holds and we were able to figure out the /// size, false otherwise. @@ -668,40 +668,40 @@ bool tryEvaluateObjectSize(uint64_t &Result, ASTContext &Ctx, unsigned Type) const; - /// \brief Enumeration used to describe the kind of Null pointer constant + /// Enumeration used to describe the kind of Null pointer constant /// returned from \c isNullPointerConstant(). enum NullPointerConstantKind { - /// \brief Expression is not a Null pointer constant. + /// Expression is not a Null pointer constant. NPCK_NotNull = 0, - /// \brief Expression is a Null pointer constant built from a zero integer + /// Expression is a Null pointer constant built from a zero integer /// expression that is not a simple, possibly parenthesized, zero literal. /// C++ Core Issue 903 will classify these expressions as "not pointers" /// once it is adopted. /// http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#903 NPCK_ZeroExpression, - /// \brief Expression is a Null pointer constant built from a literal zero. + /// Expression is a Null pointer constant built from a literal zero. NPCK_ZeroLiteral, - /// \brief Expression is a C++11 nullptr. + /// Expression is a C++11 nullptr. NPCK_CXX11_nullptr, - /// \brief Expression is a GNU-style __null constant. + /// Expression is a GNU-style __null constant. NPCK_GNUNull }; - /// \brief Enumeration used to describe how \c isNullPointerConstant() + /// Enumeration used to describe how \c isNullPointerConstant() /// should cope with value-dependent expressions. enum NullPointerConstantValueDependence { - /// \brief Specifies that the expression should never be value-dependent. + /// Specifies that the expression should never be value-dependent. NPC_NeverValueDependent = 0, - /// \brief Specifies that a value-dependent expression of integral or + /// Specifies that a value-dependent expression of integral or /// dependent type should be considered a null pointer constant. NPC_ValueDependentIsNull, - /// \brief Specifies that a value-dependent expression should be considered + /// Specifies that a value-dependent expression should be considered /// to never be a null pointer constant. NPC_ValueDependentIsNotNull }; @@ -717,10 +717,10 @@ /// write barrier. bool isOBJCGCCandidate(ASTContext &Ctx) const; - /// \brief Returns true if this expression is a bound member function. + /// Returns true if this expression is a bound member function. bool isBoundMemberFunction(ASTContext &Ctx) const; - /// \brief Given an expression of bound-member type, find the type + /// Given an expression of bound-member type, find the type /// of the member. Returns null if this is an *overloaded* bound /// member expression. static QualType findBoundMemberType(const Expr *expr); @@ -788,7 +788,7 @@ return const_cast<Expr*>(this)->ignoreParenBaseCasts(); } - /// \brief Determine whether this expression is a default function argument. + /// Determine whether this expression is a default function argument. /// /// Default arguments are implicitly generated in the abstract syntax tree /// by semantic analysis for function calls, object constructions, etc. in @@ -797,11 +797,11 @@ /// the expression is a default argument. bool isDefaultArgument() const; - /// \brief Determine whether the result of this expression is a + /// Determine whether the result of this expression is a /// temporary object of the given class type. bool isTemporaryObject(ASTContext &Ctx, const CXXRecordDecl *TempTy) const; - /// \brief Whether this expression is an implicit reference to 'this' in C++. + /// Whether this expression is an implicit reference to 'this' in C++. bool isImplicitCXXThis() const; const Expr *IgnoreImpCasts() const LLVM_READONLY { @@ -824,7 +824,7 @@ static bool hasAnyTypeDependentArguments(ArrayRef<Expr *> Exprs); - /// \brief For an expression of class type or pointer to class type, + /// For an expression of class type or pointer to class type, /// return the most derived class decl the expression is known to refer to. /// /// If this expression is a cast, this method looks through it to find the @@ -833,7 +833,7 @@ /// behavior if the object isn't dynamically of the derived type. const CXXRecordDecl *getBestDynamicClassType() const; - /// \brief Get the inner expression that determines the best dynamic class. + /// Get the inner expression that determines the best dynamic class. /// If this is a prvalue, we guarantee that it is of the most-derived type /// for the object itself. const Expr *getBestDynamicClassTypeExpr() const; @@ -894,7 +894,7 @@ explicit OpaqueValueExpr(EmptyShell Empty) : Expr(OpaqueValueExprClass, Empty) { } - /// \brief Retrieve the location of this expression. + /// Retrieve the location of this expression. SourceLocation getLocation() const { return Loc; } SourceLocation getLocStart() const LLVM_READONLY { @@ -939,7 +939,7 @@ } }; -/// \brief A reference to a declared variable, function, enum, etc. +/// A reference to a declared variable, function, enum, etc. /// [C99 6.5.1p2] /// /// This encodes all the information about how a declaration is referenced @@ -967,13 +967,13 @@ private llvm::TrailingObjects<DeclRefExpr, NestedNameSpecifierLoc, NamedDecl *, ASTTemplateKWAndArgsInfo, TemplateArgumentLoc> { - /// \brief The declaration that we are referencing. + /// The declaration that we are referencing. ValueDecl *D; - /// \brief The location of the declaration name itself. + /// The location of the declaration name itself. SourceLocation Loc; - /// \brief Provides source/type location info for the declaration name + /// Provides source/type location info for the declaration name /// embedded in D. DeclarationNameLoc DNLoc; @@ -989,7 +989,7 @@ return hasTemplateKWAndArgsInfo() ? 1 : 0; } - /// \brief Test whether there is a distinct FoundDecl attached to the end of + /// Test whether there is a distinct FoundDecl attached to the end of /// this DRE. bool hasFoundDecl() const { return DeclRefExprBits.HasFoundDecl; } @@ -1002,11 +1002,11 @@ const TemplateArgumentListInfo *TemplateArgs, QualType T, ExprValueKind VK); - /// \brief Construct an empty declaration reference expression. + /// Construct an empty declaration reference expression. explicit DeclRefExpr(EmptyShell Empty) : Expr(DeclRefExprClass, Empty) { } - /// \brief Computes the type- and value-dependence flags for this + /// Computes the type- and value-dependence flags for this /// declaration reference expression. void computeDependence(const ASTContext &C); @@ -1040,7 +1040,7 @@ NamedDecl *FoundD = nullptr, const TemplateArgumentListInfo *TemplateArgs = nullptr); - /// \brief Construct an empty declaration reference expression. + /// Construct an empty declaration reference expression. static DeclRefExpr *CreateEmpty(const ASTContext &Context, bool HasQualifier, bool HasFoundDecl, @@ -1060,11 +1060,11 @@ SourceLocation getLocStart() const LLVM_READONLY; SourceLocation getLocEnd() const LLVM_READONLY; - /// \brief Determine whether this declaration reference was preceded by a + /// Determine whether this declaration reference was preceded by a /// C++ nested-name-specifier, e.g., \c N::foo. bool hasQualifier() const { return DeclRefExprBits.HasQualifier; } - /// \brief If the name was qualified, retrieves the nested-name-specifier + /// If the name was qualified, retrieves the nested-name-specifier /// that precedes the name, with source-location information. NestedNameSpecifierLoc getQualifierLoc() const { if (!hasQualifier()) @@ -1072,13 +1072,13 @@ return *getTrailingObjects<NestedNameSpecifierLoc>(); } - /// \brief If the name was qualified, retrieves the nested-name-specifier + /// If the name was qualified, retrieves the nested-name-specifier /// that precedes the name. Otherwise, returns NULL. NestedNameSpecifier *getQualifier() const { return getQualifierLoc().getNestedNameSpecifier(); } - /// \brief Get the NamedDecl through which this reference occurred. + /// Get the NamedDecl through which this reference occurred. /// /// This Decl may be different from the ValueDecl actually referred to in the /// presence of using declarations, etc. It always returns non-NULL, and may @@ -1088,7 +1088,7 @@ return hasFoundDecl() ? *getTrailingObjects<NamedDecl *>() : D; } - /// \brief Get the NamedDecl through which this reference occurred. + /// Get the NamedDecl through which this reference occurred. /// See non-const variant. const NamedDecl *getFoundDecl() const { return hasFoundDecl() ? *getTrailingObjects<NamedDecl *>() : D; @@ -1098,36 +1098,36 @@ return DeclRefExprBits.HasTemplateKWAndArgsInfo; } - /// \brief Retrieve the location of the template keyword preceding + /// Retrieve the location of the template keyword preceding /// this name, if any. SourceLocation getTemplateKeywordLoc() const { if (!hasTemplateKWAndArgsInfo()) return SourceLocation(); return getTrailingObjects<ASTTemplateKWAndArgsInfo>()->TemplateKWLoc; } - /// \brief Retrieve the location of the left angle bracket starting the + /// Retrieve the location of the left angle bracket starting the /// explicit template argument list following the name, if any. SourceLocation getLAngleLoc() const { if (!hasTemplateKWAndArgsInfo()) return SourceLocation(); return getTrailingObjects<ASTTemplateKWAndArgsInfo>()->LAngleLoc; } - /// \brief Retrieve the location of the right angle bracket ending the + /// Retrieve the location of the right angle bracket ending the /// explicit template argument list following the name, if any. SourceLocation getRAngleLoc() const { if (!hasTemplateKWAndArgsInfo()) return SourceLocation(); return getTrailingObjects<ASTTemplateKWAndArgsInfo>()->RAngleLoc; } - /// \brief Determines whether the name in this declaration reference + /// Determines whether the name in this declaration reference /// was preceded by the template keyword. bool hasTemplateKeyword() const { return getTemplateKeywordLoc().isValid(); } - /// \brief Determines whether this declaration reference was followed by an + /// Determines whether this declaration reference was followed by an /// explicit template argument list. bool hasExplicitTemplateArgs() const { return getLAngleLoc().isValid(); } - /// \brief Copies the template arguments (if present) into the given + /// Copies the template arguments (if present) into the given /// structure. void copyTemplateArgumentsInto(TemplateArgumentListInfo &List) const { if (hasExplicitTemplateArgs()) @@ -1135,7 +1135,7 @@ getTrailingObjects<TemplateArgumentLoc>(), List); } - /// \brief Retrieve the template arguments provided as part of this + /// Retrieve the template arguments provided as part of this /// template-id. const TemplateArgumentLoc *getTemplateArgs() const { if (!hasExplicitTemplateArgs()) @@ -1144,7 +1144,7 @@ return getTrailingObjects<TemplateArgumentLoc>(); } - /// \brief Retrieve the number of template arguments provided as part of this + /// Retrieve the number of template arguments provided as part of this /// template-id. unsigned getNumTemplateArgs() const { if (!hasExplicitTemplateArgs()) @@ -1157,19 +1157,19 @@ return {getTemplateArgs(), getNumTemplateArgs()}; } - /// \brief Returns true if this expression refers to a function that + /// Returns true if this expression refers to a function that /// was resolved from an overloaded set having size greater than 1. bool hadMultipleCandidates() const { return DeclRefExprBits.HadMultipleCandidates; } - /// \brief Sets the flag telling whether this expression refers to + /// Sets the flag telling whether this expression refers to /// a function that was resolved from an overloaded set having size /// greater than 1. void setHadMultipleCandidates(bool V = true) { DeclRefExprBits.HadMultipleCandidates = V; } - /// \brief Does this DeclRefExpr refer to an enclosing local or a captured + /// Does this DeclRefExpr refer to an enclosing local or a captured /// variable? bool refersToEnclosingVariableOrCapture() const { return DeclRefExprBits.RefersToEnclosingVariableOrCapture; @@ -1193,7 +1193,7 @@ friend class ASTStmtWriter; }; -/// \brief [C99 6.4.2.2] - A predefined identifier such as __func__. +/// [C99 6.4.2.2] - A predefined identifier such as __func__. class PredefinedExpr : public Expr { public: enum IdentType { @@ -1203,7 +1203,7 @@ FuncDName, FuncSig, PrettyFunction, - /// \brief The same as PrettyFunction, except that the + /// The same as PrettyFunction, except that the /// 'virtual' keyword is omitted for virtual member functions. PrettyFunctionNoVirtual }; @@ -1217,7 +1217,7 @@ PredefinedExpr(SourceLocation L, QualType FNTy, IdentType IT, StringLiteral *SL); - /// \brief Construct an empty predefined expression. + /// Construct an empty predefined expression. explicit PredefinedExpr(EmptyShell Empty) : Expr(PredefinedExprClass, Empty), Loc(), Type(Func), FnName(nullptr) {} @@ -1250,7 +1250,7 @@ friend class ASTStmtReader; }; -/// \brief Used by IntegerLiteral/FloatingLiteral to store the numeric without +/// Used by IntegerLiteral/FloatingLiteral to store the numeric without /// leaking memory. /// /// For large floats/integers, APFloat/APInt will allocate memory from the heap @@ -1304,7 +1304,7 @@ class IntegerLiteral : public Expr, public APIntStorage { SourceLocation Loc; - /// \brief Construct an empty integer literal. + /// Construct an empty integer literal. explicit IntegerLiteral(EmptyShell Empty) : Expr(IntegerLiteralClass, Empty) { } @@ -1314,19 +1314,19 @@ IntegerLiteral(const ASTContext &C, const llvm::APInt &V, QualType type, SourceLocation l); - /// \brief Returns a new integer literal with value 'V' and type 'type'. + /// Returns a new integer literal with value 'V' and type 'type'. /// \param type - either IntTy, LongTy, LongLongTy, UnsignedIntTy, /// UnsignedLongTy, or UnsignedLongLongTy which should match the size of V /// \param V - the value that the returned integer literal contains. static IntegerLiteral *Create(const ASTContext &C, const llvm::APInt &V, QualType type, SourceLocation l); - /// \brief Returns a new empty integer literal. + /// Returns a new empty integer literal. static IntegerLiteral *Create(const ASTContext &C, EmptyShell Empty); SourceLocation getLocStart() const LLVM_READONLY { return Loc; } SourceLocation getLocEnd() const LLVM_READONLY { return Loc; } - /// \brief Retrieve the location of the literal. + /// Retrieve the location of the literal. SourceLocation getLocation() const { return Loc; } void setLocation(SourceLocation Location) { Loc = Location; } @@ -1367,7 +1367,7 @@ CharacterLiteralBits.Kind = kind; } - /// \brief Construct an empty character literal. + /// Construct an empty character literal. CharacterLiteral(EmptyShell Empty) : Expr(CharacterLiteralClass, Empty) { } SourceLocation getLocation() const { return Loc; } @@ -1403,7 +1403,7 @@ FloatingLiteral(const ASTContext &C, const llvm::APFloat &V, bool isexact, QualType Type, SourceLocation L); - /// \brief Construct an empty floating-point literal. + /// Construct an empty floating-point literal. explicit FloatingLiteral(const ASTContext &C, EmptyShell Empty); public: @@ -1477,7 +1477,7 @@ false, false), Val(val) {} - /// \brief Build an empty imaginary literal. + /// Build an empty imaginary literal. explicit ImaginaryLiteral(EmptyShell Empty) : Expr(ImaginaryLiteralClass, Empty) { } @@ -1560,7 +1560,7 @@ return Create(C, Str, Kind, Pascal, Ty, &Loc, 1); } - /// \brief Construct an empty string literal. + /// Construct an empty string literal. static StringLiteral *CreateEmpty(const ASTContext &C, unsigned NumStrs); StringRef getString() const { @@ -1599,7 +1599,7 @@ unsigned getLength() const { return Length; } unsigned getCharByteWidth() const { return CharByteWidth; } - /// \brief Sets the string data to the given string data. + /// Sets the string data to the given string data. void setString(const ASTContext &C, StringRef Str, StringKind Kind, bool IsPascal); @@ -1683,7 +1683,7 @@ val->containsUnexpandedParameterPack()), L(l), R(r), Val(val) {} - /// \brief Construct an empty parenthesized expression. + /// Construct an empty parenthesized expression. explicit ParenExpr(EmptyShell Empty) : Expr(ParenExprClass, Empty) { } @@ -1694,11 +1694,11 @@ SourceLocation getLocStart() const LLVM_READONLY { return L; } SourceLocation getLocEnd() const LLVM_READONLY { return R; } - /// \brief Get the location of the left parentheses '('. + /// Get the location of the left parentheses '('. SourceLocation getLParen() const { return L; } void setLParen(SourceLocation Loc) { L = Loc; } - /// \brief Get the location of the right parentheses ')'. + /// Get the location of the right parentheses ')'. SourceLocation getRParen() const { return R; } void setRParen(SourceLocation Loc) { R = Loc; } @@ -1743,7 +1743,7 @@ input->containsUnexpandedParameterPack()), Opc(opc), CanOverflow(CanOverflow), Loc(l), Val(input) {} - /// \brief Build an empty unary operator. + /// Build an empty unary operator. explicit UnaryOperator(EmptyShell Empty) : Expr(UnaryOperatorClass, Empty), Opc(UO_AddrOf) { } @@ -1807,11 +1807,11 @@ /// corresponds to, e.g. "sizeof" or "[pre]++" static StringRef getOpcodeStr(Opcode Op); - /// \brief Retrieve the unary opcode that corresponds to the given + /// Retrieve the unary opcode that corresponds to the given /// overloaded operator. static Opcode getOverloadedOpcode(OverloadedOperatorKind OO, bool Postfix); - /// \brief Retrieve the overloaded operator kind that corresponds to + /// Retrieve the overloaded operator kind that corresponds to /// the given unary opcode. static OverloadedOperatorKind getOverloadedOperator(Opcode Opc); @@ -1839,15 +1839,15 @@ // __builtin_offsetof(type, identifier(.identifier|[expr])*) class OffsetOfNode { public: - /// \brief The kind of offsetof node we have. + /// The kind of offsetof node we have. enum Kind { - /// \brief An index into an array. + /// An index into an array. Array = 0x00, - /// \brief A field. + /// A field. Field = 0x01, - /// \brief A field in a dependent type, known only by its name. + /// A field in a dependent type, known only by its name. Identifier = 0x02, - /// \brief An implicit indirection through a C++ base class, when the + /// An implicit indirection through a C++ base class, when the /// field found is in a base class. Base = 0x03 }; @@ -1855,10 +1855,10 @@ private: enum { MaskBits = 2, Mask = 0x03 }; - /// \brief The source range that covers this part of the designator. + /// The source range that covers this part of the designator. SourceRange Range; - /// \brief The data describing the designator, which comes in three + /// The data describing the designator, which comes in three /// different forms, depending on the lower two bits. /// - An unsigned index into the array of Expr*'s stored after this node /// in memory, for [constant-expression] designators. @@ -1870,53 +1870,53 @@ uintptr_t Data; public: - /// \brief Create an offsetof node that refers to an array element. + /// Create an offsetof node that refers to an array element. OffsetOfNode(SourceLocation LBracketLoc, unsigned Index, SourceLocation RBracketLoc) : Range(LBracketLoc, RBracketLoc), Data((Index << 2) | Array) {} - /// \brief Create an offsetof node that refers to a field. + /// Create an offsetof node that refers to a field. OffsetOfNode(SourceLocation DotLoc, FieldDecl *Field, SourceLocation NameLoc) : Range(DotLoc.isValid() ? DotLoc : NameLoc, NameLoc), Data(reinterpret_cast<uintptr_t>(Field) | OffsetOfNode::Field) {} - /// \brief Create an offsetof node that refers to an identifier. + /// Create an offsetof node that refers to an identifier. OffsetOfNode(SourceLocation DotLoc, IdentifierInfo *Name, SourceLocation NameLoc) : Range(DotLoc.isValid() ? DotLoc : NameLoc, NameLoc), Data(reinterpret_cast<uintptr_t>(Name) | Identifier) {} - /// \brief Create an offsetof node that refers into a C++ base class. + /// Create an offsetof node that refers into a C++ base class. explicit OffsetOfNode(const CXXBaseSpecifier *Base) : Range(), Data(reinterpret_cast<uintptr_t>(Base) | OffsetOfNode::Base) {} - /// \brief Determine what kind of offsetof node this is. + /// Determine what kind of offsetof node this is. Kind getKind() const { return static_cast<Kind>(Data & Mask); } - /// \brief For an array element node, returns the index into the array + /// For an array element node, returns the index into the array /// of expressions. unsigned getArrayExprIndex() const { assert(getKind() == Array); return Data >> 2; } - /// \brief For a field offsetof node, returns the field. + /// For a field offsetof node, returns the field. FieldDecl *getField() const { assert(getKind() == Field); return reinterpret_cast<FieldDecl *>(Data & ~(uintptr_t)Mask); } - /// \brief For a field or identifier offsetof node, returns the name of + /// For a field or identifier offsetof node, returns the name of /// the field. IdentifierInfo *getFieldName() const; - /// \brief For a base class node, returns the base specifier. + /// For a base class node, returns the base specifier. CXXBaseSpecifier *getBase() const { assert(getKind() == Base); return reinterpret_cast<CXXBaseSpecifier *>(Data & ~(uintptr_t)Mask); } - /// \brief Retrieve the source range that covers this offsetof node. + /// Retrieve the source range that covers this offsetof node. /// /// For an array element node, the source range contains the locations of /// the square brackets. For a field or identifier node, the source range @@ -1979,7 +1979,7 @@ SourceLocation getOperatorLoc() const { return OperatorLoc; } void setOperatorLoc(SourceLocation L) { OperatorLoc = L; } - /// \brief Return the location of the right parentheses. + /// Return the location of the right parentheses. SourceLocation getRParenLoc() const { return RParenLoc; } void setRParenLoc(SourceLocation R) { RParenLoc = R; } @@ -2073,7 +2073,7 @@ QualType resultType, SourceLocation op, SourceLocation rp); - /// \brief Construct an empty sizeof/alignof expression. + /// Construct an empty sizeof/alignof expression. explicit UnaryExprOrTypeTraitExpr(EmptyShell Empty) : Expr(UnaryExprOrTypeTraitExprClass, Empty) { } @@ -2156,7 +2156,7 @@ SubExprs[RHS] = rhs; } - /// \brief Create an empty array subscript expression. + /// Create an empty array subscript expression. explicit ArraySubscriptExpr(EmptyShell Shell) : Expr(ArraySubscriptExprClass, Shell) { } @@ -2261,7 +2261,7 @@ CallExpr(const ASTContext& C, Expr *fn, ArrayRef<Expr*> args, QualType t, ExprValueKind VK, SourceLocation rparenloc); - /// \brief Build an empty call expression. + /// Build an empty call expression. CallExpr(const ASTContext &C, StmtClass SC, EmptyShell Empty); const Expr *getCallee() const { return cast<Expr>(SubExprs[FN]); } @@ -2273,7 +2273,7 @@ return const_cast<CallExpr*>(this)->getCalleeDecl(); } - /// \brief If the callee is a FunctionDecl, return it. Otherwise return 0. + /// If the callee is a FunctionDecl, return it. Otherwise return 0. FunctionDecl *getDirectCallee(); const FunctionDecl *getDirectCallee() const { return const_cast<CallExpr*>(this)->getDirectCallee(); @@ -2283,7 +2283,7 @@ /// unsigned getNumArgs() const { return NumArgs; } - /// \brief Retrieve the call arguments. + /// Retrieve the call arguments. Expr **getArgs() { return reinterpret_cast<Expr **>(SubExprs+getNumPreArgs()+PREARGS_START); } @@ -2351,7 +2351,7 @@ /// of the callee. If not, return 0. unsigned getBuiltinCallee() const; - /// \brief Returns \c true if this is a call to a builtin which does not + /// Returns \c true if this is a call to a builtin which does not /// evaluate side-effects within its arguments. bool isUnevaluatedBuiltinCall(const ASTContext &Ctx) const; @@ -2395,11 +2395,11 @@ /// Extra data stored in some MemberExpr objects. struct MemberExprNameQualifier { - /// \brief The nested-name-specifier that qualifies the name, including + /// The nested-name-specifier that qualifies the name, including /// source-location information. NestedNameSpecifierLoc QualifierLoc; - /// \brief The DeclAccessPair through which the MemberDecl was found due to + /// The DeclAccessPair through which the MemberDecl was found due to /// name qualifiers. DeclAccessPair FoundDecl; }; @@ -2432,20 +2432,20 @@ /// IsArrow - True if this is "X->F", false if this is "X.F". bool IsArrow : 1; - /// \brief True if this member expression used a nested-name-specifier to + /// True if this member expression used a nested-name-specifier to /// refer to the member, e.g., "x->Base::f", or found its member via a using /// declaration. When true, a MemberExprNameQualifier /// structure is allocated immediately after the MemberExpr. bool HasQualifierOrFoundDecl : 1; - /// \brief True if this member expression specified a template keyword + /// True if this member expression specified a template keyword /// and/or a template argument list explicitly, e.g., x->f<int>, /// x->template f, x->template f<int>. /// When true, an ASTTemplateKWAndArgsInfo structure and its /// TemplateArguments (if any) are present. bool HasTemplateKWAndArgsInfo : 1; - /// \brief True if this member expression refers to a method that + /// True if this member expression refers to a method that /// was resolved from an overloaded set having size greater than 1. bool HadMultipleCandidates : 1; @@ -2498,14 +2498,14 @@ void setBase(Expr *E) { Base = E; } Expr *getBase() const { return cast<Expr>(Base); } - /// \brief Retrieve the member declaration to which this expression refers. + /// Retrieve the member declaration to which this expression refers. /// /// The returned declaration will be a FieldDecl or (in C++) a VarDecl (for /// static data members), a CXXMethodDecl, or an EnumConstantDecl. ValueDecl *getMemberDecl() const { return MemberDecl; } void setMemberDecl(ValueDecl *D) { MemberDecl = D; } - /// \brief Retrieves the declaration found by lookup. + /// Retrieves the declaration found by lookup. DeclAccessPair getFoundDecl() const { if (!HasQualifierOrFoundDecl) return DeclAccessPair::make(getMemberDecl(), @@ -2513,12 +2513,12 @@ return getTrailingObjects<MemberExprNameQualifier>()->FoundDecl; } - /// \brief Determines whether this member expression actually had + /// Determines whether this member expression actually had /// a C++ nested-name-specifier prior to the name of the member, e.g., /// x->Base::foo. bool hasQualifier() const { return getQualifier() != nullptr; } - /// \brief If the member name was qualified, retrieves the + /// If the member name was qualified, retrieves the /// nested-name-specifier that precedes the member name, with source-location /// information. NestedNameSpecifierLoc getQualifierLoc() const { @@ -2528,28 +2528,28 @@ return getTrailingObjects<MemberExprNameQualifier>()->QualifierLoc; } - /// \brief If the member name was qualified, retrieves the + /// If the member name was qualified, retrieves the /// nested-name-specifier that precedes the member name. Otherwise, returns /// NULL. NestedNameSpecifier *getQualifier() const { return getQualifierLoc().getNestedNameSpecifier(); } - /// \brief Retrieve the location of the template keyword preceding + /// Retrieve the location of the template keyword preceding /// the member name, if any. SourceLocation getTemplateKeywordLoc() const { if (!HasTemplateKWAndArgsInfo) return SourceLocation(); return getTrailingObjects<ASTTemplateKWAndArgsInfo>()->TemplateKWLoc; } - /// \brief Retrieve the location of the left angle bracket starting the + /// Retrieve the location of the left angle bracket starting the /// explicit template argument list following the member name, if any. SourceLocation getLAngleLoc() const { if (!HasTemplateKWAndArgsInfo) return SourceLocation(); return getTrailingObjects<ASTTemplateKWAndArgsInfo>()->LAngleLoc; } - /// \brief Retrieve the location of the right angle bracket ending the + /// Retrieve the location of the right angle bracket ending the /// explicit template argument list following the member name, if any. SourceLocation getRAngleLoc() const { if (!HasTemplateKWAndArgsInfo) return SourceLocation(); @@ -2559,11 +2559,11 @@ /// Determines whether the member name was preceded by the template keyword. bool hasTemplateKeyword() const { return getTemplateKeywordLoc().isValid(); } - /// \brief Determines whether the member name was followed by an + /// Determines whether the member name was followed by an /// explicit template argument list. bool hasExplicitTemplateArgs() const { return getLAngleLoc().isValid(); } - /// \brief Copies the template arguments (if present) into the given + /// Copies the template arguments (if present) into the given /// structure. void copyTemplateArgumentsInto(TemplateArgumentListInfo &List) const { if (hasExplicitTemplateArgs()) @@ -2571,7 +2571,7 @@ getTrailingObjects<TemplateArgumentLoc>(), List); } - /// \brief Retrieve the template arguments provided as part of this + /// Retrieve the template arguments provided as part of this /// template-id. const TemplateArgumentLoc *getTemplateArgs() const { if (!hasExplicitTemplateArgs()) @@ -2580,7 +2580,7 @@ return getTrailingObjects<TemplateArgumentLoc>(); } - /// \brief Retrieve the number of template arguments provided as part of this + /// Retrieve the number of template arguments provided as part of this /// template-id. unsigned getNumTemplateArgs() const { if (!hasExplicitTemplateArgs()) @@ -2593,7 +2593,7 @@ return {getTemplateArgs(), getNumTemplateArgs()}; } - /// \brief Retrieve the member declaration name info. + /// Retrieve the member declaration name info. DeclarationNameInfo getMemberNameInfo() const { return DeclarationNameInfo(MemberDecl->getDeclName(), MemberLoc, MemberDNLoc); @@ -2614,24 +2614,24 @@ SourceLocation getExprLoc() const LLVM_READONLY { return MemberLoc; } - /// \brief Determine whether the base of this explicit is implicit. + /// Determine whether the base of this explicit is implicit. bool isImplicitAccess() const { return getBase() && getBase()->isImplicitCXXThis(); } - /// \brief Returns true if this member expression refers to a method that + /// Returns true if this member expression refers to a method that /// was resolved from an overloaded set having size greater than 1. bool hadMultipleCandidates() const { return HadMultipleCandidates; } - /// \brief Sets the flag telling whether this expression refers to + /// Sets the flag telling whether this expression refers to /// a method that was resolved from an overloaded set having size /// greater than 1. void setHadMultipleCandidates(bool V = true) { HadMultipleCandidates = V; } - /// \brief Returns true if virtual dispatch is performed. + /// Returns true if virtual dispatch is performed. /// If the member access is fully qualified, (i.e. X::f()), virtual /// dispatching is not performed. In -fapple-kext mode qualified /// calls to virtual method will still go through the vtable. @@ -2678,7 +2678,7 @@ init->containsUnexpandedParameterPack()), LParenLoc(lparenloc), TInfoAndScope(tinfo, fileScope), Init(init) {} - /// \brief Construct an empty compound literal. + /// Construct an empty compound literal. explicit CompoundLiteralExpr(EmptyShell Empty) : Expr(CompoundLiteralExprClass, Empty) { } @@ -2769,7 +2769,7 @@ assert(CastConsistency()); } - /// \brief Construct an empty cast. + /// Construct an empty cast. CastExpr(StmtClass SC, EmptyShell Empty, unsigned BasePathSize) : Expr(SC, Empty) { setBasePathSize(BasePathSize); @@ -2786,7 +2786,7 @@ const Expr *getSubExpr() const { return cast<Expr>(Op); } void setSubExpr(Expr *E) { Op = E; } - /// \brief Retrieve the cast subexpression as it was written in the source + /// Retrieve the cast subexpression as it was written in the source /// code, looking through any implicit casts or other intermediate nodes /// introduced by semantic analysis. Expr *getSubExprAsWritten(); @@ -2852,7 +2852,7 @@ : CastExpr(ImplicitCastExprClass, ty, VK, kind, op, BasePathLength) { } - /// \brief Construct an empty implicit cast. + /// Construct an empty implicit cast. explicit ImplicitCastExpr(EmptyShell Shell, unsigned PathSize) : CastExpr(ImplicitCastExprClass, Shell, PathSize) { } @@ -2920,7 +2920,7 @@ TypeSourceInfo *writtenTy) : CastExpr(SC, exprTy, VK, kind, op, PathSize), TInfo(writtenTy) {} - /// \brief Construct an empty explicit cast. + /// Construct an empty explicit cast. ExplicitCastExpr(StmtClass SC, EmptyShell Shell, unsigned PathSize) : CastExpr(SC, Shell, PathSize) { } @@ -2955,7 +2955,7 @@ : ExplicitCastExpr(CStyleCastExprClass, exprTy, vk, kind, op, PathSize, writtenTy), LPLoc(l), RPLoc(r) {} - /// \brief Construct an empty C-style explicit cast. + /// Construct an empty C-style explicit cast. explicit CStyleCastExpr(EmptyShell Shell, unsigned PathSize) : ExplicitCastExpr(CStyleCastExprClass, Shell, PathSize) { } @@ -2988,7 +2988,7 @@ friend class CastExpr; }; -/// \brief A builtin binary operation expression such as "x + y" or "x <= y". +/// A builtin binary operation expression such as "x + y" or "x <= y". /// /// This expression node kind describes a builtin binary operation, /// such as "x + y" for integer values "x" and "y". The operands will @@ -3039,7 +3039,7 @@ "Use CompoundAssignOperator for compound assignments"); } - /// \brief Construct an empty binary operator. + /// Construct an empty binary operator. explicit BinaryOperator(EmptyShell Empty) : Expr(BinaryOperatorClass, Empty), Opc(BO_Comma) { } @@ -3068,11 +3068,11 @@ StringRef getOpcodeStr() const { return getOpcodeStr(getOpcode()); } - /// \brief Retrieve the binary opcode that corresponds to the given + /// Retrieve the binary opcode that corresponds to the given /// overloaded operator. static Opcode getOverloadedOpcode(OverloadedOperatorKind OO); - /// \brief Retrieve the overloaded operator kind that corresponds to + /// Retrieve the overloaded operator kind that corresponds to /// the given binary opcode. static OverloadedOperatorKind getOverloadedOperator(Opcode Opc); @@ -3228,7 +3228,7 @@ "Only should be used for compound assignments"); } - /// \brief Build an empty compound assignment operator expression. + /// Build an empty compound assignment operator expression. explicit CompoundAssignOperator(EmptyShell Empty) : BinaryOperator(CompoundAssignOperatorClass, Empty) { } @@ -3318,7 +3318,7 @@ SubExprs[RHS] = rhs; } - /// \brief Build an empty conditional operator. + /// Build an empty conditional operator. explicit ConditionalOperator(EmptyShell Empty) : AbstractConditionalOperator(ConditionalOperatorClass, Empty) { } @@ -3396,30 +3396,30 @@ assert(OpaqueValue->getSourceExpr() == common && "Wrong opaque value"); } - /// \brief Build an empty conditional operator. + /// Build an empty conditional operator. explicit BinaryConditionalOperator(EmptyShell Empty) : AbstractConditionalOperator(BinaryConditionalOperatorClass, Empty) { } - /// \brief getCommon - Return the common expression, written to the + /// getCommon - Return the common expression, written to the /// left of the condition. The opaque value will be bound to the /// result of this expression. Expr *getCommon() const { return cast<Expr>(SubExprs[COMMON]); } - /// \brief getOpaqueValue - Return the opaque value placeholder. + /// getOpaqueValue - Return the opaque value placeholder. OpaqueValueExpr *getOpaqueValue() const { return OpaqueValue; } - /// \brief getCond - Return the condition expression; this is defined + /// getCond - Return the condition expression; this is defined /// in terms of the opaque value. Expr *getCond() const { return cast<Expr>(SubExprs[COND]); } - /// \brief getTrueExpr - Return the subexpression which will be + /// getTrueExpr - Return the subexpression which will be /// evaluated if the condition evaluates to true; this is defined /// in terms of the opaque value. Expr *getTrueExpr() const { return cast<Expr>(SubExprs[LHS]); } - /// \brief getFalseExpr - Return the subexpression which will be + /// getFalseExpr - Return the subexpression which will be /// evaluated if the condnition evaluates to false; this is /// defined in terms of the opaque value. Expr *getFalseExpr() const { @@ -3475,7 +3475,7 @@ false), AmpAmpLoc(AALoc), LabelLoc(LLoc), Label(L) {} - /// \brief Build an empty address of a label expression. + /// Build an empty address of a label expression. explicit AddrLabelExpr(EmptyShell Empty) : Expr(AddrLabelExprClass, Empty) { } @@ -3522,7 +3522,7 @@ T->isDependentType(), false, false, false), SubStmt(substmt), LParenLoc(lp), RParenLoc(rp) { } - /// \brief Build an empty statement expression. + /// Build an empty statement expression. explicit StmtExpr(EmptyShell Empty) : Expr(StmtExprClass, Empty) { } CompoundStmt *getSubStmt() { return cast<CompoundStmt>(SubStmt); } @@ -3568,7 +3568,7 @@ ShuffleVectorExpr(const ASTContext &C, ArrayRef<Expr*> args, QualType Type, SourceLocation BLoc, SourceLocation RP); - /// \brief Build an empty vector-shuffle expression. + /// Build an empty vector-shuffle expression. explicit ShuffleVectorExpr(EmptyShell Empty) : Expr(ShuffleVectorExprClass, Empty), SubExprs(nullptr) { } @@ -3590,7 +3590,7 @@ /// pointers. unsigned getNumSubExprs() const { return NumExprs; } - /// \brief Retrieve the array of expressions. + /// Retrieve the array of expressions. Expr **getSubExprs() { return reinterpret_cast<Expr **>(SubExprs); } /// getExpr - Return the Expr at the specified index. @@ -3708,7 +3708,7 @@ SubExprs[RHS] = rhs; } - /// \brief Build an empty __builtin_choose_expr. + /// Build an empty __builtin_choose_expr. explicit ChooseExpr(EmptyShell Empty) : Expr(ChooseExprClass, Empty) { } /// isConditionTrue - Return whether the condition is true (i.e. not @@ -3775,7 +3775,7 @@ false), TokenLoc(Loc) { } - /// \brief Build an empty GNU __null expression. + /// Build an empty GNU __null expression. explicit GNUNullExpr(EmptyShell Empty) : Expr(GNUNullExprClass, Empty) { } /// getTokenLocation - The location of the __null token. @@ -3848,7 +3848,7 @@ } }; -/// @brief Describes an C or C++ initializer list. +/// Describes an C or C++ initializer list. /// /// InitListExpr describes an initializer list, which can be used to /// initialize objects of different types, including @@ -3906,7 +3906,7 @@ /// - the semantic form, if this is in syntactic form. llvm::PointerIntPair<InitListExpr *, 1, bool> AltForm; - /// \brief Either: + /// Either: /// If this initializer list initializes an array with more elements than /// there are initializers in the list, specifies an expression to be used /// for value initialization of the rest of the elements. @@ -3919,16 +3919,16 @@ InitListExpr(const ASTContext &C, SourceLocation lbraceloc, ArrayRef<Expr*> initExprs, SourceLocation rbraceloc); - /// \brief Build an empty initializer list. + /// Build an empty initializer list. explicit InitListExpr(EmptyShell Empty) : Expr(InitListExprClass, Empty), AltForm(nullptr, true) { } unsigned getNumInits() const { return InitExprs.size(); } - /// \brief Retrieve the set of initializers. + /// Retrieve the set of initializers. Expr **getInits() { return reinterpret_cast<Expr **>(InitExprs.data()); } - /// \brief Retrieve the set of initializers. + /// Retrieve the set of initializers. Expr * const *getInits() const { return reinterpret_cast<Expr * const *>(InitExprs.data()); } @@ -3964,10 +3964,10 @@ } } - /// \brief Reserve space for some number of initializers. + /// Reserve space for some number of initializers. void reserveInits(const ASTContext &C, unsigned NumInits); - /// @brief Specify the number of initializers + /// Specify the number of initializers /// /// If there are more than @p NumInits initializers, the remaining /// initializers will be destroyed. If there are fewer than @p @@ -3975,7 +3975,7 @@ /// unknown initializers. void resizeInits(const ASTContext &Context, unsigned NumInits); - /// @brief Updates the initializer at index @p Init with the new + /// Updates the initializer at index @p Init with the new /// expression @p expr, and returns the old expression at that /// location. /// @@ -3984,7 +3984,7 @@ /// accommodate the new entry. Expr *updateInit(const ASTContext &C, unsigned Init, Expr *expr); - /// \brief If this initializer list initializes an array with more elements + /// If this initializer list initializes an array with more elements /// than there are initializers in the list, specifies an expression to be /// used for value initialization of the rest of the elements. Expr *getArrayFiller() { @@ -3995,11 +3995,11 @@ } void setArrayFiller(Expr *filler); - /// \brief Return true if this is an array initializer and its array "filler" + /// Return true if this is an array initializer and its array "filler" /// has been set. bool hasArrayFiller() const { return getArrayFiller(); } - /// \brief If this initializes a union, specifies which field in the + /// If this initializes a union, specifies which field in the /// union to initialize. /// /// Typically, this field is the first named field within the @@ -4107,7 +4107,7 @@ friend class ASTStmtWriter; }; -/// @brief Represents a C99 designated initializer expression. +/// Represents a C99 designated initializer expression. /// /// A designated initializer expression (C99 6.7.8) contains one or /// more designators (which can be field designators, array @@ -4131,7 +4131,7 @@ : public Expr, private llvm::TrailingObjects<DesignatedInitExpr, Stmt *> { public: - /// \brief Forward declaration of the Designator class. + /// Forward declaration of the Designator class. class Designator; private: @@ -4151,7 +4151,7 @@ /// expressions used by array and array-range designators. unsigned NumSubExprs : 16; - /// \brief The designators in this designated initialization + /// The designators in this designated initialization /// expression. Designator *Designators; @@ -4196,14 +4196,14 @@ unsigned RBracketLoc; }; - /// @brief Represents a single C99 designator. + /// Represents a single C99 designator. /// /// @todo This class is infuriatingly similar to clang::Designator, /// but minor differences (storing indices vs. storing pointers) /// keep us from reusing it. Try harder, later, to rectify these /// differences. class Designator { - /// @brief The kind of designator this describes. + /// The kind of designator this describes. enum { FieldDesignator, ArrayDesignator, @@ -4221,7 +4221,7 @@ public: Designator() {} - /// @brief Initializes a field designator. + /// Initializes a field designator. Designator(const IdentifierInfo *FieldName, SourceLocation DotLoc, SourceLocation FieldLoc) : Kind(FieldDesignator) { @@ -4230,7 +4230,7 @@ Field.FieldLoc = FieldLoc.getRawEncoding(); } - /// @brief Initializes an array designator. + /// Initializes an array designator. Designator(unsigned Index, SourceLocation LBracketLoc, SourceLocation RBracketLoc) : Kind(ArrayDesignator) { @@ -4240,7 +4240,7 @@ ArrayOrRange.RBracketLoc = RBracketLoc.getRawEncoding(); } - /// @brief Initializes a GNU array-range designator. + /// Initializes a GNU array-range designator. Designator(unsigned Index, SourceLocation LBracketLoc, SourceLocation EllipsisLoc, SourceLocation RBracketLoc) : Kind(ArrayRangeDesignator) { @@ -4326,7 +4326,7 @@ static DesignatedInitExpr *CreateEmpty(const ASTContext &C, unsigned NumIndexExprs); - /// @brief Returns the number of designators in this initializer. + /// Returns the number of designators in this initializer. unsigned size() const { return NumDesignators; } // Iterator access to the designators. @@ -4350,17 +4350,17 @@ Expr *getArrayRangeStart(const Designator &D) const; Expr *getArrayRangeEnd(const Designator &D) const; - /// @brief Retrieve the location of the '=' that precedes the + /// Retrieve the location of the '=' that precedes the /// initializer value itself, if present. SourceLocation getEqualOrColonLoc() const { return EqualOrColonLoc; } void setEqualOrColonLoc(SourceLocation L) { EqualOrColonLoc = L; } - /// @brief Determines whether this designated initializer used the + /// Determines whether this designated initializer used the /// deprecated GNU syntax for designated initializers. bool usesGNUSyntax() const { return GNUSyntax; } void setGNUSyntax(bool GNU) { GNUSyntax = GNU; } - /// @brief Retrieve the initializer value. + /// Retrieve the initializer value. Expr *getInit() const { return cast<Expr>(*const_cast<DesignatedInitExpr*>(this)->child_begin()); } @@ -4369,7 +4369,7 @@ *child_begin() = init; } - /// \brief Retrieve the total number of subexpressions in this + /// Retrieve the total number of subexpressions in this /// designated initializer expression, including the actual /// initialized value and any expressions that occur within array /// and array-range designators. @@ -4385,7 +4385,7 @@ getTrailingObjects<Stmt *>()[Idx] = E; } - /// \brief Replaces the designator at index @p Idx with the series + /// Replaces the designator at index @p Idx with the series /// of designators in [First, Last). void ExpandDesignator(const ASTContext &C, unsigned Idx, const Designator *First, const Designator *Last); @@ -4412,7 +4412,7 @@ friend TrailingObjects; }; -/// \brief Represents a place-holder for an object not to be initialized by +/// Represents a place-holder for an object not to be initialized by /// anything. /// /// This only makes sense when it appears as part of an updater of a @@ -4495,7 +4495,7 @@ } }; -/// \brief Represents a loop initializing the elements of an array. +/// Represents a loop initializing the elements of an array. /// /// The need to initialize the elements of an array occurs in a number of /// contexts: @@ -4563,7 +4563,7 @@ friend class ASTStmtWriter; }; -/// \brief Represents the index of the current element of an array being +/// Represents the index of the current element of an array being /// initialized by an ArrayInitLoopExpr. This can only appear within the /// subexpression of an ArrayInitLoopExpr. class ArrayInitIndexExpr : public Expr { @@ -4593,7 +4593,7 @@ friend class ASTStmtReader; }; -/// \brief Represents an implicitly-generated value initialization of +/// Represents an implicitly-generated value initialization of /// an object of a given type. /// /// Implicit value initializations occur within semantic initializer @@ -4607,7 +4607,7 @@ : Expr(ImplicitValueInitExprClass, ty, VK_RValue, OK_Ordinary, false, false, ty->isInstantiationDependentType(), false) { } - /// \brief Construct an empty implicit value initialization. + /// Construct an empty implicit value initialization. explicit ImplicitValueInitExpr(EmptyShell Empty) : Expr(ImplicitValueInitExprClass, Empty) { } @@ -4636,7 +4636,7 @@ ParenListExpr(const ASTContext& C, SourceLocation lparenloc, ArrayRef<Expr*> exprs, SourceLocation rparenloc); - /// \brief Build an empty paren list. + /// Build an empty paren list. explicit ParenListExpr(EmptyShell Empty) : Expr(ParenListExprClass, Empty) { } unsigned getNumExprs() const { return NumExprs; } @@ -4679,7 +4679,7 @@ friend class ASTStmtWriter; }; -/// \brief Represents a C11 generic selection. +/// Represents a C11 generic selection. /// /// A generic selection (C11 6.5.1.1) contains an unevaluated controlling /// expression, followed by one or more generic associations. Each generic @@ -4825,7 +4825,7 @@ base->containsUnexpandedParameterPack()), Base(base), Accessor(&accessor), AccessorLoc(loc) {} - /// \brief Build an empty vector element expression. + /// Build an empty vector element expression. explicit ExtVectorElementExpr(EmptyShell Empty) : Expr(ExtVectorElementExprClass, Empty) { } @@ -4883,7 +4883,7 @@ false), TheBlock(BD) {} - /// \brief Build an empty block expression. + /// Build an empty block expression. explicit BlockExpr(EmptyShell Empty) : Expr(BlockExprClass, Empty) { } const BlockDecl *getBlockDecl() const { return TheBlock; } @@ -5135,7 +5135,7 @@ }; private: - /// \brief Location of sub-expressions. + /// Location of sub-expressions. /// The location of Scope sub-expression is NumSubExprs - 1, which is /// not fixed, therefore is not defined in enum. enum { PTR, ORDER, VAL1, ORDER_FAIL, VAL2, WEAK, END_EXPR }; @@ -5149,11 +5149,11 @@ AtomicExpr(SourceLocation BLoc, ArrayRef<Expr*> args, QualType t, AtomicOp op, SourceLocation RP); - /// \brief Determine the number of arguments the specified atomic builtin + /// Determine the number of arguments the specified atomic builtin /// should have. static unsigned getNumSubExprs(AtomicOp Op); - /// \brief Build an empty AtomicExpr. + /// Build an empty AtomicExpr. explicit AtomicExpr(EmptyShell Empty) : Expr(AtomicExprClass, Empty) { } Expr *getPtr() const { @@ -5232,7 +5232,7 @@ return const_child_range(SubExprs, SubExprs + NumSubExprs); } - /// \brief Get atomic scope model for the atomic op code. + /// Get atomic scope model for the atomic op code. /// \return empty atomic scope model if the atomic op code does not have /// scope operand. static std::unique_ptr<AtomicScopeModel> getScopeModel(AtomicOp Op) { @@ -5243,7 +5243,7 @@ return AtomicScopeModel::create(Kind); } - /// \brief Get atomic scope model. + /// Get atomic scope model. /// \return empty atomic scope model if this atomic expression does not have /// scope operand. std::unique_ptr<AtomicScopeModel> getScopeModel() const { Index: cfe/trunk/include/clang/AST/ExprCXX.h =================================================================== --- cfe/trunk/include/clang/AST/ExprCXX.h +++ cfe/trunk/include/clang/AST/ExprCXX.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Defines the clang::Expr interface and subclasses for C++ expressions. +/// Defines the clang::Expr interface and subclasses for C++ expressions. // //===----------------------------------------------------------------------===// @@ -62,7 +62,7 @@ // C++ Expressions. //===--------------------------------------------------------------------===// -/// \brief A call to an overloaded operator written using operator +/// A call to an overloaded operator written using operator /// syntax. /// /// Represents a call to an overloaded operator written using operator @@ -76,7 +76,7 @@ /// function templates that were found by name lookup at template /// definition time. class CXXOperatorCallExpr : public CallExpr { - /// \brief The overloaded operator. + /// The overloaded operator. OverloadedOperatorKind Operator; SourceRange Range; @@ -101,7 +101,7 @@ explicit CXXOperatorCallExpr(ASTContext& C, EmptyShell Empty) : CallExpr(C, CXXOperatorCallExprClass, Empty) {} - /// \brief Returns the kind of overloaded operator that this + /// Returns the kind of overloaded operator that this /// expression refers to. OverloadedOperatorKind getOperator() const { return Operator; } @@ -115,10 +115,10 @@ } bool isAssignmentOp() const { return isAssignmentOp(getOperator()); } - /// \brief Is this written as an infix binary operator? + /// Is this written as an infix binary operator? bool isInfixBinaryOp() const; - /// \brief Returns the location of the operator symbol in the expression. + /// Returns the location of the operator symbol in the expression. /// /// When \c getOperator()==OO_Call, this is the location of the right /// parentheses; when \c getOperator()==OO_Subscript, this is the location @@ -170,15 +170,15 @@ CXXMemberCallExpr(ASTContext &C, EmptyShell Empty) : CallExpr(C, CXXMemberCallExprClass, Empty) {} - /// \brief Retrieves the implicit object argument for the member call. + /// Retrieves the implicit object argument for the member call. /// /// For example, in "x.f(5)", this returns the sub-expression "x". Expr *getImplicitObjectArgument() const; - /// \brief Retrieves the declaration of the called method. + /// Retrieves the declaration of the called method. CXXMethodDecl *getMethodDecl() const; - /// \brief Retrieves the CXXRecordDecl for the underlying type of + /// Retrieves the CXXRecordDecl for the underlying type of /// the implicit object argument. /// /// Note that this is may not be the same declaration as that of the class @@ -199,7 +199,7 @@ } }; -/// \brief Represents a call to a CUDA kernel function. +/// Represents a call to a CUDA kernel function. class CUDAKernelCallExpr : public CallExpr { private: enum { CONFIG, END_PREARG }; @@ -218,7 +218,7 @@ } CallExpr *getConfig() { return cast_or_null<CallExpr>(getPreArg(CONFIG)); } - /// \brief Sets the kernel configuration expression. + /// Sets the kernel configuration expression. /// /// Note that this method cannot be called if config has already been set to a /// non-null value. @@ -237,7 +237,7 @@ } }; -/// \brief Abstract class common to all of the C++ "named"/"keyword" casts. +/// Abstract class common to all of the C++ "named"/"keyword" casts. /// /// This abstract class is inherited by all of the classes /// representing "named" casts: CXXStaticCastExpr for \c static_cast, @@ -271,11 +271,11 @@ public: const char *getCastName() const; - /// \brief Retrieve the location of the cast operator keyword, e.g., + /// Retrieve the location of the cast operator keyword, e.g., /// \c static_cast. SourceLocation getOperatorLoc() const { return Loc; } - /// \brief Retrieve the location of the closing parenthesis. + /// Retrieve the location of the closing parenthesis. SourceLocation getRParenLoc() const { return RParenLoc; } SourceLocation getLocStart() const LLVM_READONLY { return Loc; } @@ -295,7 +295,7 @@ } }; -/// \brief A C++ \c static_cast expression (C++ [expr.static.cast]). +/// A C++ \c static_cast expression (C++ [expr.static.cast]). /// /// This expression node represents a C++ static cast, e.g., /// \c static_cast<int>(1.0). @@ -330,7 +330,7 @@ } }; -/// \brief A C++ @c dynamic_cast expression (C++ [expr.dynamic.cast]). +/// A C++ @c dynamic_cast expression (C++ [expr.dynamic.cast]). /// /// This expression node represents a dynamic cast, e.g., /// \c dynamic_cast<Derived*>(BasePtr). Such a cast may perform a run-time @@ -369,7 +369,7 @@ } }; -/// \brief A C++ @c reinterpret_cast expression (C++ [expr.reinterpret.cast]). +/// A C++ @c reinterpret_cast expression (C++ [expr.reinterpret.cast]). /// /// This expression node represents a reinterpret cast, e.g., /// @c reinterpret_cast<int>(VoidPtr). @@ -410,7 +410,7 @@ } }; -/// \brief A C++ \c const_cast expression (C++ [expr.const.cast]). +/// A C++ \c const_cast expression (C++ [expr.const.cast]). /// /// This expression node represents a const cast, e.g., /// \c const_cast<char*>(PtrToConstChar). @@ -445,7 +445,7 @@ } }; -/// \brief A call to a literal operator (C++11 [over.literal]) +/// A call to a literal operator (C++11 [over.literal]) /// written as a user-defined literal (C++11 [lit.ext]). /// /// Represents a user-defined literal, e.g. "foo"_bar or 1.23_xyz. While this @@ -455,7 +455,7 @@ /// Since literal operators are never found by ADL and can only be declared at /// namespace scope, a user-defined literal is never dependent. class UserDefinedLiteral : public CallExpr { - /// \brief The location of a ud-suffix within the literal. + /// The location of a ud-suffix within the literal. SourceLocation UDSuffixLoc; public: @@ -492,11 +492,11 @@ LOK_Character }; - /// \brief Returns the kind of literal operator invocation + /// Returns the kind of literal operator invocation /// which this expression represents. LiteralOperatorKind getLiteralOperatorKind() const; - /// \brief If this is not a raw user-defined literal, get the + /// If this is not a raw user-defined literal, get the /// underlying cooked literal (representing the literal with the suffix /// removed). Expr *getCookedLiteral(); @@ -512,13 +512,13 @@ SourceLocation getLocEnd() const { return getRParenLoc(); } - /// \brief Returns the location of a ud-suffix in the expression. + /// Returns the location of a ud-suffix in the expression. /// /// For a string literal, there may be multiple identical suffixes. This /// returns the first. SourceLocation getUDSuffixLoc() const { return UDSuffixLoc; } - /// \brief Returns the ud-suffix specified for this literal. + /// Returns the ud-suffix specified for this literal. const IdentifierInfo *getUDSuffix() const; static bool classof(const Stmt *S) { @@ -526,7 +526,7 @@ } }; -/// \brief A boolean literal, per ([C++ lex.bool] Boolean literals). +/// A boolean literal, per ([C++ lex.bool] Boolean literals). class CXXBoolLiteralExpr : public Expr { bool Value; SourceLocation Loc; @@ -559,7 +559,7 @@ } }; -/// \brief The null pointer literal (C++11 [lex.nullptr]) +/// The null pointer literal (C++11 [lex.nullptr]) /// /// Introduced in C++11, the only literal of type \c nullptr_t is \c nullptr. class CXXNullPtrLiteralExpr : public Expr { @@ -589,7 +589,7 @@ } }; -/// \brief Implicit construction of a std::initializer_list<T> object from an +/// Implicit construction of a std::initializer_list<T> object from an /// array temporary within list-initialization (C++11 [dcl.init.list]p5). class CXXStdInitializerListExpr : public Expr { Stmt *SubExpr = nullptr; @@ -677,11 +677,11 @@ bool isTypeOperand() const { return Operand.is<TypeSourceInfo *>(); } - /// \brief Retrieves the type operand of this typeid() expression after + /// Retrieves the type operand of this typeid() expression after /// various required adjustments (removing reference types, cv-qualifiers). QualType getTypeOperand(ASTContext &Context) const; - /// \brief Retrieve source information for the type operand. + /// Retrieve source information for the type operand. TypeSourceInfo *getTypeOperandSourceInfo() const { assert(isTypeOperand() && "Cannot call getTypeOperand for typeid(expr)"); return Operand.get<TypeSourceInfo *>(); @@ -720,7 +720,7 @@ } }; -/// \brief A member reference to an MSPropertyDecl. +/// A member reference to an MSPropertyDecl. /// /// This expression always has pseudo-object type, and therefore it is /// typically not encountered in a fully-typechecked expression except @@ -816,7 +816,7 @@ SubExprs[IDX_EXPR] = Idx; } - /// \brief Create an empty array subscript expression. + /// Create an empty array subscript expression. explicit MSPropertySubscriptExpr(EmptyShell Shell) : Expr(MSPropertySubscriptExprClass, Shell) {} @@ -884,11 +884,11 @@ bool isTypeOperand() const { return Operand.is<TypeSourceInfo *>(); } - /// \brief Retrieves the type operand of this __uuidof() expression after + /// Retrieves the type operand of this __uuidof() expression after /// various required adjustments (removing reference types, cv-qualifiers). QualType getTypeOperand(ASTContext &Context) const; - /// \brief Retrieve source information for the type operand. + /// Retrieve source information for the type operand. TypeSourceInfo *getTypeOperandSourceInfo() const { assert(isTypeOperand() && "Cannot call getTypeOperand for __uuidof(expr)"); return Operand.get<TypeSourceInfo *>(); @@ -930,7 +930,7 @@ } }; -/// \brief Represents the \c this expression in C++. +/// Represents the \c this expression in C++. /// /// This is a pointer to the object on which the current member function is /// executing (C++ [expr.prim]p3). Example: @@ -977,7 +977,7 @@ } }; -/// \brief A C++ throw-expression (C++ [except.throw]). +/// A C++ throw-expression (C++ [except.throw]). /// /// This handles 'throw' (for re-throwing the current exception) and /// 'throw' assignment-expression. When assignment-expression isn't @@ -988,7 +988,7 @@ Stmt *Op; SourceLocation ThrowLoc; - /// \brief Whether the thrown variable (if any) is in scope. + /// Whether the thrown variable (if any) is in scope. unsigned IsThrownVariableInScope : 1; public: @@ -1009,7 +1009,7 @@ SourceLocation getThrowLoc() const { return ThrowLoc; } - /// \brief Determines whether the variable thrown by this expression (if any!) + /// Determines whether the variable thrown by this expression (if any!) /// is within the innermost try block. /// /// This information is required to determine whether the NRVO can apply to @@ -1034,16 +1034,16 @@ } }; -/// \brief A default argument (C++ [dcl.fct.default]). +/// A default argument (C++ [dcl.fct.default]). /// /// This wraps up a function call argument that was created from the /// corresponding parameter's default argument, when the call did not /// explicitly supply arguments for all of the parameters. class CXXDefaultArgExpr final : public Expr { - /// \brief The parameter whose default is being used. + /// The parameter whose default is being used. ParmVarDecl *Param; - /// \brief The location where the default argument expression was used. + /// The location where the default argument expression was used. SourceLocation Loc; CXXDefaultArgExpr(StmtClass SC, SourceLocation Loc, ParmVarDecl *param) @@ -1081,7 +1081,7 @@ return getParam()->getDefaultArg(); } - /// \brief Retrieve the location where this default argument was actually + /// Retrieve the location where this default argument was actually /// used. SourceLocation getUsedLocation() const { return Loc; } @@ -1102,7 +1102,7 @@ } }; -/// \brief A use of a default initializer in a constructor or in aggregate +/// A use of a default initializer in a constructor or in aggregate /// initialization. /// /// This wraps a use of a C++ default initializer (technically, @@ -1111,10 +1111,10 @@ /// (C++11 [class.base.init]p8) or in aggregate initialization /// (C++1y [dcl.init.aggr]p7). class CXXDefaultInitExpr : public Expr { - /// \brief The field whose default is being used. + /// The field whose default is being used. FieldDecl *Field; - /// \brief The location where the default initializer expression was used. + /// The location where the default initializer expression was used. SourceLocation Loc; CXXDefaultInitExpr(const ASTContext &C, SourceLocation Loc, FieldDecl *Field, @@ -1133,11 +1133,11 @@ return new (C) CXXDefaultInitExpr(C, Loc, Field, Field->getType()); } - /// \brief Get the field whose initializer will be used. + /// Get the field whose initializer will be used. FieldDecl *getField() { return Field; } const FieldDecl *getField() const { return Field; } - /// \brief Get the initialization expression that will be used. + /// Get the initialization expression that will be used. const Expr *getExpr() const { assert(Field->getInClassInitializer() && "initializer hasn't been parsed"); return Field->getInClassInitializer(); @@ -1160,9 +1160,9 @@ } }; -/// \brief Represents a C++ temporary. +/// Represents a C++ temporary. class CXXTemporary { - /// \brief The destructor that needs to be called. + /// The destructor that needs to be called. const CXXDestructorDecl *Destructor; explicit CXXTemporary(const CXXDestructorDecl *destructor) @@ -1179,7 +1179,7 @@ } }; -/// \brief Represents binding an expression to a temporary. +/// Represents binding an expression to a temporary. /// /// This ensures the destructor is called for the temporary. It should only be /// needed for non-POD, non-trivially destructable class types. For example: @@ -1235,7 +1235,7 @@ child_range children() { return child_range(&SubExpr, &SubExpr + 1); } }; -/// \brief Represents a call to a C++ constructor. +/// Represents a call to a C++ constructor. class CXXConstructExpr : public Expr { public: enum ConstructionKind { @@ -1273,7 +1273,7 @@ ConstructionKind ConstructKind, SourceRange ParenOrBraceRange); - /// \brief Construct an empty C++ construction expression. + /// Construct an empty C++ construction expression. CXXConstructExpr(StmtClass SC, EmptyShell Empty) : Expr(SC, Empty), NumArgs(0), Elidable(false), HadMultipleCandidates(false), ListInitialization(false), @@ -1282,7 +1282,7 @@ public: friend class ASTStmtReader; - /// \brief Construct an empty C++ construction expression. + /// Construct an empty C++ construction expression. explicit CXXConstructExpr(EmptyShell Empty) : CXXConstructExpr(CXXConstructExprClass, Empty) {} @@ -1298,40 +1298,40 @@ ConstructionKind ConstructKind, SourceRange ParenOrBraceRange); - /// \brief Get the constructor that this expression will (ultimately) call. + /// Get the constructor that this expression will (ultimately) call. CXXConstructorDecl *getConstructor() const { return Constructor; } SourceLocation getLocation() const { return Loc; } void setLocation(SourceLocation Loc) { this->Loc = Loc; } - /// \brief Whether this construction is elidable. + /// Whether this construction is elidable. bool isElidable() const { return Elidable; } void setElidable(bool E) { Elidable = E; } - /// \brief Whether the referred constructor was resolved from + /// Whether the referred constructor was resolved from /// an overloaded set having size greater than 1. bool hadMultipleCandidates() const { return HadMultipleCandidates; } void setHadMultipleCandidates(bool V) { HadMultipleCandidates = V; } - /// \brief Whether this constructor call was written as list-initialization. + /// Whether this constructor call was written as list-initialization. bool isListInitialization() const { return ListInitialization; } void setListInitialization(bool V) { ListInitialization = V; } - /// \brief Whether this constructor call was written as list-initialization, + /// Whether this constructor call was written as list-initialization, /// but was interpreted as forming a std::initializer_list<T> from the list /// and passing that as a single constructor argument. /// See C++11 [over.match.list]p1 bullet 1. bool isStdInitListInitialization() const { return StdInitListInitialization; } void setStdInitListInitialization(bool V) { StdInitListInitialization = V; } - /// \brief Whether this construction first requires + /// Whether this construction first requires /// zero-initialization before the initializer is called. bool requiresZeroInitialization() const { return ZeroInitialization; } void setRequiresZeroInitialization(bool ZeroInit) { ZeroInitialization = ZeroInit; } - /// \brief Determine whether this constructor is actually constructing + /// Determine whether this constructor is actually constructing /// a base class (rather than a complete object). ConstructionKind getConstructionKind() const { return (ConstructionKind)ConstructKind; @@ -1361,7 +1361,7 @@ } unsigned getNumArgs() const { return NumArgs; } - /// \brief Return the specified argument. + /// Return the specified argument. Expr *getArg(unsigned Arg) { assert(Arg < NumArgs && "Arg access out of range!"); return cast<Expr>(Args[Arg]); @@ -1371,7 +1371,7 @@ return cast<Expr>(Args[Arg]); } - /// \brief Set the specified argument. + /// Set the specified argument. void setArg(unsigned Arg, Expr *ArgExpr) { assert(Arg < NumArgs && "Arg access out of range!"); Args[Arg] = ArgExpr; @@ -1393,7 +1393,7 @@ } }; -/// \brief Represents a call to an inherited base class constructor from an +/// Represents a call to an inherited base class constructor from an /// inheriting constructor. This call implicitly forwards the arguments from /// the enclosing context (an inheriting constructor) to the specified inherited /// base class constructor. @@ -1414,7 +1414,7 @@ public: friend class ASTStmtReader; - /// \brief Construct a C++ inheriting construction expression. + /// Construct a C++ inheriting construction expression. CXXInheritedCtorInitExpr(SourceLocation Loc, QualType T, CXXConstructorDecl *Ctor, bool ConstructsVirtualBase, bool InheritedFromVirtualBase) @@ -1426,15 +1426,15 @@ assert(!T->isDependentType()); } - /// \brief Construct an empty C++ inheriting construction expression. + /// Construct an empty C++ inheriting construction expression. explicit CXXInheritedCtorInitExpr(EmptyShell Empty) : Expr(CXXInheritedCtorInitExprClass, Empty), ConstructsVirtualBase(false), InheritedFromVirtualBase(false) {} - /// \brief Get the constructor that this expression will call. + /// Get the constructor that this expression will call. CXXConstructorDecl *getConstructor() const { return Constructor; } - /// \brief Determine whether this constructor is actually constructing + /// Determine whether this constructor is actually constructing /// a base class (rather than a complete object). bool constructsVBase() const { return ConstructsVirtualBase; } CXXConstructExpr::ConstructionKind getConstructionKind() const { @@ -1442,7 +1442,7 @@ : CXXConstructExpr::CK_NonVirtualBase; } - /// \brief Determine whether the inherited constructor is inherited from a + /// Determine whether the inherited constructor is inherited from a /// virtual base of the object we construct. If so, we are not responsible /// for calling the inherited constructor (the complete object constructor /// does that), and so we don't need to pass any arguments. @@ -1461,7 +1461,7 @@ } }; -/// \brief Represents an explicit C++ type conversion that uses "functional" +/// Represents an explicit C++ type conversion that uses "functional" /// notation (C++ [expr.type.conv]). /// /// Example: @@ -1515,7 +1515,7 @@ } }; -/// @brief Represents a C++ functional cast expression that builds a +/// Represents a C++ functional cast expression that builds a /// temporary object. /// /// This expression type represents a C++ "functional" cast @@ -1559,7 +1559,7 @@ } }; -/// \brief A C++ lambda expression, which produces a function object +/// A C++ lambda expression, which produces a function object /// (of unspecified type) that can be invoked later. /// /// Example: @@ -1582,27 +1582,27 @@ /// and which can never occur implicitly. class LambdaExpr final : public Expr, private llvm::TrailingObjects<LambdaExpr, Stmt *> { - /// \brief The source range that covers the lambda introducer ([...]). + /// The source range that covers the lambda introducer ([...]). SourceRange IntroducerRange; - /// \brief The source location of this lambda's capture-default ('=' or '&'). + /// The source location of this lambda's capture-default ('=' or '&'). SourceLocation CaptureDefaultLoc; - /// \brief The number of captures. + /// The number of captures. unsigned NumCaptures : 16; - /// \brief The default capture kind, which is a value of type + /// The default capture kind, which is a value of type /// LambdaCaptureDefault. unsigned CaptureDefault : 2; - /// \brief Whether this lambda had an explicit parameter list vs. an + /// Whether this lambda had an explicit parameter list vs. an /// implicit (and empty) parameter list. unsigned ExplicitParams : 1; - /// \brief Whether this lambda had the result type explicitly specified. + /// Whether this lambda had the result type explicitly specified. unsigned ExplicitResultType : 1; - /// \brief The location of the closing brace ('}') that completes + /// The location of the closing brace ('}') that completes /// the lambda. /// /// The location of the brace is also available by looking up the @@ -1612,7 +1612,7 @@ /// module file just to determine the source range. SourceLocation ClosingBrace; - /// \brief Construct a lambda expression. + /// Construct a lambda expression. LambdaExpr(QualType T, SourceRange IntroducerRange, LambdaCaptureDefault CaptureDefault, SourceLocation CaptureDefaultLoc, ArrayRef<LambdaCapture> Captures, @@ -1620,7 +1620,7 @@ ArrayRef<Expr *> CaptureInits, SourceLocation ClosingBrace, bool ContainsUnexpandedParameterPack); - /// \brief Construct an empty lambda expression. + /// Construct an empty lambda expression. LambdaExpr(EmptyShell Empty, unsigned NumCaptures) : Expr(LambdaExprClass, Empty), NumCaptures(NumCaptures), CaptureDefault(LCD_None), ExplicitParams(false), @@ -1637,7 +1637,7 @@ friend class ASTStmtWriter; friend TrailingObjects; - /// \brief Construct a new lambda expression. + /// Construct a new lambda expression. static LambdaExpr * Create(const ASTContext &C, CXXRecordDecl *Class, SourceRange IntroducerRange, LambdaCaptureDefault CaptureDefault, SourceLocation CaptureDefaultLoc, @@ -1645,143 +1645,143 @@ bool ExplicitResultType, ArrayRef<Expr *> CaptureInits, SourceLocation ClosingBrace, bool ContainsUnexpandedParameterPack); - /// \brief Construct a new lambda expression that will be deserialized from + /// Construct a new lambda expression that will be deserialized from /// an external source. static LambdaExpr *CreateDeserialized(const ASTContext &C, unsigned NumCaptures); - /// \brief Determine the default capture kind for this lambda. + /// Determine the default capture kind for this lambda. LambdaCaptureDefault getCaptureDefault() const { return static_cast<LambdaCaptureDefault>(CaptureDefault); } - /// \brief Retrieve the location of this lambda's capture-default, if any. + /// Retrieve the location of this lambda's capture-default, if any. SourceLocation getCaptureDefaultLoc() const { return CaptureDefaultLoc; } - /// \brief Determine whether one of this lambda's captures is an init-capture. + /// Determine whether one of this lambda's captures is an init-capture. bool isInitCapture(const LambdaCapture *Capture) const; - /// \brief An iterator that walks over the captures of the lambda, + /// An iterator that walks over the captures of the lambda, /// both implicit and explicit. using capture_iterator = const LambdaCapture *; - /// \brief An iterator over a range of lambda captures. + /// An iterator over a range of lambda captures. using capture_range = llvm::iterator_range<capture_iterator>; - /// \brief Retrieve this lambda's captures. + /// Retrieve this lambda's captures. capture_range captures() const; - /// \brief Retrieve an iterator pointing to the first lambda capture. + /// Retrieve an iterator pointing to the first lambda capture. capture_iterator capture_begin() const; - /// \brief Retrieve an iterator pointing past the end of the + /// Retrieve an iterator pointing past the end of the /// sequence of lambda captures. capture_iterator capture_end() const; - /// \brief Determine the number of captures in this lambda. + /// Determine the number of captures in this lambda. unsigned capture_size() const { return NumCaptures; } - /// \brief Retrieve this lambda's explicit captures. + /// Retrieve this lambda's explicit captures. capture_range explicit_captures() const; - /// \brief Retrieve an iterator pointing to the first explicit + /// Retrieve an iterator pointing to the first explicit /// lambda capture. capture_iterator explicit_capture_begin() const; - /// \brief Retrieve an iterator pointing past the end of the sequence of + /// Retrieve an iterator pointing past the end of the sequence of /// explicit lambda captures. capture_iterator explicit_capture_end() const; - /// \brief Retrieve this lambda's implicit captures. + /// Retrieve this lambda's implicit captures. capture_range implicit_captures() const; - /// \brief Retrieve an iterator pointing to the first implicit + /// Retrieve an iterator pointing to the first implicit /// lambda capture. capture_iterator implicit_capture_begin() const; - /// \brief Retrieve an iterator pointing past the end of the sequence of + /// Retrieve an iterator pointing past the end of the sequence of /// implicit lambda captures. capture_iterator implicit_capture_end() const; - /// \brief Iterator that walks over the capture initialization + /// Iterator that walks over the capture initialization /// arguments. using capture_init_iterator = Expr **; - /// \brief Const iterator that walks over the capture initialization + /// Const iterator that walks over the capture initialization /// arguments. using const_capture_init_iterator = Expr *const *; - /// \brief Retrieve the initialization expressions for this lambda's captures. + /// Retrieve the initialization expressions for this lambda's captures. llvm::iterator_range<capture_init_iterator> capture_inits() { return llvm::make_range(capture_init_begin(), capture_init_end()); } - /// \brief Retrieve the initialization expressions for this lambda's captures. + /// Retrieve the initialization expressions for this lambda's captures. llvm::iterator_range<const_capture_init_iterator> capture_inits() const { return llvm::make_range(capture_init_begin(), capture_init_end()); } - /// \brief Retrieve the first initialization argument for this + /// Retrieve the first initialization argument for this /// lambda expression (which initializes the first capture field). capture_init_iterator capture_init_begin() { return reinterpret_cast<Expr **>(getStoredStmts()); } - /// \brief Retrieve the first initialization argument for this + /// Retrieve the first initialization argument for this /// lambda expression (which initializes the first capture field). const_capture_init_iterator capture_init_begin() const { return reinterpret_cast<Expr *const *>(getStoredStmts()); } - /// \brief Retrieve the iterator pointing one past the last + /// Retrieve the iterator pointing one past the last /// initialization argument for this lambda expression. capture_init_iterator capture_init_end() { return capture_init_begin() + NumCaptures; } - /// \brief Retrieve the iterator pointing one past the last + /// Retrieve the iterator pointing one past the last /// initialization argument for this lambda expression. const_capture_init_iterator capture_init_end() const { return capture_init_begin() + NumCaptures; } - /// \brief Retrieve the source range covering the lambda introducer, + /// Retrieve the source range covering the lambda introducer, /// which contains the explicit capture list surrounded by square /// brackets ([...]). SourceRange getIntroducerRange() const { return IntroducerRange; } - /// \brief Retrieve the class that corresponds to the lambda. + /// Retrieve the class that corresponds to the lambda. /// /// This is the "closure type" (C++1y [expr.prim.lambda]), and stores the /// captures in its fields and provides the various operations permitted /// on a lambda (copying, calling). CXXRecordDecl *getLambdaClass() const; - /// \brief Retrieve the function call operator associated with this + /// Retrieve the function call operator associated with this /// lambda expression. CXXMethodDecl *getCallOperator() const; - /// \brief If this is a generic lambda expression, retrieve the template + /// If this is a generic lambda expression, retrieve the template /// parameter list associated with it, or else return null. TemplateParameterList *getTemplateParameterList() const; - /// \brief Whether this is a generic lambda. + /// Whether this is a generic lambda. bool isGenericLambda() const { return getTemplateParameterList(); } - /// \brief Retrieve the body of the lambda. + /// Retrieve the body of the lambda. CompoundStmt *getBody() const; - /// \brief Determine whether the lambda is mutable, meaning that any + /// Determine whether the lambda is mutable, meaning that any /// captures values can be modified. bool isMutable() const; - /// \brief Determine whether this lambda has an explicit parameter + /// Determine whether this lambda has an explicit parameter /// list vs. an implicit (empty) parameter list. bool hasExplicitParameters() const { return ExplicitParams; } - /// \brief Whether this lambda had its result type explicitly specified. + /// Whether this lambda had its result type explicitly specified. bool hasExplicitResultType() const { return ExplicitResultType; } static bool classof(const Stmt *T) { @@ -1809,7 +1809,7 @@ TypeSourceInfo *TypeInfo; public: - /// \brief Create an explicitly-written scalar-value initialization + /// Create an explicitly-written scalar-value initialization /// expression. CXXScalarValueInitExpr(QualType Type, TypeSourceInfo *TypeInfo, SourceLocation rParenLoc) @@ -1840,7 +1840,7 @@ } }; -/// \brief Represents a new-expression for memory allocation and constructor +/// Represents a new-expression for memory allocation and constructor /// calls, e.g: "new CXXNewExpr(foo)". class CXXNewExpr : public Expr { friend class ASTStmtReader; @@ -1850,24 +1850,24 @@ /// expression, and any number of optional placement arguments, in that order. Stmt **SubExprs = nullptr; - /// \brief Points to the allocation function used. + /// Points to the allocation function used. FunctionDecl *OperatorNew; - /// \brief Points to the deallocation function used in case of error. May be + /// Points to the deallocation function used in case of error. May be /// null. FunctionDecl *OperatorDelete; - /// \brief The allocated type-source information, as written in the source. + /// The allocated type-source information, as written in the source. TypeSourceInfo *AllocatedTypeInfo; - /// \brief If the allocated type was expressed as a parenthesized type-id, + /// If the allocated type was expressed as a parenthesized type-id, /// the source range covering the parenthesized type-id. SourceRange TypeIdParens; - /// \brief Range of the entire new expression. + /// Range of the entire new expression. SourceRange Range; - /// \brief Source-range of a paren-delimited initializer. + /// Source-range of a paren-delimited initializer. SourceRange DirectInitRange; /// Was the usage ::new, i.e. is the global new to be used? @@ -1925,7 +1925,7 @@ return AllocatedTypeInfo; } - /// \brief True if the allocation result needs to be null-checked. + /// True if the allocation result needs to be null-checked. /// /// C++11 [expr.new]p13: /// If the allocation function returns null, initialization shall @@ -1976,17 +1976,17 @@ bool isGlobalNew() const { return GlobalNew; } - /// \brief Whether this new-expression has any initializer at all. + /// Whether this new-expression has any initializer at all. bool hasInitializer() const { return StoredInitializationStyle > 0; } - /// \brief The kind of initializer this new-expression has. + /// The kind of initializer this new-expression has. InitializationStyle getInitializationStyle() const { if (StoredInitializationStyle == 0) return NoInit; return static_cast<InitializationStyle>(StoredInitializationStyle-1); } - /// \brief The initializer of this new-expression. + /// The initializer of this new-expression. Expr *getInitializer() { return hasInitializer() ? cast<Expr>(SubExprs[Array]) : nullptr; } @@ -1994,7 +1994,7 @@ return hasInitializer() ? cast<Expr>(SubExprs[Array]) : nullptr; } - /// \brief Returns the CXXConstructExpr from this new-expression, or null. + /// Returns the CXXConstructExpr from this new-expression, or null. const CXXConstructExpr *getConstructExpr() const { return dyn_cast_or_null<CXXConstructExpr>(getInitializer()); } @@ -2069,7 +2069,7 @@ } }; -/// \brief Represents a \c delete expression for memory deallocation and +/// Represents a \c delete expression for memory deallocation and /// destructor calls, e.g. "delete[] pArray". class CXXDeleteExpr : public Expr { /// Points to the operator delete overload that is used. Could be a member. @@ -2128,7 +2128,7 @@ Expr *getArgument() { return cast<Expr>(Argument); } const Expr *getArgument() const { return cast<Expr>(Argument); } - /// \brief Retrieve the type being destroyed. + /// Retrieve the type being destroyed. /// /// If the type being destroyed is a dependent type which may or may not /// be a pointer, return an invalid type. @@ -2145,13 +2145,13 @@ child_range children() { return child_range(&Argument, &Argument+1); } }; -/// \brief Stores the type being destroyed by a pseudo-destructor expression. +/// Stores the type being destroyed by a pseudo-destructor expression. class PseudoDestructorTypeStorage { - /// \brief Either the type source information or the name of the type, if + /// Either the type source information or the name of the type, if /// it couldn't be resolved due to type-dependence. llvm::PointerUnion<TypeSourceInfo *, IdentifierInfo *> Type; - /// \brief The starting source location of the pseudo-destructor type. + /// The starting source location of the pseudo-destructor type. SourceLocation Location; public: @@ -2173,7 +2173,7 @@ SourceLocation getLocation() const { return Location; } }; -/// \brief Represents a C++ pseudo-destructor (C++ [expr.pseudo]). +/// Represents a C++ pseudo-destructor (C++ [expr.pseudo]). /// /// A pseudo-destructor is an expression that looks like a member access to a /// destructor of a scalar type, except that scalar types don't have @@ -2200,31 +2200,31 @@ class CXXPseudoDestructorExpr : public Expr { friend class ASTStmtReader; - /// \brief The base expression (that is being destroyed). + /// The base expression (that is being destroyed). Stmt *Base = nullptr; - /// \brief Whether the operator was an arrow ('->'); otherwise, it was a + /// Whether the operator was an arrow ('->'); otherwise, it was a /// period ('.'). bool IsArrow : 1; - /// \brief The location of the '.' or '->' operator. + /// The location of the '.' or '->' operator. SourceLocation OperatorLoc; - /// \brief The nested-name-specifier that follows the operator, if present. + /// The nested-name-specifier that follows the operator, if present. NestedNameSpecifierLoc QualifierLoc; - /// \brief The type that precedes the '::' in a qualified pseudo-destructor + /// The type that precedes the '::' in a qualified pseudo-destructor /// expression. TypeSourceInfo *ScopeType = nullptr; - /// \brief The location of the '::' in a qualified pseudo-destructor + /// The location of the '::' in a qualified pseudo-destructor /// expression. SourceLocation ColonColonLoc; - /// \brief The location of the '~'. + /// The location of the '~'. SourceLocation TildeLoc; - /// \brief The type being destroyed, or its name if we were unable to + /// The type being destroyed, or its name if we were unable to /// resolve the name. PseudoDestructorTypeStorage DestroyedType; @@ -2242,30 +2242,30 @@ Expr *getBase() const { return cast<Expr>(Base); } - /// \brief Determines whether this member expression actually had + /// Determines whether this member expression actually had /// a C++ nested-name-specifier prior to the name of the member, e.g., /// x->Base::foo. bool hasQualifier() const { return QualifierLoc.hasQualifier(); } - /// \brief Retrieves the nested-name-specifier that qualifies the type name, + /// Retrieves the nested-name-specifier that qualifies the type name, /// with source-location information. NestedNameSpecifierLoc getQualifierLoc() const { return QualifierLoc; } - /// \brief If the member name was qualified, retrieves the + /// If the member name was qualified, retrieves the /// nested-name-specifier that precedes the member name. Otherwise, returns /// null. NestedNameSpecifier *getQualifier() const { return QualifierLoc.getNestedNameSpecifier(); } - /// \brief Determine whether this pseudo-destructor expression was written + /// Determine whether this pseudo-destructor expression was written /// using an '->' (otherwise, it used a '.'). bool isArrow() const { return IsArrow; } - /// \brief Retrieve the location of the '.' or '->' operator. + /// Retrieve the location of the '.' or '->' operator. SourceLocation getOperatorLoc() const { return OperatorLoc; } - /// \brief Retrieve the scope type in a qualified pseudo-destructor + /// Retrieve the scope type in a qualified pseudo-destructor /// expression. /// /// Pseudo-destructor expressions can have extra qualification within them @@ -2276,14 +2276,14 @@ /// destructor expression. TypeSourceInfo *getScopeTypeInfo() const { return ScopeType; } - /// \brief Retrieve the location of the '::' in a qualified pseudo-destructor + /// Retrieve the location of the '::' in a qualified pseudo-destructor /// expression. SourceLocation getColonColonLoc() const { return ColonColonLoc; } - /// \brief Retrieve the location of the '~'. + /// Retrieve the location of the '~'. SourceLocation getTildeLoc() const { return TildeLoc; } - /// \brief Retrieve the source location information for the type + /// Retrieve the source location information for the type /// being destroyed. /// /// This type-source information is available for non-dependent @@ -2294,28 +2294,28 @@ return DestroyedType.getTypeSourceInfo(); } - /// \brief In a dependent pseudo-destructor expression for which we do not + /// In a dependent pseudo-destructor expression for which we do not /// have full type information on the destroyed type, provides the name /// of the destroyed type. IdentifierInfo *getDestroyedTypeIdentifier() const { return DestroyedType.getIdentifier(); } - /// \brief Retrieve the type being destroyed. + /// Retrieve the type being destroyed. QualType getDestroyedType() const; - /// \brief Retrieve the starting location of the type being destroyed. + /// Retrieve the starting location of the type being destroyed. SourceLocation getDestroyedTypeLoc() const { return DestroyedType.getLocation(); } - /// \brief Set the name of destroyed type for a dependent pseudo-destructor + /// Set the name of destroyed type for a dependent pseudo-destructor /// expression. void setDestroyedType(IdentifierInfo *II, SourceLocation Loc) { DestroyedType = PseudoDestructorTypeStorage(II, Loc); } - /// \brief Set the destroyed type. + /// Set the destroyed type. void setDestroyedType(TypeSourceInfo *Info) { DestroyedType = PseudoDestructorTypeStorage(Info); } @@ -2331,7 +2331,7 @@ child_range children() { return child_range(&Base, &Base + 1); } }; -/// \brief A type trait used in the implementation of various C++11 and +/// A type trait used in the implementation of various C++11 and /// Library TR1 trait templates. /// /// \code @@ -2342,10 +2342,10 @@ class TypeTraitExpr final : public Expr, private llvm::TrailingObjects<TypeTraitExpr, TypeSourceInfo *> { - /// \brief The location of the type trait keyword. + /// The location of the type trait keyword. SourceLocation Loc; - /// \brief The location of the closing parenthesis. + /// The location of the closing parenthesis. SourceLocation RParenLoc; // Note: The TypeSourceInfos for the arguments are allocated after the @@ -2367,7 +2367,7 @@ friend class ASTStmtWriter; friend TrailingObjects; - /// \brief Create a new type trait expression. + /// Create a new type trait expression. static TypeTraitExpr *Create(const ASTContext &C, QualType T, SourceLocation Loc, TypeTrait Kind, ArrayRef<TypeSourceInfo *> Args, @@ -2377,7 +2377,7 @@ static TypeTraitExpr *CreateDeserialized(const ASTContext &C, unsigned NumArgs); - /// \brief Determine which type trait this expression uses. + /// Determine which type trait this expression uses. TypeTrait getTrait() const { return static_cast<TypeTrait>(TypeTraitExprBits.Kind); } @@ -2387,16 +2387,16 @@ return TypeTraitExprBits.Value; } - /// \brief Determine the number of arguments to this type trait. + /// Determine the number of arguments to this type trait. unsigned getNumArgs() const { return TypeTraitExprBits.NumArgs; } - /// \brief Retrieve the Ith argument. + /// Retrieve the Ith argument. TypeSourceInfo *getArg(unsigned I) const { assert(I < getNumArgs() && "Argument out-of-range"); return getArgs()[I]; } - /// \brief Retrieve the argument types. + /// Retrieve the argument types. ArrayRef<TypeSourceInfo *> getArgs() const { return llvm::makeArrayRef(getTrailingObjects<TypeSourceInfo *>(), getNumArgs()); @@ -2415,7 +2415,7 @@ } }; -/// \brief An Embarcadero array type trait, as used in the implementation of +/// An Embarcadero array type trait, as used in the implementation of /// __array_rank and __array_extent. /// /// Example: @@ -2424,22 +2424,22 @@ /// __array_extent(int, 1) == 20 /// \endcode class ArrayTypeTraitExpr : public Expr { - /// \brief The trait. An ArrayTypeTrait enum in MSVC compat unsigned. + /// The trait. An ArrayTypeTrait enum in MSVC compat unsigned. unsigned ATT : 2; - /// \brief The value of the type trait. Unspecified if dependent. + /// The value of the type trait. Unspecified if dependent. uint64_t Value = 0; - /// \brief The array dimension being queried, or -1 if not used. + /// The array dimension being queried, or -1 if not used. Expr *Dimension; - /// \brief The location of the type trait keyword. + /// The location of the type trait keyword. SourceLocation Loc; - /// \brief The location of the closing paren. + /// The location of the closing paren. SourceLocation RParen; - /// \brief The type being queried. + /// The type being queried. TypeSourceInfo *QueriedType = nullptr; virtual void anchor(); @@ -2486,7 +2486,7 @@ } }; -/// \brief An expression trait intrinsic. +/// An expression trait intrinsic. /// /// Example: /// \code @@ -2494,19 +2494,19 @@ /// __is_lvalue_expr(1) == false /// \endcode class ExpressionTraitExpr : public Expr { - /// \brief The trait. A ExpressionTrait enum in MSVC compatible unsigned. + /// The trait. A ExpressionTrait enum in MSVC compatible unsigned. unsigned ET : 31; - /// \brief The value of the type trait. Unspecified if dependent. + /// The value of the type trait. Unspecified if dependent. unsigned Value : 1; - /// \brief The location of the type trait keyword. + /// The location of the type trait keyword. SourceLocation Loc; - /// \brief The location of the closing paren. + /// The location of the closing paren. SourceLocation RParen; - /// \brief The expression being queried. + /// The expression being queried. Expr* QueriedExpression = nullptr; public: @@ -2546,13 +2546,13 @@ } }; -/// \brief A reference to an overloaded function set, either an +/// A reference to an overloaded function set, either an /// \c UnresolvedLookupExpr or an \c UnresolvedMemberExpr. class OverloadExpr : public Expr { - /// \brief The common name of these declarations. + /// The common name of these declarations. DeclarationNameInfo NameInfo; - /// \brief The nested-name-specifier that qualifies the name, if any. + /// The nested-name-specifier that qualifies the name, if any. NestedNameSpecifierLoc QualifierLoc; /// The results. These are undesugared, which is to say, they may @@ -2564,7 +2564,7 @@ unsigned NumResults = 0; protected: - /// \brief Whether the name includes info for explicit template + /// Whether the name includes info for explicit template /// keyword and arguments. bool HasTemplateKWAndArgsInfo = false; @@ -2580,11 +2580,11 @@ OverloadExpr(StmtClass K, EmptyShell Empty) : Expr(K, Empty) {} - /// \brief Return the optional template keyword and arguments info. + /// Return the optional template keyword and arguments info. ASTTemplateKWAndArgsInfo * getTrailingASTTemplateKWAndArgsInfo(); // defined far below. - /// \brief Return the optional template keyword and arguments info. + /// Return the optional template keyword and arguments info. const ASTTemplateKWAndArgsInfo *getTrailingASTTemplateKWAndArgsInfo() const { return const_cast<OverloadExpr *>(this) ->getTrailingASTTemplateKWAndArgsInfo(); @@ -2607,7 +2607,7 @@ bool HasFormOfMemberPointer; }; - /// \brief Finds the overloaded expression in the given expression \p E of + /// Finds the overloaded expression in the given expression \p E of /// OverloadTy. /// /// \return the expression (which must be there) and true if it has @@ -2635,7 +2635,7 @@ return Result; } - /// \brief Gets the naming class of this lookup, if any. + /// Gets the naming class of this lookup, if any. CXXRecordDecl *getNamingClass() const; using decls_iterator = UnresolvedSetImpl::iterator; @@ -2648,52 +2648,52 @@ return llvm::make_range(decls_begin(), decls_end()); } - /// \brief Gets the number of declarations in the unresolved set. + /// Gets the number of declarations in the unresolved set. unsigned getNumDecls() const { return NumResults; } - /// \brief Gets the full name info. + /// Gets the full name info. const DeclarationNameInfo &getNameInfo() const { return NameInfo; } - /// \brief Gets the name looked up. + /// Gets the name looked up. DeclarationName getName() const { return NameInfo.getName(); } - /// \brief Gets the location of the name. + /// Gets the location of the name. SourceLocation getNameLoc() const { return NameInfo.getLoc(); } - /// \brief Fetches the nested-name qualifier, if one was given. + /// Fetches the nested-name qualifier, if one was given. NestedNameSpecifier *getQualifier() const { return QualifierLoc.getNestedNameSpecifier(); } - /// \brief Fetches the nested-name qualifier with source-location + /// Fetches the nested-name qualifier with source-location /// information, if one was given. NestedNameSpecifierLoc getQualifierLoc() const { return QualifierLoc; } - /// \brief Retrieve the location of the template keyword preceding + /// Retrieve the location of the template keyword preceding /// this name, if any. SourceLocation getTemplateKeywordLoc() const { if (!HasTemplateKWAndArgsInfo) return SourceLocation(); return getTrailingASTTemplateKWAndArgsInfo()->TemplateKWLoc; } - /// \brief Retrieve the location of the left angle bracket starting the + /// Retrieve the location of the left angle bracket starting the /// explicit template argument list following the name, if any. SourceLocation getLAngleLoc() const { if (!HasTemplateKWAndArgsInfo) return SourceLocation(); return getTrailingASTTemplateKWAndArgsInfo()->LAngleLoc; } - /// \brief Retrieve the location of the right angle bracket ending the + /// Retrieve the location of the right angle bracket ending the /// explicit template argument list following the name, if any. SourceLocation getRAngleLoc() const { if (!HasTemplateKWAndArgsInfo) return SourceLocation(); return getTrailingASTTemplateKWAndArgsInfo()->RAngleLoc; } - /// \brief Determines whether the name was preceded by the template keyword. + /// Determines whether the name was preceded by the template keyword. bool hasTemplateKeyword() const { return getTemplateKeywordLoc().isValid(); } - /// \brief Determines whether this expression had explicit template arguments. + /// Determines whether this expression had explicit template arguments. bool hasExplicitTemplateArgs() const { return getLAngleLoc().isValid(); } TemplateArgumentLoc const *getTemplateArgs() const { @@ -2713,7 +2713,7 @@ return {getTemplateArgs(), getNumTemplateArgs()}; } - /// \brief Copies the template arguments into the given structure. + /// Copies the template arguments into the given structure. void copyTemplateArgumentsInto(TemplateArgumentListInfo &List) const { if (hasExplicitTemplateArgs()) getTrailingASTTemplateKWAndArgsInfo()->copyInto(getTemplateArgs(), List); @@ -2725,7 +2725,7 @@ } }; -/// \brief A reference to a name which we were able to look up during +/// A reference to a name which we were able to look up during /// parsing but could not resolve to a specific declaration. /// /// This arises in several ways: @@ -2840,7 +2840,7 @@ } }; -/// \brief A qualified reference to a name whose declaration cannot +/// A qualified reference to a name whose declaration cannot /// yet be resolved. /// /// DependentScopeDeclRefExpr is similar to DeclRefExpr in that @@ -2859,14 +2859,14 @@ private llvm::TrailingObjects<DependentScopeDeclRefExpr, ASTTemplateKWAndArgsInfo, TemplateArgumentLoc> { - /// \brief The nested-name-specifier that qualifies this unresolved + /// The nested-name-specifier that qualifies this unresolved /// declaration name. NestedNameSpecifierLoc QualifierLoc; - /// \brief The name of the entity we will be referencing. + /// The name of the entity we will be referencing. DeclarationNameInfo NameInfo; - /// \brief Whether the name includes info for explicit template + /// Whether the name includes info for explicit template /// keyword and arguments. bool HasTemplateKWAndArgsInfo; @@ -2895,42 +2895,42 @@ bool HasTemplateKWAndArgsInfo, unsigned NumTemplateArgs); - /// \brief Retrieve the name that this expression refers to. + /// Retrieve the name that this expression refers to. const DeclarationNameInfo &getNameInfo() const { return NameInfo; } - /// \brief Retrieve the name that this expression refers to. + /// Retrieve the name that this expression refers to. DeclarationName getDeclName() const { return NameInfo.getName(); } - /// \brief Retrieve the location of the name within the expression. + /// Retrieve the location of the name within the expression. /// /// For example, in "X<T>::value" this is the location of "value". SourceLocation getLocation() const { return NameInfo.getLoc(); } - /// \brief Retrieve the nested-name-specifier that qualifies the + /// 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 this + /// Retrieve the nested-name-specifier that qualifies this /// declaration. NestedNameSpecifier *getQualifier() const { return QualifierLoc.getNestedNameSpecifier(); } - /// \brief Retrieve the location of the template keyword preceding + /// Retrieve the location of the template keyword preceding /// this name, if any. SourceLocation getTemplateKeywordLoc() const { if (!HasTemplateKWAndArgsInfo) return SourceLocation(); return getTrailingObjects<ASTTemplateKWAndArgsInfo>()->TemplateKWLoc; } - /// \brief Retrieve the location of the left angle bracket starting the + /// Retrieve the location of the left angle bracket starting the /// explicit template argument list following the name, if any. SourceLocation getLAngleLoc() const { if (!HasTemplateKWAndArgsInfo) return SourceLocation(); return getTrailingObjects<ASTTemplateKWAndArgsInfo>()->LAngleLoc; } - /// \brief Retrieve the location of the right angle bracket ending the + /// Retrieve the location of the right angle bracket ending the /// explicit template argument list following the name, if any. SourceLocation getRAngleLoc() const { if (!HasTemplateKWAndArgsInfo) return SourceLocation(); @@ -2943,7 +2943,7 @@ /// Determines whether this lookup had explicit template arguments. bool hasExplicitTemplateArgs() const { return getLAngleLoc().isValid(); } - /// \brief Copies the template arguments (if present) into the given + /// Copies the template arguments (if present) into the given /// structure. void copyTemplateArgumentsInto(TemplateArgumentListInfo &List) const { if (hasExplicitTemplateArgs()) @@ -3066,7 +3066,7 @@ child_range children() { return child_range(&SubExpr, &SubExpr + 1); } }; -/// \brief Describes an explicit type conversion that uses functional +/// Describes an explicit type conversion that uses functional /// notion but could not be resolved because one or more arguments are /// type-dependent. /// @@ -3093,16 +3093,16 @@ friend class ASTStmtReader; friend TrailingObjects; - /// \brief The type being constructed. + /// The type being constructed. TypeSourceInfo *Type = nullptr; - /// \brief The location of the left parentheses ('('). + /// The location of the left parentheses ('('). SourceLocation LParenLoc; - /// \brief The location of the right parentheses (')'). + /// The location of the right parentheses (')'). SourceLocation RParenLoc; - /// \brief The number of arguments used to construct the type. + /// The number of arguments used to construct the type. unsigned NumArgs; CXXUnresolvedConstructExpr(TypeSourceInfo *Type, @@ -3123,20 +3123,20 @@ static CXXUnresolvedConstructExpr *CreateEmpty(const ASTContext &C, unsigned NumArgs); - /// \brief Retrieve the type that is being constructed, as specified + /// Retrieve the type that is being constructed, as specified /// in the source code. QualType getTypeAsWritten() const { return Type->getType(); } - /// \brief Retrieve the type source information for the type being + /// Retrieve the type source information for the type being /// constructed. TypeSourceInfo *getTypeSourceInfo() const { return Type; } - /// \brief Retrieve the location of the left parentheses ('(') that + /// Retrieve the location of the left parentheses ('(') that /// precedes the argument list. SourceLocation getLParenLoc() const { return LParenLoc; } void setLParenLoc(SourceLocation L) { LParenLoc = L; } - /// \brief Retrieve the location of the right parentheses (')') that + /// Retrieve the location of the right parentheses (')') that /// follows the argument list. SourceLocation getRParenLoc() const { return RParenLoc; } void setRParenLoc(SourceLocation L) { RParenLoc = L; } @@ -3146,7 +3146,7 @@ /// an InitListExpr. bool isListInitialization() const { return LParenLoc.isInvalid(); } - /// \brief Retrieve the number of arguments. + /// Retrieve the number of arguments. unsigned arg_size() const { return NumArgs; } using arg_iterator = Expr **; @@ -3195,7 +3195,7 @@ } }; -/// \brief Represents a C++ member access expression where the actual +/// Represents a C++ member access expression where the actual /// member referenced could not be resolved because the base /// expression or the member name was dependent. /// @@ -3207,29 +3207,29 @@ private llvm::TrailingObjects<CXXDependentScopeMemberExpr, ASTTemplateKWAndArgsInfo, TemplateArgumentLoc> { - /// \brief The expression for the base pointer or class reference, + /// The expression for the base pointer or class reference, /// e.g., the \c x in x.f. Can be null in implicit accesses. Stmt *Base; - /// \brief The type of the base expression. Never null, even for + /// The type of the base expression. Never null, even for /// implicit accesses. QualType BaseType; - /// \brief Whether this member expression used the '->' operator or + /// Whether this member expression used the '->' operator or /// the '.' operator. bool IsArrow : 1; - /// \brief Whether this member expression has info for explicit template + /// Whether this member expression has info for explicit template /// keyword and arguments. bool HasTemplateKWAndArgsInfo : 1; - /// \brief The location of the '->' or '.' operator. + /// The location of the '->' or '.' operator. SourceLocation OperatorLoc; - /// \brief The nested-name-specifier that precedes the member name, if any. + /// The nested-name-specifier that precedes the member name, if any. NestedNameSpecifierLoc QualifierLoc; - /// \brief In a qualified member access expression such as t->Base::f, this + /// In a qualified member access expression such as t->Base::f, this /// member stores the resolves of name lookup in the context of the member /// access expression, to be used at instantiation time. /// @@ -3238,7 +3238,7 @@ /// the CXXDependentScopeMemberExpr, to save space in the common case. NamedDecl *FirstQualifierFoundInScope; - /// \brief The member to which this member expression refers, which + /// The member to which this member expression refers, which /// can be name, overloaded operator, or destructor. /// /// FIXME: could also be a template-id @@ -3280,12 +3280,12 @@ CreateEmpty(const ASTContext &C, bool HasTemplateKWAndArgsInfo, unsigned NumTemplateArgs); - /// \brief True if this is an implicit access, i.e. one in which the + /// True if this is an implicit access, i.e. one in which the /// member being accessed was not written in the source. The source /// location of the operator is invalid in this case. bool isImplicitAccess() const; - /// \brief Retrieve the base object of this member expressions, + /// Retrieve the base object of this member expressions, /// e.g., the \c x in \c x.m. Expr *getBase() const { assert(!isImplicitAccess()); @@ -3294,24 +3294,24 @@ QualType getBaseType() const { return BaseType; } - /// \brief Determine whether this member expression used the '->' + /// Determine whether this member expression used the '->' /// operator; otherwise, it used the '.' operator. bool isArrow() const { return IsArrow; } - /// \brief Retrieve the location of the '->' or '.' operator. + /// Retrieve the location of the '->' or '.' operator. SourceLocation getOperatorLoc() const { return OperatorLoc; } - /// \brief Retrieve the nested-name-specifier that qualifies the member + /// Retrieve the nested-name-specifier that qualifies the member /// name. NestedNameSpecifier *getQualifier() const { return QualifierLoc.getNestedNameSpecifier(); } - /// \brief Retrieve the nested-name-specifier that qualifies the member + /// Retrieve the nested-name-specifier that qualifies the member /// name, with source location information. NestedNameSpecifierLoc getQualifierLoc() const { return QualifierLoc; } - /// \brief Retrieve the first part of the nested-name-specifier that was + /// Retrieve the first part of the nested-name-specifier that was /// found in the scope of the member access expression when the member access /// was initially parsed. /// @@ -3326,35 +3326,35 @@ return FirstQualifierFoundInScope; } - /// \brief Retrieve the name of the member that this expression + /// Retrieve the name of the member that this expression /// refers to. const DeclarationNameInfo &getMemberNameInfo() const { return MemberNameInfo; } - /// \brief Retrieve the name of the member that this expression + /// Retrieve the name of the member that this expression /// refers to. DeclarationName getMember() const { return MemberNameInfo.getName(); } - // \brief Retrieve the location of the name of the member that this + // Retrieve the location of the name of the member that this // expression refers to. SourceLocation getMemberLoc() const { return MemberNameInfo.getLoc(); } - /// \brief Retrieve the location of the template keyword preceding the + /// Retrieve the location of the template keyword preceding the /// member name, if any. SourceLocation getTemplateKeywordLoc() const { if (!HasTemplateKWAndArgsInfo) return SourceLocation(); return getTrailingObjects<ASTTemplateKWAndArgsInfo>()->TemplateKWLoc; } - /// \brief Retrieve the location of the left angle bracket starting the + /// Retrieve the location of the left angle bracket starting the /// explicit template argument list following the member name, if any. SourceLocation getLAngleLoc() const { if (!HasTemplateKWAndArgsInfo) return SourceLocation(); return getTrailingObjects<ASTTemplateKWAndArgsInfo>()->LAngleLoc; } - /// \brief Retrieve the location of the right angle bracket ending the + /// Retrieve the location of the right angle bracket ending the /// explicit template argument list following the member name, if any. SourceLocation getRAngleLoc() const { if (!HasTemplateKWAndArgsInfo) return SourceLocation(); @@ -3364,11 +3364,11 @@ /// Determines whether the member name was preceded by the template keyword. bool hasTemplateKeyword() const { return getTemplateKeywordLoc().isValid(); } - /// \brief Determines whether this member expression actually had a C++ + /// Determines whether this member expression actually had a C++ /// template argument list explicitly specified, e.g., x.f<int>. bool hasExplicitTemplateArgs() const { return getLAngleLoc().isValid(); } - /// \brief Copies the template arguments (if present) into the given + /// Copies the template arguments (if present) into the given /// structure. void copyTemplateArgumentsInto(TemplateArgumentListInfo &List) const { if (hasExplicitTemplateArgs()) @@ -3376,7 +3376,7 @@ getTrailingObjects<TemplateArgumentLoc>(), List); } - /// \brief Retrieve the template arguments provided as part of this + /// Retrieve the template arguments provided as part of this /// template-id. const TemplateArgumentLoc *getTemplateArgs() const { if (!hasExplicitTemplateArgs()) @@ -3385,7 +3385,7 @@ return getTrailingObjects<TemplateArgumentLoc>(); } - /// \brief Retrieve the number of template arguments provided as part of this + /// Retrieve the number of template arguments provided as part of this /// template-id. unsigned getNumTemplateArgs() const { if (!hasExplicitTemplateArgs()) @@ -3424,7 +3424,7 @@ } }; -/// \brief Represents a C++ member access expression for which lookup +/// Represents a C++ member access expression for which lookup /// produced a set of overloaded functions. /// /// The member access may be explicit or implicit: @@ -3447,24 +3447,24 @@ friend class OverloadExpr; friend TrailingObjects; - /// \brief Whether this member expression used the '->' operator or + /// Whether this member expression used the '->' operator or /// the '.' operator. bool IsArrow : 1; - /// \brief Whether the lookup results contain an unresolved using + /// Whether the lookup results contain an unresolved using /// declaration. bool HasUnresolvedUsing : 1; - /// \brief The expression for the base pointer or class reference, + /// The expression for the base pointer or class reference, /// e.g., the \c x in x.f. /// /// This can be null if this is an 'unbased' member expression. Stmt *Base = nullptr; - /// \brief The type of the base expression; never null. + /// The type of the base expression; never null. QualType BaseType; - /// \brief The location of the '->' or '.' operator. + /// The location of the '->' or '.' operator. SourceLocation OperatorLoc; UnresolvedMemberExpr(const ASTContext &C, bool HasUnresolvedUsing, @@ -3499,13 +3499,13 @@ CreateEmpty(const ASTContext &C, bool HasTemplateKWAndArgsInfo, unsigned NumTemplateArgs); - /// \brief True if this is an implicit access, i.e., one in which the + /// True if this is an implicit access, i.e., one in which the /// member being accessed was not written in the source. /// /// The source location of the operator is invalid in this case. bool isImplicitAccess() const; - /// \brief Retrieve the base object of this member expressions, + /// Retrieve the base object of this member expressions, /// e.g., the \c x in \c x.m. Expr *getBase() { assert(!isImplicitAccess()); @@ -3518,33 +3518,33 @@ QualType getBaseType() const { return BaseType; } - /// \brief Determine whether the lookup results contain an unresolved using + /// Determine whether the lookup results contain an unresolved using /// declaration. bool hasUnresolvedUsing() const { return HasUnresolvedUsing; } - /// \brief Determine whether this member expression used the '->' + /// Determine whether this member expression used the '->' /// operator; otherwise, it used the '.' operator. bool isArrow() const { return IsArrow; } - /// \brief Retrieve the location of the '->' or '.' operator. + /// Retrieve the location of the '->' or '.' operator. SourceLocation getOperatorLoc() const { return OperatorLoc; } - /// \brief Retrieve the naming class of this lookup. + /// Retrieve the naming class of this lookup. CXXRecordDecl *getNamingClass() const; - /// \brief Retrieve the full name info for the member that this expression + /// Retrieve the full name info for the member that this expression /// refers to. const DeclarationNameInfo &getMemberNameInfo() const { return getNameInfo(); } - /// \brief Retrieve the name of the member that this expression + /// Retrieve the name of the member that this expression /// refers to. DeclarationName getMemberName() const { return getName(); } - // \brief Retrieve the location of the name of the member that this + // Retrieve the location of the name of the member that this // expression refers to. SourceLocation getMemberLoc() const { return getNameLoc(); } - // \brief Return the preferred location (the member name) for the arrow when + // Return the preferred location (the member name) for the arrow when // diagnosing a problem with this expression. SourceLocation getExprLoc() const LLVM_READONLY { return getMemberLoc(); } @@ -3596,7 +3596,7 @@ ->getTrailingObjects<TemplateArgumentLoc>(); } -/// \brief Represents a C++11 noexcept expression (C++ [expr.unary.noexcept]). +/// Represents a C++11 noexcept expression (C++ [expr.unary.noexcept]). /// /// The noexcept expression tests whether a given expression might throw. Its /// result is a boolean constant. @@ -3635,7 +3635,7 @@ child_range children() { return child_range(&Operand, &Operand + 1); } }; -/// \brief Represents a C++11 pack expansion that produces a sequence of +/// Represents a C++11 pack expansion that produces a sequence of /// expressions. /// /// A pack expansion expression contains a pattern (which itself is an @@ -3658,7 +3658,7 @@ SourceLocation EllipsisLoc; - /// \brief The number of expansions that will be produced by this pack + /// The number of expansions that will be produced by this pack /// expansion expression, if known. /// /// When zero, the number of expansions is not known. Otherwise, this value @@ -3680,17 +3680,17 @@ PackExpansionExpr(EmptyShell Empty) : Expr(PackExpansionExprClass, Empty) {} - /// \brief Retrieve the pattern of the pack expansion. + /// Retrieve the pattern of the pack expansion. Expr *getPattern() { return reinterpret_cast<Expr *>(Pattern); } - /// \brief Retrieve the pattern of the pack expansion. + /// Retrieve the pattern of the pack expansion. const Expr *getPattern() const { return reinterpret_cast<Expr *>(Pattern); } - /// \brief Retrieve the location of the ellipsis that describes this pack + /// Retrieve the location of the ellipsis that describes this pack /// expansion. SourceLocation getEllipsisLoc() const { return EllipsisLoc; } - /// \brief Determine the number of expansions that will be produced when + /// Determine the number of expansions that will be produced when /// this pack expansion is instantiated, if already known. Optional<unsigned> getNumExpansions() const { if (NumExpansions) @@ -3715,7 +3715,7 @@ } }; -/// \brief Represents an expression that computes the length of a parameter +/// Represents an expression that computes the length of a parameter /// pack. /// /// \code @@ -3731,16 +3731,16 @@ friend class ASTStmtWriter; friend TrailingObjects; - /// \brief The location of the \c sizeof keyword. + /// The location of the \c sizeof keyword. SourceLocation OperatorLoc; - /// \brief The location of the name of the parameter pack. + /// The location of the name of the parameter pack. SourceLocation PackLoc; - /// \brief The location of the closing parenthesis. + /// The location of the closing parenthesis. SourceLocation RParenLoc; - /// \brief The length of the parameter pack, if known. + /// The length of the parameter pack, if known. /// /// When this expression is not value-dependent, this is the length of /// the pack. When the expression was parsed rather than instantiated @@ -3752,10 +3752,10 @@ /// and this is the length of that array. unsigned Length; - /// \brief The parameter pack. + /// The parameter pack. NamedDecl *Pack = nullptr; - /// \brief Create an expression that computes the length of + /// Create an expression that computes the length of /// the given parameter pack. SizeOfPackExpr(QualType SizeType, SourceLocation OperatorLoc, NamedDecl *Pack, SourceLocation PackLoc, SourceLocation RParenLoc, @@ -3772,7 +3772,7 @@ std::uninitialized_copy(PartialArgs.begin(), PartialArgs.end(), Args); } - /// \brief Create an empty expression. + /// Create an empty expression. SizeOfPackExpr(EmptyShell Empty, unsigned NumPartialArgs) : Expr(SizeOfPackExprClass, Empty), Length(NumPartialArgs) {} @@ -3785,19 +3785,19 @@ static SizeOfPackExpr *CreateDeserialized(ASTContext &Context, unsigned NumPartialArgs); - /// \brief Determine the location of the 'sizeof' keyword. + /// Determine the location of the 'sizeof' keyword. SourceLocation getOperatorLoc() const { return OperatorLoc; } - /// \brief Determine the location of the parameter pack. + /// Determine the location of the parameter pack. SourceLocation getPackLoc() const { return PackLoc; } - /// \brief Determine the location of the right parenthesis. + /// Determine the location of the right parenthesis. SourceLocation getRParenLoc() const { return RParenLoc; } - /// \brief Retrieve the parameter pack. + /// Retrieve the parameter pack. NamedDecl *getPack() const { return Pack; } - /// \brief Retrieve the length of the parameter pack. + /// Retrieve the length of the parameter pack. /// /// This routine may only be invoked when the expression is not /// value-dependent. @@ -3807,7 +3807,7 @@ return Length; } - /// \brief Determine whether this represents a partially-substituted sizeof... + /// Determine whether this represents a partially-substituted sizeof... /// expression, such as is produced for: /// /// template<typename ...Ts> using X = int[sizeof...(Ts)]; @@ -3816,7 +3816,7 @@ return isValueDependent() && Length; } - /// \brief Get + /// Get ArrayRef<TemplateArgument> getPartialArguments() const { assert(isPartiallySubstituted()); const auto *Args = getTrailingObjects<TemplateArgument>(); @@ -3836,19 +3836,19 @@ } }; -/// \brief Represents a reference to a non-type template parameter +/// Represents a reference to a non-type template parameter /// that has been substituted with a template argument. class SubstNonTypeTemplateParmExpr : public Expr { friend class ASTReader; friend class ASTStmtReader; - /// \brief The replaced parameter. + /// The replaced parameter. NonTypeTemplateParmDecl *Param; - /// \brief The replacement expression. + /// The replacement expression. Stmt *Replacement; - /// \brief The location of the non-type template parameter reference. + /// The location of the non-type template parameter reference. SourceLocation NameLoc; explicit SubstNonTypeTemplateParmExpr(EmptyShell Empty) @@ -3882,7 +3882,7 @@ child_range children() { return child_range(&Replacement, &Replacement+1); } }; -/// \brief Represents a reference to a non-type template parameter pack that +/// Represents a reference to a non-type template parameter pack that /// has been substituted with a non-template argument pack. /// /// When a pack expansion in the source code contains multiple parameter packs @@ -3898,17 +3898,17 @@ friend class ASTReader; friend class ASTStmtReader; - /// \brief The non-type template parameter pack itself. + /// The non-type template parameter pack itself. NonTypeTemplateParmDecl *Param; - /// \brief A pointer to the set of template arguments that this + /// A pointer to the set of template arguments that this /// parameter pack is instantiated with. const TemplateArgument *Arguments; - /// \brief The number of template arguments in \c Arguments. + /// The number of template arguments in \c Arguments. unsigned NumArguments; - /// \brief The location of the non-type template parameter pack reference. + /// The location of the non-type template parameter pack reference. SourceLocation NameLoc; explicit SubstNonTypeTemplateParmPackExpr(EmptyShell Empty) @@ -3921,13 +3921,13 @@ SourceLocation NameLoc, const TemplateArgument &ArgPack); - /// \brief Retrieve the non-type template parameter pack being substituted. + /// Retrieve the non-type template parameter pack being substituted. NonTypeTemplateParmDecl *getParameterPack() const { return Param; } - /// \brief Retrieve the location of the parameter pack name. + /// Retrieve the location of the parameter pack name. SourceLocation getParameterPackLocation() const { return NameLoc; } - /// \brief Retrieve the template argument pack containing the substituted + /// Retrieve the template argument pack containing the substituted /// template arguments. TemplateArgument getArgumentPack() const; @@ -3944,7 +3944,7 @@ } }; -/// \brief Represents a reference to a function parameter pack that has been +/// Represents a reference to a function parameter pack that has been /// substituted but not yet expanded. /// /// When a pack expansion contains multiple parameter packs at different levels, @@ -3965,13 +3965,13 @@ friend class ASTStmtReader; friend TrailingObjects; - /// \brief The function parameter pack which was referenced. + /// The function parameter pack which was referenced. ParmVarDecl *ParamPack; - /// \brief The location of the function parameter pack reference. + /// The location of the function parameter pack reference. SourceLocation NameLoc; - /// \brief The number of expansions of this pack. + /// The number of expansions of this pack. unsigned NumParameters; FunctionParmPackExpr(QualType T, ParmVarDecl *ParamPack, @@ -3986,22 +3986,22 @@ static FunctionParmPackExpr *CreateEmpty(const ASTContext &Context, unsigned NumParams); - /// \brief Get the parameter pack which this expression refers to. + /// Get the parameter pack which this expression refers to. ParmVarDecl *getParameterPack() const { return ParamPack; } - /// \brief Get the location of the parameter pack. + /// Get the location of the parameter pack. SourceLocation getParameterPackLocation() const { return NameLoc; } - /// \brief Iterators over the parameters which the parameter pack expanded + /// Iterators over the parameters which the parameter pack expanded /// into. using iterator = ParmVarDecl * const *; iterator begin() const { return getTrailingObjects<ParmVarDecl *>(); } iterator end() const { return begin() + NumParameters; } - /// \brief Get the number of parameters in this parameter pack. + /// Get the number of parameters in this parameter pack. unsigned getNumExpansions() const { return NumParameters; } - /// \brief Get an expansion of the parameter pack by index. + /// Get an expansion of the parameter pack by index. ParmVarDecl *getExpansion(unsigned I) const { return begin()[I]; } SourceLocation getLocStart() const LLVM_READONLY { return NameLoc; } @@ -4016,7 +4016,7 @@ } }; -/// \brief Represents a prvalue temporary that is written into memory so that +/// Represents a prvalue temporary that is written into memory so that /// a reference can bind to it. /// /// Prvalue expressions are materialized when they need to have an address @@ -4042,11 +4042,11 @@ friend class ASTStmtWriter; struct ExtraState { - /// \brief The temporary-generating expression whose value will be + /// The temporary-generating expression whose value will be /// materialized. Stmt *Temporary; - /// \brief The declaration which lifetime-extended this reference, if any. + /// The declaration which lifetime-extended this reference, if any. /// Either a VarDecl, or (for a ctor-initializer) a FieldDecl. const ValueDecl *ExtendingDecl; @@ -4075,11 +4075,11 @@ : State.get<ExtraState *>()->Temporary; } - /// \brief Retrieve the temporary-generating subexpression whose value will + /// Retrieve the temporary-generating subexpression whose value will /// be materialized into a glvalue. Expr *GetTemporaryExpr() const { return static_cast<Expr *>(getTemporary()); } - /// \brief Retrieve the storage duration for the materialized temporary. + /// Retrieve the storage duration for the materialized temporary. StorageDuration getStorageDuration() const { const ValueDecl *ExtendingDecl = getExtendingDecl(); if (!ExtendingDecl) @@ -4097,7 +4097,7 @@ return cast<VarDecl>(ExtendingDecl)->getStorageDuration(); } - /// \brief Get the declaration which triggered the lifetime-extension of this + /// Get the declaration which triggered the lifetime-extension of this /// temporary, if any. const ValueDecl *getExtendingDecl() const { return State.is<Stmt *>() ? nullptr @@ -4110,7 +4110,7 @@ return State.is<Stmt *>() ? 0 : State.get<ExtraState *>()->ManglingNumber; } - /// \brief Determine whether this materialized temporary is bound to an + /// Determine whether this materialized temporary is bound to an /// lvalue reference; otherwise, it's bound to an rvalue reference. bool isBoundToLvalueReference() const { return getValueKind() == VK_LValue; @@ -4138,7 +4138,7 @@ } }; -/// \brief Represents a folding of a pack over an operator. +/// Represents a folding of a pack over an operator. /// /// This expression is always dependent and represents a pack expansion of the /// forms: @@ -4207,7 +4207,7 @@ child_range children() { return child_range(SubExprs, SubExprs + 2); } }; -/// \brief Represents an expression that might suspend coroutine execution; +/// Represents an expression that might suspend coroutine execution; /// either a co_await or co_yield expression. /// /// Evaluation of this expression first evaluates its 'ready' expression. If @@ -4271,7 +4271,7 @@ return static_cast<Expr*>(SubExprs[SubExpr::Common]); } - /// \brief getOpaqueValue - Return the opaque value placeholder. + /// getOpaqueValue - Return the opaque value placeholder. OpaqueValueExpr *getOpaqueValue() const { return OpaqueValue; } Expr *getReadyExpr() const { @@ -4304,7 +4304,7 @@ } }; -/// \brief Represents a 'co_await' expression. +/// Represents a 'co_await' expression. class CoawaitExpr : public CoroutineSuspendExpr { friend class ASTStmtReader; @@ -4339,7 +4339,7 @@ } }; -/// \brief Represents a 'co_await' expression while the type of the promise +/// Represents a 'co_await' expression while the type of the promise /// is dependent. class DependentCoawaitExpr : public Expr { friend class ASTStmtReader; @@ -4387,7 +4387,7 @@ } }; -/// \brief Represents a 'co_yield' expression. +/// Represents a 'co_yield' expression. class CoyieldExpr : public CoroutineSuspendExpr { friend class ASTStmtReader; Index: cfe/trunk/include/clang/AST/ExprObjC.h =================================================================== --- cfe/trunk/include/clang/AST/ExprObjC.h +++ cfe/trunk/include/clang/AST/ExprObjC.h @@ -198,10 +198,10 @@ SourceLocation getLocEnd() const LLVM_READONLY { return Range.getEnd(); } SourceRange getSourceRange() const LLVM_READONLY { return Range; } - /// \brief Retrieve elements of array of literals. + /// Retrieve elements of array of literals. Expr **getElements() { return getTrailingObjects<Expr *>(); } - /// \brief Retrieve elements of array of literals. + /// Retrieve elements of array of literals. const Expr * const *getElements() const { return getTrailingObjects<Expr *>(); } @@ -234,23 +234,23 @@ } }; -/// \brief An element in an Objective-C dictionary literal. +/// An element in an Objective-C dictionary literal. /// struct ObjCDictionaryElement { - /// \brief The key for the dictionary element. + /// The key for the dictionary element. Expr *Key; - /// \brief The value of the dictionary element. + /// The value of the dictionary element. Expr *Value; - /// \brief The location of the ellipsis, if this is a pack expansion. + /// The location of the ellipsis, if this is a pack expansion. SourceLocation EllipsisLoc; - /// \brief The number of elements this pack expansion will expand to, if + /// The number of elements this pack expansion will expand to, if /// this is a pack expansion and is known. Optional<unsigned> NumExpansions; - /// \brief Determines whether this dictionary element is a pack expansion. + /// Determines whether this dictionary element is a pack expansion. bool isPackExpansion() const { return EllipsisLoc.isValid(); } }; @@ -264,21 +264,21 @@ namespace clang { -/// \brief Internal struct for storing Key/value pair. +/// Internal struct for storing Key/value pair. struct ObjCDictionaryLiteral_KeyValuePair { Expr *Key; Expr *Value; }; -/// \brief Internal struct to describes an element that is a pack +/// Internal struct to describes an element that is a pack /// expansion, used if any of the elements in the dictionary literal /// are pack expansions. struct ObjCDictionaryLiteral_ExpansionData { - /// \brief The location of the ellipsis, if this element is a pack + /// The location of the ellipsis, if this element is a pack /// expansion. SourceLocation EllipsisLoc; - /// \brief If non-zero, the number of elements that this pack + /// If non-zero, the number of elements that this pack /// expansion will expand to (+1). unsigned NumExpansionsPlusOne; }; @@ -290,10 +290,10 @@ private llvm::TrailingObjects<ObjCDictionaryLiteral, ObjCDictionaryLiteral_KeyValuePair, ObjCDictionaryLiteral_ExpansionData> { - /// \brief The number of elements in this dictionary literal. + /// The number of elements in this dictionary literal. unsigned NumElements : 31; - /// \brief Determine whether this dictionary literal has any pack expansions. + /// Determine whether this dictionary literal has any pack expansions. /// /// If the dictionary literal has pack expansions, then there will /// be an array of pack expansion data following the array of @@ -582,7 +582,7 @@ /// the pointer is an ObjCPropertyDecl and Setter is always null. llvm::PointerIntPair<NamedDecl *, 1, bool> PropertyOrGetter; - /// \brief Indicates whether the property reference will result in a message + /// Indicates whether the property reference will result in a message /// to the getter, the setter, or both. /// This applies to both implicit and explicit property references. enum MethodRefFlags { @@ -591,7 +591,7 @@ MethodRef_Setter = 0x2 }; - /// \brief Contains the Setter method pointer and MethodRefFlags bit flags. + /// Contains the Setter method pointer and MethodRefFlags bit flags. llvm::PointerIntPair<ObjCMethodDecl *, 2, unsigned> SetterAndMethodRefFlags; // FIXME: Maybe we should store the property identifier here, @@ -601,7 +601,7 @@ SourceLocation IdLoc; - /// \brief When the receiver in property access is 'super', this is + /// When the receiver in property access is 'super', this is /// the location of the 'super' keyword. When it's an interface, /// this is that interface. SourceLocation ReceiverLoc; @@ -694,14 +694,14 @@ return getExplicitProperty()->getSetterName(); } - /// \brief True if the property reference will result in a message to the + /// True if the property reference will result in a message to the /// getter. /// This applies to both implicit and explicit property references. bool isMessagingGetter() const { return SetterAndMethodRefFlags.getInt() & MethodRef_Getter; } - /// \brief True if the property reference will result in a message to the + /// True if the property reference will result in a message to the /// setter. /// This applies to both implicit and explicit property references. bool isMessagingSetter() const { @@ -874,7 +874,7 @@ friend class ASTStmtReader; }; -/// \brief An expression that sends a message to the given Objective-C +/// An expression that sends a message to the given Objective-C /// object or class. /// /// The following contains two message send expressions: @@ -903,47 +903,47 @@ class ObjCMessageExpr final : public Expr, private llvm::TrailingObjects<ObjCMessageExpr, void *, SourceLocation> { - /// \brief Stores either the selector that this message is sending + /// Stores either the selector that this message is sending /// to (when \c HasMethod is zero) or an \c ObjCMethodDecl pointer /// referring to the method that we type-checked against. uintptr_t SelectorOrMethod = 0; enum { NumArgsBitWidth = 16 }; - /// \brief The number of arguments in the message send, not + /// The number of arguments in the message send, not /// including the receiver. unsigned NumArgs : NumArgsBitWidth; - /// \brief The kind of message send this is, which is one of the + /// The kind of message send this is, which is one of the /// ReceiverKind values. /// /// We pad this out to a byte to avoid excessive masking and shifting. unsigned Kind : 8; - /// \brief Whether we have an actual method prototype in \c + /// Whether we have an actual method prototype in \c /// SelectorOrMethod. /// /// When non-zero, we have a method declaration; otherwise, we just /// have a selector. unsigned HasMethod : 1; - /// \brief Whether this message send is a "delegate init call", + /// Whether this message send is a "delegate init call", /// i.e. a call of an init method on self from within an init method. unsigned IsDelegateInitCall : 1; - /// \brief Whether this message send was implicitly generated by + /// Whether this message send was implicitly generated by /// the implementation rather than explicitly written by the user. unsigned IsImplicit : 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 When the message expression is a send to 'super', this is + /// When the message expression is a send to 'super', this is /// the location of the 'super' keyword. SourceLocation SuperLoc; - /// \brief The source locations of the open and close square + /// The source locations of the open and close square /// brackets ('[' and ']', respectively). SourceLocation LBracLoc, RBracLoc; @@ -997,10 +997,10 @@ ArrayRef<SourceLocation> SelLocs, SelectorLocationsKind SelLocsK); - /// \brief Retrieve the pointer value of the message receiver. + /// Retrieve the pointer value of the message receiver. void *getReceiverPointer() const { return *getTrailingObjects<void *>(); } - /// \brief Set the pointer value of the message receiver. + /// Set the pointer value of the message receiver. void setReceiverPointer(void *Value) { *getTrailingObjects<void *>() = Value; } @@ -1013,7 +1013,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 getTrailingObjects<SourceLocation>(); @@ -1022,7 +1022,7 @@ return getTrailingObjects<SourceLocation>(); } - /// \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()) @@ -1045,22 +1045,22 @@ friend class ASTStmtWriter; friend TrailingObjects; - /// \brief The kind of receiver this message is sending to. + /// The kind of receiver this message is sending to. enum ReceiverKind { - /// \brief The receiver is a class. + /// The receiver is a class. Class = 0, - /// \brief The receiver is an object instance. + /// The receiver is an object instance. Instance, - /// \brief The receiver is a superclass. + /// The receiver is a superclass. SuperClass, - /// \brief The receiver is the instance of the superclass object. + /// The receiver is the instance of the superclass object. SuperInstance }; - /// \brief Create a message send to super. + /// Create a message send to super. /// /// \param Context The ASTContext in which this expression will be created. /// @@ -1098,7 +1098,7 @@ SourceLocation RBracLoc, bool isImplicit); - /// \brief Create a class message send. + /// Create a class message send. /// /// \param Context The ASTContext in which this expression will be created. /// @@ -1132,7 +1132,7 @@ SourceLocation RBracLoc, bool isImplicit); - /// \brief Create an instance message send. + /// Create an instance message send. /// /// \param Context The ASTContext in which this expression will be created. /// @@ -1166,7 +1166,7 @@ SourceLocation RBracLoc, bool isImplicit); - /// \brief Create an empty Objective-C message expression, to be + /// Create an empty Objective-C message expression, to be /// filled in by subsequent calls. /// /// \param Context The context in which the message send will be created. @@ -1177,31 +1177,31 @@ unsigned NumArgs, unsigned NumStoredSelLocs); - /// \brief Indicates whether the message send was implicitly + /// Indicates whether the message send was implicitly /// generated by the implementation. If false, it was written explicitly /// in the source code. bool isImplicit() const { return IsImplicit; } - /// \brief Determine the kind of receiver that this message is being + /// Determine the kind of receiver that this message is being /// sent to. ReceiverKind getReceiverKind() const { return (ReceiverKind)Kind; } - /// \brief Source range of the receiver. + /// Source range of the receiver. SourceRange getReceiverRange() const; - /// \brief Determine whether this is an instance message to either a + /// Determine whether this is an instance message to either a /// computed object or to super. bool isInstanceMessage() const { return getReceiverKind() == Instance || getReceiverKind() == SuperInstance; } - /// \brief Determine whether this is an class message to either a + /// Determine whether this is an class message to either a /// specified class or to super. bool isClassMessage() const { return getReceiverKind() == Class || getReceiverKind() == SuperClass; } - /// \brief Returns the object expression (receiver) for an instance message, + /// Returns the object expression (receiver) for an instance message, /// or null for a message that is not an instance message. Expr *getInstanceReceiver() { if (getReceiverKind() == Instance) @@ -1213,14 +1213,14 @@ return const_cast<ObjCMessageExpr*>(this)->getInstanceReceiver(); } - /// \brief Turn this message send into an instance message that + /// Turn this message send into an instance message that /// computes the receiver object with the given expression. void setInstanceReceiver(Expr *rec) { Kind = Instance; setReceiverPointer(rec); } - /// \brief Returns the type of a class message send, or NULL if the + /// Returns the type of a class message send, or NULL if the /// message is not a class message. QualType getClassReceiver() const { if (TypeSourceInfo *TSInfo = getClassReceiverTypeInfo()) @@ -1229,7 +1229,7 @@ return {}; } - /// \brief Returns a type-source information of a class message + /// Returns a type-source information of a class message /// send, or nullptr if the message is not a class message. TypeSourceInfo *getClassReceiverTypeInfo() const { if (getReceiverKind() == Class) @@ -1242,7 +1242,7 @@ setReceiverPointer(TSInfo); } - /// \brief Retrieve the location of the 'super' keyword for a class + /// Retrieve the location of the 'super' keyword for a class /// or instance message to 'super', otherwise an invalid source location. SourceLocation getSuperLoc() const { if (getReceiverKind() == SuperInstance || getReceiverKind() == SuperClass) @@ -1251,7 +1251,7 @@ return SourceLocation(); } - /// \brief Retrieve the receiver type to which this message is being directed. + /// Retrieve the receiver type to which this message is being directed. /// /// This routine cross-cuts all of the different kinds of message /// sends to determine what the underlying (statically known) type @@ -1262,7 +1262,7 @@ /// \returns The type of the receiver. QualType getReceiverType() const; - /// \brief Retrieve the Objective-C interface to which this message + /// Retrieve the Objective-C interface to which this message /// is being directed, if known. /// /// This routine cross-cuts all of the different kinds of message @@ -1274,7 +1274,7 @@ /// \returns The Objective-C interface if known, otherwise nullptr. ObjCInterfaceDecl *getReceiverInterface() const; - /// \brief Retrieve the type referred to by 'super'. + /// Retrieve the type referred to by 'super'. /// /// The returned type will either be an ObjCInterfaceType (for an /// class message to super) or an ObjCObjectPointerType that refers @@ -1323,11 +1323,11 @@ return getSelector().getMethodFamily(); } - /// \brief Return the number of actual arguments in this message, + /// Return the number of actual arguments in this message, /// not counting the receiver. unsigned getNumArgs() const { return NumArgs; } - /// \brief Retrieve the arguments to this message, not including the + /// Retrieve the arguments to this message, not including the /// receiver. Expr **getArgs() { return reinterpret_cast<Expr **>(getTrailingObjects<void *>() + 1); @@ -1455,7 +1455,7 @@ /*ContainsUnexpandedParameterPack=*/false), Base(base), IsaMemberLoc(l), OpLoc(oploc), IsArrow(isarrow) {} - /// \brief Build an empty expression. + /// Build an empty expression. explicit ObjCIsaExpr(EmptyShell Empty) : Expr(ObjCIsaExprClass, Empty) {} void setBase(Expr *E) { Base = E; } @@ -1563,7 +1563,7 @@ } }; -/// \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 @@ -1589,21 +1589,21 @@ CK, Operand, 0, TSInfo), LParenLoc(LParenLoc), BridgeKeywordLoc(BridgeKeywordLoc), Kind(Kind) {} - /// \brief Construct an empty Objective-C bridged cast. + /// Construct an empty Objective-C bridged cast. explicit ObjCBridgedCastExpr(EmptyShell Shell) : ExplicitCastExpr(ObjCBridgedCastExprClass, Shell, 0) {} SourceLocation getLParenLoc() const { return LParenLoc; } - /// \brief Determine which kind of bridge is being performed via this cast. + /// Determine which kind of bridge is being performed via this cast. ObjCBridgeCastKind getBridgeKind() const { return static_cast<ObjCBridgeCastKind>(Kind); } - /// \brief Retrieve the kind of bridge being performed as a string. + /// Retrieve the kind of bridge being performed as a string. StringRef getBridgeKindName() const; - /// \brief The location of the bridge keyword. + /// The location of the bridge keyword. SourceLocation getBridgeKeywordLoc() const { return BridgeKeywordLoc; } SourceLocation getLocStart() const LLVM_READONLY { return LParenLoc; } @@ -1617,7 +1617,7 @@ } }; -/// \brief A runtime availability query. +/// A runtime availability query. /// /// There are 2 ways to spell this node: /// \code @@ -1650,7 +1650,7 @@ SourceLocation getLocEnd() const { return RParen; } SourceRange getSourceRange() const { return {AtLoc, RParen}; } - /// \brief This may be '*', in which case this should fold to true. + /// This may be '*', in which case this should fold to true. bool hasVersion() const { return !VersionToCheck.empty(); } VersionTuple getVersion() { return VersionToCheck; } Index: cfe/trunk/include/clang/AST/ExprOpenMP.h =================================================================== --- cfe/trunk/include/clang/AST/ExprOpenMP.h +++ cfe/trunk/include/clang/AST/ExprOpenMP.h @@ -17,7 +17,7 @@ #include "clang/AST/Expr.h" namespace clang { -/// \brief OpenMP 4.0 [2.4, Array Sections]. +/// OpenMP 4.0 [2.4, Array Sections]. /// To specify an array section in an OpenMP construct, array subscript /// expressions are extended with the following syntax: /// \code @@ -72,33 +72,33 @@ SubExprs[LENGTH] = Length; } - /// \brief Create an empty array section expression. + /// Create an empty array section expression. explicit OMPArraySectionExpr(EmptyShell Shell) : Expr(OMPArraySectionExprClass, Shell) {} /// An array section can be written only as Base[LowerBound:Length]. - /// \brief Get base of the array section. + /// Get base of the array section. Expr *getBase() { return cast<Expr>(SubExprs[BASE]); } const Expr *getBase() const { return cast<Expr>(SubExprs[BASE]); } - /// \brief Set base of the array section. + /// Set base of the array section. void setBase(Expr *E) { SubExprs[BASE] = E; } - /// \brief Return original type of the base expression for array section. + /// Return original type of the base expression for array section. static QualType getBaseOriginalType(const Expr *Base); - /// \brief Get lower bound of array section. + /// Get lower bound of array section. Expr *getLowerBound() { return cast_or_null<Expr>(SubExprs[LOWER_BOUND]); } const Expr *getLowerBound() const { return cast_or_null<Expr>(SubExprs[LOWER_BOUND]); } - /// \brief Set lower bound of the array section. + /// Set lower bound of the array section. void setLowerBound(Expr *E) { SubExprs[LOWER_BOUND] = E; } - /// \brief Get length of array section. + /// Get length of array section. Expr *getLength() { return cast_or_null<Expr>(SubExprs[LENGTH]); } const Expr *getLength() const { return cast_or_null<Expr>(SubExprs[LENGTH]); } - /// \brief Set length of the array section. + /// Set length of the array section. void setLength(Expr *E) { SubExprs[LENGTH] = E; } SourceLocation getLocStart() const LLVM_READONLY { Index: cfe/trunk/include/clang/AST/ExternalASTSource.h =================================================================== --- cfe/trunk/include/clang/AST/ExternalASTSource.h +++ cfe/trunk/include/clang/AST/ExternalASTSource.h @@ -53,7 +53,7 @@ class Stmt; class TagDecl; -/// \brief Abstract interface for external sources of AST nodes. +/// Abstract interface for external sources of AST nodes. /// /// External AST sources provide AST nodes constructed from some /// external source, such as a precompiled header. External AST @@ -67,7 +67,7 @@ /// whenever we might have added new redeclarations for existing decls. uint32_t CurrentGeneration = 0; - /// \brief Whether this AST source also provides information for + /// Whether this AST source also provides information for /// semantic analysis. bool SemaSource = false; @@ -75,7 +75,7 @@ ExternalASTSource() = default; virtual ~ExternalASTSource(); - /// \brief RAII class for safely pairing a StartedDeserializing call + /// RAII class for safely pairing a StartedDeserializing call /// with FinishedDeserializing. class Deserializing { ExternalASTSource *Source; @@ -91,12 +91,12 @@ } }; - /// \brief Get the current generation of this AST source. This number + /// Get the current generation of this AST source. This number /// is incremented each time the AST source lazily extends an existing /// entity. uint32_t getGeneration() const { return CurrentGeneration; } - /// \brief Resolve a declaration ID into a declaration, potentially + /// Resolve a declaration ID into a declaration, potentially /// building a new declaration. /// /// This method only needs to be implemented if the AST source ever @@ -105,7 +105,7 @@ /// The default implementation of this method is a no-op. virtual Decl *GetExternalDecl(uint32_t ID); - /// \brief Resolve a selector ID into a selector. + /// Resolve a selector ID into a selector. /// /// This operation only needs to be implemented if the AST source /// returns non-zero for GetNumKnownSelectors(). @@ -113,13 +113,13 @@ /// The default implementation of this method is a no-op. virtual Selector GetExternalSelector(uint32_t ID); - /// \brief Returns the number of selectors known to the external AST + /// Returns the number of selectors known to the external AST /// source. /// /// The default implementation of this method is a no-op. virtual uint32_t GetNumExternalSelectors(); - /// \brief Resolve the offset of a statement in the decl stream into + /// Resolve the offset of a statement in the decl stream into /// a statement. /// /// This operation is meant to be used via a LazyOffsetPtr. It only @@ -129,22 +129,22 @@ /// The default implementation of this method is a no-op. virtual Stmt *GetExternalDeclStmt(uint64_t Offset); - /// \brief Resolve the offset of a set of C++ constructor initializers in + /// Resolve the offset of a set of C++ constructor initializers in /// the decl stream into an array of initializers. /// /// The default implementation of this method is a no-op. virtual CXXCtorInitializer **GetExternalCXXCtorInitializers(uint64_t Offset); - /// \brief Resolve the offset of a set of C++ base specifiers in the decl + /// Resolve the offset of a set of C++ base specifiers in the decl /// stream into an array of specifiers. /// /// The default implementation of this method is a no-op. virtual CXXBaseSpecifier *GetExternalCXXBaseSpecifiers(uint64_t Offset); - /// \brief Update an out-of-date identifier. + /// Update an out-of-date identifier. virtual void updateOutOfDateIdentifier(IdentifierInfo &II) {} - /// \brief Find all declarations with the given name in the given context, + /// Find all declarations with the given name in the given context, /// and add them to the context by calling SetExternalVisibleDeclsForName /// or SetNoExternalVisibleDeclsForName. /// \return \c true if any declarations might have been found, \c false if @@ -154,13 +154,13 @@ virtual bool FindExternalVisibleDeclsByName(const DeclContext *DC, DeclarationName Name); - /// \brief Ensures that the table of all visible declarations inside this + /// Ensures that the table of all visible declarations inside this /// context is up to date. /// /// The default implementation of this function is a no-op. virtual void completeVisibleDeclsMap(const DeclContext *DC); - /// \brief Retrieve the module that corresponds to the given module ID. + /// Retrieve the module that corresponds to the given module ID. virtual Module *getModule(unsigned ID) { return nullptr; } /// Abstracts clang modules and precompiled header files and holds @@ -195,7 +195,7 @@ virtual ExtKind hasExternalDefinitions(const Decl *D); - /// \brief Finds all declarations lexically contained within the given + /// Finds all declarations lexically contained within the given /// DeclContext, after applying an optional filter predicate. /// /// \param IsKindWeWant a predicate function that returns true if the passed @@ -207,31 +207,31 @@ llvm::function_ref<bool(Decl::Kind)> IsKindWeWant, SmallVectorImpl<Decl *> &Result); - /// \brief Finds all declarations lexically contained within the given + /// Finds all declarations lexically contained within the given /// DeclContext. void FindExternalLexicalDecls(const DeclContext *DC, SmallVectorImpl<Decl *> &Result) { FindExternalLexicalDecls(DC, [](Decl::Kind) { return true; }, Result); } - /// \brief Get the decls that are contained in a file in the Offset/Length + /// Get the decls that are contained in a file in the Offset/Length /// range. \p Length can be 0 to indicate a point at \p Offset instead of /// a range. virtual void FindFileRegionDecls(FileID File, unsigned Offset, unsigned Length, SmallVectorImpl<Decl *> &Decls); - /// \brief Gives the external AST source an opportunity to complete + /// Gives the external AST source an opportunity to complete /// the redeclaration chain for a declaration. Called each time we /// need the most recent declaration of a declaration after the /// generation count is incremented. virtual void CompleteRedeclChain(const Decl *D); - /// \brief Gives the external AST source an opportunity to complete + /// Gives the external AST source an opportunity to complete /// an incomplete type. virtual void CompleteType(TagDecl *Tag); - /// \brief Gives the external AST source an opportunity to complete an + /// Gives the external AST source an opportunity to complete an /// incomplete Objective-C class. /// /// This routine will only be invoked if the "externally completed" bit is @@ -239,35 +239,35 @@ /// \c ObjCInterfaceDecl::setExternallyCompleted(). virtual void CompleteType(ObjCInterfaceDecl *Class); - /// \brief Loads comment ranges. + /// Loads comment ranges. virtual void ReadComments(); - /// \brief Notify ExternalASTSource that we started deserialization of + /// Notify ExternalASTSource that we started deserialization of /// a decl or type so until FinishedDeserializing is called there may be /// decls that are initializing. Must be paired with FinishedDeserializing. /// /// The default implementation of this method is a no-op. virtual void StartedDeserializing(); - /// \brief Notify ExternalASTSource that we finished the deserialization of + /// Notify ExternalASTSource that we finished the deserialization of /// a decl or type. Must be paired with StartedDeserializing. /// /// The default implementation of this method is a no-op. virtual void FinishedDeserializing(); - /// \brief Function that will be invoked when we begin parsing a new + /// Function that will be invoked when we begin parsing a new /// translation unit involving this external AST source. /// /// The default implementation of this method is a no-op. virtual void StartTranslationUnit(ASTConsumer *Consumer); - /// \brief Print any statistics that have been gathered regarding + /// Print any statistics that have been gathered regarding /// the external AST source. /// /// The default implementation of this method is a no-op. virtual void PrintStats(); - /// \brief Perform layout on the given record. + /// Perform layout on the given record. /// /// This routine allows the external AST source to provide an specific /// layout for a record, overriding the layout that would normally be @@ -332,11 +332,11 @@ SetNoExternalVisibleDeclsForName(const DeclContext *DC, DeclarationName Name); - /// \brief Increment the current generation. + /// Increment the current generation. uint32_t incrementGeneration(ASTContext &C); }; -/// \brief A lazy pointer to an AST node (of base type T) that resides +/// A lazy pointer to an AST node (of base type T) that resides /// within an external AST source. /// /// The AST node is identified within the external AST source by a @@ -344,7 +344,7 @@ /// external AST source itself. template<typename T, typename OffsT, T* (ExternalASTSource::*Get)(OffsT Offset)> struct LazyOffsetPtr { - /// \brief Either a pointer to an AST node or the offset within the + /// Either a pointer to an AST node or the offset within the /// external AST source where the AST node can be found. /// /// If the low bit is clear, a pointer to the AST node. If the low @@ -376,20 +376,20 @@ return *this; } - /// \brief Whether this pointer is non-NULL. + /// Whether this pointer is non-NULL. /// /// This operation does not require the AST node to be deserialized. explicit operator bool() const { return Ptr != 0; } - /// \brief Whether this pointer is non-NULL. + /// Whether this pointer is non-NULL. /// /// This operation does not require the AST node to be deserialized. bool isValid() const { return Ptr != 0; } - /// \brief Whether this pointer is currently stored as an offset. + /// Whether this pointer is currently stored as an offset. bool isOffset() const { return Ptr & 0x01; } - /// \brief Retrieve the pointer to the AST node that this lazy pointer + /// Retrieve the pointer to the AST node that this lazy pointer /// /// \param Source the external AST source. /// @@ -404,7 +404,7 @@ } }; -/// \brief A lazy value (of type T) that is within an AST node of type Owner, +/// A lazy value (of type T) that is within an AST node of type Owner, /// where the value might change in later generations of the external AST /// source. template<typename Owner, typename T, void (ExternalASTSource::*Update)(Owner)> @@ -505,7 +505,7 @@ namespace clang { -/// \brief Represents a lazily-loaded vector of data. +/// Represents a lazily-loaded vector of data. /// /// The lazily-loaded vector of data contains data that is partially loaded /// from an external source and partially added by local translation. The @@ -589,20 +589,20 @@ } }; -/// \brief A lazy pointer to a statement. +/// A lazy pointer to a statement. using LazyDeclStmtPtr = LazyOffsetPtr<Stmt, uint64_t, &ExternalASTSource::GetExternalDeclStmt>; -/// \brief A lazy pointer to a declaration. +/// A lazy pointer to a declaration. using LazyDeclPtr = LazyOffsetPtr<Decl, uint32_t, &ExternalASTSource::GetExternalDecl>; -/// \brief A lazy pointer to a set of CXXCtorInitializers. +/// A lazy pointer to a set of CXXCtorInitializers. using LazyCXXCtorInitializersPtr = LazyOffsetPtr<CXXCtorInitializer *, uint64_t, &ExternalASTSource::GetExternalCXXCtorInitializers>; -/// \brief A lazy pointer to a set of CXXBaseSpecifiers. +/// A lazy pointer to a set of CXXBaseSpecifiers. using LazyCXXBaseSpecifiersPtr = LazyOffsetPtr<CXXBaseSpecifier, uint64_t, &ExternalASTSource::GetExternalCXXBaseSpecifiers>; Index: cfe/trunk/include/clang/AST/LambdaCapture.h =================================================================== --- cfe/trunk/include/clang/AST/LambdaCapture.h +++ cfe/trunk/include/clang/AST/LambdaCapture.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines the LambdaCapture class. +/// Defines the LambdaCapture class. /// //===----------------------------------------------------------------------===// @@ -21,21 +21,21 @@ namespace clang { -/// \brief Describes the capture of a variable or of \c this, or of a +/// Describes the capture of a variable or of \c this, or of a /// C++1y init-capture. class LambdaCapture { enum { - /// \brief Flag used by the Capture class to indicate that the given + /// Flag used by the Capture class to indicate that the given /// capture was implicit. Capture_Implicit = 0x01, - /// \brief Flag used by the Capture class to indicate that the + /// Flag used by the Capture class to indicate that the /// given capture was by-copy. /// /// This includes the case of a non-reference init-capture. Capture_ByCopy = 0x02, - /// \brief Flag used by the Capture class to distinguish between a capture + /// Flag used by the Capture class to distinguish between a capture /// of '*this' and a capture of a VLA type. Capture_This = 0x04 }; @@ -56,7 +56,7 @@ friend class ASTStmtWriter; public: - /// \brief Create a new capture of a variable or of \c this. + /// Create a new capture of a variable or of \c this. /// /// \param Loc The source location associated with this capture. /// @@ -75,29 +75,29 @@ VarDecl *Var = nullptr, SourceLocation EllipsisLoc = SourceLocation()); - /// \brief Determine the kind of capture. + /// Determine the kind of capture. LambdaCaptureKind getCaptureKind() const; - /// \brief Determine whether this capture handles the C++ \c this + /// Determine whether this capture handles the C++ \c this /// pointer. bool capturesThis() const { return DeclAndBits.getPointer() == nullptr && (DeclAndBits.getInt() & Capture_This); } - /// \brief Determine whether this capture handles a variable. + /// Determine whether this capture handles a variable. bool capturesVariable() const { return dyn_cast_or_null<VarDecl>(DeclAndBits.getPointer()); } - /// \brief Determine whether this captures a variable length array bound + /// Determine whether this captures a variable length array bound /// expression. bool capturesVLAType() const { return DeclAndBits.getPointer() == nullptr && !(DeclAndBits.getInt() & Capture_This); } - /// \brief Retrieve the declaration of the local variable being + /// Retrieve the declaration of the local variable being /// captured. /// /// This operation is only valid if this capture is a variable capture @@ -107,17 +107,17 @@ return static_cast<VarDecl *>(DeclAndBits.getPointer()); } - /// \brief Determine whether this was an implicit capture (not + /// Determine whether this was an implicit capture (not /// written between the square brackets introducing the lambda). bool isImplicit() const { return DeclAndBits.getInt() & Capture_Implicit; } - /// \brief Determine whether this was an explicit capture (written + /// Determine whether this was an explicit capture (written /// between the square brackets introducing the lambda). bool isExplicit() const { return !isImplicit(); } - /// \brief Retrieve the source location of the capture. + /// Retrieve the source location of the capture. /// /// For an explicit capture, this returns the location of the /// explicit capture in the source. For an implicit capture, this @@ -125,11 +125,11 @@ /// used. SourceLocation getLocation() const { return Loc; } - /// \brief Determine whether this capture is a pack expansion, + /// Determine whether this capture is a pack expansion, /// which captures a function parameter pack. bool isPackExpansion() const { return EllipsisLoc.isValid(); } - /// \brief Retrieve the location of the ellipsis for a capture + /// Retrieve the location of the ellipsis for a capture /// that is a pack expansion. SourceLocation getEllipsisLoc() const { assert(isPackExpansion() && "No ellipsis location for a non-expansion"); Index: cfe/trunk/include/clang/AST/LocInfoType.h =================================================================== --- cfe/trunk/include/clang/AST/LocInfoType.h +++ cfe/trunk/include/clang/AST/LocInfoType.h @@ -20,7 +20,7 @@ class TypeSourceInfo; -/// \brief Holds a QualType and a TypeSourceInfo* that came out of a declarator +/// Holds a QualType and a TypeSourceInfo* that came out of a declarator /// parsing. /// /// LocInfoType is a "transient" type, only needed for passing to/from Parser Index: cfe/trunk/include/clang/AST/Mangle.h =================================================================== --- cfe/trunk/include/clang/AST/Mangle.h +++ cfe/trunk/include/clang/AST/Mangle.h @@ -183,14 +183,14 @@ explicit MicrosoftMangleContext(ASTContext &C, DiagnosticsEngine &D) : MangleContext(C, D, MK_Microsoft) {} - /// \brief Mangle vftable symbols. Only a subset of the bases along the path + /// Mangle vftable symbols. Only a subset of the bases along the path /// to the vftable are included in the name. It's up to the caller to pick /// them correctly. virtual void mangleCXXVFTable(const CXXRecordDecl *Derived, ArrayRef<const CXXRecordDecl *> BasePath, raw_ostream &Out) = 0; - /// \brief Mangle vbtable symbols. Only a subset of the bases along the path + /// Mangle vbtable symbols. Only a subset of the bases along the path /// to the vbtable are included in the name. It's up to the caller to pick /// them correctly. virtual void mangleCXXVBTable(const CXXRecordDecl *Derived, Index: cfe/trunk/include/clang/AST/MangleNumberingContext.h =================================================================== --- cfe/trunk/include/clang/AST/MangleNumberingContext.h +++ cfe/trunk/include/clang/AST/MangleNumberingContext.h @@ -27,29 +27,29 @@ class Type; class VarDecl; -/// \brief Keeps track of the mangled names of lambda expressions and block +/// Keeps track of the mangled names of lambda expressions and block /// literals within a particular context. class MangleNumberingContext { public: virtual ~MangleNumberingContext() {} - /// \brief Retrieve the mangling number of a new lambda expression with the + /// Retrieve the mangling number of a new lambda expression with the /// given call operator within this context. virtual unsigned getManglingNumber(const CXXMethodDecl *CallOperator) = 0; - /// \brief Retrieve the mangling number of a new block literal within this + /// Retrieve the mangling number of a new block literal within this /// context. virtual unsigned getManglingNumber(const BlockDecl *BD) = 0; /// Static locals are numbered by source order. virtual unsigned getStaticLocalNumber(const VarDecl *VD) = 0; - /// \brief Retrieve the mangling number of a static local variable within + /// Retrieve the mangling number of a static local variable within /// this context. virtual unsigned getManglingNumber(const VarDecl *VD, unsigned MSLocalManglingNumber) = 0; - /// \brief Retrieve the mangling number of a static local variable within + /// Retrieve the mangling number of a static local variable within /// this context. virtual unsigned getManglingNumber(const TagDecl *TD, unsigned MSLocalManglingNumber) = 0; Index: cfe/trunk/include/clang/AST/NSAPI.h =================================================================== --- cfe/trunk/include/clang/AST/NSAPI.h +++ cfe/trunk/include/clang/AST/NSAPI.h @@ -20,7 +20,7 @@ class QualType; class Expr; -// \brief Provides info and caches identifiers/selectors for NSFoundation API. +// Provides info and caches identifiers/selectors for NSFoundation API. class NSAPI { public: explicit NSAPI(ASTContext &Ctx); @@ -53,25 +53,25 @@ IdentifierInfo *getNSClassId(NSClassIdKindKind K) const; - /// \brief The Objective-C NSString selectors. + /// The Objective-C NSString selectors. Selector getNSStringSelector(NSStringMethodKind MK) const; - /// \brief Return NSStringMethodKind if \param Sel is such a selector. + /// Return NSStringMethodKind if \param Sel is such a selector. Optional<NSStringMethodKind> getNSStringMethodKind(Selector Sel) const; - /// \brief Returns true if the expression \param E is a reference of + /// Returns true if the expression \param E is a reference of /// "NSUTF8StringEncoding" enum constant. bool isNSUTF8StringEncodingConstant(const Expr *E) const { return isObjCEnumerator(E, "NSUTF8StringEncoding", NSUTF8StringEncodingId); } - /// \brief Returns true if the expression \param E is a reference of + /// Returns true if the expression \param E is a reference of /// "NSASCIIStringEncoding" enum constant. bool isNSASCIIStringEncodingConstant(const Expr *E) const { return isObjCEnumerator(E, "NSASCIIStringEncoding",NSASCIIStringEncodingId); } - /// \brief Enumerates the NSArray/NSMutableArray methods used to generate + /// Enumerates the NSArray/NSMutableArray methods used to generate /// literals and to apply some checks. enum NSArrayMethodKind { NSArr_array, @@ -89,13 +89,13 @@ }; static const unsigned NumNSArrayMethods = 12; - /// \brief The Objective-C NSArray selectors. + /// The Objective-C NSArray selectors. Selector getNSArraySelector(NSArrayMethodKind MK) const; - /// \brief Return NSArrayMethodKind if \p Sel is such a selector. + /// Return NSArrayMethodKind if \p Sel is such a selector. Optional<NSArrayMethodKind> getNSArrayMethodKind(Selector Sel); - /// \brief Enumerates the NSDictionary/NSMutableDictionary methods used + /// Enumerates the NSDictionary/NSMutableDictionary methods used /// to generate literals and to apply some checks. enum NSDictionaryMethodKind { NSDict_dictionary, @@ -114,13 +114,13 @@ }; static const unsigned NumNSDictionaryMethods = 13; - /// \brief The Objective-C NSDictionary selectors. + /// The Objective-C NSDictionary selectors. Selector getNSDictionarySelector(NSDictionaryMethodKind MK) const; - /// \brief Return NSDictionaryMethodKind if \p Sel is such a selector. + /// Return NSDictionaryMethodKind if \p Sel is such a selector. Optional<NSDictionaryMethodKind> getNSDictionaryMethodKind(Selector Sel); - /// \brief Enumerates the NSMutableSet/NSOrderedSet methods used + /// Enumerates the NSMutableSet/NSOrderedSet methods used /// to apply some checks. enum NSSetMethodKind { NSMutableSet_addObject, @@ -131,42 +131,42 @@ }; static const unsigned NumNSSetMethods = 5; - /// \brief The Objective-C NSSet selectors. + /// The Objective-C NSSet selectors. Selector getNSSetSelector(NSSetMethodKind MK) const; - /// \brief Return NSSetMethodKind if \p Sel is such a selector. + /// Return NSSetMethodKind if \p Sel is such a selector. Optional<NSSetMethodKind> getNSSetMethodKind(Selector Sel); - /// \brief Returns selector for "objectForKeyedSubscript:". + /// Returns selector for "objectForKeyedSubscript:". Selector getObjectForKeyedSubscriptSelector() const { return getOrInitSelector(StringRef("objectForKeyedSubscript"), objectForKeyedSubscriptSel); } - /// \brief Returns selector for "objectAtIndexedSubscript:". + /// Returns selector for "objectAtIndexedSubscript:". Selector getObjectAtIndexedSubscriptSelector() const { return getOrInitSelector(StringRef("objectAtIndexedSubscript"), objectAtIndexedSubscriptSel); } - /// \brief Returns selector for "setObject:forKeyedSubscript". + /// Returns selector for "setObject:forKeyedSubscript". Selector getSetObjectForKeyedSubscriptSelector() const { StringRef Ids[] = { "setObject", "forKeyedSubscript" }; return getOrInitSelector(Ids, setObjectForKeyedSubscriptSel); } - /// \brief Returns selector for "setObject:atIndexedSubscript". + /// Returns selector for "setObject:atIndexedSubscript". Selector getSetObjectAtIndexedSubscriptSelector() const { StringRef Ids[] = { "setObject", "atIndexedSubscript" }; return getOrInitSelector(Ids, setObjectAtIndexedSubscriptSel); } - /// \brief Returns selector for "isEqual:". + /// Returns selector for "isEqual:". Selector getIsEqualSelector() const { return getOrInitSelector(StringRef("isEqual"), isEqualSel); } - /// \brief Enumerates the NSNumber methods used to generate literals. + /// Enumerates the NSNumber methods used to generate literals. enum NSNumberLiteralMethodKind { NSNumberWithChar, NSNumberWithUnsignedChar, @@ -186,7 +186,7 @@ }; static const unsigned NumNSNumberLiteralMethods = 15; - /// \brief The Objective-C NSNumber selectors used to create NSNumber literals. + /// The Objective-C NSNumber selectors used to create NSNumber literals. /// \param Instance if true it will return the selector for the init* method /// otherwise it will return the selector for the number* method. Selector getNSNumberLiteralSelector(NSNumberLiteralMethodKind MK, @@ -198,29 +198,29 @@ Sel == getNSNumberLiteralSelector(MK, true); } - /// \brief Return NSNumberLiteralMethodKind if \p Sel is such a selector. + /// Return NSNumberLiteralMethodKind if \p Sel is such a selector. Optional<NSNumberLiteralMethodKind> getNSNumberLiteralMethodKind(Selector Sel) const; - /// \brief Determine the appropriate NSNumber factory method kind for a + /// Determine the appropriate NSNumber factory method kind for a /// literal of the given type. Optional<NSNumberLiteralMethodKind> getNSNumberFactoryMethodKind(QualType T) const; - /// \brief Returns true if \param T is a typedef of "BOOL" in objective-c. + /// Returns true if \param T is a typedef of "BOOL" in objective-c. bool isObjCBOOLType(QualType T) const; - /// \brief Returns true if \param T is a typedef of "NSInteger" in objective-c. + /// Returns true if \param T is a typedef of "NSInteger" in objective-c. bool isObjCNSIntegerType(QualType T) const; - /// \brief Returns true if \param T is a typedef of "NSUInteger" in objective-c. + /// Returns true if \param T is a typedef of "NSUInteger" in objective-c. bool isObjCNSUIntegerType(QualType T) const; - /// \brief Returns one of NSIntegral typedef names if \param T is a typedef + /// Returns one of NSIntegral typedef names if \param T is a typedef /// of that name in objective-c. StringRef GetNSIntegralKind(QualType T) const; - /// \brief Returns \c true if \p Id is currently defined as a macro. + /// Returns \c true if \p Id is currently defined as a macro. bool isMacroDefined(StringRef Id) const; - /// \brief Returns \c true if \p InterfaceDecl is subclass of \p NSClassKind + /// Returns \c true if \p InterfaceDecl is subclass of \p NSClassKind bool isSubclassOfNSClass(ObjCInterfaceDecl *InterfaceDecl, NSClassIdKindKind NSClassKind) const; @@ -236,16 +236,16 @@ mutable Selector NSStringSelectors[NumNSStringMethods]; - /// \brief The selectors for Objective-C NSArray methods. + /// The selectors for Objective-C NSArray methods. mutable Selector NSArraySelectors[NumNSArrayMethods]; - /// \brief The selectors for Objective-C NSDictionary methods. + /// The selectors for Objective-C NSDictionary methods. mutable Selector NSDictionarySelectors[NumNSDictionaryMethods]; - /// \brief The selectors for Objective-C NSSet methods. + /// The selectors for Objective-C NSSet methods. mutable Selector NSSetSelectors[NumNSSetMethods]; - /// \brief The Objective-C NSNumber selectors used to create NSNumber literals. + /// The Objective-C NSNumber selectors used to create NSNumber literals. mutable Selector NSNumberClassSelectors[NumNSNumberLiteralMethods]; mutable Selector NSNumberInstanceSelectors[NumNSNumberLiteralMethods]; Index: cfe/trunk/include/clang/AST/NestedNameSpecifier.h =================================================================== --- cfe/trunk/include/clang/AST/NestedNameSpecifier.h +++ cfe/trunk/include/clang/AST/NestedNameSpecifier.h @@ -36,7 +36,7 @@ class Type; class TypeLoc; -/// \brief Represents a C++ nested name specifier, such as +/// Represents a C++ nested name specifier, such as /// "\::std::vector<int>::". /// /// C++ nested name specifiers are the prefixes to qualified @@ -47,7 +47,7 @@ /// The last two specifiers can only appear at the start of a /// nested-namespace-specifier. class NestedNameSpecifier : public llvm::FoldingSetNode { - /// \brief Enumeration describing + /// Enumeration describing enum StoredSpecifierKind { StoredIdentifier = 0, StoredDecl = 1, @@ -55,7 +55,7 @@ StoredTypeSpecWithTemplate = 3 }; - /// \brief The nested name specifier that precedes this nested name + /// The nested name specifier that precedes this nested name /// specifier. /// /// The pointer is the nested-name-specifier that precedes this @@ -63,7 +63,7 @@ /// SpecifierKind. llvm::PointerIntPair<NestedNameSpecifier *, 2, StoredSpecifierKind> Prefix; - /// \brief The last component in the nested name specifier, which + /// The last component in the nested name specifier, which /// can be an identifier, a declaration, or a type. /// /// When the pointer is NULL, this specifier represents the global @@ -73,42 +73,42 @@ void* Specifier = nullptr; public: - /// \brief The kind of specifier that completes this nested name + /// The kind of specifier that completes this nested name /// specifier. enum SpecifierKind { - /// \brief An identifier, stored as an IdentifierInfo*. + /// An identifier, stored as an IdentifierInfo*. Identifier, - /// \brief A namespace, stored as a NamespaceDecl*. + /// A namespace, stored as a NamespaceDecl*. Namespace, - /// \brief A namespace alias, stored as a NamespaceAliasDecl*. + /// A namespace alias, stored as a NamespaceAliasDecl*. NamespaceAlias, - /// \brief A type, stored as a Type*. + /// A type, stored as a Type*. TypeSpec, - /// \brief A type that was preceded by the 'template' keyword, + /// A type that was preceded by the 'template' keyword, /// stored as a Type*. TypeSpecWithTemplate, - /// \brief The global specifier '::'. There is no stored value. + /// The global specifier '::'. There is no stored value. Global, - /// \brief Microsoft's '__super' specifier, stored as a CXXRecordDecl* of + /// Microsoft's '__super' specifier, stored as a CXXRecordDecl* of /// the class it appeared in. Super }; private: - /// \brief Builds the global specifier. + /// Builds the global specifier. NestedNameSpecifier() : Prefix(nullptr, StoredIdentifier) {} - /// \brief Copy constructor used internally to clone nested name + /// Copy constructor used internally to clone nested name /// specifiers. NestedNameSpecifier(const NestedNameSpecifier &Other) = default; - /// \brief Either find or insert the given nested name specifier + /// Either find or insert the given nested name specifier /// mockup in the given context. static NestedNameSpecifier *FindOrInsert(const ASTContext &Context, const NestedNameSpecifier &Mockup); @@ -116,7 +116,7 @@ public: NestedNameSpecifier &operator=(const NestedNameSpecifier &) = delete; - /// \brief Builds a specifier combining a prefix and an identifier. + /// Builds a specifier combining a prefix and an identifier. /// /// The prefix must be dependent, since nested name specifiers /// referencing an identifier are only permitted when the identifier @@ -125,22 +125,22 @@ NestedNameSpecifier *Prefix, IdentifierInfo *II); - /// \brief Builds a nested name specifier that names a namespace. + /// Builds a nested name specifier that names a namespace. static NestedNameSpecifier *Create(const ASTContext &Context, NestedNameSpecifier *Prefix, const NamespaceDecl *NS); - /// \brief Builds a nested name specifier that names a namespace alias. + /// Builds a nested name specifier that names a namespace alias. static NestedNameSpecifier *Create(const ASTContext &Context, NestedNameSpecifier *Prefix, NamespaceAliasDecl *Alias); - /// \brief Builds a nested name specifier that names a type. + /// Builds a nested name specifier that names a type. static NestedNameSpecifier *Create(const ASTContext &Context, NestedNameSpecifier *Prefix, bool Template, const Type *T); - /// \brief Builds a specifier that consists of just an identifier. + /// Builds a specifier that consists of just an identifier. /// /// The nested-name-specifier is assumed to be dependent, but has no /// prefix because the prefix is implied by something outside of the @@ -149,16 +149,16 @@ static NestedNameSpecifier *Create(const ASTContext &Context, IdentifierInfo *II); - /// \brief Returns the nested name specifier representing the global + /// Returns the nested name specifier representing the global /// scope. static NestedNameSpecifier *GlobalSpecifier(const ASTContext &Context); - /// \brief Returns the nested name specifier representing the __super scope + /// Returns the nested name specifier representing the __super scope /// for the given CXXRecordDecl. static NestedNameSpecifier *SuperSpecifier(const ASTContext &Context, CXXRecordDecl *RD); - /// \brief Return the prefix of this nested name specifier. + /// Return the prefix of this nested name specifier. /// /// The prefix contains all of the parts of the nested name /// specifier that preced this current specifier. For example, for a @@ -167,10 +167,10 @@ /// "foo::". NestedNameSpecifier *getPrefix() const { return Prefix.getPointer(); } - /// \brief Determine what kind of nested name specifier is stored. + /// Determine what kind of nested name specifier is stored. SpecifierKind getKind() const; - /// \brief Retrieve the identifier stored in this nested name + /// Retrieve the identifier stored in this nested name /// specifier. IdentifierInfo *getAsIdentifier() const { if (Prefix.getInt() == StoredIdentifier) @@ -179,19 +179,19 @@ return nullptr; } - /// \brief Retrieve the namespace stored in this nested name + /// Retrieve the namespace stored in this nested name /// specifier. NamespaceDecl *getAsNamespace() const; - /// \brief Retrieve the namespace alias stored in this nested name + /// Retrieve the namespace alias stored in this nested name /// specifier. NamespaceAliasDecl *getAsNamespaceAlias() const; - /// \brief Retrieve the record declaration stored in this nested name + /// Retrieve the record declaration stored in this nested name /// specifier. CXXRecordDecl *getAsRecordDecl() const; - /// \brief Retrieve the type stored in this nested name specifier. + /// Retrieve the type stored in this nested name specifier. const Type *getAsType() const { if (Prefix.getInt() == StoredTypeSpec || Prefix.getInt() == StoredTypeSpecWithTemplate) @@ -200,19 +200,19 @@ return nullptr; } - /// \brief Whether this nested name specifier refers to a dependent + /// Whether this nested name specifier refers to a dependent /// type or not. bool isDependent() const; - /// \brief Whether this nested name specifier involves a template + /// Whether this nested name specifier involves a template /// parameter. bool isInstantiationDependent() const; - /// \brief Whether this nested-name-specifier contains an unexpanded + /// Whether this nested-name-specifier contains an unexpanded /// parameter pack (for C++11 variadic templates). bool containsUnexpandedParameterPack() const; - /// \brief Print this nested name specifier to the given output + /// Print this nested name specifier to the given output /// stream. void print(raw_ostream &OS, const PrintingPolicy &Policy) const; @@ -221,53 +221,53 @@ ID.AddPointer(Specifier); } - /// \brief Dump the nested name specifier to standard output to aid + /// Dump the nested name specifier to standard output to aid /// in debugging. void dump(const LangOptions &LO) const; void dump() const; }; -/// \brief A C++ nested-name-specifier augmented with source location +/// A C++ nested-name-specifier augmented with source location /// information. class NestedNameSpecifierLoc { NestedNameSpecifier *Qualifier = nullptr; void *Data = nullptr; - /// \brief Determines the data length for the last component in the + /// Determines the data length for the last component in the /// given nested-name-specifier. static unsigned getLocalDataLength(NestedNameSpecifier *Qualifier); - /// \brief Determines the data length for the entire + /// Determines the data length for the entire /// nested-name-specifier. static unsigned getDataLength(NestedNameSpecifier *Qualifier); public: - /// \brief Construct an empty nested-name-specifier. + /// Construct an empty nested-name-specifier. NestedNameSpecifierLoc() = default; - /// \brief Construct a nested-name-specifier with source location information + /// Construct a nested-name-specifier with source location information /// from NestedNameSpecifierLoc(NestedNameSpecifier *Qualifier, void *Data) : Qualifier(Qualifier), Data(Data) {} - /// \brief Evaluates true when this nested-name-specifier location is + /// Evaluates true when this nested-name-specifier location is /// non-empty. explicit operator bool() const { return Qualifier; } - /// \brief Evaluates true when this nested-name-specifier location is + /// Evaluates true when this nested-name-specifier location is /// empty. bool hasQualifier() const { return Qualifier; } - /// \brief Retrieve the nested-name-specifier to which this instance + /// Retrieve the nested-name-specifier to which this instance /// refers. NestedNameSpecifier *getNestedNameSpecifier() const { return Qualifier; } - /// \brief Retrieve the opaque pointer that refers to source-location data. + /// Retrieve the opaque pointer that refers to source-location data. void *getOpaqueData() const { return Data; } - /// \brief Retrieve the source range covering the entirety of this + /// Retrieve the source range covering the entirety of this /// nested-name-specifier. /// /// For example, if this instance refers to a nested-name-specifier @@ -275,7 +275,7 @@ /// from the initial '::' to the last '::'. SourceRange getSourceRange() const LLVM_READONLY; - /// \brief Retrieve the source range covering just the last part of + /// Retrieve the source range covering just the last part of /// this nested-name-specifier, not including the prefix. /// /// For example, if this instance refers to a nested-name-specifier @@ -283,31 +283,31 @@ /// from "vector" to the last '::'. SourceRange getLocalSourceRange() const; - /// \brief Retrieve the location of the beginning of this + /// Retrieve the location of the beginning of this /// nested-name-specifier. SourceLocation getBeginLoc() const { return getSourceRange().getBegin(); } - /// \brief Retrieve the location of the end of this + /// Retrieve the location of the end of this /// nested-name-specifier. SourceLocation getEndLoc() const { return getSourceRange().getEnd(); } - /// \brief Retrieve the location of the beginning of this + /// Retrieve the location of the beginning of this /// component of the nested-name-specifier. SourceLocation getLocalBeginLoc() const { return getLocalSourceRange().getBegin(); } - /// \brief Retrieve the location of the end of this component of the + /// Retrieve the location of the end of this component of the /// nested-name-specifier. SourceLocation getLocalEndLoc() const { return getLocalSourceRange().getEnd(); } - /// \brief Return the prefix of this nested-name-specifier. + /// Return the prefix of this nested-name-specifier. /// /// For example, if this instance refers to a nested-name-specifier /// \c \::std::vector<int>::, the prefix is \c \::std::. Note that the @@ -320,11 +320,11 @@ return NestedNameSpecifierLoc(Qualifier->getPrefix(), Data); } - /// \brief For a nested-name-specifier that refers to a type, + /// For a nested-name-specifier that refers to a type, /// retrieve the type with source-location information. TypeLoc getTypeLoc() const; - /// \brief Determines the data length for the entire + /// Determines the data length for the entire /// nested-name-specifier. unsigned getDataLength() const { return getDataLength(Qualifier); } @@ -339,15 +339,15 @@ } }; -/// \brief Class that aids in the construction of nested-name-specifiers along +/// Class that aids in the construction of nested-name-specifiers along /// with source-location information for all of the components of the /// nested-name-specifier. class NestedNameSpecifierLocBuilder { - /// \brief The current representation of the nested-name-specifier we're + /// The current representation of the nested-name-specifier we're /// building. NestedNameSpecifier *Representation = nullptr; - /// \brief Buffer used to store source-location information for the + /// Buffer used to store source-location information for the /// nested-name-specifier. /// /// Note that we explicitly manage the buffer (rather than using a @@ -355,11 +355,11 @@ /// a \c CXXScopeSpec, and CXXScopeSpec uses a NestedNameSpecifierLocBuilder. char *Buffer = nullptr; - /// \brief The size of the buffer used to store source-location information + /// The size of the buffer used to store source-location information /// for the nested-name-specifier. unsigned BufferSize = 0; - /// \brief The capacity of the buffer used to store source-location + /// The capacity of the buffer used to store source-location /// information for the nested-name-specifier. unsigned BufferCapacity = 0; @@ -375,10 +375,10 @@ free(Buffer); } - /// \brief Retrieve the representation of the nested-name-specifier. + /// Retrieve the representation of the nested-name-specifier. NestedNameSpecifier *getRepresentation() const { return Representation; } - /// \brief Extend the current nested-name-specifier by another + /// Extend the current nested-name-specifier by another /// nested-name-specifier component of the form 'type::'. /// /// \param Context The AST context in which this nested-name-specifier @@ -392,7 +392,7 @@ void Extend(ASTContext &Context, SourceLocation TemplateKWLoc, TypeLoc TL, SourceLocation ColonColonLoc); - /// \brief Extend the current nested-name-specifier by another + /// Extend the current nested-name-specifier by another /// nested-name-specifier component of the form 'identifier::'. /// /// \param Context The AST context in which this nested-name-specifier @@ -406,7 +406,7 @@ void Extend(ASTContext &Context, IdentifierInfo *Identifier, SourceLocation IdentifierLoc, SourceLocation ColonColonLoc); - /// \brief Extend the current nested-name-specifier by another + /// Extend the current nested-name-specifier by another /// nested-name-specifier component of the form 'namespace::'. /// /// \param Context The AST context in which this nested-name-specifier @@ -420,7 +420,7 @@ void Extend(ASTContext &Context, NamespaceDecl *Namespace, SourceLocation NamespaceLoc, SourceLocation ColonColonLoc); - /// \brief Extend the current nested-name-specifier by another + /// Extend the current nested-name-specifier by another /// nested-name-specifier component of the form 'namespace-alias::'. /// /// \param Context The AST context in which this nested-name-specifier @@ -435,11 +435,11 @@ void Extend(ASTContext &Context, NamespaceAliasDecl *Alias, SourceLocation AliasLoc, SourceLocation ColonColonLoc); - /// \brief Turn this (empty) nested-name-specifier into the global + /// Turn this (empty) nested-name-specifier into the global /// nested-name-specifier '::'. void MakeGlobal(ASTContext &Context, SourceLocation ColonColonLoc); - /// \brief Turns this (empty) nested-name-specifier into '__super' + /// Turns this (empty) nested-name-specifier into '__super' /// nested-name-specifier. /// /// \param Context The AST context in which this nested-name-specifier @@ -455,7 +455,7 @@ void MakeSuper(ASTContext &Context, CXXRecordDecl *RD, SourceLocation SuperLoc, SourceLocation ColonColonLoc); - /// \brief Make a new nested-name-specifier from incomplete source-location + /// Make a new nested-name-specifier from incomplete source-location /// information. /// /// This routine should be used very, very rarely, in cases where we @@ -464,23 +464,23 @@ void MakeTrivial(ASTContext &Context, NestedNameSpecifier *Qualifier, SourceRange R); - /// \brief Adopt an existing nested-name-specifier (with source-range + /// Adopt an existing nested-name-specifier (with source-range /// information). void Adopt(NestedNameSpecifierLoc Other); - /// \brief Retrieve the source range covered by this nested-name-specifier. + /// Retrieve the source range covered by this nested-name-specifier. SourceRange getSourceRange() const LLVM_READONLY { return NestedNameSpecifierLoc(Representation, Buffer).getSourceRange(); } - /// \brief Retrieve a nested-name-specifier with location information, + /// Retrieve a nested-name-specifier with location information, /// copied into the given AST context. /// /// \param Context The context into which this nested-name-specifier will be /// copied. NestedNameSpecifierLoc getWithLocInContext(ASTContext &Context) const; - /// \brief Retrieve a nested-name-specifier with location + /// Retrieve a nested-name-specifier with location /// information based on the information in this builder. /// /// This loc will contain references to the builder's internal data and may @@ -489,14 +489,14 @@ return NestedNameSpecifierLoc(Representation, Buffer); } - /// \brief Clear out this builder, and prepare it to build another + /// Clear out this builder, and prepare it to build another /// nested-name-specifier with source-location information. void Clear() { Representation = nullptr; BufferSize = 0; } - /// \brief Retrieve the underlying buffer. + /// Retrieve the underlying buffer. /// /// \returns A pair containing a pointer to the buffer of source-location /// data and the size of the source-location data that resides in that Index: cfe/trunk/include/clang/AST/OpenMPClause.h =================================================================== --- cfe/trunk/include/clang/AST/OpenMPClause.h +++ cfe/trunk/include/clang/AST/OpenMPClause.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief This file defines OpenMP AST classes for clauses. +/// This file defines OpenMP AST classes for clauses. /// There are clauses for executable directives, clauses for declarative /// directives and clauses which can be used in both kinds of directives. // @@ -47,15 +47,15 @@ // AST classes for clauses. //===----------------------------------------------------------------------===// -/// \brief This is a basic class for representing single OpenMP clause. +/// This is a basic class for representing single OpenMP clause. class OMPClause { - /// \brief Starting location of the clause (the clause keyword). + /// Starting location of the clause (the clause keyword). SourceLocation StartLoc; - /// \brief Ending location of the clause. + /// Ending location of the clause. SourceLocation EndLoc; - /// \brief Kind of the clause. + /// Kind of the clause. OpenMPClauseKind Kind; protected: @@ -63,19 +63,19 @@ : StartLoc(StartLoc), EndLoc(EndLoc), Kind(K) {} public: - /// \brief Returns the starting location of the clause. + /// Returns the starting location of the clause. SourceLocation getLocStart() const { return StartLoc; } - /// \brief Returns the ending location of the clause. + /// Returns the ending location of the clause. SourceLocation getLocEnd() const { return EndLoc; } - /// \brief Sets the starting location of the clause. + /// Sets the starting location of the clause. void setLocStart(SourceLocation Loc) { StartLoc = Loc; } - /// \brief Sets the ending location of the clause. + /// Sets the ending location of the clause. void setLocEnd(SourceLocation Loc) { EndLoc = Loc; } - /// \brief Returns kind of OpenMP clause (private, shared, reduction, etc.). + /// Returns kind of OpenMP clause (private, shared, reduction, etc.). OpenMPClauseKind getClauseKind() const { return Kind; } bool isImplicit() const { return StartLoc.isInvalid(); } @@ -157,20 +157,20 @@ static const OMPClauseWithPostUpdate *get(const OMPClause *C); }; -/// \brief This represents clauses with the list of variables like 'private', +/// This represents clauses with the list of variables like 'private', /// 'firstprivate', 'copyin', 'shared', or 'reduction' clauses in the /// '#pragma omp ...' directives. template <class T> class OMPVarListClause : public OMPClause { friend class OMPClauseReader; - /// \brief Location of '('. + /// Location of '('. SourceLocation LParenLoc; - /// \brief Number of variables in the list. + /// Number of variables in the list. unsigned NumVars; protected: - /// \brief Build a clause with \a N variables + /// Build a clause with \a N variables /// /// \param K Kind of the clause. /// \param StartLoc Starting location of the clause (the clause keyword). @@ -181,13 +181,13 @@ SourceLocation LParenLoc, SourceLocation EndLoc, unsigned N) : OMPClause(K, StartLoc, EndLoc), LParenLoc(LParenLoc), NumVars(N) {} - /// \brief Fetches list of variables associated with this clause. + /// Fetches list of variables associated with this clause. MutableArrayRef<Expr *> getVarRefs() { return MutableArrayRef<Expr *>( static_cast<T *>(this)->template getTrailingObjects<Expr *>(), NumVars); } - /// \brief Sets the list of variables for this clause. + /// Sets the list of variables for this clause. void setVarRefs(ArrayRef<Expr *> VL) { assert(VL.size() == NumVars && "Number of variables is not the same as the preallocated buffer"); @@ -216,13 +216,13 @@ varlist_const_iterator varlist_begin() const { return getVarRefs().begin(); } varlist_const_iterator varlist_end() const { return getVarRefs().end(); } - /// \brief Sets the location of '('. + /// Sets the location of '('. void setLParenLoc(SourceLocation Loc) { LParenLoc = Loc; } - /// \brief Returns the location of '('. + /// Returns the location of '('. SourceLocation getLParenLoc() const { return LParenLoc; } - /// \brief Fetches list of all variables in the clause. + /// Fetches list of all variables in the clause. ArrayRef<const Expr *> getVarRefs() const { return llvm::makeArrayRef( static_cast<const T *>(this)->template getTrailingObjects<Expr *>(), @@ -230,7 +230,7 @@ } }; -/// \brief This represents 'if' clause in the '#pragma omp ...' directive. +/// This represents 'if' clause in the '#pragma omp ...' directive. /// /// \code /// #pragma omp parallel if(parallel:a > 5) @@ -240,35 +240,35 @@ class OMPIfClause : public OMPClause, public OMPClauseWithPreInit { friend class OMPClauseReader; - /// \brief Location of '('. + /// Location of '('. SourceLocation LParenLoc; - /// \brief Condition of the 'if' clause. + /// Condition of the 'if' clause. Stmt *Condition = nullptr; - /// \brief Location of ':' (if any). + /// Location of ':' (if any). SourceLocation ColonLoc; - /// \brief Directive name modifier for the clause. + /// Directive name modifier for the clause. OpenMPDirectiveKind NameModifier = OMPD_unknown; - /// \brief Name modifier location. + /// Name modifier location. SourceLocation NameModifierLoc; - /// \brief Set condition. + /// Set condition. void setCondition(Expr *Cond) { Condition = Cond; } - /// \brief Set directive name modifier for the clause. + /// Set directive name modifier for the clause. void setNameModifier(OpenMPDirectiveKind NM) { NameModifier = NM; } - /// \brief Set location of directive name modifier for the clause. + /// Set location of directive name modifier for the clause. void setNameModifierLoc(SourceLocation Loc) { NameModifierLoc = Loc; } - /// \brief Set location of ':'. + /// Set location of ':'. void setColonLoc(SourceLocation Loc) { ColonLoc = Loc; } public: - /// \brief Build 'if' clause with condition \a Cond. + /// Build 'if' clause with condition \a Cond. /// /// \param NameModifier [OpenMP 4.1] Directive name modifier of clause. /// \param Cond Condition of the clause. @@ -290,27 +290,27 @@ setPreInitStmt(HelperCond, CaptureRegion); } - /// \brief Build an empty clause. + /// Build an empty clause. OMPIfClause() : OMPClause(OMPC_if, SourceLocation(), SourceLocation()), OMPClauseWithPreInit(this) {} - /// \brief Sets the location of '('. + /// Sets the location of '('. void setLParenLoc(SourceLocation Loc) { LParenLoc = Loc; } - /// \brief Returns the location of '('. + /// Returns the location of '('. SourceLocation getLParenLoc() const { return LParenLoc; } - /// \brief Return the location of ':'. + /// Return the location of ':'. SourceLocation getColonLoc() const { return ColonLoc; } - /// \brief Returns condition. + /// Returns condition. Expr *getCondition() const { return cast_or_null<Expr>(Condition); } - /// \brief Return directive name modifier associated with the clause. + /// Return directive name modifier associated with the clause. OpenMPDirectiveKind getNameModifier() const { return NameModifier; } - /// \brief Return the location of directive name modifier. + /// Return the location of directive name modifier. SourceLocation getNameModifierLoc() const { return NameModifierLoc; } child_range children() { return child_range(&Condition, &Condition + 1); } @@ -320,7 +320,7 @@ } }; -/// \brief This represents 'final' clause in the '#pragma omp ...' directive. +/// This represents 'final' clause in the '#pragma omp ...' directive. /// /// \code /// #pragma omp task final(a > 5) @@ -330,17 +330,17 @@ class OMPFinalClause : public OMPClause { friend class OMPClauseReader; - /// \brief Location of '('. + /// Location of '('. SourceLocation LParenLoc; - /// \brief Condition of the 'if' clause. + /// Condition of the 'if' clause. Stmt *Condition = nullptr; - /// \brief Set condition. + /// Set condition. void setCondition(Expr *Cond) { Condition = Cond; } public: - /// \brief Build 'final' clause with condition \a Cond. + /// Build 'final' clause with condition \a Cond. /// /// \param StartLoc Starting location of the clause. /// \param LParenLoc Location of '('. @@ -351,17 +351,17 @@ : OMPClause(OMPC_final, StartLoc, EndLoc), LParenLoc(LParenLoc), Condition(Cond) {} - /// \brief Build an empty clause. + /// Build an empty clause. OMPFinalClause() : OMPClause(OMPC_final, SourceLocation(), SourceLocation()) {} - /// \brief Sets the location of '('. + /// Sets the location of '('. void setLParenLoc(SourceLocation Loc) { LParenLoc = Loc; } - /// \brief Returns the location of '('. + /// Returns the location of '('. SourceLocation getLParenLoc() const { return LParenLoc; } - /// \brief Returns condition. + /// Returns condition. Expr *getCondition() const { return cast_or_null<Expr>(Condition); } child_range children() { return child_range(&Condition, &Condition + 1); } @@ -371,7 +371,7 @@ } }; -/// \brief This represents 'num_threads' clause in the '#pragma omp ...' +/// This represents 'num_threads' clause in the '#pragma omp ...' /// directive. /// /// \code @@ -382,17 +382,17 @@ class OMPNumThreadsClause : public OMPClause, public OMPClauseWithPreInit { friend class OMPClauseReader; - /// \brief Location of '('. + /// Location of '('. SourceLocation LParenLoc; - /// \brief Condition of the 'num_threads' clause. + /// Condition of the 'num_threads' clause. Stmt *NumThreads = nullptr; - /// \brief Set condition. + /// Set condition. void setNumThreads(Expr *NThreads) { NumThreads = NThreads; } public: - /// \brief Build 'num_threads' clause with condition \a NumThreads. + /// Build 'num_threads' clause with condition \a NumThreads. /// /// \param NumThreads Number of threads for the construct. /// \param HelperNumThreads Helper Number of threads for the construct. @@ -411,18 +411,18 @@ setPreInitStmt(HelperNumThreads, CaptureRegion); } - /// \brief Build an empty clause. + /// Build an empty clause. OMPNumThreadsClause() : OMPClause(OMPC_num_threads, SourceLocation(), SourceLocation()), OMPClauseWithPreInit(this) {} - /// \brief Sets the location of '('. + /// Sets the location of '('. void setLParenLoc(SourceLocation Loc) { LParenLoc = Loc; } - /// \brief Returns the location of '('. + /// Returns the location of '('. SourceLocation getLParenLoc() const { return LParenLoc; } - /// \brief Returns number of threads. + /// Returns number of threads. Expr *getNumThreads() const { return cast_or_null<Expr>(NumThreads); } child_range children() { return child_range(&NumThreads, &NumThreads + 1); } @@ -432,7 +432,7 @@ } }; -/// \brief This represents 'safelen' clause in the '#pragma omp ...' +/// This represents 'safelen' clause in the '#pragma omp ...' /// directive. /// /// \code @@ -447,17 +447,17 @@ class OMPSafelenClause : public OMPClause { friend class OMPClauseReader; - /// \brief Location of '('. + /// Location of '('. SourceLocation LParenLoc; - /// \brief Safe iteration space distance. + /// Safe iteration space distance. Stmt *Safelen = nullptr; - /// \brief Set safelen. + /// Set safelen. void setSafelen(Expr *Len) { Safelen = Len; } public: - /// \brief Build 'safelen' clause. + /// Build 'safelen' clause. /// /// \param Len Expression associated with this clause. /// \param StartLoc Starting location of the clause. @@ -467,17 +467,17 @@ : OMPClause(OMPC_safelen, StartLoc, EndLoc), LParenLoc(LParenLoc), Safelen(Len) {} - /// \brief Build an empty clause. + /// Build an empty clause. explicit OMPSafelenClause() : OMPClause(OMPC_safelen, SourceLocation(), SourceLocation()) {} - /// \brief Sets the location of '('. + /// Sets the location of '('. void setLParenLoc(SourceLocation Loc) { LParenLoc = Loc; } - /// \brief Returns the location of '('. + /// Returns the location of '('. SourceLocation getLParenLoc() const { return LParenLoc; } - /// \brief Return safe iteration space distance. + /// Return safe iteration space distance. Expr *getSafelen() const { return cast_or_null<Expr>(Safelen); } child_range children() { return child_range(&Safelen, &Safelen + 1); } @@ -487,7 +487,7 @@ } }; -/// \brief This represents 'simdlen' clause in the '#pragma omp ...' +/// This represents 'simdlen' clause in the '#pragma omp ...' /// directive. /// /// \code @@ -501,17 +501,17 @@ class OMPSimdlenClause : public OMPClause { friend class OMPClauseReader; - /// \brief Location of '('. + /// Location of '('. SourceLocation LParenLoc; - /// \brief Safe iteration space distance. + /// Safe iteration space distance. Stmt *Simdlen = nullptr; - /// \brief Set simdlen. + /// Set simdlen. void setSimdlen(Expr *Len) { Simdlen = Len; } public: - /// \brief Build 'simdlen' clause. + /// Build 'simdlen' clause. /// /// \param Len Expression associated with this clause. /// \param StartLoc Starting location of the clause. @@ -521,17 +521,17 @@ : OMPClause(OMPC_simdlen, StartLoc, EndLoc), LParenLoc(LParenLoc), Simdlen(Len) {} - /// \brief Build an empty clause. + /// Build an empty clause. explicit OMPSimdlenClause() : OMPClause(OMPC_simdlen, SourceLocation(), SourceLocation()) {} - /// \brief Sets the location of '('. + /// Sets the location of '('. void setLParenLoc(SourceLocation Loc) { LParenLoc = Loc; } - /// \brief Returns the location of '('. + /// Returns the location of '('. SourceLocation getLParenLoc() const { return LParenLoc; } - /// \brief Return safe iteration space distance. + /// Return safe iteration space distance. Expr *getSimdlen() const { return cast_or_null<Expr>(Simdlen); } child_range children() { return child_range(&Simdlen, &Simdlen + 1); } @@ -541,7 +541,7 @@ } }; -/// \brief This represents 'collapse' clause in the '#pragma omp ...' +/// This represents 'collapse' clause in the '#pragma omp ...' /// directive. /// /// \code @@ -555,17 +555,17 @@ class OMPCollapseClause : public OMPClause { friend class OMPClauseReader; - /// \brief Location of '('. + /// Location of '('. SourceLocation LParenLoc; - /// \brief Number of for-loops. + /// Number of for-loops. Stmt *NumForLoops = nullptr; - /// \brief Set the number of associated for-loops. + /// Set the number of associated for-loops. void setNumForLoops(Expr *Num) { NumForLoops = Num; } public: - /// \brief Build 'collapse' clause. + /// Build 'collapse' clause. /// /// \param Num Expression associated with this clause. /// \param StartLoc Starting location of the clause. @@ -576,17 +576,17 @@ : OMPClause(OMPC_collapse, StartLoc, EndLoc), LParenLoc(LParenLoc), NumForLoops(Num) {} - /// \brief Build an empty clause. + /// Build an empty clause. explicit OMPCollapseClause() : OMPClause(OMPC_collapse, SourceLocation(), SourceLocation()) {} - /// \brief Sets the location of '('. + /// Sets the location of '('. void setLParenLoc(SourceLocation Loc) { LParenLoc = Loc; } - /// \brief Returns the location of '('. + /// Returns the location of '('. SourceLocation getLParenLoc() const { return LParenLoc; } - /// \brief Return the number of associated for-loops. + /// Return the number of associated for-loops. Expr *getNumForLoops() const { return cast_or_null<Expr>(NumForLoops); } child_range children() { return child_range(&NumForLoops, &NumForLoops + 1); } @@ -596,7 +596,7 @@ } }; -/// \brief This represents 'default' clause in the '#pragma omp ...' directive. +/// This represents 'default' clause in the '#pragma omp ...' directive. /// /// \code /// #pragma omp parallel default(shared) @@ -606,27 +606,27 @@ class OMPDefaultClause : public OMPClause { friend class OMPClauseReader; - /// \brief Location of '('. + /// Location of '('. SourceLocation LParenLoc; - /// \brief A kind of the 'default' clause. + /// A kind of the 'default' clause. OpenMPDefaultClauseKind Kind = OMPC_DEFAULT_unknown; - /// \brief Start location of the kind in source code. + /// Start location of the kind in source code. SourceLocation KindKwLoc; - /// \brief Set kind of the clauses. + /// Set kind of the clauses. /// /// \param K Argument of clause. void setDefaultKind(OpenMPDefaultClauseKind K) { Kind = K; } - /// \brief Set argument location. + /// Set argument location. /// /// \param KLoc Argument location. void setDefaultKindKwLoc(SourceLocation KLoc) { KindKwLoc = KLoc; } public: - /// \brief Build 'default' clause with argument \a A ('none' or 'shared'). + /// Build 'default' clause with argument \a A ('none' or 'shared'). /// /// \param A Argument of the clause ('none' or 'shared'). /// \param ALoc Starting location of the argument. @@ -639,20 +639,20 @@ : OMPClause(OMPC_default, StartLoc, EndLoc), LParenLoc(LParenLoc), Kind(A), KindKwLoc(ALoc) {} - /// \brief Build an empty clause. + /// Build an empty clause. OMPDefaultClause() : OMPClause(OMPC_default, SourceLocation(), SourceLocation()) {} - /// \brief Sets the location of '('. + /// Sets the location of '('. void setLParenLoc(SourceLocation Loc) { LParenLoc = Loc; } - /// \brief Returns the location of '('. + /// Returns the location of '('. SourceLocation getLParenLoc() const { return LParenLoc; } - /// \brief Returns kind of the clause. + /// Returns kind of the clause. OpenMPDefaultClauseKind getDefaultKind() const { return Kind; } - /// \brief Returns location of clause kind. + /// Returns location of clause kind. SourceLocation getDefaultKindKwLoc() const { return KindKwLoc; } child_range children() { @@ -664,7 +664,7 @@ } }; -/// \brief This represents 'proc_bind' clause in the '#pragma omp ...' +/// This represents 'proc_bind' clause in the '#pragma omp ...' /// directive. /// /// \code @@ -675,27 +675,27 @@ class OMPProcBindClause : public OMPClause { friend class OMPClauseReader; - /// \brief Location of '('. + /// Location of '('. SourceLocation LParenLoc; - /// \brief A kind of the 'proc_bind' clause. + /// A kind of the 'proc_bind' clause. OpenMPProcBindClauseKind Kind = OMPC_PROC_BIND_unknown; - /// \brief Start location of the kind in source code. + /// Start location of the kind in source code. SourceLocation KindKwLoc; - /// \brief Set kind of the clause. + /// Set kind of the clause. /// /// \param K Kind of clause. void setProcBindKind(OpenMPProcBindClauseKind K) { Kind = K; } - /// \brief Set clause kind location. + /// Set clause kind location. /// /// \param KLoc Kind location. void setProcBindKindKwLoc(SourceLocation KLoc) { KindKwLoc = KLoc; } public: - /// \brief Build 'proc_bind' clause with argument \a A ('master', 'close' or + /// Build 'proc_bind' clause with argument \a A ('master', 'close' or /// 'spread'). /// /// \param A Argument of the clause ('master', 'close' or 'spread'). @@ -709,20 +709,20 @@ : OMPClause(OMPC_proc_bind, StartLoc, EndLoc), LParenLoc(LParenLoc), Kind(A), KindKwLoc(ALoc) {} - /// \brief Build an empty clause. + /// Build an empty clause. OMPProcBindClause() : OMPClause(OMPC_proc_bind, SourceLocation(), SourceLocation()) {} - /// \brief Sets the location of '('. + /// Sets the location of '('. void setLParenLoc(SourceLocation Loc) { LParenLoc = Loc; } - /// \brief Returns the location of '('. + /// Returns the location of '('. SourceLocation getLParenLoc() const { return LParenLoc; } - /// \brief Returns kind of the clause. + /// Returns kind of the clause. OpenMPProcBindClauseKind getProcBindKind() const { return Kind; } - /// \brief Returns location of clause kind. + /// Returns location of clause kind. SourceLocation getProcBindKindKwLoc() const { return KindKwLoc; } child_range children() { @@ -734,7 +734,7 @@ } }; -/// \brief This represents 'schedule' clause in the '#pragma omp ...' directive. +/// This represents 'schedule' clause in the '#pragma omp ...' directive. /// /// \code /// #pragma omp for schedule(static, 3) @@ -744,58 +744,58 @@ class OMPScheduleClause : public OMPClause, public OMPClauseWithPreInit { friend class OMPClauseReader; - /// \brief Location of '('. + /// Location of '('. SourceLocation LParenLoc; - /// \brief A kind of the 'schedule' clause. + /// A kind of the 'schedule' clause. OpenMPScheduleClauseKind Kind = OMPC_SCHEDULE_unknown; - /// \brief Modifiers for 'schedule' clause. + /// Modifiers for 'schedule' clause. enum {FIRST, SECOND, NUM_MODIFIERS}; OpenMPScheduleClauseModifier Modifiers[NUM_MODIFIERS]; - /// \brief Locations of modifiers. + /// Locations of modifiers. SourceLocation ModifiersLoc[NUM_MODIFIERS]; - /// \brief Start location of the schedule ind in source code. + /// Start location of the schedule ind in source code. SourceLocation KindLoc; - /// \brief Location of ',' (if any). + /// Location of ',' (if any). SourceLocation CommaLoc; - /// \brief Chunk size. + /// Chunk size. Expr *ChunkSize = nullptr; - /// \brief Set schedule kind. + /// Set schedule kind. /// /// \param K Schedule kind. void setScheduleKind(OpenMPScheduleClauseKind K) { Kind = K; } - /// \brief Set the first schedule modifier. + /// Set the first schedule modifier. /// /// \param M Schedule modifier. void setFirstScheduleModifier(OpenMPScheduleClauseModifier M) { Modifiers[FIRST] = M; } - /// \brief Set the second schedule modifier. + /// Set the second schedule modifier. /// /// \param M Schedule modifier. void setSecondScheduleModifier(OpenMPScheduleClauseModifier M) { Modifiers[SECOND] = M; } - /// \brief Set location of the first schedule modifier. + /// Set location of the first schedule modifier. void setFirstScheduleModifierLoc(SourceLocation Loc) { ModifiersLoc[FIRST] = Loc; } - /// \brief Set location of the second schedule modifier. + /// Set location of the second schedule modifier. void setSecondScheduleModifierLoc(SourceLocation Loc) { ModifiersLoc[SECOND] = Loc; } - /// \brief Set schedule modifier location. + /// Set schedule modifier location. /// /// \param M Schedule modifier location. void setScheduleModifer(OpenMPScheduleClauseModifier M) { @@ -807,28 +807,28 @@ } } - /// \brief Sets the location of '('. + /// Sets the location of '('. /// /// \param Loc Location of '('. void setLParenLoc(SourceLocation Loc) { LParenLoc = Loc; } - /// \brief Set schedule kind start location. + /// Set schedule kind start location. /// /// \param KLoc Schedule kind location. void setScheduleKindLoc(SourceLocation KLoc) { KindLoc = KLoc; } - /// \brief Set location of ','. + /// Set location of ','. /// /// \param Loc Location of ','. void setCommaLoc(SourceLocation Loc) { CommaLoc = Loc; } - /// \brief Set chunk size. + /// Set chunk size. /// /// \param E Chunk size. void setChunkSize(Expr *E) { ChunkSize = E; } public: - /// \brief Build 'schedule' clause with schedule kind \a Kind and chunk size + /// Build 'schedule' clause with schedule kind \a Kind and chunk size /// expression \a ChunkSize. /// /// \param StartLoc Starting location of the clause. @@ -859,7 +859,7 @@ ModifiersLoc[SECOND] = M2Loc; } - /// \brief Build an empty clause. + /// Build an empty clause. explicit OMPScheduleClause() : OMPClause(OMPC_schedule, SourceLocation(), SourceLocation()), OMPClauseWithPreInit(this) { @@ -867,42 +867,42 @@ Modifiers[SECOND] = OMPC_SCHEDULE_MODIFIER_unknown; } - /// \brief Get kind of the clause. + /// Get kind of the clause. OpenMPScheduleClauseKind getScheduleKind() const { return Kind; } - /// \brief Get the first modifier of the clause. + /// Get the first modifier of the clause. OpenMPScheduleClauseModifier getFirstScheduleModifier() const { return Modifiers[FIRST]; } - /// \brief Get the second modifier of the clause. + /// Get the second modifier of the clause. OpenMPScheduleClauseModifier getSecondScheduleModifier() const { return Modifiers[SECOND]; } - /// \brief Get location of '('. + /// Get location of '('. SourceLocation getLParenLoc() { return LParenLoc; } - /// \brief Get kind location. + /// Get kind location. SourceLocation getScheduleKindLoc() { return KindLoc; } - /// \brief Get the first modifier location. + /// Get the first modifier location. SourceLocation getFirstScheduleModifierLoc() const { return ModifiersLoc[FIRST]; } - /// \brief Get the second modifier location. + /// Get the second modifier location. SourceLocation getSecondScheduleModifierLoc() const { return ModifiersLoc[SECOND]; } - /// \brief Get location of ','. + /// Get location of ','. SourceLocation getCommaLoc() { return CommaLoc; } - /// \brief Get chunk size. + /// Get chunk size. Expr *getChunkSize() { return ChunkSize; } - /// \brief Get chunk size. + /// Get chunk size. const Expr *getChunkSize() const { return ChunkSize; } child_range children() { @@ -915,7 +915,7 @@ } }; -/// \brief This represents 'ordered' clause in the '#pragma omp ...' directive. +/// This represents 'ordered' clause in the '#pragma omp ...' directive. /// /// \code /// #pragma omp for ordered (2) @@ -925,17 +925,17 @@ class OMPOrderedClause : public OMPClause { friend class OMPClauseReader; - /// \brief Location of '('. + /// Location of '('. SourceLocation LParenLoc; - /// \brief Number of for-loops. + /// Number of for-loops. Stmt *NumForLoops = nullptr; - /// \brief Set the number of associated for-loops. + /// Set the number of associated for-loops. void setNumForLoops(Expr *Num) { NumForLoops = Num; } public: - /// \brief Build 'ordered' clause. + /// Build 'ordered' clause. /// /// \param Num Expression, possibly associated with this clause. /// \param StartLoc Starting location of the clause. @@ -946,17 +946,17 @@ : OMPClause(OMPC_ordered, StartLoc, EndLoc), LParenLoc(LParenLoc), NumForLoops(Num) {} - /// \brief Build an empty clause. + /// Build an empty clause. explicit OMPOrderedClause() : OMPClause(OMPC_ordered, SourceLocation(), SourceLocation()) {} - /// \brief Sets the location of '('. + /// Sets the location of '('. void setLParenLoc(SourceLocation Loc) { LParenLoc = Loc; } - /// \brief Returns the location of '('. + /// Returns the location of '('. SourceLocation getLParenLoc() const { return LParenLoc; } - /// \brief Return the number of associated for-loops. + /// Return the number of associated for-loops. Expr *getNumForLoops() const { return cast_or_null<Expr>(NumForLoops); } child_range children() { return child_range(&NumForLoops, &NumForLoops + 1); } @@ -966,7 +966,7 @@ } }; -/// \brief This represents 'nowait' clause in the '#pragma omp ...' directive. +/// This represents 'nowait' clause in the '#pragma omp ...' directive. /// /// \code /// #pragma omp for nowait @@ -974,14 +974,14 @@ /// In this example directive '#pragma omp for' has 'nowait' clause. class OMPNowaitClause : public OMPClause { public: - /// \brief Build 'nowait' clause. + /// Build 'nowait' clause. /// /// \param StartLoc Starting location of the clause. /// \param EndLoc Ending location of the clause. OMPNowaitClause(SourceLocation StartLoc, SourceLocation EndLoc) : OMPClause(OMPC_nowait, StartLoc, EndLoc) {} - /// \brief Build an empty clause. + /// Build an empty clause. OMPNowaitClause() : OMPClause(OMPC_nowait, SourceLocation(), SourceLocation()) {} @@ -994,7 +994,7 @@ } }; -/// \brief This represents 'untied' clause in the '#pragma omp ...' directive. +/// This represents 'untied' clause in the '#pragma omp ...' directive. /// /// \code /// #pragma omp task untied @@ -1002,14 +1002,14 @@ /// In this example directive '#pragma omp task' has 'untied' clause. class OMPUntiedClause : public OMPClause { public: - /// \brief Build 'untied' clause. + /// Build 'untied' clause. /// /// \param StartLoc Starting location of the clause. /// \param EndLoc Ending location of the clause. OMPUntiedClause(SourceLocation StartLoc, SourceLocation EndLoc) : OMPClause(OMPC_untied, StartLoc, EndLoc) {} - /// \brief Build an empty clause. + /// Build an empty clause. OMPUntiedClause() : OMPClause(OMPC_untied, SourceLocation(), SourceLocation()) {} @@ -1022,7 +1022,7 @@ } }; -/// \brief This represents 'mergeable' clause in the '#pragma omp ...' +/// This represents 'mergeable' clause in the '#pragma omp ...' /// directive. /// /// \code @@ -1031,14 +1031,14 @@ /// In this example directive '#pragma omp task' has 'mergeable' clause. class OMPMergeableClause : public OMPClause { public: - /// \brief Build 'mergeable' clause. + /// Build 'mergeable' clause. /// /// \param StartLoc Starting location of the clause. /// \param EndLoc Ending location of the clause. OMPMergeableClause(SourceLocation StartLoc, SourceLocation EndLoc) : OMPClause(OMPC_mergeable, StartLoc, EndLoc) {} - /// \brief Build an empty clause. + /// Build an empty clause. OMPMergeableClause() : OMPClause(OMPC_mergeable, SourceLocation(), SourceLocation()) {} @@ -1051,7 +1051,7 @@ } }; -/// \brief This represents 'read' clause in the '#pragma omp atomic' directive. +/// This represents 'read' clause in the '#pragma omp atomic' directive. /// /// \code /// #pragma omp atomic read @@ -1059,14 +1059,14 @@ /// In this example directive '#pragma omp atomic' has 'read' clause. class OMPReadClause : public OMPClause { public: - /// \brief Build 'read' clause. + /// Build 'read' clause. /// /// \param StartLoc Starting location of the clause. /// \param EndLoc Ending location of the clause. OMPReadClause(SourceLocation StartLoc, SourceLocation EndLoc) : OMPClause(OMPC_read, StartLoc, EndLoc) {} - /// \brief Build an empty clause. + /// Build an empty clause. OMPReadClause() : OMPClause(OMPC_read, SourceLocation(), SourceLocation()) {} child_range children() { @@ -1078,7 +1078,7 @@ } }; -/// \brief This represents 'write' clause in the '#pragma omp atomic' directive. +/// This represents 'write' clause in the '#pragma omp atomic' directive. /// /// \code /// #pragma omp atomic write @@ -1086,14 +1086,14 @@ /// In this example directive '#pragma omp atomic' has 'write' clause. class OMPWriteClause : public OMPClause { public: - /// \brief Build 'write' clause. + /// Build 'write' clause. /// /// \param StartLoc Starting location of the clause. /// \param EndLoc Ending location of the clause. OMPWriteClause(SourceLocation StartLoc, SourceLocation EndLoc) : OMPClause(OMPC_write, StartLoc, EndLoc) {} - /// \brief Build an empty clause. + /// Build an empty clause. OMPWriteClause() : OMPClause(OMPC_write, SourceLocation(), SourceLocation()) {} @@ -1106,7 +1106,7 @@ } }; -/// \brief This represents 'update' clause in the '#pragma omp atomic' +/// This represents 'update' clause in the '#pragma omp atomic' /// directive. /// /// \code @@ -1115,14 +1115,14 @@ /// In this example directive '#pragma omp atomic' has 'update' clause. class OMPUpdateClause : public OMPClause { public: - /// \brief Build 'update' clause. + /// Build 'update' clause. /// /// \param StartLoc Starting location of the clause. /// \param EndLoc Ending location of the clause. OMPUpdateClause(SourceLocation StartLoc, SourceLocation EndLoc) : OMPClause(OMPC_update, StartLoc, EndLoc) {} - /// \brief Build an empty clause. + /// Build an empty clause. OMPUpdateClause() : OMPClause(OMPC_update, SourceLocation(), SourceLocation()) {} @@ -1135,7 +1135,7 @@ } }; -/// \brief This represents 'capture' clause in the '#pragma omp atomic' +/// This represents 'capture' clause in the '#pragma omp atomic' /// directive. /// /// \code @@ -1144,14 +1144,14 @@ /// In this example directive '#pragma omp atomic' has 'capture' clause. class OMPCaptureClause : public OMPClause { public: - /// \brief Build 'capture' clause. + /// Build 'capture' clause. /// /// \param StartLoc Starting location of the clause. /// \param EndLoc Ending location of the clause. OMPCaptureClause(SourceLocation StartLoc, SourceLocation EndLoc) : OMPClause(OMPC_capture, StartLoc, EndLoc) {} - /// \brief Build an empty clause. + /// Build an empty clause. OMPCaptureClause() : OMPClause(OMPC_capture, SourceLocation(), SourceLocation()) {} @@ -1164,7 +1164,7 @@ } }; -/// \brief This represents 'seq_cst' clause in the '#pragma omp atomic' +/// This represents 'seq_cst' clause in the '#pragma omp atomic' /// directive. /// /// \code @@ -1173,14 +1173,14 @@ /// In this example directive '#pragma omp atomic' has 'seq_cst' clause. class OMPSeqCstClause : public OMPClause { public: - /// \brief Build 'seq_cst' clause. + /// Build 'seq_cst' clause. /// /// \param StartLoc Starting location of the clause. /// \param EndLoc Ending location of the clause. OMPSeqCstClause(SourceLocation StartLoc, SourceLocation EndLoc) : OMPClause(OMPC_seq_cst, StartLoc, EndLoc) {} - /// \brief Build an empty clause. + /// Build an empty clause. OMPSeqCstClause() : OMPClause(OMPC_seq_cst, SourceLocation(), SourceLocation()) {} @@ -1193,7 +1193,7 @@ } }; -/// \brief This represents clause 'private' in the '#pragma omp ...' directives. +/// This represents clause 'private' in the '#pragma omp ...' directives. /// /// \code /// #pragma omp parallel private(a,b) @@ -1207,7 +1207,7 @@ friend OMPVarListClause; friend TrailingObjects; - /// \brief Build clause with number of variables \a N. + /// Build clause with number of variables \a N. /// /// \param StartLoc Starting location of the clause. /// \param LParenLoc Location of '('. @@ -1218,7 +1218,7 @@ : OMPVarListClause<OMPPrivateClause>(OMPC_private, StartLoc, LParenLoc, EndLoc, N) {} - /// \brief Build an empty clause. + /// Build an empty clause. /// /// \param N Number of variables. explicit OMPPrivateClause(unsigned N) @@ -1226,12 +1226,12 @@ SourceLocation(), SourceLocation(), N) {} - /// \brief Sets the list of references to private copies with initializers for + /// Sets the list of references to private copies with initializers for /// new private variables. /// \param VL List of references. void setPrivateCopies(ArrayRef<Expr *> VL); - /// \brief Gets the list of references to private copies with initializers for + /// Gets the list of references to private copies with initializers for /// new private variables. MutableArrayRef<Expr *> getPrivateCopies() { return MutableArrayRef<Expr *>(varlist_end(), varlist_size()); @@ -1241,7 +1241,7 @@ } public: - /// \brief Creates clause with a list of variables \a VL. + /// Creates clause with a list of variables \a VL. /// /// \param C AST context. /// \param StartLoc Starting location of the clause. @@ -1254,7 +1254,7 @@ SourceLocation EndLoc, ArrayRef<Expr *> VL, ArrayRef<Expr *> PrivateVL); - /// \brief Creates an empty clause with the place for \a N variables. + /// Creates an empty clause with the place for \a N variables. /// /// \param C AST context. /// \param N The number of variables. @@ -1286,7 +1286,7 @@ } }; -/// \brief This represents clause 'firstprivate' in the '#pragma omp ...' +/// This represents clause 'firstprivate' in the '#pragma omp ...' /// directives. /// /// \code @@ -1302,7 +1302,7 @@ friend OMPVarListClause; friend TrailingObjects; - /// \brief Build clause with number of variables \a N. + /// Build clause with number of variables \a N. /// /// \param StartLoc Starting location of the clause. /// \param LParenLoc Location of '('. @@ -1314,7 +1314,7 @@ LParenLoc, EndLoc, N), OMPClauseWithPreInit(this) {} - /// \brief Build an empty clause. + /// Build an empty clause. /// /// \param N Number of variables. explicit OMPFirstprivateClause(unsigned N) @@ -1323,12 +1323,12 @@ SourceLocation(), N), OMPClauseWithPreInit(this) {} - /// \brief Sets the list of references to private copies with initializers for + /// Sets the list of references to private copies with initializers for /// new private variables. /// \param VL List of references. void setPrivateCopies(ArrayRef<Expr *> VL); - /// \brief Gets the list of references to private copies with initializers for + /// Gets the list of references to private copies with initializers for /// new private variables. MutableArrayRef<Expr *> getPrivateCopies() { return MutableArrayRef<Expr *>(varlist_end(), varlist_size()); @@ -1337,12 +1337,12 @@ return llvm::makeArrayRef(varlist_end(), varlist_size()); } - /// \brief Sets the list of references to initializer variables for new + /// Sets the list of references to initializer variables for new /// private variables. /// \param VL List of references. void setInits(ArrayRef<Expr *> VL); - /// \brief Gets the list of references to initializer variables for new + /// Gets the list of references to initializer variables for new /// private variables. MutableArrayRef<Expr *> getInits() { return MutableArrayRef<Expr *>(getPrivateCopies().end(), varlist_size()); @@ -1352,7 +1352,7 @@ } public: - /// \brief Creates clause with a list of variables \a VL. + /// Creates clause with a list of variables \a VL. /// /// \param C AST context. /// \param StartLoc Starting location of the clause. @@ -1370,7 +1370,7 @@ SourceLocation EndLoc, ArrayRef<Expr *> VL, ArrayRef<Expr *> PrivateVL, ArrayRef<Expr *> InitVL, Stmt *PreInit); - /// \brief Creates an empty clause with the place for \a N variables. + /// Creates an empty clause with the place for \a N variables. /// /// \param C AST context. /// \param N The number of variables. @@ -1413,7 +1413,7 @@ } }; -/// \brief This represents clause 'lastprivate' in the '#pragma omp ...' +/// This represents clause 'lastprivate' in the '#pragma omp ...' /// directives. /// /// \code @@ -1445,7 +1445,7 @@ friend OMPVarListClause; friend TrailingObjects; - /// \brief Build clause with number of variables \a N. + /// Build clause with number of variables \a N. /// /// \param StartLoc Starting location of the clause. /// \param LParenLoc Location of '('. @@ -1457,7 +1457,7 @@ LParenLoc, EndLoc, N), OMPClauseWithPostUpdate(this) {} - /// \brief Build an empty clause. + /// Build an empty clause. /// /// \param N Number of variables. explicit OMPLastprivateClause(unsigned N) @@ -1466,7 +1466,7 @@ SourceLocation(), N), OMPClauseWithPostUpdate(this) {} - /// \brief Get the list of helper expressions for initialization of private + /// Get the list of helper expressions for initialization of private /// copies for lastprivate variables. MutableArrayRef<Expr *> getPrivateCopies() { return MutableArrayRef<Expr *>(varlist_end(), varlist_size()); @@ -1475,13 +1475,13 @@ return llvm::makeArrayRef(varlist_end(), varlist_size()); } - /// \brief Set list of helper expressions, required for proper codegen of the + /// Set list of helper expressions, required for proper codegen of the /// clause. These expressions represent private variables (for arrays, single /// array element) in the final assignment statement performed by the /// lastprivate clause. void setSourceExprs(ArrayRef<Expr *> SrcExprs); - /// \brief Get the list of helper source expressions. + /// Get the list of helper source expressions. MutableArrayRef<Expr *> getSourceExprs() { return MutableArrayRef<Expr *>(getPrivateCopies().end(), varlist_size()); } @@ -1489,13 +1489,13 @@ return llvm::makeArrayRef(getPrivateCopies().end(), varlist_size()); } - /// \brief Set list of helper expressions, required for proper codegen of the + /// Set list of helper expressions, required for proper codegen of the /// clause. These expressions represent original variables (for arrays, single /// array element) in the final assignment statement performed by the /// lastprivate clause. void setDestinationExprs(ArrayRef<Expr *> DstExprs); - /// \brief Get the list of helper destination expressions. + /// Get the list of helper destination expressions. MutableArrayRef<Expr *> getDestinationExprs() { return MutableArrayRef<Expr *>(getSourceExprs().end(), varlist_size()); } @@ -1503,12 +1503,12 @@ return llvm::makeArrayRef(getSourceExprs().end(), varlist_size()); } - /// \brief Set list of helper assignment expressions, required for proper + /// Set list of helper assignment expressions, required for proper /// codegen of the clause. These expressions are assignment expressions that /// assign private copy of the variable to original variable. void setAssignmentOps(ArrayRef<Expr *> AssignmentOps); - /// \brief Get the list of helper assignment expressions. + /// Get the list of helper assignment expressions. MutableArrayRef<Expr *> getAssignmentOps() { return MutableArrayRef<Expr *>(getDestinationExprs().end(), varlist_size()); } @@ -1517,7 +1517,7 @@ } public: - /// \brief Creates clause with a list of variables \a VL. + /// Creates clause with a list of variables \a VL. /// /// \param C AST context. /// \param StartLoc Starting location of the clause. @@ -1547,7 +1547,7 @@ ArrayRef<Expr *> DstExprs, ArrayRef<Expr *> AssignmentOps, Stmt *PreInit, Expr *PostUpdate); - /// \brief Creates an empty clause with the place for \a N variables. + /// Creates an empty clause with the place for \a N variables. /// /// \param C AST context. /// \param N The number of variables. @@ -1559,7 +1559,7 @@ using helper_expr_const_range = llvm::iterator_range<helper_expr_const_iterator>; - /// \brief Set list of helper expressions, required for generation of private + /// Set list of helper expressions, required for generation of private /// copies of original lastprivate variables. void setPrivateCopies(ArrayRef<Expr *> PrivateCopies); @@ -1612,7 +1612,7 @@ } }; -/// \brief This represents clause 'shared' in the '#pragma omp ...' directives. +/// This represents clause 'shared' in the '#pragma omp ...' directives. /// /// \code /// #pragma omp parallel shared(a,b) @@ -1625,7 +1625,7 @@ friend OMPVarListClause; friend TrailingObjects; - /// \brief Build clause with number of variables \a N. + /// Build clause with number of variables \a N. /// /// \param StartLoc Starting location of the clause. /// \param LParenLoc Location of '('. @@ -1636,7 +1636,7 @@ : OMPVarListClause<OMPSharedClause>(OMPC_shared, StartLoc, LParenLoc, EndLoc, N) {} - /// \brief Build an empty clause. + /// Build an empty clause. /// /// \param N Number of variables. explicit OMPSharedClause(unsigned N) @@ -1645,7 +1645,7 @@ N) {} public: - /// \brief Creates clause with a list of variables \a VL. + /// Creates clause with a list of variables \a VL. /// /// \param C AST context. /// \param StartLoc Starting location of the clause. @@ -1656,7 +1656,7 @@ SourceLocation LParenLoc, SourceLocation EndLoc, ArrayRef<Expr *> VL); - /// \brief Creates an empty clause with \a N variables. + /// Creates an empty clause with \a N variables. /// /// \param C AST context. /// \param N The number of variables. @@ -1672,7 +1672,7 @@ } }; -/// \brief This represents clause 'reduction' in the '#pragma omp ...' +/// This represents clause 'reduction' in the '#pragma omp ...' /// directives. /// /// \code @@ -1688,16 +1688,16 @@ friend OMPVarListClause; friend TrailingObjects; - /// \brief Location of ':'. + /// Location of ':'. SourceLocation ColonLoc; - /// \brief Nested name specifier for C++. + /// Nested name specifier for C++. NestedNameSpecifierLoc QualifierLoc; - /// \brief Name of custom operator. + /// Name of custom operator. DeclarationNameInfo NameInfo; - /// \brief Build clause with number of variables \a N. + /// Build clause with number of variables \a N. /// /// \param StartLoc Starting location of the clause. /// \param LParenLoc Location of '('. @@ -1715,7 +1715,7 @@ OMPClauseWithPostUpdate(this), ColonLoc(ColonLoc), QualifierLoc(QualifierLoc), NameInfo(NameInfo) {} - /// \brief Build an empty clause. + /// Build an empty clause. /// /// \param N Number of variables. explicit OMPReductionClause(unsigned N) @@ -1724,21 +1724,21 @@ N), OMPClauseWithPostUpdate(this) {} - /// \brief Sets location of ':' symbol in clause. + /// Sets location of ':' symbol in clause. void setColonLoc(SourceLocation CL) { ColonLoc = CL; } - /// \brief Sets the name info for specified reduction identifier. + /// Sets the name info for specified reduction identifier. void setNameInfo(DeclarationNameInfo DNI) { NameInfo = DNI; } - /// \brief Sets the nested name specifier. + /// Sets the nested name specifier. void setQualifierLoc(NestedNameSpecifierLoc NSL) { QualifierLoc = NSL; } - /// \brief Set list of helper expressions, required for proper codegen of the + /// Set list of helper expressions, required for proper codegen of the /// clause. These expressions represent private copy of the reduction /// variable. void setPrivates(ArrayRef<Expr *> Privates); - /// \brief Get the list of helper privates. + /// Get the list of helper privates. MutableArrayRef<Expr *> getPrivates() { return MutableArrayRef<Expr *>(varlist_end(), varlist_size()); } @@ -1746,12 +1746,12 @@ return llvm::makeArrayRef(varlist_end(), varlist_size()); } - /// \brief Set list of helper expressions, required for proper codegen of the + /// Set list of helper expressions, required for proper codegen of the /// clause. These expressions represent LHS expression in the final /// reduction expression performed by the reduction clause. void setLHSExprs(ArrayRef<Expr *> LHSExprs); - /// \brief Get the list of helper LHS expressions. + /// Get the list of helper LHS expressions. MutableArrayRef<Expr *> getLHSExprs() { return MutableArrayRef<Expr *>(getPrivates().end(), varlist_size()); } @@ -1759,14 +1759,14 @@ return llvm::makeArrayRef(getPrivates().end(), varlist_size()); } - /// \brief Set list of helper expressions, required for proper codegen of the + /// Set list of helper expressions, required for proper codegen of the /// clause. These expressions represent RHS expression in the final /// reduction expression performed by the reduction clause. /// Also, variables in these expressions are used for proper initialization of /// reduction copies. void setRHSExprs(ArrayRef<Expr *> RHSExprs); - /// \brief Get the list of helper destination expressions. + /// Get the list of helper destination expressions. MutableArrayRef<Expr *> getRHSExprs() { return MutableArrayRef<Expr *>(getLHSExprs().end(), varlist_size()); } @@ -1774,13 +1774,13 @@ return llvm::makeArrayRef(getLHSExprs().end(), varlist_size()); } - /// \brief Set list of helper reduction expressions, required for proper + /// Set list of helper reduction expressions, required for proper /// codegen of the clause. These expressions are binary expressions or /// operator/custom reduction call that calculates new value from source /// helper expressions to destination helper expressions. void setReductionOps(ArrayRef<Expr *> ReductionOps); - /// \brief Get the list of helper reduction expressions. + /// Get the list of helper reduction expressions. MutableArrayRef<Expr *> getReductionOps() { return MutableArrayRef<Expr *>(getRHSExprs().end(), varlist_size()); } @@ -1789,7 +1789,7 @@ } public: - /// \brief Creates clause with a list of variables \a VL. + /// Creates clause with a list of variables \a VL. /// /// \param StartLoc Starting location of the clause. /// \param LParenLoc Location of '('. @@ -1829,19 +1829,19 @@ ArrayRef<Expr *> LHSExprs, ArrayRef<Expr *> RHSExprs, ArrayRef<Expr *> ReductionOps, Stmt *PreInit, Expr *PostUpdate); - /// \brief Creates an empty clause with the place for \a N variables. + /// Creates an empty clause with the place for \a N variables. /// /// \param C AST context. /// \param N The number of variables. static OMPReductionClause *CreateEmpty(const ASTContext &C, unsigned N); - /// \brief Gets location of ':' symbol in clause. + /// Gets location of ':' symbol in clause. SourceLocation getColonLoc() const { return ColonLoc; } - /// \brief Gets the name info for specified reduction identifier. + /// Gets the name info for specified reduction identifier. const DeclarationNameInfo &getNameInfo() const { return NameInfo; } - /// \brief Gets the nested name specifier. + /// Gets the nested name specifier. NestedNameSpecifierLoc getQualifierLoc() const { return QualifierLoc; } using helper_expr_iterator = MutableArrayRef<Expr *>::iterator; @@ -2357,7 +2357,7 @@ } }; -/// \brief This represents clause 'linear' in the '#pragma omp ...' +/// This represents clause 'linear' in the '#pragma omp ...' /// directives. /// /// \code @@ -2373,22 +2373,22 @@ friend OMPVarListClause; friend TrailingObjects; - /// \brief Modifier of 'linear' clause. + /// Modifier of 'linear' clause. OpenMPLinearClauseKind Modifier = OMPC_LINEAR_val; - /// \brief Location of linear modifier if any. + /// Location of linear modifier if any. SourceLocation ModifierLoc; - /// \brief Location of ':'. + /// Location of ':'. SourceLocation ColonLoc; - /// \brief Sets the linear step for clause. + /// Sets the linear step for clause. void setStep(Expr *Step) { *(getFinals().end()) = Step; } - /// \brief Sets the expression to calculate linear step for clause. + /// Sets the expression to calculate linear step for clause. void setCalcStep(Expr *CalcStep) { *(getFinals().end() + 1) = CalcStep; } - /// \brief Build 'linear' clause with given number of variables \a NumVars. + /// Build 'linear' clause with given number of variables \a NumVars. /// /// \param StartLoc Starting location of the clause. /// \param LParenLoc Location of '('. @@ -2404,7 +2404,7 @@ OMPClauseWithPostUpdate(this), Modifier(Modifier), ModifierLoc(ModifierLoc), ColonLoc(ColonLoc) {} - /// \brief Build an empty clause. + /// Build an empty clause. /// /// \param NumVars Number of variables. explicit OMPLinearClause(unsigned NumVars) @@ -2413,7 +2413,7 @@ NumVars), OMPClauseWithPostUpdate(this) {} - /// \brief Gets the list of initial values for linear variables. + /// Gets the list of initial values for linear variables. /// /// There are NumVars expressions with initial values allocated after the /// varlist, they are followed by NumVars update expressions (used to update @@ -2439,7 +2439,7 @@ return llvm::makeArrayRef(getPrivates().end(), varlist_size()); } - /// \brief Sets the list of update expressions for linear variables. + /// Sets the list of update expressions for linear variables. MutableArrayRef<Expr *> getUpdates() { return MutableArrayRef<Expr *>(getInits().end(), varlist_size()); } @@ -2447,7 +2447,7 @@ return llvm::makeArrayRef(getInits().end(), varlist_size()); } - /// \brief Sets the list of final update expressions for linear variables. + /// Sets the list of final update expressions for linear variables. MutableArrayRef<Expr *> getFinals() { return MutableArrayRef<Expr *>(getUpdates().end(), varlist_size()); } @@ -2455,16 +2455,16 @@ return llvm::makeArrayRef(getUpdates().end(), varlist_size()); } - /// \brief Sets the list of the copies of original linear variables. + /// Sets the list of the copies of original linear variables. /// \param PL List of expressions. void setPrivates(ArrayRef<Expr *> PL); - /// \brief Sets the list of the initial values for linear variables. + /// Sets the list of the initial values for linear variables. /// \param IL List of expressions. void setInits(ArrayRef<Expr *> IL); public: - /// \brief Creates clause with a list of variables \a VL and a linear step + /// Creates clause with a list of variables \a VL and a linear step /// \a Step. /// /// \param C AST Context. @@ -2490,47 +2490,47 @@ ArrayRef<Expr *> PL, ArrayRef<Expr *> IL, Expr *Step, Expr *CalcStep, Stmt *PreInit, Expr *PostUpdate); - /// \brief Creates an empty clause with the place for \a NumVars variables. + /// Creates an empty clause with the place for \a NumVars variables. /// /// \param C AST context. /// \param NumVars Number of variables. static OMPLinearClause *CreateEmpty(const ASTContext &C, unsigned NumVars); - /// \brief Set modifier. + /// Set modifier. void setModifier(OpenMPLinearClauseKind Kind) { Modifier = Kind; } - /// \brief Return modifier. + /// Return modifier. OpenMPLinearClauseKind getModifier() const { return Modifier; } - /// \brief Set modifier location. + /// Set modifier location. void setModifierLoc(SourceLocation Loc) { ModifierLoc = Loc; } - /// \brief Return modifier location. + /// Return modifier location. SourceLocation getModifierLoc() const { return ModifierLoc; } - /// \brief Sets the location of ':'. + /// Sets the location of ':'. void setColonLoc(SourceLocation Loc) { ColonLoc = Loc; } - /// \brief Returns the location of ':'. + /// Returns the location of ':'. SourceLocation getColonLoc() const { return ColonLoc; } - /// \brief Returns linear step. + /// Returns linear step. Expr *getStep() { return *(getFinals().end()); } - /// \brief Returns linear step. + /// Returns linear step. const Expr *getStep() const { return *(getFinals().end()); } - /// \brief Returns expression to calculate linear step. + /// Returns expression to calculate linear step. Expr *getCalcStep() { return *(getFinals().end() + 1); } - /// \brief Returns expression to calculate linear step. + /// Returns expression to calculate linear step. const Expr *getCalcStep() const { return *(getFinals().end() + 1); } - /// \brief Sets the list of update expressions for linear variables. + /// Sets the list of update expressions for linear variables. /// \param UL List of expressions. void setUpdates(ArrayRef<Expr *> UL); - /// \brief Sets the list of final update expressions for linear variables. + /// Sets the list of final update expressions for linear variables. /// \param FL List of expressions. void setFinals(ArrayRef<Expr *> FL); @@ -2596,7 +2596,7 @@ } }; -/// \brief This represents clause 'aligned' in the '#pragma omp ...' +/// This represents clause 'aligned' in the '#pragma omp ...' /// directives. /// /// \code @@ -2611,13 +2611,13 @@ friend OMPVarListClause; friend TrailingObjects; - /// \brief Location of ':'. + /// Location of ':'. SourceLocation ColonLoc; - /// \brief Sets the alignment for clause. + /// Sets the alignment for clause. void setAlignment(Expr *A) { *varlist_end() = A; } - /// \brief Build 'aligned' clause with given number of variables \a NumVars. + /// Build 'aligned' clause with given number of variables \a NumVars. /// /// \param StartLoc Starting location of the clause. /// \param LParenLoc Location of '('. @@ -2631,7 +2631,7 @@ EndLoc, NumVars), ColonLoc(ColonLoc) {} - /// \brief Build an empty clause. + /// Build an empty clause. /// /// \param NumVars Number of variables. explicit OMPAlignedClause(unsigned NumVars) @@ -2640,7 +2640,7 @@ NumVars) {} public: - /// \brief Creates clause with a list of variables \a VL and alignment \a A. + /// Creates clause with a list of variables \a VL and alignment \a A. /// /// \param C AST Context. /// \param StartLoc Starting location of the clause. @@ -2655,22 +2655,22 @@ SourceLocation EndLoc, ArrayRef<Expr *> VL, Expr *A); - /// \brief Creates an empty clause with the place for \a NumVars variables. + /// Creates an empty clause with the place for \a NumVars variables. /// /// \param C AST context. /// \param NumVars Number of variables. static OMPAlignedClause *CreateEmpty(const ASTContext &C, unsigned NumVars); - /// \brief Sets the location of ':'. + /// Sets the location of ':'. void setColonLoc(SourceLocation Loc) { ColonLoc = Loc; } - /// \brief Returns the location of ':'. + /// Returns the location of ':'. SourceLocation getColonLoc() const { return ColonLoc; } - /// \brief Returns alignment. + /// Returns alignment. Expr *getAlignment() { return *varlist_end(); } - /// \brief Returns alignment. + /// Returns alignment. const Expr *getAlignment() const { return *varlist_end(); } child_range children() { @@ -2683,7 +2683,7 @@ } }; -/// \brief This represents clause 'copyin' in the '#pragma omp ...' directives. +/// This represents clause 'copyin' in the '#pragma omp ...' directives. /// /// \code /// #pragma omp parallel copyin(a,b) @@ -2710,7 +2710,7 @@ friend OMPVarListClause; friend TrailingObjects; - /// \brief Build clause with number of variables \a N. + /// Build clause with number of variables \a N. /// /// \param StartLoc Starting location of the clause. /// \param LParenLoc Location of '('. @@ -2721,7 +2721,7 @@ : OMPVarListClause<OMPCopyinClause>(OMPC_copyin, StartLoc, LParenLoc, EndLoc, N) {} - /// \brief Build an empty clause. + /// Build an empty clause. /// /// \param N Number of variables. explicit OMPCopyinClause(unsigned N) @@ -2729,12 +2729,12 @@ SourceLocation(), SourceLocation(), N) {} - /// \brief Set list of helper expressions, required for proper codegen of the + /// Set list of helper expressions, required for proper codegen of the /// clause. These expressions represent source expression in the final /// assignment statement performed by the copyin clause. void setSourceExprs(ArrayRef<Expr *> SrcExprs); - /// \brief Get the list of helper source expressions. + /// Get the list of helper source expressions. MutableArrayRef<Expr *> getSourceExprs() { return MutableArrayRef<Expr *>(varlist_end(), varlist_size()); } @@ -2742,12 +2742,12 @@ return llvm::makeArrayRef(varlist_end(), varlist_size()); } - /// \brief Set list of helper expressions, required for proper codegen of the + /// Set list of helper expressions, required for proper codegen of the /// clause. These expressions represent destination expression in the final /// assignment statement performed by the copyin clause. void setDestinationExprs(ArrayRef<Expr *> DstExprs); - /// \brief Get the list of helper destination expressions. + /// Get the list of helper destination expressions. MutableArrayRef<Expr *> getDestinationExprs() { return MutableArrayRef<Expr *>(getSourceExprs().end(), varlist_size()); } @@ -2755,13 +2755,13 @@ return llvm::makeArrayRef(getSourceExprs().end(), varlist_size()); } - /// \brief Set list of helper assignment expressions, required for proper + /// Set list of helper assignment expressions, required for proper /// codegen of the clause. These expressions are assignment expressions that /// assign source helper expressions to destination helper expressions /// correspondingly. void setAssignmentOps(ArrayRef<Expr *> AssignmentOps); - /// \brief Get the list of helper assignment expressions. + /// Get the list of helper assignment expressions. MutableArrayRef<Expr *> getAssignmentOps() { return MutableArrayRef<Expr *>(getDestinationExprs().end(), varlist_size()); } @@ -2770,7 +2770,7 @@ } public: - /// \brief Creates clause with a list of variables \a VL. + /// Creates clause with a list of variables \a VL. /// /// \param C AST context. /// \param StartLoc Starting location of the clause. @@ -2796,7 +2796,7 @@ SourceLocation EndLoc, ArrayRef<Expr *> VL, ArrayRef<Expr *> SrcExprs, ArrayRef<Expr *> DstExprs, ArrayRef<Expr *> AssignmentOps); - /// \brief Creates an empty clause with \a N variables. + /// Creates an empty clause with \a N variables. /// /// \param C AST context. /// \param N The number of variables. @@ -2847,7 +2847,7 @@ } }; -/// \brief This represents clause 'copyprivate' in the '#pragma omp ...' +/// This represents clause 'copyprivate' in the '#pragma omp ...' /// directives. /// /// \code @@ -2862,7 +2862,7 @@ friend OMPVarListClause; friend TrailingObjects; - /// \brief Build clause with number of variables \a N. + /// Build clause with number of variables \a N. /// /// \param StartLoc Starting location of the clause. /// \param LParenLoc Location of '('. @@ -2873,7 +2873,7 @@ : OMPVarListClause<OMPCopyprivateClause>(OMPC_copyprivate, StartLoc, LParenLoc, EndLoc, N) {} - /// \brief Build an empty clause. + /// Build an empty clause. /// /// \param N Number of variables. explicit OMPCopyprivateClause(unsigned N) @@ -2881,12 +2881,12 @@ OMPC_copyprivate, SourceLocation(), SourceLocation(), SourceLocation(), N) {} - /// \brief Set list of helper expressions, required for proper codegen of the + /// Set list of helper expressions, required for proper codegen of the /// clause. These expressions represent source expression in the final /// assignment statement performed by the copyprivate clause. void setSourceExprs(ArrayRef<Expr *> SrcExprs); - /// \brief Get the list of helper source expressions. + /// Get the list of helper source expressions. MutableArrayRef<Expr *> getSourceExprs() { return MutableArrayRef<Expr *>(varlist_end(), varlist_size()); } @@ -2894,12 +2894,12 @@ return llvm::makeArrayRef(varlist_end(), varlist_size()); } - /// \brief Set list of helper expressions, required for proper codegen of the + /// Set list of helper expressions, required for proper codegen of the /// clause. These expressions represent destination expression in the final /// assignment statement performed by the copyprivate clause. void setDestinationExprs(ArrayRef<Expr *> DstExprs); - /// \brief Get the list of helper destination expressions. + /// Get the list of helper destination expressions. MutableArrayRef<Expr *> getDestinationExprs() { return MutableArrayRef<Expr *>(getSourceExprs().end(), varlist_size()); } @@ -2907,13 +2907,13 @@ return llvm::makeArrayRef(getSourceExprs().end(), varlist_size()); } - /// \brief Set list of helper assignment expressions, required for proper + /// Set list of helper assignment expressions, required for proper /// codegen of the clause. These expressions are assignment expressions that /// assign source helper expressions to destination helper expressions /// correspondingly. void setAssignmentOps(ArrayRef<Expr *> AssignmentOps); - /// \brief Get the list of helper assignment expressions. + /// Get the list of helper assignment expressions. MutableArrayRef<Expr *> getAssignmentOps() { return MutableArrayRef<Expr *>(getDestinationExprs().end(), varlist_size()); } @@ -2922,7 +2922,7 @@ } public: - /// \brief Creates clause with a list of variables \a VL. + /// Creates clause with a list of variables \a VL. /// /// \param C AST context. /// \param StartLoc Starting location of the clause. @@ -2947,7 +2947,7 @@ SourceLocation EndLoc, ArrayRef<Expr *> VL, ArrayRef<Expr *> SrcExprs, ArrayRef<Expr *> DstExprs, ArrayRef<Expr *> AssignmentOps); - /// \brief Creates an empty clause with \a N variables. + /// Creates an empty clause with \a N variables. /// /// \param C AST context. /// \param N The number of variables. @@ -2998,7 +2998,7 @@ } }; -/// \brief This represents implicit clause 'flush' for the '#pragma omp flush' +/// This represents implicit clause 'flush' for the '#pragma omp flush' /// directive. /// This clause does not exist by itself, it can be only as a part of 'omp /// flush' directive. This clause is introduced to keep the original structure @@ -3016,7 +3016,7 @@ friend OMPVarListClause; friend TrailingObjects; - /// \brief Build clause with number of variables \a N. + /// Build clause with number of variables \a N. /// /// \param StartLoc Starting location of the clause. /// \param LParenLoc Location of '('. @@ -3027,7 +3027,7 @@ : OMPVarListClause<OMPFlushClause>(OMPC_flush, StartLoc, LParenLoc, EndLoc, N) {} - /// \brief Build an empty clause. + /// Build an empty clause. /// /// \param N Number of variables. explicit OMPFlushClause(unsigned N) @@ -3036,7 +3036,7 @@ N) {} public: - /// \brief Creates clause with a list of variables \a VL. + /// Creates clause with a list of variables \a VL. /// /// \param C AST context. /// \param StartLoc Starting location of the clause. @@ -3047,7 +3047,7 @@ SourceLocation LParenLoc, SourceLocation EndLoc, ArrayRef<Expr *> VL); - /// \brief Creates an empty clause with \a N variables. + /// Creates an empty clause with \a N variables. /// /// \param C AST context. /// \param N The number of variables. @@ -3063,7 +3063,7 @@ } }; -/// \brief This represents implicit clause 'depend' for the '#pragma omp task' +/// This represents implicit clause 'depend' for the '#pragma omp task' /// directive. /// /// \code @@ -3078,16 +3078,16 @@ friend OMPVarListClause; friend TrailingObjects; - /// \brief Dependency type (one of in, out, inout). + /// Dependency type (one of in, out, inout). OpenMPDependClauseKind DepKind = OMPC_DEPEND_unknown; - /// \brief Dependency type location. + /// Dependency type location. SourceLocation DepLoc; - /// \brief Colon location. + /// Colon location. SourceLocation ColonLoc; - /// \brief Build clause with number of variables \a N. + /// Build clause with number of variables \a N. /// /// \param StartLoc Starting location of the clause. /// \param LParenLoc Location of '('. @@ -3098,7 +3098,7 @@ : OMPVarListClause<OMPDependClause>(OMPC_depend, StartLoc, LParenLoc, EndLoc, N) {} - /// \brief Build an empty clause. + /// Build an empty clause. /// /// \param N Number of variables. explicit OMPDependClause(unsigned N) @@ -3106,17 +3106,17 @@ SourceLocation(), SourceLocation(), N) {} - /// \brief Set dependency kind. + /// Set dependency kind. void setDependencyKind(OpenMPDependClauseKind K) { DepKind = K; } - /// \brief Set dependency kind and its location. + /// Set dependency kind and its location. void setDependencyLoc(SourceLocation Loc) { DepLoc = Loc; } - /// \brief Set colon location. + /// Set colon location. void setColonLoc(SourceLocation Loc) { ColonLoc = Loc; } public: - /// \brief Creates clause with a list of variables \a VL. + /// Creates clause with a list of variables \a VL. /// /// \param C AST context. /// \param StartLoc Starting location of the clause. @@ -3131,19 +3131,19 @@ SourceLocation EndLoc, OpenMPDependClauseKind DepKind, SourceLocation DepLoc, SourceLocation ColonLoc, ArrayRef<Expr *> VL); - /// \brief Creates an empty clause with \a N variables. + /// Creates an empty clause with \a N variables. /// /// \param C AST context. /// \param N The number of variables. static OMPDependClause *CreateEmpty(const ASTContext &C, unsigned N); - /// \brief Get dependency type. + /// Get dependency type. OpenMPDependClauseKind getDependencyKind() const { return DepKind; } - /// \brief Get dependency type location. + /// Get dependency type location. SourceLocation getDependencyLoc() const { return DepLoc; } - /// \brief Get colon location. + /// Get colon location. SourceLocation getColonLoc() const { return ColonLoc; } /// Set the loop counter value for the depend clauses with 'sink|source' kind @@ -3166,7 +3166,7 @@ } }; -/// \brief This represents 'device' clause in the '#pragma omp ...' +/// This represents 'device' clause in the '#pragma omp ...' /// directive. /// /// \code @@ -3177,19 +3177,19 @@ class OMPDeviceClause : public OMPClause, public OMPClauseWithPreInit { friend class OMPClauseReader; - /// \brief Location of '('. + /// Location of '('. SourceLocation LParenLoc; - /// \brief Device number. + /// Device number. Stmt *Device = nullptr; - /// \brief Set the device number. + /// Set the device number. /// /// \param E Device number. void setDevice(Expr *E) { Device = E; } public: - /// \brief Build 'device' clause. + /// Build 'device' clause. /// /// \param E Expression associated with this clause. /// \param CaptureRegion Innermost OpenMP region where expressions in this @@ -3205,21 +3205,21 @@ setPreInitStmt(HelperE, CaptureRegion); } - /// \brief Build an empty clause. + /// Build an empty clause. OMPDeviceClause() : OMPClause(OMPC_device, SourceLocation(), SourceLocation()), OMPClauseWithPreInit(this) {} - /// \brief Sets the location of '('. + /// Sets the location of '('. void setLParenLoc(SourceLocation Loc) { LParenLoc = Loc; } - /// \brief Returns the location of '('. + /// Returns the location of '('. SourceLocation getLParenLoc() const { return LParenLoc; } - /// \brief Return device number. + /// Return device number. Expr *getDevice() { return cast<Expr>(Device); } - /// \brief Return device number. + /// Return device number. Expr *getDevice() const { return cast<Expr>(Device); } child_range children() { return child_range(&Device, &Device + 1); } @@ -3229,7 +3229,7 @@ } }; -/// \brief This represents 'threads' clause in the '#pragma omp ...' directive. +/// This represents 'threads' clause in the '#pragma omp ...' directive. /// /// \code /// #pragma omp ordered threads @@ -3237,14 +3237,14 @@ /// In this example directive '#pragma omp ordered' has simple 'threads' clause. class OMPThreadsClause : public OMPClause { public: - /// \brief Build 'threads' clause. + /// Build 'threads' clause. /// /// \param StartLoc Starting location of the clause. /// \param EndLoc Ending location of the clause. OMPThreadsClause(SourceLocation StartLoc, SourceLocation EndLoc) : OMPClause(OMPC_threads, StartLoc, EndLoc) {} - /// \brief Build an empty clause. + /// Build an empty clause. OMPThreadsClause() : OMPClause(OMPC_threads, SourceLocation(), SourceLocation()) {} @@ -3257,7 +3257,7 @@ } }; -/// \brief This represents 'simd' clause in the '#pragma omp ...' directive. +/// This represents 'simd' clause in the '#pragma omp ...' directive. /// /// \code /// #pragma omp ordered simd @@ -3265,14 +3265,14 @@ /// In this example directive '#pragma omp ordered' has simple 'simd' clause. class OMPSIMDClause : public OMPClause { public: - /// \brief Build 'simd' clause. + /// Build 'simd' clause. /// /// \param StartLoc Starting location of the clause. /// \param EndLoc Ending location of the clause. OMPSIMDClause(SourceLocation StartLoc, SourceLocation EndLoc) : OMPClause(OMPC_simd, StartLoc, EndLoc) {} - /// \brief Build an empty clause. + /// Build an empty clause. OMPSIMDClause() : OMPClause(OMPC_simd, SourceLocation(), SourceLocation()) {} child_range children() { @@ -3284,7 +3284,7 @@ } }; -/// \brief Struct that defines common infrastructure to handle mappable +/// Struct that defines common infrastructure to handle mappable /// expressions used in OpenMP clauses. class OMPClauseMappableExprCommon { public: @@ -3320,29 +3320,29 @@ } }; - // \brief List of components of an expression. This first one is the whole + // List of components of an expression. This first one is the whole // expression and the last one is the base expression. using MappableExprComponentList = SmallVector<MappableComponent, 8>; using MappableExprComponentListRef = ArrayRef<MappableComponent>; - // \brief List of all component lists associated to the same base declaration. + // List of all component lists associated to the same base declaration. // E.g. if both 'S.a' and 'S.b' are a mappable expressions, each will have // their component list but the same base declaration 'S'. using MappableExprComponentLists = SmallVector<MappableExprComponentList, 8>; using MappableExprComponentListsRef = ArrayRef<MappableExprComponentList>; protected: - // \brief Return the total number of elements in a list of component lists. + // Return the total number of elements in a list of component lists. static unsigned getComponentsTotalNumber(MappableExprComponentListsRef ComponentLists); - // \brief Return the total number of elements in a list of declarations. All + // Return the total number of elements in a list of declarations. All // declarations are expected to be canonical. static unsigned getUniqueDeclarationsTotalNumber(ArrayRef<const ValueDecl *> Declarations); }; -/// \brief This represents clauses with a list of expressions that are mappable. +/// This represents clauses with a list of expressions that are mappable. /// Examples of these clauses are 'map' in /// '#pragma omp target [enter|exit] [data]...' directives, and 'to' and 'from /// in '#pragma omp target update...' directives. @@ -3351,17 +3351,17 @@ public OMPClauseMappableExprCommon { friend class OMPClauseReader; - /// \brief Number of unique declarations in this clause. + /// Number of unique declarations in this clause. unsigned NumUniqueDeclarations; - /// \brief Number of component lists in this clause. + /// Number of component lists in this clause. unsigned NumComponentLists; - /// \brief Total number of components in this clause. + /// Total number of components in this clause. unsigned NumComponents; protected: - /// \brief Build a clause for \a NumUniqueDeclarations declarations, \a + /// Build a clause for \a NumUniqueDeclarations declarations, \a /// NumComponentLists total component lists, and \a NumComponents total /// components. /// @@ -3383,7 +3383,7 @@ NumUniqueDeclarations(NumUniqueDeclarations), NumComponentLists(NumComponentLists), NumComponents(NumComponents) {} - /// \brief Get the unique declarations that are in the trailing objects of the + /// Get the unique declarations that are in the trailing objects of the /// class. MutableArrayRef<ValueDecl *> getUniqueDeclsRef() { return MutableArrayRef<ValueDecl *>( @@ -3391,7 +3391,7 @@ NumUniqueDeclarations); } - /// \brief Get the unique declarations that are in the trailing objects of the + /// Get the unique declarations that are in the trailing objects of the /// class. ArrayRef<ValueDecl *> getUniqueDeclsRef() const { return ArrayRef<ValueDecl *>( @@ -3400,7 +3400,7 @@ NumUniqueDeclarations); } - /// \brief Set the unique declarations that are in the trailing objects of the + /// Set the unique declarations that are in the trailing objects of the /// class. void setUniqueDecls(ArrayRef<ValueDecl *> UDs) { assert(UDs.size() == NumUniqueDeclarations && @@ -3408,7 +3408,7 @@ std::copy(UDs.begin(), UDs.end(), getUniqueDeclsRef().begin()); } - /// \brief Get the number of lists per declaration that are in the trailing + /// Get the number of lists per declaration that are in the trailing /// objects of the class. MutableArrayRef<unsigned> getDeclNumListsRef() { return MutableArrayRef<unsigned>( @@ -3416,7 +3416,7 @@ NumUniqueDeclarations); } - /// \brief Get the number of lists per declaration that are in the trailing + /// Get the number of lists per declaration that are in the trailing /// objects of the class. ArrayRef<unsigned> getDeclNumListsRef() const { return ArrayRef<unsigned>( @@ -3424,7 +3424,7 @@ NumUniqueDeclarations); } - /// \brief Set the number of lists per declaration that are in the trailing + /// Set the number of lists per declaration that are in the trailing /// objects of the class. void setDeclNumLists(ArrayRef<unsigned> DNLs) { assert(DNLs.size() == NumUniqueDeclarations && @@ -3432,7 +3432,7 @@ std::copy(DNLs.begin(), DNLs.end(), getDeclNumListsRef().begin()); } - /// \brief Get the cumulative component lists sizes that are in the trailing + /// Get the cumulative component lists sizes that are in the trailing /// objects of the class. They are appended after the number of lists. MutableArrayRef<unsigned> getComponentListSizesRef() { return MutableArrayRef<unsigned>( @@ -3441,7 +3441,7 @@ NumComponentLists); } - /// \brief Get the cumulative component lists sizes that are in the trailing + /// Get the cumulative component lists sizes that are in the trailing /// objects of the class. They are appended after the number of lists. ArrayRef<unsigned> getComponentListSizesRef() const { return ArrayRef<unsigned>( @@ -3450,7 +3450,7 @@ NumComponentLists); } - /// \brief Set the cumulative component lists sizes that are in the trailing + /// Set the cumulative component lists sizes that are in the trailing /// objects of the class. void setComponentListSizes(ArrayRef<unsigned> CLSs) { assert(CLSs.size() == NumComponentLists && @@ -3458,7 +3458,7 @@ std::copy(CLSs.begin(), CLSs.end(), getComponentListSizesRef().begin()); } - /// \brief Get the components that are in the trailing objects of the class. + /// Get the components that are in the trailing objects of the class. MutableArrayRef<MappableComponent> getComponentsRef() { return MutableArrayRef<MappableComponent>( static_cast<T *>(this) @@ -3466,7 +3466,7 @@ NumComponents); } - /// \brief Get the components that are in the trailing objects of the class. + /// Get the components that are in the trailing objects of the class. ArrayRef<MappableComponent> getComponentsRef() const { return ArrayRef<MappableComponent>( static_cast<const T *>(this) @@ -3474,7 +3474,7 @@ NumComponents); } - /// \brief Set the components that are in the trailing objects of the class. + /// Set the components that are in the trailing objects of the class. /// This requires the list sizes so that it can also fill the original /// expressions, which are the first component of each list. void setComponents(ArrayRef<MappableComponent> Components, @@ -3486,7 +3486,7 @@ std::copy(Components.begin(), Components.end(), getComponentsRef().begin()); } - /// \brief Fill the clause information from the list of declarations and + /// Fill the clause information from the list of declarations and /// associated component lists. void setClauseInfo(ArrayRef<ValueDecl *> Declarations, MappableExprComponentListsRef ComponentLists) { @@ -3563,17 +3563,17 @@ } public: - /// \brief Return the number of unique base declarations in this clause. + /// Return the number of unique base declarations in this clause. unsigned getUniqueDeclarationsNum() const { return NumUniqueDeclarations; } - /// \brief Return the number of lists derived from the clause expressions. + /// Return the number of lists derived from the clause expressions. unsigned getTotalComponentListNum() const { return NumComponentLists; } - /// \brief Return the total number of components in all lists derived from the + /// Return the total number of components in all lists derived from the /// clause. unsigned getTotalComponentsNum() const { return NumComponents; } - /// \brief Iterator that browse the components by lists. It also allows + /// Iterator that browse the components by lists. It also allows /// browsing components of a single declaration. class const_component_lists_iterator : public llvm::iterator_adaptor_base< @@ -3603,7 +3603,7 @@ MappableExprComponentListRef::const_iterator End; public: - /// \brief Construct an iterator that scans all lists. + /// Construct an iterator that scans all lists. explicit const_component_lists_iterator( ArrayRef<ValueDecl *> UniqueDecls, ArrayRef<unsigned> DeclsListNum, ArrayRef<unsigned> CumulativeListSizes, @@ -3619,7 +3619,7 @@ RemainingLists = *NumListsCur; } - /// \brief Construct an iterator that scan lists for a given declaration \a + /// Construct an iterator that scan lists for a given declaration \a /// Declaration. explicit const_component_lists_iterator( const ValueDecl *Declaration, ArrayRef<ValueDecl *> UniqueDecls, @@ -3709,7 +3709,7 @@ using const_component_lists_range = llvm::iterator_range<const_component_lists_iterator>; - /// \brief Iterators for all component lists. + /// Iterators for all component lists. const_component_lists_iterator component_lists_begin() const { return const_component_lists_iterator( getUniqueDeclsRef(), getDeclNumListsRef(), getComponentListSizesRef(), @@ -3725,7 +3725,7 @@ return {component_lists_begin(), component_lists_end()}; } - /// \brief Iterators for component lists associated with the provided + /// Iterators for component lists associated with the provided /// declaration. const_component_lists_iterator decl_component_lists_begin(const ValueDecl *VD) const { @@ -3778,7 +3778,7 @@ } }; -/// \brief This represents clause 'map' in the '#pragma omp ...' +/// This represents clause 'map' in the '#pragma omp ...' /// directives. /// /// \code @@ -3807,22 +3807,22 @@ return getUniqueDeclarationsNum() + getTotalComponentListNum(); } - /// \brief Map type modifier for the 'map' clause. + /// Map type modifier for the 'map' clause. OpenMPMapClauseKind MapTypeModifier = OMPC_MAP_unknown; - /// \brief Map type for the 'map' clause. + /// Map type for the 'map' clause. OpenMPMapClauseKind MapType = OMPC_MAP_unknown; - /// \brief Is this an implicit map type or not. + /// Is this an implicit map type or not. bool MapTypeIsImplicit = false; - /// \brief Location of the map type. + /// Location of the map type. SourceLocation MapLoc; - /// \brief Colon location. + /// Colon location. SourceLocation ColonLoc; - /// \brief Build a clause for \a NumVars listed expressions, \a + /// Build a clause for \a NumVars listed expressions, \a /// NumUniqueDeclarations declarations, \a NumComponentLists total component /// lists, and \a NumComponents total expression components. /// @@ -3849,7 +3849,7 @@ MapTypeModifier(MapTypeModifier), MapType(MapType), MapTypeIsImplicit(MapTypeIsImplicit), MapLoc(MapLoc) {} - /// \brief Build an empty clause. + /// Build an empty clause. /// /// \param NumVars Number of expressions listed in this clause. /// \param NumUniqueDeclarations Number of unique base declarations in this @@ -3862,26 +3862,26 @@ OMPC_map, SourceLocation(), SourceLocation(), SourceLocation(), NumVars, NumUniqueDeclarations, NumComponentLists, NumComponents) {} - /// \brief Set type modifier for the clause. + /// Set type modifier for the clause. /// /// \param T Type Modifier for the clause. void setMapTypeModifier(OpenMPMapClauseKind T) { MapTypeModifier = T; } - /// \brief Set type for the clause. + /// Set type for the clause. /// /// \param T Type for the clause. void setMapType(OpenMPMapClauseKind T) { MapType = T; } - /// \brief Set type location. + /// Set type location. /// /// \param TLoc Type location. void setMapLoc(SourceLocation TLoc) { MapLoc = TLoc; } - /// \brief Set colon location. + /// Set colon location. void setColonLoc(SourceLocation Loc) { ColonLoc = Loc; } public: - /// \brief Creates clause with a list of variables \a VL. + /// Creates clause with a list of variables \a VL. /// /// \param C AST context. /// \param StartLoc Starting location of the clause. @@ -3902,7 +3902,7 @@ OpenMPMapClauseKind Type, bool TypeIsImplicit, SourceLocation TypeLoc); - /// \brief Creates an empty clause with the place for \a NumVars original + /// Creates an empty clause with the place for \a NumVars original /// expressions, \a NumUniqueDeclarations declarations, \NumComponentLists /// lists, and \a NumComponents expression components. /// @@ -3918,25 +3918,25 @@ unsigned NumComponentLists, unsigned NumComponents); - /// \brief Fetches mapping kind for the clause. + /// Fetches mapping kind for the clause. OpenMPMapClauseKind getMapType() const LLVM_READONLY { return MapType; } - /// \brief Is this an implicit map type? + /// Is this an implicit map type? /// We have to capture 'IsMapTypeImplicit' from the parser for more /// informative error messages. It helps distinguish map(r) from /// map(tofrom: r), which is important to print more helpful error /// messages for some target directives. bool isImplicitMapType() const LLVM_READONLY { return MapTypeIsImplicit; } - /// \brief Fetches the map type modifier for the clause. + /// Fetches the map type modifier for the clause. OpenMPMapClauseKind getMapTypeModifier() const LLVM_READONLY { return MapTypeModifier; } - /// \brief Fetches location of clause mapping kind. + /// Fetches location of clause mapping kind. SourceLocation getMapLoc() const LLVM_READONLY { return MapLoc; } - /// \brief Get colon location. + /// Get colon location. SourceLocation getColonLoc() const { return ColonLoc; } child_range children() { @@ -3950,7 +3950,7 @@ } }; -/// \brief This represents 'num_teams' clause in the '#pragma omp ...' +/// This represents 'num_teams' clause in the '#pragma omp ...' /// directive. /// /// \code @@ -3961,19 +3961,19 @@ class OMPNumTeamsClause : public OMPClause, public OMPClauseWithPreInit { friend class OMPClauseReader; - /// \brief Location of '('. + /// Location of '('. SourceLocation LParenLoc; - /// \brief NumTeams number. + /// NumTeams number. Stmt *NumTeams = nullptr; - /// \brief Set the NumTeams number. + /// Set the NumTeams number. /// /// \param E NumTeams number. void setNumTeams(Expr *E) { NumTeams = E; } public: - /// \brief Build 'num_teams' clause. + /// Build 'num_teams' clause. /// /// \param E Expression associated with this clause. /// \param HelperE Helper Expression associated with this clause. @@ -3990,21 +3990,21 @@ setPreInitStmt(HelperE, CaptureRegion); } - /// \brief Build an empty clause. + /// Build an empty clause. OMPNumTeamsClause() : OMPClause(OMPC_num_teams, SourceLocation(), SourceLocation()), OMPClauseWithPreInit(this) {} - /// \brief Sets the location of '('. + /// Sets the location of '('. void setLParenLoc(SourceLocation Loc) { LParenLoc = Loc; } - /// \brief Returns the location of '('. + /// Returns the location of '('. SourceLocation getLParenLoc() const { return LParenLoc; } - /// \brief Return NumTeams number. + /// Return NumTeams number. Expr *getNumTeams() { return cast<Expr>(NumTeams); } - /// \brief Return NumTeams number. + /// Return NumTeams number. Expr *getNumTeams() const { return cast<Expr>(NumTeams); } child_range children() { return child_range(&NumTeams, &NumTeams + 1); } @@ -4014,7 +4014,7 @@ } }; -/// \brief This represents 'thread_limit' clause in the '#pragma omp ...' +/// This represents 'thread_limit' clause in the '#pragma omp ...' /// directive. /// /// \code @@ -4025,19 +4025,19 @@ class OMPThreadLimitClause : public OMPClause, public OMPClauseWithPreInit { friend class OMPClauseReader; - /// \brief Location of '('. + /// Location of '('. SourceLocation LParenLoc; - /// \brief ThreadLimit number. + /// ThreadLimit number. Stmt *ThreadLimit = nullptr; - /// \brief Set the ThreadLimit number. + /// Set the ThreadLimit number. /// /// \param E ThreadLimit number. void setThreadLimit(Expr *E) { ThreadLimit = E; } public: - /// \brief Build 'thread_limit' clause. + /// Build 'thread_limit' clause. /// /// \param E Expression associated with this clause. /// \param HelperE Helper Expression associated with this clause. @@ -4055,21 +4055,21 @@ setPreInitStmt(HelperE, CaptureRegion); } - /// \brief Build an empty clause. + /// Build an empty clause. OMPThreadLimitClause() : OMPClause(OMPC_thread_limit, SourceLocation(), SourceLocation()), OMPClauseWithPreInit(this) {} - /// \brief Sets the location of '('. + /// Sets the location of '('. void setLParenLoc(SourceLocation Loc) { LParenLoc = Loc; } - /// \brief Returns the location of '('. + /// Returns the location of '('. SourceLocation getLParenLoc() const { return LParenLoc; } - /// \brief Return ThreadLimit number. + /// Return ThreadLimit number. Expr *getThreadLimit() { return cast<Expr>(ThreadLimit); } - /// \brief Return ThreadLimit number. + /// Return ThreadLimit number. Expr *getThreadLimit() const { return cast<Expr>(ThreadLimit); } child_range children() { return child_range(&ThreadLimit, &ThreadLimit + 1); } @@ -4079,7 +4079,7 @@ } }; -/// \brief This represents 'priority' clause in the '#pragma omp ...' +/// This represents 'priority' clause in the '#pragma omp ...' /// directive. /// /// \code @@ -4090,19 +4090,19 @@ class OMPPriorityClause : public OMPClause { friend class OMPClauseReader; - /// \brief Location of '('. + /// Location of '('. SourceLocation LParenLoc; - /// \brief Priority number. + /// Priority number. Stmt *Priority = nullptr; - /// \brief Set the Priority number. + /// Set the Priority number. /// /// \param E Priority number. void setPriority(Expr *E) { Priority = E; } public: - /// \brief Build 'priority' clause. + /// Build 'priority' clause. /// /// \param E Expression associated with this clause. /// \param StartLoc Starting location of the clause. @@ -4113,20 +4113,20 @@ : OMPClause(OMPC_priority, StartLoc, EndLoc), LParenLoc(LParenLoc), Priority(E) {} - /// \brief Build an empty clause. + /// Build an empty clause. OMPPriorityClause() : OMPClause(OMPC_priority, SourceLocation(), SourceLocation()) {} - /// \brief Sets the location of '('. + /// Sets the location of '('. void setLParenLoc(SourceLocation Loc) { LParenLoc = Loc; } - /// \brief Returns the location of '('. + /// Returns the location of '('. SourceLocation getLParenLoc() const { return LParenLoc; } - /// \brief Return Priority number. + /// Return Priority number. Expr *getPriority() { return cast<Expr>(Priority); } - /// \brief Return Priority number. + /// Return Priority number. Expr *getPriority() const { return cast<Expr>(Priority); } child_range children() { return child_range(&Priority, &Priority + 1); } @@ -4136,7 +4136,7 @@ } }; -/// \brief This represents 'grainsize' clause in the '#pragma omp ...' +/// This represents 'grainsize' clause in the '#pragma omp ...' /// directive. /// /// \code @@ -4147,17 +4147,17 @@ class OMPGrainsizeClause : public OMPClause { friend class OMPClauseReader; - /// \brief Location of '('. + /// Location of '('. SourceLocation LParenLoc; - /// \brief Safe iteration space distance. + /// Safe iteration space distance. Stmt *Grainsize = nullptr; - /// \brief Set safelen. + /// Set safelen. void setGrainsize(Expr *Size) { Grainsize = Size; } public: - /// \brief Build 'grainsize' clause. + /// Build 'grainsize' clause. /// /// \param Size Expression associated with this clause. /// \param StartLoc Starting location of the clause. @@ -4167,17 +4167,17 @@ : OMPClause(OMPC_grainsize, StartLoc, EndLoc), LParenLoc(LParenLoc), Grainsize(Size) {} - /// \brief Build an empty clause. + /// Build an empty clause. explicit OMPGrainsizeClause() : OMPClause(OMPC_grainsize, SourceLocation(), SourceLocation()) {} - /// \brief Sets the location of '('. + /// Sets the location of '('. void setLParenLoc(SourceLocation Loc) { LParenLoc = Loc; } - /// \brief Returns the location of '('. + /// Returns the location of '('. SourceLocation getLParenLoc() const { return LParenLoc; } - /// \brief Return safe iteration space distance. + /// Return safe iteration space distance. Expr *getGrainsize() const { return cast_or_null<Expr>(Grainsize); } child_range children() { return child_range(&Grainsize, &Grainsize + 1); } @@ -4187,7 +4187,7 @@ } }; -/// \brief This represents 'nogroup' clause in the '#pragma omp ...' directive. +/// This represents 'nogroup' clause in the '#pragma omp ...' directive. /// /// \code /// #pragma omp taskloop nogroup @@ -4195,14 +4195,14 @@ /// In this example directive '#pragma omp taskloop' has 'nogroup' clause. class OMPNogroupClause : public OMPClause { public: - /// \brief Build 'nogroup' clause. + /// Build 'nogroup' clause. /// /// \param StartLoc Starting location of the clause. /// \param EndLoc Ending location of the clause. OMPNogroupClause(SourceLocation StartLoc, SourceLocation EndLoc) : OMPClause(OMPC_nogroup, StartLoc, EndLoc) {} - /// \brief Build an empty clause. + /// Build an empty clause. OMPNogroupClause() : OMPClause(OMPC_nogroup, SourceLocation(), SourceLocation()) {} @@ -4215,7 +4215,7 @@ } }; -/// \brief This represents 'num_tasks' clause in the '#pragma omp ...' +/// This represents 'num_tasks' clause in the '#pragma omp ...' /// directive. /// /// \code @@ -4226,17 +4226,17 @@ class OMPNumTasksClause : public OMPClause { friend class OMPClauseReader; - /// \brief Location of '('. + /// Location of '('. SourceLocation LParenLoc; - /// \brief Safe iteration space distance. + /// Safe iteration space distance. Stmt *NumTasks = nullptr; - /// \brief Set safelen. + /// Set safelen. void setNumTasks(Expr *Size) { NumTasks = Size; } public: - /// \brief Build 'num_tasks' clause. + /// Build 'num_tasks' clause. /// /// \param Size Expression associated with this clause. /// \param StartLoc Starting location of the clause. @@ -4246,17 +4246,17 @@ : OMPClause(OMPC_num_tasks, StartLoc, EndLoc), LParenLoc(LParenLoc), NumTasks(Size) {} - /// \brief Build an empty clause. + /// Build an empty clause. explicit OMPNumTasksClause() : OMPClause(OMPC_num_tasks, SourceLocation(), SourceLocation()) {} - /// \brief Sets the location of '('. + /// Sets the location of '('. void setLParenLoc(SourceLocation Loc) { LParenLoc = Loc; } - /// \brief Returns the location of '('. + /// Returns the location of '('. SourceLocation getLParenLoc() const { return LParenLoc; } - /// \brief Return safe iteration space distance. + /// Return safe iteration space distance. Expr *getNumTasks() const { return cast_or_null<Expr>(NumTasks); } child_range children() { return child_range(&NumTasks, &NumTasks + 1); } @@ -4266,7 +4266,7 @@ } }; -/// \brief This represents 'hint' clause in the '#pragma omp ...' directive. +/// This represents 'hint' clause in the '#pragma omp ...' directive. /// /// \code /// #pragma omp critical (name) hint(6) @@ -4276,17 +4276,17 @@ class OMPHintClause : public OMPClause { friend class OMPClauseReader; - /// \brief Location of '('. + /// Location of '('. SourceLocation LParenLoc; - /// \brief Hint expression of the 'hint' clause. + /// Hint expression of the 'hint' clause. Stmt *Hint = nullptr; - /// \brief Set hint expression. + /// Set hint expression. void setHint(Expr *H) { Hint = H; } public: - /// \brief Build 'hint' clause with expression \a Hint. + /// Build 'hint' clause with expression \a Hint. /// /// \param Hint Hint expression. /// \param StartLoc Starting location of the clause. @@ -4297,16 +4297,16 @@ : OMPClause(OMPC_hint, StartLoc, EndLoc), LParenLoc(LParenLoc), Hint(Hint) {} - /// \brief Build an empty clause. + /// Build an empty clause. OMPHintClause() : OMPClause(OMPC_hint, SourceLocation(), SourceLocation()) {} - /// \brief Sets the location of '('. + /// Sets the location of '('. void setLParenLoc(SourceLocation Loc) { LParenLoc = Loc; } - /// \brief Returns the location of '('. + /// Returns the location of '('. SourceLocation getLParenLoc() const { return LParenLoc; } - /// \brief Returns number of threads. + /// Returns number of threads. Expr *getHint() const { return cast_or_null<Expr>(Hint); } child_range children() { return child_range(&Hint, &Hint + 1); } @@ -4316,7 +4316,7 @@ } }; -/// \brief This represents 'dist_schedule' clause in the '#pragma omp ...' +/// This represents 'dist_schedule' clause in the '#pragma omp ...' /// directive. /// /// \code @@ -4327,48 +4327,48 @@ class OMPDistScheduleClause : public OMPClause, public OMPClauseWithPreInit { friend class OMPClauseReader; - /// \brief Location of '('. + /// Location of '('. SourceLocation LParenLoc; - /// \brief A kind of the 'schedule' clause. + /// A kind of the 'schedule' clause. OpenMPDistScheduleClauseKind Kind = OMPC_DIST_SCHEDULE_unknown; - /// \brief Start location of the schedule kind in source code. + /// Start location of the schedule kind in source code. SourceLocation KindLoc; - /// \brief Location of ',' (if any). + /// Location of ',' (if any). SourceLocation CommaLoc; - /// \brief Chunk size. + /// Chunk size. Expr *ChunkSize = nullptr; - /// \brief Set schedule kind. + /// Set schedule kind. /// /// \param K Schedule kind. void setDistScheduleKind(OpenMPDistScheduleClauseKind K) { Kind = K; } - /// \brief Sets the location of '('. + /// Sets the location of '('. /// /// \param Loc Location of '('. void setLParenLoc(SourceLocation Loc) { LParenLoc = Loc; } - /// \brief Set schedule kind start location. + /// Set schedule kind start location. /// /// \param KLoc Schedule kind location. void setDistScheduleKindLoc(SourceLocation KLoc) { KindLoc = KLoc; } - /// \brief Set location of ','. + /// Set location of ','. /// /// \param Loc Location of ','. void setCommaLoc(SourceLocation Loc) { CommaLoc = Loc; } - /// \brief Set chunk size. + /// Set chunk size. /// /// \param E Chunk size. void setChunkSize(Expr *E) { ChunkSize = E; } public: - /// \brief Build 'dist_schedule' clause with schedule kind \a Kind and chunk + /// Build 'dist_schedule' clause with schedule kind \a Kind and chunk /// size expression \a ChunkSize. /// /// \param StartLoc Starting location of the clause. @@ -4390,27 +4390,27 @@ setPreInitStmt(HelperChunkSize); } - /// \brief Build an empty clause. + /// Build an empty clause. explicit OMPDistScheduleClause() : OMPClause(OMPC_dist_schedule, SourceLocation(), SourceLocation()), OMPClauseWithPreInit(this) {} - /// \brief Get kind of the clause. + /// Get kind of the clause. OpenMPDistScheduleClauseKind getDistScheduleKind() const { return Kind; } - /// \brief Get location of '('. + /// Get location of '('. SourceLocation getLParenLoc() { return LParenLoc; } - /// \brief Get kind location. + /// Get kind location. SourceLocation getDistScheduleKindLoc() { return KindLoc; } - /// \brief Get location of ','. + /// Get location of ','. SourceLocation getCommaLoc() { return CommaLoc; } - /// \brief Get chunk size. + /// Get chunk size. Expr *getChunkSize() { return ChunkSize; } - /// \brief Get chunk size. + /// Get chunk size. const Expr *getChunkSize() const { return ChunkSize; } child_range children() { @@ -4423,7 +4423,7 @@ } }; -/// \brief This represents 'defaultmap' clause in the '#pragma omp ...' directive. +/// This represents 'defaultmap' clause in the '#pragma omp ...' directive. /// /// \code /// #pragma omp target defaultmap(tofrom: scalar) @@ -4433,50 +4433,50 @@ class OMPDefaultmapClause : public OMPClause { friend class OMPClauseReader; - /// \brief Location of '('. + /// Location of '('. SourceLocation LParenLoc; - /// \brief Modifiers for 'defaultmap' clause. + /// Modifiers for 'defaultmap' clause. OpenMPDefaultmapClauseModifier Modifier = OMPC_DEFAULTMAP_MODIFIER_unknown; - /// \brief Locations of modifiers. + /// Locations of modifiers. SourceLocation ModifierLoc; - /// \brief A kind of the 'defaultmap' clause. + /// A kind of the 'defaultmap' clause. OpenMPDefaultmapClauseKind Kind = OMPC_DEFAULTMAP_unknown; - /// \brief Start location of the defaultmap kind in source code. + /// Start location of the defaultmap kind in source code. SourceLocation KindLoc; - /// \brief Set defaultmap kind. + /// Set defaultmap kind. /// /// \param K Defaultmap kind. void setDefaultmapKind(OpenMPDefaultmapClauseKind K) { Kind = K; } - /// \brief Set the defaultmap modifier. + /// Set the defaultmap modifier. /// /// \param M Defaultmap modifier. void setDefaultmapModifier(OpenMPDefaultmapClauseModifier M) { Modifier = M; } - /// \brief Set location of the defaultmap modifier. + /// Set location of the defaultmap modifier. void setDefaultmapModifierLoc(SourceLocation Loc) { ModifierLoc = Loc; } - /// \brief Sets the location of '('. + /// Sets the location of '('. /// /// \param Loc Location of '('. void setLParenLoc(SourceLocation Loc) { LParenLoc = Loc; } - /// \brief Set defaultmap kind start location. + /// Set defaultmap kind start location. /// /// \param KLoc Defaultmap kind location. void setDefaultmapKindLoc(SourceLocation KLoc) { KindLoc = KLoc; } public: - /// \brief Build 'defaultmap' clause with defaultmap kind \a Kind + /// Build 'defaultmap' clause with defaultmap kind \a Kind /// /// \param StartLoc Starting location of the clause. /// \param LParenLoc Location of '('. @@ -4492,25 +4492,25 @@ : OMPClause(OMPC_defaultmap, StartLoc, EndLoc), LParenLoc(LParenLoc), Modifier(M), ModifierLoc(MLoc), Kind(Kind), KindLoc(KLoc) {} - /// \brief Build an empty clause. + /// Build an empty clause. explicit OMPDefaultmapClause() : OMPClause(OMPC_defaultmap, SourceLocation(), SourceLocation()) {} - /// \brief Get kind of the clause. + /// Get kind of the clause. OpenMPDefaultmapClauseKind getDefaultmapKind() const { return Kind; } - /// \brief Get the modifier of the clause. + /// Get the modifier of the clause. OpenMPDefaultmapClauseModifier getDefaultmapModifier() const { return Modifier; } - /// \brief Get location of '('. + /// Get location of '('. SourceLocation getLParenLoc() { return LParenLoc; } - /// \brief Get kind location. + /// Get kind location. SourceLocation getDefaultmapKindLoc() { return KindLoc; } - /// \brief Get the modifier location. + /// Get the modifier location. SourceLocation getDefaultmapModifierLoc() const { return ModifierLoc; } @@ -4524,7 +4524,7 @@ } }; -/// \brief This represents clause 'to' in the '#pragma omp ...' +/// This represents clause 'to' in the '#pragma omp ...' /// directives. /// /// \code @@ -4541,7 +4541,7 @@ friend OMPVarListClause; friend TrailingObjects; - /// \brief Build clause with number of variables \a NumVars. + /// Build clause with number of variables \a NumVars. /// /// \param StartLoc Starting location of the clause. /// \param EndLoc Ending location of the clause. @@ -4558,7 +4558,7 @@ NumUniqueDeclarations, NumComponentLists, NumComponents) {} - /// \brief Build an empty clause. + /// Build an empty clause. /// /// \param NumVars Number of expressions listed in this clause. /// \param NumUniqueDeclarations Number of unique base declarations in this @@ -4584,7 +4584,7 @@ } public: - /// \brief Creates clause with a list of variables \a Vars. + /// Creates clause with a list of variables \a Vars. /// /// \param C AST context. /// \param StartLoc Starting location of the clause. @@ -4598,7 +4598,7 @@ ArrayRef<ValueDecl *> Declarations, MappableExprComponentListsRef ComponentLists); - /// \brief Creates an empty clause with the place for \a NumVars variables. + /// Creates an empty clause with the place for \a NumVars variables. /// /// \param C AST context. /// \param NumVars Number of expressions listed in the clause. @@ -4622,7 +4622,7 @@ } }; -/// \brief This represents clause 'from' in the '#pragma omp ...' +/// This represents clause 'from' in the '#pragma omp ...' /// directives. /// /// \code @@ -4640,7 +4640,7 @@ friend OMPVarListClause; friend TrailingObjects; - /// \brief Build clause with number of variables \a NumVars. + /// Build clause with number of variables \a NumVars. /// /// \param StartLoc Starting location of the clause. /// \param EndLoc Ending location of the clause. @@ -4657,7 +4657,7 @@ NumVars, NumUniqueDeclarations, NumComponentLists, NumComponents) {} - /// \brief Build an empty clause. + /// Build an empty clause. /// /// \param NumVars Number of expressions listed in this clause. /// \param NumUniqueDeclarations Number of unique base declarations in this @@ -4683,7 +4683,7 @@ } public: - /// \brief Creates clause with a list of variables \a Vars. + /// Creates clause with a list of variables \a Vars. /// /// \param C AST context. /// \param StartLoc Starting location of the clause. @@ -4697,7 +4697,7 @@ ArrayRef<ValueDecl *> Declarations, MappableExprComponentListsRef ComponentLists); - /// \brief Creates an empty clause with the place for \a NumVars variables. + /// Creates an empty clause with the place for \a NumVars variables. /// /// \param C AST context. /// \param NumVars Number of expressions listed in the clause. Index: cfe/trunk/include/clang/AST/OperationKinds.h =================================================================== --- cfe/trunk/include/clang/AST/OperationKinds.h +++ cfe/trunk/include/clang/AST/OperationKinds.h @@ -33,15 +33,15 @@ #include "clang/AST/OperationKinds.def" }; -/// \brief The kind of bridging performed by the Objective-C bridge cast. +/// The kind of bridging performed by the Objective-C bridge cast. enum ObjCBridgeCastKind { - /// \brief Bridging via __bridge, which does nothing but reinterpret + /// Bridging via __bridge, which does nothing but reinterpret /// the bits. OBC_Bridge, - /// \brief Bridging via __bridge_transfer, which transfers ownership of an + /// Bridging via __bridge_transfer, which transfers ownership of an /// Objective-C pointer into ARC. OBC_BridgeTransfer, - /// \brief Bridging via __bridge_retain, which makes an ARC object available + /// Bridging via __bridge_retain, which makes an ARC object available /// as a +1 C pointer. OBC_BridgeRetained }; Index: cfe/trunk/include/clang/AST/OperationKinds.def =================================================================== --- cfe/trunk/include/clang/AST/OperationKinds.def +++ cfe/trunk/include/clang/AST/OperationKinds.def @@ -227,87 +227,87 @@ /// to a block pointer. Block-to-block casts are bitcasts. CAST_OPERATION(AnyPointerToBlockPointerCast) -/// \brief Converting between two Objective-C object types, which +/// Converting between two Objective-C object types, which /// can occur when performing reference binding to an Objective-C /// object. CAST_OPERATION(ObjCObjectLValueCast) -/// \brief A conversion of a floating point real to a floating point +/// A conversion of a floating point real to a floating point /// complex of the original type. Injects the value as the real /// component with a zero imaginary component. /// float -> _Complex float CAST_OPERATION(FloatingRealToComplex) -/// \brief Converts a floating point complex to floating point real +/// Converts a floating point complex to floating point real /// of the source's element type. Just discards the imaginary /// component. /// _Complex long double -> long double CAST_OPERATION(FloatingComplexToReal) -/// \brief Converts a floating point complex to bool by comparing +/// Converts a floating point complex to bool by comparing /// against 0+0i. CAST_OPERATION(FloatingComplexToBoolean) -/// \brief Converts between different floating point complex types. +/// Converts between different floating point complex types. /// _Complex float -> _Complex double CAST_OPERATION(FloatingComplexCast) -/// \brief Converts from a floating complex to an integral complex. +/// Converts from a floating complex to an integral complex. /// _Complex float -> _Complex int CAST_OPERATION(FloatingComplexToIntegralComplex) -/// \brief Converts from an integral real to an integral complex +/// Converts from an integral real to an integral complex /// whose element type matches the source. Injects the value as /// the real component with a zero imaginary component. /// long -> _Complex long CAST_OPERATION(IntegralRealToComplex) -/// \brief Converts an integral complex to an integral real of the +/// Converts an integral complex to an integral real of the /// source's element type by discarding the imaginary component. /// _Complex short -> short CAST_OPERATION(IntegralComplexToReal) -/// \brief Converts an integral complex to bool by comparing against +/// Converts an integral complex to bool by comparing against /// 0+0i. CAST_OPERATION(IntegralComplexToBoolean) -/// \brief Converts between different integral complex types. +/// Converts between different integral complex types. /// _Complex char -> _Complex long long /// _Complex unsigned int -> _Complex signed int CAST_OPERATION(IntegralComplexCast) -/// \brief Converts from an integral complex to a floating complex. +/// Converts from an integral complex to a floating complex. /// _Complex unsigned -> _Complex float CAST_OPERATION(IntegralComplexToFloatingComplex) -/// \brief [ARC] Produces a retainable object pointer so that it may +/// [ARC] Produces a retainable object pointer so that it may /// be consumed, e.g. by being passed to a consuming parameter. /// Calls objc_retain. CAST_OPERATION(ARCProduceObject) -/// \brief [ARC] Consumes a retainable object pointer that has just +/// [ARC] Consumes a retainable object pointer that has just /// been produced, e.g. as the return value of a retaining call. /// Enters a cleanup to call objc_release at some indefinite time. CAST_OPERATION(ARCConsumeObject) -/// \brief [ARC] Reclaim a retainable object pointer object that may +/// [ARC] Reclaim a retainable object pointer object that may /// have been produced and autoreleased as part of a function return /// sequence. CAST_OPERATION(ARCReclaimReturnedObject) -/// \brief [ARC] Causes a value of block type to be copied to the +/// [ARC] Causes a value of block type to be copied to the /// heap, if it is not already there. A number of other operations /// in ARC cause blocks to be copied; this is for cases where that /// would not otherwise be guaranteed, such as when casting to a /// non-block pointer type. CAST_OPERATION(ARCExtendBlockObject) -/// \brief Converts from _Atomic(T) to T. +/// Converts from _Atomic(T) to T. CAST_OPERATION(AtomicToNonAtomic) -/// \brief Converts from T to _Atomic(T). +/// Converts from T to _Atomic(T). CAST_OPERATION(NonAtomicToAtomic) -/// \brief Causes a block literal to by copied to the heap and then +/// Causes a block literal to by copied to the heap and then /// autoreleased. /// /// This particular cast kind is used for the conversion from a C++11 Index: cfe/trunk/include/clang/AST/ParentMap.h =================================================================== --- cfe/trunk/include/clang/AST/ParentMap.h +++ cfe/trunk/include/clang/AST/ParentMap.h @@ -24,7 +24,7 @@ ParentMap(Stmt* ASTRoot); ~ParentMap(); - /// \brief Adds and/or updates the parent/child-relations of the complete + /// Adds and/or updates the parent/child-relations of the complete /// stmt tree of S. All children of S including indirect descendants are /// visited and updated or inserted but not the parents of S. void addStmt(Stmt* S); Index: cfe/trunk/include/clang/AST/PrettyPrinter.h =================================================================== --- cfe/trunk/include/clang/AST/PrettyPrinter.h +++ cfe/trunk/include/clang/AST/PrettyPrinter.h @@ -36,7 +36,7 @@ /// This type is intended to be small and suitable for passing by value. /// It is very frequently copied. struct PrintingPolicy { - /// \brief Create a default printing policy for the specified language. + /// Create a default printing policy for the specified language. PrintingPolicy(const LangOptions &LO) : Indentation(2), SuppressSpecifiers(false), SuppressTagKeyword(LO.CPlusPlus), Index: cfe/trunk/include/clang/AST/QualTypeNames.h =================================================================== --- cfe/trunk/include/clang/AST/QualTypeNames.h +++ cfe/trunk/include/clang/AST/QualTypeNames.h @@ -63,7 +63,7 @@ namespace clang { namespace TypeName { -/// \brief Get the fully qualified name for a type. This includes full +/// Get the fully qualified name for a type. This includes full /// qualification of all template parameters etc. /// /// \param[in] QT - the type for which the fully qualified name will be @@ -75,7 +75,7 @@ const PrintingPolicy &Policy, bool WithGlobalNsPrefix = false); -/// \brief Generates a QualType that can be used to name the same type +/// Generates a QualType that can be used to name the same type /// if used at the end of the current translation unit. This ignores /// issues such as type shadowing. /// Index: cfe/trunk/include/clang/AST/RawCommentList.h =================================================================== --- cfe/trunk/include/clang/AST/RawCommentList.h +++ cfe/trunk/include/clang/AST/RawCommentList.h @@ -132,7 +132,7 @@ bool IsTrailingComment : 1; bool IsAlmostTrailingComment : 1; - /// \brief Constructor for AST deserialization. + /// Constructor for AST deserialization. RawComment(SourceRange SR, CommentKind K, bool IsTrailingComment, bool IsAlmostTrailingComment) : Range(SR), RawTextValid(false), BriefTextValid(false), Kind(K), @@ -147,7 +147,7 @@ friend class ASTReader; }; -/// \brief Compare comments' source locations. +/// Compare comments' source locations. template<> class BeforeThanCompare<RawComment> { const SourceManager &SM; @@ -164,7 +164,7 @@ } }; -/// \brief This class represents all comments included in the translation unit, +/// This class represents all comments included in the translation unit, /// sorted in order of appearance in the translation unit. class RawCommentList { public: Index: cfe/trunk/include/clang/AST/RecordLayout.h =================================================================== --- cfe/trunk/include/clang/AST/RecordLayout.h +++ cfe/trunk/include/clang/AST/RecordLayout.h @@ -111,7 +111,7 @@ /// Only used for MS-ABI. bool EndsWithZeroSizedObject : 1; - /// \brief True if this class is zero sized or first base is zero sized or + /// True if this class is zero sized or first base is zero sized or /// has this property. Only used for MS-ABI. bool LeadsWithZeroSizedBase : 1; Index: cfe/trunk/include/clang/AST/RecursiveASTVisitor.h =================================================================== --- cfe/trunk/include/clang/AST/RecursiveASTVisitor.h +++ cfe/trunk/include/clang/AST/RecursiveASTVisitor.h @@ -83,7 +83,7 @@ return false; \ } while (false) -/// \brief A class that does preorder or postorder +/// A class that does preorder or postorder /// depth-first traversal on the entire Clang AST and visits each node. /// /// This class performs three distinct tasks: @@ -158,25 +158,25 @@ typedef SmallVectorImpl<llvm::PointerIntPair<Stmt *, 1, bool>> DataRecursionQueue; - /// \brief Return a reference to the derived class. + /// Return a reference to the derived class. Derived &getDerived() { return *static_cast<Derived *>(this); } - /// \brief Return whether this visitor should recurse into + /// Return whether this visitor should recurse into /// template instantiations. bool shouldVisitTemplateInstantiations() const { return false; } - /// \brief Return whether this visitor should recurse into the types of + /// Return whether this visitor should recurse into the types of /// TypeLocs. bool shouldWalkTypesOfTypeLocs() const { return true; } - /// \brief Return whether this visitor should recurse into implicit + /// Return whether this visitor should recurse into implicit /// code, e.g., implicit constructors and destructors. bool shouldVisitImplicitCode() const { return false; } - /// \brief Return whether this visitor should traverse post-order. + /// Return whether this visitor should traverse post-order. bool shouldTraversePostOrder() const { return false; } - /// \brief Recursively visit a statement or expression, by + /// Recursively visit a statement or expression, by /// dispatching to Traverse*() based on the argument's dynamic type. /// /// \returns false if the visitation was terminated early, true @@ -195,70 +195,70 @@ /// \returns false if the visitation was terminated early, true otherwise. bool dataTraverseStmtPost(Stmt *S) { return true; } - /// \brief Recursively visit a type, by dispatching to + /// Recursively visit a type, by dispatching to /// Traverse*Type() based on the argument's getTypeClass() property. /// /// \returns false if the visitation was terminated early, true /// otherwise (including when the argument is a Null type). bool TraverseType(QualType T); - /// \brief Recursively visit a type with location, by dispatching to + /// Recursively visit a type with location, by dispatching to /// Traverse*TypeLoc() based on the argument type's getTypeClass() property. /// /// \returns false if the visitation was terminated early, true /// otherwise (including when the argument is a Null type location). bool TraverseTypeLoc(TypeLoc TL); - /// \brief Recursively visit an attribute, by dispatching to + /// Recursively visit an attribute, by dispatching to /// Traverse*Attr() based on the argument's dynamic type. /// /// \returns false if the visitation was terminated early, true /// otherwise (including when the argument is a Null type location). bool TraverseAttr(Attr *At); - /// \brief Recursively visit a declaration, by dispatching to + /// Recursively visit a declaration, by dispatching to /// Traverse*Decl() based on the argument's dynamic type. /// /// \returns false if the visitation was terminated early, true /// otherwise (including when the argument is NULL). bool TraverseDecl(Decl *D); - /// \brief Recursively visit a C++ nested-name-specifier. + /// Recursively visit a C++ nested-name-specifier. /// /// \returns false if the visitation was terminated early, true otherwise. bool TraverseNestedNameSpecifier(NestedNameSpecifier *NNS); - /// \brief Recursively visit a C++ nested-name-specifier with location + /// Recursively visit a C++ nested-name-specifier with location /// information. /// /// \returns false if the visitation was terminated early, true otherwise. bool TraverseNestedNameSpecifierLoc(NestedNameSpecifierLoc NNS); - /// \brief Recursively visit a name with its location information. + /// Recursively visit a name with its location information. /// /// \returns false if the visitation was terminated early, true otherwise. bool TraverseDeclarationNameInfo(DeclarationNameInfo NameInfo); - /// \brief Recursively visit a template name and dispatch to the + /// Recursively visit a template name and dispatch to the /// appropriate method. /// /// \returns false if the visitation was terminated early, true otherwise. bool TraverseTemplateName(TemplateName Template); - /// \brief Recursively visit a template argument and dispatch to the + /// Recursively visit a template argument and dispatch to the /// appropriate method for the argument type. /// /// \returns false if the visitation was terminated early, true otherwise. // FIXME: migrate callers to TemplateArgumentLoc instead. bool TraverseTemplateArgument(const TemplateArgument &Arg); - /// \brief Recursively visit a template argument location and dispatch to the + /// Recursively visit a template argument location and dispatch to the /// appropriate method for the argument type. /// /// \returns false if the visitation was terminated early, true otherwise. bool TraverseTemplateArgumentLoc(const TemplateArgumentLoc &ArgLoc); - /// \brief Recursively visit a set of template arguments. + /// Recursively visit a set of template arguments. /// This can be overridden by a subclass, but it's not expected that /// will be needed -- this visitor always dispatches to another. /// @@ -267,13 +267,13 @@ bool TraverseTemplateArguments(const TemplateArgument *Args, unsigned NumArgs); - /// \brief Recursively visit a base specifier. This can be overridden by a + /// Recursively visit a base specifier. This can be overridden by a /// subclass. /// /// \returns false if the visitation was terminated early, true otherwise. bool TraverseCXXBaseSpecifier(const CXXBaseSpecifier &Base); - /// \brief Recursively visit a constructor initializer. This + /// Recursively visit a constructor initializer. This /// automatically dispatches to another visitor for the initializer /// expression, but not for the name of the initializer, so may /// be overridden for clients that need access to the name. @@ -281,14 +281,14 @@ /// \returns false if the visitation was terminated early, true otherwise. bool TraverseConstructorInitializer(CXXCtorInitializer *Init); - /// \brief Recursively visit a lambda capture. \c Init is the expression that + /// Recursively visit a lambda capture. \c Init is the expression that /// will be used to initialize the capture. /// /// \returns false if the visitation was terminated early, true otherwise. bool TraverseLambdaCapture(LambdaExpr *LE, const LambdaCapture *C, Expr *Init); - /// \brief Recursively visit the body of a lambda expression. + /// Recursively visit the body of a lambda expression. /// /// This provides a hook for visitors that need more context when visiting /// \c LE->getBody(). @@ -296,7 +296,7 @@ /// \returns false if the visitation was terminated early, true otherwise. bool TraverseLambdaBody(LambdaExpr *LE, DataRecursionQueue *Queue = nullptr); - /// \brief Recursively visit the syntactic or semantic form of an + /// Recursively visit the syntactic or semantic form of an /// initialization list. /// /// \returns false if the visitation was terminated early, true otherwise. @@ -305,7 +305,7 @@ // ---- Methods on Attrs ---- - // \brief Visit an attribute. + // Visit an attribute. bool VisitAttr(Attr *A) { return true; } // Declare Traverse* and empty Visit* for all Attr classes. @@ -529,7 +529,7 @@ bool TraverseOMPClause(OMPClause *C); #define OPENMP_CLAUSE(Name, Class) bool Visit##Class(Class *C); #include "clang/Basic/OpenMPKinds.def" - /// \brief Process clauses with list of variables. + /// Process clauses with list of variables. template <typename T> bool VisitOMPClauseList(T *Node); /// Process clauses with pre-initis. bool VisitOMPClauseWithPreInit(OMPClauseWithPreInit *Node); Index: cfe/trunk/include/clang/AST/Redeclarable.h =================================================================== --- cfe/trunk/include/clang/AST/Redeclarable.h +++ cfe/trunk/include/clang/AST/Redeclarable.h @@ -82,7 +82,7 @@ // | link +-----+ | // +-->-------------------------------------------+ -/// \brief Provides common interface for the Decls that can be redeclared. +/// Provides common interface for the Decls that can be redeclared. template<typename decl_type> class Redeclarable { protected: @@ -176,7 +176,7 @@ return DeclLink(DeclLink::LatestLink, Ctx); } - /// \brief Points to the next redeclaration in the chain. + /// Points to the next redeclaration in the chain. /// /// If NextIsPrevious() is true, this is a link to the previous declaration /// of this same Decl. If NextIsLatest() is true, this is the first @@ -203,7 +203,7 @@ : RedeclLink(LatestDeclLink(Ctx)), First(static_cast<decl_type *>(this)) {} - /// \brief Return the previous declaration of this declaration or NULL if this + /// Return the previous declaration of this declaration or NULL if this /// is the first declaration. decl_type *getPreviousDecl() { if (RedeclLink.NextIsPrevious()) @@ -215,32 +215,32 @@ static_cast<const decl_type*>(this))->getPreviousDecl(); } - /// \brief Return the first declaration of this declaration or itself if this + /// Return the first declaration of this declaration or itself if this /// is the only declaration. decl_type *getFirstDecl() { return First; } - /// \brief Return the first declaration of this declaration or itself if this + /// Return the first declaration of this declaration or itself if this /// is the only declaration. const decl_type *getFirstDecl() const { return First; } - /// \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 RedeclLink.NextIsLatest(); } - /// \brief Returns the most recent (re)declaration of this declaration. + /// Returns the most recent (re)declaration of this declaration. decl_type *getMostRecentDecl() { return getFirstDecl()->getNextRedeclaration(); } - /// \brief Returns the most recent (re)declaration of this declaration. + /// Returns the most recent (re)declaration of this declaration. const decl_type *getMostRecentDecl() const { return getFirstDecl()->getNextRedeclaration(); } - /// \brief Set the previous declaration. If PrevDecl is NULL, set this as the + /// Set the previous declaration. If PrevDecl is NULL, set this as the /// first and only declaration. void setPreviousDecl(decl_type *PrevDecl); - /// \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_type *Current = nullptr; @@ -294,7 +294,7 @@ using redecl_range = llvm::iterator_range<redecl_iterator>; - /// \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(redecl_iterator(const_cast<decl_type *>( @@ -306,11 +306,11 @@ redecl_iterator redecls_end() const { return redecls().end(); } }; -/// \brief Get the primary declaration for a declaration from an AST file. That +/// Get the primary declaration for a declaration from an AST file. That /// will be the first-loaded declaration. Decl *getPrimaryMergedDecl(Decl *D); -/// \brief Provides common interface for the Decls that cannot be redeclared, +/// Provides common interface for the Decls that cannot be redeclared, /// but can be merged if the same declaration is brought in from multiple /// modules. template<typename decl_type> @@ -318,7 +318,7 @@ public: Mergeable() = default; - /// \brief Return the first declaration of this declaration or itself if this + /// Return the first declaration of this declaration or itself if this /// is the only declaration. decl_type *getFirstDecl() { auto *D = static_cast<decl_type *>(this); @@ -327,7 +327,7 @@ return cast<decl_type>(getPrimaryMergedDecl(const_cast<decl_type*>(D))); } - /// \brief Return the first declaration of this declaration or itself if this + /// Return the first declaration of this declaration or itself if this /// is the only declaration. const decl_type *getFirstDecl() const { const auto *D = static_cast<const decl_type *>(this); @@ -336,7 +336,7 @@ return cast<decl_type>(getPrimaryMergedDecl(const_cast<decl_type*>(D))); } - /// \brief Returns true if this is the first declaration. + /// Returns true if this is the first declaration. bool isFirstDecl() const { return getFirstDecl() == this; } }; Index: cfe/trunk/include/clang/AST/SelectorLocationsKind.h =================================================================== --- cfe/trunk/include/clang/AST/SelectorLocationsKind.h +++ cfe/trunk/include/clang/AST/SelectorLocationsKind.h @@ -23,32 +23,32 @@ class Expr; class ParmVarDecl; -/// \brief Whether all locations of the selector identifiers are in a +/// Whether all locations of the selector identifiers are in a /// "standard" position. enum SelectorLocationsKind { - /// \brief Non-standard. + /// Non-standard. SelLoc_NonStandard = 0, - /// \brief For nullary selectors, immediately before the end: + /// For nullary selectors, immediately before the end: /// "[foo release]" / "-(void)release;" /// Or immediately before the arguments: /// "[foo first:1 second:2]" / "-(id)first:(int)x second:(int)y; SelLoc_StandardNoSpace = 1, - /// \brief For nullary selectors, immediately before the end: + /// For nullary selectors, immediately before the end: /// "[foo release]" / "-(void)release;" /// Or with a space between the arguments: /// "[foo first: 1 second: 2]" / "-(id)first: (int)x second: (int)y; SelLoc_StandardWithSpace = 2 }; -/// \brief Returns true if all \p SelLocs are in a "standard" location. +/// Returns true if all \p SelLocs are in a "standard" location. SelectorLocationsKind hasStandardSelectorLocs(Selector Sel, ArrayRef<SourceLocation> SelLocs, ArrayRef<Expr *> Args, SourceLocation EndLoc); -/// \brief Get the "standard" location of a selector identifier, e.g: +/// Get the "standard" location of a selector identifier, e.g: /// For nullary selectors, immediately before ']': "[foo release]" /// /// \param WithArgSpace if true the standard location is with a space apart @@ -60,13 +60,13 @@ ArrayRef<Expr *> Args, SourceLocation EndLoc); -/// \brief Returns true if all \p SelLocs are in a "standard" location. +/// Returns true if all \p SelLocs are in a "standard" location. SelectorLocationsKind hasStandardSelectorLocs(Selector Sel, ArrayRef<SourceLocation> SelLocs, ArrayRef<ParmVarDecl *> Args, SourceLocation EndLoc); -/// \brief Get the "standard" location of a selector identifier, e.g: +/// Get the "standard" location of a selector identifier, e.g: /// For nullary selectors, immediately before ']': "[foo release]" /// /// \param WithArgSpace if true the standard location is with a space apart Index: cfe/trunk/include/clang/AST/Stmt.h =================================================================== --- cfe/trunk/include/clang/AST/Stmt.h +++ cfe/trunk/include/clang/AST/Stmt.h @@ -92,7 +92,7 @@ class StmtBitfields { friend class Stmt; - /// \brief The statement class. + /// The statement class. unsigned sClass : 8; }; enum { NumStmtBits = 8 }; @@ -272,14 +272,14 @@ unsigned : NumExprBits; - /// \brief The kind of type trait, which is a value of a TypeTrait enumerator. + /// The kind of type trait, which is a value of a TypeTrait enumerator. unsigned Kind : 8; - /// \brief If this expression is not value-dependent, this indicates whether + /// If this expression is not value-dependent, this indicates whether /// the trait evaluated true or false. unsigned Value : 1; - /// \brief The number of arguments to this type trait. + /// The number of arguments to this type trait. unsigned NumArgs : 32 - 8 - 1 - NumExprBits; }; @@ -330,7 +330,7 @@ void operator delete(void *, void *) noexcept {} public: - /// \brief A placeholder type used to construct an empty shell of a + /// A placeholder type used to construct an empty shell of a /// type, that will be filled in later (e.g., by some /// de-serialization). struct EmptyShell {}; @@ -369,11 +369,11 @@ }; private: - /// \brief Whether statistic collection is enabled. + /// Whether statistic collection is enabled. static bool StatisticsEnabled; protected: - /// \brief Construct an empty statement. + /// Construct an empty statement. explicit Stmt(StmtClass SC, EmptyShell) : Stmt(SC) {} public: @@ -404,7 +404,7 @@ static void EnableStatistics(); static void PrintStats(); - /// \brief Dumps the specified AST fragment and all subtrees to + /// Dumps the specified AST fragment and all subtrees to /// \c llvm::errs(). void dump() const; void dump(SourceManager &SM) const; @@ -432,7 +432,7 @@ return const_cast<Stmt *>(this)->IgnoreImplicit(); } - /// \brief Skip no-op (attributed, compound) container stmts and skip captured + /// Skip no-op (attributed, compound) container stmts and skip captured /// stmt at the top, if \a IgnoreCaptured is true. Stmt *IgnoreContainers(bool IgnoreCaptured = false); const Stmt *IgnoreContainers(bool IgnoreCaptured = false) const { @@ -467,7 +467,7 @@ const_child_iterator child_begin() const { return children().begin(); } const_child_iterator child_end() const { return children().end(); } - /// \brief Produce a unique representation of the given statement. + /// Produce a unique representation of the given statement. /// /// \param ID once the profiling operation is complete, will contain /// the unique representation of the given statement. @@ -482,7 +482,7 @@ void Profile(llvm::FoldingSetNodeID &ID, const ASTContext &Context, bool Canonical) const; - /// \brief Calculate a unique representation for a statement that is + /// Calculate a unique representation for a statement that is /// stable across compiler invocations. /// /// \param ID profile information will be stored in ID. @@ -504,7 +504,7 @@ DeclStmt(DeclGroupRef dg, SourceLocation startLoc, SourceLocation endLoc) : Stmt(DeclStmtClass), DG(dg), StartLoc(startLoc), EndLoc(endLoc) {} - /// \brief Build an empty declaration statement. + /// Build an empty declaration statement. explicit DeclStmt(EmptyShell Empty) : Stmt(DeclStmtClass, Empty) {} /// isSingleDecl - This method returns true if this DeclStmt refers @@ -570,7 +570,7 @@ class NullStmt : public Stmt { SourceLocation SemiLoc; - /// \brief True if the null statement was preceded by an empty macro, e.g: + /// True if the null statement was preceded by an empty macro, e.g: /// @code /// #define CALL(x) /// CALL(0); @@ -585,7 +585,7 @@ : Stmt(NullStmtClass), SemiLoc(L), HasLeadingEmptyMacro(hasLeadingEmptyMacro) {} - /// \brief Build an empty null statement. + /// Build an empty null statement. explicit NullStmt(EmptyShell Empty) : Stmt(NullStmtClass, Empty) {} SourceLocation getSemiLoc() const { return SemiLoc; } @@ -622,13 +622,13 @@ static CompoundStmt *Create(const ASTContext &C, ArrayRef<Stmt *> Stmts, SourceLocation LB, SourceLocation RB); - // \brief Build an empty compound statement with a location. + // Build an empty compound statement with a location. explicit CompoundStmt(SourceLocation Loc) : Stmt(CompoundStmtClass), LBraceLoc(Loc), RBraceLoc(Loc) { CompoundStmtBits.NumStmts = 0; } - // \brief Build an empty compound statement. + // Build an empty compound statement. static CompoundStmt *CreateEmpty(const ASTContext &C, unsigned NumStmts); bool body_empty() const { return CompoundStmtBits.NumStmts == 0; } @@ -767,7 +767,7 @@ EllipsisLoc = ellipsisLoc; } - /// \brief Build an empty switch case statement. + /// Build an empty switch case statement. explicit CaseStmt(EmptyShell Empty) : SwitchCase(CaseStmtClass, Empty) {} SourceLocation getCaseLoc() const { return KeywordLoc; } @@ -823,7 +823,7 @@ DefaultStmt(SourceLocation DL, SourceLocation CL, Stmt *substmt) : SwitchCase(DefaultStmtClass, DL, CL), SubStmt(substmt) {} - /// \brief Build an empty default statement. + /// Build an empty default statement. explicit DefaultStmt(EmptyShell Empty) : SwitchCase(DefaultStmtClass, Empty) {} @@ -868,7 +868,7 @@ "LabelStmt too big"); } - // \brief Build an empty label statement. + // Build an empty label statement. explicit LabelStmt(EmptyShell Empty) : Stmt(LabelStmtClass, Empty) {} SourceLocation getIdentLoc() const { return IdentLoc; } @@ -890,7 +890,7 @@ } }; -/// \brief Represents an attribute applied to a statement. +/// Represents an attribute applied to a statement. /// /// Represents an attribute applied to a statement. For example: /// [[omp::for(...)]] for (...) { ... } @@ -924,7 +924,7 @@ static AttributedStmt *Create(const ASTContext &C, SourceLocation Loc, ArrayRef<const Attr*> Attrs, Stmt *SubStmt); - // \brief Build an empty attributed statement. + // Build an empty attributed statement. static AttributedStmt *CreateEmpty(const ASTContext &C, unsigned NumAttrs); SourceLocation getAttrLoc() const { return AttrLoc; } @@ -959,10 +959,10 @@ Stmt *then, SourceLocation EL = SourceLocation(), Stmt *elsev = nullptr); - /// \brief Build an empty if/then/else statement + /// Build an empty if/then/else statement explicit IfStmt(EmptyShell Empty) : Stmt(IfStmtClass, Empty) {} - /// \brief Retrieve the variable declared in this "if" statement, if any. + /// Retrieve the variable declared in this "if" statement, if any. /// /// In the following example, "x" is the condition variable. /// \code @@ -1038,10 +1038,10 @@ public: SwitchStmt(const ASTContext &C, Stmt *Init, VarDecl *Var, Expr *cond); - /// \brief Build a empty switch statement. + /// Build a empty switch statement. explicit SwitchStmt(EmptyShell Empty) : Stmt(SwitchStmtClass, Empty) {} - /// \brief Retrieve the variable declared in this "switch" statement, if any. + /// Retrieve the variable declared in this "switch" statement, if any. /// /// In the following example, "x" is the condition variable. /// \code @@ -1072,7 +1072,7 @@ void setBody(Stmt *S) { SubExprs[BODY] = S; } SwitchCase *getSwitchCaseList() { return FirstCase.getPointer(); } - /// \brief Set the case list for this switch statement. + /// Set the case list for this switch statement. void setSwitchCaseList(SwitchCase *SC) { FirstCase.setPointer(SC); } SourceLocation getSwitchLoc() const { return SwitchLoc; } @@ -1124,10 +1124,10 @@ WhileStmt(const ASTContext &C, VarDecl *Var, Expr *cond, Stmt *body, SourceLocation WL); - /// \brief Build an empty while statement. + /// Build an empty while statement. explicit WhileStmt(EmptyShell Empty) : Stmt(WhileStmtClass, Empty) {} - /// \brief Retrieve the variable declared in this "while" statement, if any. + /// Retrieve the variable declared in this "while" statement, if any. /// /// In the following example, "x" is the condition variable. /// \code @@ -1186,7 +1186,7 @@ SubExprs[BODY] = body; } - /// \brief Build an empty do-while statement. + /// Build an empty do-while statement. explicit DoStmt(EmptyShell Empty) : Stmt(DoStmtClass, Empty) {} Expr *getCond() { return reinterpret_cast<Expr*>(SubExprs[COND]); } @@ -1231,12 +1231,12 @@ Expr *Inc, Stmt *Body, SourceLocation FL, SourceLocation LP, SourceLocation RP); - /// \brief Build an empty for statement. + /// Build an empty for statement. explicit ForStmt(EmptyShell Empty) : Stmt(ForStmtClass, Empty) {} Stmt *getInit() { return SubExprs[INIT]; } - /// \brief Retrieve the variable declared in this "for" statement, if any. + /// Retrieve the variable declared in this "for" statement, if any. /// /// In the following example, "y" is the condition variable. /// \code @@ -1300,7 +1300,7 @@ GotoStmt(LabelDecl *label, SourceLocation GL, SourceLocation LL) : Stmt(GotoStmtClass), Label(label), GotoLoc(GL), LabelLoc(LL) {} - /// \brief Build an empty goto statement. + /// Build an empty goto statement. explicit GotoStmt(EmptyShell Empty) : Stmt(GotoStmtClass, Empty) {} LabelDecl *getLabel() const { return Label; } @@ -1336,7 +1336,7 @@ : Stmt(IndirectGotoStmtClass), GotoLoc(gotoLoc), StarLoc(starLoc), Target((Stmt*)target) {} - /// \brief Build an empty indirect goto statement. + /// Build an empty indirect goto statement. explicit IndirectGotoStmt(EmptyShell Empty) : Stmt(IndirectGotoStmtClass, Empty) {} @@ -1374,7 +1374,7 @@ public: ContinueStmt(SourceLocation CL) : Stmt(ContinueStmtClass), ContinueLoc(CL) {} - /// \brief Build an empty continue statement. + /// Build an empty continue statement. explicit ContinueStmt(EmptyShell Empty) : Stmt(ContinueStmtClass, Empty) {} SourceLocation getContinueLoc() const { return ContinueLoc; } @@ -1403,7 +1403,7 @@ "BreakStmt too large"); } - /// \brief Build an empty break statement. + /// Build an empty break statement. explicit BreakStmt(EmptyShell Empty) : Stmt(BreakStmtClass, Empty) {} SourceLocation getBreakLoc() const { return BreakLoc; } @@ -1442,7 +1442,7 @@ : Stmt(ReturnStmtClass), RetLoc(RL), RetExpr((Stmt *)E), NRVOCandidate(NRVOCandidate) {} - /// \brief Build an empty return expression. + /// Build an empty return expression. explicit ReturnStmt(EmptyShell Empty) : Stmt(ReturnStmtClass, Empty) {} const Expr *getRetValue() const; @@ -1452,7 +1452,7 @@ SourceLocation getReturnLoc() const { return RetLoc; } void setReturnLoc(SourceLocation L) { RetLoc = L; } - /// \brief Retrieve the variable that might be used for the named return + /// Retrieve the variable that might be used for the named return /// value optimization. /// /// The optimization itself can only be performed if the variable is @@ -1484,11 +1484,11 @@ SourceLocation AsmLoc; - /// \brief True if the assembly statement does not have any input or output + /// True if the assembly statement does not have any input or output /// operands. bool IsSimple; - /// \brief If true, treat this inline assembly as having side effects. + /// If true, treat this inline assembly as having side effects. /// This assembly statement should not be optimized, deleted or moved. bool IsVolatile; @@ -1505,7 +1505,7 @@ NumClobbers(numclobbers) {} public: - /// \brief Build an empty inline-assembly statement. + /// Build an empty inline-assembly statement. explicit AsmStmt(StmtClass SC, EmptyShell Empty) : Stmt(SC, Empty) {} SourceLocation getAsmLoc() const { return AsmLoc; } @@ -1651,7 +1651,7 @@ StringLiteral *asmstr, unsigned numclobbers, StringLiteral **clobbers, SourceLocation rparenloc); - /// \brief Build an empty inline-assembly statement. + /// Build an empty inline-assembly statement. explicit GCCAsmStmt(EmptyShell Empty) : AsmStmt(GCCAsmStmtClass, Empty) {} SourceLocation getRParenLoc() const { return RParenLoc; } @@ -1828,7 +1828,7 @@ ArrayRef<Expr*> exprs, StringRef asmstr, ArrayRef<StringRef> clobbers, SourceLocation endloc); - /// \brief Build an empty MS-style inline-assembly statement. + /// Build an empty MS-style inline-assembly statement. explicit MSAsmStmt(EmptyShell Empty) : AsmStmt(MSAsmStmtClass, Empty) {} SourceLocation getLBraceLoc() const { return LBraceLoc; } @@ -2039,7 +2039,7 @@ explicit SEHLeaveStmt(SourceLocation LL) : Stmt(SEHLeaveStmtClass), LeaveLoc(LL) {} - /// \brief Build an empty __leave statement. + /// Build an empty __leave statement. explicit SEHLeaveStmt(EmptyShell Empty) : Stmt(SEHLeaveStmtClass, Empty) {} SourceLocation getLeaveLoc() const { return LeaveLoc; } @@ -2058,7 +2058,7 @@ } }; -/// \brief This captures a statement into a function. For example, the following +/// This captures a statement into a function. For example, the following /// pragma annotated compound statement can be represented as a CapturedStmt, /// and this compound statement is the body of an anonymous outlined function. /// @code @@ -2069,7 +2069,7 @@ /// @endcode class CapturedStmt : public Stmt { public: - /// \brief The different capture forms: by 'this', by reference, capture for + /// The different capture forms: by 'this', by reference, capture for /// variable-length array type etc. enum VariableCaptureKind { VCK_This, @@ -2078,7 +2078,7 @@ VCK_VLAType, }; - /// \brief Describes the capture of either a variable, or 'this', or + /// Describes the capture of either a variable, or 'this', or /// variable-length array type. class Capture { llvm::PointerIntPair<VarDecl *, 2, VariableCaptureKind> VarAndKind; @@ -2087,7 +2087,7 @@ public: friend class ASTStmtReader; - /// \brief Create a new capture. + /// Create a new capture. /// /// \param Loc The source location associated with this capture. /// @@ -2097,52 +2097,52 @@ Capture(SourceLocation Loc, VariableCaptureKind Kind, VarDecl *Var = nullptr); - /// \brief Determine the kind of capture. + /// Determine the kind of capture. VariableCaptureKind getCaptureKind() const; - /// \brief Retrieve the source location at which the variable or 'this' was + /// Retrieve the source location at which the variable or 'this' was /// first used. SourceLocation getLocation() const { return Loc; } - /// \brief Determine whether this capture handles the C++ 'this' pointer. + /// Determine whether this capture handles the C++ 'this' pointer. bool capturesThis() const { return getCaptureKind() == VCK_This; } - /// \brief Determine whether this capture handles a variable (by reference). + /// Determine whether this capture handles a variable (by reference). bool capturesVariable() const { return getCaptureKind() == VCK_ByRef; } - /// \brief Determine whether this capture handles a variable by copy. + /// Determine whether this capture handles a variable by copy. bool capturesVariableByCopy() const { return getCaptureKind() == VCK_ByCopy; } - /// \brief Determine whether this capture handles a variable-length array + /// Determine whether this capture handles a variable-length array /// type. bool capturesVariableArrayType() const { return getCaptureKind() == VCK_VLAType; } - /// \brief Retrieve the declaration of the variable being captured. + /// Retrieve the declaration of the variable being captured. /// /// This operation is only valid if this capture captures a variable. VarDecl *getCapturedVar() const; }; private: - /// \brief The number of variable captured, including 'this'. + /// The number of variable captured, including 'this'. unsigned NumCaptures; - /// \brief The pointer part is the implicit the outlined function and the + /// The pointer part is the implicit the outlined function and the /// int part is the captured region kind, 'CR_Default' etc. llvm::PointerIntPair<CapturedDecl *, 1, CapturedRegionKind> CapDeclAndKind; - /// \brief The record for captured variables, a RecordDecl or CXXRecordDecl. + /// The record for captured variables, a RecordDecl or CXXRecordDecl. RecordDecl *TheRecordDecl = nullptr; - /// \brief Construct a captured statement. + /// Construct a captured statement. CapturedStmt(Stmt *S, CapturedRegionKind Kind, ArrayRef<Capture> Captures, ArrayRef<Expr *> CaptureInits, CapturedDecl *CD, RecordDecl *RD); - /// \brief Construct an empty captured statement. + /// Construct an empty captured statement. CapturedStmt(EmptyShell Empty, unsigned NumCaptures); Stmt **getStoredStmts() { return reinterpret_cast<Stmt **>(this + 1); } @@ -2167,36 +2167,36 @@ static CapturedStmt *CreateDeserialized(const ASTContext &Context, unsigned NumCaptures); - /// \brief Retrieve the statement being captured. + /// Retrieve the statement being captured. Stmt *getCapturedStmt() { return getStoredStmts()[NumCaptures]; } const Stmt *getCapturedStmt() const { return getStoredStmts()[NumCaptures]; } - /// \brief Retrieve the outlined function declaration. + /// Retrieve the outlined function declaration. CapturedDecl *getCapturedDecl(); const CapturedDecl *getCapturedDecl() const; - /// \brief Set the outlined function declaration. + /// Set the outlined function declaration. void setCapturedDecl(CapturedDecl *D); - /// \brief Retrieve the captured region kind. + /// Retrieve the captured region kind. CapturedRegionKind getCapturedRegionKind() const; - /// \brief Set the captured region kind. + /// Set the captured region kind. void setCapturedRegionKind(CapturedRegionKind Kind); - /// \brief Retrieve the record declaration for captured variables. + /// Retrieve the record declaration for captured variables. const RecordDecl *getCapturedRecordDecl() const { return TheRecordDecl; } - /// \brief Set the record declaration for captured variables. + /// Set the record declaration for captured variables. void setCapturedRecordDecl(RecordDecl *D) { assert(D && "null RecordDecl"); TheRecordDecl = D; } - /// \brief True if this variable has been captured. + /// True if this variable has been captured. bool capturesVariable(const VarDecl *Var) const; - /// \brief An iterator that walks over the captures. + /// An iterator that walks over the captures. using capture_iterator = Capture *; using const_capture_iterator = const Capture *; using capture_range = llvm::iterator_range<capture_iterator>; @@ -2209,24 +2209,24 @@ return capture_const_range(capture_begin(), capture_end()); } - /// \brief Retrieve an iterator pointing to the first capture. + /// Retrieve an iterator pointing to the first capture. capture_iterator capture_begin() { return getStoredCaptures(); } const_capture_iterator capture_begin() const { return getStoredCaptures(); } - /// \brief Retrieve an iterator pointing past the end of the sequence of + /// Retrieve an iterator pointing past the end of the sequence of /// captures. capture_iterator capture_end() const { return getStoredCaptures() + NumCaptures; } - /// \brief Retrieve the number of captures, including 'this'. + /// Retrieve the number of captures, including 'this'. unsigned capture_size() const { return NumCaptures; } - /// \brief Iterator that walks over the capture initialization arguments. + /// Iterator that walks over the capture initialization arguments. using capture_init_iterator = Expr **; using capture_init_range = llvm::iterator_range<capture_init_iterator>; - /// \brief Const iterator that walks over the capture initialization + /// Const iterator that walks over the capture initialization /// arguments. using const_capture_init_iterator = Expr *const *; using const_capture_init_range = @@ -2240,7 +2240,7 @@ return const_capture_init_range(capture_init_begin(), capture_init_end()); } - /// \brief Retrieve the first initialization argument. + /// Retrieve the first initialization argument. capture_init_iterator capture_init_begin() { return reinterpret_cast<Expr **>(getStoredStmts()); } @@ -2249,7 +2249,7 @@ return reinterpret_cast<Expr *const *>(getStoredStmts()); } - /// \brief Retrieve the iterator pointing one past the last initialization + /// Retrieve the iterator pointing one past the last initialization /// argument. capture_init_iterator capture_init_end() { return capture_init_begin() + NumCaptures; Index: cfe/trunk/include/clang/AST/StmtCXX.h =================================================================== --- cfe/trunk/include/clang/AST/StmtCXX.h +++ cfe/trunk/include/clang/AST/StmtCXX.h @@ -210,7 +210,7 @@ } }; -/// \brief Representation of a Microsoft __if_exists or __if_not_exists +/// Representation of a Microsoft __if_exists or __if_not_exists /// statement with a dependent name. /// /// The __if_exists statement can be used to include a sequence of statements @@ -257,25 +257,25 @@ QualifierLoc(QualifierLoc), NameInfo(NameInfo), SubStmt(reinterpret_cast<Stmt *>(SubStmt)) { } - /// \brief Retrieve the location of the __if_exists or __if_not_exists + /// Retrieve the location of the __if_exists or __if_not_exists /// keyword. SourceLocation getKeywordLoc() const { return KeywordLoc; } - /// \brief Determine whether this is an __if_exists statement. + /// Determine whether this is an __if_exists statement. bool isIfExists() const { return IsIfExists; } - /// \brief Determine whether this is an __if_exists statement. + /// Determine whether this is an __if_exists statement. bool isIfNotExists() const { return !IsIfExists; } - /// \brief Retrieve the nested-name-specifier that qualifies this name, if + /// Retrieve the nested-name-specifier that qualifies this name, if /// any. NestedNameSpecifierLoc getQualifierLoc() const { return QualifierLoc; } - /// \brief Retrieve the name of the entity we're testing for, along with + /// Retrieve the name of the entity we're testing for, along with /// location information DeclarationNameInfo getNameInfo() const { return NameInfo; } - /// \brief Retrieve the compound statement that will be included in the + /// Retrieve the compound statement that will be included in the /// program only if the existence of the symbol matches the initial keyword. CompoundStmt *getSubStmt() const { return reinterpret_cast<CompoundStmt *>(SubStmt); @@ -293,7 +293,7 @@ } }; -/// \brief Represents the body of a coroutine. This wraps the normal function +/// Represents the body of a coroutine. This wraps the normal function /// body and holds the additional semantic context required to set up and tear /// down the coroutine frame. class CoroutineBodyStmt final @@ -355,7 +355,7 @@ return getPromiseDecl()->getType()->isDependentType(); } - /// \brief Retrieve the body of the coroutine as written. This will be either + /// Retrieve the body of the coroutine as written. This will be either /// a CompoundStmt or a TryStmt. Stmt *getBody() const { return getStoredStmts()[SubStmt::Body]; @@ -418,7 +418,7 @@ } }; -/// \brief Represents a 'co_return' statement in the C++ Coroutines TS. +/// Represents a 'co_return' statement in the C++ Coroutines TS. /// /// This statament models the initialization of the coroutine promise /// (encapsulating the eventual notional return value) from an expression @@ -451,11 +451,11 @@ SourceLocation getKeywordLoc() const { return CoreturnLoc; } - /// \brief Retrieve the operand of the 'co_return' statement. Will be nullptr + /// Retrieve the operand of the 'co_return' statement. Will be nullptr /// if none was specified. Expr *getOperand() const { return static_cast<Expr*>(SubStmts[Operand]); } - /// \brief Retrieve the promise call that results from this 'co_return' + /// Retrieve the promise call that results from this 'co_return' /// statement. Will be nullptr if either the coroutine has not yet been /// finalized or the coroutine has no eventual return type. Expr *getPromiseCall() const { Index: cfe/trunk/include/clang/AST/StmtObjC.h =================================================================== --- cfe/trunk/include/clang/AST/StmtObjC.h +++ cfe/trunk/include/clang/AST/StmtObjC.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// \file -/// \brief Defines the Objective-C statement AST node classes. +/// Defines the Objective-C statement AST node classes. #ifndef LLVM_CLANG_AST_STMTOBJC_H #define LLVM_CLANG_AST_STMTOBJC_H @@ -18,7 +18,7 @@ namespace clang { -/// \brief Represents Objective-C's collection statement. +/// Represents Objective-C's collection statement. /// /// This is represented as 'for (element 'in' collection-expression)' stmt. class ObjCForCollectionStmt : public Stmt { @@ -70,7 +70,7 @@ } }; -/// \brief Represents Objective-C's \@catch statement. +/// Represents Objective-C's \@catch statement. class ObjCAtCatchStmt : public Stmt { private: VarDecl *ExceptionDecl; @@ -116,7 +116,7 @@ child_range children() { return child_range(&Body, &Body + 1); } }; -/// \brief Represents Objective-C's \@finally statement +/// Represents Objective-C's \@finally statement class ObjCAtFinallyStmt : public Stmt { SourceLocation AtFinallyLoc; Stmt *AtFinallyStmt; @@ -150,7 +150,7 @@ } }; -/// \brief Represents Objective-C's \@try ... \@catch ... \@finally statement. +/// Represents Objective-C's \@try ... \@catch ... \@finally statement. class ObjCAtTryStmt : public Stmt { private: // The location of the @ in the \@try. @@ -162,7 +162,7 @@ // Whether this statement has a \@finally statement. bool HasFinally : 1; - /// \brief Retrieve the statements that are stored after this \@try statement. + /// Retrieve the statements that are stored after this \@try statement. /// /// The order of the statements in memory follows the order in the source, /// with the \@try body first, followed by the \@catch statements (if any) @@ -189,38 +189,38 @@ static ObjCAtTryStmt *CreateEmpty(const ASTContext &Context, unsigned NumCatchStmts, bool HasFinally); - /// \brief Retrieve the location of the @ in the \@try. + /// Retrieve the location of the @ in the \@try. SourceLocation getAtTryLoc() const { return AtTryLoc; } void setAtTryLoc(SourceLocation Loc) { AtTryLoc = Loc; } - /// \brief Retrieve the \@try body. + /// Retrieve the \@try body. const Stmt *getTryBody() const { return getStmts()[0]; } Stmt *getTryBody() { return getStmts()[0]; } void setTryBody(Stmt *S) { getStmts()[0] = S; } - /// \brief Retrieve the number of \@catch statements in this try-catch-finally + /// Retrieve the number of \@catch statements in this try-catch-finally /// block. unsigned getNumCatchStmts() const { return NumCatchStmts; } - /// \brief Retrieve a \@catch statement. + /// Retrieve a \@catch statement. const ObjCAtCatchStmt *getCatchStmt(unsigned I) const { assert(I < NumCatchStmts && "Out-of-bounds @catch index"); return cast_or_null<ObjCAtCatchStmt>(getStmts()[I + 1]); } - /// \brief Retrieve a \@catch statement. + /// Retrieve a \@catch statement. ObjCAtCatchStmt *getCatchStmt(unsigned I) { assert(I < NumCatchStmts && "Out-of-bounds @catch index"); return cast_or_null<ObjCAtCatchStmt>(getStmts()[I + 1]); } - /// \brief Set a particular catch statement. + /// Set a particular catch statement. void setCatchStmt(unsigned I, ObjCAtCatchStmt *S) { assert(I < NumCatchStmts && "Out-of-bounds @catch index"); getStmts()[I + 1] = S; } - /// \brief Retrieve the \@finally statement, if any. + /// Retrieve the \@finally statement, if any. const ObjCAtFinallyStmt *getFinallyStmt() const { if (!HasFinally) return nullptr; @@ -251,7 +251,7 @@ } }; -/// \brief Represents Objective-C's \@synchronized statement. +/// Represents Objective-C's \@synchronized statement. /// /// Example: /// \code @@ -309,7 +309,7 @@ } }; -/// \brief Represents Objective-C's \@throw statement. +/// Represents Objective-C's \@throw statement. class ObjCAtThrowStmt : public Stmt { SourceLocation AtThrowLoc; Stmt *Throw; @@ -341,7 +341,7 @@ child_range children() { return child_range(&Throw, &Throw+1); } }; -/// \brief Represents Objective-C's \@autoreleasepool Statement +/// Represents Objective-C's \@autoreleasepool Statement class ObjCAutoreleasePoolStmt : public Stmt { SourceLocation AtLoc; Stmt *SubStmt; Index: cfe/trunk/include/clang/AST/StmtOpenMP.h =================================================================== --- cfe/trunk/include/clang/AST/StmtOpenMP.h +++ cfe/trunk/include/clang/AST/StmtOpenMP.h @@ -7,7 +7,7 @@ // //===----------------------------------------------------------------------===// /// \file -/// \brief This file defines OpenMP AST classes for executable directives and +/// This file defines OpenMP AST classes for executable directives and /// clauses. /// //===----------------------------------------------------------------------===// @@ -27,28 +27,28 @@ // AST classes for directives. //===----------------------------------------------------------------------===// -/// \brief This is a basic class for representing single OpenMP executable +/// This is a basic class for representing single OpenMP executable /// directive. /// class OMPExecutableDirective : public Stmt { friend class ASTStmtReader; - /// \brief Kind of the directive. + /// Kind of the directive. OpenMPDirectiveKind Kind; - /// \brief Starting location of the directive (directive keyword). + /// Starting location of the directive (directive keyword). SourceLocation StartLoc; - /// \brief Ending location of the directive. + /// Ending location of the directive. SourceLocation EndLoc; - /// \brief Numbers of clauses. + /// Numbers of clauses. const unsigned NumClauses; - /// \brief Number of child expressions/stmts. + /// Number of child expressions/stmts. const unsigned NumChildren; - /// \brief Offset from this to the start of clauses. + /// Offset from this to the start of clauses. /// There are NumClauses pointers to clauses, they are followed by /// NumChildren pointers to child stmts/exprs (if the directive type /// requires an associated stmt, then it has to be the first of them). const unsigned ClausesOffset; - /// \brief Get the clauses storage. + /// Get the clauses storage. MutableArrayRef<OMPClause *> getClauses() { OMPClause **ClauseStorage = reinterpret_cast<OMPClause **>( reinterpret_cast<char *>(this) + ClausesOffset); @@ -56,7 +56,7 @@ } protected: - /// \brief Build instance of directive of class \a K. + /// Build instance of directive of class \a K. /// /// \param SC Statement class. /// \param K Kind of OpenMP directive. @@ -72,13 +72,13 @@ NumChildren(NumChildren), ClausesOffset(llvm::alignTo(sizeof(T), alignof(OMPClause *))) {} - /// \brief Sets the list of variables for this clause. + /// Sets the list of variables for this clause. /// /// \param Clauses The list of clauses for the directive. /// void setClauses(ArrayRef<OMPClause *> Clauses); - /// \brief Set the associated statement for the directive. + /// Set the associated statement for the directive. /// /// /param S Associated statement. /// @@ -88,7 +88,7 @@ } public: - /// \brief Iterates over a filtered subrange of clauses applied to a + /// Iterates over a filtered subrange of clauses applied to a /// directive. /// /// This iterator visits only clauses of type SpecificClause. @@ -164,35 +164,35 @@ return Clauses.begin() != Clauses.end(); } - /// \brief Returns starting location of directive kind. + /// Returns starting location of directive kind. SourceLocation getLocStart() const { return StartLoc; } - /// \brief Returns ending location of directive. + /// Returns ending location of directive. SourceLocation getLocEnd() const { return EndLoc; } - /// \brief Set starting location of directive kind. + /// Set starting location of directive kind. /// /// \param Loc New starting location of directive. /// void setLocStart(SourceLocation Loc) { StartLoc = Loc; } - /// \brief Set ending location of directive. + /// Set ending location of directive. /// /// \param Loc New ending location of directive. /// void setLocEnd(SourceLocation Loc) { EndLoc = Loc; } - /// \brief Get number of clauses. + /// Get number of clauses. unsigned getNumClauses() const { return NumClauses; } - /// \brief Returns specified clause. + /// Returns specified clause. /// /// \param i Number of clause. /// OMPClause *getClause(unsigned i) const { return clauses()[i]; } - /// \brief Returns true if directive has associated statement. + /// Returns true if directive has associated statement. bool hasAssociatedStmt() const { return NumChildren > 0; } - /// \brief Returns statement associated with the directive. + /// Returns statement associated with the directive. const Stmt *getAssociatedStmt() const { assert(hasAssociatedStmt() && "no associated statement."); return *child_begin(); @@ -202,7 +202,7 @@ return *child_begin(); } - /// \brief Returns the captured statement associated with the + /// Returns the captured statement associated with the /// component region within the (combined) directive. // // \param RegionKind Component region kind. @@ -262,7 +262,7 @@ } }; -/// \brief This represents '#pragma omp parallel' directive. +/// This represents '#pragma omp parallel' directive. /// /// \code /// #pragma omp parallel private(a,b) reduction(+: c,d) @@ -273,10 +273,10 @@ /// class OMPParallelDirective : public OMPExecutableDirective { friend class ASTStmtReader; - /// \brief true if the construct has inner cancel directive. + /// true if the construct has inner cancel directive. bool HasCancel; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive (directive keyword). /// \param EndLoc Ending Location of the directive. @@ -287,7 +287,7 @@ StartLoc, EndLoc, NumClauses, 1), HasCancel(false) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param NumClauses Number of clauses. /// @@ -297,11 +297,11 @@ 1), HasCancel(false) {} - /// \brief Set cancel state. + /// Set cancel state. void setHasCancel(bool Has) { HasCancel = Has; } public: - /// \brief Creates directive with a list of \a Clauses. + /// Creates directive with a list of \a Clauses. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -314,7 +314,7 @@ Create(const ASTContext &C, SourceLocation StartLoc, SourceLocation EndLoc, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt, bool HasCancel); - /// \brief Creates an empty directive with the place for \a N clauses. + /// Creates an empty directive with the place for \a N clauses. /// /// \param C AST context. /// \param NumClauses Number of clauses. @@ -322,7 +322,7 @@ static OMPParallelDirective *CreateEmpty(const ASTContext &C, unsigned NumClauses, EmptyShell); - /// \brief Return true if current directive has inner cancel directive. + /// Return true if current directive has inner cancel directive. bool hasCancel() const { return HasCancel; } static bool classof(const Stmt *T) { @@ -330,15 +330,15 @@ } }; -/// \brief This is a common base class for loop directives ('omp simd', 'omp +/// This is a common base class for loop directives ('omp simd', 'omp /// for', 'omp for simd' etc.). It is responsible for the loop code generation. /// class OMPLoopDirective : public OMPExecutableDirective { friend class ASTStmtReader; - /// \brief Number of collapsed loops as specified by 'collapse' clause. + /// Number of collapsed loops as specified by 'collapse' clause. unsigned CollapsedNum; - /// \brief Offsets to the stored exprs. + /// Offsets to the stored exprs. /// This enumeration contains offsets to all the pointers to children /// expressions stored in OMPLoopDirective. /// The first 9 children are necessary for all the loop directives, @@ -395,21 +395,21 @@ CombinedDistributeEnd = 28, }; - /// \brief Get the counters storage. + /// Get the counters storage. MutableArrayRef<Expr *> getCounters() { Expr **Storage = reinterpret_cast<Expr **>( &(*(std::next(child_begin(), getArraysOffset(getDirectiveKind()))))); return MutableArrayRef<Expr *>(Storage, CollapsedNum); } - /// \brief Get the private counters storage. + /// Get the private counters storage. MutableArrayRef<Expr *> getPrivateCounters() { Expr **Storage = reinterpret_cast<Expr **>(&*std::next( child_begin(), getArraysOffset(getDirectiveKind()) + CollapsedNum)); return MutableArrayRef<Expr *>(Storage, CollapsedNum); } - /// \brief Get the updates storage. + /// Get the updates storage. MutableArrayRef<Expr *> getInits() { Expr **Storage = reinterpret_cast<Expr **>( &*std::next(child_begin(), @@ -417,7 +417,7 @@ return MutableArrayRef<Expr *>(Storage, CollapsedNum); } - /// \brief Get the updates storage. + /// Get the updates storage. MutableArrayRef<Expr *> getUpdates() { Expr **Storage = reinterpret_cast<Expr **>( &*std::next(child_begin(), @@ -425,7 +425,7 @@ return MutableArrayRef<Expr *>(Storage, CollapsedNum); } - /// \brief Get the final counter updates storage. + /// Get the final counter updates storage. MutableArrayRef<Expr *> getFinals() { Expr **Storage = reinterpret_cast<Expr **>( &*std::next(child_begin(), @@ -434,7 +434,7 @@ } protected: - /// \brief Build instance of loop directive of class \a Kind. + /// Build instance of loop directive of class \a Kind. /// /// \param SC Statement class. /// \param Kind Kind of OpenMP directive. @@ -454,7 +454,7 @@ NumSpecialChildren), CollapsedNum(CollapsedNum) {} - /// \brief Offset to the start of children expression arrays. + /// Offset to the start of children expression arrays. static unsigned getArraysOffset(OpenMPDirectiveKind Kind) { if (isOpenMPLoopBoundSharingDirective(Kind)) return CombinedDistributeEnd; @@ -464,7 +464,7 @@ return DefaultEnd; } - /// \brief Children number. + /// Children number. static unsigned numLoopChildren(unsigned CollapsedNum, OpenMPDirectiveKind Kind) { return getArraysOffset(Kind) + 5 * CollapsedNum; // Counters, @@ -637,64 +637,64 @@ Expr *NUB; }; - /// \brief The expressions built for the OpenMP loop CodeGen for the + /// The expressions built for the OpenMP loop CodeGen for the /// whole collapsed loop nest. struct HelperExprs { - /// \brief Loop iteration variable. + /// Loop iteration variable. Expr *IterationVarRef; - /// \brief Loop last iteration number. + /// Loop last iteration number. Expr *LastIteration; - /// \brief Loop number of iterations. + /// Loop number of iterations. Expr *NumIterations; - /// \brief Calculation of last iteration. + /// Calculation of last iteration. Expr *CalcLastIteration; - /// \brief Loop pre-condition. + /// Loop pre-condition. Expr *PreCond; - /// \brief Loop condition. + /// Loop condition. Expr *Cond; - /// \brief Loop iteration variable init. + /// Loop iteration variable init. Expr *Init; - /// \brief Loop increment. + /// Loop increment. Expr *Inc; - /// \brief IsLastIteration - local flag variable passed to runtime. + /// IsLastIteration - local flag variable passed to runtime. Expr *IL; - /// \brief LowerBound - local variable passed to runtime. + /// LowerBound - local variable passed to runtime. Expr *LB; - /// \brief UpperBound - local variable passed to runtime. + /// UpperBound - local variable passed to runtime. Expr *UB; - /// \brief Stride - local variable passed to runtime. + /// Stride - local variable passed to runtime. Expr *ST; - /// \brief EnsureUpperBound -- expression UB = min(UB, NumIterations). + /// EnsureUpperBound -- expression UB = min(UB, NumIterations). Expr *EUB; - /// \brief Update of LowerBound for statically scheduled 'omp for' loops. + /// Update of LowerBound for statically scheduled 'omp for' loops. Expr *NLB; - /// \brief Update of UpperBound for statically scheduled 'omp for' loops. + /// Update of UpperBound for statically scheduled 'omp for' loops. Expr *NUB; - /// \brief PreviousLowerBound - local variable passed to runtime in the + /// PreviousLowerBound - local variable passed to runtime in the /// enclosing schedule or null if that does not apply. Expr *PrevLB; - /// \brief PreviousUpperBound - local variable passed to runtime in the + /// PreviousUpperBound - local variable passed to runtime in the /// enclosing schedule or null if that does not apply. Expr *PrevUB; - /// \brief DistInc - increment expression for distribute loop when found + /// DistInc - increment expression for distribute loop when found /// combined with a further loop level (e.g. in 'distribute parallel for') /// expression IV = IV + ST Expr *DistInc; - /// \brief PrevEUB - expression similar to EUB but to be used when loop + /// PrevEUB - expression similar to EUB but to be used when loop /// scheduling uses PrevLB and PrevUB (e.g. in 'distribute parallel for' /// when ensuring that the UB is either the calculated UB by the runtime or /// the end of the assigned distribute chunk) /// expression UB = min (UB, PrevUB) Expr *PrevEUB; - /// \brief Counters Loop counters. + /// Counters Loop counters. SmallVector<Expr *, 4> Counters; - /// \brief PrivateCounters Loop counters. + /// PrivateCounters Loop counters. SmallVector<Expr *, 4> PrivateCounters; - /// \brief Expressions for loop counters inits for CodeGen. + /// Expressions for loop counters inits for CodeGen. SmallVector<Expr *, 4> Inits; - /// \brief Expressions for loop counters update for CodeGen. + /// Expressions for loop counters update for CodeGen. SmallVector<Expr *, 4> Updates; - /// \brief Final loop counter values for GodeGen. + /// Final loop counter values for GodeGen. SmallVector<Expr *, 4> Finals; /// Init statement for all captured expressions. Stmt *PreInits; @@ -702,7 +702,7 @@ /// Expressions used when combining OpenMP loop pragmas DistCombinedHelperExprs DistCombinedFields; - /// \brief Check if all the expressions are built (does not check the + /// Check if all the expressions are built (does not check the /// worksharing ones). bool builtAll() { return IterationVarRef != nullptr && LastIteration != nullptr && @@ -710,7 +710,7 @@ Cond != nullptr && Init != nullptr && Inc != nullptr; } - /// \brief Initialize all the fields to null. + /// Initialize all the fields to null. /// \param Size Number of elements in the counters/finals/updates arrays. void clear(unsigned Size) { IterationVarRef = nullptr; @@ -755,7 +755,7 @@ } }; - /// \brief Get number of collapsed loops. + /// Get number of collapsed loops. unsigned getCollapsedNumber() const { return CollapsedNum; } Expr *getIterationVariable() const { @@ -991,7 +991,7 @@ } }; -/// \brief This represents '#pragma omp simd' directive. +/// This represents '#pragma omp simd' directive. /// /// \code /// #pragma omp simd private(a,b) linear(i,j:s) reduction(+:c,d) @@ -1002,7 +1002,7 @@ /// class OMPSimdDirective : public OMPLoopDirective { friend class ASTStmtReader; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -1014,7 +1014,7 @@ : OMPLoopDirective(this, OMPSimdDirectiveClass, OMPD_simd, StartLoc, EndLoc, CollapsedNum, NumClauses) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param CollapsedNum Number of collapsed nested loops. /// \param NumClauses Number of clauses. @@ -1025,7 +1025,7 @@ NumClauses) {} public: - /// \brief Creates directive with a list of \a Clauses. + /// Creates directive with a list of \a Clauses. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -1041,7 +1041,7 @@ Stmt *AssociatedStmt, const HelperExprs &Exprs); - /// \brief Creates an empty directive with the place + /// Creates an empty directive with the place /// for \a NumClauses clauses. /// /// \param C AST context. @@ -1056,7 +1056,7 @@ } }; -/// \brief This represents '#pragma omp for' directive. +/// This represents '#pragma omp for' directive. /// /// \code /// #pragma omp for private(a,b) reduction(+:c,d) @@ -1068,10 +1068,10 @@ class OMPForDirective : public OMPLoopDirective { friend class ASTStmtReader; - /// \brief true if current directive has inner cancel directive. + /// true if current directive has inner cancel directive. bool HasCancel; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -1084,7 +1084,7 @@ CollapsedNum, NumClauses), HasCancel(false) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param CollapsedNum Number of collapsed nested loops. /// \param NumClauses Number of clauses. @@ -1094,11 +1094,11 @@ SourceLocation(), CollapsedNum, NumClauses), HasCancel(false) {} - /// \brief Set cancel state. + /// Set cancel state. void setHasCancel(bool Has) { HasCancel = Has; } public: - /// \brief Creates directive with a list of \a Clauses. + /// Creates directive with a list of \a Clauses. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -1115,7 +1115,7 @@ Stmt *AssociatedStmt, const HelperExprs &Exprs, bool HasCancel); - /// \brief Creates an empty directive with the place + /// Creates an empty directive with the place /// for \a NumClauses clauses. /// /// \param C AST context. @@ -1125,7 +1125,7 @@ static OMPForDirective *CreateEmpty(const ASTContext &C, unsigned NumClauses, unsigned CollapsedNum, EmptyShell); - /// \brief Return true if current directive has inner cancel directive. + /// Return true if current directive has inner cancel directive. bool hasCancel() const { return HasCancel; } static bool classof(const Stmt *T) { @@ -1133,7 +1133,7 @@ } }; -/// \brief This represents '#pragma omp for simd' directive. +/// This represents '#pragma omp for simd' directive. /// /// \code /// #pragma omp for simd private(a,b) linear(i,j:s) reduction(+:c,d) @@ -1144,7 +1144,7 @@ /// class OMPForSimdDirective : public OMPLoopDirective { friend class ASTStmtReader; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -1156,7 +1156,7 @@ : OMPLoopDirective(this, OMPForSimdDirectiveClass, OMPD_for_simd, StartLoc, EndLoc, CollapsedNum, NumClauses) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param CollapsedNum Number of collapsed nested loops. /// \param NumClauses Number of clauses. @@ -1167,7 +1167,7 @@ NumClauses) {} public: - /// \brief Creates directive with a list of \a Clauses. + /// Creates directive with a list of \a Clauses. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -1182,7 +1182,7 @@ unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt, const HelperExprs &Exprs); - /// \brief Creates an empty directive with the place + /// Creates an empty directive with the place /// for \a NumClauses clauses. /// /// \param C AST context. @@ -1198,7 +1198,7 @@ } }; -/// \brief This represents '#pragma omp sections' directive. +/// This represents '#pragma omp sections' directive. /// /// \code /// #pragma omp sections private(a,b) reduction(+:c,d) @@ -1210,10 +1210,10 @@ class OMPSectionsDirective : public OMPExecutableDirective { friend class ASTStmtReader; - /// \brief true if current directive has inner cancel directive. + /// true if current directive has inner cancel directive. bool HasCancel; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -1225,7 +1225,7 @@ StartLoc, EndLoc, NumClauses, 1), HasCancel(false) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param NumClauses Number of clauses. /// @@ -1235,11 +1235,11 @@ 1), HasCancel(false) {} - /// \brief Set cancel state. + /// Set cancel state. void setHasCancel(bool Has) { HasCancel = Has; } public: - /// \brief Creates directive with a list of \a Clauses. + /// Creates directive with a list of \a Clauses. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -1252,7 +1252,7 @@ Create(const ASTContext &C, SourceLocation StartLoc, SourceLocation EndLoc, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt, bool HasCancel); - /// \brief Creates an empty directive with the place for \a NumClauses + /// Creates an empty directive with the place for \a NumClauses /// clauses. /// /// \param C AST context. @@ -1261,7 +1261,7 @@ static OMPSectionsDirective *CreateEmpty(const ASTContext &C, unsigned NumClauses, EmptyShell); - /// \brief Return true if current directive has inner cancel directive. + /// Return true if current directive has inner cancel directive. bool hasCancel() const { return HasCancel; } static bool classof(const Stmt *T) { @@ -1269,7 +1269,7 @@ } }; -/// \brief This represents '#pragma omp section' directive. +/// This represents '#pragma omp section' directive. /// /// \code /// #pragma omp section @@ -1278,10 +1278,10 @@ class OMPSectionDirective : public OMPExecutableDirective { friend class ASTStmtReader; - /// \brief true if current directive has inner cancel directive. + /// true if current directive has inner cancel directive. bool HasCancel; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -1291,7 +1291,7 @@ StartLoc, EndLoc, 0, 1), HasCancel(false) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// explicit OMPSectionDirective() : OMPExecutableDirective(this, OMPSectionDirectiveClass, OMPD_section, @@ -1299,7 +1299,7 @@ HasCancel(false) {} public: - /// \brief Creates directive. + /// Creates directive. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -1312,16 +1312,16 @@ SourceLocation EndLoc, Stmt *AssociatedStmt, bool HasCancel); - /// \brief Creates an empty directive. + /// Creates an empty directive. /// /// \param C AST context. /// static OMPSectionDirective *CreateEmpty(const ASTContext &C, EmptyShell); - /// \brief Set cancel state. + /// Set cancel state. void setHasCancel(bool Has) { HasCancel = Has; } - /// \brief Return true if current directive has inner cancel directive. + /// Return true if current directive has inner cancel directive. bool hasCancel() const { return HasCancel; } static bool classof(const Stmt *T) { @@ -1329,7 +1329,7 @@ } }; -/// \brief This represents '#pragma omp single' directive. +/// This represents '#pragma omp single' directive. /// /// \code /// #pragma omp single private(a,b) copyprivate(c,d) @@ -1339,7 +1339,7 @@ /// class OMPSingleDirective : public OMPExecutableDirective { friend class ASTStmtReader; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -1350,7 +1350,7 @@ : OMPExecutableDirective(this, OMPSingleDirectiveClass, OMPD_single, StartLoc, EndLoc, NumClauses, 1) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param NumClauses Number of clauses. /// @@ -1360,7 +1360,7 @@ 1) {} public: - /// \brief Creates directive with a list of \a Clauses. + /// Creates directive with a list of \a Clauses. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -1372,7 +1372,7 @@ Create(const ASTContext &C, SourceLocation StartLoc, SourceLocation EndLoc, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt); - /// \brief Creates an empty directive with the place for \a NumClauses + /// Creates an empty directive with the place for \a NumClauses /// clauses. /// /// \param C AST context. @@ -1386,7 +1386,7 @@ } }; -/// \brief This represents '#pragma omp master' directive. +/// This represents '#pragma omp master' directive. /// /// \code /// #pragma omp master @@ -1394,7 +1394,7 @@ /// class OMPMasterDirective : public OMPExecutableDirective { friend class ASTStmtReader; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -1403,14 +1403,14 @@ : OMPExecutableDirective(this, OMPMasterDirectiveClass, OMPD_master, StartLoc, EndLoc, 0, 1) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// explicit OMPMasterDirective() : OMPExecutableDirective(this, OMPMasterDirectiveClass, OMPD_master, SourceLocation(), SourceLocation(), 0, 1) {} public: - /// \brief Creates directive. + /// Creates directive. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -1422,7 +1422,7 @@ SourceLocation EndLoc, Stmt *AssociatedStmt); - /// \brief Creates an empty directive. + /// Creates an empty directive. /// /// \param C AST context. /// @@ -1433,7 +1433,7 @@ } }; -/// \brief This represents '#pragma omp critical' directive. +/// This represents '#pragma omp critical' directive. /// /// \code /// #pragma omp critical @@ -1441,9 +1441,9 @@ /// class OMPCriticalDirective : public OMPExecutableDirective { friend class ASTStmtReader; - /// \brief Name of the directive. + /// Name of the directive. DeclarationNameInfo DirName; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param Name Name of the directive. /// \param StartLoc Starting location of the directive kind. @@ -1456,7 +1456,7 @@ StartLoc, EndLoc, NumClauses, 1), DirName(Name) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param NumClauses Number of clauses. /// @@ -1466,14 +1466,14 @@ 1), DirName() {} - /// \brief Set name of the directive. + /// Set name of the directive. /// /// \param Name Name of the directive. /// void setDirectiveName(const DeclarationNameInfo &Name) { DirName = Name; } public: - /// \brief Creates directive. + /// Creates directive. /// /// \param C AST context. /// \param Name Name of the directive. @@ -1487,7 +1487,7 @@ SourceLocation StartLoc, SourceLocation EndLoc, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt); - /// \brief Creates an empty directive. + /// Creates an empty directive. /// /// \param C AST context. /// \param NumClauses Number of clauses. @@ -1495,7 +1495,7 @@ static OMPCriticalDirective *CreateEmpty(const ASTContext &C, unsigned NumClauses, EmptyShell); - /// \brief Return name of the directive. + /// Return name of the directive. /// DeclarationNameInfo getDirectiveName() const { return DirName; } @@ -1504,7 +1504,7 @@ } }; -/// \brief This represents '#pragma omp parallel for' directive. +/// This represents '#pragma omp parallel for' directive. /// /// \code /// #pragma omp parallel for private(a,b) reduction(+:c,d) @@ -1516,10 +1516,10 @@ class OMPParallelForDirective : public OMPLoopDirective { friend class ASTStmtReader; - /// \brief true if current region has inner cancel directive. + /// true if current region has inner cancel directive. bool HasCancel; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -1532,7 +1532,7 @@ StartLoc, EndLoc, CollapsedNum, NumClauses), HasCancel(false) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param CollapsedNum Number of collapsed nested loops. /// \param NumClauses Number of clauses. @@ -1543,11 +1543,11 @@ NumClauses), HasCancel(false) {} - /// \brief Set cancel state. + /// Set cancel state. void setHasCancel(bool Has) { HasCancel = Has; } public: - /// \brief Creates directive with a list of \a Clauses. + /// Creates directive with a list of \a Clauses. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -1563,7 +1563,7 @@ unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt, const HelperExprs &Exprs, bool HasCancel); - /// \brief Creates an empty directive with the place + /// Creates an empty directive with the place /// for \a NumClauses clauses. /// /// \param C AST context. @@ -1575,7 +1575,7 @@ unsigned CollapsedNum, EmptyShell); - /// \brief Return true if current directive has inner cancel directive. + /// Return true if current directive has inner cancel directive. bool hasCancel() const { return HasCancel; } static bool classof(const Stmt *T) { @@ -1583,7 +1583,7 @@ } }; -/// \brief This represents '#pragma omp parallel for simd' directive. +/// This represents '#pragma omp parallel for simd' directive. /// /// \code /// #pragma omp parallel for simd private(a,b) linear(i,j:s) reduction(+:c,d) @@ -1595,7 +1595,7 @@ /// class OMPParallelForSimdDirective : public OMPLoopDirective { friend class ASTStmtReader; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -1608,7 +1608,7 @@ OMPD_parallel_for_simd, StartLoc, EndLoc, CollapsedNum, NumClauses) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param CollapsedNum Number of collapsed nested loops. /// \param NumClauses Number of clauses. @@ -1620,7 +1620,7 @@ SourceLocation(), CollapsedNum, NumClauses) {} public: - /// \brief Creates directive with a list of \a Clauses. + /// Creates directive with a list of \a Clauses. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -1635,7 +1635,7 @@ unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt, const HelperExprs &Exprs); - /// \brief Creates an empty directive with the place + /// Creates an empty directive with the place /// for \a NumClauses clauses. /// /// \param C AST context. @@ -1652,7 +1652,7 @@ } }; -/// \brief This represents '#pragma omp parallel sections' directive. +/// This represents '#pragma omp parallel sections' directive. /// /// \code /// #pragma omp parallel sections private(a,b) reduction(+:c,d) @@ -1664,10 +1664,10 @@ class OMPParallelSectionsDirective : public OMPExecutableDirective { friend class ASTStmtReader; - /// \brief true if current directive has inner cancel directive. + /// true if current directive has inner cancel directive. bool HasCancel; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -1680,7 +1680,7 @@ NumClauses, 1), HasCancel(false) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param NumClauses Number of clauses. /// @@ -1690,11 +1690,11 @@ SourceLocation(), NumClauses, 1), HasCancel(false) {} - /// \brief Set cancel state. + /// Set cancel state. void setHasCancel(bool Has) { HasCancel = Has; } public: - /// \brief Creates directive with a list of \a Clauses. + /// Creates directive with a list of \a Clauses. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -1707,7 +1707,7 @@ Create(const ASTContext &C, SourceLocation StartLoc, SourceLocation EndLoc, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt, bool HasCancel); - /// \brief Creates an empty directive with the place for \a NumClauses + /// Creates an empty directive with the place for \a NumClauses /// clauses. /// /// \param C AST context. @@ -1716,7 +1716,7 @@ static OMPParallelSectionsDirective * CreateEmpty(const ASTContext &C, unsigned NumClauses, EmptyShell); - /// \brief Return true if current directive has inner cancel directive. + /// Return true if current directive has inner cancel directive. bool hasCancel() const { return HasCancel; } static bool classof(const Stmt *T) { @@ -1724,7 +1724,7 @@ } }; -/// \brief This represents '#pragma omp task' directive. +/// This represents '#pragma omp task' directive. /// /// \code /// #pragma omp task private(a,b) final(d) @@ -1734,10 +1734,10 @@ /// class OMPTaskDirective : public OMPExecutableDirective { friend class ASTStmtReader; - /// \brief true if this directive has inner cancel directive. + /// true if this directive has inner cancel directive. bool HasCancel; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -1749,7 +1749,7 @@ EndLoc, NumClauses, 1), HasCancel(false) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param NumClauses Number of clauses. /// @@ -1759,11 +1759,11 @@ 1), HasCancel(false) {} - /// \brief Set cancel state. + /// Set cancel state. void setHasCancel(bool Has) { HasCancel = Has; } public: - /// \brief Creates directive with a list of \a Clauses. + /// Creates directive with a list of \a Clauses. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -1777,7 +1777,7 @@ ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt, bool HasCancel); - /// \brief Creates an empty directive with the place for \a NumClauses + /// Creates an empty directive with the place for \a NumClauses /// clauses. /// /// \param C AST context. @@ -1786,7 +1786,7 @@ static OMPTaskDirective *CreateEmpty(const ASTContext &C, unsigned NumClauses, EmptyShell); - /// \brief Return true if current directive has inner cancel directive. + /// Return true if current directive has inner cancel directive. bool hasCancel() const { return HasCancel; } static bool classof(const Stmt *T) { @@ -1794,7 +1794,7 @@ } }; -/// \brief This represents '#pragma omp taskyield' directive. +/// This represents '#pragma omp taskyield' directive. /// /// \code /// #pragma omp taskyield @@ -1802,7 +1802,7 @@ /// class OMPTaskyieldDirective : public OMPExecutableDirective { friend class ASTStmtReader; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -1811,14 +1811,14 @@ : OMPExecutableDirective(this, OMPTaskyieldDirectiveClass, OMPD_taskyield, StartLoc, EndLoc, 0, 0) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// explicit OMPTaskyieldDirective() : OMPExecutableDirective(this, OMPTaskyieldDirectiveClass, OMPD_taskyield, SourceLocation(), SourceLocation(), 0, 0) {} public: - /// \brief Creates directive. + /// Creates directive. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -1827,7 +1827,7 @@ static OMPTaskyieldDirective * Create(const ASTContext &C, SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Creates an empty directive. + /// Creates an empty directive. /// /// \param C AST context. /// @@ -1838,7 +1838,7 @@ } }; -/// \brief This represents '#pragma omp barrier' directive. +/// This represents '#pragma omp barrier' directive. /// /// \code /// #pragma omp barrier @@ -1846,7 +1846,7 @@ /// class OMPBarrierDirective : public OMPExecutableDirective { friend class ASTStmtReader; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -1855,14 +1855,14 @@ : OMPExecutableDirective(this, OMPBarrierDirectiveClass, OMPD_barrier, StartLoc, EndLoc, 0, 0) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// explicit OMPBarrierDirective() : OMPExecutableDirective(this, OMPBarrierDirectiveClass, OMPD_barrier, SourceLocation(), SourceLocation(), 0, 0) {} public: - /// \brief Creates directive. + /// Creates directive. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -1871,7 +1871,7 @@ static OMPBarrierDirective * Create(const ASTContext &C, SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Creates an empty directive. + /// Creates an empty directive. /// /// \param C AST context. /// @@ -1882,7 +1882,7 @@ } }; -/// \brief This represents '#pragma omp taskwait' directive. +/// This represents '#pragma omp taskwait' directive. /// /// \code /// #pragma omp taskwait @@ -1890,7 +1890,7 @@ /// class OMPTaskwaitDirective : public OMPExecutableDirective { friend class ASTStmtReader; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -1899,14 +1899,14 @@ : OMPExecutableDirective(this, OMPTaskwaitDirectiveClass, OMPD_taskwait, StartLoc, EndLoc, 0, 0) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// explicit OMPTaskwaitDirective() : OMPExecutableDirective(this, OMPTaskwaitDirectiveClass, OMPD_taskwait, SourceLocation(), SourceLocation(), 0, 0) {} public: - /// \brief Creates directive. + /// Creates directive. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -1915,7 +1915,7 @@ static OMPTaskwaitDirective * Create(const ASTContext &C, SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Creates an empty directive. + /// Creates an empty directive. /// /// \param C AST context. /// @@ -1995,7 +1995,7 @@ } }; -/// \brief This represents '#pragma omp flush' directive. +/// This represents '#pragma omp flush' directive. /// /// \code /// #pragma omp flush(a,b) @@ -2007,7 +2007,7 @@ /// FlushClause. class OMPFlushDirective : public OMPExecutableDirective { friend class ASTStmtReader; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -2018,7 +2018,7 @@ : OMPExecutableDirective(this, OMPFlushDirectiveClass, OMPD_flush, StartLoc, EndLoc, NumClauses, 0) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param NumClauses Number of clauses. /// @@ -2028,7 +2028,7 @@ 0) {} public: - /// \brief Creates directive with a list of \a Clauses. + /// Creates directive with a list of \a Clauses. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -2040,7 +2040,7 @@ SourceLocation EndLoc, ArrayRef<OMPClause *> Clauses); - /// \brief Creates an empty directive with the place for \a NumClauses + /// Creates an empty directive with the place for \a NumClauses /// clauses. /// /// \param C AST context. @@ -2054,7 +2054,7 @@ } }; -/// \brief This represents '#pragma omp ordered' directive. +/// This represents '#pragma omp ordered' directive. /// /// \code /// #pragma omp ordered @@ -2062,7 +2062,7 @@ /// class OMPOrderedDirective : public OMPExecutableDirective { friend class ASTStmtReader; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -2073,7 +2073,7 @@ : OMPExecutableDirective(this, OMPOrderedDirectiveClass, OMPD_ordered, StartLoc, EndLoc, NumClauses, 1) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param NumClauses Number of clauses. /// @@ -2083,7 +2083,7 @@ 1) {} public: - /// \brief Creates directive. + /// Creates directive. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -2095,7 +2095,7 @@ Create(const ASTContext &C, SourceLocation StartLoc, SourceLocation EndLoc, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt); - /// \brief Creates an empty directive. + /// Creates an empty directive. /// /// \param C AST context. /// \param NumClauses Number of clauses. @@ -2108,7 +2108,7 @@ } }; -/// \brief This represents '#pragma omp atomic' directive. +/// This represents '#pragma omp atomic' directive. /// /// \code /// #pragma omp atomic capture @@ -2117,7 +2117,7 @@ /// class OMPAtomicDirective : public OMPExecutableDirective { friend class ASTStmtReader; - /// \brief Used for 'atomic update' or 'atomic capture' constructs. They may + /// Used for 'atomic update' or 'atomic capture' constructs. They may /// have atomic expressions of forms /// \code /// x = x binop expr; @@ -2127,7 +2127,7 @@ /// second. Required for correct codegen of non-associative operations (like /// << or >>). bool IsXLHSInRHSPart; - /// \brief Used for 'atomic update' or 'atomic capture' constructs. They may + /// Used for 'atomic update' or 'atomic capture' constructs. They may /// have atomic expressions of forms /// \code /// v = x; <update x>; @@ -2137,7 +2137,7 @@ /// otherwise. bool IsPostfixUpdate; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -2149,7 +2149,7 @@ StartLoc, EndLoc, NumClauses, 5), IsXLHSInRHSPart(false), IsPostfixUpdate(false) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param NumClauses Number of clauses. /// @@ -2159,19 +2159,19 @@ 5), IsXLHSInRHSPart(false), IsPostfixUpdate(false) {} - /// \brief Set 'x' part of the associated expression/statement. + /// Set 'x' part of the associated expression/statement. void setX(Expr *X) { *std::next(child_begin()) = X; } - /// \brief Set helper expression of the form + /// Set helper expression of the form /// 'OpaqueValueExpr(x) binop OpaqueValueExpr(expr)' or /// 'OpaqueValueExpr(expr) binop OpaqueValueExpr(x)'. void setUpdateExpr(Expr *UE) { *std::next(child_begin(), 2) = UE; } - /// \brief Set 'v' part of the associated expression/statement. + /// Set 'v' part of the associated expression/statement. void setV(Expr *V) { *std::next(child_begin(), 3) = V; } - /// \brief Set 'expr' part of the associated expression/statement. + /// Set 'expr' part of the associated expression/statement. void setExpr(Expr *E) { *std::next(child_begin(), 4) = E; } public: - /// \brief Creates directive with a list of \a Clauses and 'x', 'v' and 'expr' + /// Creates directive with a list of \a Clauses and 'x', 'v' and 'expr' /// parts of the atomic construct (see Section 2.12.6, atomic Construct, for /// detailed description of 'x', 'v' and 'expr'). /// @@ -2195,7 +2195,7 @@ ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt, Expr *X, Expr *V, Expr *E, Expr *UE, bool IsXLHSInRHSPart, bool IsPostfixUpdate); - /// \brief Creates an empty directive with the place for \a NumClauses + /// Creates an empty directive with the place for \a NumClauses /// clauses. /// /// \param C AST context. @@ -2204,12 +2204,12 @@ static OMPAtomicDirective *CreateEmpty(const ASTContext &C, unsigned NumClauses, EmptyShell); - /// \brief Get 'x' part of the associated expression/statement. + /// Get 'x' part of the associated expression/statement. Expr *getX() { return cast_or_null<Expr>(*std::next(child_begin())); } const Expr *getX() const { return cast_or_null<Expr>(*std::next(child_begin())); } - /// \brief Get helper expression of the form + /// Get helper expression of the form /// 'OpaqueValueExpr(x) binop OpaqueValueExpr(expr)' or /// 'OpaqueValueExpr(expr) binop OpaqueValueExpr(x)'. Expr *getUpdateExpr() { @@ -2218,19 +2218,19 @@ const Expr *getUpdateExpr() const { return cast_or_null<Expr>(*std::next(child_begin(), 2)); } - /// \brief Return true if helper update expression has form + /// Return true if helper update expression has form /// 'OpaqueValueExpr(x) binop OpaqueValueExpr(expr)' and false if it has form /// 'OpaqueValueExpr(expr) binop OpaqueValueExpr(x)'. bool isXLHSInRHSPart() const { return IsXLHSInRHSPart; } - /// \brief Return true if 'v' expression must be updated to original value of + /// Return true if 'v' expression must be updated to original value of /// 'x', false if 'v' must be updated to the new value of 'x'. bool isPostfixUpdate() const { return IsPostfixUpdate; } - /// \brief Get 'v' part of the associated expression/statement. + /// Get 'v' part of the associated expression/statement. Expr *getV() { return cast_or_null<Expr>(*std::next(child_begin(), 3)); } const Expr *getV() const { return cast_or_null<Expr>(*std::next(child_begin(), 3)); } - /// \brief Get 'expr' part of the associated expression/statement. + /// Get 'expr' part of the associated expression/statement. Expr *getExpr() { return cast_or_null<Expr>(*std::next(child_begin(), 4)); } const Expr *getExpr() const { return cast_or_null<Expr>(*std::next(child_begin(), 4)); @@ -2241,7 +2241,7 @@ } }; -/// \brief This represents '#pragma omp target' directive. +/// This represents '#pragma omp target' directive. /// /// \code /// #pragma omp target if(a) @@ -2251,7 +2251,7 @@ /// class OMPTargetDirective : public OMPExecutableDirective { friend class ASTStmtReader; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -2262,7 +2262,7 @@ : OMPExecutableDirective(this, OMPTargetDirectiveClass, OMPD_target, StartLoc, EndLoc, NumClauses, 1) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param NumClauses Number of clauses. /// @@ -2272,7 +2272,7 @@ 1) {} public: - /// \brief Creates directive with a list of \a Clauses. + /// Creates directive with a list of \a Clauses. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -2284,7 +2284,7 @@ Create(const ASTContext &C, SourceLocation StartLoc, SourceLocation EndLoc, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt); - /// \brief Creates an empty directive with the place for \a NumClauses + /// Creates an empty directive with the place for \a NumClauses /// clauses. /// /// \param C AST context. @@ -2298,7 +2298,7 @@ } }; -/// \brief This represents '#pragma omp target data' directive. +/// This represents '#pragma omp target data' directive. /// /// \code /// #pragma omp target data device(0) if(a) map(b[:]) @@ -2309,7 +2309,7 @@ /// class OMPTargetDataDirective : public OMPExecutableDirective { friend class ASTStmtReader; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending Location of the directive. @@ -2321,7 +2321,7 @@ OMPD_target_data, StartLoc, EndLoc, NumClauses, 1) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param NumClauses Number of clauses. /// @@ -2331,7 +2331,7 @@ SourceLocation(), NumClauses, 1) {} public: - /// \brief Creates directive with a list of \a Clauses. + /// Creates directive with a list of \a Clauses. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -2343,7 +2343,7 @@ Create(const ASTContext &C, SourceLocation StartLoc, SourceLocation EndLoc, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt); - /// \brief Creates an empty directive with the place for \a N clauses. + /// Creates an empty directive with the place for \a N clauses. /// /// \param C AST context. /// \param N The number of clauses. @@ -2356,7 +2356,7 @@ } }; -/// \brief This represents '#pragma omp target enter data' directive. +/// This represents '#pragma omp target enter data' directive. /// /// \code /// #pragma omp target enter data device(0) if(a) map(b[:]) @@ -2367,7 +2367,7 @@ /// class OMPTargetEnterDataDirective : public OMPExecutableDirective { friend class ASTStmtReader; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending Location of the directive. @@ -2379,7 +2379,7 @@ OMPD_target_enter_data, StartLoc, EndLoc, NumClauses, /*NumChildren=*/1) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param NumClauses Number of clauses. /// @@ -2390,7 +2390,7 @@ /*NumChildren=*/1) {} public: - /// \brief Creates directive with a list of \a Clauses. + /// Creates directive with a list of \a Clauses. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -2402,7 +2402,7 @@ Create(const ASTContext &C, SourceLocation StartLoc, SourceLocation EndLoc, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt); - /// \brief Creates an empty directive with the place for \a N clauses. + /// Creates an empty directive with the place for \a N clauses. /// /// \param C AST context. /// \param N The number of clauses. @@ -2415,7 +2415,7 @@ } }; -/// \brief This represents '#pragma omp target exit data' directive. +/// This represents '#pragma omp target exit data' directive. /// /// \code /// #pragma omp target exit data device(0) if(a) map(b[:]) @@ -2426,7 +2426,7 @@ /// class OMPTargetExitDataDirective : public OMPExecutableDirective { friend class ASTStmtReader; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending Location of the directive. @@ -2438,7 +2438,7 @@ OMPD_target_exit_data, StartLoc, EndLoc, NumClauses, /*NumChildren=*/1) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param NumClauses Number of clauses. /// @@ -2449,7 +2449,7 @@ /*NumChildren=*/1) {} public: - /// \brief Creates directive with a list of \a Clauses. + /// Creates directive with a list of \a Clauses. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -2461,7 +2461,7 @@ Create(const ASTContext &C, SourceLocation StartLoc, SourceLocation EndLoc, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt); - /// \brief Creates an empty directive with the place for \a N clauses. + /// Creates an empty directive with the place for \a N clauses. /// /// \param C AST context. /// \param N The number of clauses. @@ -2474,7 +2474,7 @@ } }; -/// \brief This represents '#pragma omp target parallel' directive. +/// This represents '#pragma omp target parallel' directive. /// /// \code /// #pragma omp target parallel if(a) @@ -2484,7 +2484,7 @@ /// class OMPTargetParallelDirective : public OMPExecutableDirective { friend class ASTStmtReader; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -2496,7 +2496,7 @@ OMPD_target_parallel, StartLoc, EndLoc, NumClauses, /*NumChildren=*/1) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param NumClauses Number of clauses. /// @@ -2507,7 +2507,7 @@ /*NumChildren=*/1) {} public: - /// \brief Creates directive with a list of \a Clauses. + /// Creates directive with a list of \a Clauses. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -2519,7 +2519,7 @@ Create(const ASTContext &C, SourceLocation StartLoc, SourceLocation EndLoc, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt); - /// \brief Creates an empty directive with the place for \a NumClauses + /// Creates an empty directive with the place for \a NumClauses /// clauses. /// /// \param C AST context. @@ -2533,7 +2533,7 @@ } }; -/// \brief This represents '#pragma omp target parallel for' directive. +/// This represents '#pragma omp target parallel for' directive. /// /// \code /// #pragma omp target parallel for private(a,b) reduction(+:c,d) @@ -2545,10 +2545,10 @@ class OMPTargetParallelForDirective : public OMPLoopDirective { friend class ASTStmtReader; - /// \brief true if current region has inner cancel directive. + /// true if current region has inner cancel directive. bool HasCancel; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -2562,7 +2562,7 @@ CollapsedNum, NumClauses), HasCancel(false) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param CollapsedNum Number of collapsed nested loops. /// \param NumClauses Number of clauses. @@ -2574,11 +2574,11 @@ SourceLocation(), CollapsedNum, NumClauses), HasCancel(false) {} - /// \brief Set cancel state. + /// Set cancel state. void setHasCancel(bool Has) { HasCancel = Has; } public: - /// \brief Creates directive with a list of \a Clauses. + /// Creates directive with a list of \a Clauses. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -2594,7 +2594,7 @@ unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt, const HelperExprs &Exprs, bool HasCancel); - /// \brief Creates an empty directive with the place + /// Creates an empty directive with the place /// for \a NumClauses clauses. /// /// \param C AST context. @@ -2606,7 +2606,7 @@ unsigned CollapsedNum, EmptyShell); - /// \brief Return true if current directive has inner cancel directive. + /// Return true if current directive has inner cancel directive. bool hasCancel() const { return HasCancel; } static bool classof(const Stmt *T) { @@ -2614,7 +2614,7 @@ } }; -/// \brief This represents '#pragma omp teams' directive. +/// This represents '#pragma omp teams' directive. /// /// \code /// #pragma omp teams if(a) @@ -2624,7 +2624,7 @@ /// class OMPTeamsDirective : public OMPExecutableDirective { friend class ASTStmtReader; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -2635,7 +2635,7 @@ : OMPExecutableDirective(this, OMPTeamsDirectiveClass, OMPD_teams, StartLoc, EndLoc, NumClauses, 1) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param NumClauses Number of clauses. /// @@ -2645,7 +2645,7 @@ 1) {} public: - /// \brief Creates directive with a list of \a Clauses. + /// Creates directive with a list of \a Clauses. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -2658,7 +2658,7 @@ ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt); - /// \brief Creates an empty directive with the place for \a NumClauses + /// Creates an empty directive with the place for \a NumClauses /// clauses. /// /// \param C AST context. @@ -2672,7 +2672,7 @@ } }; -/// \brief This represents '#pragma omp cancellation point' directive. +/// This represents '#pragma omp cancellation point' directive. /// /// \code /// #pragma omp cancellation point for @@ -2682,7 +2682,7 @@ class OMPCancellationPointDirective : public OMPExecutableDirective { friend class ASTStmtReader; OpenMPDirectiveKind CancelRegion; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -2692,7 +2692,7 @@ OMPD_cancellation_point, StartLoc, EndLoc, 0, 0), CancelRegion(OMPD_unknown) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// explicit OMPCancellationPointDirective() : OMPExecutableDirective(this, OMPCancellationPointDirectiveClass, @@ -2700,12 +2700,12 @@ SourceLocation(), 0, 0), CancelRegion(OMPD_unknown) {} - /// \brief Set cancel region for current cancellation point. + /// Set cancel region for current cancellation point. /// \param CR Cancellation region. void setCancelRegion(OpenMPDirectiveKind CR) { CancelRegion = CR; } public: - /// \brief Creates directive. + /// Creates directive. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -2715,14 +2715,14 @@ Create(const ASTContext &C, SourceLocation StartLoc, SourceLocation EndLoc, OpenMPDirectiveKind CancelRegion); - /// \brief Creates an empty directive. + /// Creates an empty directive. /// /// \param C AST context. /// static OMPCancellationPointDirective *CreateEmpty(const ASTContext &C, EmptyShell); - /// \brief Get cancellation region for the current cancellation point. + /// Get cancellation region for the current cancellation point. OpenMPDirectiveKind getCancelRegion() const { return CancelRegion; } static bool classof(const Stmt *T) { @@ -2730,7 +2730,7 @@ } }; -/// \brief This represents '#pragma omp cancel' directive. +/// This represents '#pragma omp cancel' directive. /// /// \code /// #pragma omp cancel for @@ -2740,7 +2740,7 @@ class OMPCancelDirective : public OMPExecutableDirective { friend class ASTStmtReader; OpenMPDirectiveKind CancelRegion; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -2752,7 +2752,7 @@ StartLoc, EndLoc, NumClauses, 0), CancelRegion(OMPD_unknown) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param NumClauses Number of clauses. explicit OMPCancelDirective(unsigned NumClauses) @@ -2761,12 +2761,12 @@ 0), CancelRegion(OMPD_unknown) {} - /// \brief Set cancel region for current cancellation point. + /// Set cancel region for current cancellation point. /// \param CR Cancellation region. void setCancelRegion(OpenMPDirectiveKind CR) { CancelRegion = CR; } public: - /// \brief Creates directive. + /// Creates directive. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -2777,7 +2777,7 @@ Create(const ASTContext &C, SourceLocation StartLoc, SourceLocation EndLoc, ArrayRef<OMPClause *> Clauses, OpenMPDirectiveKind CancelRegion); - /// \brief Creates an empty directive. + /// Creates an empty directive. /// /// \param C AST context. /// \param NumClauses Number of clauses. @@ -2785,7 +2785,7 @@ static OMPCancelDirective *CreateEmpty(const ASTContext &C, unsigned NumClauses, EmptyShell); - /// \brief Get cancellation region for the current cancellation point. + /// Get cancellation region for the current cancellation point. OpenMPDirectiveKind getCancelRegion() const { return CancelRegion; } static bool classof(const Stmt *T) { @@ -2793,7 +2793,7 @@ } }; -/// \brief This represents '#pragma omp taskloop' directive. +/// This represents '#pragma omp taskloop' directive. /// /// \code /// #pragma omp taskloop private(a,b) grainsize(val) num_tasks(num) @@ -2804,7 +2804,7 @@ /// class OMPTaskLoopDirective : public OMPLoopDirective { friend class ASTStmtReader; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -2816,7 +2816,7 @@ : OMPLoopDirective(this, OMPTaskLoopDirectiveClass, OMPD_taskloop, StartLoc, EndLoc, CollapsedNum, NumClauses) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param CollapsedNum Number of collapsed nested loops. /// \param NumClauses Number of clauses. @@ -2827,7 +2827,7 @@ NumClauses) {} public: - /// \brief Creates directive with a list of \a Clauses. + /// Creates directive with a list of \a Clauses. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -2842,7 +2842,7 @@ unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt, const HelperExprs &Exprs); - /// \brief Creates an empty directive with the place + /// Creates an empty directive with the place /// for \a NumClauses clauses. /// /// \param C AST context. @@ -2858,7 +2858,7 @@ } }; -/// \brief This represents '#pragma omp taskloop simd' directive. +/// This represents '#pragma omp taskloop simd' directive. /// /// \code /// #pragma omp taskloop simd private(a,b) grainsize(val) num_tasks(num) @@ -2869,7 +2869,7 @@ /// class OMPTaskLoopSimdDirective : public OMPLoopDirective { friend class ASTStmtReader; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -2882,7 +2882,7 @@ OMPD_taskloop_simd, StartLoc, EndLoc, CollapsedNum, NumClauses) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param CollapsedNum Number of collapsed nested loops. /// \param NumClauses Number of clauses. @@ -2893,7 +2893,7 @@ CollapsedNum, NumClauses) {} public: - /// \brief Creates directive with a list of \a Clauses. + /// Creates directive with a list of \a Clauses. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -2908,7 +2908,7 @@ unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt, const HelperExprs &Exprs); - /// \brief Creates an empty directive with the place + /// Creates an empty directive with the place /// for \a NumClauses clauses. /// /// \param C AST context. @@ -2925,7 +2925,7 @@ } }; -/// \brief This represents '#pragma omp distribute' directive. +/// This represents '#pragma omp distribute' directive. /// /// \code /// #pragma omp distribute private(a,b) @@ -2936,7 +2936,7 @@ class OMPDistributeDirective : public OMPLoopDirective { friend class ASTStmtReader; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -2949,7 +2949,7 @@ StartLoc, EndLoc, CollapsedNum, NumClauses) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param CollapsedNum Number of collapsed nested loops. /// \param NumClauses Number of clauses. @@ -2961,7 +2961,7 @@ {} public: - /// \brief Creates directive with a list of \a Clauses. + /// Creates directive with a list of \a Clauses. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -2976,7 +2976,7 @@ unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt, const HelperExprs &Exprs); - /// \brief Creates an empty directive with the place + /// Creates an empty directive with the place /// for \a NumClauses clauses. /// /// \param C AST context. @@ -2992,7 +2992,7 @@ } }; -/// \brief This represents '#pragma omp target update' directive. +/// This represents '#pragma omp target update' directive. /// /// \code /// #pragma omp target update to(a) from(b) device(1) @@ -3003,7 +3003,7 @@ /// class OMPTargetUpdateDirective : public OMPExecutableDirective { friend class ASTStmtReader; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending Location of the directive. @@ -3015,7 +3015,7 @@ OMPD_target_update, StartLoc, EndLoc, NumClauses, 1) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param NumClauses Number of clauses. /// @@ -3025,7 +3025,7 @@ SourceLocation(), NumClauses, 1) {} public: - /// \brief Creates directive with a list of \a Clauses. + /// Creates directive with a list of \a Clauses. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -3037,7 +3037,7 @@ Create(const ASTContext &C, SourceLocation StartLoc, SourceLocation EndLoc, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt); - /// \brief Creates an empty directive with the place for \a NumClauses + /// Creates an empty directive with the place for \a NumClauses /// clauses. /// /// \param C AST context. @@ -3051,7 +3051,7 @@ } }; -/// \brief This represents '#pragma omp distribute parallel for' composite +/// This represents '#pragma omp distribute parallel for' composite /// directive. /// /// \code @@ -3065,7 +3065,7 @@ /// true if the construct has inner cancel directive. bool HasCancel = false; - /// \brief Build directive with the given start and end location. + /// Build directive with the given start and end location. /// /// \param StartLoc Starting location of the directive kind. /// \param EndLoc Ending location of the directive. @@ -3079,7 +3079,7 @@ OMPD_distribute_parallel_for, StartLoc, EndLoc, CollapsedNum, NumClauses), HasCancel(false) {} - /// \brief Build an empty directive. + /// Build an empty directive. /// /// \param CollapsedNum Number of collapsed nested loops. /// \param NumClauses Number of clauses. @@ -3095,7 +3095,7 @@ void setHasCancel(bool Has) { HasCancel = Has; } public: - /// \brief Creates directive with a list of \a Clauses. + /// Creates directive with a list of \a Clauses. /// /// \param C AST context. /// \param StartLoc Starting location of the directive kind. @@ -3111,7 +3111,7 @@ unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt, const HelperExprs &Exprs, bool HasCancel); - /// \brief Creates an empty directive with the place + /// Creates an empty directive with the place /// for \a NumClauses clauses. /// /// \param C AST context. Index: cfe/trunk/include/clang/AST/StmtVisitor.h =================================================================== --- cfe/trunk/include/clang/AST/StmtVisitor.h +++ cfe/trunk/include/clang/AST/StmtVisitor.h @@ -195,7 +195,7 @@ class ConstStmtVisitor : public StmtVisitorBase<make_const_ptr, ImplClass, RetTy, ParamTys...> {}; -/// \brief This class implements a simple visitor for OMPClause +/// This class implements a simple visitor for OMPClause /// subclasses. template<class ImplClass, template <typename> class Ptr, typename RetTy> class OMPClauseVisitorBase { Index: cfe/trunk/include/clang/AST/TemplateBase.h =================================================================== --- cfe/trunk/include/clang/AST/TemplateBase.h +++ cfe/trunk/include/clang/AST/TemplateBase.h @@ -47,12 +47,12 @@ class TypeSourceInfo; class ValueDecl; -/// \brief Represents a template argument. +/// Represents a template argument. class TemplateArgument { public: - /// \brief The kind of template argument we're storing. + /// The kind of template argument we're storing. enum ArgKind { - /// \brief Represents an empty template argument, e.g., one that has not + /// Represents an empty template argument, e.g., one that has not /// been deduced. Null = 0, @@ -92,7 +92,7 @@ }; private: - /// \brief The kind of template argument we're storing. + /// The kind of template argument we're storing. struct DA { unsigned Kind; @@ -138,16 +138,16 @@ }; public: - /// \brief Construct an empty, invalid template argument. + /// Construct an empty, invalid template argument. constexpr TemplateArgument() : TypeOrValue({Null, 0}) {} - /// \brief Construct a template type argument. + /// Construct a template type argument. TemplateArgument(QualType T, bool isNullPtr = false) { TypeOrValue.Kind = isNullPtr ? NullPtr : Type; TypeOrValue.V = reinterpret_cast<uintptr_t>(T.getAsOpaquePtr()); } - /// \brief Construct a template argument that refers to a + /// Construct a template argument that refers to a /// declaration, which is either an external declaration or a /// template declaration. TemplateArgument(ValueDecl *D, QualType QT) { @@ -157,18 +157,18 @@ DeclArg.D = D; } - /// \brief Construct an integral constant template argument. The memory to + /// Construct an integral constant template argument. The memory to /// store the value is allocated with Ctx. TemplateArgument(ASTContext &Ctx, const llvm::APSInt &Value, QualType Type); - /// \brief Construct an integral constant template argument with the same + /// Construct an integral constant template argument with the same /// value as Other but a different type. TemplateArgument(const TemplateArgument &Other, QualType Type) { Integer = Other.Integer; Integer.Type = Type.getAsOpaquePtr(); } - /// \brief Construct a template argument that is a template. + /// Construct a template argument that is a template. /// /// This form of template argument is generally used for template template /// parameters. However, the template name could be a dependent template @@ -182,7 +182,7 @@ TemplateArg.NumExpansions = 0; } - /// \brief Construct a template argument that is a template pack expansion. + /// Construct a template argument that is a template pack expansion. /// /// This form of template argument is generally used for template template /// parameters. However, the template name could be a dependent template @@ -202,7 +202,7 @@ TemplateArg.NumExpansions = 0; } - /// \brief Construct a template argument that is an expression. + /// Construct a template argument that is an expression. /// /// This form of template argument only occurs in template argument /// lists used for dependent types and for expression; it will not @@ -212,7 +212,7 @@ TypeOrValue.V = reinterpret_cast<uintptr_t>(E); } - /// \brief Construct a template argument that is a template argument pack. + /// Construct a template argument that is a template argument pack. /// /// We assume that storage for the template arguments provided /// outlives the TemplateArgument itself. @@ -226,40 +226,40 @@ static TemplateArgument getEmptyPack() { return TemplateArgument(None); } - /// \brief Create a new template argument pack by copying the given set of + /// Create a new template argument pack by copying the given set of /// template arguments. static TemplateArgument CreatePackCopy(ASTContext &Context, ArrayRef<TemplateArgument> Args); - /// \brief Return the kind of stored template argument. + /// Return the kind of stored template argument. ArgKind getKind() const { return (ArgKind)TypeOrValue.Kind; } - /// \brief Determine whether this template argument has no value. + /// Determine whether this template argument has no value. bool isNull() const { return getKind() == Null; } - /// \brief Whether this template argument is dependent on a template + /// Whether this template argument is dependent on a template /// parameter such that its result can change from one instantiation to /// another. bool isDependent() const; - /// \brief Whether this template argument is dependent on a template + /// Whether this template argument is dependent on a template /// parameter. bool isInstantiationDependent() const; - /// \brief Whether this template argument contains an unexpanded + /// Whether this template argument contains an unexpanded /// parameter pack. bool containsUnexpandedParameterPack() const; - /// \brief Determine whether this template argument is a pack expansion. + /// Determine whether this template argument is a pack expansion. bool isPackExpansion() const; - /// \brief Retrieve the type for a type template argument. + /// Retrieve the type for a type template argument. QualType getAsType() const { assert(getKind() == Type && "Unexpected kind"); return QualType::getFromOpaquePtr(reinterpret_cast<void*>(TypeOrValue.V)); } - /// \brief Retrieve the declaration for a declaration non-type + /// Retrieve the declaration for a declaration non-type /// template argument. ValueDecl *getAsDecl() const { assert(getKind() == Declaration && "Unexpected kind"); @@ -271,19 +271,19 @@ return QualType::getFromOpaquePtr(DeclArg.QT); } - /// \brief Retrieve the type for null non-type template argument. + /// Retrieve the type for null non-type template argument. QualType getNullPtrType() const { assert(getKind() == NullPtr && "Unexpected kind"); return QualType::getFromOpaquePtr(reinterpret_cast<void*>(TypeOrValue.V)); } - /// \brief Retrieve the template name for a template name argument. + /// Retrieve the template name for a template name argument. TemplateName getAsTemplate() const { assert(getKind() == Template && "Unexpected kind"); return TemplateName::getFromVoidPointer(TemplateArg.Name); } - /// \brief Retrieve the template argument as a template name; if the argument + /// Retrieve the template argument as a template name; if the argument /// is a pack expansion, return the pattern as a template name. TemplateName getAsTemplateOrTemplatePattern() const { assert((getKind() == Template || getKind() == TemplateExpansion) && @@ -292,11 +292,11 @@ return TemplateName::getFromVoidPointer(TemplateArg.Name); } - /// \brief Retrieve the number of expansions that a template template argument + /// Retrieve the number of expansions that a template template argument /// expansion will produce, if known. Optional<unsigned> getNumTemplateExpansions() const; - /// \brief Retrieve the template argument as an integral value. + /// Retrieve the template argument as an integral value. // FIXME: Provide a way to read the integral data without copying the value. llvm::APSInt getAsIntegral() const { assert(getKind() == Integral && "Unexpected kind"); @@ -311,7 +311,7 @@ Integer.IsUnsigned); } - /// \brief Retrieve the type of the integral value. + /// Retrieve the type of the integral value. QualType getIntegralType() const { assert(getKind() == Integral && "Unexpected kind"); return QualType::getFromOpaquePtr(Integer.Type); @@ -322,70 +322,70 @@ Integer.Type = T.getAsOpaquePtr(); } - /// \brief If this is a non-type template argument, get its type. Otherwise, + /// If this is a non-type template argument, get its type. Otherwise, /// returns a null QualType. QualType getNonTypeTemplateArgumentType() const; - /// \brief Retrieve the template argument as an expression. + /// Retrieve the template argument as an expression. Expr *getAsExpr() const { assert(getKind() == Expression && "Unexpected kind"); return reinterpret_cast<Expr *>(TypeOrValue.V); } - /// \brief Iterator that traverses the elements of a template argument pack. + /// Iterator that traverses the elements of a template argument pack. using pack_iterator = const TemplateArgument *; - /// \brief Iterator referencing the first argument of a template argument + /// Iterator referencing the first argument of a template argument /// pack. pack_iterator pack_begin() const { assert(getKind() == Pack); return Args.Args; } - /// \brief Iterator referencing one past the last argument of a template + /// Iterator referencing one past the last argument of a template /// argument pack. pack_iterator pack_end() const { assert(getKind() == Pack); return Args.Args + Args.NumArgs; } - /// \brief Iterator range referencing all of the elements of a template + /// Iterator range referencing all of the elements of a template /// argument pack. ArrayRef<TemplateArgument> pack_elements() const { return llvm::makeArrayRef(pack_begin(), pack_end()); } - /// \brief The number of template arguments in the given template argument + /// The number of template arguments in the given template argument /// pack. unsigned pack_size() const { assert(getKind() == Pack); return Args.NumArgs; } - /// \brief Return the array of arguments in this template argument pack. + /// Return the array of arguments in this template argument pack. ArrayRef<TemplateArgument> getPackAsArray() const { assert(getKind() == Pack); return llvm::makeArrayRef(Args.Args, Args.NumArgs); } - /// \brief Determines whether two template arguments are superficially the + /// Determines whether two template arguments are superficially the /// same. bool structurallyEquals(const TemplateArgument &Other) const; - /// \brief When the template argument is a pack expansion, returns + /// When the template argument is a pack expansion, returns /// the pattern of the pack expansion. TemplateArgument getPackExpansionPattern() const; - /// \brief Print this template argument to the given output stream. + /// Print this template argument to the given output stream. void print(const PrintingPolicy &Policy, raw_ostream &Out) const; - /// \brief Debugging aid that dumps the template argument. + /// Debugging aid that dumps the template argument. void dump(raw_ostream &Out) const; - /// \brief Debugging aid that dumps the template argument to standard error. + /// Debugging aid that dumps the template argument to standard error. void dump() const; - /// \brief Used to insert TemplateArguments into FoldingSets. + /// Used to insert TemplateArguments into FoldingSets. void Profile(llvm::FoldingSetNodeID &ID, const ASTContext &Context) const; }; @@ -478,7 +478,7 @@ Argument.getKind() == TemplateArgument::TemplateExpansion); } - /// \brief - Fetches the primary location of the argument. + /// - Fetches the primary location of the argument. SourceLocation getLocation() const { if (Argument.getKind() == TemplateArgument::Template || Argument.getKind() == TemplateArgument::TemplateExpansion) @@ -487,7 +487,7 @@ return getSourceRange().getBegin(); } - /// \brief - Fetches the full source range of the argument. + /// - Fetches the full source range of the argument. SourceRange getSourceRange() const LLVM_READONLY; const TemplateArgument &getArgument() const { @@ -588,7 +588,7 @@ } }; -/// \brief Represents an explicit template argument list in C++, e.g., +/// Represents an explicit template argument list in C++, e.g., /// the "<int>" in "sort<int>". /// This is safe to be used inside an AST node, in contrast with /// TemplateArgumentListInfo. @@ -602,16 +602,16 @@ ASTTemplateArgumentListInfo(const TemplateArgumentListInfo &List); public: - /// \brief The source location of the left angle bracket ('<'). + /// The source location of the left angle bracket ('<'). SourceLocation LAngleLoc; - /// \brief The source location of the right angle bracket ('>'). + /// The source location of the right angle bracket ('>'). SourceLocation RAngleLoc; - /// \brief The number of template arguments in TemplateArgs. + /// The number of template arguments in TemplateArgs. unsigned NumTemplateArgs; - /// \brief Retrieve the template arguments + /// Retrieve the template arguments const TemplateArgumentLoc *getTemplateArgs() const { return getTrailingObjects<TemplateArgumentLoc>(); } @@ -628,7 +628,7 @@ Create(ASTContext &C, const TemplateArgumentListInfo &List); }; -/// \brief Represents an explicit template argument list in C++, e.g., +/// Represents an explicit template argument list in C++, e.g., /// the "<int>" in "sort<int>". /// /// It is intended to be used as a trailing object on AST nodes, and @@ -636,19 +636,19 @@ /// but expects the containing object to also provide storage for /// that. struct alignas(void *) ASTTemplateKWAndArgsInfo { - /// \brief The source location of the left angle bracket ('<'). + /// The source location of the left angle bracket ('<'). SourceLocation LAngleLoc; - /// \brief The source location of the right angle bracket ('>'). + /// The source location of the right angle bracket ('>'). SourceLocation RAngleLoc; - /// \brief The source location of the template keyword; this is used + /// The source location of the template keyword; this is used /// as part of the representation of qualified identifiers, such as /// S<T>::template apply<T>. Will be empty if this expression does /// not have a template keyword. SourceLocation TemplateKWLoc; - /// \brief The number of template arguments in TemplateArgs. + /// The number of template arguments in TemplateArgs. unsigned NumTemplateArgs; void initializeFrom(SourceLocation TemplateKWLoc, Index: cfe/trunk/include/clang/AST/TemplateName.h =================================================================== --- cfe/trunk/include/clang/AST/TemplateName.h +++ cfe/trunk/include/clang/AST/TemplateName.h @@ -39,7 +39,7 @@ class TemplateDecl; class TemplateTemplateParmDecl; -/// \brief Implementation class used to describe either a set of overloaded +/// Implementation class used to describe either a set of overloaded /// template names or an already-substituted template template parameter pack. class UncommonTemplateNameStorage { protected: @@ -50,10 +50,10 @@ }; struct BitsTag { - /// \brief A Kind. + /// A Kind. unsigned Kind : 2; - /// \brief The number of stored templates or template arguments, + /// The number of stored templates or template arguments, /// depending on which subclass we have. unsigned Size : 30; }; @@ -90,7 +90,7 @@ } }; -/// \brief A structure for storing the information associated with an +/// A structure for storing the information associated with an /// overloaded template name. class OverloadedTemplateStorage : public UncommonTemplateNameStorage { friend class ASTContext; @@ -112,7 +112,7 @@ iterator end() const { return getStorage() + size(); } }; -/// \brief A structure for storing an already-substituted template template +/// A structure for storing an already-substituted template template /// parameter pack. /// /// This kind of template names occurs when the parameter pack has been @@ -131,12 +131,12 @@ : UncommonTemplateNameStorage(SubstTemplateTemplateParmPack, Size), Parameter(Parameter), Arguments(Arguments) {} - /// \brief Retrieve the template template parameter pack being substituted. + /// Retrieve the template template parameter pack being substituted. TemplateTemplateParmDecl *getParameterPack() const { return Parameter; } - /// \brief Retrieve the template template argument pack with which this + /// Retrieve the template template argument pack with which this /// parameter was substituted. TemplateArgument getArgumentPack() const; @@ -148,7 +148,7 @@ const TemplateArgument &ArgPack); }; -/// \brief Represents a C++ template name within the type system. +/// Represents a C++ template name within the type system. /// /// A C++ template name refers to a template within the C++ type /// system. In most cases, a template name is simply a reference to a @@ -185,27 +185,27 @@ explicit TemplateName(void *Ptr); public: - // \brief Kind of name that is actually stored. + // Kind of name that is actually stored. enum NameKind { - /// \brief A single template declaration. + /// A single template declaration. Template, - /// \brief A set of overloaded template declarations. + /// A set of overloaded template declarations. OverloadedTemplate, - /// \brief A qualified template name, where the qualification is kept + /// A qualified template name, where the qualification is kept /// to describe the source code as written. QualifiedTemplate, - /// \brief A dependent template name that has not been resolved to a + /// A dependent template name that has not been resolved to a /// template (or set of templates). DependentTemplate, - /// \brief A template template parameter that has been substituted + /// A template template parameter that has been substituted /// for some other template name. SubstTemplateTemplateParm, - /// \brief A template template parameter pack that has been substituted for + /// A template template parameter pack that has been substituted for /// a template template argument pack, but has not yet been expanded into /// individual arguments. SubstTemplateTemplateParmPack @@ -219,13 +219,13 @@ explicit TemplateName(QualifiedTemplateName *Qual); explicit TemplateName(DependentTemplateName *Dep); - /// \brief Determine whether this template name is NULL. + /// Determine whether this template name is NULL. bool isNull() const; - // \brief Get the kind of name that is actually stored. + // Get the kind of name that is actually stored. NameKind getKind() const; - /// \brief Retrieve the underlying template declaration that + /// Retrieve the underlying template declaration that /// this template name refers to, if known. /// /// \returns The template declaration that this template name refers @@ -234,7 +234,7 @@ /// set of function templates, returns NULL. TemplateDecl *getAsTemplateDecl() const; - /// \brief Retrieve the underlying, overloaded function template + /// Retrieve the underlying, overloaded function template // declarations that this template name refers to, if known. /// /// \returns The set of overloaded function templates that this template @@ -243,14 +243,14 @@ /// refers to a single template, returns NULL. OverloadedTemplateStorage *getAsOverloadedTemplate() const; - /// \brief Retrieve the substituted template template parameter, if + /// Retrieve the substituted template template parameter, if /// known. /// /// \returns The storage for the substituted template template parameter, /// if known. Otherwise, returns NULL. SubstTemplateTemplateParmStorage *getAsSubstTemplateTemplateParm() const; - /// \brief Retrieve the substituted template template parameter pack, if + /// Retrieve the substituted template template parameter pack, if /// known. /// /// \returns The storage for the substituted template template parameter pack, @@ -258,11 +258,11 @@ SubstTemplateTemplateParmPackStorage * getAsSubstTemplateTemplateParmPack() const; - /// \brief Retrieve the underlying qualified template name + /// Retrieve the underlying qualified template name /// structure, if any. QualifiedTemplateName *getAsQualifiedTemplateName() const; - /// \brief Retrieve the underlying dependent template name + /// Retrieve the underlying dependent template name /// structure, if any. DependentTemplateName *getAsDependentTemplateName() const; @@ -273,18 +273,18 @@ /// the template, including any default template arguments. TemplateName getNameToSubstitute() const; - /// \brief Determines whether this is a dependent template name. + /// Determines whether this is a dependent template name. bool isDependent() const; - /// \brief Determines whether this is a template name that somehow + /// Determines whether this is a template name that somehow /// depends on a template parameter. bool isInstantiationDependent() const; - /// \brief Determines whether this template name contains an + /// Determines whether this template name contains an /// unexpanded parameter pack (for C++0x variadic templates). bool containsUnexpandedParameterPack() const; - /// \brief Print the template name. + /// Print the template name. /// /// \param OS the output stream to which the template name will be /// printed. @@ -295,10 +295,10 @@ void print(raw_ostream &OS, const PrintingPolicy &Policy, bool SuppressNNS = false) const; - /// \brief Debugging aid that dumps the template name. + /// Debugging aid that dumps the template name. void dump(raw_ostream &OS) const; - /// \brief Debugging aid that dumps the template name to standard + /// Debugging aid that dumps the template name to standard /// error. void dump() const; @@ -306,10 +306,10 @@ ID.AddPointer(Storage.getOpaqueValue()); } - /// \brief Retrieve the template name as a void pointer. + /// Retrieve the template name as a void pointer. void *getAsVoidPointer() const { return Storage.getOpaqueValue(); } - /// \brief Build a template name from a void pointer. + /// Build a template name from a void pointer. static TemplateName getFromVoidPointer(void *Ptr) { return TemplateName(Ptr); } @@ -320,7 +320,7 @@ const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB, TemplateName N); -/// \brief A structure for storing the information associated with a +/// A structure for storing the information associated with a /// substituted template template parameter. class SubstTemplateTemplateParmStorage : public UncommonTemplateNameStorage, public llvm::FoldingSetNode { @@ -352,7 +352,7 @@ return *this; } -/// \brief Represents a template name that was expressed as a +/// Represents a template name that was expressed as a /// qualified name. /// /// This kind of template name refers to a template name that was @@ -366,7 +366,7 @@ class QualifiedTemplateName : public llvm::FoldingSetNode { friend class ASTContext; - /// \brief The nested name specifier that qualifies the template name. + /// The nested name specifier that qualifies the template name. /// /// The bit is used to indicate whether the "template" keyword was /// present before the template name itself. Note that the @@ -375,7 +375,7 @@ /// this name with DependentTemplateName). llvm::PointerIntPair<NestedNameSpecifier *, 1> Qualifier; - /// \brief The template declaration or set of overloaded function templates + /// The template declaration or set of overloaded function templates /// that this qualified name refers to. TemplateDecl *Template; @@ -384,18 +384,18 @@ : Qualifier(NNS, TemplateKeyword? 1 : 0), Template(Template) {} public: - /// \brief Return the nested name specifier that qualifies this name. + /// Return the nested name specifier that qualifies this name. NestedNameSpecifier *getQualifier() const { return Qualifier.getPointer(); } - /// \brief Whether the template name was prefixed by the "template" + /// Whether the template name was prefixed by the "template" /// keyword. bool hasTemplateKeyword() const { return Qualifier.getInt(); } - /// \brief The template declaration that this qualified name refers + /// The template declaration that this qualified name refers /// to. TemplateDecl *getDecl() const { return Template; } - /// \brief The template declaration to which this qualified name + /// The template declaration to which this qualified name /// refers. TemplateDecl *getTemplateDecl() const { return Template; } @@ -411,7 +411,7 @@ } }; -/// \brief Represents a dependent template name that cannot be +/// Represents a dependent template name that cannot be /// resolved prior to template instantiation. /// /// This kind of template name refers to a dependent template name, @@ -422,7 +422,7 @@ class DependentTemplateName : public llvm::FoldingSetNode { friend class ASTContext; - /// \brief The nested name specifier that qualifies the template + /// The nested name specifier that qualifies the template /// name. /// /// The bit stored in this qualifier describes whether the \c Name field @@ -430,20 +430,20 @@ /// overloaded operator kind (when set). llvm::PointerIntPair<NestedNameSpecifier *, 1, bool> Qualifier; - /// \brief The dependent template name. + /// The dependent template name. union { - /// \brief The identifier template name. + /// The identifier template name. /// /// Only valid when the bit on \c Qualifier is clear. const IdentifierInfo *Identifier; - /// \brief The overloaded operator name. + /// The overloaded operator name. /// /// Only valid when the bit on \c Qualifier is set. OverloadedOperatorKind Operator; }; - /// \brief The canonical template name to which this dependent + /// The canonical template name to which this dependent /// template name refers. /// /// The canonical template name for a dependent template name is @@ -474,23 +474,23 @@ CanonicalTemplateName(Canon) {} public: - /// \brief Return the nested name specifier that qualifies this name. + /// Return the nested name specifier that qualifies this name. NestedNameSpecifier *getQualifier() const { return Qualifier.getPointer(); } - /// \brief Determine whether this template name refers to an identifier. + /// Determine whether this template name refers to an identifier. bool isIdentifier() const { return !Qualifier.getInt(); } - /// \brief Returns the identifier to which this template name refers. + /// Returns the identifier to which this template name refers. const IdentifierInfo *getIdentifier() const { assert(isIdentifier() && "Template name isn't an identifier?"); return Identifier; } - /// \brief Determine whether this template name refers to an overloaded + /// Determine whether this template name refers to an overloaded /// operator. bool isOverloadedOperator() const { return Qualifier.getInt(); } - /// \brief Return the overloaded operator to which this template name refers. + /// Return the overloaded operator to which this template name refers. OverloadedOperatorKind getOperator() const { assert(isOverloadedOperator() && "Template name isn't an overloaded operator?"); @@ -523,7 +523,7 @@ namespace llvm { -/// \brief The clang::TemplateName class is effectively a pointer. +/// The clang::TemplateName class is effectively a pointer. template<> struct PointerLikeTypeTraits<clang::TemplateName> { static inline void *getAsVoidPointer(clang::TemplateName TN) { Index: cfe/trunk/include/clang/AST/Type.h =================================================================== --- cfe/trunk/include/clang/AST/Type.h +++ cfe/trunk/include/clang/AST/Type.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief C Language Family Type Representation +/// C Language Family Type Representation /// /// This file defines the clang::Type interface and subclasses, used to /// represent types for languages in the C family. @@ -445,7 +445,7 @@ } } - /// \brief Remove the qualifiers from the given set from this set. + /// Remove the qualifiers from the given set from this set. void removeQualifiers(Qualifiers Q) { // If the other set doesn't have any non-boolean qualifiers, just // bit-and the inverse in. @@ -508,7 +508,7 @@ (!other.hasUnaligned() || hasUnaligned()); } - /// \brief Determines if these qualifiers compatibly include another set of + /// Determines if these qualifiers compatibly include another set of /// qualifiers from the narrow perspective of Objective-C ARC lifetime. /// /// One set of Objective-C lifetime qualifiers compatibly includes the other @@ -528,7 +528,7 @@ return hasConst(); } - /// \brief Determine whether this set of qualifiers is a strict superset of + /// Determine whether this set of qualifiers is a strict superset of /// another set of qualifiers, not considering qualifier compatibility. bool isStrictSupersetOf(Qualifiers Other) const; @@ -554,7 +554,7 @@ return *this; } - /// \brief Compute the difference between two qualifier sets. + /// Compute the difference between two qualifier sets. friend Qualifiers operator-(Qualifiers L, Qualifiers R) { L -= R; return L; @@ -719,69 +719,69 @@ return Value.getPointer().isNull(); } - /// \brief Determine whether this particular QualType instance has the + /// Determine whether this particular QualType instance has the /// "const" qualifier set, without looking through typedefs that may have /// added "const" at a different level. bool isLocalConstQualified() const { return (getLocalFastQualifiers() & Qualifiers::Const); } - /// \brief Determine whether this type is const-qualified. + /// Determine whether this type is const-qualified. bool isConstQualified() const; - /// \brief Determine whether this particular QualType instance has the + /// Determine whether this particular QualType instance has the /// "restrict" qualifier set, without looking through typedefs that may have /// added "restrict" at a different level. bool isLocalRestrictQualified() const { return (getLocalFastQualifiers() & Qualifiers::Restrict); } - /// \brief Determine whether this type is restrict-qualified. + /// Determine whether this type is restrict-qualified. bool isRestrictQualified() const; - /// \brief Determine whether this particular QualType instance has the + /// Determine whether this particular QualType instance has the /// "volatile" qualifier set, without looking through typedefs that may have /// added "volatile" at a different level. bool isLocalVolatileQualified() const { return (getLocalFastQualifiers() & Qualifiers::Volatile); } - /// \brief Determine whether this type is volatile-qualified. + /// Determine whether this type is volatile-qualified. bool isVolatileQualified() const; - /// \brief Determine whether this particular QualType instance has any + /// Determine whether this particular QualType instance has any /// qualifiers, without looking through any typedefs that might add /// qualifiers at a different level. bool hasLocalQualifiers() const { return getLocalFastQualifiers() || hasLocalNonFastQualifiers(); } - /// \brief Determine whether this type has any qualifiers. + /// Determine whether this type has any qualifiers. bool hasQualifiers() const; - /// \brief Determine whether this particular QualType instance has any + /// Determine whether this particular QualType instance has any /// "non-fast" qualifiers, e.g., those that are stored in an ExtQualType /// instance. bool hasLocalNonFastQualifiers() const { return Value.getPointer().is<const ExtQuals*>(); } - /// \brief Retrieve the set of qualifiers local to this particular QualType + /// Retrieve the set of qualifiers local to this particular QualType /// instance, not including any qualifiers acquired through typedefs or /// other sugar. Qualifiers getLocalQualifiers() const; - /// \brief Retrieve the set of qualifiers applied to this type. + /// Retrieve the set of qualifiers applied to this type. Qualifiers getQualifiers() const; - /// \brief Retrieve the set of CVR (const-volatile-restrict) qualifiers + /// Retrieve the set of CVR (const-volatile-restrict) qualifiers /// local to this particular QualType instance, not including any qualifiers /// acquired through typedefs or other sugar. unsigned getLocalCVRQualifiers() const { return getLocalFastQualifiers(); } - /// \brief Retrieve the set of CVR (const-volatile-restrict) qualifiers + /// Retrieve the set of CVR (const-volatile-restrict) qualifiers /// applied to this type. unsigned getCVRQualifiers() const; @@ -789,7 +789,7 @@ return QualType::isConstant(*this, Ctx); } - /// \brief Determine whether this is a Plain Old Data (POD) type (C++ 3.9p10). + /// Determine whether this is a Plain Old Data (POD) type (C++ 3.9p10). bool isPODType(const ASTContext &Context) const; /// Return true if this is a POD type according to the rules of the C++98 @@ -879,12 +879,12 @@ QualType getCanonicalType() const; - /// \brief Return this type with all of the instance-specific qualifiers + /// Return this type with all of the instance-specific qualifiers /// removed, but without removing any qualifiers that may have been applied /// through typedefs. QualType getLocalUnqualifiedType() const { return QualType(getTypePtr(), 0); } - /// \brief Retrieve the unqualified variant of the given type, + /// Retrieve the unqualified variant of the given type, /// removing as little sugar as possible. /// /// This routine looks through various kinds of sugar to find the @@ -915,17 +915,17 @@ /// ASTContext::getUnqualifiedArrayType. inline SplitQualType getSplitUnqualifiedType() const; - /// \brief Determine whether this type is more qualified than the other + /// Determine whether this type is more qualified than the other /// given type, requiring exact equality for non-CVR qualifiers. bool isMoreQualifiedThan(QualType Other) const; - /// \brief Determine whether this type is at least as qualified as the other + /// Determine whether this type is at least as qualified as the other /// given type, requiring exact equality for non-CVR qualifiers. bool isAtLeastAsQualifiedAs(QualType Other) const; QualType getNonReferenceType() const; - /// \brief Determine the type of a (typically non-lvalue) expression with the + /// Determine the type of a (typically non-lvalue) expression with the /// specified result type. /// /// This routine should be used for expressions for which the return type is @@ -951,7 +951,7 @@ return getSplitDesugaredType(*this); } - /// \brief Return the specified type with one level of "sugar" removed from + /// Return the specified type with one level of "sugar" removed from /// the type. /// /// This routine takes off the first typedef, typeof, etc. If the outer level @@ -1272,7 +1272,7 @@ namespace clang { -/// \brief Base class that is common to both the \c ExtQuals and \c Type +/// Base class that is common to both the \c ExtQuals and \c Type /// classes, which allows \c QualType to access the common fields between the /// two. class ExtQualsTypeCommonBase { @@ -1280,14 +1280,14 @@ friend class QualType; friend class Type; - /// \brief The "base" type of an extended qualifiers type (\c ExtQuals) or + /// The "base" type of an extended qualifiers type (\c ExtQuals) or /// a self-referential pointer (for \c Type). /// /// This pointer allows an efficient mapping from a QualType to its /// underlying type pointer. const Type *const BaseType; - /// \brief The canonical type of this type. A QualType. + /// The canonical type of this type. A QualType. QualType CanonicalType; ExtQualsTypeCommonBase(const Type *baseType, QualType canon) @@ -1368,25 +1368,25 @@ /// This determines whether a member function's "this" object can be an /// lvalue, rvalue, or neither. enum RefQualifierKind { - /// \brief No ref-qualifier was provided. + /// No ref-qualifier was provided. RQ_None = 0, - /// \brief An lvalue ref-qualifier was provided (\c &). + /// An lvalue ref-qualifier was provided (\c &). RQ_LValue, - /// \brief An rvalue ref-qualifier was provided (\c &&). + /// An rvalue ref-qualifier was provided (\c &&). RQ_RValue }; /// Which keyword(s) were used to create an AutoType. enum class AutoTypeKeyword { - /// \brief auto + /// auto Auto, - /// \brief decltype(auto) + /// decltype(auto) DecltypeAuto, - /// \brief __auto_type (GNU extension) + /// __auto_type (GNU extension) GNUAutoType }; @@ -1445,21 +1445,21 @@ /// Whether this type is a variably-modified type (C99 6.7.5). unsigned VariablyModified : 1; - /// \brief Whether this type contains an unexpanded parameter pack + /// Whether this type contains an unexpanded parameter pack /// (for C++11 variadic templates). unsigned ContainsUnexpandedParameterPack : 1; - /// \brief True if the cache (i.e. the bitfields here starting with + /// True if the cache (i.e. the bitfields here starting with /// 'Cache') is valid. mutable unsigned CacheValid : 1; - /// \brief Linkage of this type. + /// Linkage of this type. mutable unsigned CachedLinkage : 3; - /// \brief Whether this type involves and local or unnamed types. + /// Whether this type involves and local or unnamed types. mutable unsigned CachedLocalOrUnnamed : 1; - /// \brief Whether this type comes from an AST file. + /// Whether this type comes from an AST file. mutable unsigned FromAST : 1; bool isCacheValid() const { @@ -1524,7 +1524,7 @@ /// cv-qualifier-seq, [...], are part of the function type. unsigned TypeQuals : 4; - /// \brief The ref-qualifier associated with a \c FunctionProtoType. + /// The ref-qualifier associated with a \c FunctionProtoType. /// /// This is a value of type \c RefQualifierKind. unsigned RefQualifier : 2; @@ -1629,7 +1629,7 @@ private: template <class T> friend class TypePropertyCache; - /// \brief Set whether this type comes from an AST file. + /// Set whether this type comes from an AST file. void setFromAST(bool V = true) const { TypeBits.FromAST = V; } @@ -1680,10 +1680,10 @@ TypeClass getTypeClass() const { return static_cast<TypeClass>(TypeBits.TC); } - /// \brief Whether this type comes from an AST file. + /// Whether this type comes from an AST file. bool isFromAST() const { return TypeBits.FromAST; } - /// \brief Whether this type is or contains an unexpanded parameter + /// Whether this type is or contains an unexpanded parameter /// pack, used to support C++0x variadic templates. /// /// A type that contains a parameter pack shall be expanded by the @@ -1721,7 +1721,7 @@ /// determine its size (e.g. void, or a fwd declared struct). Clients of this /// routine will need to determine if the size is actually required. /// - /// \brief Def If non-null, and the type refers to some kind of declaration + /// Def If non-null, and the type refers to some kind of declaration /// that can be completed (such as a C struct, C++ class, or Objective-C /// class), will be set to the declaration. bool isIncompleteType(NamedDecl **Def = nullptr) const; @@ -1732,7 +1732,7 @@ return !isFunctionType(); } - /// \brief Determine whether this type is an object type. + /// Determine whether this type is an object type. bool isObjectType() const { // C++ [basic.types]p8: // An object type is a (possibly cv-qualified) type that is not a @@ -1927,7 +1927,7 @@ /// somehow depends on a template parameter (C++ [temp.dep.type]). bool isDependentType() const { return TypeBits.Dependent; } - /// \brief Determine whether this type is an instantiation-dependent type, + /// Determine whether this type is an instantiation-dependent type, /// meaning that the type involves a template parameter (even if the /// definition does not actually depend on the type substituted for that /// template parameter). @@ -1935,24 +1935,24 @@ return TypeBits.InstantiationDependent; } - /// \brief Determine whether this type is an undeduced type, meaning that + /// Determine whether this type is an undeduced type, meaning that /// it somehow involves a C++11 'auto' type or similar which has not yet been /// deduced. bool isUndeducedType() const; - /// \brief Whether this type is a variably-modified type (C99 6.7.5). + /// Whether this type is a variably-modified type (C99 6.7.5). bool isVariablyModifiedType() const { return TypeBits.VariablyModified; } - /// \brief Whether this type involves a variable-length array type + /// Whether this type involves a variable-length array type /// with a definite size. bool hasSizedVLAType() const; - /// \brief Whether this type is or contains a local or unnamed type. + /// Whether this type is or contains a local or unnamed type. bool hasUnnamedOrLocalType() const; bool isOverloadableType() const; - /// \brief Determine wither this type is a C++ elaborated-type-specifier. + /// Determine wither this type is a C++ elaborated-type-specifier. bool isElaboratedTypeSpecifier() const; bool canDecayToPointerType() const; @@ -1966,19 +1966,19 @@ /// purpose of GC'ability bool hasObjCPointerRepresentation() const; - /// \brief Determine whether this type has an integer representation + /// Determine whether this type has an integer representation /// of some sort, e.g., it is an integer type or a vector. bool hasIntegerRepresentation() const; - /// \brief Determine whether this type has an signed integer representation + /// Determine whether this type has an signed integer representation /// of some sort, e.g., it is an signed integer type or a vector. bool hasSignedIntegerRepresentation() const; - /// \brief Determine whether this type has an unsigned integer representation + /// Determine whether this type has an unsigned integer representation /// of some sort, e.g., it is an unsigned integer type or a vector. bool hasUnsignedIntegerRepresentation() const; - /// \brief Determine whether this type has a floating-point representation + /// Determine whether this type has a floating-point representation /// of some sort, e.g., it is a floating-point type or a vector thereof. bool hasFloatingRepresentation() const; @@ -1998,12 +1998,12 @@ const ObjCObjectPointerType *getAsObjCQualifiedClassType() const; const ObjCObjectType *getAsObjCQualifiedInterfaceType() const; - /// \brief Retrieves the CXXRecordDecl that this type refers to, either + /// Retrieves the CXXRecordDecl that this type refers to, either /// because the type is a RecordType or because it is the injected-class-name /// type of a class template or class template partial specialization. CXXRecordDecl *getAsCXXRecordDecl() const; - /// \brief Retrieves the TagDecl that this type refers to, either + /// Retrieves the TagDecl that this type refers to, either /// because the type is a TagType or because it is the injected-class-name /// type of a class template or class template partial specialization. TagDecl *getAsTagDecl() const; @@ -2183,16 +2183,16 @@ void dump(llvm::raw_ostream &OS) const; }; -/// \brief This will check for a TypedefType by removing any existing sugar +/// This will check for a TypedefType by removing any existing sugar /// until it reaches a TypedefType or a non-sugared type. template <> const TypedefType *Type::getAs() const; -/// \brief This will check for a TemplateSpecializationType by removing any +/// This will check for a TemplateSpecializationType by removing any /// existing sugar until it reaches a TemplateSpecializationType or a /// non-sugared type. template <> const TemplateSpecializationType *Type::getAs() const; -/// \brief This will check for an AttributedType by removing any existing sugar +/// This will check for an AttributedType by removing any existing sugar /// until it reaches an AttributedType or a non-sugared type. template <> const AttributedType *Type::getAs() const; @@ -2707,13 +2707,13 @@ bool isSugared() const { return false; } QualType desugar() const { return QualType(this, 0); } - /// \brief Determine the number of bits required to address a member of + /// Determine the number of bits required to address a member of // an array with the given element type and number of elements. static unsigned getNumAddressingBits(const ASTContext &Context, QualType ElementType, const llvm::APInt &NumElements); - /// \brief Determine the maximum number of active bits that an array's size + /// Determine the maximum number of active bits that an array's size /// can require, which limits the maximum size of the array. static unsigned getMaxSizeBits(const ASTContext &Context); @@ -2844,7 +2844,7 @@ const ASTContext &Context; - /// \brief An assignment expression that will instantiate to the + /// An assignment expression that will instantiate to the /// size of the array. /// /// The expression itself might be null, in which case the array @@ -3293,7 +3293,7 @@ bool isVolatile() const { return getTypeQuals() & Qualifiers::Volatile; } bool isRestrict() const { return getTypeQuals() & Qualifiers::Restrict; } - /// \brief Determine the type of an expression that calls a function of + /// Determine the type of an expression that calls a function of /// this type. QualType getCallResultType(const ASTContext &Context) const { return getReturnType().getNonLValueExprType(Context); @@ -3488,7 +3488,7 @@ private: friend class ASTContext; // ASTContext creates these. - /// \brief Determine whether there are any argument types that + /// Determine whether there are any argument types that /// contain an unexpanded parameter pack. static bool containsAnyUnexpandedParameterPack(const QualType *ArgArray, unsigned numArgs) { @@ -3653,7 +3653,7 @@ return *reinterpret_cast<Expr *const *>(param_type_end()); } - /// \brief If this function type has an exception specification which hasn't + /// If this function type has an exception specification which hasn't /// been determined yet (either because it has not been evaluated or because /// it has not been instantiated), this is the function whose exception /// specification is represented by this type. @@ -3664,7 +3664,7 @@ return reinterpret_cast<FunctionDecl *const *>(param_type_end())[0]; } - /// \brief If this function type has an uninstantiated exception + /// If this function type has an uninstantiated exception /// specification, this is the function whose exception specification /// should be instantiated to find the exception specification for /// this type. @@ -3793,7 +3793,7 @@ bool Canonical); }; -/// \brief Represents the dependent type named by a dependently-scoped +/// Represents the dependent type named by a dependently-scoped /// typename using declaration, e.g. /// using typename Base<T>::foo; /// @@ -3864,16 +3864,16 @@ public: Expr *getUnderlyingExpr() const { return TOExpr; } - /// \brief Remove a single level of sugar. + /// Remove a single level of sugar. QualType desugar() const; - /// \brief Returns whether this type directly provides sugar. + /// Returns whether this type directly provides sugar. bool isSugared() const; static bool classof(const Type *T) { return T->getTypeClass() == TypeOfExpr; } }; -/// \brief Internal representation of canonical, dependent +/// Internal representation of canonical, dependent /// `typeof(expr)` types. /// /// This class is used internally by the ASTContext to manage @@ -3913,10 +3913,10 @@ public: QualType getUnderlyingType() const { return TOType; } - /// \brief Remove a single level of sugar. + /// Remove a single level of sugar. QualType desugar() const { return getUnderlyingType(); } - /// \brief Returns whether this type directly provides sugar. + /// Returns whether this type directly provides sugar. bool isSugared() const { return true; } static bool classof(const Type *T) { return T->getTypeClass() == TypeOf; } @@ -3936,16 +3936,16 @@ Expr *getUnderlyingExpr() const { return E; } QualType getUnderlyingType() const { return UnderlyingType; } - /// \brief Remove a single level of sugar. + /// Remove a single level of sugar. QualType desugar() const; - /// \brief Returns whether this type directly provides sugar. + /// Returns whether this type directly provides sugar. bool isSugared() const; static bool classof(const Type *T) { return T->getTypeClass() == Decltype; } }; -/// \brief Internal representation of canonical, dependent +/// Internal representation of canonical, dependent /// decltype(expr) types. /// /// This class is used internally by the ASTContext to manage @@ -4001,7 +4001,7 @@ } }; -/// \brief Internal representation of canonical, dependent +/// Internal representation of canonical, dependent /// __underlying_type(type) types. /// /// This class is used internally by the ASTContext to manage @@ -4321,7 +4321,7 @@ } }; -/// \brief Represents the result of substituting a type for a template +/// Represents the result of substituting a type for a template /// type parameter. /// /// Within an instantiated template, all template type parameters have @@ -4372,7 +4372,7 @@ } }; -/// \brief Represents the result of substituting a set of types for a template +/// Represents the result of substituting a set of types for a template /// type parameter pack. /// /// When a pack expansion in the source code contains multiple parameter packs @@ -4387,14 +4387,14 @@ class SubstTemplateTypeParmPackType : public Type, public llvm::FoldingSetNode { friend class ASTContext; - /// \brief The original type parameter. + /// The original type parameter. const TemplateTypeParmType *Replaced; - /// \brief A pointer to the set of template arguments that this + /// A pointer to the set of template arguments that this /// parameter pack is instantiated with. const TemplateArgument *Arguments; - /// \brief The number of template arguments in \c Arguments. + /// The number of template arguments in \c Arguments. unsigned NumArguments; SubstTemplateTypeParmPackType(const TemplateTypeParmType *Param, @@ -4424,7 +4424,7 @@ } }; -/// \brief Common base class for placeholders for types that get replaced by +/// Common base class for placeholders for types that get replaced by /// placeholder type deduction: C++11 auto, C++14 decltype(auto), C++17 deduced /// class template types, and (eventually) constrained type names from the C++ /// Concepts TS. @@ -4457,7 +4457,7 @@ bool isSugared() const { return !isCanonicalUnqualified(); } QualType desugar() const { return getCanonicalTypeInternal(); } - /// \brief Get the type deduced for this placeholder type, or null if it's + /// Get the type deduced for this placeholder type, or null if it's /// either not been deduced or was deduced to a dependent type. QualType getDeducedType() const { return !isCanonicalUnqualified() ? getCanonicalTypeInternal() : QualType(); @@ -4472,7 +4472,7 @@ } }; -/// \brief Represents a C++11 auto or C++14 decltype(auto) type. +/// Represents a C++11 auto or C++14 decltype(auto) type. class AutoType : public DeducedType, public llvm::FoldingSetNode { friend class ASTContext; // ASTContext creates these @@ -4508,7 +4508,7 @@ } }; -/// \brief Represents a C++17 deduced template specialization type. +/// Represents a C++17 deduced template specialization type. class DeducedTemplateSpecializationType : public DeducedType, public llvm::FoldingSetNode { friend class ASTContext; // ASTContext creates these @@ -4545,7 +4545,7 @@ } }; -/// \brief Represents a type template specialization; the template +/// Represents a type template specialization; the template /// must be a class template, a type alias template, or a template /// template parameter. A template which cannot be resolved to one of /// these, e.g. because it is written with a dependent scope @@ -4605,7 +4605,7 @@ return isa<InjectedClassNameType>(getCanonicalTypeInternal()); } - /// \brief Determine if this template specialization type is for a type alias + /// Determine if this template specialization type is for a type alias /// template that has been substituted. /// /// Nearly every template specialization type whose template is an alias @@ -4674,7 +4674,7 @@ } }; -/// \brief Print a template argument list, including the '<' and '>' +/// Print a template argument list, including the '<' and '>' /// enclosing the template arguments. void printTemplateArgumentList(raw_ostream &OS, ArrayRef<TemplateArgument> Args, @@ -4757,47 +4757,47 @@ } }; -/// \brief The kind of a tag type. +/// The kind of a tag type. enum TagTypeKind { - /// \brief The "struct" keyword. + /// The "struct" keyword. TTK_Struct, - /// \brief The "__interface" keyword. + /// The "__interface" keyword. TTK_Interface, - /// \brief The "union" keyword. + /// The "union" keyword. TTK_Union, - /// \brief The "class" keyword. + /// The "class" keyword. TTK_Class, - /// \brief The "enum" keyword. + /// The "enum" keyword. TTK_Enum }; -/// \brief The elaboration keyword that precedes a qualified type name or +/// The elaboration keyword that precedes a qualified type name or /// introduces an elaborated-type-specifier. enum ElaboratedTypeKeyword { - /// \brief The "struct" keyword introduces the elaborated-type-specifier. + /// The "struct" keyword introduces the elaborated-type-specifier. ETK_Struct, - /// \brief The "__interface" keyword introduces the elaborated-type-specifier. + /// The "__interface" keyword introduces the elaborated-type-specifier. ETK_Interface, - /// \brief The "union" keyword introduces the elaborated-type-specifier. + /// The "union" keyword introduces the elaborated-type-specifier. ETK_Union, - /// \brief The "class" keyword introduces the elaborated-type-specifier. + /// The "class" keyword introduces the elaborated-type-specifier. ETK_Class, - /// \brief The "enum" keyword introduces the elaborated-type-specifier. + /// The "enum" keyword introduces the elaborated-type-specifier. ETK_Enum, - /// \brief The "typename" keyword precedes the qualified type name, e.g., + /// The "typename" keyword precedes the qualified type name, e.g., /// \c typename T::type. ETK_Typename, - /// \brief No keyword precedes the qualified type name. + /// No keyword precedes the qualified type name. ETK_None }; @@ -4848,7 +4848,7 @@ static CannotCastToThisType classof(const Type *); }; -/// \brief Represents a type that was referred to using an elaborated type +/// 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. /// @@ -4909,7 +4909,7 @@ } }; -/// \brief Represents a qualified type name for which the type name is +/// Represents a qualified type name for which the type name is /// dependent. /// /// DependentNameType represents a class of dependent types that involve a @@ -4924,10 +4924,10 @@ class DependentNameType : public TypeWithKeyword, public llvm::FoldingSetNode { friend class ASTContext; // ASTContext creates these - /// \brief The nested name specifier containing the qualifier. + /// The nested name specifier containing the qualifier. NestedNameSpecifier *NNS; - /// \brief The type that this typename specifier refers to. + /// The type that this typename specifier refers to. const IdentifierInfo *Name; DependentNameType(ElaboratedTypeKeyword Keyword, NestedNameSpecifier *NNS, @@ -4984,7 +4984,7 @@ /// The identifier of the template. const IdentifierInfo *Name; - /// \brief The number of template arguments named in this class template + /// The number of template arguments named in this class template /// specialization. unsigned NumArgs; @@ -5006,12 +5006,12 @@ NestedNameSpecifier *getQualifier() const { return NNS; } const IdentifierInfo *getIdentifier() const { return Name; } - /// \brief Retrieve the template arguments. + /// Retrieve the template arguments. const TemplateArgument *getArgs() const { return getArgBuffer(); } - /// \brief Retrieve the number of template arguments. + /// Retrieve the number of template arguments. unsigned getNumArgs() const { return NumArgs; } const TemplateArgument &getArg(unsigned Idx) const; // in TemplateBase.h @@ -5044,7 +5044,7 @@ } }; -/// \brief Represents a pack expansion of types. +/// Represents a pack expansion of types. /// /// Pack expansions are part of C++11 variadic templates. A pack /// expansion contains a pattern, which itself contains one or more @@ -5069,10 +5069,10 @@ class PackExpansionType : public Type, public llvm::FoldingSetNode { friend class ASTContext; // ASTContext creates these - /// \brief The pattern of the pack expansion. + /// The pattern of the pack expansion. QualType Pattern; - /// \brief The number of expansions that this pack expansion will + /// The number of expansions that this pack expansion will /// generate when substituted (+1), or indicates that /// /// This field will only have a non-zero value when some of the parameter @@ -5090,12 +5090,12 @@ NumExpansions(NumExpansions ? *NumExpansions + 1 : 0) {} public: - /// \brief Retrieve the pattern of this pack expansion, which is the + /// Retrieve the pattern of this pack expansion, which is the /// type that will be repeatedly instantiated when instantiating the /// pack expansion itself. QualType getPattern() const { return Pattern; } - /// \brief Retrieve the number of expansions that this pack expansion will + /// Retrieve the number of expansions that this pack expansion will /// generate, if known. Optional<unsigned> getNumExpansions() const { if (NumExpansions) @@ -6321,13 +6321,13 @@ return DT && !DT->isDeduced(); } -/// \brief Determines whether this is a type for which one can define +/// Determines whether this is a type for which one can define /// an overloaded operator. inline bool Type::isOverloadableType() const { return isDependentType() || isRecordType() || isEnumeralType(); } -/// \brief Determines whether this type can decay to a pointer type. +/// Determines whether this type can decay to a pointer type. inline bool Type::canDecayToPointerType() const { return isFunctionType() || isArrayType(); } Index: cfe/trunk/include/clang/AST/TypeLoc.h =================================================================== --- cfe/trunk/include/clang/AST/TypeLoc.h +++ cfe/trunk/include/clang/AST/TypeLoc.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Defines the clang::TypeLoc interface and its subclasses. +/// Defines the clang::TypeLoc interface and its subclasses. // //===----------------------------------------------------------------------===// @@ -49,7 +49,7 @@ class Class##TypeLoc; #include "clang/AST/TypeLocNodes.def" -/// \brief Base wrapper for a particular "section" of type source info. +/// Base wrapper for a particular "section" of type source info. /// /// A client should use the TypeLoc subclasses through castAs()/getAs() /// in order to get at the actual information. @@ -67,7 +67,7 @@ TypeLoc(const Type *ty, void *opaqueData) : Ty(ty), Data(opaqueData) {} - /// \brief Convert to the specified TypeLoc type, asserting that this TypeLoc + /// Convert to the specified TypeLoc type, asserting that this TypeLoc /// is of the desired type. /// /// \pre T::isKind(*this) @@ -80,7 +80,7 @@ return t; } - /// \brief Convert to the specified TypeLoc type, returning a null TypeLoc if + /// Convert to the specified TypeLoc type, returning a null TypeLoc if /// this TypeLoc is not of the desired type. template<typename T> T getAs() const { @@ -92,7 +92,7 @@ return t; } - /// \brief Convert to the specified TypeLoc type, returning a null TypeLoc if + /// Convert to the specified TypeLoc type, returning a null TypeLoc if /// this TypeLock is not of the desired type. It will consider type /// adjustments from a type that wad written as a T to another type that is /// still canonically a T (ignores parens, attributes, elaborated types, etc). @@ -118,14 +118,14 @@ bool isNull() const { return !Ty; } explicit operator bool() const { return Ty; } - /// \brief Returns the size of type source info data block for the given type. + /// Returns the size of type source info data block for the given type. static unsigned getFullDataSizeForType(QualType Ty); - /// \brief Returns the alignment of type source info data block for + /// Returns the alignment of type source info data block for /// the given type. static unsigned getLocalAlignmentForType(QualType Ty); - /// \brief Get the type for which this source info wrapper provides + /// Get the type for which this source info wrapper provides /// information. QualType getType() const { return QualType::getFromOpaquePtr(Ty); @@ -135,18 +135,18 @@ return QualType::getFromOpaquePtr(Ty).getTypePtr(); } - /// \brief Get the pointer where source information is stored. + /// Get the pointer where source information is stored. void *getOpaqueData() const { return Data; } - /// \brief Get the begin source location. + /// Get the begin source location. SourceLocation getBeginLoc() const; - /// \brief Get the end source location. + /// Get the end source location. SourceLocation getEndLoc() const; - /// \brief Get the full source range. + /// Get the full source range. SourceRange getSourceRange() const LLVM_READONLY { return SourceRange(getBeginLoc(), getEndLoc()); } @@ -154,28 +154,28 @@ SourceLocation getLocStart() const LLVM_READONLY { return getBeginLoc(); } SourceLocation getLocEnd() const LLVM_READONLY { return getEndLoc(); } - /// \brief Get the local source range. + /// Get the local source range. SourceRange getLocalSourceRange() const { return getLocalSourceRangeImpl(*this); } - /// \brief Returns the size of the type source info data block. + /// Returns the size of the type source info data block. unsigned getFullDataSize() const { return getFullDataSizeForType(getType()); } - /// \brief Get the next TypeLoc pointed by this TypeLoc, e.g for "int*" the + /// Get the next TypeLoc pointed by this TypeLoc, e.g for "int*" the /// TypeLoc is a PointerLoc and next TypeLoc is for "int". TypeLoc getNextTypeLoc() const { return getNextTypeLocImpl(*this); } - /// \brief Skips past any qualifiers, if this is qualified. + /// Skips past any qualifiers, if this is qualified. UnqualTypeLoc getUnqualifiedLoc() const; // implemented in this header TypeLoc IgnoreParens() const; - /// \brief Find a type with the location of an explicit type qualifier. + /// Find a type with the location of an explicit type qualifier. /// /// The result, if non-null, will be one of: /// QualifiedTypeLoc @@ -183,7 +183,7 @@ /// AttributedTypeLoc, for those type attributes that behave as qualifiers TypeLoc findExplicitQualifierLoc() const; - /// \brief Initializes this to state that every location in this + /// Initializes this to state that every location in this /// type is the given location. /// /// This method exists to provide a simple transition for code that @@ -192,14 +192,14 @@ initializeImpl(Context, *this, Loc); } - /// \brief Initializes this by copying its information from another + /// Initializes this by copying its information from another /// TypeLoc of the same type. void initializeFullCopy(TypeLoc Other) { assert(getType() == Other.getType()); copy(Other); } - /// \brief Initializes this by copying its information from another + /// Initializes this by copying its information from another /// TypeLoc of the same type. The given size must be the full data /// size. void initializeFullCopy(TypeLoc Other, unsigned Size) { @@ -235,13 +235,13 @@ static SourceRange getLocalSourceRangeImpl(TypeLoc TL); }; -/// \brief Return the TypeLoc for a type source info. +/// Return the TypeLoc for a type source info. inline TypeLoc TypeSourceInfo::getTypeLoc() const { // TODO: is this alignment already sufficient? return TypeLoc(Ty, const_cast<void*>(static_cast<const void*>(this + 1))); } -/// \brief Wrapper of type source information for a type with +/// Wrapper of type source information for a type with /// no direct qualifiers. class UnqualTypeLoc : public TypeLoc { public: @@ -264,7 +264,7 @@ } }; -/// \brief Wrapper of type source information for a type with +/// Wrapper of type source information for a type with /// non-trivial direct qualifiers. /// /// Currently, we intentionally do not provide source location for @@ -295,7 +295,7 @@ return getUnqualifiedLoc(); } - /// \brief Returns the size of the type source info data block that is + /// Returns the size of the type source info data block that is /// specific to this type. unsigned getLocalDataSize() const { // In fact, we don't currently preserve any location information @@ -303,7 +303,7 @@ return 0; } - /// \brief Returns the alignment of the type source info data block that is + /// Returns the alignment of the type source info data block that is /// specific to this type. unsigned getLocalDataAlignment() const { // We don't preserve any location information. @@ -503,7 +503,7 @@ SourceLocation NameLoc; }; -/// \brief A reasonable base class for TypeLocs that correspond to +/// A reasonable base class for TypeLocs that correspond to /// types that are written as a type-specifier. class TypeSpecTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc, TypeSpecTypeLoc, @@ -541,7 +541,7 @@ SourceRange BuiltinRange; }; -/// \brief Wrapper for source info for builtin types. +/// Wrapper for source info for builtin types. class BuiltinTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc, BuiltinTypeLoc, BuiltinType, @@ -661,7 +661,7 @@ } }; -/// \brief Wrapper for source info for typedefs. +/// Wrapper for source info for typedefs. class TypedefTypeLoc : public InheritingConcreteTypeLoc<TypeSpecTypeLoc, TypedefTypeLoc, TypedefType> { @@ -671,7 +671,7 @@ } }; -/// \brief Wrapper for source info for injected class names of class +/// Wrapper for source info for injected class names of class /// templates. class InjectedClassNameTypeLoc : public InheritingConcreteTypeLoc<TypeSpecTypeLoc, @@ -683,7 +683,7 @@ } }; -/// \brief Wrapper for source info for unresolved typename using decls. +/// Wrapper for source info for unresolved typename using decls. class UnresolvedUsingTypeLoc : public InheritingConcreteTypeLoc<TypeSpecTypeLoc, UnresolvedUsingTypeLoc, @@ -694,7 +694,7 @@ } }; -/// \brief Wrapper for source info for tag types. Note that this only +/// Wrapper for source info for tag types. Note that this only /// records source info for the name itself; a type written 'struct foo' /// should be represented as an ElaboratedTypeLoc. We currently /// only do that when C++ is enabled because of the expense of @@ -705,7 +705,7 @@ public: TagDecl *getDecl() const { return getTypePtr()->getDecl(); } - /// \brief True if the tag was defined in this type specifier. + /// True if the tag was defined in this type specifier. bool isDefinition() const { TagDecl *D = getDecl(); return D->isCompleteDefinition() && @@ -713,7 +713,7 @@ } }; -/// \brief Wrapper for source info for record types. +/// Wrapper for source info for record types. class RecordTypeLoc : public InheritingConcreteTypeLoc<TagTypeLoc, RecordTypeLoc, RecordType> { @@ -721,7 +721,7 @@ RecordDecl *getDecl() const { return getTypePtr()->getDecl(); } }; -/// \brief Wrapper for source info for enum types. +/// Wrapper for source info for enum types. class EnumTypeLoc : public InheritingConcreteTypeLoc<TagTypeLoc, EnumTypeLoc, EnumType> { @@ -729,7 +729,7 @@ EnumDecl *getDecl() const { return getTypePtr()->getDecl(); } }; -/// \brief Wrapper for template type parameters. +/// Wrapper for template type parameters. class TemplateTypeParmTypeLoc : public InheritingConcreteTypeLoc<TypeSpecTypeLoc, TemplateTypeParmTypeLoc, @@ -828,14 +828,14 @@ } }; -/// \brief Wrapper for substituted template type parameters. +/// Wrapper for substituted template type parameters. class SubstTemplateTypeParmTypeLoc : public InheritingConcreteTypeLoc<TypeSpecTypeLoc, SubstTemplateTypeParmTypeLoc, SubstTemplateTypeParmType> { }; - /// \brief Wrapper for substituted template type parameters. + /// Wrapper for substituted template type parameters. class SubstTemplateTypeParmPackTypeLoc : public InheritingConcreteTypeLoc<TypeSpecTypeLoc, SubstTemplateTypeParmPackTypeLoc, @@ -855,7 +855,7 @@ SourceLocation AttrLoc; }; -/// \brief Type source information for an attributed type. +/// Type source information for an attributed type. class AttributedTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc, AttributedTypeLoc, AttributedType, @@ -1114,7 +1114,7 @@ SourceLocation NameEndLoc; }; -/// \brief Wrapper for source info for ObjC interfaces. +/// Wrapper for source info for ObjC interfaces. class ObjCInterfaceTypeLoc : public ConcreteTypeLoc<ObjCObjectTypeLoc, ObjCInterfaceTypeLoc, ObjCInterfaceType, @@ -1227,7 +1227,7 @@ } }; -/// \brief Wrapper for source info for pointers decayed from arrays and +/// Wrapper for source info for pointers decayed from arrays and /// functions. class DecayedTypeLoc : public InheritingConcreteTypeLoc< AdjustedTypeLoc, DecayedTypeLoc, DecayedType> { @@ -1267,7 +1267,7 @@ } }; -/// \brief Wrapper for source info for pointers. +/// Wrapper for source info for pointers. class PointerTypeLoc : public PointerLikeTypeLoc<PointerTypeLoc, PointerType> { public: @@ -1280,7 +1280,7 @@ } }; -/// \brief Wrapper for source info for block pointers. +/// Wrapper for source info for block pointers. class BlockPointerTypeLoc : public PointerLikeTypeLoc<BlockPointerTypeLoc, BlockPointerType> { public: @@ -1297,7 +1297,7 @@ TypeSourceInfo *ClassTInfo; }; -/// \brief Wrapper for source info for member pointers. +/// Wrapper for source info for member pointers. class MemberPointerTypeLoc : public PointerLikeTypeLoc<MemberPointerTypeLoc, MemberPointerType, MemberPointerLocInfo> { @@ -1392,7 +1392,7 @@ SourceLocation LocalRangeEnd; }; -/// \brief Wrapper for source info for functions. +/// Wrapper for source info for functions. class FunctionTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc, FunctionTypeLoc, FunctionType, @@ -1496,7 +1496,7 @@ setExceptionSpecRange(Loc); } - /// \brief Returns the size of the type source info data block that is + /// Returns the size of the type source info data block that is /// specific to this type. unsigned getExtraLocalDataSize() const { unsigned ExceptSpecSize = hasExceptionSpec() ? sizeof(SourceRange) : 0; @@ -1525,7 +1525,7 @@ Expr *Size; }; -/// \brief Wrapper for source info for arrays. +/// Wrapper for source info for arrays. class ArrayTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc, ArrayTypeLoc, ArrayType, @@ -1670,7 +1670,7 @@ getLocalData()->NameLoc = Loc; } - /// \brief - Copy the location information from the given info. + /// - Copy the location information from the given info. void copy(TemplateSpecializationTypeLoc Loc) { unsigned size = getFullDataSize(); assert(size == Loc.getFullDataSize()); @@ -1989,7 +1989,7 @@ struct ElaboratedLocInfo { SourceLocation ElaboratedKWLoc; - /// \brief Data associated with the nested-name-specifier location. + /// Data associated with the nested-name-specifier location. void *QualifierData; }; Index: cfe/trunk/include/clang/AST/TypeOrdering.h =================================================================== --- cfe/trunk/include/clang/AST/TypeOrdering.h +++ cfe/trunk/include/clang/AST/TypeOrdering.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Allows QualTypes to be sorted and hence used in maps and sets. +/// Allows QualTypes to be sorted and hence used in maps and sets. /// /// Defines clang::QualTypeOrdering, a total ordering on clang::QualType, /// and hence enables QualType values to be sorted and to be used in @@ -25,7 +25,7 @@ namespace clang { -/// \brief Function object that provides a total ordering on QualType values. +/// Function object that provides a total ordering on QualType values. struct QualTypeOrdering { bool operator()(QualType T1, QualType T2) const { return std::less<void*>()(T1.getAsOpaquePtr(), T2.getAsOpaquePtr()); Index: cfe/trunk/include/clang/AST/TypeVisitor.h =================================================================== --- cfe/trunk/include/clang/AST/TypeVisitor.h +++ cfe/trunk/include/clang/AST/TypeVisitor.h @@ -22,7 +22,7 @@ return static_cast<ImplClass*>(this)-> \ Visit##CLASS(static_cast<const CLASS*>(T)) -/// \brief An operation on a type. +/// An operation on a type. /// /// \tparam ImplClass Class implementing the operation. Must be inherited from /// TypeVisitor. @@ -65,7 +65,7 @@ class TypeVisitor { public: - /// \brief Performs the operation associated with this visitor object. + /// Performs the operation associated with this visitor object. RetTy Visit(const Type *T) { // Top switch stmt: dispatch to VisitFooType for each FooType. switch (T->getTypeClass()) { @@ -83,7 +83,7 @@ } #include "clang/AST/TypeNodes.def" - /// \brief Method called if \c ImpClass doesn't provide specific handler + /// Method called if \c ImpClass doesn't provide specific handler /// for some type class. RetTy VisitType(const Type*) { return RetTy(); } }; Index: cfe/trunk/include/clang/AST/UnresolvedSet.h =================================================================== --- cfe/trunk/include/clang/AST/UnresolvedSet.h +++ cfe/trunk/include/clang/AST/UnresolvedSet.h @@ -57,7 +57,7 @@ NamedDecl *operator->() const { return **this; } }; -/// \brief A set of unresolved declarations. +/// A set of unresolved declarations. class UnresolvedSetImpl { using DeclsTy = SmallVectorImpl<DeclAccessPair>; @@ -140,7 +140,7 @@ } }; -/// \brief A set of unresolved declarations. +/// A set of unresolved declarations. template <unsigned InlineCapacity> class UnresolvedSet : public UnresolvedSetImpl { SmallVector<DeclAccessPair, InlineCapacity> Decls; Index: cfe/trunk/include/clang/AST/VTTBuilder.h =================================================================== --- cfe/trunk/include/clang/AST/VTTBuilder.h +++ cfe/trunk/include/clang/AST/VTTBuilder.h @@ -68,48 +68,48 @@ : VTableIndex(VTableIndex), VTableBase(VTableBase) {} }; -/// \brief Class for building VTT layout information. +/// Class for building VTT layout information. class VTTBuilder { ASTContext &Ctx; - /// \brief The most derived class for which we're building this vtable. + /// The most derived class for which we're building this vtable. const CXXRecordDecl *MostDerivedClass; using VTTVTablesVectorTy = SmallVector<VTTVTable, 64>; - /// \brief The VTT vtables. + /// The VTT vtables. VTTVTablesVectorTy VTTVTables; using VTTComponentsVectorTy = SmallVector<VTTComponent, 64>; - /// \brief The VTT components. + /// The VTT components. VTTComponentsVectorTy VTTComponents; - /// \brief The AST record layout of the most derived class. + /// The AST record layout of the most derived class. const ASTRecordLayout &MostDerivedClassLayout; using VisitedVirtualBasesSetTy = llvm::SmallPtrSet<const CXXRecordDecl *, 4>; using AddressPointsMapTy = llvm::DenseMap<BaseSubobject, uint64_t>; - /// \brief The sub-VTT indices for the bases of the most derived class. + /// The sub-VTT indices for the bases of the most derived class. llvm::DenseMap<BaseSubobject, uint64_t> SubVTTIndicies; - /// \brief The secondary virtual pointer indices of all subobjects of + /// The secondary virtual pointer indices of all subobjects of /// the most derived class. llvm::DenseMap<BaseSubobject, uint64_t> SecondaryVirtualPointerIndices; - /// \brief Whether the VTT builder should generate LLVM IR for the VTT. + /// Whether the VTT builder should generate LLVM IR for the VTT. bool GenerateDefinition; - /// \brief Add a vtable pointer to the VTT currently being built. + /// Add a vtable pointer to the VTT currently being built. void AddVTablePointer(BaseSubobject Base, uint64_t VTableIndex, const CXXRecordDecl *VTableClass); - /// \brief Lay out the secondary VTTs of the given base subobject. + /// Lay out the secondary VTTs of the given base subobject. void LayoutSecondaryVTTs(BaseSubobject Base); - /// \brief Lay out the secondary virtual pointers for the given base + /// Lay out the secondary virtual pointers for the given base /// subobject. /// /// \param BaseIsMorallyVirtual whether the base subobject is a virtual base @@ -120,17 +120,17 @@ const CXXRecordDecl *VTableClass, VisitedVirtualBasesSetTy &VBases); - /// \brief Lay out the secondary virtual pointers for the given base + /// Lay out the secondary virtual pointers for the given base /// subobject. void LayoutSecondaryVirtualPointers(BaseSubobject Base, uint64_t VTableIndex); - /// \brief Lay out the VTTs for the virtual base classes of the given + /// Lay out the VTTs for the virtual base classes of the given /// record declaration. void LayoutVirtualVTTs(const CXXRecordDecl *RD, VisitedVirtualBasesSetTy &VBases); - /// \brief Lay out the VTT for the given subobject, including any + /// Lay out the VTT for the given subobject, including any /// secondary VTTs, secondary virtual pointers and virtual VTTs. void LayoutVTT(BaseSubobject Base, bool BaseIsVirtual); @@ -138,22 +138,22 @@ VTTBuilder(ASTContext &Ctx, const CXXRecordDecl *MostDerivedClass, bool GenerateDefinition); - // \brief Returns a reference to the VTT components. + // Returns a reference to the VTT components. const VTTComponentsVectorTy &getVTTComponents() const { return VTTComponents; } - // \brief Returns a reference to the VTT vtables. + // Returns a reference to the VTT vtables. const VTTVTablesVectorTy &getVTTVTables() const { return VTTVTables; } - /// \brief Returns a reference to the sub-VTT indices. + /// Returns a reference to the sub-VTT indices. const llvm::DenseMap<BaseSubobject, uint64_t> &getSubVTTIndicies() const { return SubVTTIndicies; } - /// \brief Returns a reference to the secondary virtual pointer indices. + /// Returns a reference to the secondary virtual pointer indices. const llvm::DenseMap<BaseSubobject, uint64_t> & getSecondaryVirtualPointerIndices() const { return SecondaryVirtualPointerIndices; Index: cfe/trunk/include/clang/AST/VTableBuilder.h =================================================================== --- cfe/trunk/include/clang/AST/VTableBuilder.h +++ cfe/trunk/include/clang/AST/VTableBuilder.h @@ -26,7 +26,7 @@ namespace clang { class CXXRecordDecl; -/// \brief Represents a single component in a vtable. +/// Represents a single component in a vtable. class VTableComponent { public: enum Kind { @@ -36,13 +36,13 @@ CK_RTTI, CK_FunctionPointer, - /// \brief A pointer to the complete destructor. + /// A pointer to the complete destructor. CK_CompleteDtorPointer, - /// \brief A pointer to the deleting destructor. + /// A pointer to the deleting destructor. CK_DeletingDtorPointer, - /// \brief An entry that is never used. + /// An entry that is never used. /// /// In some cases, a vtable function pointer will end up never being /// called. Such vtable function pointers are represented as a @@ -97,7 +97,7 @@ return VTableComponent(I); } - /// \brief Get the kind of this vtable component. + /// Get the kind of this vtable component. Kind getKind() const { return (Kind)(Value & 0x7); } @@ -255,10 +255,10 @@ OwningArrayRef<VTableComponent> VTableComponents; - /// \brief Contains thunks needed by vtables, sorted by indices. + /// Contains thunks needed by vtables, sorted by indices. OwningArrayRef<VTableThunkTy> VTableThunks; - /// \brief Address points for all vtables. + /// Address points for all vtables. AddressPointsMapTy AddressPoints; public: @@ -324,7 +324,7 @@ protected: typedef llvm::DenseMap<const CXXMethodDecl *, ThunkInfoVectorTy> ThunksMapTy; - /// \brief Contains all thunks that a given method decl will need. + /// Contains all thunks that a given method decl will need. ThunksMapTy Thunks; /// Compute and store all vtable related information (vtable layout, vbase @@ -355,7 +355,7 @@ class ItaniumVTableContext : public VTableContextBase { private: - /// \brief Contains the index (relative to the vtable address point) + /// Contains the index (relative to the vtable address point) /// where the function pointer for a virtual function is stored. typedef llvm::DenseMap<GlobalDecl, int64_t> MethodVTableIndicesTy; MethodVTableIndicesTy MethodVTableIndices; @@ -368,7 +368,7 @@ typedef std::pair<const CXXRecordDecl *, const CXXRecordDecl *> ClassPairTy; - /// \brief vtable offsets for offsets of virtual bases of a class. + /// vtable offsets for offsets of virtual bases of a class. /// /// Contains the vtable offset (relative to the address point) in chars /// where the offsets for virtual bases of a class are stored. @@ -393,7 +393,7 @@ const CXXRecordDecl *MostDerivedClass, CharUnits MostDerivedClassOffset, bool MostDerivedClassIsVirtual, const CXXRecordDecl *LayoutClass); - /// \brief Locate a virtual function in the vtable. + /// Locate a virtual function in the vtable. /// /// Return the index (relative to the vtable address point) where the /// function pointer for the given virtual function is stored. @@ -570,7 +570,7 @@ return VTableContextBase::getThunkInfo(GD); } - /// \brief Returns the index of VBase in the vbtable of Derived. + /// Returns the index of VBase in the vbtable of Derived. /// VBase must be a morally virtual base of Derived. /// The vbtable is an array of i32 offsets. The first entry is a self entry, /// and the rest are offsets from the vbptr to virtual bases. Index: cfe/trunk/include/clang/ASTMatchers/ASTMatchFinder.h =================================================================== --- cfe/trunk/include/clang/ASTMatchers/ASTMatchFinder.h +++ cfe/trunk/include/clang/ASTMatchers/ASTMatchFinder.h @@ -50,7 +50,7 @@ namespace ast_matchers { -/// \brief A class to allow finding matches over the Clang AST. +/// A class to allow finding matches over the Clang AST. /// /// After creation, you can add multiple matchers to the MatchFinder via /// calls to addMatcher(...). @@ -68,52 +68,52 @@ /// Not intended to be subclassed. class MatchFinder { public: - /// \brief Contains all information for a given match. + /// Contains all information for a given match. /// /// Every time a match is found, the MatchFinder will invoke the registered /// MatchCallback with a MatchResult containing information about the match. struct MatchResult { MatchResult(const BoundNodes &Nodes, clang::ASTContext *Context); - /// \brief Contains the nodes bound on the current match. + /// Contains the nodes bound on the current match. /// /// This allows user code to easily extract matched AST nodes. const BoundNodes Nodes; - /// \brief Utilities for interpreting the matched AST structures. + /// Utilities for interpreting the matched AST structures. /// @{ clang::ASTContext * const Context; clang::SourceManager * const SourceManager; /// @} }; - /// \brief Called when the Match registered for it was successfully found + /// Called when the Match registered for it was successfully found /// in the AST. class MatchCallback { public: virtual ~MatchCallback(); - /// \brief Called on every match by the \c MatchFinder. + /// Called on every match by the \c MatchFinder. virtual void run(const MatchResult &Result) = 0; - /// \brief Called at the start of each translation unit. + /// Called at the start of each translation unit. /// /// Optionally override to do per translation unit tasks. virtual void onStartOfTranslationUnit() {} - /// \brief Called at the end of each translation unit. + /// Called at the end of each translation unit. /// /// Optionally override to do per translation unit tasks. virtual void onEndOfTranslationUnit() {} - /// \brief An id used to group the matchers. + /// An id used to group the matchers. /// /// This id is used, for example, for the profiling output. /// It defaults to "<unknown>". virtual StringRef getID() const; }; - /// \brief Called when parsing is finished. Intended for testing only. + /// Called when parsing is finished. Intended for testing only. class ParsingDoneTestCallback { public: virtual ~ParsingDoneTestCallback(); @@ -125,11 +125,11 @@ Profiling(llvm::StringMap<llvm::TimeRecord> &Records) : Records(Records) {} - /// \brief Per bucket timing information. + /// Per bucket timing information. llvm::StringMap<llvm::TimeRecord> &Records; }; - /// \brief Enables per-check timers. + /// Enables per-check timers. /// /// It prints a report after match. llvm::Optional<Profiling> CheckProfiling; @@ -138,7 +138,7 @@ MatchFinder(MatchFinderOptions Options = MatchFinderOptions()); ~MatchFinder(); - /// \brief Adds a matcher to execute when running over the AST. + /// Adds a matcher to execute when running over the AST. /// /// Calls 'Action' with the BoundNodes on every match. /// Adding more than one 'NodeMatch' allows finding different matches in a @@ -162,7 +162,7 @@ MatchCallback *Action); /// @} - /// \brief Adds a matcher to execute when running over the AST. + /// Adds a matcher to execute when running over the AST. /// /// This is similar to \c addMatcher(), but it uses the dynamic interface. It /// is more flexible, but the lost type information enables a caller to pass @@ -173,10 +173,10 @@ bool addDynamicMatcher(const internal::DynTypedMatcher &NodeMatch, MatchCallback *Action); - /// \brief Creates a clang ASTConsumer that finds all matches. + /// Creates a clang ASTConsumer that finds all matches. std::unique_ptr<clang::ASTConsumer> newASTConsumer(); - /// \brief Calls the registered callbacks on all matches on the given \p Node. + /// Calls the registered callbacks on all matches on the given \p Node. /// /// Note that there can be multiple matches on a single node, for /// example when using decl(forEachDescendant(stmt())). @@ -189,17 +189,17 @@ ASTContext &Context); /// @} - /// \brief Finds all matches in the given AST. + /// Finds all matches in the given AST. void matchAST(ASTContext &Context); - /// \brief Registers a callback to notify the end of parsing. + /// Registers a callback to notify the end of parsing. /// /// The provided closure is called after parsing is done, before the AST is /// traversed. Useful for benchmarking. /// Each call to FindAll(...) will call the closure once. void registerTestCallbackAfterParsing(ParsingDoneTestCallback *ParsingDone); - /// \brief For each \c Matcher<> a \c MatchCallback that will be called + /// For each \c Matcher<> a \c MatchCallback that will be called /// when it matches. struct MatchersByType { std::vector<std::pair<internal::DynTypedMatcher, MatchCallback *>> @@ -211,7 +211,7 @@ NestedNameSpecifierLoc; std::vector<std::pair<TypeLocMatcher, MatchCallback *>> TypeLoc; std::vector<std::pair<CXXCtorInitializerMatcher, MatchCallback *>> CtorInit; - /// \brief All the callbacks in one container to simplify iteration. + /// All the callbacks in one container to simplify iteration. llvm::SmallPtrSet<MatchCallback *, 16> AllCallbacks; }; @@ -220,11 +220,11 @@ MatchFinderOptions Options; - /// \brief Called when parsing is done. + /// Called when parsing is done. ParsingDoneTestCallback *ParsingDone; }; -/// \brief Returns the results of matching \p Matcher on \p Node. +/// Returns the results of matching \p Matcher on \p Node. /// /// Collects the \c BoundNodes of all callback invocations when matching /// \p Matcher on \p Node and returns the collected results. @@ -248,12 +248,12 @@ ASTContext &Context); /// @} -/// \brief Returns the results of matching \p Matcher on the translation unit of +/// Returns the results of matching \p Matcher on the translation unit of /// \p Context and collects the \c BoundNodes of all callback invocations. template <typename MatcherT> SmallVector<BoundNodes, 1> match(MatcherT Matcher, ASTContext &Context); -/// \brief Returns the first result of type \c NodeT bound to \p BoundTo. +/// Returns the first result of type \c NodeT bound to \p BoundTo. /// /// Returns \c NULL if there is no match, or if the matching node cannot be /// casted to \c NodeT. Index: cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h =================================================================== --- cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h +++ cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h @@ -92,7 +92,7 @@ namespace clang { namespace ast_matchers { -/// \brief Maps string IDs to AST nodes matched by parts of a matcher. +/// Maps string IDs to AST nodes matched by parts of a matcher. /// /// The bound nodes are generated by calling \c bind("id") on the node matchers /// of the nodes we want to access later. @@ -101,7 +101,7 @@ /// callbacks are executed every time a match is found. class BoundNodes { public: - /// \brief Returns the AST node bound to \c ID. + /// Returns the AST node bound to \c ID. /// /// Returns NULL if there was no node bound to \c ID or if there is a node but /// it cannot be converted to the specified type. @@ -110,12 +110,12 @@ return MyBoundNodes.getNodeAs<T>(ID); } - /// \brief Type of mapping from binding identifiers to bound nodes. This type + /// Type of mapping from binding identifiers to bound nodes. This type /// is an associative container with a key type of \c std::string and a value /// type of \c clang::ast_type_traits::DynTypedNode using IDToNodeMap = internal::BoundNodesMap::IDToNodeMap; - /// \brief Retrieve mapping from binding identifiers to bound nodes. + /// Retrieve mapping from binding identifiers to bound nodes. const IDToNodeMap &getMap() const { return MyBoundNodes.getMap(); } @@ -123,14 +123,14 @@ private: friend class internal::BoundNodesTreeBuilder; - /// \brief Create BoundNodes from a pre-filled map of bindings. + /// Create BoundNodes from a pre-filled map of bindings. BoundNodes(internal::BoundNodesMap &MyBoundNodes) : MyBoundNodes(MyBoundNodes) {} internal::BoundNodesMap MyBoundNodes; }; -/// \brief If the provided matcher matches a node, binds the node to \c ID. +/// If the provided matcher matches a node, binds the node to \c ID. /// /// FIXME: Do we want to support this now that we have bind()? template <typename T> @@ -139,7 +139,7 @@ return InnerMatcher.bind(ID); } -/// \brief Types of matchers for the top-level classes in the AST class +/// Types of matchers for the top-level classes in the AST class /// hierarchy. /// @{ using DeclarationMatcher = internal::Matcher<Decl>; @@ -151,7 +151,7 @@ using CXXCtorInitializerMatcher = internal::Matcher<CXXCtorInitializer>; /// @} -/// \brief Matches any node. +/// Matches any node. /// /// Useful when another matcher requires a child matcher, but there's no /// additional constraint. This will often be used with an explicit conversion @@ -167,7 +167,7 @@ /// Usable as: Any Matcher inline internal::TrueMatcher anything() { return internal::TrueMatcher(); } -/// \brief Matches the top declaration context. +/// Matches the top declaration context. /// /// Given /// \code @@ -181,7 +181,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, TranslationUnitDecl> translationUnitDecl; -/// \brief Matches typedef declarations. +/// Matches typedef declarations. /// /// Given /// \code @@ -193,7 +193,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, TypedefDecl> typedefDecl; -/// \brief Matches typedef name declarations. +/// Matches typedef name declarations. /// /// Given /// \code @@ -205,7 +205,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, TypedefNameDecl> typedefNameDecl; -/// \brief Matches type alias declarations. +/// Matches type alias declarations. /// /// Given /// \code @@ -217,7 +217,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, TypeAliasDecl> typeAliasDecl; -/// \brief Matches type alias template declarations. +/// Matches type alias template declarations. /// /// typeAliasTemplateDecl() matches /// \code @@ -227,7 +227,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, TypeAliasTemplateDecl> typeAliasTemplateDecl; -/// \brief Matches AST nodes that were expanded within the main-file. +/// Matches AST nodes that were expanded within the main-file. /// /// Example matches X but not Y /// (matcher = cxxRecordDecl(isExpansionInMainFile()) @@ -248,7 +248,7 @@ SourceManager.getExpansionLoc(Node.getLocStart())); } -/// \brief Matches AST nodes that were expanded within system-header-files. +/// Matches AST nodes that were expanded within system-header-files. /// /// Example matches Y but not X /// (matcher = cxxRecordDecl(isExpansionInSystemHeader()) @@ -272,7 +272,7 @@ return SourceManager.isInSystemHeader(ExpansionLoc); } -/// \brief Matches AST nodes that were expanded within files whose name is +/// Matches AST nodes that were expanded within files whose name is /// partially matching a given regex. /// /// Example matches Y but not X @@ -306,7 +306,7 @@ return RE.match(Filename); } -/// \brief Matches declarations. +/// Matches declarations. /// /// Examples matches \c X, \c C, and the friend declaration inside \c C; /// \code @@ -317,7 +317,7 @@ /// \endcode extern const internal::VariadicAllOfMatcher<Decl> decl; -/// \brief Matches a declaration of a linkage specification. +/// Matches a declaration of a linkage specification. /// /// Given /// \code @@ -328,7 +328,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, LinkageSpecDecl> linkageSpecDecl; -/// \brief Matches a declaration of anything that could have a name. +/// Matches a declaration of anything that could have a name. /// /// Example matches \c X, \c S, the anonymous union type, \c i, and \c U; /// \code @@ -341,7 +341,7 @@ /// \endcode extern const internal::VariadicDynCastAllOfMatcher<Decl, NamedDecl> namedDecl; -/// \brief Matches a declaration of label. +/// Matches a declaration of label. /// /// Given /// \code @@ -352,7 +352,7 @@ /// matches 'FOO:' extern const internal::VariadicDynCastAllOfMatcher<Decl, LabelDecl> labelDecl; -/// \brief Matches a declaration of a namespace. +/// Matches a declaration of a namespace. /// /// Given /// \code @@ -364,7 +364,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, NamespaceDecl> namespaceDecl; -/// \brief Matches a declaration of a namespace alias. +/// Matches a declaration of a namespace alias. /// /// Given /// \code @@ -376,7 +376,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, NamespaceAliasDecl> namespaceAliasDecl; -/// \brief Matches class, struct, and union declarations. +/// Matches class, struct, and union declarations. /// /// Example matches \c X, \c Z, \c U, and \c S /// \code @@ -387,7 +387,7 @@ /// \endcode extern const internal::VariadicDynCastAllOfMatcher<Decl, RecordDecl> recordDecl; -/// \brief Matches C++ class declarations. +/// Matches C++ class declarations. /// /// Example matches \c X, \c Z /// \code @@ -397,7 +397,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, CXXRecordDecl> cxxRecordDecl; -/// \brief Matches C++ class template declarations. +/// Matches C++ class template declarations. /// /// Example matches \c Z /// \code @@ -406,7 +406,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, ClassTemplateDecl> classTemplateDecl; -/// \brief Matches C++ class template specializations. +/// Matches C++ class template specializations. /// /// Given /// \code @@ -420,7 +420,7 @@ Decl, ClassTemplateSpecializationDecl> classTemplateSpecializationDecl; -/// \brief Matches declarator declarations (field, variable, function +/// Matches declarator declarations (field, variable, function /// and non-type template parameter declarations). /// /// Given @@ -432,7 +432,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, DeclaratorDecl> declaratorDecl; -/// \brief Matches parameter variable declarations. +/// Matches parameter variable declarations. /// /// Given /// \code @@ -443,7 +443,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, ParmVarDecl> parmVarDecl; -/// \brief Matches C++ access specifier declarations. +/// Matches C++ access specifier declarations. /// /// Given /// \code @@ -457,7 +457,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, AccessSpecDecl> accessSpecDecl; -/// \brief Matches constructor initializers. +/// Matches constructor initializers. /// /// Examples matches \c i(42). /// \code @@ -469,7 +469,7 @@ extern const internal::VariadicAllOfMatcher<CXXCtorInitializer> cxxCtorInitializer; -/// \brief Matches template arguments. +/// Matches template arguments. /// /// Given /// \code @@ -480,7 +480,7 @@ /// matches 'int' in C<int>. extern const internal::VariadicAllOfMatcher<TemplateArgument> templateArgument; -/// \brief Matches template name. +/// Matches template name. /// /// Given /// \code @@ -491,7 +491,7 @@ /// matches 'X' in X<int>. extern const internal::VariadicAllOfMatcher<TemplateName> templateName; -/// \brief Matches non-type template parameter declarations. +/// Matches non-type template parameter declarations. /// /// Given /// \code @@ -503,7 +503,7 @@ NonTypeTemplateParmDecl> nonTypeTemplateParmDecl; -/// \brief Matches template type parameter declarations. +/// Matches template type parameter declarations. /// /// Given /// \code @@ -514,7 +514,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, TemplateTypeParmDecl> templateTypeParmDecl; -/// \brief Matches public C++ declarations. +/// Matches public C++ declarations. /// /// Given /// \code @@ -530,7 +530,7 @@ return Node.getAccess() == AS_public; } -/// \brief Matches protected C++ declarations. +/// Matches protected C++ declarations. /// /// Given /// \code @@ -546,7 +546,7 @@ return Node.getAccess() == AS_protected; } -/// \brief Matches private C++ declarations. +/// Matches private C++ declarations. /// /// Given /// \code @@ -562,7 +562,7 @@ return Node.getAccess() == AS_private; } -/// \brief Matches non-static data members that are bit-fields. +/// Matches non-static data members that are bit-fields. /// /// Given /// \code @@ -577,7 +577,7 @@ return Node.isBitField(); } -/// \brief Matches non-static data members that are bit-fields of the specified +/// Matches non-static data members that are bit-fields of the specified /// bit width. /// /// Given @@ -595,7 +595,7 @@ Node.getBitWidthValue(Finder->getASTContext()) == Width; } -/// \brief Matches non-static data members that have an in-class initializer. +/// Matches non-static data members that have an in-class initializer. /// /// Given /// \code @@ -616,7 +616,7 @@ InnerMatcher.matches(*Initializer, Finder, Builder)); } -/// \brief Matches the specialized template of a specialization declaration. +/// Matches the specialized template of a specialization declaration. /// /// Given /// \code @@ -633,13 +633,13 @@ InnerMatcher.matches(*Decl, Finder, Builder)); } -/// \brief Matches a declaration that has been implicitly added +/// Matches a declaration that has been implicitly added /// by the compiler (eg. implicit default/copy constructors). AST_MATCHER(Decl, isImplicit) { return Node.isImplicit(); } -/// \brief Matches classTemplateSpecializations, templateSpecializationType and +/// Matches classTemplateSpecializations, templateSpecializationType and /// functionDecl that have at least one TemplateArgument matching the given /// InnerMatcher. /// @@ -672,7 +672,7 @@ Builder); } -/// \brief Matches expressions that match InnerMatcher after any implicit AST +/// Matches expressions that match InnerMatcher after any implicit AST /// nodes are stripped off. /// /// Parentheses and explicit casts are not discarded. @@ -698,7 +698,7 @@ return InnerMatcher.matches(*Node.IgnoreImplicit(), Finder, Builder); } -/// \brief Matches expressions that match InnerMatcher after any implicit casts +/// Matches expressions that match InnerMatcher after any implicit casts /// are stripped off. /// /// Parentheses and explicit casts are not discarded. @@ -728,7 +728,7 @@ return InnerMatcher.matches(*Node.IgnoreImpCasts(), Finder, Builder); } -/// \brief Matches expressions that match InnerMatcher after parentheses and +/// Matches expressions that match InnerMatcher after parentheses and /// casts are stripped off. /// /// Implicit and non-C Style casts are also discarded. @@ -749,7 +749,7 @@ return InnerMatcher.matches(*Node.IgnoreParenCasts(), Finder, Builder); } -/// \brief Matches expressions that match InnerMatcher after implicit casts and +/// Matches expressions that match InnerMatcher after implicit casts and /// parentheses are stripped off. /// /// Explicit casts are not discarded. @@ -775,7 +775,7 @@ return InnerMatcher.matches(*Node.IgnoreParenImpCasts(), Finder, Builder); } -/// \brief Matches types that match InnerMatcher after any parens are stripped. +/// Matches types that match InnerMatcher after any parens are stripped. /// /// Given /// \code @@ -791,7 +791,7 @@ return InnerMatcher.matches(Node.IgnoreParens(), Finder, Builder); } -/// \brief Matches classTemplateSpecializations, templateSpecializationType and +/// Matches classTemplateSpecializations, templateSpecializationType and /// functionDecl where the n'th TemplateArgument matches the given InnerMatcher. /// /// Given @@ -822,7 +822,7 @@ return InnerMatcher.matches(List[N], Finder, Builder); } -/// \brief Matches if the number of template arguments equals \p N. +/// Matches if the number of template arguments equals \p N. /// /// Given /// \code @@ -839,7 +839,7 @@ return internal::getTemplateSpecializationArgs(Node).size() == N; } -/// \brief Matches a TemplateArgument that refers to a certain type. +/// Matches a TemplateArgument that refers to a certain type. /// /// Given /// \code @@ -857,7 +857,7 @@ return InnerMatcher.matches(Node.getAsType(), Finder, Builder); } -/// \brief Matches a TemplateArgument that refers to a certain template. +/// Matches a TemplateArgument that refers to a certain template. /// /// Given /// \code @@ -875,7 +875,7 @@ return InnerMatcher.matches(Node.getAsTemplate(), Finder, Builder); } -/// \brief Matches a canonical TemplateArgument that refers to a certain +/// Matches a canonical TemplateArgument that refers to a certain /// declaration. /// /// Given @@ -895,7 +895,7 @@ return false; } -/// \brief Matches a sugar TemplateArgument that refers to a certain expression. +/// Matches a sugar TemplateArgument that refers to a certain expression. /// /// Given /// \code @@ -913,7 +913,7 @@ return false; } -/// \brief Matches a TemplateArgument that is an integral value. +/// Matches a TemplateArgument that is an integral value. /// /// Given /// \code @@ -928,7 +928,7 @@ return Node.getKind() == TemplateArgument::Integral; } -/// \brief Matches a TemplateArgument that referes to an integral type. +/// Matches a TemplateArgument that referes to an integral type. /// /// Given /// \code @@ -945,7 +945,7 @@ return InnerMatcher.matches(Node.getIntegralType(), Finder, Builder); } -/// \brief Matches a TemplateArgument of integral type with a given value. +/// Matches a TemplateArgument of integral type with a given value. /// /// Note that 'Value' is a string as the template argument's value is /// an arbitrary precision integer. 'Value' must be euqal to the canonical @@ -966,7 +966,7 @@ return Node.getAsIntegral().toString(10) == Value; } -/// \brief Matches any value declaration. +/// Matches any value declaration. /// /// Example matches A, B, C and F /// \code @@ -975,7 +975,7 @@ /// \endcode extern const internal::VariadicDynCastAllOfMatcher<Decl, ValueDecl> valueDecl; -/// \brief Matches C++ constructor declarations. +/// Matches C++ constructor declarations. /// /// Example matches Foo::Foo() and Foo::Foo(int) /// \code @@ -989,7 +989,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, CXXConstructorDecl> cxxConstructorDecl; -/// \brief Matches explicit C++ destructor declarations. +/// Matches explicit C++ destructor declarations. /// /// Example matches Foo::~Foo() /// \code @@ -1001,7 +1001,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, CXXDestructorDecl> cxxDestructorDecl; -/// \brief Matches enum declarations. +/// Matches enum declarations. /// /// Example matches X /// \code @@ -1011,7 +1011,7 @@ /// \endcode extern const internal::VariadicDynCastAllOfMatcher<Decl, EnumDecl> enumDecl; -/// \brief Matches enum constants. +/// Matches enum constants. /// /// Example matches A, B, C /// \code @@ -1022,7 +1022,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, EnumConstantDecl> enumConstantDecl; -/// \brief Matches method declarations. +/// Matches method declarations. /// /// Example matches y /// \code @@ -1031,7 +1031,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, CXXMethodDecl> cxxMethodDecl; -/// \brief Matches conversion operator declarations. +/// Matches conversion operator declarations. /// /// Example matches the operator. /// \code @@ -1040,7 +1040,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, CXXConversionDecl> cxxConversionDecl; -/// \brief Matches variable declarations. +/// Matches variable declarations. /// /// Note: this does not match declarations of member variables, which are /// "field" declarations in Clang parlance. @@ -1051,7 +1051,7 @@ /// \endcode extern const internal::VariadicDynCastAllOfMatcher<Decl, VarDecl> varDecl; -/// \brief Matches field declarations. +/// Matches field declarations. /// /// Given /// \code @@ -1061,7 +1061,7 @@ /// matches 'm'. extern const internal::VariadicDynCastAllOfMatcher<Decl, FieldDecl> fieldDecl; -/// \brief Matches function declarations. +/// Matches function declarations. /// /// Example matches f /// \code @@ -1070,7 +1070,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, FunctionDecl> functionDecl; -/// \brief Matches C++ function template declarations. +/// Matches C++ function template declarations. /// /// Example matches f /// \code @@ -1079,7 +1079,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, FunctionTemplateDecl> functionTemplateDecl; -/// \brief Matches friend declarations. +/// Matches friend declarations. /// /// Given /// \code @@ -1089,7 +1089,7 @@ /// matches 'friend void foo()'. extern const internal::VariadicDynCastAllOfMatcher<Decl, FriendDecl> friendDecl; -/// \brief Matches statements. +/// Matches statements. /// /// Given /// \code @@ -1099,7 +1099,7 @@ /// matches both the compound statement '{ ++a; }' and '++a'. extern const internal::VariadicAllOfMatcher<Stmt> stmt; -/// \brief Matches declaration statements. +/// Matches declaration statements. /// /// Given /// \code @@ -1109,7 +1109,7 @@ /// matches 'int a'. extern const internal::VariadicDynCastAllOfMatcher<Stmt, DeclStmt> declStmt; -/// \brief Matches member expressions. +/// Matches member expressions. /// /// Given /// \code @@ -1122,7 +1122,7 @@ /// matches this->x, x, y.x, a, this->b extern const internal::VariadicDynCastAllOfMatcher<Stmt, MemberExpr> memberExpr; -/// \brief Matches call expressions. +/// Matches call expressions. /// /// Example matches x.y() and y() /// \code @@ -1132,7 +1132,7 @@ /// \endcode extern const internal::VariadicDynCastAllOfMatcher<Stmt, CallExpr> callExpr; -/// \brief Matches lambda expressions. +/// Matches lambda expressions. /// /// Example matches [&](){return 5;} /// \code @@ -1140,7 +1140,7 @@ /// \endcode extern const internal::VariadicDynCastAllOfMatcher<Stmt, LambdaExpr> lambdaExpr; -/// \brief Matches member call expressions. +/// Matches member call expressions. /// /// Example matches x.y() /// \code @@ -1150,7 +1150,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXMemberCallExpr> cxxMemberCallExpr; -/// \brief Matches ObjectiveC Message invocation expressions. +/// Matches ObjectiveC Message invocation expressions. /// /// The innermost message send invokes the "alloc" class method on the /// NSString class, while the outermost message send invokes the @@ -1162,7 +1162,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, ObjCMessageExpr> objcMessageExpr; -/// \brief Matches Objective-C interface declarations. +/// Matches Objective-C interface declarations. /// /// Example matches Foo /// \code @@ -1172,7 +1172,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, ObjCInterfaceDecl> objcInterfaceDecl; -/// \brief Matches Objective-C implementation declarations. +/// Matches Objective-C implementation declarations. /// /// Example matches Foo /// \code @@ -1182,7 +1182,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, ObjCImplementationDecl> objcImplementationDecl; -/// \brief Matches Objective-C protocol declarations. +/// Matches Objective-C protocol declarations. /// /// Example matches FooDelegate /// \code @@ -1192,7 +1192,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, ObjCProtocolDecl> objcProtocolDecl; -/// \brief Matches Objective-C category declarations. +/// Matches Objective-C category declarations. /// /// Example matches Foo (Additions) /// \code @@ -1202,7 +1202,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, ObjCCategoryDecl> objcCategoryDecl; -/// \brief Matches Objective-C category definitions. +/// Matches Objective-C category definitions. /// /// Example matches Foo (Additions) /// \code @@ -1212,7 +1212,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, ObjCCategoryImplDecl> objcCategoryImplDecl; -/// \brief Matches Objective-C method declarations. +/// Matches Objective-C method declarations. /// /// Example matches both declaration and definition of -[Foo method] /// \code @@ -1227,7 +1227,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, ObjCMethodDecl> objcMethodDecl; -/// \brief Matches Objective-C instance variable declarations. +/// Matches Objective-C instance variable declarations. /// /// Example matches _enabled /// \code @@ -1239,7 +1239,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, ObjCIvarDecl> objcIvarDecl; -/// \brief Matches Objective-C property declarations. +/// Matches Objective-C property declarations. /// /// Example matches enabled /// \code @@ -1250,7 +1250,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, ObjCPropertyDecl> objcPropertyDecl; -/// \brief Matches Objective-C \@throw statements. +/// Matches Objective-C \@throw statements. /// /// Example matches \@throw /// \code @@ -1259,7 +1259,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, ObjCAtThrowStmt> objcThrowStmt; -/// \brief Matches Objective-C @try statements. +/// Matches Objective-C @try statements. /// /// Example matches @try /// \code @@ -1269,7 +1269,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, ObjCAtTryStmt> objcTryStmt; -/// \brief Matches Objective-C @catch statements. +/// Matches Objective-C @catch statements. /// /// Example matches @catch /// \code @@ -1279,7 +1279,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, ObjCAtCatchStmt> objcCatchStmt; -/// \brief Matches Objective-C @finally statements. +/// Matches Objective-C @finally statements. /// /// Example matches @finally /// \code @@ -1289,7 +1289,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, ObjCAtFinallyStmt> objcFinallyStmt; -/// \brief Matches expressions that introduce cleanups to be run at the end +/// Matches expressions that introduce cleanups to be run at the end /// of the sub-expression's evaluation. /// /// Example matches std::string() @@ -1299,7 +1299,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, ExprWithCleanups> exprWithCleanups; -/// \brief Matches init list expressions. +/// Matches init list expressions. /// /// Given /// \code @@ -1312,7 +1312,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, InitListExpr> initListExpr; -/// \brief Matches the syntactic form of init list expressions +/// Matches the syntactic form of init list expressions /// (if expression have it). AST_MATCHER_P(InitListExpr, hasSyntacticForm, internal::Matcher<Expr>, InnerMatcher) { @@ -1321,7 +1321,7 @@ InnerMatcher.matches(*SyntForm, Finder, Builder)); } -/// \brief Matches C++ initializer list expressions. +/// Matches C++ initializer list expressions. /// /// Given /// \code @@ -1336,7 +1336,7 @@ CXXStdInitializerListExpr> cxxStdInitializerListExpr; -/// \brief Matches implicit initializers of init list expressions. +/// Matches implicit initializers of init list expressions. /// /// Given /// \code @@ -1347,7 +1347,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, ImplicitValueInitExpr> implicitValueInitExpr; -/// \brief Matches paren list expressions. +/// Matches paren list expressions. /// ParenListExprs don't have a predefined type and are used for late parsing. /// In the final AST, they can be met in template declarations. /// @@ -1365,7 +1365,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, ParenListExpr> parenListExpr; -/// \brief Matches substitutions of non-type template parameters. +/// Matches substitutions of non-type template parameters. /// /// Given /// \code @@ -1379,7 +1379,7 @@ SubstNonTypeTemplateParmExpr> substNonTypeTemplateParmExpr; -/// \brief Matches using declarations. +/// Matches using declarations. /// /// Given /// \code @@ -1390,7 +1390,7 @@ /// matches \code using X::x \endcode extern const internal::VariadicDynCastAllOfMatcher<Decl, UsingDecl> usingDecl; -/// \brief Matches using namespace declarations. +/// Matches using namespace declarations. /// /// Given /// \code @@ -1402,7 +1402,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, UsingDirectiveDecl> usingDirectiveDecl; -/// \brief Matches reference to a name that can be looked up during parsing +/// Matches reference to a name that can be looked up during parsing /// but could not be resolved to a specific declaration. /// /// Given @@ -1419,7 +1419,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, UnresolvedLookupExpr> unresolvedLookupExpr; -/// \brief Matches unresolved using value declarations. +/// Matches unresolved using value declarations. /// /// Given /// \code @@ -1434,7 +1434,7 @@ UnresolvedUsingValueDecl> unresolvedUsingValueDecl; -/// \brief Matches unresolved using value declarations that involve the +/// Matches unresolved using value declarations that involve the /// typename. /// /// Given @@ -1453,7 +1453,7 @@ UnresolvedUsingTypenameDecl> unresolvedUsingTypenameDecl; -/// \brief Matches parentheses used in expressions. +/// Matches parentheses used in expressions. /// /// Example matches (foo() + 1) /// \code @@ -1462,7 +1462,7 @@ /// \endcode extern const internal::VariadicDynCastAllOfMatcher<Stmt, ParenExpr> parenExpr; -/// \brief Matches constructor call expressions (including implicit ones). +/// Matches constructor call expressions (including implicit ones). /// /// Example matches string(ptr, n) and ptr within arguments of f /// (matcher = cxxConstructExpr()) @@ -1475,7 +1475,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXConstructExpr> cxxConstructExpr; -/// \brief Matches unresolved constructor call expressions. +/// Matches unresolved constructor call expressions. /// /// Example matches T(t) in return statement of f /// (matcher = cxxUnresolvedConstructExpr()) @@ -1487,7 +1487,7 @@ CXXUnresolvedConstructExpr> cxxUnresolvedConstructExpr; -/// \brief Matches implicit and explicit this expressions. +/// Matches implicit and explicit this expressions. /// /// Example matches the implicit this expression in "return i". /// (matcher = cxxThisExpr()) @@ -1500,7 +1500,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXThisExpr> cxxThisExpr; -/// \brief Matches nodes where temporaries are created. +/// Matches nodes where temporaries are created. /// /// Example matches FunctionTakesString(GetStringByValue()) /// (matcher = cxxBindTemporaryExpr()) @@ -1511,7 +1511,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXBindTemporaryExpr> cxxBindTemporaryExpr; -/// \brief Matches nodes where temporaries are materialized. +/// Matches nodes where temporaries are materialized. /// /// Example: Given /// \code @@ -1533,7 +1533,7 @@ MaterializeTemporaryExpr> materializeTemporaryExpr; -/// \brief Matches new expressions. +/// Matches new expressions. /// /// Given /// \code @@ -1543,7 +1543,7 @@ /// matches 'new X'. extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXNewExpr> cxxNewExpr; -/// \brief Matches delete expressions. +/// Matches delete expressions. /// /// Given /// \code @@ -1554,7 +1554,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXDeleteExpr> cxxDeleteExpr; -/// \brief Matches array subscript expressions. +/// Matches array subscript expressions. /// /// Given /// \code @@ -1565,7 +1565,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, ArraySubscriptExpr> arraySubscriptExpr; -/// \brief Matches the value of a default argument at the call site. +/// Matches the value of a default argument at the call site. /// /// Example matches the CXXDefaultArgExpr placeholder inserted for the /// default value of the second parameter in the call expression f(42) @@ -1577,7 +1577,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXDefaultArgExpr> cxxDefaultArgExpr; -/// \brief Matches overloaded operator calls. +/// Matches overloaded operator calls. /// /// Note that if an operator isn't overloaded, it won't match. Instead, use /// binaryOperator matcher. @@ -1594,7 +1594,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXOperatorCallExpr> cxxOperatorCallExpr; -/// \brief Matches expressions. +/// Matches expressions. /// /// Example matches x() /// \code @@ -1602,7 +1602,7 @@ /// \endcode extern const internal::VariadicDynCastAllOfMatcher<Stmt, Expr> expr; -/// \brief Matches expressions that refer to declarations. +/// Matches expressions that refer to declarations. /// /// Example matches x in if (x) /// \code @@ -1612,7 +1612,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, DeclRefExpr> declRefExpr; -/// \brief Matches if statements. +/// Matches if statements. /// /// Example matches 'if (x) {}' /// \code @@ -1620,7 +1620,7 @@ /// \endcode extern const internal::VariadicDynCastAllOfMatcher<Stmt, IfStmt> ifStmt; -/// \brief Matches for statements. +/// Matches for statements. /// /// Example matches 'for (;;) {}' /// \code @@ -1629,7 +1629,7 @@ /// \endcode extern const internal::VariadicDynCastAllOfMatcher<Stmt, ForStmt> forStmt; -/// \brief Matches the increment statement of a for loop. +/// Matches the increment statement of a for loop. /// /// Example: /// forStmt(hasIncrement(unaryOperator(hasOperatorName("++")))) @@ -1644,7 +1644,7 @@ InnerMatcher.matches(*Increment, Finder, Builder)); } -/// \brief Matches the initialization statement of a for loop. +/// Matches the initialization statement of a for loop. /// /// Example: /// forStmt(hasLoopInit(declStmt())) @@ -1658,7 +1658,7 @@ return (Init != nullptr && InnerMatcher.matches(*Init, Finder, Builder)); } -/// \brief Matches range-based for statements. +/// Matches range-based for statements. /// /// cxxForRangeStmt() matches 'for (auto a : i)' /// \code @@ -1668,7 +1668,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXForRangeStmt> cxxForRangeStmt; -/// \brief Matches the initialization statement of a for loop. +/// Matches the initialization statement of a for loop. /// /// Example: /// forStmt(hasLoopVariable(anything())) @@ -1682,7 +1682,7 @@ return (Var != nullptr && InnerMatcher.matches(*Var, Finder, Builder)); } -/// \brief Matches the range initialization statement of a for loop. +/// Matches the range initialization statement of a for loop. /// /// Example: /// forStmt(hasRangeInit(anything())) @@ -1696,7 +1696,7 @@ return (Init != nullptr && InnerMatcher.matches(*Init, Finder, Builder)); } -/// \brief Matches while statements. +/// Matches while statements. /// /// Given /// \code @@ -1706,7 +1706,7 @@ /// matches 'while (true) {}'. extern const internal::VariadicDynCastAllOfMatcher<Stmt, WhileStmt> whileStmt; -/// \brief Matches do statements. +/// Matches do statements. /// /// Given /// \code @@ -1716,7 +1716,7 @@ /// matches 'do {} while(true)' extern const internal::VariadicDynCastAllOfMatcher<Stmt, DoStmt> doStmt; -/// \brief Matches break statements. +/// Matches break statements. /// /// Given /// \code @@ -1726,7 +1726,7 @@ /// matches 'break' extern const internal::VariadicDynCastAllOfMatcher<Stmt, BreakStmt> breakStmt; -/// \brief Matches continue statements. +/// Matches continue statements. /// /// Given /// \code @@ -1737,7 +1737,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, ContinueStmt> continueStmt; -/// \brief Matches return statements. +/// Matches return statements. /// /// Given /// \code @@ -1747,7 +1747,7 @@ /// matches 'return 1' extern const internal::VariadicDynCastAllOfMatcher<Stmt, ReturnStmt> returnStmt; -/// \brief Matches goto statements. +/// Matches goto statements. /// /// Given /// \code @@ -1758,7 +1758,7 @@ /// matches 'goto FOO' extern const internal::VariadicDynCastAllOfMatcher<Stmt, GotoStmt> gotoStmt; -/// \brief Matches label statements. +/// Matches label statements. /// /// Given /// \code @@ -1769,7 +1769,7 @@ /// matches 'FOO:' extern const internal::VariadicDynCastAllOfMatcher<Stmt, LabelStmt> labelStmt; -/// \brief Matches address of label statements (GNU extension). +/// Matches address of label statements (GNU extension). /// /// Given /// \code @@ -1782,7 +1782,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, AddrLabelExpr> addrLabelExpr; -/// \brief Matches switch statements. +/// Matches switch statements. /// /// Given /// \code @@ -1792,7 +1792,7 @@ /// matches 'switch(a)'. extern const internal::VariadicDynCastAllOfMatcher<Stmt, SwitchStmt> switchStmt; -/// \brief Matches case and default statements inside switch statements. +/// Matches case and default statements inside switch statements. /// /// Given /// \code @@ -1802,7 +1802,7 @@ /// matches 'case 42:' and 'default:'. extern const internal::VariadicDynCastAllOfMatcher<Stmt, SwitchCase> switchCase; -/// \brief Matches case statements inside switch statements. +/// Matches case statements inside switch statements. /// /// Given /// \code @@ -1812,7 +1812,7 @@ /// matches 'case 42:'. extern const internal::VariadicDynCastAllOfMatcher<Stmt, CaseStmt> caseStmt; -/// \brief Matches default statements inside switch statements. +/// Matches default statements inside switch statements. /// /// Given /// \code @@ -1823,7 +1823,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, DefaultStmt> defaultStmt; -/// \brief Matches compound statements. +/// Matches compound statements. /// /// Example matches '{}' and '{{}}' in 'for (;;) {{}}' /// \code @@ -1832,7 +1832,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, CompoundStmt> compoundStmt; -/// \brief Matches catch statements. +/// Matches catch statements. /// /// \code /// try {} catch(int i) {} @@ -1842,7 +1842,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXCatchStmt> cxxCatchStmt; -/// \brief Matches try statements. +/// Matches try statements. /// /// \code /// try {} catch(int i) {} @@ -1851,7 +1851,7 @@ /// matches 'try {}' extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXTryStmt> cxxTryStmt; -/// \brief Matches throw expressions. +/// Matches throw expressions. /// /// \code /// try { throw 5; } catch(int i) {} @@ -1861,7 +1861,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXThrowExpr> cxxThrowExpr; -/// \brief Matches null statements. +/// Matches null statements. /// /// \code /// foo();; @@ -1870,7 +1870,7 @@ /// matches the second ';' extern const internal::VariadicDynCastAllOfMatcher<Stmt, NullStmt> nullStmt; -/// \brief Matches asm statements. +/// Matches asm statements. /// /// \code /// int i = 100; @@ -1880,7 +1880,7 @@ /// matches '__asm("mov al, 2")' extern const internal::VariadicDynCastAllOfMatcher<Stmt, AsmStmt> asmStmt; -/// \brief Matches bool literals. +/// Matches bool literals. /// /// Example matches true /// \code @@ -1889,7 +1889,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXBoolLiteralExpr> cxxBoolLiteral; -/// \brief Matches string literals (also matches wide string literals). +/// Matches string literals (also matches wide string literals). /// /// Example matches "abcd", L"abcd" /// \code @@ -1899,7 +1899,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, StringLiteral> stringLiteral; -/// \brief Matches character literals (also matches wchar_t). +/// Matches character literals (also matches wchar_t). /// /// Not matching Hex-encoded chars (e.g. 0x1234, which is a IntegerLiteral), /// though. @@ -1912,14 +1912,14 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, CharacterLiteral> characterLiteral; -/// \brief Matches integer literals of all sizes / encodings, e.g. +/// Matches integer literals of all sizes / encodings, e.g. /// 1, 1L, 0x1 and 1U. /// /// Does not match character-encoded integers such as L'a'. extern const internal::VariadicDynCastAllOfMatcher<Stmt, IntegerLiteral> integerLiteral; -/// \brief Matches float literals of all sizes / encodings, e.g. +/// Matches float literals of all sizes / encodings, e.g. /// 1.0, 1.0f, 1.0L and 1e10. /// /// Does not match implicit conversions such as @@ -1929,13 +1929,13 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, FloatingLiteral> floatLiteral; -/// \brief Matches user defined literal operator call. +/// Matches user defined literal operator call. /// /// Example match: "foo"_suffix extern const internal::VariadicDynCastAllOfMatcher<Stmt, UserDefinedLiteral> userDefinedLiteral; -/// \brief Matches compound (i.e. non-scalar) literals +/// Matches compound (i.e. non-scalar) literals /// /// Example match: {1}, (1, 2) /// \code @@ -1945,22 +1945,22 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, CompoundLiteralExpr> compoundLiteralExpr; -/// \brief Matches nullptr literal. +/// Matches nullptr literal. extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXNullPtrLiteralExpr> cxxNullPtrLiteralExpr; -/// \brief Matches GNU __null expression. +/// Matches GNU __null expression. extern const internal::VariadicDynCastAllOfMatcher<Stmt, GNUNullExpr> gnuNullExpr; -/// \brief Matches atomic builtins. +/// Matches atomic builtins. /// Example matches __atomic_load_n(ptr, 1) /// \code /// void foo() { int *ptr; __atomic_load_n(ptr, 1); } /// \endcode extern const internal::VariadicDynCastAllOfMatcher<Stmt, AtomicExpr> atomicExpr; -/// \brief Matches statement expression (GNU extension). +/// Matches statement expression (GNU extension). /// /// Example match: ({ int X = 4; X; }) /// \code @@ -1968,7 +1968,7 @@ /// \endcode extern const internal::VariadicDynCastAllOfMatcher<Stmt, StmtExpr> stmtExpr; -/// \brief Matches binary operator expressions. +/// Matches binary operator expressions. /// /// Example matches a || b /// \code @@ -1977,7 +1977,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, BinaryOperator> binaryOperator; -/// \brief Matches unary operator expressions. +/// Matches unary operator expressions. /// /// Example matches !a /// \code @@ -1986,7 +1986,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, UnaryOperator> unaryOperator; -/// \brief Matches conditional operator expressions. +/// Matches conditional operator expressions. /// /// Example matches a ? b : c /// \code @@ -1995,7 +1995,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, ConditionalOperator> conditionalOperator; -/// \brief Matches binary conditional operator expressions (GNU extension). +/// Matches binary conditional operator expressions (GNU extension). /// /// Example matches a ?: b /// \code @@ -2005,7 +2005,7 @@ BinaryConditionalOperator> binaryConditionalOperator; -/// \brief Matches opaque value expressions. They are used as helpers +/// Matches opaque value expressions. They are used as helpers /// to reference another expressions and can be met /// in BinaryConditionalOperators, for example. /// @@ -2016,7 +2016,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, OpaqueValueExpr> opaqueValueExpr; -/// \brief Matches a C++ static_assert declaration. +/// Matches a C++ static_assert declaration. /// /// Example: /// staticAssertExpr() @@ -2032,7 +2032,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Decl, StaticAssertDecl> staticAssertDecl; -/// \brief Matches a reinterpret_cast expression. +/// Matches a reinterpret_cast expression. /// /// Either the source expression or the destination type can be matched /// using has(), but hasDestinationType() is more specific and can be @@ -2045,7 +2045,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXReinterpretCastExpr> cxxReinterpretCastExpr; -/// \brief Matches a C++ static_cast expression. +/// Matches a C++ static_cast expression. /// /// \see hasDestinationType /// \see reinterpretCast @@ -2061,7 +2061,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXStaticCastExpr> cxxStaticCastExpr; -/// \brief Matches a dynamic_cast expression. +/// Matches a dynamic_cast expression. /// /// Example: /// cxxDynamicCastExpr() @@ -2076,7 +2076,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXDynamicCastExpr> cxxDynamicCastExpr; -/// \brief Matches a const_cast expression. +/// Matches a const_cast expression. /// /// Example: Matches const_cast<int*>(&r) in /// \code @@ -2087,7 +2087,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXConstCastExpr> cxxConstCastExpr; -/// \brief Matches a C-style cast expression. +/// Matches a C-style cast expression. /// /// Example: Matches (int) 2.2f in /// \code @@ -2096,7 +2096,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, CStyleCastExpr> cStyleCastExpr; -/// \brief Matches explicit cast expressions. +/// Matches explicit cast expressions. /// /// Matches any cast expression written in user code, whether it be a /// C-style cast, a functional-style cast, or a keyword cast. @@ -2120,14 +2120,14 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, ExplicitCastExpr> explicitCastExpr; -/// \brief Matches the implicit cast nodes of Clang's AST. +/// Matches the implicit cast nodes of Clang's AST. /// /// This matches many different places, including function call return value /// eliding, as well as any type conversions. extern const internal::VariadicDynCastAllOfMatcher<Stmt, ImplicitCastExpr> implicitCastExpr; -/// \brief Matches any cast nodes of Clang's AST. +/// Matches any cast nodes of Clang's AST. /// /// Example: castExpr() matches each of the following: /// \code @@ -2142,7 +2142,7 @@ /// \endcode extern const internal::VariadicDynCastAllOfMatcher<Stmt, CastExpr> castExpr; -/// \brief Matches functional cast expressions +/// Matches functional cast expressions /// /// Example: Matches Foo(bar); /// \code @@ -2153,7 +2153,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXFunctionalCastExpr> cxxFunctionalCastExpr; -/// \brief Matches functional cast expressions having N != 1 arguments +/// Matches functional cast expressions having N != 1 arguments /// /// Example: Matches Foo(bar, bar) /// \code @@ -2162,7 +2162,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXTemporaryObjectExpr> cxxTemporaryObjectExpr; -/// \brief Matches predefined identifier expressions [C99 6.4.2.2]. +/// Matches predefined identifier expressions [C99 6.4.2.2]. /// /// Example: Matches __func__ /// \code @@ -2171,7 +2171,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, PredefinedExpr> predefinedExpr; -/// \brief Matches C99 designated initializer expressions [C99 6.7.8]. +/// Matches C99 designated initializer expressions [C99 6.7.8]. /// /// Example: Matches { [2].y = 1.0, [0].x = 1.0 } /// \code @@ -2180,7 +2180,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, DesignatedInitExpr> designatedInitExpr; -/// \brief Matches designated initializer expressions that contain +/// Matches designated initializer expressions that contain /// a specific number of designators. /// /// Example: Given @@ -2195,16 +2195,16 @@ return Node.size() == N; } -/// \brief Matches \c QualTypes in the clang AST. +/// Matches \c QualTypes in the clang AST. extern const internal::VariadicAllOfMatcher<QualType> qualType; -/// \brief Matches \c Types in the clang AST. +/// Matches \c Types in the clang AST. extern const internal::VariadicAllOfMatcher<Type> type; -/// \brief Matches \c TypeLocs in the clang AST. +/// Matches \c TypeLocs in the clang AST. extern const internal::VariadicAllOfMatcher<TypeLoc> typeLoc; -/// \brief Matches if any of the given matchers matches. +/// Matches if any of the given matchers matches. /// /// Unlike \c anyOf, \c eachOf will generate a match result for each /// matching submatcher. @@ -2227,21 +2227,21 @@ 2, std::numeric_limits<unsigned>::max()> eachOf; -/// \brief Matches if any of the given matchers matches. +/// Matches if any of the given matchers matches. /// /// Usable as: Any Matcher extern const internal::VariadicOperatorMatcherFunc< 2, std::numeric_limits<unsigned>::max()> anyOf; -/// \brief Matches if all given matchers match. +/// Matches if all given matchers match. /// /// Usable as: Any Matcher extern const internal::VariadicOperatorMatcherFunc< 2, std::numeric_limits<unsigned>::max()> allOf; -/// \brief Matches sizeof (C99), alignof (C++11) and vec_step (OpenCL) +/// Matches sizeof (C99), alignof (C++11) and vec_step (OpenCL) /// /// Given /// \code @@ -2254,7 +2254,7 @@ UnaryExprOrTypeTraitExpr> unaryExprOrTypeTraitExpr; -/// \brief Matches unary expressions that have a specific type of argument. +/// Matches unary expressions that have a specific type of argument. /// /// Given /// \code @@ -2268,7 +2268,7 @@ return InnerMatcher.matches(ArgumentType, Finder, Builder); } -/// \brief Matches unary expressions of a certain kind. +/// Matches unary expressions of a certain kind. /// /// Given /// \code @@ -2281,7 +2281,7 @@ return Node.getKind() == Kind; } -/// \brief Same as unaryExprOrTypeTraitExpr, but only matching +/// Same as unaryExprOrTypeTraitExpr, but only matching /// alignof. inline internal::Matcher<Stmt> alignOfExpr( const internal::Matcher<UnaryExprOrTypeTraitExpr> &InnerMatcher) { @@ -2289,7 +2289,7 @@ ofKind(UETT_AlignOf), InnerMatcher))); } -/// \brief Same as unaryExprOrTypeTraitExpr, but only matching +/// Same as unaryExprOrTypeTraitExpr, but only matching /// sizeof. inline internal::Matcher<Stmt> sizeOfExpr( const internal::Matcher<UnaryExprOrTypeTraitExpr> &InnerMatcher) { @@ -2297,7 +2297,7 @@ allOf(ofKind(UETT_SizeOf), InnerMatcher))); } -/// \brief Matches NamedDecl nodes that have the specified name. +/// Matches NamedDecl nodes that have the specified name. /// /// Supports specifying enclosing namespaces or classes by prefixing the name /// with '<enclosing>::'. @@ -2316,7 +2316,7 @@ return internal::Matcher<NamedDecl>(new internal::HasNameMatcher({Name})); } -/// \brief Matches NamedDecl nodes that have any of the specified names. +/// Matches NamedDecl nodes that have any of the specified names. /// /// This matcher is only provided as a performance optimization of hasName. /// \code @@ -2330,7 +2330,7 @@ internal::hasAnyNameFunc> hasAnyName; -/// \brief Matches NamedDecl nodes whose fully qualified names contain +/// Matches NamedDecl nodes whose fully qualified names contain /// a substring matched by the given RegExp. /// /// Supports specifying enclosing namespaces or classes by @@ -2353,7 +2353,7 @@ return RE.match(FullNameString); } -/// \brief Matches overloaded operator names. +/// Matches overloaded operator names. /// /// Matches overloaded operator names specified in strings without the /// "operator" prefix: e.g. "<<". @@ -2381,7 +2381,7 @@ AST_POLYMORPHIC_SUPPORTED_TYPES(CXXOperatorCallExpr, FunctionDecl)>(Name); } -/// \brief Matches C++ classes that are directly or indirectly derived from +/// Matches C++ classes that are directly or indirectly derived from /// a class matching \c Base. /// /// Note that a class is not considered to be derived from itself. @@ -2407,13 +2407,13 @@ return Finder->classIsDerivedFrom(&Node, Base, Builder); } -/// \brief Overloaded method as shortcut for \c isDerivedFrom(hasName(...)). +/// Overloaded method as shortcut for \c isDerivedFrom(hasName(...)). AST_MATCHER_P_OVERLOAD(CXXRecordDecl, isDerivedFrom, std::string, BaseName, 1) { assert(!BaseName.empty()); return isDerivedFrom(hasName(BaseName)).matches(Node, Finder, Builder); } -/// \brief Similar to \c isDerivedFrom(), but also matches classes that directly +/// Similar to \c isDerivedFrom(), but also matches classes that directly /// match \c Base. AST_MATCHER_P_OVERLOAD(CXXRecordDecl, isSameOrDerivedFrom, internal::Matcher<NamedDecl>, Base, 0) { @@ -2421,7 +2421,7 @@ .matches(Node, Finder, Builder); } -/// \brief Overloaded method as shortcut for +/// Overloaded method as shortcut for /// \c isSameOrDerivedFrom(hasName(...)). AST_MATCHER_P_OVERLOAD(CXXRecordDecl, isSameOrDerivedFrom, std::string, BaseName, 1) { @@ -2429,7 +2429,7 @@ return isSameOrDerivedFrom(hasName(BaseName)).matches(Node, Finder, Builder); } -/// \brief Matches the first method of a class or struct that satisfies \c +/// Matches the first method of a class or struct that satisfies \c /// InnerMatcher. /// /// Given: @@ -2446,7 +2446,7 @@ Node.method_end(), Finder, Builder); } -/// \brief Matches the generated class of lambda expressions. +/// Matches the generated class of lambda expressions. /// /// Given: /// \code @@ -2459,7 +2459,7 @@ return Node.isLambda(); } -/// \brief Matches AST nodes that have child AST nodes that match the +/// Matches AST nodes that have child AST nodes that match the /// provided matcher. /// /// Example matches X, Y @@ -2479,7 +2479,7 @@ /// has(ignoringParenImpCasts(expr())). extern const internal::ArgumentAdaptingMatcherFunc<internal::HasMatcher> has; -/// \brief Matches AST nodes that have descendant AST nodes that match the +/// Matches AST nodes that have descendant AST nodes that match the /// provided matcher. /// /// Example matches X, Y, Z @@ -2497,7 +2497,7 @@ internal::HasDescendantMatcher> hasDescendant; -/// \brief Matches AST nodes that have child AST nodes that match the +/// Matches AST nodes that have child AST nodes that match the /// provided matcher. /// /// Example matches X, Y, Y::X, Z::Y, Z::Y::X @@ -2518,7 +2518,7 @@ extern const internal::ArgumentAdaptingMatcherFunc<internal::ForEachMatcher> forEach; -/// \brief Matches AST nodes that have descendant AST nodes that match the +/// Matches AST nodes that have descendant AST nodes that match the /// provided matcher. /// /// Example matches X, A, A::X, B, B::C, B::C::X @@ -2549,7 +2549,7 @@ internal::ForEachDescendantMatcher> forEachDescendant; -/// \brief Matches if the node or any descendant matches. +/// Matches if the node or any descendant matches. /// /// Generates results for each match. /// @@ -2570,7 +2570,7 @@ return eachOf(Matcher, forEachDescendant(Matcher)); } -/// \brief Matches AST nodes that have a parent that matches the provided +/// Matches AST nodes that have a parent that matches the provided /// matcher. /// /// Given @@ -2586,7 +2586,7 @@ internal::TypeList<Decl, NestedNameSpecifierLoc, Stmt, TypeLoc>> hasParent; -/// \brief Matches AST nodes that have an ancestor that matches the provided +/// Matches AST nodes that have an ancestor that matches the provided /// matcher. /// /// Given @@ -2603,7 +2603,7 @@ internal::TypeList<Decl, NestedNameSpecifierLoc, Stmt, TypeLoc>> hasAncestor; -/// \brief Matches if the provided matcher does not match. +/// Matches if the provided matcher does not match. /// /// Example matches Y (matcher = cxxRecordDecl(unless(hasName("X")))) /// \code @@ -2614,7 +2614,7 @@ /// Usable as: Any Matcher extern const internal::VariadicOperatorMatcherFunc<1, 1> unless; -/// \brief Matches a node if the declaration associated with that node +/// Matches a node if the declaration associated with that node /// matches the given matcher. /// /// The associated declaration is: @@ -2656,7 +2656,7 @@ void(internal::HasDeclarationSupportedTypes)>(InnerMatcher); } -/// \brief Matches a \c NamedDecl whose underlying declaration matches the given +/// Matches a \c NamedDecl whose underlying declaration matches the given /// matcher. /// /// Given @@ -2675,7 +2675,7 @@ InnerMatcher.matches(*UnderlyingDecl, Finder, Builder); } -/// \brief Matches on the implicit object argument of a member call expression. +/// Matches on the implicit object argument of a member call expression. /// /// Example matches y.x() /// (matcher = cxxMemberCallExpr(on(hasType(cxxRecordDecl(hasName("Y")))))) @@ -2694,7 +2694,7 @@ } -/// \brief Matches on the receiver of an ObjectiveC Message expression. +/// Matches on the receiver of an ObjectiveC Message expression. /// /// Example /// matcher = objCMessageExpr(hasReceiverType(asString("UIWebView *"))); @@ -2710,7 +2710,7 @@ return InnerMatcher.matches(TypeDecl, Finder, Builder); } -/// \brief Matches when BaseName == Selector.getAsString() +/// Matches when BaseName == Selector.getAsString() /// /// matcher = objCMessageExpr(hasSelector("loadHTMLString:baseURL:")); /// matches the outer message expr in the code below, but NOT the message @@ -2724,7 +2724,7 @@ } -/// \brief Matches when at least one of the supplied string equals to the +/// Matches when at least one of the supplied string equals to the /// Selector.getAsString() /// /// matcher = objCMessageExpr(hasSelector("methodA:", "methodB:")); @@ -2738,7 +2738,7 @@ internal::hasAnySelectorFunc> hasAnySelector; -/// \brief Matches ObjC selectors whose name contains +/// Matches ObjC selectors whose name contains /// a substring matched by the given RegExp. /// matcher = objCMessageExpr(matchesSelector("loadHTMLString\:baseURL?")); /// matches the outer message expr in the code below, but NOT the message @@ -2753,7 +2753,7 @@ return RE.match(SelectorString); } -/// \brief Matches when the selector is the empty selector +/// Matches when the selector is the empty selector /// /// Matches only when the selector of the objCMessageExpr is NULL. This may /// represent an error condition in the tree! @@ -2761,7 +2761,7 @@ return Node.getSelector().isNull(); } -/// \brief Matches when the selector is a Unary Selector +/// Matches when the selector is a Unary Selector /// /// matcher = objCMessageExpr(matchesSelector(hasUnarySelector()); /// matches self.bodyView in the code below, but NOT the outer message @@ -2773,7 +2773,7 @@ return Node.getSelector().isUnarySelector(); } -/// \brief Matches when the selector is a keyword selector +/// Matches when the selector is a keyword selector /// /// objCMessageExpr(hasKeywordSelector()) matches the generated setFrame /// message expression in @@ -2789,7 +2789,7 @@ return Node.getSelector().isKeywordSelector(); } -/// \brief Matches when the selector has the specified number of arguments +/// Matches when the selector has the specified number of arguments /// /// matcher = objCMessageExpr(numSelectorArgs(0)); /// matches self.bodyView in the code below @@ -2804,7 +2804,7 @@ return Node.getSelector().getNumArgs() == N; } -/// \brief Matches if the call expression's callee expression matches. +/// Matches if the call expression's callee expression matches. /// /// Given /// \code @@ -2827,7 +2827,7 @@ InnerMatcher.matches(*ExprNode, Finder, Builder)); } -/// \brief Matches if the call expression's callee's declaration matches the +/// Matches if the call expression's callee's declaration matches the /// given matcher. /// /// Example matches y.x() (matcher = callExpr(callee( @@ -2841,7 +2841,7 @@ return callExpr(hasDeclaration(InnerMatcher)).matches(Node, Finder, Builder); } -/// \brief Matches if the expression's or declaration's type matches a type +/// Matches if the expression's or declaration's type matches a type /// matcher. /// /// Example matches x (matcher = expr(hasType(cxxRecordDecl(hasName("X"))))) @@ -2861,7 +2861,7 @@ return false; } -/// \brief Overloaded to match the declaration of the expression's or value +/// Overloaded to match the declaration of the expression's or value /// declaration's type. /// /// In case of a value declaration (for example a variable declaration), @@ -2886,7 +2886,7 @@ .matches(Node.getType(), Finder, Builder); } -/// \brief Matches if the type location of the declarator decl's type matches +/// Matches if the type location of the declarator decl's type matches /// the inner matcher. /// /// Given @@ -2902,7 +2902,7 @@ return Inner.matches(Node.getTypeSourceInfo()->getTypeLoc(), Finder, Builder); } -/// \brief Matches if the matched type is represented by the given string. +/// Matches if the matched type is represented by the given string. /// /// Given /// \code @@ -2915,7 +2915,7 @@ return Name == Node.getAsString(); } -/// \brief Matches if the matched type is a pointer type and the pointee type +/// Matches if the matched type is a pointer type and the pointee type /// matches the specified matcher. /// /// Example matches y->x() @@ -2932,14 +2932,14 @@ InnerMatcher.matches(Node->getPointeeType(), Finder, Builder)); } -/// \brief Overloaded to match the pointee type's declaration. +/// Overloaded to match the pointee type's declaration. AST_MATCHER_P_OVERLOAD(QualType, pointsTo, internal::Matcher<Decl>, InnerMatcher, 1) { return pointsTo(qualType(hasDeclaration(InnerMatcher))) .matches(Node, Finder, Builder); } -/// \brief Matches if the matched type matches the unqualified desugared +/// Matches if the matched type matches the unqualified desugared /// type of the matched node. /// /// For example, in: @@ -2955,7 +2955,7 @@ Builder); } -/// \brief Matches if the matched type is a reference type and the referenced +/// Matches if the matched type is a reference type and the referenced /// type matches the specified matcher. /// /// Example matches X &x and const X &y @@ -2974,7 +2974,7 @@ InnerMatcher.matches(Node->getPointeeType(), Finder, Builder)); } -/// \brief Matches QualTypes whose canonical type matches InnerMatcher. +/// Matches QualTypes whose canonical type matches InnerMatcher. /// /// Given: /// \code @@ -2993,7 +2993,7 @@ return InnerMatcher.matches(Node.getCanonicalType(), Finder, Builder); } -/// \brief Overloaded to match the referenced type's declaration. +/// Overloaded to match the referenced type's declaration. AST_MATCHER_P_OVERLOAD(QualType, references, internal::Matcher<Decl>, InnerMatcher, 1) { return references(qualType(hasDeclaration(InnerMatcher))) @@ -3007,7 +3007,7 @@ InnerMatcher.matches(*ExprNode, Finder, Builder)); } -/// \brief Matches if the expression's type either matches the specified +/// Matches if the expression's type either matches the specified /// matcher, or is a pointer to a type that matches the InnerMatcher. AST_MATCHER_P_OVERLOAD(CXXMemberCallExpr, thisPointerType, internal::Matcher<QualType>, InnerMatcher, 0) { @@ -3016,7 +3016,7 @@ .matches(Node, Finder, Builder); } -/// \brief Overloaded to match the type's declaration. +/// Overloaded to match the type's declaration. AST_MATCHER_P_OVERLOAD(CXXMemberCallExpr, thisPointerType, internal::Matcher<Decl>, InnerMatcher, 1) { return onImplicitObjectArgument( @@ -3024,7 +3024,7 @@ .matches(Node, Finder, Builder); } -/// \brief Matches a DeclRefExpr that refers to a declaration that matches the +/// Matches a DeclRefExpr that refers to a declaration that matches the /// specified matcher. /// /// Example matches x in if(x) @@ -3040,7 +3040,7 @@ InnerMatcher.matches(*DeclNode, Finder, Builder)); } -/// \brief Matches a \c DeclRefExpr that refers to a declaration through a +/// Matches a \c DeclRefExpr that refers to a declaration through a /// specific using shadow declaration. /// /// Given @@ -3062,7 +3062,7 @@ return false; } -/// \brief Matches an \c OverloadExpr if any of the declarations in the set of +/// Matches an \c OverloadExpr if any of the declarations in the set of /// overloads matches the given matcher. /// /// Given @@ -3083,7 +3083,7 @@ Node.decls_end(), Finder, Builder); } -/// \brief Matches the Decl of a DeclStmt which has a single declaration. +/// Matches the Decl of a DeclStmt which has a single declaration. /// /// Given /// \code @@ -3100,7 +3100,7 @@ return false; } -/// \brief Matches a variable declaration that has an initializer expression +/// Matches a variable declaration that has an initializer expression /// that matches the given matcher. /// /// Example matches x (matcher = varDecl(hasInitializer(callExpr()))) @@ -3116,7 +3116,7 @@ InnerMatcher.matches(*Initializer, Finder, Builder)); } -/// \brief Matches a variable declaration that has function scope and is a +/// Matches a variable declaration that has function scope and is a /// non-static local variable. /// /// Example matches x (matcher = varDecl(hasLocalStorage()) @@ -3131,7 +3131,7 @@ return Node.hasLocalStorage(); } -/// \brief Matches a variable declaration that does not have local storage. +/// Matches a variable declaration that does not have local storage. /// /// Example matches y and z (matcher = varDecl(hasGlobalStorage()) /// \code @@ -3145,7 +3145,7 @@ return Node.hasGlobalStorage(); } -/// \brief Matches a variable declaration that has automatic storage duration. +/// Matches a variable declaration that has automatic storage duration. /// /// Example matches x, but not y, z, or a. /// (matcher = varDecl(hasAutomaticStorageDuration()) @@ -3161,7 +3161,7 @@ return Node.getStorageDuration() == SD_Automatic; } -/// \brief Matches a variable declaration that has static storage duration. +/// Matches a variable declaration that has static storage duration. /// It includes the variable declared at namespace scope and those declared /// with "static" and "extern" storage class specifiers. /// @@ -3181,7 +3181,7 @@ return Node.getStorageDuration() == SD_Static; } -/// \brief Matches a variable declaration that has thread storage duration. +/// Matches a variable declaration that has thread storage duration. /// /// Example matches z, but not x, z, or a. /// (matcher = varDecl(hasThreadStorageDuration()) @@ -3197,7 +3197,7 @@ return Node.getStorageDuration() == SD_Thread; } -/// \brief Matches a variable declaration that is an exception variable from +/// Matches a variable declaration that is an exception variable from /// a C++ catch block, or an Objective-C \@catch statement. /// /// Example matches x (matcher = varDecl(isExceptionVariable()) @@ -3212,7 +3212,7 @@ return Node.isExceptionVariable(); } -/// \brief Checks that a call expression or a constructor call expression has +/// Checks that a call expression or a constructor call expression has /// a specific number of arguments (including absent default arguments). /// /// Example matches f(0, 0) (matcher = callExpr(argumentCountIs(2))) @@ -3228,7 +3228,7 @@ return Node.getNumArgs() == N; } -/// \brief Matches the n'th argument of a call expression or a constructor +/// Matches the n'th argument of a call expression or a constructor /// call expression. /// /// Example matches y in x(y) @@ -3246,7 +3246,7 @@ *Node.getArg(N)->IgnoreParenImpCasts(), Finder, Builder)); } -/// \brief Matches declaration statements that contain a specific number of +/// Matches declaration statements that contain a specific number of /// declarations. /// /// Example: Given @@ -3261,7 +3261,7 @@ return std::distance(Node.decl_begin(), Node.decl_end()) == (ptrdiff_t)N; } -/// \brief Matches the n'th declaration of a declaration statement. +/// Matches the n'th declaration of a declaration statement. /// /// Note that this does not work for global declarations because the AST /// breaks up multiple-declaration DeclStmt's into multiple single-declaration @@ -3290,7 +3290,7 @@ return InnerMatcher.matches(**Iterator, Finder, Builder); } -/// \brief Matches a C++ catch statement that has a catch-all handler. +/// Matches a C++ catch statement that has a catch-all handler. /// /// Given /// \code @@ -3307,7 +3307,7 @@ return Node.getExceptionDecl() == nullptr; } -/// \brief Matches a constructor initializer. +/// Matches a constructor initializer. /// /// Given /// \code @@ -3326,7 +3326,7 @@ Node.init_end(), Finder, Builder); } -/// \brief Matches the field declaration of a constructor initializer. +/// Matches the field declaration of a constructor initializer. /// /// Given /// \code @@ -3346,7 +3346,7 @@ InnerMatcher.matches(*NodeAsDecl, Finder, Builder)); } -/// \brief Matches the initializer expression of a constructor initializer. +/// Matches the initializer expression of a constructor initializer. /// /// Given /// \code @@ -3366,7 +3366,7 @@ InnerMatcher.matches(*NodeAsExpr, Finder, Builder)); } -/// \brief Matches a constructor initializer if it is explicitly written in +/// Matches a constructor initializer if it is explicitly written in /// code (as opposed to implicitly added by the compiler). /// /// Given @@ -3383,7 +3383,7 @@ return Node.isWritten(); } -/// \brief Matches a constructor initializer if it is initializing a base, as +/// Matches a constructor initializer if it is initializing a base, as /// opposed to a member. /// /// Given @@ -3403,7 +3403,7 @@ return Node.isBaseInitializer(); } -/// \brief Matches a constructor initializer if it is initializing a member, as +/// Matches a constructor initializer if it is initializing a member, as /// opposed to a base. /// /// Given @@ -3423,7 +3423,7 @@ return Node.isMemberInitializer(); } -/// \brief Matches any argument of a call expression or a constructor call +/// Matches any argument of a call expression or a constructor call /// expression, or an ObjC-message-send expression. /// /// Given @@ -3457,12 +3457,12 @@ return false; } -/// \brief Matches a constructor call expression which uses list initialization. +/// Matches a constructor call expression which uses list initialization. AST_MATCHER(CXXConstructExpr, isListInitialization) { return Node.isListInitialization(); } -/// \brief Matches a constructor call expression which requires +/// Matches a constructor call expression which requires /// zero initialization. /// /// Given @@ -3478,7 +3478,7 @@ return Node.requiresZeroInitialization(); } -/// \brief Matches the n'th parameter of a function or an ObjC method +/// Matches the n'th parameter of a function or an ObjC method /// declaration. /// /// Given @@ -3507,7 +3507,7 @@ && InnerMatcher.matches(*Node.parameters()[N], Finder, Builder)); } -/// \brief Matches all arguments and their respective ParmVarDecl. +/// Matches all arguments and their respective ParmVarDecl. /// /// Given /// \code @@ -3561,7 +3561,7 @@ return Matched; } -/// \brief Matches any parameter of a function or ObjC method declaration. +/// Matches any parameter of a function or ObjC method declaration. /// /// Does not match the 'this' parameter of a method. /// @@ -3591,7 +3591,7 @@ Node.param_end(), Finder, Builder); } -/// \brief Matches \c FunctionDecls and \c FunctionProtoTypes that have a +/// Matches \c FunctionDecls and \c FunctionProtoTypes that have a /// specific parameter count. /// /// Given @@ -3615,7 +3615,7 @@ return Node.getNumParams() == N; } -/// \brief Matches \c FunctionDecls that have a noreturn attribute. +/// Matches \c FunctionDecls that have a noreturn attribute. /// /// Given /// \code @@ -3631,7 +3631,7 @@ /// \endcode AST_MATCHER(FunctionDecl, isNoReturn) { return Node.isNoReturn(); } -/// \brief Matches the return type of a function declaration. +/// Matches the return type of a function declaration. /// /// Given: /// \code @@ -3644,7 +3644,7 @@ return InnerMatcher.matches(Node.getReturnType(), Finder, Builder); } -/// \brief Matches extern "C" function or variable declarations. +/// Matches extern "C" function or variable declarations. /// /// Given: /// \code @@ -3664,7 +3664,7 @@ return Node.isExternC(); } -/// \brief Matches variable/function declarations that have "static" storage +/// Matches variable/function declarations that have "static" storage /// class specifier ("static" keyword) written in the source. /// /// Given: @@ -3684,7 +3684,7 @@ return Node.getStorageClass() == SC_Static; } -/// \brief Matches deleted function declarations. +/// Matches deleted function declarations. /// /// Given: /// \code @@ -3697,7 +3697,7 @@ return Node.isDeleted(); } -/// \brief Matches defaulted function declarations. +/// Matches defaulted function declarations. /// /// Given: /// \code @@ -3710,7 +3710,7 @@ return Node.isDefaulted(); } -/// \brief Matches functions that have a dynamic exception specification. +/// Matches functions that have a dynamic exception specification. /// /// Given: /// \code @@ -3733,7 +3733,7 @@ return false; } -/// \brief Matches functions that have a non-throwing exception specification. +/// Matches functions that have a non-throwing exception specification. /// /// Given: /// \code @@ -3763,7 +3763,7 @@ return FnTy->isNothrow(); } -/// \brief Matches constexpr variable and function declarations, +/// Matches constexpr variable and function declarations, /// and if constexpr. /// /// Given: @@ -3785,7 +3785,7 @@ return Node.isConstexpr(); } -/// \brief Matches the condition expression of an if statement, for loop, +/// Matches the condition expression of an if statement, for loop, /// switch statement or conditional operator. /// /// Example matches true (matcher = hasCondition(cxxBoolLiteral(equals(true)))) @@ -3802,7 +3802,7 @@ InnerMatcher.matches(*Condition, Finder, Builder)); } -/// \brief Matches the then-statement of an if statement. +/// Matches the then-statement of an if statement. /// /// Examples matches the if statement /// (matcher = ifStmt(hasThen(cxxBoolLiteral(equals(true))))) @@ -3814,7 +3814,7 @@ return (Then != nullptr && InnerMatcher.matches(*Then, Finder, Builder)); } -/// \brief Matches the else-statement of an if statement. +/// Matches the else-statement of an if statement. /// /// Examples matches the if statement /// (matcher = ifStmt(hasElse(cxxBoolLiteral(equals(true))))) @@ -3826,7 +3826,7 @@ return (Else != nullptr && InnerMatcher.matches(*Else, Finder, Builder)); } -/// \brief Matches if a node equals a previously bound node. +/// Matches if a node equals a previously bound node. /// /// Matches a node if it equals the node previously bound to \p ID. /// @@ -3863,7 +3863,7 @@ return Builder->removeBindings(Predicate); } -/// \brief Matches the condition variable statement in an if statement. +/// Matches the condition variable statement in an if statement. /// /// Given /// \code @@ -3879,7 +3879,7 @@ InnerMatcher.matches(*DeclarationStatement, Finder, Builder); } -/// \brief Matches the index expression of an array subscript expression. +/// Matches the index expression of an array subscript expression. /// /// Given /// \code @@ -3895,7 +3895,7 @@ return false; } -/// \brief Matches the base expression of an array subscript expression. +/// Matches the base expression of an array subscript expression. /// /// Given /// \code @@ -3912,7 +3912,7 @@ return false; } -/// \brief Matches a 'for', 'while', 'do while' statement or a function +/// Matches a 'for', 'while', 'do while' statement or a function /// definition that has a given body. /// /// Given @@ -3934,7 +3934,7 @@ InnerMatcher.matches(*Statement, Finder, Builder)); } -/// \brief Matches compound statements where at least one substatement matches +/// Matches compound statements where at least one substatement matches /// a given matcher. Also matches StmtExprs that have CompoundStmt as children. /// /// Given @@ -3954,7 +3954,7 @@ CS->body_end(), Finder, Builder); } -/// \brief Checks that a compound statement contains a specific number of +/// Checks that a compound statement contains a specific number of /// child statements. /// /// Example: Given @@ -3968,7 +3968,7 @@ return Node.size() == N; } -/// \brief Matches literals that are equal to the given value of type ValueT. +/// Matches literals that are equal to the given value of type ValueT. /// /// Given /// \code @@ -4029,7 +4029,7 @@ .matchesNode(Node); } -/// \brief Matches the operator Name of operator expressions (binary or +/// Matches the operator Name of operator expressions (binary or /// unary). /// /// Example matches a || b (matcher = binaryOperator(hasOperatorName("||"))) @@ -4043,7 +4043,7 @@ return Name == Node.getOpcodeStr(Node.getOpcode()); } -/// \brief Matches all kinds of assignment operators. +/// Matches all kinds of assignment operators. /// /// Example 1: matches a += b (matcher = binaryOperator(isAssignmentOperator())) /// \code @@ -4063,7 +4063,7 @@ return Node.isAssignmentOp(); } -/// \brief Matches the left hand side of binary operator expressions. +/// Matches the left hand side of binary operator expressions. /// /// Example matches a (matcher = binaryOperator(hasLHS())) /// \code @@ -4078,7 +4078,7 @@ InnerMatcher.matches(*LeftHandSide, Finder, Builder)); } -/// \brief Matches the right hand side of binary operator expressions. +/// Matches the right hand side of binary operator expressions. /// /// Example matches b (matcher = binaryOperator(hasRHS())) /// \code @@ -4093,14 +4093,14 @@ InnerMatcher.matches(*RightHandSide, Finder, Builder)); } -/// \brief Matches if either the left hand side or the right hand side of a +/// Matches if either the left hand side or the right hand side of a /// binary operator matches. inline internal::Matcher<BinaryOperator> hasEitherOperand( const internal::Matcher<Expr> &InnerMatcher) { return anyOf(hasLHS(InnerMatcher), hasRHS(InnerMatcher)); } -/// \brief Matches if the operand of a unary operator matches. +/// Matches if the operand of a unary operator matches. /// /// Example matches true (matcher = hasUnaryOperand( /// cxxBoolLiteral(equals(true)))) @@ -4114,7 +4114,7 @@ InnerMatcher.matches(*Operand, Finder, Builder)); } -/// \brief Matches if the cast's source expression +/// Matches if the cast's source expression /// or opaque value's source expression matches the given matcher. /// /// Example 1: matches "a string" @@ -4139,7 +4139,7 @@ InnerMatcher.matches(*SubExpression, Finder, Builder)); } -/// \brief Matches casts that has a given cast kind. +/// Matches casts that has a given cast kind. /// /// Example: matches the implicit cast around \c 0 /// (matcher = castExpr(hasCastKind(CK_NullToPointer))) @@ -4150,7 +4150,7 @@ return Node.getCastKind() == Kind; } -/// \brief Matches casts whose destination type matches a given matcher. +/// Matches casts whose destination type matches a given matcher. /// /// (Note: Clang's AST refers to other conversions as "casts" too, and calls /// actual casts "explicit" casts.) @@ -4160,7 +4160,7 @@ return InnerMatcher.matches(NodeType, Finder, Builder); } -/// \brief Matches implicit casts whose destination type matches a given +/// Matches implicit casts whose destination type matches a given /// matcher. /// /// FIXME: Unit test this matcher @@ -4169,7 +4169,7 @@ return InnerMatcher.matches(Node.getType(), Finder, Builder); } -/// \brief Matches RecordDecl object that are spelled with "struct." +/// Matches RecordDecl object that are spelled with "struct." /// /// Example matches S, but not C or U. /// \code @@ -4181,7 +4181,7 @@ return Node.isStruct(); } -/// \brief Matches RecordDecl object that are spelled with "union." +/// Matches RecordDecl object that are spelled with "union." /// /// Example matches U, but not C or S. /// \code @@ -4193,7 +4193,7 @@ return Node.isUnion(); } -/// \brief Matches RecordDecl object that are spelled with "class." +/// Matches RecordDecl object that are spelled with "class." /// /// Example matches C, but not S or U. /// \code @@ -4205,7 +4205,7 @@ return Node.isClass(); } -/// \brief Matches the true branch expression of a conditional operator. +/// Matches the true branch expression of a conditional operator. /// /// Example 1 (conditional ternary operator): matches a /// \code @@ -4223,7 +4223,7 @@ InnerMatcher.matches(*Expression, Finder, Builder)); } -/// \brief Matches the false branch expression of a conditional operator +/// Matches the false branch expression of a conditional operator /// (binary or ternary). /// /// Example matches b @@ -4238,7 +4238,7 @@ InnerMatcher.matches(*Expression, Finder, Builder)); } -/// \brief Matches if a declaration has a body attached. +/// Matches if a declaration has a body attached. /// /// Example matches A, va, fa /// \code @@ -4265,7 +4265,7 @@ return Node.isThisDeclarationADefinition(); } -/// \brief Matches if a function declaration is variadic. +/// Matches if a function declaration is variadic. /// /// Example matches f, but not g or h. The function i will not match, even when /// compiled in C mode. @@ -4279,7 +4279,7 @@ return Node.isVariadic(); } -/// \brief Matches the class declaration that the given method declaration +/// Matches the class declaration that the given method declaration /// belongs to. /// /// FIXME: Generalize this for other kinds of declarations. @@ -4303,7 +4303,7 @@ InnerMatcher.matches(*Parent, Finder, Builder)); } -/// \brief Matches each method overridden by the given method. This matcher may +/// Matches each method overridden by the given method. This matcher may /// produce multiple matches. /// /// Given @@ -4344,7 +4344,7 @@ return Matched; } -/// \brief Matches if the given method declaration is virtual. +/// Matches if the given method declaration is virtual. /// /// Given /// \code @@ -4358,7 +4358,7 @@ return Node.isVirtual(); } -/// \brief Matches if the given method declaration has an explicit "virtual". +/// Matches if the given method declaration has an explicit "virtual". /// /// Given /// \code @@ -4376,7 +4376,7 @@ return Node.isVirtualAsWritten(); } -/// \brief Matches if the given method or class declaration is final. +/// Matches if the given method or class declaration is final. /// /// Given: /// \code @@ -4397,7 +4397,7 @@ return Node.template hasAttr<FinalAttr>(); } -/// \brief Matches if the given method declaration is pure. +/// Matches if the given method declaration is pure. /// /// Given /// \code @@ -4411,7 +4411,7 @@ return Node.isPure(); } -/// \brief Matches if the given method declaration is const. +/// Matches if the given method declaration is const. /// /// Given /// \code @@ -4426,7 +4426,7 @@ return Node.isConst(); } -/// \brief Matches if the given method declaration declares a copy assignment +/// Matches if the given method declaration declares a copy assignment /// operator. /// /// Given @@ -4443,7 +4443,7 @@ return Node.isCopyAssignmentOperator(); } -/// \brief Matches if the given method declaration declares a move assignment +/// Matches if the given method declaration declares a move assignment /// operator. /// /// Given @@ -4460,7 +4460,7 @@ return Node.isMoveAssignmentOperator(); } -/// \brief Matches if the given method declaration overrides another method. +/// Matches if the given method declaration overrides another method. /// /// Given /// \code @@ -4478,7 +4478,7 @@ return Node.size_overridden_methods() > 0 || Node.hasAttr<OverrideAttr>(); } -/// \brief Matches method declarations that are user-provided. +/// Matches method declarations that are user-provided. /// /// Given /// \code @@ -4493,7 +4493,7 @@ return Node.isUserProvided(); } -/// \brief Matches member expressions that are called with '->' as opposed +/// Matches member expressions that are called with '->' as opposed /// to '.'. /// /// Member calls on the implicit this pointer match as called with '->'. @@ -4512,7 +4512,7 @@ return Node.isArrow(); } -/// \brief Matches QualType nodes that are of integer type. +/// Matches QualType nodes that are of integer type. /// /// Given /// \code @@ -4526,7 +4526,7 @@ return Node->isIntegerType(); } -/// \brief Matches QualType nodes that are of unsigned integer type. +/// Matches QualType nodes that are of unsigned integer type. /// /// Given /// \code @@ -4540,7 +4540,7 @@ return Node->isUnsignedIntegerType(); } -/// \brief Matches QualType nodes that are of signed integer type. +/// Matches QualType nodes that are of signed integer type. /// /// Given /// \code @@ -4554,7 +4554,7 @@ return Node->isSignedIntegerType(); } -/// \brief Matches QualType nodes that are of character type. +/// Matches QualType nodes that are of character type. /// /// Given /// \code @@ -4568,7 +4568,7 @@ return Node->isAnyCharacterType(); } -/// \brief Matches QualType nodes that are of any pointer type; this includes +/// Matches QualType nodes that are of any pointer type; this includes /// the Objective-C object pointer type, which is different despite being /// syntactically similar. /// @@ -4588,7 +4588,7 @@ return Node->isAnyPointerType(); } -/// \brief Matches QualType nodes that are const-qualified, i.e., that +/// Matches QualType nodes that are const-qualified, i.e., that /// include "top-level" const. /// /// Given @@ -4607,7 +4607,7 @@ return Node.isConstQualified(); } -/// \brief Matches QualType nodes that are volatile-qualified, i.e., that +/// Matches QualType nodes that are volatile-qualified, i.e., that /// include "top-level" volatile. /// /// Given @@ -4626,7 +4626,7 @@ return Node.isVolatileQualified(); } -/// \brief Matches QualType nodes that have local CV-qualifiers attached to +/// Matches QualType nodes that have local CV-qualifiers attached to /// the node, not hidden within a typedef. /// /// Given @@ -4643,7 +4643,7 @@ return Node.hasLocalQualifiers(); } -/// \brief Matches a member expression where the member is matched by a +/// Matches a member expression where the member is matched by a /// given matcher. /// /// Given @@ -4660,7 +4660,7 @@ return InnerMatcher.matches(*Node.getMemberDecl(), Finder, Builder); } -/// \brief Matches a member expression where the object expression is +/// Matches a member expression where the object expression is /// matched by a given matcher. /// /// Given @@ -4677,7 +4677,7 @@ return InnerMatcher.matches(*Node.getBase(), Finder, Builder); } -/// \brief Matches any using shadow declaration. +/// Matches any using shadow declaration. /// /// Given /// \code @@ -4692,7 +4692,7 @@ Node.shadow_end(), Finder, Builder); } -/// \brief Matches a using shadow declaration where the target declaration is +/// Matches a using shadow declaration where the target declaration is /// matched by the given matcher. /// /// Given @@ -4709,7 +4709,7 @@ return InnerMatcher.matches(*Node.getTargetDecl(), Finder, Builder); } -/// \brief Matches template instantiations of function, class, or static +/// Matches template instantiations of function, class, or static /// member variable template instantiations. /// /// Given @@ -4746,7 +4746,7 @@ TSK_ExplicitInstantiationDeclaration); } -/// \brief Matches declarations that are template instantiations or are inside +/// Matches declarations that are template instantiations or are inside /// template instantiations. /// /// Given @@ -4763,7 +4763,7 @@ return decl(anyOf(IsInstantiation, hasAncestor(IsInstantiation))); } -/// \brief Matches statements inside of a template instantiation. +/// Matches statements inside of a template instantiation. /// /// Given /// \code @@ -4783,7 +4783,7 @@ functionDecl(isTemplateInstantiation()))))); } -/// \brief Matches explicit template specializations of function, class, or +/// Matches explicit template specializations of function, class, or /// static member variable template instantiations. /// /// Given @@ -4801,7 +4801,7 @@ return (Node.getTemplateSpecializationKind() == TSK_ExplicitSpecialization); } -/// \brief Matches \c TypeLocs for which the given inner +/// Matches \c TypeLocs for which the given inner /// QualType-matcher matches. AST_MATCHER_FUNCTION_P_OVERLOAD(internal::BindableMatcher<TypeLoc>, loc, internal::Matcher<QualType>, InnerMatcher, 0) { @@ -4809,7 +4809,7 @@ new internal::TypeLocTypeMatcher(InnerMatcher)); } -/// \brief Matches type \c bool. +/// Matches type \c bool. /// /// Given /// \code @@ -4821,7 +4821,7 @@ return Node.isBooleanType(); } -/// \brief Matches type \c void. +/// Matches type \c void. /// /// Given /// \code @@ -4836,7 +4836,7 @@ template <typename NodeType> using AstTypeMatcher = internal::VariadicDynCastAllOfMatcher<Type, NodeType>; -/// \brief Matches builtin Types. +/// Matches builtin Types. /// /// Given /// \code @@ -4850,7 +4850,7 @@ /// matches "int b", "float c" and "bool d" extern const AstTypeMatcher<BuiltinType> builtinType; -/// \brief Matches all kinds of arrays. +/// Matches all kinds of arrays. /// /// Given /// \code @@ -4862,7 +4862,7 @@ /// matches "int a[]", "int b[4]" and "int c[a[0]]"; extern const AstTypeMatcher<ArrayType> arrayType; -/// \brief Matches C99 complex types. +/// Matches C99 complex types. /// /// Given /// \code @@ -4872,7 +4872,7 @@ /// matches "_Complex float f" extern const AstTypeMatcher<ComplexType> complexType; -/// \brief Matches any real floating-point type (float, double, long double). +/// Matches any real floating-point type (float, double, long double). /// /// Given /// \code @@ -4885,7 +4885,7 @@ return Node.isRealFloatingType(); } -/// \brief Matches arrays and C99 complex types that have a specific element +/// Matches arrays and C99 complex types that have a specific element /// type. /// /// Given @@ -4902,7 +4902,7 @@ AST_POLYMORPHIC_SUPPORTED_TYPES(ArrayType, ComplexType)); -/// \brief Matches C arrays with a specified constant size. +/// Matches C arrays with a specified constant size. /// /// Given /// \code @@ -4916,7 +4916,7 @@ /// matches "int a[2]" extern const AstTypeMatcher<ConstantArrayType> constantArrayType; -/// \brief Matches nodes that have the specified size. +/// Matches nodes that have the specified size. /// /// Given /// \code @@ -4938,7 +4938,7 @@ return internal::HasSizeMatcher<NodeType>::hasSize(Node, N); } -/// \brief Matches C++ arrays whose size is a value-dependent expression. +/// Matches C++ arrays whose size is a value-dependent expression. /// /// Given /// \code @@ -4951,7 +4951,7 @@ /// matches "T data[Size]" extern const AstTypeMatcher<DependentSizedArrayType> dependentSizedArrayType; -/// \brief Matches C arrays with unspecified size. +/// Matches C arrays with unspecified size. /// /// Given /// \code @@ -4963,7 +4963,7 @@ /// matches "int a[]" and "int c[]" extern const AstTypeMatcher<IncompleteArrayType> incompleteArrayType; -/// \brief Matches C arrays with a specified size that is not an +/// Matches C arrays with a specified size that is not an /// integer-constant-expression. /// /// Given @@ -4978,7 +4978,7 @@ /// matches "int c[a[0]]" extern const AstTypeMatcher<VariableArrayType> variableArrayType; -/// \brief Matches \c VariableArrayType nodes that have a specific size +/// Matches \c VariableArrayType nodes that have a specific size /// expression. /// /// Given @@ -4995,7 +4995,7 @@ return InnerMatcher.matches(*Node.getSizeExpr(), Finder, Builder); } -/// \brief Matches atomic types. +/// Matches atomic types. /// /// Given /// \code @@ -5005,7 +5005,7 @@ /// matches "_Atomic(int) i" extern const AstTypeMatcher<AtomicType> atomicType; -/// \brief Matches atomic types with a specific value type. +/// Matches atomic types with a specific value type. /// /// Given /// \code @@ -5019,7 +5019,7 @@ AST_TYPELOC_TRAVERSE_MATCHER_DECL(hasValueType, getValue, AST_POLYMORPHIC_SUPPORTED_TYPES(AtomicType)); -/// \brief Matches types nodes representing C++11 auto types. +/// Matches types nodes representing C++11 auto types. /// /// Given: /// \code @@ -5031,7 +5031,7 @@ /// matches "auto n" and "auto i" extern const AstTypeMatcher<AutoType> autoType; -/// \brief Matches \c AutoType nodes where the deduced type is a specific type. +/// Matches \c AutoType nodes where the deduced type is a specific type. /// /// Note: There is no \c TypeLoc for the deduced type and thus no /// \c getDeducedLoc() matcher. @@ -5048,7 +5048,7 @@ AST_TYPE_TRAVERSE_MATCHER(hasDeducedType, getDeducedType, AST_POLYMORPHIC_SUPPORTED_TYPES(AutoType)); -/// \brief Matches \c FunctionType nodes. +/// Matches \c FunctionType nodes. /// /// Given /// \code @@ -5059,7 +5059,7 @@ /// matches "int (*f)(int)" and the type of "g". extern const AstTypeMatcher<FunctionType> functionType; -/// \brief Matches \c FunctionProtoType nodes. +/// Matches \c FunctionProtoType nodes. /// /// Given /// \code @@ -5071,7 +5071,7 @@ /// In C mode, "g" is not matched because it does not contain a prototype. extern const AstTypeMatcher<FunctionProtoType> functionProtoType; -/// \brief Matches \c ParenType nodes. +/// Matches \c ParenType nodes. /// /// Given /// \code @@ -5083,7 +5083,7 @@ /// \c array_of_ptrs. extern const AstTypeMatcher<ParenType> parenType; -/// \brief Matches \c ParenType nodes where the inner type is a specific type. +/// Matches \c ParenType nodes where the inner type is a specific type. /// /// Given /// \code @@ -5098,13 +5098,13 @@ AST_TYPE_TRAVERSE_MATCHER(innerType, getInnerType, AST_POLYMORPHIC_SUPPORTED_TYPES(ParenType)); -/// \brief Matches block pointer types, i.e. types syntactically represented as +/// Matches block pointer types, i.e. types syntactically represented as /// "void (^)(int)". /// /// The \c pointee is always required to be a \c FunctionType. extern const AstTypeMatcher<BlockPointerType> blockPointerType; -/// \brief Matches member pointer types. +/// Matches member pointer types. /// Given /// \code /// struct A { int i; } @@ -5114,7 +5114,7 @@ /// matches "A::* ptr" extern const AstTypeMatcher<MemberPointerType> memberPointerType; -/// \brief Matches pointer types, but does not match Objective-C object pointer +/// Matches pointer types, but does not match Objective-C object pointer /// types. /// /// Given @@ -5131,7 +5131,7 @@ /// matches "int *a", but does not match "Foo *f". extern const AstTypeMatcher<PointerType> pointerType; -/// \brief Matches an Objective-C object pointer type, which is different from +/// Matches an Objective-C object pointer type, which is different from /// a pointer type, despite being syntactically similar. /// /// Given @@ -5146,7 +5146,7 @@ /// matches "Foo *f", but does not match "int *a". extern const AstTypeMatcher<ObjCObjectPointerType> objcObjectPointerType; -/// \brief Matches both lvalue and rvalue reference types. +/// Matches both lvalue and rvalue reference types. /// /// Given /// \code @@ -5162,7 +5162,7 @@ /// \c referenceType() matches the types of \c b, \c c, \c d, \c e, and \c f. extern const AstTypeMatcher<ReferenceType> referenceType; -/// \brief Matches lvalue reference types. +/// Matches lvalue reference types. /// /// Given: /// \code @@ -5179,7 +5179,7 @@ /// matched since the type is deduced as int& by reference collapsing rules. extern const AstTypeMatcher<LValueReferenceType> lValueReferenceType; -/// \brief Matches rvalue reference types. +/// Matches rvalue reference types. /// /// Given: /// \code @@ -5196,7 +5196,7 @@ /// matched as it is deduced to int& by reference collapsing rules. extern const AstTypeMatcher<RValueReferenceType> rValueReferenceType; -/// \brief Narrows PointerType (and similar) matchers to those where the +/// Narrows PointerType (and similar) matchers to those where the /// \c pointee matches a given matcher. /// /// Given @@ -5215,7 +5215,7 @@ AST_POLYMORPHIC_SUPPORTED_TYPES(BlockPointerType, MemberPointerType, PointerType, ReferenceType)); -/// \brief Matches typedef types. +/// Matches typedef types. /// /// Given /// \code @@ -5225,7 +5225,7 @@ /// matches "typedef int X" extern const AstTypeMatcher<TypedefType> typedefType; -/// \brief Matches enum types. +/// Matches enum types. /// /// Given /// \code @@ -5240,7 +5240,7 @@ /// \c s. extern const AstTypeMatcher<EnumType> enumType; -/// \brief Matches template specialization types. +/// Matches template specialization types. /// /// Given /// \code @@ -5256,7 +5256,7 @@ extern const AstTypeMatcher<TemplateSpecializationType> templateSpecializationType; -/// \brief Matches types nodes representing unary type transformations. +/// Matches types nodes representing unary type transformations. /// /// Given: /// \code @@ -5266,7 +5266,7 @@ /// matches "__underlying_type(T)" extern const AstTypeMatcher<UnaryTransformType> unaryTransformType; -/// \brief Matches record types (e.g. structs, classes). +/// Matches record types (e.g. structs, classes). /// /// Given /// \code @@ -5281,7 +5281,7 @@ /// and \c s. extern const AstTypeMatcher<RecordType> recordType; -/// \brief Matches tag types (record and enum types). +/// Matches tag types (record and enum types). /// /// Given /// \code @@ -5296,7 +5296,7 @@ /// and \c c. extern const AstTypeMatcher<TagType> tagType; -/// \brief Matches types specified with an elaborated type keyword or with a +/// Matches types specified with an elaborated type keyword or with a /// qualified name. /// /// Given @@ -5316,7 +5316,7 @@ /// \c c and \c d. extern const AstTypeMatcher<ElaboratedType> elaboratedType; -/// \brief Matches ElaboratedTypes whose qualifier, a NestedNameSpecifier, +/// Matches ElaboratedTypes whose qualifier, a NestedNameSpecifier, /// matches \c InnerMatcher if the qualifier exists. /// /// Given @@ -5339,7 +5339,7 @@ return false; } -/// \brief Matches ElaboratedTypes whose named type matches \c InnerMatcher. +/// Matches ElaboratedTypes whose named type matches \c InnerMatcher. /// /// Given /// \code @@ -5359,7 +5359,7 @@ return InnerMatcher.matches(Node.getNamedType(), Finder, Builder); } -/// \brief Matches types that represent the result of substituting a type for a +/// Matches types that represent the result of substituting a type for a /// template type parameter. /// /// Given @@ -5374,7 +5374,7 @@ extern const AstTypeMatcher<SubstTemplateTypeParmType> substTemplateTypeParmType; -/// \brief Matches template type parameter substitutions that have a replacement +/// Matches template type parameter substitutions that have a replacement /// type that matches the provided matcher. /// /// Given @@ -5390,7 +5390,7 @@ hasReplacementType, getReplacementType, AST_POLYMORPHIC_SUPPORTED_TYPES(SubstTemplateTypeParmType)); -/// \brief Matches template type parameter types. +/// Matches template type parameter types. /// /// Example matches T, but not int. /// (matcher = templateTypeParmType()) @@ -5399,7 +5399,7 @@ /// \endcode extern const AstTypeMatcher<TemplateTypeParmType> templateTypeParmType; -/// \brief Matches injected class name types. +/// Matches injected class name types. /// /// Example matches S s, but not S<T> s. /// (matcher = parmVarDecl(hasType(injectedClassNameType()))) @@ -5411,7 +5411,7 @@ /// \endcode extern const AstTypeMatcher<InjectedClassNameType> injectedClassNameType; -/// \brief Matches decayed type +/// Matches decayed type /// Example matches i[] in declaration of f. /// (matcher = valueDecl(hasType(decayedType(hasDecayedType(pointerType()))))) /// Example matches i[1]. @@ -5423,13 +5423,13 @@ /// \endcode extern const AstTypeMatcher<DecayedType> decayedType; -/// \brief Matches the decayed type, whos decayed type matches \c InnerMatcher +/// Matches the decayed type, whos decayed type matches \c InnerMatcher AST_MATCHER_P(DecayedType, hasDecayedType, internal::Matcher<QualType>, InnerType) { return InnerType.matches(Node.getDecayedType(), Finder, Builder); } -/// \brief Matches declarations whose declaration context, interpreted as a +/// Matches declarations whose declaration context, interpreted as a /// Decl, matches \c InnerMatcher. /// /// Given @@ -5449,7 +5449,7 @@ return InnerMatcher.matches(*Decl::castFromDeclContext(DC), Finder, Builder); } -/// \brief Matches nested name specifiers. +/// Matches nested name specifiers. /// /// Given /// \code @@ -5465,11 +5465,11 @@ extern const internal::VariadicAllOfMatcher<NestedNameSpecifier> nestedNameSpecifier; -/// \brief Same as \c nestedNameSpecifier but matches \c NestedNameSpecifierLoc. +/// Same as \c nestedNameSpecifier but matches \c NestedNameSpecifierLoc. extern const internal::VariadicAllOfMatcher<NestedNameSpecifierLoc> nestedNameSpecifierLoc; -/// \brief Matches \c NestedNameSpecifierLocs for which the given inner +/// Matches \c NestedNameSpecifierLocs for which the given inner /// NestedNameSpecifier-matcher matches. AST_MATCHER_FUNCTION_P_OVERLOAD( internal::BindableMatcher<NestedNameSpecifierLoc>, loc, @@ -5479,7 +5479,7 @@ InnerMatcher)); } -/// \brief Matches nested name specifiers that specify a type matching the +/// Matches nested name specifiers that specify a type matching the /// given \c QualType matcher without qualifiers. /// /// Given @@ -5498,7 +5498,7 @@ return InnerMatcher.matches(QualType(Node.getAsType(), 0), Finder, Builder); } -/// \brief Matches nested name specifier locs that specify a type matching the +/// Matches nested name specifier locs that specify a type matching the /// given \c TypeLoc. /// /// Given @@ -5514,7 +5514,7 @@ return Node && InnerMatcher.matches(Node.getTypeLoc(), Finder, Builder); } -/// \brief Matches on the prefix of a \c NestedNameSpecifier. +/// Matches on the prefix of a \c NestedNameSpecifier. /// /// Given /// \code @@ -5532,7 +5532,7 @@ return InnerMatcher.matches(*NextNode, Finder, Builder); } -/// \brief Matches on the prefix of a \c NestedNameSpecifierLoc. +/// Matches on the prefix of a \c NestedNameSpecifierLoc. /// /// Given /// \code @@ -5550,7 +5550,7 @@ return InnerMatcher.matches(NextNode, Finder, Builder); } -/// \brief Matches nested name specifiers that specify a namespace matching the +/// Matches nested name specifiers that specify a namespace matching the /// given namespace matcher. /// /// Given @@ -5567,23 +5567,23 @@ return InnerMatcher.matches(*Node.getAsNamespace(), Finder, Builder); } -/// \brief Overloads for the \c equalsNode matcher. +/// Overloads for the \c equalsNode matcher. /// FIXME: Implement for other node types. /// @{ -/// \brief Matches if a node equals another node. +/// Matches if a node equals another node. /// /// \c Decl has pointer identity in the AST. AST_MATCHER_P_OVERLOAD(Decl, equalsNode, const Decl*, Other, 0) { return &Node == Other; } -/// \brief Matches if a node equals another node. +/// Matches if a node equals another node. /// /// \c Stmt has pointer identity in the AST. AST_MATCHER_P_OVERLOAD(Stmt, equalsNode, const Stmt*, Other, 1) { return &Node == Other; } -/// \brief Matches if a node equals another node. +/// Matches if a node equals another node. /// /// \c Type has pointer identity in the AST. AST_MATCHER_P_OVERLOAD(Type, equalsNode, const Type*, Other, 2) { @@ -5592,7 +5592,7 @@ /// @} -/// \brief Matches each case or default statement belonging to the given switch +/// Matches each case or default statement belonging to the given switch /// statement. This matcher may produce multiple matches. /// /// Given @@ -5624,7 +5624,7 @@ return Matched; } -/// \brief Matches each constructor initializer in a constructor definition. +/// Matches each constructor initializer in a constructor definition. /// /// Given /// \code @@ -5649,7 +5649,7 @@ return Matched; } -/// \brief Matches constructor declarations that are copy constructors. +/// Matches constructor declarations that are copy constructors. /// /// Given /// \code @@ -5664,7 +5664,7 @@ return Node.isCopyConstructor(); } -/// \brief Matches constructor declarations that are move constructors. +/// Matches constructor declarations that are move constructors. /// /// Given /// \code @@ -5679,7 +5679,7 @@ return Node.isMoveConstructor(); } -/// \brief Matches constructor declarations that are default constructors. +/// Matches constructor declarations that are default constructors. /// /// Given /// \code @@ -5694,7 +5694,7 @@ return Node.isDefaultConstructor(); } -/// \brief Matches constructors that delegate to another constructor. +/// Matches constructors that delegate to another constructor. /// /// Given /// \code @@ -5711,7 +5711,7 @@ return Node.isDelegatingConstructor(); } -/// \brief Matches constructor and conversion declarations that are marked with +/// Matches constructor and conversion declarations that are marked with /// the explicit keyword. /// /// Given @@ -5731,7 +5731,7 @@ return Node.isExplicit(); } -/// \brief Matches function and namespace declarations that are marked with +/// Matches function and namespace declarations that are marked with /// the inline keyword. /// /// Given @@ -5756,7 +5756,7 @@ llvm_unreachable("Not a valid polymorphic type"); } -/// \brief Matches anonymous namespace declarations. +/// Matches anonymous namespace declarations. /// /// Given /// \code @@ -5769,7 +5769,7 @@ return Node.isAnonymousNamespace(); } -/// \brief If the given case statement does not use the GNU case range +/// If the given case statement does not use the GNU case range /// extension, matches the constant given in the statement. /// /// Given @@ -5786,7 +5786,7 @@ return InnerMatcher.matches(*Node.getLHS(), Finder, Builder); } -/// \brief Matches declaration that has a given attribute. +/// Matches declaration that has a given attribute. /// /// Given /// \code @@ -5803,7 +5803,7 @@ return false; } -/// \brief Matches the return value expression of a return statement +/// Matches the return value expression of a return statement /// /// Given /// \code @@ -5820,7 +5820,7 @@ return false; } -/// \brief Matches CUDA kernel call expression. +/// Matches CUDA kernel call expression. /// /// Example matches, /// \code @@ -5829,7 +5829,7 @@ extern const internal::VariadicDynCastAllOfMatcher<Stmt, CUDAKernelCallExpr> cudaKernelCallExpr; -/// \brief Matches expressions that resolve to a null pointer constant, such as +/// Matches expressions that resolve to a null pointer constant, such as /// GNU's __null, C++11's nullptr, or C's NULL macro. /// /// Given: @@ -5850,7 +5850,7 @@ integerLiteral(equals(0), hasParent(expr(hasType(pointerType()))))); } -/// \brief Matches declaration of the function the statement belongs to +/// Matches declaration of the function the statement belongs to /// /// Given: /// \code @@ -5888,7 +5888,7 @@ return false; } -/// \brief Matches a declaration that has external formal linkage. +/// Matches a declaration that has external formal linkage. /// /// Example matches only z (matcher = varDecl(hasExternalFormalLinkage())) /// \code @@ -5912,7 +5912,7 @@ return Node.hasExternalFormalLinkage(); } -/// \brief Matches a declaration that has default arguments. +/// Matches a declaration that has default arguments. /// /// Example matches y (matcher = parmVarDecl(hasDefaultArgument())) /// \code @@ -5923,7 +5923,7 @@ return Node.hasDefaultArg(); } -/// \brief Matches array new expressions. +/// Matches array new expressions. /// /// Given: /// \code @@ -5935,7 +5935,7 @@ return Node.isArray(); } -/// \brief Matches array new expressions with a given array size. +/// Matches array new expressions with a given array size. /// /// Given: /// \code @@ -5948,7 +5948,7 @@ InnerMatcher.matches(*Node.getArraySize(), Finder, Builder); } -/// \brief Matches a class declaration that is defined. +/// Matches a class declaration that is defined. /// /// Example matches x (matcher = cxxRecordDecl(hasDefinition())) /// \code @@ -5959,7 +5959,7 @@ return Node.hasDefinition(); } -/// \brief Matches C++11 scoped enum declaration. +/// Matches C++11 scoped enum declaration. /// /// Example matches Y (matcher = enumDecl(isScoped())) /// \code @@ -5970,7 +5970,7 @@ return Node.isScoped(); } -/// \brief Matches a function declared with a trailing return type. +/// Matches a function declared with a trailing return type. /// /// Example matches Y (matcher = functionDecl(hasTrailingReturn())) /// \code Index: cfe/trunk/include/clang/ASTMatchers/ASTMatchersInternal.h =================================================================== --- cfe/trunk/include/clang/ASTMatchers/ASTMatchersInternal.h +++ cfe/trunk/include/clang/ASTMatchers/ASTMatchersInternal.h @@ -80,7 +80,7 @@ namespace internal { -/// \brief Variadic function object. +/// Variadic function object. /// /// Most of the functions below that use VariadicFunction could be implemented /// using plain C++11 variadic functions, but the function object allows us to @@ -113,7 +113,7 @@ } }; -/// \brief Unifies obtaining the underlying type of a regular node through +/// Unifies obtaining the underlying type of a regular node through /// `getType` and a TypedefNameDecl node through `getUnderlyingType`. inline QualType getUnderlyingType(const Expr &Node) { return Node.getType(); } @@ -125,7 +125,7 @@ return Node.getUnderlyingType(); } -/// \brief Unifies obtaining the FunctionProtoType pointer from both +/// Unifies obtaining the FunctionProtoType pointer from both /// FunctionProtoType and FunctionDecl nodes.. inline const FunctionProtoType * getFunctionProtoType(const FunctionProtoType &Node) { @@ -136,17 +136,17 @@ return Node.getType()->getAs<FunctionProtoType>(); } -/// \brief Internal version of BoundNodes. Holds all the bound nodes. +/// Internal version of BoundNodes. Holds all the bound nodes. class BoundNodesMap { public: - /// \brief Adds \c Node to the map with key \c ID. + /// Adds \c Node to the map with key \c ID. /// /// The node's base type should be in NodeBaseType or it will be unaccessible. void addNode(StringRef ID, const ast_type_traits::DynTypedNode& DynNode) { NodeMap[ID] = DynNode; } - /// \brief Returns the AST node bound to \c ID. + /// Returns the AST node bound to \c ID. /// /// Returns NULL if there was no node bound to \c ID or if there is a node but /// it cannot be converted to the specified type. @@ -167,12 +167,12 @@ return It->second; } - /// \brief Imposes an order on BoundNodesMaps. + /// Imposes an order on BoundNodesMaps. bool operator<(const BoundNodesMap &Other) const { return NodeMap < Other.NodeMap; } - /// \brief A map from IDs to the bound nodes. + /// A map from IDs to the bound nodes. /// /// Note that we're using std::map here, as for memoization: /// - we need a comparison operator @@ -183,7 +183,7 @@ return NodeMap; } - /// \brief Returns \c true if this \c BoundNodesMap can be compared, i.e. all + /// Returns \c true if this \c BoundNodesMap can be compared, i.e. all /// stored nodes have memoization data. bool isComparable() const { for (const auto &IDAndNode : NodeMap) { @@ -197,25 +197,25 @@ IDToNodeMap NodeMap; }; -/// \brief Creates BoundNodesTree objects. +/// Creates BoundNodesTree objects. /// /// The tree builder is used during the matching process to insert the bound /// nodes from the Id matcher. class BoundNodesTreeBuilder { public: - /// \brief A visitor interface to visit all BoundNodes results for a + /// A visitor interface to visit all BoundNodes results for a /// BoundNodesTree. class Visitor { public: virtual ~Visitor() = default; - /// \brief Called multiple times during a single call to VisitMatches(...). + /// Called multiple times during a single call to VisitMatches(...). /// /// 'BoundNodesView' contains the bound nodes for a single match. virtual void visitMatch(const BoundNodes& BoundNodesView) = 0; }; - /// \brief Add a binding from an id to a node. + /// Add a binding from an id to a node. void setBinding(StringRef Id, const ast_type_traits::DynTypedNode &DynNode) { if (Bindings.empty()) Bindings.emplace_back(); @@ -223,10 +223,10 @@ Binding.addNode(Id, DynNode); } - /// \brief Adds a branch in the tree. + /// Adds a branch in the tree. void addMatch(const BoundNodesTreeBuilder &Bindings); - /// \brief Visits all matches that this BoundNodesTree represents. + /// Visits all matches that this BoundNodesTree represents. /// /// The ownership of 'ResultVisitor' remains at the caller. void visitMatches(Visitor* ResultVisitor); @@ -238,12 +238,12 @@ return !Bindings.empty(); } - /// \brief Imposes an order on BoundNodesTreeBuilders. + /// Imposes an order on BoundNodesTreeBuilders. bool operator<(const BoundNodesTreeBuilder &Other) const { return Bindings < Other.Bindings; } - /// \brief Returns \c true if this \c BoundNodesTreeBuilder can be compared, + /// Returns \c true if this \c BoundNodesTreeBuilder can be compared, /// i.e. all stored node maps have memoization data. bool isComparable() const { for (const BoundNodesMap &NodesMap : Bindings) { @@ -259,7 +259,7 @@ class ASTMatchFinder; -/// \brief Generic interface for all matchers. +/// Generic interface for all matchers. /// /// Used by the implementation of Matcher<T> and DynTypedMatcher. /// In general, implement MatcherInterface<T> or SingleNodeMatcherInterface<T> @@ -269,7 +269,7 @@ public: virtual ~DynMatcherInterface() = default; - /// \brief Returns true if \p DynNode can be matched. + /// Returns true if \p DynNode can be matched. /// /// May bind \p DynNode to an ID via \p Builder, or recurse into /// the AST via \p Finder. @@ -278,7 +278,7 @@ BoundNodesTreeBuilder *Builder) const = 0; }; -/// \brief Generic interface for matchers on an AST node of type T. +/// Generic interface for matchers on an AST node of type T. /// /// Implement this if your matcher may need to inspect the children or /// descendants of the node or bind matched nodes to names. If you are @@ -288,7 +288,7 @@ template <typename T> class MatcherInterface : public DynMatcherInterface { public: - /// \brief Returns true if 'Node' can be matched. + /// Returns true if 'Node' can be matched. /// /// May bind 'Node' to an ID via 'Builder', or recurse into /// the AST via 'Finder'. @@ -303,12 +303,12 @@ } }; -/// \brief Interface for matchers that only evaluate properties on a single +/// Interface for matchers that only evaluate properties on a single /// node. template <typename T> class SingleNodeMatcherInterface : public MatcherInterface<T> { public: - /// \brief Returns true if the matcher matches the provided node. + /// Returns true if the matcher matches the provided node. /// /// A subclass must implement this instead of Matches(). virtual bool matchesNode(const T &Node) const = 0; @@ -324,7 +324,7 @@ template <typename> class Matcher; -/// \brief Matcher that works on a \c DynTypedNode. +/// Matcher that works on a \c DynTypedNode. /// /// It is constructed from a \c Matcher<T> object and redirects most calls to /// underlying matcher. @@ -333,26 +333,26 @@ /// return false if it is not convertible. class DynTypedMatcher { public: - /// \brief Takes ownership of the provided implementation pointer. + /// Takes ownership of the provided implementation pointer. template <typename T> DynTypedMatcher(MatcherInterface<T> *Implementation) : SupportedKind(ast_type_traits::ASTNodeKind::getFromNodeKind<T>()), RestrictKind(SupportedKind), Implementation(Implementation) {} - /// \brief Construct from a variadic function. + /// Construct from a variadic function. enum VariadicOperator { - /// \brief Matches nodes for which all provided matchers match. + /// Matches nodes for which all provided matchers match. VO_AllOf, - /// \brief Matches nodes for which at least one of the provided matchers + /// Matches nodes for which at least one of the provided matchers /// matches. VO_AnyOf, - /// \brief Matches nodes for which at least one of the provided matchers + /// Matches nodes for which at least one of the provided matchers /// matches, but doesn't stop at the first match. VO_EachOf, - /// \brief Matches nodes that do not match the provided matcher. + /// Matches nodes that do not match the provided matcher. /// /// Uses the variadic matcher interface, but fails if /// InnerMatchers.size() != 1. @@ -364,27 +364,27 @@ ast_type_traits::ASTNodeKind SupportedKind, std::vector<DynTypedMatcher> InnerMatchers); - /// \brief Get a "true" matcher for \p NodeKind. + /// Get a "true" matcher for \p NodeKind. /// /// It only checks that the node is of the right kind. static DynTypedMatcher trueMatcher(ast_type_traits::ASTNodeKind NodeKind); void setAllowBind(bool AB) { AllowBind = AB; } - /// \brief Check whether this matcher could ever match a node of kind \p Kind. + /// Check whether this matcher could ever match a node of kind \p Kind. /// \return \c false if this matcher will never match such a node. Otherwise, /// return \c true. bool canMatchNodesOfKind(ast_type_traits::ASTNodeKind Kind) const; - /// \brief Return a matcher that points to the same implementation, but + /// Return a matcher that points to the same implementation, but /// restricts the node types for \p Kind. DynTypedMatcher dynCastTo(const ast_type_traits::ASTNodeKind Kind) const; - /// \brief Returns true if the matcher matches the given \c DynNode. + /// Returns true if the matcher matches the given \c DynNode. bool matches(const ast_type_traits::DynTypedNode &DynNode, ASTMatchFinder *Finder, BoundNodesTreeBuilder *Builder) const; - /// \brief Same as matches(), but skips the kind check. + /// Same as matches(), but skips the kind check. /// /// It is faster, but the caller must ensure the node is valid for the /// kind of this matcher. @@ -392,12 +392,12 @@ ASTMatchFinder *Finder, BoundNodesTreeBuilder *Builder) const; - /// \brief Bind the specified \p ID to the matcher. + /// Bind the specified \p ID to the matcher. /// \return A new matcher with the \p ID bound to it if this matcher supports /// binding. Otherwise, returns an empty \c Optional<>. llvm::Optional<DynTypedMatcher> tryBind(StringRef ID) const; - /// \brief Returns a unique \p ID for the matcher. + /// Returns a unique \p ID for the matcher. /// /// Casting a Matcher<T> to Matcher<U> creates a matcher that has the /// same \c Implementation pointer, but different \c RestrictKind. We need to @@ -412,7 +412,7 @@ reinterpret_cast<uint64_t>(Implementation.get())); } - /// \brief Returns the type this matcher works on. + /// Returns the type this matcher works on. /// /// \c matches() will always return false unless the node passed is of this /// or a derived type. @@ -420,7 +420,7 @@ return SupportedKind; } - /// \brief Returns \c true if the passed \c DynTypedMatcher can be converted + /// Returns \c true if the passed \c DynTypedMatcher can be converted /// to a \c Matcher<T>. /// /// This method verifies that the underlying matcher in \c Other can process @@ -430,7 +430,7 @@ } bool canConvertTo(ast_type_traits::ASTNodeKind To) const; - /// \brief Construct a \c Matcher<T> interface around the dynamic matcher. + /// Construct a \c Matcher<T> interface around the dynamic matcher. /// /// This method asserts that \c canConvertTo() is \c true. Callers /// should call \c canConvertTo() first to make sure that \c this is @@ -440,7 +440,7 @@ return unconditionalConvertTo<T>(); } - /// \brief Same as \c convertTo(), but does not check that the underlying + /// Same as \c convertTo(), but does not check that the underlying /// matcher can handle a value of T. /// /// If it is not compatible, then this matcher will never match anything. @@ -456,7 +456,7 @@ bool AllowBind = false; ast_type_traits::ASTNodeKind SupportedKind; - /// \brief A potentially stricter node kind. + /// A potentially stricter node kind. /// /// It allows to perform implicit and dynamic cast of matchers without /// needing to change \c Implementation. @@ -464,7 +464,7 @@ IntrusiveRefCntPtr<DynMatcherInterface> Implementation; }; -/// \brief Wrapper base class for a wrapping matcher. +/// Wrapper base class for a wrapping matcher. /// /// This is just a container for a DynTypedMatcher that can be used as a base /// class for another matcher. @@ -477,7 +477,7 @@ const DynTypedMatcher InnerMatcher; }; -/// \brief Wrapper of a MatcherInterface<T> *that allows copying. +/// Wrapper of a MatcherInterface<T> *that allows copying. /// /// A Matcher<Base> can be used anywhere a Matcher<Derived> is /// required. This establishes an is-a relationship which is reverse @@ -488,11 +488,11 @@ template <typename T> class Matcher { public: - /// \brief Takes ownership of the provided implementation pointer. + /// Takes ownership of the provided implementation pointer. explicit Matcher(MatcherInterface<T> *Implementation) : Implementation(Implementation) {} - /// \brief Implicitly converts \c Other to a Matcher<T>. + /// Implicitly converts \c Other to a Matcher<T>. /// /// Requires \c T to be derived from \c From. template <typename From> @@ -504,7 +504,7 @@ ast_type_traits::ASTNodeKind::getFromNodeKind<T>())); } - /// \brief Implicitly converts \c Matcher<Type> to \c Matcher<QualType>. + /// Implicitly converts \c Matcher<Type> to \c Matcher<QualType>. /// /// The resulting matcher is not strict, i.e. ignores qualifiers. template <typename TypeT> @@ -514,7 +514,7 @@ std::is_same<TypeT, Type>::value>::type* = nullptr) : Implementation(new TypeToQualType<TypeT>(Other)) {} - /// \brief Convert \c this into a \c Matcher<T> by applying dyn_cast<> to the + /// Convert \c this into a \c Matcher<T> by applying dyn_cast<> to the /// argument. /// \c To must be a base class of \c T. template <typename To> @@ -523,7 +523,7 @@ return Matcher<To>(Implementation); } - /// \brief Forwards the call to the underlying MatcherInterface<T> pointer. + /// Forwards the call to the underlying MatcherInterface<T> pointer. bool matches(const T &Node, ASTMatchFinder *Finder, BoundNodesTreeBuilder *Builder) const { @@ -531,18 +531,18 @@ Finder, Builder); } - /// \brief Returns an ID that uniquely identifies the matcher. + /// Returns an ID that uniquely identifies the matcher. DynTypedMatcher::MatcherIDType getID() const { return Implementation.getID(); } - /// \brief Extract the dynamic matcher. + /// Extract the dynamic matcher. /// /// The returned matcher keeps the same restrictions as \c this and remembers /// that it is meant to support nodes of type \c T. operator DynTypedMatcher() const { return Implementation; } - /// \brief Allows the conversion of a \c Matcher<Type> to a \c + /// Allows the conversion of a \c Matcher<Type> to a \c /// Matcher<QualType>. /// /// Depending on the constructor argument, the matcher is either strict, i.e. @@ -583,14 +583,14 @@ DynTypedMatcher Implementation; }; // class Matcher -/// \brief A convenient helper for creating a Matcher<T> without specifying +/// A convenient helper for creating a Matcher<T> without specifying /// the template type argument. template <typename T> inline Matcher<T> makeMatcher(MatcherInterface<T> *Implementation) { return Matcher<T>(Implementation); } -/// \brief Specialization of the conversion functions for QualType. +/// Specialization of the conversion functions for QualType. /// /// This specialization provides the Matcher<Type>->Matcher<QualType> /// conversion that the static API does. @@ -606,7 +606,7 @@ return unconditionalConvertTo<QualType>(); } -/// \brief Finds the first node in a range that matches the given matcher. +/// Finds the first node in a range that matches the given matcher. template <typename MatcherT, typename IteratorT> bool matchesFirstInRange(const MatcherT &Matcher, IteratorT Start, IteratorT End, ASTMatchFinder *Finder, @@ -621,7 +621,7 @@ return false; } -/// \brief Finds the first node in a pointer range that matches the given +/// Finds the first node in a pointer range that matches the given /// matcher. template <typename MatcherT, typename IteratorT> bool matchesFirstInPointerRange(const MatcherT &Matcher, IteratorT Start, @@ -653,7 +653,7 @@ static const bool value = sizeof(test<Ty>(nullptr)) == sizeof(yes); }; -/// \brief Matches overloaded operators with a specific name. +/// Matches overloaded operators with a specific name. /// /// The type argument ArgT is not used by this matcher but is used by /// PolymorphicMatcherWithParam1 and should be StringRef. @@ -675,14 +675,14 @@ private: - /// \brief CXXOperatorCallExpr exist only for calls to overloaded operators + /// CXXOperatorCallExpr exist only for calls to overloaded operators /// so this function returns true if the call is to an operator of the given /// name. bool matchesSpecialized(const CXXOperatorCallExpr &Node) const { return getOperatorSpelling(Node.getOperator()) == Name; } - /// \brief Returns true only if CXXMethodDecl represents an overloaded + /// Returns true only if CXXMethodDecl represents an overloaded /// operator and has the given operator name. bool matchesSpecialized(const FunctionDecl &Node) const { return Node.isOverloadedOperator() && @@ -692,7 +692,7 @@ std::string Name; }; -/// \brief Matches named declarations with a specific name. +/// Matches named declarations with a specific name. /// /// See \c hasName() and \c hasAnyName() in ASTMatchers.h for details. class HasNameMatcher : public SingleNodeMatcherInterface<NamedDecl> { @@ -702,13 +702,13 @@ bool matchesNode(const NamedDecl &Node) const override; private: - /// \brief Unqualified match routine. + /// Unqualified match routine. /// /// It is much faster than the full match, but it only works for unqualified /// matches. bool matchesNodeUnqualified(const NamedDecl &Node) const; - /// \brief Full match routine + /// Full match routine /// /// Fast implementation for the simple case of a named declaration at /// namespace or RecordDecl scope. @@ -716,7 +716,7 @@ /// matchesNodeFullSlow. bool matchesNodeFullFast(const NamedDecl &Node) const; - /// \brief Full match routine + /// Full match routine /// /// It generates the fully qualified name of the declaration (which is /// expensive) before trying to match. @@ -727,16 +727,16 @@ const std::vector<std::string> Names; }; -/// \brief Trampoline function to use VariadicFunction<> to construct a +/// Trampoline function to use VariadicFunction<> to construct a /// HasNameMatcher. Matcher<NamedDecl> hasAnyNameFunc(ArrayRef<const StringRef *> NameRefs); -/// \brief Trampoline function to use VariadicFunction<> to construct a +/// Trampoline function to use VariadicFunction<> to construct a /// hasAnySelector matcher. Matcher<ObjCMessageExpr> hasAnySelectorFunc( ArrayRef<const StringRef *> NameRefs); -/// \brief Matches declarations for QualType and CallExpr. +/// Matches declarations for QualType and CallExpr. /// /// Type argument DeclMatcherT is required by PolymorphicMatcherWithParam1 but /// not actually used. @@ -755,7 +755,7 @@ } private: - /// \brief Forwards to matching on the underlying type of the QualType. + /// Forwards to matching on the underlying type of the QualType. bool matchesSpecialized(const QualType &Node, ASTMatchFinder *Finder, BoundNodesTreeBuilder *Builder) const { if (Node.isNull()) @@ -764,7 +764,7 @@ return matchesSpecialized(*Node, Finder, Builder); } - /// \brief Finds the best declaration for a type and returns whether the inner + /// Finds the best declaration for a type and returns whether the inner /// matcher matches on it. bool matchesSpecialized(const Type &Node, ASTMatchFinder *Finder, BoundNodesTreeBuilder *Builder) const { @@ -838,21 +838,21 @@ return false; } - /// \brief Extracts the Decl the DeclRefExpr references and returns whether + /// Extracts the Decl the DeclRefExpr references and returns whether /// the inner matcher matches on it. bool matchesSpecialized(const DeclRefExpr &Node, ASTMatchFinder *Finder, BoundNodesTreeBuilder *Builder) const { return matchesDecl(Node.getDecl(), Finder, Builder); } - /// \brief Extracts the Decl of the callee of a CallExpr and returns whether + /// Extracts the Decl of the callee of a CallExpr and returns whether /// the inner matcher matches on it. bool matchesSpecialized(const CallExpr &Node, ASTMatchFinder *Finder, BoundNodesTreeBuilder *Builder) const { return matchesDecl(Node.getCalleeDecl(), Finder, Builder); } - /// \brief Extracts the Decl of the constructor call and returns whether the + /// Extracts the Decl of the constructor call and returns whether the /// inner matcher matches on it. bool matchesSpecialized(const CXXConstructExpr &Node, ASTMatchFinder *Finder, @@ -860,7 +860,7 @@ return matchesDecl(Node.getConstructor(), Finder, Builder); } - /// \brief Extracts the operator new of the new call and returns whether the + /// Extracts the operator new of the new call and returns whether the /// inner matcher matches on it. bool matchesSpecialized(const CXXNewExpr &Node, ASTMatchFinder *Finder, @@ -868,7 +868,7 @@ return matchesDecl(Node.getOperatorNew(), Finder, Builder); } - /// \brief Extracts the \c ValueDecl a \c MemberExpr refers to and returns + /// Extracts the \c ValueDecl a \c MemberExpr refers to and returns /// whether the inner matcher matches on it. bool matchesSpecialized(const MemberExpr &Node, ASTMatchFinder *Finder, @@ -876,7 +876,7 @@ return matchesDecl(Node.getMemberDecl(), Finder, Builder); } - /// \brief Extracts the \c LabelDecl a \c AddrLabelExpr refers to and returns + /// Extracts the \c LabelDecl a \c AddrLabelExpr refers to and returns /// whether the inner matcher matches on it. bool matchesSpecialized(const AddrLabelExpr &Node, ASTMatchFinder *Finder, @@ -884,14 +884,14 @@ return matchesDecl(Node.getLabel(), Finder, Builder); } - /// \brief Extracts the declaration of a LabelStmt and returns whether the + /// Extracts the declaration of a LabelStmt and returns whether the /// inner matcher matches on it. bool matchesSpecialized(const LabelStmt &Node, ASTMatchFinder *Finder, BoundNodesTreeBuilder *Builder) const { return matchesDecl(Node.getDecl(), Finder, Builder); } - /// \brief Returns whether the inner matcher \c Node. Returns false if \c Node + /// Returns whether the inner matcher \c Node. Returns false if \c Node /// is \c NULL. bool matchesDecl(const Decl *Node, ASTMatchFinder *Finder, BoundNodesTreeBuilder *Builder) const { @@ -901,7 +901,7 @@ } }; -/// \brief IsBaseType<T>::value is true if T is a "base" type in the AST +/// IsBaseType<T>::value is true if T is a "base" type in the AST /// node class hierarchies. template <typename T> struct IsBaseType { @@ -918,7 +918,7 @@ template <typename T> const bool IsBaseType<T>::value; -/// \brief Interface that allows matchers to traverse the AST. +/// Interface that allows matchers to traverse the AST. /// FIXME: Find a better name. /// /// This provides three entry methods for each base node type in the AST: @@ -938,7 +938,7 @@ /// all nodes, as all nodes have ancestors. class ASTMatchFinder { public: - /// \brief Defines how we descend a level in the AST when we pass + /// Defines how we descend a level in the AST when we pass /// through expressions. enum TraversalKind { /// Will traverse any child nodes. @@ -948,7 +948,7 @@ TK_IgnoreImplicitCastsAndParentheses }; - /// \brief Defines how bindings are processed on recursive matches. + /// Defines how bindings are processed on recursive matches. enum BindKind { /// Stop at the first match and only bind the first match. BK_First, @@ -957,7 +957,7 @@ BK_All }; - /// \brief Defines which ancestors are considered for a match. + /// Defines which ancestors are considered for a match. enum AncestorMatchMode { /// All ancestors. AMM_All, @@ -968,7 +968,7 @@ virtual ~ASTMatchFinder() = default; - /// \brief Returns true if the given class is directly or indirectly derived + /// Returns true if the given class is directly or indirectly derived /// from a base type matching \c base. /// /// A class is considered to be also derived from itself. @@ -1044,27 +1044,27 @@ AncestorMatchMode MatchMode) = 0; }; -/// \brief A type-list implementation. +/// A type-list implementation. /// /// A "linked list" of types, accessible by using the ::head and ::tail /// typedefs. template <typename... Ts> struct TypeList {}; // Empty sentinel type list. template <typename T1, typename... Ts> struct TypeList<T1, Ts...> { - /// \brief The first type on the list. + /// The first type on the list. using head = T1; - /// \brief A sublist with the tail. ie everything but the head. + /// A sublist with the tail. ie everything but the head. /// /// This type is used to do recursion. TypeList<>/EmptyTypeList indicates the /// end of the list. using tail = TypeList<Ts...>; }; -/// \brief The empty type list. +/// The empty type list. using EmptyTypeList = TypeList<>; -/// \brief Helper meta-function to determine if some type \c T is present or +/// Helper meta-function to determine if some type \c T is present or /// a parent type in the list. template <typename AnyTypeList, typename T> struct TypeListContainsSuperOf { @@ -1077,14 +1077,14 @@ static const bool value = false; }; -/// \brief A "type list" that contains all types. +/// A "type list" that contains all types. /// /// Useful for matchers like \c anything and \c unless. using AllNodeBaseTypes = TypeList<Decl, Stmt, NestedNameSpecifier, NestedNameSpecifierLoc, QualType, Type, TypeLoc, CXXCtorInitializer>; -/// \brief Helper meta-function to extract the argument out of a function of +/// Helper meta-function to extract the argument out of a function of /// type void(Arg). /// /// See AST_POLYMORPHIC_SUPPORTED_TYPES for details. @@ -1093,13 +1093,13 @@ using type = T; }; -/// \brief Default type lists for ArgumentAdaptingMatcher matchers. +/// Default type lists for ArgumentAdaptingMatcher matchers. using AdaptativeDefaultFromTypes = AllNodeBaseTypes; using AdaptativeDefaultToTypes = TypeList<Decl, Stmt, NestedNameSpecifier, NestedNameSpecifierLoc, TypeLoc, QualType>; -/// \brief All types that are supported by HasDeclarationMatcher above. +/// All types that are supported by HasDeclarationMatcher above. using HasDeclarationSupportedTypes = TypeList<CallExpr, CXXConstructExpr, CXXNewExpr, DeclRefExpr, EnumType, ElaboratedType, InjectedClassNameType, LabelStmt, AddrLabelExpr, @@ -1107,7 +1107,7 @@ TemplateSpecializationType, TemplateTypeParmType, TypedefType, UnresolvedUsingType>; -/// \brief Converts a \c Matcher<T> to a matcher of desired type \c To by +/// Converts a \c Matcher<T> to a matcher of desired type \c To by /// "adapting" a \c To into a \c T. /// /// The \c ArgumentAdapterT argument specifies how the adaptation is done. @@ -1150,7 +1150,7 @@ } }; -/// \brief A PolymorphicMatcherWithParamN<MatcherT, P1, ..., PN> object can be +/// A PolymorphicMatcherWithParamN<MatcherT, P1, ..., PN> object can be /// created from N parameters p1, ..., pN (of type P1, ..., PN) and /// used as a Matcher<T> where a MatcherT<T, P1, ..., PN>(p1, ..., pN) /// can be constructed. @@ -1219,7 +1219,7 @@ const P2 Param2; }; -/// \brief Matches any instance of the given NodeType. +/// Matches any instance of the given NodeType. /// /// This is useful when a matcher syntactically requires a child matcher, /// but the context doesn't care. See for example: anything(). @@ -1235,7 +1235,7 @@ } }; -/// \brief A Matcher that allows binding the node it matches to an id. +/// A Matcher that allows binding the node it matches to an id. /// /// BindableMatcher provides a \a bind() method that allows binding the /// matched node to an id if the match was successful. @@ -1246,7 +1246,7 @@ explicit BindableMatcher(MatcherInterface<T> *Implementation) : Matcher<T>(Implementation) {} - /// \brief Returns a matcher that will bind the matched node on a match. + /// Returns a matcher that will bind the matched node on a match. /// /// The returned matcher is equivalent to this matcher, but will /// bind the matched node on a match. @@ -1256,7 +1256,7 @@ ->template unconditionalConvertTo<T>(); } - /// \brief Same as Matcher<T>'s conversion operator, but enables binding on + /// Same as Matcher<T>'s conversion operator, but enables binding on /// the returned matcher. operator DynTypedMatcher() const { DynTypedMatcher Result = static_cast<const Matcher<T>&>(*this); @@ -1265,7 +1265,7 @@ } }; -/// \brief Matches nodes of type T that have child nodes of type ChildT for +/// Matches nodes of type T that have child nodes of type ChildT for /// which a specified child matcher matches. /// /// ChildT must be an AST base type. @@ -1283,7 +1283,7 @@ } }; -/// \brief Matches nodes of type T that have child nodes of type ChildT for +/// Matches nodes of type T that have child nodes of type ChildT for /// which a specified child matcher matches. ChildT must be an AST base /// type. /// As opposed to the HasMatcher, the ForEachMatcher will produce a match @@ -1306,10 +1306,10 @@ } }; -/// \brief VariadicOperatorMatcher related types. +/// VariadicOperatorMatcher related types. /// @{ -/// \brief Polymorphic matcher object that uses a \c +/// Polymorphic matcher object that uses a \c /// DynTypedMatcher::VariadicOperator operator. /// /// Input matchers can have any type (including other polymorphic matcher @@ -1338,7 +1338,7 @@ std::tuple<Ps...> Params; }; -/// \brief Overloaded function object to generate VariadicOperatorMatcher +/// Overloaded function object to generate VariadicOperatorMatcher /// objects from arbitrary matchers. template <unsigned MinCount, unsigned MaxCount> struct VariadicOperatorMatcherFunc { @@ -1359,7 +1359,7 @@ return Matcher<T>(*this); } -/// \brief Creates a Matcher<T> that matches if all inner matchers match. +/// Creates a Matcher<T> that matches if all inner matchers match. template<typename T> BindableMatcher<T> makeAllOfComposite( ArrayRef<const Matcher<T> *> InnerMatchers) { @@ -1385,7 +1385,7 @@ .template unconditionalConvertTo<T>()); } -/// \brief Creates a Matcher<T> that matches if +/// Creates a Matcher<T> that matches if /// T is dyn_cast'able into InnerT and all inner matchers match. /// /// Returns BindableMatcher, as matchers that use dyn_cast have @@ -1398,7 +1398,7 @@ makeAllOfComposite(InnerMatchers).template dynCastTo<T>()); } -/// \brief Matches nodes of type T that have at least one descendant node of +/// Matches nodes of type T that have at least one descendant node of /// type DescendantT for which the given inner matcher matches. /// /// DescendantT must be an AST base type. @@ -1418,7 +1418,7 @@ } }; -/// \brief Matches nodes of type \c T that have a parent node of type \c ParentT +/// Matches nodes of type \c T that have a parent node of type \c ParentT /// for which the given inner matcher matches. /// /// \c ParentT must be an AST base type. @@ -1438,7 +1438,7 @@ } }; -/// \brief Matches nodes of type \c T that have at least one ancestor node of +/// Matches nodes of type \c T that have at least one ancestor node of /// type \c AncestorT for which the given inner matcher matches. /// /// \c AncestorT must be an AST base type. @@ -1458,7 +1458,7 @@ } }; -/// \brief Matches nodes of type T that have at least one descendant node of +/// Matches nodes of type T that have at least one descendant node of /// type DescendantT for which the given inner matcher matches. /// /// DescendantT must be an AST base type. @@ -1481,7 +1481,7 @@ } }; -/// \brief Matches on nodes that have a getValue() method if getValue() equals +/// Matches on nodes that have a getValue() method if getValue() equals /// the value the ValueEqualsMatcher was constructed with. template <typename T, typename ValueT> class ValueEqualsMatcher : public SingleNodeMatcherInterface<T> { @@ -1503,7 +1503,7 @@ const ValueT ExpectedValue; }; -/// \brief Template specializations to easily write matchers for floating point +/// Template specializations to easily write matchers for floating point /// literals. template <> inline bool ValueEqualsMatcher<FloatingLiteral, double>::matchesNode( @@ -1529,7 +1529,7 @@ return ExpectedValue.compare(Node.getValue()) == llvm::APFloat::cmpEqual; } -/// \brief A VariadicDynCastAllOfMatcher<SourceT, TargetT> object is a +/// A VariadicDynCastAllOfMatcher<SourceT, TargetT> object is a /// variadic functor that takes a number of Matcher<TargetT> and returns a /// Matcher<SourceT> that matches TargetT nodes that are matched by all of the /// given matchers, if SourceT can be dynamically casted into TargetT. @@ -1549,7 +1549,7 @@ VariadicDynCastAllOfMatcher() {} }; -/// \brief A \c VariadicAllOfMatcher<T> object is a variadic functor that takes +/// A \c VariadicAllOfMatcher<T> object is a variadic functor that takes /// a number of \c Matcher<T> and returns a \c Matcher<T> that matches \c T /// nodes that are matched by all of the given matchers. /// @@ -1567,7 +1567,7 @@ VariadicAllOfMatcher() {} }; -/// \brief Matches nodes of type \c TLoc for which the inner +/// Matches nodes of type \c TLoc for which the inner /// \c Matcher<T> matches. template <typename TLoc, typename T> class LocMatcher : public WrapperMatcherInterface<TLoc> { @@ -1589,7 +1589,7 @@ } }; -/// \brief Matches \c TypeLocs based on an inner matcher matching a certain +/// Matches \c TypeLocs based on an inner matcher matching a certain /// \c QualType. /// /// Used to implement the \c loc() matcher. @@ -1607,7 +1607,7 @@ } }; -/// \brief Matches nodes of type \c T for which the inner matcher matches on a +/// Matches nodes of type \c T for which the inner matcher matches on a /// another node of type \c T that can be reached using a given traverse /// function. template <typename T> @@ -1631,7 +1631,7 @@ QualType (T::*TraverseFunction)() const; }; -/// \brief Matches nodes of type \c T in a ..Loc hierarchy, for which the inner +/// Matches nodes of type \c T in a ..Loc hierarchy, for which the inner /// matcher matches on a another node of type \c T that can be reached using a /// given traverse function. template <typename T> @@ -1655,7 +1655,7 @@ TypeLoc (T::*TraverseFunction)() const; }; -/// \brief Converts a \c Matcher<InnerT> to a \c Matcher<OuterT>, where +/// Converts a \c Matcher<InnerT> to a \c Matcher<OuterT>, where /// \c OuterT is any type that is supported by \c Getter. /// /// \code Getter<OuterT>::value() \endcode returns a @@ -1693,7 +1693,7 @@ const Matcher<InnerTBase> InnerMatcher; }; -/// \brief A simple memoizer of T(*)() functions. +/// A simple memoizer of T(*)() functions. /// /// It will call the passed 'Func' template parameter at most once. /// Used to support AST_MATCHER_FUNCTION() macro. Index: cfe/trunk/include/clang/ASTMatchers/ASTMatchersMacros.h =================================================================== --- cfe/trunk/include/clang/ASTMatchers/ASTMatchersMacros.h +++ cfe/trunk/include/clang/ASTMatchers/ASTMatchersMacros.h @@ -50,7 +50,7 @@ #ifndef LLVM_CLANG_ASTMATCHERS_ASTMATCHERSMACROS_H #define LLVM_CLANG_ASTMATCHERS_ASTMATCHERSMACROS_H -/// \brief AST_MATCHER_FUNCTION(ReturnType, DefineMatcher) { ... } +/// AST_MATCHER_FUNCTION(ReturnType, DefineMatcher) { ... } /// defines a zero parameter function named DefineMatcher() that returns a /// ReturnType object. #define AST_MATCHER_FUNCTION(ReturnType, DefineMatcher) \ @@ -61,7 +61,7 @@ } \ inline ReturnType DefineMatcher##_getInstance() -/// \brief AST_MATCHER_FUNCTION_P(ReturnType, DefineMatcher, ParamType, Param) { +/// AST_MATCHER_FUNCTION_P(ReturnType, DefineMatcher, ParamType, Param) { /// ... } /// defines a single-parameter function named DefineMatcher() that returns a /// ReturnType object. @@ -81,7 +81,7 @@ typedef ReturnType (&DefineMatcher##_Type##OverloadId)(ParamType const &); \ inline ReturnType DefineMatcher(ParamType const &Param) -/// \brief AST_MATCHER(Type, DefineMatcher) { ... } +/// AST_MATCHER(Type, DefineMatcher) { ... } /// defines a zero parameter function named DefineMatcher() that returns a /// Matcher<Type> object. /// @@ -113,7 +113,7 @@ ::clang::ast_matchers::internal::ASTMatchFinder *Finder, \ ::clang::ast_matchers::internal::BoundNodesTreeBuilder *Builder) const -/// \brief AST_MATCHER_P(Type, DefineMatcher, ParamType, Param) { ... } +/// AST_MATCHER_P(Type, DefineMatcher, ParamType, Param) { ... } /// defines a single-parameter function named DefineMatcher() that returns a /// Matcher<Type> object. /// @@ -159,7 +159,7 @@ ::clang::ast_matchers::internal::ASTMatchFinder *Finder, \ ::clang::ast_matchers::internal::BoundNodesTreeBuilder *Builder) const -/// \brief AST_MATCHER_P2( +/// AST_MATCHER_P2( /// Type, DefineMatcher, ParamType1, Param1, ParamType2, Param2) { ... } /// defines a two-parameter function named DefineMatcher() that returns a /// Matcher<Type> object. @@ -211,7 +211,7 @@ ::clang::ast_matchers::internal::ASTMatchFinder *Finder, \ ::clang::ast_matchers::internal::BoundNodesTreeBuilder *Builder) const -/// \brief Construct a type-list to be passed to the AST_POLYMORPHIC_MATCHER* +/// Construct a type-list to be passed to the AST_POLYMORPHIC_MATCHER* /// macros. /// /// You can't pass something like \c TypeList<Foo, Bar> to a macro, because it @@ -222,7 +222,7 @@ #define AST_POLYMORPHIC_SUPPORTED_TYPES(...) \ void(::clang::ast_matchers::internal::TypeList<__VA_ARGS__>) -/// \brief AST_POLYMORPHIC_MATCHER(DefineMatcher) { ... } +/// AST_POLYMORPHIC_MATCHER(DefineMatcher) { ... } /// defines a single-parameter function named DefineMatcher() that is /// polymorphic in the return type. /// @@ -252,7 +252,7 @@ ::clang::ast_matchers::internal::ASTMatchFinder *Finder, \ ::clang::ast_matchers::internal::BoundNodesTreeBuilder *Builder) const -/// \brief AST_POLYMORPHIC_MATCHER_P(DefineMatcher, ParamType, Param) { ... } +/// AST_POLYMORPHIC_MATCHER_P(DefineMatcher, ParamType, Param) { ... } /// defines a single-parameter function named DefineMatcher() that is /// polymorphic in the return type. /// @@ -305,7 +305,7 @@ ::clang::ast_matchers::internal::BoundNodesTreeBuilder *Builder) \ const -/// \brief AST_POLYMORPHIC_MATCHER_P2( +/// AST_POLYMORPHIC_MATCHER_P2( /// DefineMatcher, ParamType1, Param1, ParamType2, Param2) { ... } /// defines a two-parameter function named matcher() that is polymorphic in /// the return type. @@ -383,7 +383,7 @@ ::clang::ast_matchers::internal::TypeTraverseMatcher, \ ReturnTypesF>::Func MatcherName -/// \brief AST_TYPE_TRAVERSE_MATCHER(MatcherName, FunctionName) defines +/// AST_TYPE_TRAVERSE_MATCHER(MatcherName, FunctionName) defines /// the matcher \c MatcherName that can be used to traverse from one \c Type /// to another. /// @@ -426,7 +426,7 @@ ReturnTypesF>::Func MatcherName##Loc; \ AST_TYPE_TRAVERSE_MATCHER_DEF(MatcherName, ReturnTypesF) -/// \brief AST_TYPELOC_TRAVERSE_MATCHER(MatcherName, FunctionName) works +/// AST_TYPELOC_TRAVERSE_MATCHER(MatcherName, FunctionName) works /// identical to \c AST_TYPE_TRAVERSE_MATCHER but operates on \c TypeLocs. #define AST_TYPELOC_TRAVERSE_MATCHER(MatcherName, FunctionName, ReturnTypesF) \ namespace internal { \ Index: cfe/trunk/include/clang/ASTMatchers/Dynamic/Diagnostics.h =================================================================== --- cfe/trunk/include/clang/ASTMatchers/Dynamic/Diagnostics.h +++ cfe/trunk/include/clang/ASTMatchers/Dynamic/Diagnostics.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Diagnostics class to manage error messages. +/// Diagnostics class to manage error messages. /// //===----------------------------------------------------------------------===// @@ -39,7 +39,7 @@ SourceLocation End; }; -/// \brief A VariantValue instance annotated with its parser context. +/// A VariantValue instance annotated with its parser context. struct ParserValue { ParserValue() : Text(), Range(), Value() {} StringRef Text; @@ -47,16 +47,16 @@ VariantValue Value; }; -/// \brief Helper class to manage error messages. +/// Helper class to manage error messages. class Diagnostics { public: - /// \brief Parser context types. + /// Parser context types. enum ContextType { CT_MatcherArg = 0, CT_MatcherConstruct = 1 }; - /// \brief All errors from the system. + /// All errors from the system. enum ErrorType { ET_None = 0, @@ -80,7 +80,7 @@ ET_ParserOverloadedType = 110 }; - /// \brief Helper stream class. + /// Helper stream class. class ArgStream { public: ArgStream(std::vector<std::string> *Out) : Out(Out) {} @@ -93,7 +93,7 @@ std::vector<std::string> *Out; }; - /// \brief Class defining a parser context. + /// Class defining a parser context. /// /// Used by the parser to specify (possibly recursive) contexts where the /// parsing/construction can fail. Any error triggered within a context will @@ -101,11 +101,11 @@ /// This class should be used as a RAII instance in the stack. struct Context { public: - /// \brief About to call the constructor for a matcher. + /// About to call the constructor for a matcher. enum ConstructMatcherEnum { ConstructMatcher }; Context(ConstructMatcherEnum, Diagnostics *Error, StringRef MatcherName, SourceRange MatcherRange); - /// \brief About to recurse into parsing one argument for a matcher. + /// About to recurse into parsing one argument for a matcher. enum MatcherArgEnum { MatcherArg }; Context(MatcherArgEnum, Diagnostics *Error, StringRef MatcherName, SourceRange MatcherRange, unsigned ArgNumber); @@ -115,7 +115,7 @@ Diagnostics *const Error; }; - /// \brief Context for overloaded matcher construction. + /// Context for overloaded matcher construction. /// /// This context will take care of merging all errors that happen within it /// as "candidate" overloads for the same matcher. @@ -124,7 +124,7 @@ OverloadContext(Diagnostics* Error); ~OverloadContext(); - /// \brief Revert all errors that happened within this context. + /// Revert all errors that happened within this context. void revertErrors(); private: @@ -132,21 +132,21 @@ unsigned BeginIndex; }; - /// \brief Add an error to the diagnostics. + /// Add an error to the diagnostics. /// /// All the context information will be kept on the error message. /// \return a helper class to allow the caller to pass the arguments for the /// error message, using the << operator. ArgStream addError(SourceRange Range, ErrorType Error); - /// \brief Information stored for one frame of the context. + /// Information stored for one frame of the context. struct ContextFrame { ContextType Type; SourceRange Range; std::vector<std::string> Args; }; - /// \brief Information stored for each error found. + /// Information stored for each error found. struct ErrorContent { std::vector<ContextFrame> ContextStack; struct Message { @@ -158,20 +158,20 @@ }; ArrayRef<ErrorContent> errors() const { return Errors; } - /// \brief Returns a simple string representation of each error. + /// Returns a simple string representation of each error. /// /// Each error only shows the error message without any context. void printToStream(llvm::raw_ostream &OS) const; std::string toString() const; - /// \brief Returns the full string representation of each error. + /// Returns the full string representation of each error. /// /// Each error message contains the full context. void printToStreamFull(llvm::raw_ostream &OS) const; std::string toStringFull() const; private: - /// \brief Helper function used by the constructors of ContextFrame. + /// Helper function used by the constructors of ContextFrame. ArgStream pushContextFrame(ContextType Type, SourceRange Range); std::vector<ContextFrame> ContextStack; Index: cfe/trunk/include/clang/ASTMatchers/Dynamic/Parser.h =================================================================== --- cfe/trunk/include/clang/ASTMatchers/Dynamic/Parser.h +++ cfe/trunk/include/clang/ASTMatchers/Dynamic/Parser.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Simple matcher expression parser. +/// Simple matcher expression parser. /// /// The parser understands matcher expressions of the form: /// MatcherName(Arg0, Arg1, ..., ArgN) @@ -52,10 +52,10 @@ class Diagnostics; -/// \brief Matcher expression parser. +/// Matcher expression parser. class Parser { public: - /// \brief Interface to connect the parser with the registry and more. + /// Interface to connect the parser with the registry and more. /// /// The parser uses the Sema instance passed into /// parseMatcherExpression() to handle all matcher tokens. The simplest @@ -69,7 +69,7 @@ public: virtual ~Sema(); - /// \brief Process a matcher expression. + /// Process a matcher expression. /// /// All the arguments passed here have already been processed. /// @@ -92,7 +92,7 @@ ArrayRef<ParserValue> Args, Diagnostics *Error) = 0; - /// \brief Look up a matcher by name. + /// Look up a matcher by name. /// /// \param MatcherName The matcher name found by the parser. /// @@ -101,7 +101,7 @@ virtual llvm::Optional<MatcherCtor> lookupMatcherCtor(StringRef MatcherName) = 0; - /// \brief Compute the list of completion types for \p Context. + /// Compute the list of completion types for \p Context. /// /// Each element of \p Context represents a matcher invocation, going from /// outermost to innermost. Elements are pairs consisting of a reference to @@ -112,7 +112,7 @@ virtual std::vector<ArgKind> getAcceptedCompletionTypes( llvm::ArrayRef<std::pair<MatcherCtor, unsigned>> Context); - /// \brief Compute the list of completions that match any of + /// Compute the list of completions that match any of /// \p AcceptedTypes. /// /// \param AcceptedTypes All types accepted for this completion. @@ -125,7 +125,7 @@ getMatcherCompletions(llvm::ArrayRef<ArgKind> AcceptedTypes); }; - /// \brief Sema implementation that uses the matcher registry to process the + /// Sema implementation that uses the matcher registry to process the /// tokens. class RegistrySema : public Parser::Sema { public: @@ -149,7 +149,7 @@ using NamedValueMap = llvm::StringMap<VariantValue>; - /// \brief Parse a matcher expression. + /// Parse a matcher expression. /// /// \param MatcherCode The matcher expression to parse. /// @@ -178,7 +178,7 @@ return parseMatcherExpression(MatcherCode, nullptr, Error); } - /// \brief Parse an expression. + /// Parse an expression. /// /// Parses any expression supported by this parser. In general, the /// \c parseMatcherExpression function is a better approach to get a matcher @@ -202,7 +202,7 @@ return parseExpression(Code, nullptr, Value, Error); } - /// \brief Complete an expression at the given offset. + /// Complete an expression at the given offset. /// /// \param S The Sema instance that will help the parser /// construct the matchers. If null, it uses the default registry. Index: cfe/trunk/include/clang/ASTMatchers/Dynamic/Registry.h =================================================================== --- cfe/trunk/include/clang/ASTMatchers/Dynamic/Registry.h +++ cfe/trunk/include/clang/ASTMatchers/Dynamic/Registry.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Registry of all known matchers. +/// Registry of all known matchers. /// /// The registry provides a generic interface to construct any matcher by name. // @@ -49,13 +49,13 @@ return TypedText == Other.TypedText && MatcherDecl == Other.MatcherDecl; } - /// \brief The text to type to select this matcher. + /// The text to type to select this matcher. std::string TypedText; - /// \brief The "declaration" of the matcher, with type information. + /// The "declaration" of the matcher, with type information. std::string MatcherDecl; - /// \brief Value corresponding to the "specificity" of the converted matcher. + /// Value corresponding to the "specificity" of the converted matcher. /// /// Zero specificity indicates that this conversion would produce a trivial /// matcher that will either always or never match. @@ -67,13 +67,13 @@ public: Registry() = delete; - /// \brief Look up a matcher in the registry by name, + /// Look up a matcher in the registry by name, /// /// \return An opaque value which may be used to refer to the matcher /// constructor, or Optional<MatcherCtor>() if not found. static llvm::Optional<MatcherCtor> lookupMatcherCtor(StringRef MatcherName); - /// \brief Compute the list of completion types for \p Context. + /// Compute the list of completion types for \p Context. /// /// Each element of \p Context represents a matcher invocation, going from /// outermost to innermost. Elements are pairs consisting of a reference to @@ -84,7 +84,7 @@ static std::vector<ArgKind> getAcceptedCompletionTypes( llvm::ArrayRef<std::pair<MatcherCtor, unsigned>> Context); - /// \brief Compute the list of completions that match any of + /// Compute the list of completions that match any of /// \p AcceptedTypes. /// /// \param AcceptedTypes All types accepted for this completion. @@ -96,7 +96,7 @@ static std::vector<MatcherCompletion> getMatcherCompletions(ArrayRef<ArgKind> AcceptedTypes); - /// \brief Construct a matcher from the registry. + /// Construct a matcher from the registry. /// /// \param Ctor The matcher constructor to instantiate. /// @@ -116,7 +116,7 @@ ArrayRef<ParserValue> Args, Diagnostics *Error); - /// \brief Construct a matcher from the registry and bind it. + /// Construct a matcher from the registry and bind it. /// /// Similar the \c constructMatcher() above, but it then tries to bind the /// matcher to the specified \c BindID. Index: cfe/trunk/include/clang/ASTMatchers/Dynamic/VariantValue.h =================================================================== --- cfe/trunk/include/clang/ASTMatchers/Dynamic/VariantValue.h +++ cfe/trunk/include/clang/ASTMatchers/Dynamic/VariantValue.h @@ -7,7 +7,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Polymorphic value type. +/// Polymorphic value type. /// /// Supports all the types required for dynamic Matcher construction. /// Used by the registry to construct matchers in a generic way. @@ -28,7 +28,7 @@ namespace ast_matchers { namespace dynamic { -/// \brief Kind identifier. +/// Kind identifier. /// /// It supports all types that VariantValue can contain. class ArgKind { @@ -40,10 +40,10 @@ AK_Unsigned, AK_String }; - /// \brief Constructor for non-matcher types. + /// Constructor for non-matcher types. ArgKind(Kind K) : K(K) { assert(K != AK_Matcher); } - /// \brief Constructor for matcher types. + /// Constructor for matcher types. ArgKind(ast_type_traits::ASTNodeKind MatcherKind) : K(AK_Matcher), MatcherKind(MatcherKind) {} @@ -53,7 +53,7 @@ return MatcherKind; } - /// \brief Determines if this type can be converted to \p To. + /// Determines if this type can be converted to \p To. /// /// \param To the requested destination type. /// @@ -67,7 +67,7 @@ return K < Other.K; } - /// \brief String representation of the type. + /// String representation of the type. std::string asString() const; private: @@ -77,7 +77,7 @@ using ast_matchers::internal::DynTypedMatcher; -/// \brief A variant matcher object. +/// A variant matcher object. /// /// The purpose of this object is to abstract simple and polymorphic matchers /// into a single object type. @@ -91,7 +91,7 @@ /// - hasTypedMatcher<T>()/getTypedMatcher<T>(): These calls will determine if /// the underlying matcher(s) can unambiguously return a Matcher<T>. class VariantMatcher { - /// \brief Methods that depend on T from hasTypedMatcher/getTypedMatcher. + /// Methods that depend on T from hasTypedMatcher/getTypedMatcher. class MatcherOps { public: MatcherOps(ast_type_traits::ASTNodeKind NodeKind) : NodeKind(NodeKind) {} @@ -99,12 +99,12 @@ bool canConstructFrom(const DynTypedMatcher &Matcher, bool &IsExactMatch) const; - /// \brief Convert \p Matcher the destination type and return it as a new + /// Convert \p Matcher the destination type and return it as a new /// DynTypedMatcher. virtual DynTypedMatcher convertMatcher(const DynTypedMatcher &Matcher) const = 0; - /// \brief Constructs a variadic typed matcher from \p InnerMatchers. + /// Constructs a variadic typed matcher from \p InnerMatchers. /// Will try to convert each inner matcher to the destination type and /// return llvm::None if it fails to do so. llvm::Optional<DynTypedMatcher> @@ -118,7 +118,7 @@ ast_type_traits::ASTNodeKind NodeKind; }; - /// \brief Payload interface to be specialized by each matcher type. + /// Payload interface to be specialized by each matcher type. /// /// It follows a similar interface as VariantMatcher itself. class Payload { @@ -133,39 +133,39 @@ }; public: - /// \brief A null matcher. + /// A null matcher. VariantMatcher(); - /// \brief Clones the provided matcher. + /// Clones the provided matcher. static VariantMatcher SingleMatcher(const DynTypedMatcher &Matcher); - /// \brief Clones the provided matchers. + /// Clones the provided matchers. /// /// They should be the result of a polymorphic matcher. static VariantMatcher PolymorphicMatcher(std::vector<DynTypedMatcher> Matchers); - /// \brief Creates a 'variadic' operator matcher. + /// Creates a 'variadic' operator matcher. /// /// It will bind to the appropriate type on getTypedMatcher<T>(). static VariantMatcher VariadicOperatorMatcher(DynTypedMatcher::VariadicOperator Op, std::vector<VariantMatcher> Args); - /// \brief Makes the matcher the "null" matcher. + /// Makes the matcher the "null" matcher. void reset(); - /// \brief Whether the matcher is null. + /// Whether the matcher is null. bool isNull() const { return !Value; } - /// \brief Return a single matcher, if there is no ambiguity. + /// Return a single matcher, if there is no ambiguity. /// /// \returns the matcher, if there is only one matcher. An empty Optional, if /// the underlying matcher is a polymorphic matcher with more than one /// representation. llvm::Optional<DynTypedMatcher> getSingleMatcher() const; - /// \brief Determines if the contained matcher can be converted to + /// Determines if the contained matcher can be converted to /// \c Matcher<T>. /// /// For the Single case, it returns true if it can be converted to @@ -179,7 +179,7 @@ return Value->getTypedMatcher(TypedMatcherOps<T>()).hasValue(); } - /// \brief Determines if the contained matcher can be converted to \p Kind. + /// Determines if the contained matcher can be converted to \p Kind. /// /// \param Kind the requested destination type. /// @@ -192,7 +192,7 @@ return false; } - /// \brief Return this matcher as a \c Matcher<T>. + /// Return this matcher as a \c Matcher<T>. /// /// Handles the different types (Single, Polymorphic) accordingly. /// Asserts that \c hasTypedMatcher<T>() is true. @@ -203,7 +203,7 @@ ->template convertTo<T>(); } - /// \brief String representation of the type of the value. + /// String representation of the type of the value. /// /// If the underlying matcher is a polymorphic one, the string will show all /// the types. @@ -234,7 +234,7 @@ } }; -/// \brief Variant value class. +/// Variant value class. /// /// Basically, a tagged union with value type semantics. /// It is used by the registry as the return value and argument type for the @@ -256,46 +256,46 @@ ~VariantValue(); VariantValue &operator=(const VariantValue &Other); - /// \brief Specific constructors for each supported type. + /// Specific constructors for each supported type. VariantValue(bool Boolean); VariantValue(double Double); VariantValue(unsigned Unsigned); VariantValue(StringRef String); VariantValue(const VariantMatcher &Matchers); - /// \brief Constructs an \c unsigned value (disambiguation from bool). + /// Constructs an \c unsigned value (disambiguation from bool). VariantValue(int Signed) : VariantValue(static_cast<unsigned>(Signed)) {} - /// \brief Returns true iff this is not an empty value. + /// Returns true iff this is not an empty value. explicit operator bool() const { return hasValue(); } bool hasValue() const { return Type != VT_Nothing; } - /// \brief Boolean value functions. + /// Boolean value functions. bool isBoolean() const; bool getBoolean() const; void setBoolean(bool Boolean); - /// \brief Double value functions. + /// Double value functions. bool isDouble() const; double getDouble() const; void setDouble(double Double); - /// \brief Unsigned value functions. + /// Unsigned value functions. bool isUnsigned() const; unsigned getUnsigned() const; void setUnsigned(unsigned Unsigned); - /// \brief String value functions. + /// String value functions. bool isString() const; const std::string &getString() const; void setString(StringRef String); - /// \brief Matcher value functions. + /// Matcher value functions. bool isMatcher() const; const VariantMatcher &getMatcher() const; void setMatcher(const VariantMatcher &Matcher); - /// \brief Determines if the contained value can be converted to \p Kind. + /// Determines if the contained value can be converted to \p Kind. /// /// \param Kind the requested destination type. /// @@ -303,7 +303,7 @@ /// conversion. bool isConvertibleTo(ArgKind Kind, unsigned* Specificity) const; - /// \brief Determines if the contained value can be converted to any kind + /// Determines if the contained value can be converted to any kind /// in \p Kinds. /// /// \param Kinds the requested destination types. @@ -313,13 +313,13 @@ /// conversions. bool isConvertibleTo(ArrayRef<ArgKind> Kinds, unsigned *Specificity) const; - /// \brief String representation of the type of the value. + /// String representation of the type of the value. std::string getTypeAsString() const; private: void reset(); - /// \brief All supported value types. + /// All supported value types. enum ValueType { VT_Nothing, VT_Boolean, @@ -329,7 +329,7 @@ VT_Matcher }; - /// \brief All supported value types. + /// All supported value types. union AllValues { unsigned Unsigned; double Double; Index: cfe/trunk/include/clang/Analysis/Analyses/Consumed.h =================================================================== --- cfe/trunk/include/clang/Analysis/Analyses/Consumed.h +++ cfe/trunk/include/clang/Analysis/Analyses/Consumed.h @@ -58,10 +58,10 @@ public: virtual ~ConsumedWarningsHandlerBase(); - /// \brief Emit the warnings and notes left by the analysis. + /// Emit the warnings and notes left by the analysis. virtual void emitDiagnostics() {} - /// \brief Warn that a variable's state doesn't match at the entry and exit + /// Warn that a variable's state doesn't match at the entry and exit /// of a loop. /// /// \param Loc -- The location of the end of the loop. @@ -71,7 +71,7 @@ virtual void warnLoopStateMismatch(SourceLocation Loc, StringRef VariableName) {} - /// \brief Warn about parameter typestate mismatches upon return. + /// Warn about parameter typestate mismatches upon return. /// /// \param Loc -- The SourceLocation of the return statement. /// @@ -92,7 +92,7 @@ // FIXME: This can be removed when the attr propagation fix for templated // classes lands. - /// \brief Warn about return typestates set for unconsumable types. + /// Warn about return typestates set for unconsumable types. /// /// \param Loc -- The location of the attributes. /// @@ -100,7 +100,7 @@ virtual void warnReturnTypestateForUnconsumableType(SourceLocation Loc, StringRef TypeName) {} - /// \brief Warn about return typestate mismatches. + /// Warn about return typestate mismatches. /// /// \param Loc -- The SourceLocation of the return statement. /// @@ -113,7 +113,7 @@ StringRef ExpectedState, StringRef ObservedState) {} - /// \brief Warn about use-while-consumed errors. + /// Warn about use-while-consumed errors. /// \param MethodName -- The name of the method that was incorrectly /// invoked. /// @@ -124,7 +124,7 @@ StringRef State, SourceLocation Loc) {} - /// \brief Warn about use-while-consumed errors. + /// Warn about use-while-consumed errors. /// \param MethodName -- The name of the method that was incorrectly /// invoked. /// @@ -157,48 +157,48 @@ : Reachable(Other.Reachable), From(Other.From), VarMap(Other.VarMap), TmpMap() {} - /// \brief Warn if any of the parameters being tracked are not in the state + /// Warn if any of the parameters being tracked are not in the state /// they were declared to be in upon return from a function. void checkParamsForReturnTypestate(SourceLocation BlameLoc, ConsumedWarningsHandlerBase &WarningsHandler) const; - /// \brief Clear the TmpMap. + /// Clear the TmpMap. void clearTemporaries(); - /// \brief Get the consumed state of a given variable. + /// Get the consumed state of a given variable. ConsumedState getState(const VarDecl *Var) const; - /// \brief Get the consumed state of a given temporary value. + /// Get the consumed state of a given temporary value. ConsumedState getState(const CXXBindTemporaryExpr *Tmp) const; - /// \brief Merge this state map with another map. + /// Merge this state map with another map. void intersect(const ConsumedStateMap &Other); void intersectAtLoopHead(const CFGBlock *LoopHead, const CFGBlock *LoopBack, const ConsumedStateMap *LoopBackStates, ConsumedWarningsHandlerBase &WarningsHandler); - /// \brief Return true if this block is reachable. + /// Return true if this block is reachable. bool isReachable() const { return Reachable; } - /// \brief Mark the block as unreachable. + /// Mark the block as unreachable. void markUnreachable(); - /// \brief Set the source for a decision about the branching of states. + /// Set the source for a decision about the branching of states. /// \param Source -- The statement that was the origin of a branching /// decision. void setSource(const Stmt *Source) { this->From = Source; } - /// \brief Set the consumed state of a given variable. + /// Set the consumed state of a given variable. void setState(const VarDecl *Var, ConsumedState State); - /// \brief Set the consumed state of a given temporary value. + /// Set the consumed state of a given temporary value. void setState(const CXXBindTemporaryExpr *Tmp, ConsumedState State); - /// \brief Remove the temporary value from our state map. + /// Remove the temporary value from our state map. void remove(const CXXBindTemporaryExpr *Tmp); - /// \brief Tests to see if there is a mismatch in the states stored in two + /// Tests to see if there is a mismatch in the states stored in two /// maps. /// /// \param Other -- The second map to compare against. @@ -257,7 +257,7 @@ ConsumedState getExpectedReturnState() const { return ExpectedReturnState; } - /// \brief Check a function's CFG for consumed violations. + /// Check a function's CFG for consumed violations. /// /// We traverse the blocks in the CFG, keeping track of the state of each /// value who's type has uniquness annotations. If methods are invoked in Index: cfe/trunk/include/clang/Analysis/Analyses/Dominators.h =================================================================== --- cfe/trunk/include/clang/Analysis/Analyses/Dominators.h +++ cfe/trunk/include/clang/Analysis/Analyses/Dominators.h @@ -37,7 +37,7 @@ using DomTreeNode = llvm::DomTreeNodeBase<CFGBlock>; -/// \brief Concrete subclass of DominatorTreeBase for Clang +/// Concrete subclass of DominatorTreeBase for Clang /// This class implements the dominators tree functionality given a Clang CFG. /// class DominatorTree : public ManagedAnalysis { @@ -54,18 +54,18 @@ llvm::DomTreeBase<CFGBlock>& getBase() { return *DT; } - /// \brief This method returns the root CFGBlock of the dominators tree. + /// This method returns the root CFGBlock of the dominators tree. CFGBlock *getRoot() const { return DT->getRoot(); } - /// \brief This method returns the root DomTreeNode, which is the wrapper + /// This method returns the root DomTreeNode, which is the wrapper /// for CFGBlock. DomTreeNode *getRootNode() const { return DT->getRootNode(); } - /// \brief This method compares two dominator trees. + /// This method compares two dominator trees. /// The method returns false if the other dominator tree matches this /// dominator tree, otherwise returns true. bool compare(DominatorTree &Other) const { @@ -81,14 +81,14 @@ return false; } - /// \brief This method builds the dominator tree for a given CFG + /// This method builds the dominator tree for a given CFG /// The CFG information is passed via AnalysisDeclContext void buildDominatorTree(AnalysisDeclContext &AC) { cfg = AC.getCFG(); DT->recalculate(*cfg); } - /// \brief This method dumps immediate dominators for each block, + /// This method dumps immediate dominators for each block, /// mainly used for debug purposes. void dump() { llvm::errs() << "Immediate dominance tree (Node#,IDom#):\n"; @@ -104,20 +104,20 @@ } } - /// \brief This method tests if one CFGBlock dominates the other. + /// This method tests if one CFGBlock dominates the other. /// The method return true if A dominates B, false otherwise. /// Note a block always dominates itself. bool dominates(const CFGBlock *A, const CFGBlock *B) const { return DT->dominates(A, B); } - /// \brief This method tests if one CFGBlock properly dominates the other. + /// This method tests if one CFGBlock properly dominates the other. /// The method return true if A properly dominates B, false otherwise. bool properlyDominates(const CFGBlock *A, const CFGBlock *B) const { return DT->properlyDominates(A, B); } - /// \brief This method finds the nearest common dominator CFG block + /// This method finds the nearest common dominator CFG block /// for CFG block A and B. If there is no such block then return NULL. CFGBlock *findNearestCommonDominator(CFGBlock *A, CFGBlock *B) { return DT->findNearestCommonDominator(A, B); @@ -128,24 +128,24 @@ return DT->findNearestCommonDominator(A, B); } - /// \brief This method is used to update the dominator + /// This method is used to update the dominator /// tree information when a node's immediate dominator changes. void changeImmediateDominator(CFGBlock *N, CFGBlock *NewIDom) { DT->changeImmediateDominator(N, NewIDom); } - /// \brief This method tests if the given CFGBlock can be reachable from root. + /// This method tests if the given CFGBlock can be reachable from root. /// Returns true if reachable, false otherwise. bool isReachableFromEntry(const CFGBlock *A) { return DT->isReachableFromEntry(A); } - /// \brief This method releases the memory held by the dominator tree. + /// This method releases the memory held by the dominator tree. virtual void releaseMemory() { DT->releaseMemory(); } - /// \brief This method converts the dominator tree to human readable form. + /// This method converts the dominator tree to human readable form. virtual void print(raw_ostream &OS, const llvm::Module* M= nullptr) const { DT->print(OS); } Index: cfe/trunk/include/clang/Analysis/Analyses/FormatString.h =================================================================== --- cfe/trunk/include/clang/Analysis/Analyses/FormatString.h +++ cfe/trunk/include/clang/Analysis/Analyses/FormatString.h @@ -510,7 +510,7 @@ return getConversionSpecifier().consumesDataArgument(); } - /// \brief Returns the builtin type that a data argument + /// Returns the builtin type that a data argument /// paired with this format specifier should have. This method /// will return null if the format specifier does not have /// a matching data argument or the matching argument matches Index: cfe/trunk/include/clang/Analysis/Analyses/PostOrderCFGView.h =================================================================== --- cfe/trunk/include/clang/Analysis/Analyses/PostOrderCFGView.h +++ cfe/trunk/include/clang/Analysis/Analyses/PostOrderCFGView.h @@ -30,7 +30,7 @@ virtual void anchor(); public: - /// \brief Implements a set of CFGBlocks using a BitVector. + /// Implements a set of CFGBlocks using a BitVector. /// /// This class contains a minimal interface, primarily dictated by the SetType /// template parameter of the llvm::po_iterator template, as used with @@ -47,7 +47,7 @@ CFGBlockSet() = default; CFGBlockSet(const CFG *G) : VisitedBlockIDs(G->getNumBlockIDs(), false) {} - /// \brief Set the bit associated with a particular CFGBlock. + /// Set the bit associated with a particular CFGBlock. /// This is the important method for the SetType template parameter. std::pair<llvm::NoneType, bool> insert(const CFGBlock *Block) { // Note that insert() is called by po_iterator, which doesn't check to @@ -62,7 +62,7 @@ return std::make_pair(None, true); } - /// \brief Check if the bit for a CFGBlock has been already set. + /// Check if the bit for a CFGBlock has been already set. /// This method is for tracking visited blocks in the main threadsafety /// loop. Block must not be null. bool alreadySet(const CFGBlock *Block) { Index: cfe/trunk/include/clang/Analysis/Analyses/ThreadSafety.h =================================================================== --- cfe/trunk/include/clang/Analysis/Analyses/ThreadSafety.h +++ cfe/trunk/include/clang/Analysis/Analyses/ThreadSafety.h @@ -228,7 +228,7 @@ bool IssueBetaWarnings = false; }; -/// \brief Check a function's CFG for thread-safety violations. +/// Check a function's CFG for thread-safety violations. /// /// We traverse the blocks in the CFG, compute the set of mutexes that are held /// at the end of each block, and issue warnings for thread safety violations. @@ -239,7 +239,7 @@ void threadSafetyCleanup(BeforeSet *Cache); -/// \brief Helper function that returns a LockKind required for the given level +/// Helper function that returns a LockKind required for the given level /// of access. LockKind getLockKindFromAccessKind(AccessKind AK); Index: cfe/trunk/include/clang/Analysis/Analyses/ThreadSafetyCommon.h =================================================================== --- cfe/trunk/include/clang/Analysis/Analyses/ThreadSafetyCommon.h +++ cfe/trunk/include/clang/Analysis/Analyses/ThreadSafetyCommon.h @@ -329,7 +329,7 @@ // Translate clang::Expr to til::SExpr. class SExprBuilder { public: - /// \brief Encapsulates the lexical context of a function call. The lexical + /// Encapsulates the lexical context of a function call. The lexical /// context includes the arguments to the call, including the implicit object /// argument. When an attribute containing a mutex expression is attached to /// a method, the expression may refer to formal parameters of the method. Index: cfe/trunk/include/clang/Analysis/Analyses/ThreadSafetyLogical.h =================================================================== --- cfe/trunk/include/clang/Analysis/Analyses/ThreadSafetyLogical.h +++ cfe/trunk/include/clang/Analysis/Analyses/ThreadSafetyLogical.h @@ -29,7 +29,7 @@ }; Opcode kind() const { return Kind; } - /// \brief Logical implication. Returns true if the LExpr implies RHS, i.e. if + /// Logical implication. Returns true if the LExpr implies RHS, i.e. if /// the LExpr holds, then RHS must hold. For example, (A & B) implies A. inline bool implies(const LExpr *RHS) const; @@ -92,7 +92,7 @@ static bool classof(const LExpr *E) { return E->kind() == LExpr::Not; } }; -/// \brief Logical implication. Returns true if LHS implies RHS, i.e. if LHS +/// Logical implication. Returns true if LHS implies RHS, i.e. if LHS /// holds, then RHS must hold. For example, (A & B) implies A. bool implies(const LExpr *LHS, const LExpr *RHS); Index: cfe/trunk/include/clang/Analysis/AnalysisDeclContext.h =================================================================== --- cfe/trunk/include/clang/Analysis/AnalysisDeclContext.h +++ cfe/trunk/include/clang/Analysis/AnalysisDeclContext.h @@ -135,22 +135,22 @@ void registerForcedBlockExpression(const Stmt *stmt); const CFGBlock *getBlockForRegisteredExpression(const Stmt *stmt); - /// \brief Get the body of the Declaration. + /// Get the body of the Declaration. Stmt *getBody() const; - /// \brief Get the body of the Declaration. + /// Get the body of the Declaration. /// \param[out] IsAutosynthesized Specifies if the body is auto-generated /// by the BodyFarm. Stmt *getBody(bool &IsAutosynthesized) const; - /// \brief Checks if the body of the Decl is generated by the BodyFarm. + /// Checks if the body of the Decl is generated by the BodyFarm. /// /// Note, the lookup is not free. We are going to call getBody behind /// the scenes. /// \sa getBody bool isBodyAutosynthesized() const; - /// \brief Checks if the body of the Decl is generated by the BodyFarm from a + /// Checks if the body of the Decl is generated by the BodyFarm from a /// model file. /// /// Note, the lookup is not free. We are going to call getBody behind @@ -169,7 +169,7 @@ void dumpCFG(bool ShowColors); - /// \brief Returns true if we have built a CFG for this analysis context. + /// Returns true if we have built a CFG for this analysis context. /// Note that this doesn't correspond to whether or not a valid CFG exists, it /// corresponds to whether we *attempted* to build one. bool isCFGBuilt() const { return builtCFG; } Index: cfe/trunk/include/clang/Analysis/CFG.h =================================================================== --- cfe/trunk/include/clang/Analysis/CFG.h +++ cfe/trunk/include/clang/Analysis/CFG.h @@ -92,7 +92,7 @@ CFGElement() = default; public: - /// \brief Convert to the specified CFGElement type, asserting that this + /// Convert to the specified CFGElement type, asserting that this /// CFGElement is of the desired type. template<typename T> T castAs() const { @@ -103,7 +103,7 @@ return t; } - /// \brief Convert to the specified CFGElement type, returning None if this + /// Convert to the specified CFGElement type, returning None if this /// CFGElement is not of the desired type. template<typename T> Optional<T> getAs() const { @@ -980,7 +980,7 @@ }; -/// \brief CFGCallback defines methods that should be called when a logical +/// CFGCallback defines methods that should be called when a logical /// operator error is found when building the CFG. class CFGCallback { public: Index: cfe/trunk/include/clang/Analysis/CallGraph.h =================================================================== --- cfe/trunk/include/clang/Analysis/CallGraph.h +++ cfe/trunk/include/clang/Analysis/CallGraph.h @@ -34,7 +34,7 @@ class DeclContext; class Stmt; -/// \brief The AST-based call graph. +/// The AST-based call graph. /// /// The call graph extends itself with the given declarations by implementing /// the recursive AST visitor, which constructs the graph by visiting the given @@ -55,7 +55,7 @@ CallGraph(); ~CallGraph(); - /// \brief Populate the call graph with the functions in the given + /// Populate the call graph with the functions in the given /// declaration. /// /// Recursively walks the declaration to find all the dependent Decls as well. @@ -63,13 +63,13 @@ TraverseDecl(D); } - /// \brief Determine if a declaration should be included in the graph. + /// Determine if a declaration should be included in the graph. static bool includeInGraph(const Decl *D); - /// \brief Lookup the node for the given declaration. + /// Lookup the node for the given declaration. CallGraphNode *getNode(const Decl *) const; - /// \brief Lookup the node for the given declaration. If none found, insert + /// Lookup the node for the given declaration. If none found, insert /// one into the graph. CallGraphNode *getOrInsertNode(Decl *); @@ -83,7 +83,7 @@ const_iterator begin() const { return FunctionMap.begin(); } const_iterator end() const { return FunctionMap.end(); } - /// \brief Get the number of nodes in the graph. + /// Get the number of nodes in the graph. unsigned size() const { return FunctionMap.size(); } /// \ brief Get the virtual root of the graph, all the functions available @@ -133,10 +133,10 @@ bool shouldWalkTypesOfTypeLocs() const { return false; } private: - /// \brief Add the given declaration to the call graph. + /// Add the given declaration to the call graph. void addNodeForDecl(Decl *D, bool IsGlobal); - /// \brief Allocate a new node in the graph. + /// Allocate a new node in the graph. CallGraphNode *allocateNewNode(Decl *); }; @@ -145,10 +145,10 @@ using CallRecord = CallGraphNode *; private: - /// \brief The function/method declaration. + /// The function/method declaration. Decl *FD; - /// \brief The list of functions called from this node. + /// The list of functions called from this node. SmallVector<CallRecord, 5> CalledFunctions; public: Index: cfe/trunk/include/clang/Analysis/CodeInjector.h =================================================================== --- cfe/trunk/include/clang/Analysis/CodeInjector.h +++ cfe/trunk/include/clang/Analysis/CodeInjector.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines the clang::CodeInjector interface which is responsible for +/// Defines the clang::CodeInjector interface which is responsible for /// injecting AST of function definitions that may not be available in the /// original source. /// @@ -23,7 +23,7 @@ class FunctionDecl; class ObjCMethodDecl; -/// \brief CodeInjector is an interface which is responsible for injecting AST +/// CodeInjector is an interface which is responsible for injecting AST /// of function definitions that may not be available in the original source. /// /// The getBody function will be called each time the static analyzer examines a Index: cfe/trunk/include/clang/Analysis/ProgramPoint.h =================================================================== --- cfe/trunk/include/clang/Analysis/ProgramPoint.h +++ cfe/trunk/include/clang/Analysis/ProgramPoint.h @@ -135,7 +135,7 @@ getLocationContext(), tag); } - /// \brief Convert to the specified ProgramPoint type, asserting that this + /// Convert to the specified ProgramPoint type, asserting that this /// ProgramPoint is of the desired type. template<typename T> T castAs() const { @@ -146,7 +146,7 @@ return t; } - /// \brief Convert to the specified ProgramPoint type, returning None if this + /// Convert to the specified ProgramPoint type, returning None if this /// ProgramPoint is not of the desired type. template<typename T> Optional<T> getAs() const { @@ -167,7 +167,7 @@ return (Kind) x; } - /// \brief Is this a program point corresponding to purge/removal of dead + /// Is this a program point corresponding to purge/removal of dead /// symbols and bindings. bool isPurgeKind() { Kind K = getKind(); @@ -397,7 +397,7 @@ } }; -/// \brief Represents a program point after a store evaluation. +/// Represents a program point after a store evaluation. class PostStore : public PostStmt { public: /// Construct the post store point. @@ -410,7 +410,7 @@ setData2(Loc); } - /// \brief Returns the information about the location used in the store, + /// Returns the information about the location used in the store, /// how it was uttered in the code. const void *getLocationValue() const { return getData2(); @@ -496,7 +496,7 @@ class PostInitializer : public ProgramPoint { public: - /// \brief Construct a PostInitializer point that represents a location after + /// Construct a PostInitializer point that represents a location after /// CXXCtorInitializer expression evaluation. /// /// \param I The initializer. @@ -510,7 +510,7 @@ return static_cast<const CXXCtorInitializer *>(getData1()); } - /// \brief Returns the location of the field. + /// Returns the location of the field. const void *getLocationValue() const { return getData2(); } Index: cfe/trunk/include/clang/Basic/ABI.h =================================================================== --- cfe/trunk/include/clang/Basic/ABI.h +++ cfe/trunk/include/clang/Basic/ABI.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Enums/classes describing ABI related information about constructors, +/// Enums/classes describing ABI related information about constructors, /// destructors and thunks. /// //===----------------------------------------------------------------------===// @@ -21,7 +21,7 @@ namespace clang { -/// \brief C++ constructor types. +/// C++ constructor types. enum CXXCtorType { Ctor_Complete, ///< Complete object ctor Ctor_Base, ///< Base object ctor @@ -30,7 +30,7 @@ Ctor_DefaultClosure, ///< Default closure variant of a ctor }; -/// \brief C++ destructor types. +/// C++ destructor types. enum CXXDtorType { Dtor_Deleting, ///< Deleting dtor Dtor_Complete, ///< Complete object dtor @@ -38,29 +38,29 @@ Dtor_Comdat ///< The COMDAT used for dtors }; -/// \brief A return adjustment. +/// A return adjustment. struct ReturnAdjustment { - /// \brief The non-virtual adjustment from the derived object to its + /// The non-virtual adjustment from the derived object to its /// nearest virtual base. int64_t NonVirtual; - /// \brief Holds the ABI-specific information about the virtual return + /// Holds the ABI-specific information about the virtual return /// adjustment, if needed. union VirtualAdjustment { // Itanium ABI struct { - /// \brief The offset (in bytes), relative to the address point + /// The offset (in bytes), relative to the address point /// of the virtual base class offset. int64_t VBaseOffsetOffset; } Itanium; // Microsoft ABI struct { - /// \brief The offset (in bytes) of the vbptr, relative to the beginning + /// The offset (in bytes) of the vbptr, relative to the beginning /// of the derived class. uint32_t VBPtrOffset; - /// \brief Index of the virtual base in the vbtable. + /// Index of the virtual base in the vbtable. uint32_t VBIndex; } Microsoft; @@ -104,31 +104,31 @@ } }; -/// \brief A \c this pointer adjustment. +/// A \c this pointer adjustment. struct ThisAdjustment { - /// \brief The non-virtual adjustment from the derived object to its + /// The non-virtual adjustment from the derived object to its /// nearest virtual base. int64_t NonVirtual; - /// \brief Holds the ABI-specific information about the virtual this + /// Holds the ABI-specific information about the virtual this /// adjustment, if needed. union VirtualAdjustment { // Itanium ABI struct { - /// \brief The offset (in bytes), relative to the address point, + /// The offset (in bytes), relative to the address point, /// of the virtual call offset. int64_t VCallOffsetOffset; } Itanium; struct { - /// \brief The offset of the vtordisp (in bytes), relative to the ECX. + /// The offset of the vtordisp (in bytes), relative to the ECX. int32_t VtordispOffset; - /// \brief The offset of the vbptr of the derived class (in bytes), + /// The offset of the vbptr of the derived class (in bytes), /// relative to the ECX after vtordisp adjustment. int32_t VBPtrOffset; - /// \brief The offset (in bytes) of the vbase offset in the vbtable. + /// The offset (in bytes) of the vbase offset in the vbtable. int32_t VBOffsetOffset; } Microsoft; @@ -174,16 +174,16 @@ class CXXMethodDecl; -/// \brief The \c this pointer adjustment as well as an optional return +/// The \c this pointer adjustment as well as an optional return /// adjustment for a thunk. struct ThunkInfo { - /// \brief The \c this pointer adjustment. + /// The \c this pointer adjustment. ThisAdjustment This; - /// \brief The return adjustment. + /// The return adjustment. ReturnAdjustment Return; - /// \brief Holds a pointer to the overridden method this thunk is for, + /// Holds a pointer to the overridden method this thunk is for, /// if needed by the ABI to distinguish different thunks with equal /// adjustments. Otherwise, null. /// CAUTION: In the unlikely event you need to sort ThunkInfos, consider using Index: cfe/trunk/include/clang/Basic/AddressSpaces.h =================================================================== --- cfe/trunk/include/clang/Basic/AddressSpaces.h +++ cfe/trunk/include/clang/Basic/AddressSpaces.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Provides definitions for the various language-specific address +/// Provides definitions for the various language-specific address /// spaces. // //===----------------------------------------------------------------------===// @@ -20,7 +20,7 @@ namespace clang { -/// \brief Defines the address space values used by the address space qualifier +/// Defines the address space values used by the address space qualifier /// of QualType. /// enum class LangAS : unsigned { Index: cfe/trunk/include/clang/Basic/AlignedAllocation.h =================================================================== --- cfe/trunk/include/clang/Basic/AlignedAllocation.h +++ cfe/trunk/include/clang/Basic/AlignedAllocation.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines a function that returns the minimum OS versions supporting +/// Defines a function that returns the minimum OS versions supporting /// C++17's aligned allocation functions. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/include/clang/Basic/AllDiagnostics.h =================================================================== --- cfe/trunk/include/clang/Basic/AllDiagnostics.h +++ cfe/trunk/include/clang/Basic/AllDiagnostics.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Includes all the separate Diagnostic headers & some related helpers. +/// Includes all the separate Diagnostic headers & some related helpers. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/include/clang/Basic/AttrKinds.h =================================================================== --- cfe/trunk/include/clang/Basic/AttrKinds.h +++ cfe/trunk/include/clang/Basic/AttrKinds.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines the clang::attr::Kind enum. +/// Defines the clang::attr::Kind enum. /// //===----------------------------------------------------------------------===// @@ -19,7 +19,7 @@ namespace attr { -// \brief A list of all the recognized kinds of attributes. +// A list of all the recognized kinds of attributes. enum Kind { #define ATTR(X) X, #define ATTR_RANGE(CLASS, FIRST_NAME, LAST_NAME) \ Index: cfe/trunk/include/clang/Basic/AttrSubjectMatchRules.h =================================================================== --- cfe/trunk/include/clang/Basic/AttrSubjectMatchRules.h +++ cfe/trunk/include/clang/Basic/AttrSubjectMatchRules.h @@ -16,7 +16,7 @@ namespace clang { namespace attr { -/// \brief A list of all the recognized kinds of attributes. +/// A list of all the recognized kinds of attributes. enum SubjectMatchRule { #define ATTR_MATCH_RULE(X, Spelling, IsAbstract) X, #include "clang/Basic/AttrSubMatchRulesList.inc" Index: cfe/trunk/include/clang/Basic/Attributes.h =================================================================== --- cfe/trunk/include/clang/Basic/Attributes.h +++ cfe/trunk/include/clang/Basic/Attributes.h @@ -32,7 +32,7 @@ Pragma }; -/// \brief Return the version number associated with the attribute if we +/// Return the version number associated with the attribute if we /// recognize and implement the attribute specified by the given information. int hasAttribute(AttrSyntax Syntax, const IdentifierInfo *Scope, const IdentifierInfo *Attr, const TargetInfo &Target, Index: cfe/trunk/include/clang/Basic/Builtins.h =================================================================== --- cfe/trunk/include/clang/Basic/Builtins.h +++ cfe/trunk/include/clang/Basic/Builtins.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines enum values for all the target-independent builtin +/// Defines enum values for all the target-independent builtin /// functions. /// //===----------------------------------------------------------------------===// @@ -59,7 +59,7 @@ const char *Features; }; -/// \brief Holds information about both target-independent and +/// Holds information about both target-independent and /// target-specific builtins, allowing easy queries by clients. /// /// Builtins from an optional auxiliary target are stored in @@ -72,129 +72,129 @@ public: Context() {} - /// \brief Perform target-specific initialization + /// Perform target-specific initialization /// \param AuxTarget Target info to incorporate builtins from. May be nullptr. void InitializeTarget(const TargetInfo &Target, const TargetInfo *AuxTarget); - /// \brief Mark the identifiers for all the builtins with their + /// Mark the identifiers for all the builtins with their /// appropriate builtin ID # and mark any non-portable builtin identifiers as /// such. void initializeBuiltins(IdentifierTable &Table, const LangOptions& LangOpts); - /// \brief Return the identifier name for the specified builtin, + /// Return the identifier name for the specified builtin, /// e.g. "__builtin_abs". const char *getName(unsigned ID) const { return getRecord(ID).Name; } - /// \brief Get the type descriptor string for the specified builtin. + /// Get the type descriptor string for the specified builtin. const char *getTypeString(unsigned ID) const { return getRecord(ID).Type; } - /// \brief Return true if this function is a target-specific builtin. + /// Return true if this function is a target-specific builtin. bool isTSBuiltin(unsigned ID) const { return ID >= Builtin::FirstTSBuiltin; } - /// \brief Return true if this function has no side effects. + /// Return true if this function has no side effects. bool isPure(unsigned ID) const { return strchr(getRecord(ID).Attributes, 'U') != nullptr; } - /// \brief Return true if this function has no side effects and doesn't + /// Return true if this function has no side effects and doesn't /// read memory. bool isConst(unsigned ID) const { return strchr(getRecord(ID).Attributes, 'c') != nullptr; } - /// \brief Return true if we know this builtin never throws an exception. + /// Return true if we know this builtin never throws an exception. bool isNoThrow(unsigned ID) const { return strchr(getRecord(ID).Attributes, 'n') != nullptr; } - /// \brief Return true if we know this builtin never returns. + /// Return true if we know this builtin never returns. bool isNoReturn(unsigned ID) const { return strchr(getRecord(ID).Attributes, 'r') != nullptr; } - /// \brief Return true if we know this builtin can return twice. + /// Return true if we know this builtin can return twice. bool isReturnsTwice(unsigned ID) const { return strchr(getRecord(ID).Attributes, 'j') != nullptr; } - /// \brief Returns true if this builtin does not perform the side-effects + /// Returns true if this builtin does not perform the side-effects /// of its arguments. bool isUnevaluated(unsigned ID) const { return strchr(getRecord(ID).Attributes, 'u') != nullptr; } - /// \brief Return true if this is a builtin for a libc/libm function, + /// Return true if this is a builtin for a libc/libm function, /// with a "__builtin_" prefix (e.g. __builtin_abs). bool isLibFunction(unsigned ID) const { return strchr(getRecord(ID).Attributes, 'F') != nullptr; } - /// \brief Determines whether this builtin is a predefined libc/libm + /// Determines whether this builtin is a predefined libc/libm /// function, such as "malloc", where we know the signature a /// priori. bool isPredefinedLibFunction(unsigned ID) const { return strchr(getRecord(ID).Attributes, 'f') != nullptr; } - /// \brief Returns true if this builtin requires appropriate header in other + /// Returns true if this builtin requires appropriate header in other /// compilers. In Clang it will work even without including it, but we can emit /// a warning about missing header. bool isHeaderDependentFunction(unsigned ID) const { return strchr(getRecord(ID).Attributes, 'h') != nullptr; } - /// \brief Determines whether this builtin is a predefined compiler-rt/libgcc + /// Determines whether this builtin is a predefined compiler-rt/libgcc /// function, such as "__clear_cache", where we know the signature a /// priori. bool isPredefinedRuntimeFunction(unsigned ID) const { return strchr(getRecord(ID).Attributes, 'i') != nullptr; } - /// \brief Determines whether this builtin has custom typechecking. + /// Determines whether this builtin has custom typechecking. bool hasCustomTypechecking(unsigned ID) const { return strchr(getRecord(ID).Attributes, 't') != nullptr; } - /// \brief Determines whether this builtin has a result or any arguments which + /// Determines whether this builtin has a result or any arguments which /// are pointer types. bool hasPtrArgsOrResult(unsigned ID) const { return strchr(getRecord(ID).Type, '*') != nullptr; } - /// \brief Return true if this builtin has a result or any arguments which are + /// Return true if this builtin has a result or any arguments which are /// reference types. bool hasReferenceArgsOrResult(unsigned ID) const { return strchr(getRecord(ID).Type, '&') != nullptr || strchr(getRecord(ID).Type, 'A') != nullptr; } - /// \brief Completely forget that the given ID was ever considered a builtin, + /// Completely forget that the given ID was ever considered a builtin, /// e.g., because the user provided a conflicting signature. void forgetBuiltin(unsigned ID, IdentifierTable &Table); - /// \brief If this is a library function that comes from a specific + /// If this is a library function that comes from a specific /// header, retrieve that header name. const char *getHeaderName(unsigned ID) const { return getRecord(ID).HeaderName; } - /// \brief Determine whether this builtin is like printf in its + /// Determine whether this builtin is like printf in its /// formatting rules and, if so, set the index to the format string /// argument and whether this function as a va_list argument. bool isPrintfLike(unsigned ID, unsigned &FormatIdx, bool &HasVAListArg); - /// \brief Determine whether this builtin is like scanf in its + /// Determine whether this builtin is like scanf in its /// formatting rules and, if so, set the index to the format string /// argument and whether this function as a va_list argument. bool isScanfLike(unsigned ID, unsigned &FormatIdx, bool &HasVAListArg); - /// \brief Return true if this function has no side effects and doesn't + /// Return true if this function has no side effects and doesn't /// read memory, except for possibly errno. /// /// Such functions can be const when the MathErrno lang option is disabled. @@ -206,7 +206,7 @@ return getRecord(ID).Features; } - /// \brief Return true if builtin ID belongs to AuxTarget. + /// Return true if builtin ID belongs to AuxTarget. bool isAuxBuiltinID(unsigned ID) const { return ID >= (Builtin::FirstTSBuiltin + TSRecords.size()); } @@ -226,23 +226,23 @@ private: const Info &getRecord(unsigned ID) const; - /// \brief Is this builtin supported according to the given language options? + /// Is this builtin supported according to the given language options? bool builtinIsSupported(const Builtin::Info &BuiltinInfo, const LangOptions &LangOpts); - /// \brief Helper function for isPrintfLike and isScanfLike. + /// Helper function for isPrintfLike and isScanfLike. bool isLike(unsigned ID, unsigned &FormatIdx, bool &HasVAListArg, const char *Fmt) const; }; } -/// \brief Kinds of BuiltinTemplateDecl. +/// Kinds of BuiltinTemplateDecl. enum BuiltinTemplateKind : int { - /// \brief This names the __make_integer_seq BuiltinTemplateDecl. + /// This names the __make_integer_seq BuiltinTemplateDecl. BTK__make_integer_seq, - /// \brief This names the __type_pack_element BuiltinTemplateDecl. + /// This names the __type_pack_element BuiltinTemplateDecl. BTK__type_pack_element }; Index: cfe/trunk/include/clang/Basic/BuiltinsWebAssembly.def =================================================================== --- cfe/trunk/include/clang/Basic/BuiltinsWebAssembly.def +++ cfe/trunk/include/clang/Basic/BuiltinsWebAssembly.def @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file defines the WebAssembly-specific builtin function database. +/// This file defines the WebAssembly-specific builtin function database. /// Users of this file must define the BUILTIN macro to make use of this /// information. /// Index: cfe/trunk/include/clang/Basic/CapturedStmt.h =================================================================== --- cfe/trunk/include/clang/Basic/CapturedStmt.h +++ cfe/trunk/include/clang/Basic/CapturedStmt.h @@ -13,7 +13,7 @@ namespace clang { -/// \brief The different kinds of captured statement. +/// The different kinds of captured statement. enum CapturedRegionKind { CR_Default, CR_OpenMP Index: cfe/trunk/include/clang/Basic/CommentOptions.h =================================================================== --- cfe/trunk/include/clang/Basic/CommentOptions.h +++ cfe/trunk/include/clang/Basic/CommentOptions.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Defines the clang::CommentOptions interface. +/// Defines the clang::CommentOptions interface. // //===----------------------------------------------------------------------===// @@ -20,15 +20,15 @@ namespace clang { -/// \brief Options for controlling comment parsing. +/// Options for controlling comment parsing. struct CommentOptions { using BlockCommandNamesTy = std::vector<std::string>; - /// \brief Command names to treat as block commands in comments. + /// Command names to treat as block commands in comments. /// Should not include the leading backslash. BlockCommandNamesTy BlockCommandNames; - /// \brief Treat ordinary comments as documentation comments. + /// Treat ordinary comments as documentation comments. bool ParseAllComments = false; CommentOptions() = default; Index: cfe/trunk/include/clang/Basic/Diagnostic.h =================================================================== --- cfe/trunk/include/clang/Basic/Diagnostic.h +++ cfe/trunk/include/clang/Basic/Diagnostic.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Defines the Diagnostic-related interfaces. +/// Defines the Diagnostic-related interfaces. // //===----------------------------------------------------------------------===// @@ -54,7 +54,7 @@ } // namespace tok -/// \brief Annotates a diagnostic with some code that should be +/// Annotates a diagnostic with some code that should be /// inserted, removed, or replaced to fix the problem. /// /// This kind of hint should be used when we are certain that the @@ -65,21 +65,21 @@ /// compilation. class FixItHint { public: - /// \brief Code that should be replaced to correct the error. Empty for an + /// Code that should be replaced to correct the error. Empty for an /// insertion hint. CharSourceRange RemoveRange; - /// \brief Code in the specific range that should be inserted in the insertion + /// Code in the specific range that should be inserted in the insertion /// location. CharSourceRange InsertFromRange; - /// \brief The actual code to insert at the insertion location, as a + /// The actual code to insert at the insertion location, as a /// string. std::string CodeToInsert; bool BeforePreviousInsertions = false; - /// \brief Empty code modification hint, indicating that no code + /// Empty code modification hint, indicating that no code /// modification is known. FixItHint() = default; @@ -87,7 +87,7 @@ return !RemoveRange.isValid(); } - /// \brief Create a code modification hint that inserts the given + /// Create a code modification hint that inserts the given /// code string at a specific location. static FixItHint CreateInsertion(SourceLocation InsertionLoc, StringRef Code, @@ -100,7 +100,7 @@ return Hint; } - /// \brief Create a code modification hint that inserts the given + /// Create a code modification hint that inserts the given /// code from \p FromRange at a specific location. static FixItHint CreateInsertionFromRange(SourceLocation InsertionLoc, CharSourceRange FromRange, @@ -113,7 +113,7 @@ return Hint; } - /// \brief Create a code modification hint that removes the given + /// Create a code modification hint that removes the given /// source range. static FixItHint CreateRemoval(CharSourceRange RemoveRange) { FixItHint Hint; @@ -124,7 +124,7 @@ return CreateRemoval(CharSourceRange::getTokenRange(RemoveRange)); } - /// \brief Create a code modification hint that replaces the given + /// Create a code modification hint that replaces the given /// source range with the given code string. static FixItHint CreateReplacement(CharSourceRange RemoveRange, StringRef Code) { @@ -140,7 +140,7 @@ } }; -/// \brief Concrete class used by the front-end to report problems and issues. +/// Concrete class used by the front-end to report problems and issues. /// /// This massages the diagnostics (e.g. handling things like "report warnings /// as errors" and passes them off to the DiagnosticConsumer for reporting to @@ -148,7 +148,7 @@ /// SourceManager. class DiagnosticsEngine : public RefCountedBase<DiagnosticsEngine> { public: - /// \brief The level of the diagnostic, after it has been through mapping. + /// The level of the diagnostic, after it has been through mapping. enum Level { Ignored = DiagnosticIDs::Ignored, Note = DiagnosticIDs::Note, @@ -199,7 +199,7 @@ ak_attr }; - /// \brief Represents on argument value, which is a union discriminated + /// Represents on argument value, which is a union discriminated /// by ArgumentKind, with a value. using ArgumentValue = std::pair<ArgumentKind, intptr_t>; @@ -240,7 +240,7 @@ std::unique_ptr<DiagnosticConsumer> Owner; SourceManager *SourceMgr = nullptr; - /// \brief Mapping information for diagnostics. + /// Mapping information for diagnostics. /// /// Mapping info is packed into four bits per diagnostic. The low three /// bits are the mapping (an instance of diag::Severity), or zero if unset. @@ -298,7 +298,7 @@ const_iterator end() const { return DiagMap.end(); } }; - /// \brief Keeps and automatically disposes all DiagStates that we create. + /// Keeps and automatically disposes all DiagStates that we create. std::list<DiagState> DiagStates; /// A mapping from files to the diagnostic states for those files. Lazily @@ -338,7 +338,7 @@ friend class ASTReader; friend class ASTWriter; - /// \brief Represents a point in source where the diagnostic state was + /// Represents a point in source where the diagnostic state was /// modified because of a pragma. /// /// 'Loc' can be null if the point represents the diagnostic state @@ -391,7 +391,7 @@ DiagStateMap DiagStatesByLoc; - /// \brief Keeps the DiagState that was active during each diagnostic 'push' + /// Keeps the DiagState that was active during each diagnostic 'push' /// so we can get back at it when we 'pop'. std::vector<DiagState *> DiagStateOnPushStack; @@ -401,32 +401,32 @@ void PushDiagStatePoint(DiagState *State, SourceLocation L); - /// \brief Finds the DiagStatePoint that contains the diagnostic state of + /// Finds the DiagStatePoint that contains the diagnostic state of /// the given source location. DiagState *GetDiagStateForLoc(SourceLocation Loc) const { return SourceMgr ? DiagStatesByLoc.lookup(*SourceMgr, Loc) : DiagStatesByLoc.getCurDiagState(); } - /// \brief Sticky flag set to \c true when an error is emitted. + /// Sticky flag set to \c true when an error is emitted. bool ErrorOccurred; - /// \brief Sticky flag set to \c true when an "uncompilable error" occurs. + /// Sticky flag set to \c true when an "uncompilable error" occurs. /// I.e. an error that was not upgraded from a warning by -Werror. bool UncompilableErrorOccurred; - /// \brief Sticky flag set to \c true when a fatal error is emitted. + /// Sticky flag set to \c true when a fatal error is emitted. bool FatalErrorOccurred; - /// \brief Indicates that an unrecoverable error has occurred. + /// Indicates that an unrecoverable error has occurred. bool UnrecoverableErrorOccurred; - /// \brief Counts for DiagnosticErrorTrap to check whether an error occurred + /// Counts for DiagnosticErrorTrap to check whether an error occurred /// during a parsing section, e.g. during parsing a function. unsigned TrapNumErrorsOccurred; unsigned TrapNumUnrecoverableErrorsOccurred; - /// \brief The level of the last diagnostic emitted. + /// The level of the last diagnostic emitted. /// /// This is used to emit continuation diagnostics with the same level as the /// diagnostic that they follow. @@ -438,7 +438,7 @@ /// Number of errors reported unsigned NumErrors; - /// \brief A function pointer that converts an opaque diagnostic + /// A function pointer that converts an opaque diagnostic /// argument to a strings. /// /// This takes the modifiers and argument that was present in the diagnostic. @@ -459,18 +459,18 @@ void *ArgToStringCookie = nullptr; ArgToStringFnTy ArgToStringFn; - /// \brief ID of the "delayed" diagnostic, which is a (typically + /// ID of the "delayed" diagnostic, which is a (typically /// fatal) diagnostic that had to be delayed because it was found /// while emitting another diagnostic. unsigned DelayedDiagID; - /// \brief First string argument for the delayed diagnostic. + /// First string argument for the delayed diagnostic. std::string DelayedDiagArg1; - /// \brief Second string argument for the delayed diagnostic. + /// Second string argument for the delayed diagnostic. std::string DelayedDiagArg2; - /// \brief Optional flag value. + /// Optional flag value. /// /// Some flags accept values, for instance: -Wframe-larger-than=<value> and /// -Rpass=<value>. The content of this string is emitted after the flag name @@ -495,12 +495,12 @@ return Diags; } - /// \brief Retrieve the diagnostic options. + /// Retrieve the diagnostic options. DiagnosticOptions &getDiagnosticOptions() const { return *DiagOpts; } using diag_mapping_range = llvm::iterator_range<DiagState::const_iterator>; - /// \brief Get the current set of diagnostic mappings. + /// Get the current set of diagnostic mappings. diag_mapping_range getDiagnosticMappings() const { const DiagState &DS = *GetCurDiagState(); return diag_mapping_range(DS.begin(), DS.end()); @@ -509,10 +509,10 @@ DiagnosticConsumer *getClient() { return Client; } const DiagnosticConsumer *getClient() const { return Client; } - /// \brief Determine whether this \c DiagnosticsEngine object own its client. + /// Determine whether this \c DiagnosticsEngine object own its client. bool ownsClient() const { return Owner != nullptr; } - /// \brief Return the current diagnostic client along with ownership of that + /// Return the current diagnostic client along with ownership of that /// client. std::unique_ptr<DiagnosticConsumer> takeClient() { return std::move(Owner); } @@ -534,54 +534,54 @@ // how diagnostics are emitted. // - /// \brief Copies the current DiagMappings and pushes the new copy + /// Copies the current DiagMappings and pushes the new copy /// onto the top of the stack. void pushMappings(SourceLocation Loc); - /// \brief Pops the current DiagMappings off the top of the stack, + /// Pops the current DiagMappings off the top of the stack, /// causing the new top of the stack to be the active mappings. /// /// \returns \c true if the pop happens, \c false if there is only one /// DiagMapping on the stack. bool popMappings(SourceLocation Loc); - /// \brief Set the diagnostic client associated with this diagnostic object. + /// Set the diagnostic client associated with this diagnostic object. /// /// \param ShouldOwnClient true if the diagnostic object should take /// ownership of \c client. void setClient(DiagnosticConsumer *client, bool ShouldOwnClient = true); - /// \brief Specify a limit for the number of errors we should + /// Specify a limit for the number of errors we should /// emit before giving up. /// /// Zero disables the limit. void setErrorLimit(unsigned Limit) { ErrorLimit = Limit; } - /// \brief Specify the maximum number of template instantiation + /// Specify the maximum number of template instantiation /// notes to emit along with a given diagnostic. void setTemplateBacktraceLimit(unsigned Limit) { TemplateBacktraceLimit = Limit; } - /// \brief Retrieve the maximum number of template instantiation + /// Retrieve the maximum number of template instantiation /// notes to emit along with a given diagnostic. unsigned getTemplateBacktraceLimit() const { return TemplateBacktraceLimit; } - /// \brief Specify the maximum number of constexpr evaluation + /// Specify the maximum number of constexpr evaluation /// notes to emit along with a given diagnostic. void setConstexprBacktraceLimit(unsigned Limit) { ConstexprBacktraceLimit = Limit; } - /// \brief Retrieve the maximum number of constexpr evaluation + /// Retrieve the maximum number of constexpr evaluation /// notes to emit along with a given diagnostic. unsigned getConstexprBacktraceLimit() const { return ConstexprBacktraceLimit; } - /// \brief When set to true, any unmapped warnings are ignored. + /// When set to true, any unmapped warnings are ignored. /// /// If this and WarningsAsErrors are both set, then this one wins. void setIgnoreAllWarnings(bool Val) { @@ -591,7 +591,7 @@ return GetCurDiagState()->IgnoreAllWarnings; } - /// \brief When set to true, any unmapped ignored warnings are no longer + /// When set to true, any unmapped ignored warnings are no longer /// ignored. /// /// If this and IgnoreAllWarnings are both set, then that one wins. @@ -602,7 +602,7 @@ return GetCurDiagState()->EnableAllWarnings; } - /// \brief When set to true, any warnings reported are issued as errors. + /// When set to true, any warnings reported are issued as errors. void setWarningsAsErrors(bool Val) { GetCurDiagState()->WarningsAsErrors = Val; } @@ -610,15 +610,15 @@ return GetCurDiagState()->WarningsAsErrors; } - /// \brief When set to true, any error reported is made a fatal error. + /// When set to true, any error reported is made a fatal error. void setErrorsAsFatal(bool Val) { GetCurDiagState()->ErrorsAsFatal = Val; } bool getErrorsAsFatal() const { return GetCurDiagState()->ErrorsAsFatal; } - /// \brief When set to true (the default), suppress further diagnostics after + /// When set to true (the default), suppress further diagnostics after /// a fatal error. void setSuppressAfterFatalError(bool Val) { SuppressAfterFatalError = Val; } - /// \brief When set to true mask warnings that come from system headers. + /// When set to true mask warnings that come from system headers. void setSuppressSystemWarnings(bool Val) { GetCurDiagState()->SuppressSystemWarnings = Val; } @@ -626,7 +626,7 @@ return GetCurDiagState()->SuppressSystemWarnings; } - /// \brief Suppress all diagnostics, to silence the front end when we + /// Suppress all diagnostics, to silence the front end when we /// know that we don't want any more diagnostics to be passed along to the /// client void setSuppressAllDiagnostics(bool Val = true) { @@ -634,22 +634,22 @@ } bool getSuppressAllDiagnostics() const { return SuppressAllDiagnostics; } - /// \brief Set type eliding, to skip outputting same types occurring in + /// Set type eliding, to skip outputting same types occurring in /// template types. void setElideType(bool Val = true) { ElideType = Val; } bool getElideType() { return ElideType; } - /// \brief Set tree printing, to outputting the template difference in a + /// Set tree printing, to outputting the template difference in a /// tree format. void setPrintTemplateTree(bool Val = false) { PrintTemplateTree = Val; } bool getPrintTemplateTree() { return PrintTemplateTree; } - /// \brief Set color printing, so the type diffing will inject color markers + /// Set color printing, so the type diffing will inject color markers /// into the output. void setShowColors(bool Val = false) { ShowColors = Val; } bool getShowColors() { return ShowColors; } - /// \brief Specify which overload candidates to show when overload resolution + /// Specify which overload candidates to show when overload resolution /// fails. /// /// By default, we show all candidates. @@ -658,7 +658,7 @@ } OverloadsShown getShowOverloads() const { return ShowOverloads; } - /// \brief Pretend that the last diagnostic issued was ignored, so any + /// Pretend that the last diagnostic issued was ignored, so any /// subsequent notes will be suppressed, or restore a prior ignoring /// state after ignoring some diagnostics and their notes, possibly in /// the middle of another diagnostic. @@ -670,14 +670,14 @@ LastDiagLevel = Ignored ? DiagnosticIDs::Ignored : DiagnosticIDs::Warning; } - /// \brief Determine whether the previous diagnostic was ignored. This can + /// Determine whether the previous diagnostic was ignored. This can /// be used by clients that want to determine whether notes attached to a /// diagnostic will be suppressed. bool isLastDiagnosticIgnored() const { return LastDiagLevel == DiagnosticIDs::Ignored; } - /// \brief Controls whether otherwise-unmapped extension diagnostics are + /// Controls whether otherwise-unmapped extension diagnostics are /// mapped onto ignore/warning/error. /// /// This corresponds to the GCC -pedantic and -pedantic-errors option. @@ -688,7 +688,7 @@ return GetCurDiagState()->ExtBehavior; } - /// \brief Counter bumped when an __extension__ block is/ encountered. + /// Counter bumped when an __extension__ block is/ encountered. /// /// When non-zero, all extension diagnostics are entirely silenced, no /// matter how they are mapped. @@ -696,7 +696,7 @@ void DecrementAllExtensionsSilenced() { --AllExtensionsSilenced; } bool hasAllExtensionsSilenced() { return AllExtensionsSilenced != 0; } - /// \brief This allows the client to specify that certain warnings are + /// This allows the client to specify that certain warnings are /// ignored. /// /// Notes can never be mapped, errors can only be mapped to fatal, and @@ -706,7 +706,7 @@ /// take affect. It can be null if we are setting the latest state. void setSeverity(diag::kind Diag, diag::Severity Map, SourceLocation Loc); - /// \brief Change an entire diagnostic group (e.g. "unknown-pragmas") to + /// Change an entire diagnostic group (e.g. "unknown-pragmas") to /// have the specified mapping. /// /// \returns true (and ignores the request) if "Group" was unknown, false @@ -721,21 +721,21 @@ diag::Severity Map, SourceLocation Loc = SourceLocation()); - /// \brief Set the warning-as-error flag for the given diagnostic group. + /// Set the warning-as-error flag for the given diagnostic group. /// /// This function always only operates on the current diagnostic state. /// /// \returns True if the given group is unknown, false otherwise. bool setDiagnosticGroupWarningAsError(StringRef Group, bool Enabled); - /// \brief Set the error-as-fatal flag for the given diagnostic group. + /// Set the error-as-fatal flag for the given diagnostic group. /// /// This function always only operates on the current diagnostic state. /// /// \returns True if the given group is unknown, false otherwise. bool setDiagnosticGroupErrorAsFatal(StringRef Group, bool Enabled); - /// \brief Add the specified mapping to all diagnostics of the specified + /// Add the specified mapping to all diagnostics of the specified /// flavor. /// /// Mainly to be used by -Wno-everything to disable all warnings but allow @@ -745,14 +745,14 @@ bool hasErrorOccurred() const { return ErrorOccurred; } - /// \brief Errors that actually prevent compilation, not those that are + /// Errors that actually prevent compilation, not those that are /// upgraded from a warning by -Werror. bool hasUncompilableErrorOccurred() const { return UncompilableErrorOccurred; } bool hasFatalErrorOccurred() const { return FatalErrorOccurred; } - /// \brief Determine whether any kind of unrecoverable error has occurred. + /// Determine whether any kind of unrecoverable error has occurred. bool hasUnrecoverableErrorOccurred() const { return FatalErrorOccurred || UnrecoverableErrorOccurred; } @@ -763,7 +763,7 @@ this->NumWarnings = NumWarnings; } - /// \brief Return an ID for a diagnostic with the specified format string and + /// Return an ID for a diagnostic with the specified format string and /// level. /// /// If this is the first request for this diagnostic, it is registered and @@ -777,7 +777,7 @@ StringRef(FormatString, N - 1)); } - /// \brief Converts a diagnostic argument (as an intptr_t) into the string + /// Converts a diagnostic argument (as an intptr_t) into the string /// that represents it. void ConvertArgToString(ArgumentKind Kind, intptr_t Val, StringRef Modifier, StringRef Argument, @@ -793,13 +793,13 @@ ArgToStringCookie = Cookie; } - /// \brief Note that the prior diagnostic was emitted by some other + /// Note that the prior diagnostic was emitted by some other /// \c DiagnosticsEngine, and we may be attaching a note to that diagnostic. void notePriorDiagnosticFrom(const DiagnosticsEngine &Other) { LastDiagLevel = Other.LastDiagLevel; } - /// \brief Reset the state of the diagnostic object to its initial + /// Reset the state of the diagnostic object to its initial /// configuration. void Reset(); @@ -807,7 +807,7 @@ // DiagnosticsEngine classification and reporting interfaces. // - /// \brief Determine whether the diagnostic is known to be ignored. + /// Determine whether the diagnostic is known to be ignored. /// /// This can be used to opportunistically avoid expensive checks when it's /// known for certain that the diagnostic has been suppressed at the @@ -820,7 +820,7 @@ diag::Severity::Ignored; } - /// \brief Based on the way the client configured the DiagnosticsEngine + /// Based on the way the client configured the DiagnosticsEngine /// object, classify the specified diagnostic ID into a Level, consumable by /// the DiagnosticConsumer. /// @@ -834,7 +834,7 @@ return (Level)Diags->getDiagnosticLevel(DiagID, Loc, *this); } - /// \brief Issue the message to the client. + /// Issue the message to the client. /// /// This actually returns an instance of DiagnosticBuilder which emits the /// diagnostics (through @c ProcessDiag) when it is destroyed. @@ -847,12 +847,12 @@ void Report(const StoredDiagnostic &storedDiag); - /// \brief Determine whethere there is already a diagnostic in flight. + /// Determine whethere there is already a diagnostic in flight. bool isDiagnosticInFlight() const { return CurDiagID != std::numeric_limits<unsigned>::max(); } - /// \brief Set the "delayed" diagnostic that will be emitted once + /// Set the "delayed" diagnostic that will be emitted once /// the current diagnostic completes. /// /// If a diagnostic is already in-flight but the front end must @@ -876,10 +876,10 @@ void SetDelayedDiagnostic(unsigned DiagID, StringRef Arg1 = "", StringRef Arg2 = ""); - /// \brief Clear out the current diagnostic. + /// Clear out the current diagnostic. void Clear() { CurDiagID = std::numeric_limits<unsigned>::max(); } - /// \brief Return the value associated with this diagnostic flag. + /// Return the value associated with this diagnostic flag. StringRef getFlagValue() const { return FlagValue; } private: @@ -895,20 +895,20 @@ friend class DiagnosticIDs; friend class PartialDiagnostic; - /// \brief Report the delayed diagnostic. + /// Report the delayed diagnostic. void ReportDelayed(); - /// \brief The location of the current diagnostic that is in flight. + /// The location of the current diagnostic that is in flight. SourceLocation CurDiagLoc; - /// \brief The ID of the current diagnostic that is in flight. + /// The ID of the current diagnostic that is in flight. /// /// This is set to std::numeric_limits<unsigned>::max() when there is no /// diagnostic in flight. unsigned CurDiagID; enum { - /// \brief The maximum number of arguments we can hold. + /// The maximum number of arguments we can hold. /// /// We currently only support up to 10 arguments (%0-%9). A single /// diagnostic with more than that almost certainly has to be simplified @@ -916,33 +916,33 @@ MaxArguments = 10, }; - /// \brief The number of entries in Arguments. + /// The number of entries in Arguments. signed char NumDiagArgs; - /// \brief Specifies whether an argument is in DiagArgumentsStr or + /// Specifies whether an argument is in DiagArgumentsStr or /// in DiagArguments. /// /// This is an array of ArgumentKind::ArgumentKind enum values, one for each /// argument. unsigned char DiagArgumentsKind[MaxArguments]; - /// \brief Holds the values of each string argument for the current + /// Holds the values of each string argument for the current /// diagnostic. /// /// This is only used when the corresponding ArgumentKind is ak_std_string. std::string DiagArgumentsStr[MaxArguments]; - /// \brief The values for the various substitution positions. + /// The values for the various substitution positions. /// /// This is used when the argument is not an std::string. The specific /// value is mangled into an intptr_t and the interpretation depends on /// exactly what sort of argument kind it is. intptr_t DiagArgumentsVal[MaxArguments]; - /// \brief The list of ranges added to this diagnostic. + /// The list of ranges added to this diagnostic. SmallVector<CharSourceRange, 8> DiagRanges; - /// \brief If valid, provides a hint with some code to insert, remove, + /// If valid, provides a hint with some code to insert, remove, /// or modify at a particular position. SmallVector<FixItHint, 8> DiagFixItHints; @@ -961,7 +961,7 @@ return Mapping; } - /// \brief Used to report a diagnostic that is finally fully formed. + /// Used to report a diagnostic that is finally fully formed. /// /// \returns true if the diagnostic was emitted, false if it was suppressed. bool ProcessDiag() { @@ -980,7 +980,7 @@ // Sema::Diag() patterns. friend class Sema; - /// \brief Emit the current diagnostic and clear the diagnostic state. + /// Emit the current diagnostic and clear the diagnostic state. /// /// \param Force Emit the diagnostic regardless of suppression settings. bool EmitCurrentDiagnostic(bool Force = false); @@ -992,7 +992,7 @@ /// @} }; -/// \brief RAII class that determines when any errors have occurred +/// RAII class that determines when any errors have occurred /// between the time the instance was created and the time it was /// queried. class DiagnosticErrorTrap { @@ -1004,19 +1004,19 @@ explicit DiagnosticErrorTrap(DiagnosticsEngine &Diag) : Diag(Diag) { reset(); } - /// \brief Determine whether any errors have occurred since this + /// Determine whether any errors have occurred since this /// object instance was created. bool hasErrorOccurred() const { return Diag.TrapNumErrorsOccurred > NumErrors; } - /// \brief Determine whether any unrecoverable errors have occurred since this + /// Determine whether any unrecoverable errors have occurred since this /// object instance was created. bool hasUnrecoverableErrorOccurred() const { return Diag.TrapNumUnrecoverableErrorsOccurred > NumUnrecoverableErrors; } - /// \brief Set to initial state of "no errors occurred". + /// Set to initial state of "no errors occurred". void reset() { NumErrors = Diag.TrapNumErrorsOccurred; NumUnrecoverableErrors = Diag.TrapNumUnrecoverableErrorsOccurred; @@ -1027,7 +1027,7 @@ // DiagnosticBuilder //===----------------------------------------------------------------------===// -/// \brief A little helper class used to produce diagnostics. +/// A little helper class used to produce diagnostics. /// /// This is constructed by the DiagnosticsEngine::Report method, and /// allows insertion of extra information (arguments and source ranges) into @@ -1046,14 +1046,14 @@ mutable DiagnosticsEngine *DiagObj = nullptr; mutable unsigned NumArgs = 0; - /// \brief Status variable indicating if this diagnostic is still active. + /// Status variable indicating if this diagnostic is still active. /// // NOTE: This field is redundant with DiagObj (IsActive iff (DiagObj == 0)), // but LLVM is not currently smart enough to eliminate the null check that // Emit() would end up with if we used that as our status variable. mutable bool IsActive = false; - /// \brief Flag indicating that this diagnostic is being emitted via a + /// Flag indicating that this diagnostic is being emitted via a /// call to ForceEmit. mutable bool IsForceEmit = false; @@ -1071,17 +1071,17 @@ DiagObj->NumDiagArgs = NumArgs; } - /// \brief Clear out the current diagnostic. + /// Clear out the current diagnostic. void Clear() const { DiagObj = nullptr; IsActive = false; IsForceEmit = false; } - /// \brief Determine whether this diagnostic is still active. + /// Determine whether this diagnostic is still active. bool isActive() const { return IsActive; } - /// \brief Force the diagnostic builder to emit the diagnostic now. + /// Force the diagnostic builder to emit the diagnostic now. /// /// Once this function has been called, the DiagnosticBuilder object /// should not be used again before it is destroyed. @@ -1119,23 +1119,23 @@ DiagnosticBuilder &operator=(const DiagnosticBuilder &) = delete; - /// \brief Emits the diagnostic. + /// Emits the diagnostic. ~DiagnosticBuilder() { Emit(); } - /// \brief Retrieve an empty diagnostic builder. + /// Retrieve an empty diagnostic builder. static DiagnosticBuilder getEmpty() { return {}; } - /// \brief Forces the diagnostic to be emitted. + /// Forces the diagnostic to be emitted. const DiagnosticBuilder &setForceEmit() const { IsForceEmit = true; return *this; } - /// \brief Conversion of DiagnosticBuilder to bool always returns \c true. + /// Conversion of DiagnosticBuilder to bool always returns \c true. /// /// This allows is to be used in boolean error contexts (where \c true is /// used to indicate that an error has occurred), like: @@ -1180,7 +1180,7 @@ explicit AddFlagValue(StringRef V) : Val(V) {} }; -/// \brief Register a value for the flag in the current diagnostic. This +/// Register a value for the flag in the current diagnostic. This /// value will be shown as the suffix "=value" after the flag name. It is /// useful in cases where the diagnostic flag accepts values (e.g., /// -Rpass or -Wframe-larger-than). @@ -1329,7 +1329,7 @@ unsigned getNumArgs() const { return DiagObj->NumDiagArgs; } - /// \brief Return the kind of the specified index. + /// Return the kind of the specified index. /// /// Based on the kind of argument, the accessors below can be used to get /// the value. @@ -1340,7 +1340,7 @@ return (DiagnosticsEngine::ArgumentKind)DiagObj->DiagArgumentsKind[Idx]; } - /// \brief Return the provided argument string specified by \p Idx. + /// Return the provided argument string specified by \p Idx. /// \pre getArgKind(Idx) == DiagnosticsEngine::ak_std_string const std::string &getArgStdStr(unsigned Idx) const { assert(getArgKind(Idx) == DiagnosticsEngine::ak_std_string && @@ -1348,7 +1348,7 @@ return DiagObj->DiagArgumentsStr[Idx]; } - /// \brief Return the specified C string argument. + /// Return the specified C string argument. /// \pre getArgKind(Idx) == DiagnosticsEngine::ak_c_string const char *getArgCStr(unsigned Idx) const { assert(getArgKind(Idx) == DiagnosticsEngine::ak_c_string && @@ -1356,7 +1356,7 @@ return reinterpret_cast<const char*>(DiagObj->DiagArgumentsVal[Idx]); } - /// \brief Return the specified signed integer argument. + /// Return the specified signed integer argument. /// \pre getArgKind(Idx) == DiagnosticsEngine::ak_sint int getArgSInt(unsigned Idx) const { assert(getArgKind(Idx) == DiagnosticsEngine::ak_sint && @@ -1364,7 +1364,7 @@ return (int)DiagObj->DiagArgumentsVal[Idx]; } - /// \brief Return the specified unsigned integer argument. + /// Return the specified unsigned integer argument. /// \pre getArgKind(Idx) == DiagnosticsEngine::ak_uint unsigned getArgUInt(unsigned Idx) const { assert(getArgKind(Idx) == DiagnosticsEngine::ak_uint && @@ -1372,7 +1372,7 @@ return (unsigned)DiagObj->DiagArgumentsVal[Idx]; } - /// \brief Return the specified IdentifierInfo argument. + /// Return the specified IdentifierInfo argument. /// \pre getArgKind(Idx) == DiagnosticsEngine::ak_identifierinfo const IdentifierInfo *getArgIdentifier(unsigned Idx) const { assert(getArgKind(Idx) == DiagnosticsEngine::ak_identifierinfo && @@ -1380,7 +1380,7 @@ return reinterpret_cast<IdentifierInfo*>(DiagObj->DiagArgumentsVal[Idx]); } - /// \brief Return the specified non-string argument in an opaque form. + /// Return the specified non-string argument in an opaque form. /// \pre getArgKind(Idx) != DiagnosticsEngine::ak_std_string intptr_t getRawArg(unsigned Idx) const { assert(getArgKind(Idx) != DiagnosticsEngine::ak_std_string && @@ -1388,7 +1388,7 @@ return DiagObj->DiagArgumentsVal[Idx]; } - /// \brief Return the number of source ranges associated with this diagnostic. + /// Return the number of source ranges associated with this diagnostic. unsigned getNumRanges() const { return DiagObj->DiagRanges.size(); } @@ -1399,7 +1399,7 @@ return DiagObj->DiagRanges[Idx]; } - /// \brief Return an array reference for this diagnostic's ranges. + /// Return an array reference for this diagnostic's ranges. ArrayRef<CharSourceRange> getRanges() const { return DiagObj->DiagRanges; } @@ -1417,20 +1417,20 @@ return DiagObj->DiagFixItHints; } - /// \brief Format this diagnostic into a string, substituting the + /// Format this diagnostic into a string, substituting the /// formal arguments into the %0 slots. /// /// The result is appended onto the \p OutStr array. void FormatDiagnostic(SmallVectorImpl<char> &OutStr) const; - /// \brief Format the given format-string into the output buffer using the + /// Format the given format-string into the output buffer using the /// arguments stored in this diagnostic. void FormatDiagnostic(const char *DiagStr, const char *DiagEnd, SmallVectorImpl<char> &OutStr) const; }; /** - * \brief Represents a diagnostic in a form that can be retained until its + * Represents a diagnostic in a form that can be retained until its * corresponding source manager is destroyed. */ class StoredDiagnostic { @@ -1451,7 +1451,7 @@ ArrayRef<CharSourceRange> Ranges, ArrayRef<FixItHint> Fixits); - /// \brief Evaluates true when this object stores a diagnostic. + /// Evaluates true when this object stores a diagnostic. explicit operator bool() const { return !Message.empty(); } unsigned getID() const { return ID; } @@ -1482,7 +1482,7 @@ } }; -/// \brief Abstract interface, implemented by clients of the front-end, which +/// Abstract interface, implemented by clients of the front-end, which /// formats and prints fully processed diagnostics. class DiagnosticConsumer { protected: @@ -1497,7 +1497,7 @@ unsigned getNumWarnings() const { return NumWarnings; } virtual void clear() { NumWarnings = NumErrors = 0; } - /// \brief Callback to inform the diagnostic client that processing + /// Callback to inform the diagnostic client that processing /// of a source file is beginning. /// /// Note that diagnostics may be emitted outside the processing of a source @@ -1511,25 +1511,25 @@ virtual void BeginSourceFile(const LangOptions &LangOpts, const Preprocessor *PP = nullptr) {} - /// \brief Callback to inform the diagnostic client that processing + /// Callback to inform the diagnostic client that processing /// of a source file has ended. /// /// The diagnostic client should assume that any objects made available via /// BeginSourceFile() are inaccessible. virtual void EndSourceFile() {} - /// \brief Callback to inform the diagnostic client that processing of all + /// Callback to inform the diagnostic client that processing of all /// source files has ended. virtual void finish() {} - /// \brief Indicates whether the diagnostics handled by this + /// Indicates whether the diagnostics handled by this /// DiagnosticConsumer should be included in the number of diagnostics /// reported by DiagnosticsEngine. /// /// The default implementation returns true. virtual bool IncludeInDiagnosticCounts() const; - /// \brief Handle this diagnostic, reporting it to the user or + /// Handle this diagnostic, reporting it to the user or /// capturing it to a log as needed. /// /// The default implementation just keeps track of the total number of @@ -1538,7 +1538,7 @@ const Diagnostic &Info); }; -/// \brief A diagnostic client that ignores all diagnostics. +/// A diagnostic client that ignores all diagnostics. class IgnoringDiagConsumer : public DiagnosticConsumer { virtual void anchor(); @@ -1548,7 +1548,7 @@ } }; -/// \brief Diagnostic consumer that forwards diagnostics along to an +/// Diagnostic consumer that forwards diagnostics along to an /// existing, already-initialized diagnostic consumer. /// class ForwardingDiagnosticConsumer : public DiagnosticConsumer { Index: cfe/trunk/include/clang/Basic/DiagnosticError.h =================================================================== --- cfe/trunk/include/clang/Basic/DiagnosticError.h +++ cfe/trunk/include/clang/Basic/DiagnosticError.h @@ -15,7 +15,7 @@ namespace clang { -/// \brief Carries a Clang diagnostic in an llvm::Error. +/// Carries a Clang diagnostic in an llvm::Error. /// /// Users should emit the stored diagnostic using the DiagnosticsEngine. class DiagnosticError : public llvm::ErrorInfo<DiagnosticError> { Index: cfe/trunk/include/clang/Basic/DiagnosticIDs.h =================================================================== --- cfe/trunk/include/clang/Basic/DiagnosticIDs.h +++ cfe/trunk/include/clang/Basic/DiagnosticIDs.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines the Diagnostic IDs-related interfaces. +/// Defines the Diagnostic IDs-related interfaces. /// //===----------------------------------------------------------------------===// @@ -60,7 +60,7 @@ class CustomDiagInfo; - /// \brief All of the diagnostics that can be emitted by the frontend. + /// All of the diagnostics that can be emitted by the frontend. typedef unsigned kind; // Get typedefs for common diagnostics. @@ -158,25 +158,25 @@ } }; -/// \brief Used for handling and querying diagnostic IDs. +/// Used for handling and querying diagnostic IDs. /// /// Can be used and shared by multiple Diagnostics for multiple translation units. class DiagnosticIDs : public RefCountedBase<DiagnosticIDs> { public: - /// \brief The level of the diagnostic, after it has been through mapping. + /// The level of the diagnostic, after it has been through mapping. enum Level { Ignored, Note, Remark, Warning, Error, Fatal }; private: - /// \brief Information for uniquing and looking up custom diags. + /// Information for uniquing and looking up custom diags. diag::CustomDiagInfo *CustomDiagInfo; public: DiagnosticIDs(); ~DiagnosticIDs(); - /// \brief Return an ID for a diagnostic with the specified format string and + /// Return an ID for a diagnostic with the specified format string and /// level. /// /// If this is the first request for this diagnostic, it is registered and @@ -191,31 +191,31 @@ // Diagnostic classification and reporting interfaces. // - /// \brief Given a diagnostic ID, return a description of the issue. + /// Given a diagnostic ID, return a description of the issue. StringRef getDescription(unsigned DiagID) const; - /// \brief Return true if the unmapped diagnostic levelof the specified + /// Return true if the unmapped diagnostic levelof the specified /// diagnostic ID is a Warning or Extension. /// /// This only works on builtin diagnostics, not custom ones, and is not /// legal to call on NOTEs. static bool isBuiltinWarningOrExtension(unsigned DiagID); - /// \brief Return true if the specified diagnostic is mapped to errors by + /// Return true if the specified diagnostic is mapped to errors by /// default. static bool isDefaultMappingAsError(unsigned DiagID); - /// \brief Determine whether the given built-in diagnostic ID is a Note. + /// Determine whether the given built-in diagnostic ID is a Note. static bool isBuiltinNote(unsigned DiagID); - /// \brief Determine whether the given built-in diagnostic ID is for an + /// Determine whether the given built-in diagnostic ID is for an /// extension of some sort. static bool isBuiltinExtensionDiag(unsigned DiagID) { bool ignored; return isBuiltinExtensionDiag(DiagID, ignored); } - /// \brief Determine whether the given built-in diagnostic ID is for an + /// Determine whether the given built-in diagnostic ID is for an /// extension of some sort, and whether it is enabled by default. /// /// This also returns EnabledByDefault, which is set to indicate whether the @@ -225,53 +225,53 @@ static bool isBuiltinExtensionDiag(unsigned DiagID, bool &EnabledByDefault); - /// \brief Return the lowest-level warning option that enables the specified + /// Return the lowest-level warning option that enables the specified /// diagnostic. /// /// If there is no -Wfoo flag that controls the diagnostic, this returns null. static StringRef getWarningOptionForDiag(unsigned DiagID); - /// \brief Return the category number that a specified \p DiagID belongs to, + /// Return the category number that a specified \p DiagID belongs to, /// or 0 if no category. static unsigned getCategoryNumberForDiag(unsigned DiagID); - /// \brief Return the number of diagnostic categories. + /// Return the number of diagnostic categories. static unsigned getNumberOfCategories(); - /// \brief Given a category ID, return the name of the category. + /// Given a category ID, return the name of the category. static StringRef getCategoryNameFromID(unsigned CategoryID); - /// \brief Return true if a given diagnostic falls into an ARC diagnostic + /// Return true if a given diagnostic falls into an ARC diagnostic /// category. static bool isARCDiagnostic(unsigned DiagID); - /// \brief Enumeration describing how the emission of a diagnostic should + /// Enumeration describing how the emission of a diagnostic should /// be treated when it occurs during C++ template argument deduction. enum SFINAEResponse { - /// \brief The diagnostic should not be reported, but it should cause + /// The diagnostic should not be reported, but it should cause /// template argument deduction to fail. /// /// The vast majority of errors that occur during template argument /// deduction fall into this category. SFINAE_SubstitutionFailure, - /// \brief The diagnostic should be suppressed entirely. + /// The diagnostic should be suppressed entirely. /// /// Warnings generally fall into this category. SFINAE_Suppress, - /// \brief The diagnostic should be reported. + /// The diagnostic should be reported. /// /// The diagnostic should be reported. Various fatal errors (e.g., /// template instantiation depth exceeded) fall into this category. SFINAE_Report, - /// \brief The diagnostic is an access-control diagnostic, which will be + /// The diagnostic is an access-control diagnostic, which will be /// substitution failures in some contexts and reported in others. SFINAE_AccessControl }; - /// \brief Determines whether the given built-in diagnostic ID is + /// Determines whether the given built-in diagnostic ID is /// for an error that is suppressed if it occurs during C++ template /// argument deduction. /// @@ -281,30 +281,30 @@ /// are not SFINAE errors. static SFINAEResponse getDiagnosticSFINAEResponse(unsigned DiagID); - /// \brief Get the string of all diagnostic flags. + /// Get the string of all diagnostic flags. /// /// \returns A list of all diagnostics flags as they would be written in a /// command line invocation including their `no-` variants. For example: /// `{"-Wempty-body", "-Wno-empty-body", ...}` static std::vector<std::string> getDiagnosticFlags(); - /// \brief Get the set of all diagnostic IDs in the group with the given name. + /// Get the set of all diagnostic IDs in the group with the given name. /// /// \param[out] Diags - On return, the diagnostics in the group. /// \returns \c true if the given group is unknown, \c false otherwise. bool getDiagnosticsInGroup(diag::Flavor Flavor, StringRef Group, SmallVectorImpl<diag::kind> &Diags) const; - /// \brief Get the set of all diagnostic IDs. + /// Get the set of all diagnostic IDs. static void getAllDiagnostics(diag::Flavor Flavor, std::vector<diag::kind> &Diags); - /// \brief Get the diagnostic option with the closest edit distance to the + /// Get the diagnostic option with the closest edit distance to the /// given group name. static StringRef getNearestOption(diag::Flavor Flavor, StringRef Group); private: - /// \brief Classify the specified diagnostic ID into a Level, consumable by + /// Classify the specified diagnostic ID into a Level, consumable by /// the DiagnosticClient. /// /// The classification is based on the way the client configured the @@ -320,17 +320,17 @@ getDiagnosticSeverity(unsigned DiagID, SourceLocation Loc, const DiagnosticsEngine &Diag) const LLVM_READONLY; - /// \brief Used to report a diagnostic that is finally fully formed. + /// Used to report a diagnostic that is finally fully formed. /// /// \returns \c true if the diagnostic was emitted, \c false if it was /// suppressed. bool ProcessDiag(DiagnosticsEngine &Diag) const; - /// \brief Used to emit a diagnostic that is finally fully formed, + /// Used to emit a diagnostic that is finally fully formed, /// ignoring suppression. void EmitDiag(DiagnosticsEngine &Diag, Level DiagLevel) const; - /// \brief Whether the diagnostic may leave the AST in a state where some + /// Whether the diagnostic may leave the AST in a state where some /// invariants can break. bool isUnrecoverable(unsigned DiagID) const; Index: cfe/trunk/include/clang/Basic/DiagnosticOptions.h =================================================================== --- cfe/trunk/include/clang/Basic/DiagnosticOptions.h +++ cfe/trunk/include/clang/Basic/DiagnosticOptions.h @@ -18,7 +18,7 @@ namespace clang { -/// \brief Specifies which overload candidates to display when overload +/// Specifies which overload candidates to display when overload /// resolution fails. enum OverloadsShown : unsigned { /// Show all overloads. @@ -28,7 +28,7 @@ Ovl_Best }; -/// \brief A bitmask representing the diagnostic levels used by +/// A bitmask representing the diagnostic levels used by /// VerifyDiagnosticConsumer. enum class DiagnosticLevelMask : unsigned { None = 0, @@ -60,7 +60,7 @@ raw_ostream& operator<<(raw_ostream& Out, DiagnosticLevelMask M); -/// \brief Options for controlling the compiler diagnostics engine. +/// Options for controlling the compiler diagnostics engine. class DiagnosticOptions : public RefCountedBase<DiagnosticOptions>{ public: enum TextDiagnosticFormat { Clang, MSVC, Vi }; @@ -89,10 +89,10 @@ #include "clang/Basic/DiagnosticOptions.def" public: - /// \brief The file to log diagnostic output to. + /// The file to log diagnostic output to. std::string DiagnosticLogFile; - /// \brief The file to serialize diagnostics to (non-appending). + /// The file to serialize diagnostics to (non-appending). std::string DiagnosticSerializationFile; /// The list of -W... options used to alter the diagnostic mappings, with the Index: cfe/trunk/include/clang/Basic/ExceptionSpecificationType.h =================================================================== --- cfe/trunk/include/clang/Basic/ExceptionSpecificationType.h +++ cfe/trunk/include/clang/Basic/ExceptionSpecificationType.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines the ExceptionSpecificationType enumeration and various +/// Defines the ExceptionSpecificationType enumeration and various /// utility functions. /// //===----------------------------------------------------------------------===// @@ -17,7 +17,7 @@ namespace clang { -/// \brief The various types of exception specifications that exist in C++11. +/// The various types of exception specifications that exist in C++11. enum ExceptionSpecificationType { EST_None, ///< no exception specification EST_DynamicNone, ///< throw() @@ -49,7 +49,7 @@ return ESpecType == EST_Unevaluated || ESpecType == EST_Uninstantiated; } -/// \brief Possible results from evaluation of a noexcept expression. +/// Possible results from evaluation of a noexcept expression. enum CanThrowResult { CT_Cannot, CT_Dependent, Index: cfe/trunk/include/clang/Basic/ExpressionTraits.h =================================================================== --- cfe/trunk/include/clang/Basic/ExpressionTraits.h +++ cfe/trunk/include/clang/Basic/ExpressionTraits.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines enumerations for expression traits intrinsics. +/// Defines enumerations for expression traits intrinsics. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/include/clang/Basic/FileManager.h =================================================================== --- cfe/trunk/include/clang/Basic/FileManager.h +++ cfe/trunk/include/clang/Basic/FileManager.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines the clang::FileManager interface and associated types. +/// Defines the clang::FileManager interface and associated types. /// //===----------------------------------------------------------------------===// @@ -40,7 +40,7 @@ class FileSystemStatCache; -/// \brief Cached information about one directory (either on disk or in +/// Cached information about one directory (either on disk or in /// the virtual file system). class DirectoryEntry { friend class FileManager; @@ -51,7 +51,7 @@ StringRef getName() const { return Name; } }; -/// \brief Cached information about one file (either on disk +/// Cached information about one file (either on disk /// or in the virtual file system). /// /// If the 'File' member is valid, then this FileEntry has an open file @@ -70,7 +70,7 @@ bool InPCH; bool IsValid; // Is this \c FileEntry initialized and valid? - /// \brief The open file, if it is owned by the \p FileEntry. + /// The open file, if it is owned by the \p FileEntry. mutable std::unique_ptr<vfs::File> File; public: @@ -90,12 +90,12 @@ bool isInPCH() const { return InPCH; } time_t getModificationTime() const { return ModTime; } - /// \brief Return the directory the file lives in. + /// Return the directory the file lives in. const DirectoryEntry *getDir() const { return Dir; } bool operator<(const FileEntry &RHS) const { return UniqueID < RHS.UniqueID; } - /// \brief Check whether the file is a named pipe (and thus can't be opened by + /// Check whether the file is a named pipe (and thus can't be opened by /// the native FileManager methods). bool isNamedPipe() const { return IsNamedPipe; } @@ -106,7 +106,7 @@ struct FileData; -/// \brief Implements support for file system lookup, file system caching, +/// Implements support for file system lookup, file system caching, /// and directory search management. /// /// This also handles more advanced properties, such as uniquing files based @@ -117,21 +117,21 @@ IntrusiveRefCntPtr<vfs::FileSystem> FS; FileSystemOptions FileSystemOpts; - /// \brief Cache for existing real directories. + /// Cache for existing real directories. std::map<llvm::sys::fs::UniqueID, DirectoryEntry> UniqueRealDirs; - /// \brief Cache for existing real files. + /// Cache for existing real files. std::map<llvm::sys::fs::UniqueID, FileEntry> UniqueRealFiles; - /// \brief The virtual directories that we have allocated. + /// The virtual directories that we have allocated. /// /// For each virtual file (e.g. foo/bar/baz.cpp), we add all of its parent /// directories (foo/ and foo/bar/) here. SmallVector<std::unique_ptr<DirectoryEntry>, 4> VirtualDirectoryEntries; - /// \brief The virtual files that we have allocated. + /// The virtual files that we have allocated. SmallVector<std::unique_ptr<FileEntry>, 4> VirtualFileEntries; - /// \brief A cache that maps paths to directory entries (either real or + /// A cache that maps paths to directory entries (either real or /// virtual) we have looked up /// /// The actual Entries for real directories/files are @@ -141,19 +141,19 @@ /// llvm::StringMap<DirectoryEntry*, llvm::BumpPtrAllocator> SeenDirEntries; - /// \brief A cache that maps paths to file entries (either real or + /// A cache that maps paths to file entries (either real or /// virtual) we have looked up. /// /// \see SeenDirEntries llvm::StringMap<FileEntry*, llvm::BumpPtrAllocator> SeenFileEntries; - /// \brief The canonical names of directories. + /// The canonical names of directories. llvm::DenseMap<const DirectoryEntry *, llvm::StringRef> CanonicalDirNames; - /// \brief Storage for canonical names that we have computed. + /// Storage for canonical names that we have computed. llvm::BumpPtrAllocator CanonicalNameStorage; - /// \brief Each FileEntry we create is assigned a unique ID #. + /// Each FileEntry we create is assigned a unique ID #. /// unsigned NextFileUID; @@ -176,7 +176,7 @@ IntrusiveRefCntPtr<vfs::FileSystem> FS = nullptr); ~FileManager(); - /// \brief Installs the provided FileSystemStatCache object within + /// Installs the provided FileSystemStatCache object within /// the FileManager. /// /// Ownership of this object is transferred to the FileManager. @@ -190,13 +190,13 @@ void addStatCache(std::unique_ptr<FileSystemStatCache> statCache, bool AtBeginning = false); - /// \brief Removes the specified FileSystemStatCache object from the manager. + /// Removes the specified FileSystemStatCache object from the manager. void removeStatCache(FileSystemStatCache *statCache); - /// \brief Removes all FileSystemStatCache objects from the manager. + /// Removes all FileSystemStatCache objects from the manager. void clearStatCaches(); - /// \brief Lookup, cache, and verify the specified directory (real or + /// Lookup, cache, and verify the specified directory (real or /// virtual). /// /// This returns NULL if the directory doesn't exist. @@ -206,7 +206,7 @@ const DirectoryEntry *getDirectory(StringRef DirName, bool CacheFailure = true); - /// \brief Lookup, cache, and verify the specified file (real or + /// Lookup, cache, and verify the specified file (real or /// virtual). /// /// This returns NULL if the file doesn't exist. @@ -218,7 +218,7 @@ const FileEntry *getFile(StringRef Filename, bool OpenFile = false, bool CacheFailure = true); - /// \brief Returns the current file system options + /// Returns the current file system options FileSystemOptions &getFileSystemOpts() { return FileSystemOpts; } const FileSystemOptions &getFileSystemOpts() const { return FileSystemOpts; } @@ -226,14 +226,14 @@ return FS; } - /// \brief Retrieve a file entry for a "virtual" file that acts as + /// Retrieve a file entry for a "virtual" file that acts as /// if there were a file with the given name on disk. /// /// The file itself is not accessed. const FileEntry *getVirtualFile(StringRef Filename, off_t Size, time_t ModificationTime); - /// \brief Open the specified file as a MemoryBuffer, returning a new + /// Open the specified file as a MemoryBuffer, returning a new /// MemoryBuffer if successful, otherwise returning null. llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> getBufferForFile(const FileEntry *Entry, bool isVolatile = false, @@ -241,7 +241,7 @@ llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> getBufferForFile(StringRef Filename); - /// \brief Get the 'stat' information for the given \p Path. + /// Get the 'stat' information for the given \p Path. /// /// If the path is relative, it will be resolved against the WorkingDir of the /// FileManager's FileSystemOptions. @@ -250,10 +250,10 @@ bool getNoncachedStatValue(StringRef Path, vfs::Status &Result); - /// \brief Remove the real file \p Entry from the cache. + /// Remove the real file \p Entry from the cache. void invalidateCache(const FileEntry *Entry); - /// \brief If path is not absolute and FileSystemOptions set the working + /// If path is not absolute and FileSystemOptions set the working /// directory, the path is modified to be relative to the given /// working directory. /// \returns true if \c path changed. @@ -264,17 +264,17 @@ /// \returns true if \c Path changed to absolute. bool makeAbsolutePath(SmallVectorImpl<char> &Path) const; - /// \brief Produce an array mapping from the unique IDs assigned to each + /// Produce an array mapping from the unique IDs assigned to each /// file to the corresponding FileEntry pointer. void GetUniqueIDMapping( SmallVectorImpl<const FileEntry *> &UIDToFiles) const; - /// \brief Modifies the size and modification time of a previously created + /// Modifies the size and modification time of a previously created /// FileEntry. Use with caution. static void modifyFileEntry(FileEntry *File, off_t Size, time_t ModificationTime); - /// \brief Retrieve the canonical name for a given directory. + /// Retrieve the canonical name for a given directory. /// /// This is a very expensive operation, despite its results being cached, /// and should only be used when the physical layout of the file system is Index: cfe/trunk/include/clang/Basic/FileSystemOptions.h =================================================================== --- cfe/trunk/include/clang/Basic/FileSystemOptions.h +++ cfe/trunk/include/clang/Basic/FileSystemOptions.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines the clang::FileSystemOptions interface. +/// Defines the clang::FileSystemOptions interface. /// //===----------------------------------------------------------------------===// @@ -19,10 +19,10 @@ namespace clang { -/// \brief Keeps track of options that affect how file operations are performed. +/// Keeps track of options that affect how file operations are performed. class FileSystemOptions { public: - /// \brief If set, paths are resolved as if the working directory was + /// If set, paths are resolved as if the working directory was /// set to the value of WorkingDir. std::string WorkingDir; }; Index: cfe/trunk/include/clang/Basic/FileSystemStatCache.h =================================================================== --- cfe/trunk/include/clang/Basic/FileSystemStatCache.h +++ cfe/trunk/include/clang/Basic/FileSystemStatCache.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Defines the FileSystemStatCache interface. +/// Defines the FileSystemStatCache interface. // //===----------------------------------------------------------------------===// @@ -51,7 +51,7 @@ FileData() = default; }; -/// \brief Abstract interface for introducing a FileManager cache for 'stat' +/// Abstract interface for introducing a FileManager cache for 'stat' /// system calls, which is used by precompiled and pretokenized headers to /// improve performance. class FileSystemStatCache { @@ -71,7 +71,7 @@ CacheMissing }; - /// \brief Get the 'stat' information for the specified path, using the cache + /// Get the 'stat' information for the specified path, using the cache /// to accelerate it if possible. /// /// \returns \c true if the path does not exist or \c false if it exists. @@ -85,16 +85,16 @@ std::unique_ptr<vfs::File> *F, FileSystemStatCache *Cache, vfs::FileSystem &FS); - /// \brief Sets the next stat call cache in the chain of stat caches. + /// Sets the next stat call cache in the chain of stat caches. /// Takes ownership of the given stat cache. void setNextStatCache(std::unique_ptr<FileSystemStatCache> Cache) { NextStatCache = std::move(Cache); } - /// \brief Retrieve the next stat call cache in the chain. + /// Retrieve the next stat call cache in the chain. FileSystemStatCache *getNextStatCache() { return NextStatCache.get(); } - /// \brief Retrieve the next stat call cache in the chain, transferring + /// Retrieve the next stat call cache in the chain, transferring /// ownership of this cache (and, transitively, all of the remaining caches) /// to the caller. std::unique_ptr<FileSystemStatCache> takeNextStatCache() { @@ -120,12 +120,12 @@ } }; -/// \brief A stat "cache" that can be used by FileManager to keep +/// A stat "cache" that can be used by FileManager to keep /// track of the results of stat() calls that occur throughout the /// execution of the front end. class MemorizeStatCalls : public FileSystemStatCache { public: - /// \brief The set of stat() calls that have been seen. + /// The set of stat() calls that have been seen. llvm::StringMap<FileData, llvm::BumpPtrAllocator> StatCalls; using iterator = Index: cfe/trunk/include/clang/Basic/IdentifierTable.h =================================================================== --- cfe/trunk/include/clang/Basic/IdentifierTable.h +++ cfe/trunk/include/clang/Basic/IdentifierTable.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Defines the clang::IdentifierInfo, clang::IdentifierTable, and +/// Defines the clang::IdentifierInfo, clang::IdentifierTable, and /// clang::Selector interfaces. // //===----------------------------------------------------------------------===// @@ -39,7 +39,7 @@ class MultiKeywordSelector; class SourceLocation; -/// \brief A simple pair of identifier info and location. +/// A simple pair of identifier info and location. using IdentifierLocPair = std::pair<IdentifierInfo *, SourceLocation>; /// One of these records is kept for each identifier that @@ -89,7 +89,7 @@ IdentifierInfo(const IdentifierInfo &) = delete; IdentifierInfo &operator=(const IdentifierInfo &) = delete; - /// \brief Return true if this is the identifier for the specified string. + /// Return true if this is the identifier for the specified string. /// /// This is intended to be used for string literals only: II->isStr("foo"). template <std::size_t StrLen> @@ -98,13 +98,13 @@ memcmp(getNameStart(), Str, StrLen-1) == 0; } - /// \brief Return true if this is the identifier for the specified StringRef. + /// Return true if this is the identifier for the specified StringRef. bool isStr(llvm::StringRef Str) const { llvm::StringRef ThisStr(getNameStart(), getLength()); return ThisStr == Str; } - /// \brief Return the beginning of the actual null-terminated string for this + /// Return the beginning of the actual null-terminated string for this /// identifier. const char *getNameStart() const { if (Entry) return Entry->getKeyData(); @@ -118,7 +118,7 @@ return ((const actualtype*) this)->second; } - /// \brief Efficiently return the length of this identifier info. + /// Efficiently return the length of this identifier info. unsigned getLength() const { if (Entry) return Entry->getKeyLength(); // FIXME: This is gross. It would be best not to embed specific details @@ -132,12 +132,12 @@ return (((unsigned) p[0]) | (((unsigned) p[1]) << 8)) - 1; } - /// \brief Return the actual identifier string. + /// Return the actual identifier string. StringRef getName() const { return StringRef(getNameStart(), getLength()); } - /// \brief Return true if this identifier is \#defined to some other value. + /// Return true if this identifier is \#defined to some other value. /// \note The current definition may be in a module and not currently visible. bool hasMacroDefinition() const { return HasMacro; @@ -153,7 +153,7 @@ RecomputeNeedsHandleIdentifier(); } } - /// \brief Returns true if this identifier was \#defined to some value at any + /// Returns true if this identifier was \#defined to some value at any /// moment. In this case there should be an entry for the identifier in the /// macro history table in Preprocessor. bool hadMacroDefinition() const { @@ -165,10 +165,10 @@ /// tokens. tok::TokenKind getTokenID() const { return (tok::TokenKind)TokenID; } - /// \brief True if revertTokenIDToIdentifier() was called. + /// True if revertTokenIDToIdentifier() was called. bool hasRevertedTokenIDToIdentifier() const { return RevertedTokenID; } - /// \brief Revert TokenID to tok::identifier; used for GNU libstdc++ 4.2 + /// Revert TokenID to tok::identifier; used for GNU libstdc++ 4.2 /// compatibility. /// /// TokenID is normally read-only but there are 2 instances where we revert it @@ -185,12 +185,12 @@ RevertedTokenID = false; } - /// \brief Return the preprocessor keyword ID for this identifier. + /// Return the preprocessor keyword ID for this identifier. /// /// For example, "define" will return tok::pp_define. tok::PPKeywordKind getPPKeywordID() const; - /// \brief Return the Objective-C keyword ID for the this identifier. + /// Return the Objective-C keyword ID for the this identifier. /// /// For example, 'class' will return tok::objc_class if ObjC is enabled. tok::ObjCKeywordKind getObjCKeywordID() const { @@ -201,19 +201,19 @@ } void setObjCKeywordID(tok::ObjCKeywordKind ID) { ObjCOrBuiltinID = ID; } - /// \brief True if setNotBuiltin() was called. + /// True if setNotBuiltin() was called. bool hasRevertedBuiltin() const { return ObjCOrBuiltinID == tok::NUM_OBJC_KEYWORDS; } - /// \brief Revert the identifier to a non-builtin identifier. We do this if + /// Revert the identifier to a non-builtin identifier. We do this if /// the name of a known builtin library function is used to declare that /// function, but an unexpected type is specified. void revertBuiltin() { setBuiltinID(0); } - /// \brief Return a value indicating whether this is a builtin function. + /// Return a value indicating whether this is a builtin function. /// /// 0 is not-built-in. 1+ are specific builtin functions. unsigned getBuiltinID() const { @@ -267,7 +267,7 @@ RecomputeNeedsHandleIdentifier(); } - /// \brief Return true if this token has been poisoned. + /// Return true if this token has been poisoned. bool isPoisoned() const { return IsPoisoned; } /// isCPlusPlusOperatorKeyword/setIsCPlusPlusOperatorKeyword controls whether @@ -277,10 +277,10 @@ } bool isCPlusPlusOperatorKeyword() const { return IsCPPOperatorKeyword; } - /// \brief Return true if this token is a keyword in the specified language. + /// Return true if this token is a keyword in the specified language. bool isKeyword(const LangOptions &LangOpts) const; - /// \brief Return true if this token is a C++ keyword in the specified + /// Return true if this token is a C++ keyword in the specified /// language. bool isCPlusPlusKeyword(const LangOptions &LangOpts) const; @@ -290,48 +290,48 @@ T *getFETokenInfo() const { return static_cast<T*>(FETokenInfo); } void setFETokenInfo(void *T) { FETokenInfo = T; } - /// \brief Return true if the Preprocessor::HandleIdentifier must be called + /// Return true if the Preprocessor::HandleIdentifier must be called /// on a token of this identifier. /// /// If this returns false, we know that HandleIdentifier will not affect /// the token. bool isHandleIdentifierCase() const { return NeedsHandleIdentifier; } - /// \brief Return true if the identifier in its current state was loaded + /// Return true if the identifier in its current state was loaded /// from an AST file. bool isFromAST() const { return IsFromAST; } void setIsFromAST() { IsFromAST = true; } - /// \brief Determine whether this identifier has changed since it was loaded + /// Determine whether this identifier has changed since it was loaded /// from an AST file. bool hasChangedSinceDeserialization() const { return ChangedAfterLoad; } - /// \brief Note that this identifier has changed since it was loaded from + /// Note that this identifier has changed since it was loaded from /// an AST file. void setChangedSinceDeserialization() { ChangedAfterLoad = true; } - /// \brief Determine whether the frontend token information for this + /// Determine whether the frontend token information for this /// identifier has changed since it was loaded from an AST file. bool hasFETokenInfoChangedSinceDeserialization() const { return FEChangedAfterLoad; } - /// \brief Note that the frontend token information for this identifier has + /// Note that the frontend token information for this identifier has /// changed since it was loaded from an AST file. void setFETokenInfoChangedSinceDeserialization() { FEChangedAfterLoad = true; } - /// \brief Determine whether the information for this identifier is out of + /// Determine whether the information for this identifier is out of /// date with respect to the external source. bool isOutOfDate() const { return OutOfDate; } - /// \brief Set whether the information for this identifier is out of + /// Set whether the information for this identifier is out of /// date with respect to the external source. void setOutOfDate(bool OOD) { OutOfDate = OOD; @@ -341,10 +341,10 @@ RecomputeNeedsHandleIdentifier(); } - /// \brief Determine whether this is the contextual keyword \c import. + /// Determine whether this is the contextual keyword \c import. bool isModulesImport() const { return IsModulesImport; } - /// \brief Set whether this identifier is the contextual keyword \c import. + /// Set whether this identifier is the contextual keyword \c import. void setModulesImport(bool I) { IsModulesImport = I; if (I) @@ -366,7 +366,7 @@ return getName().startswith("<#") && getName().endswith("#>"); } - /// \brief Provide less than operator for lexicographical sorting. + /// Provide less than operator for lexicographical sorting. bool operator<(const IdentifierInfo &RHS) const { return getName() < RHS.getName(); } @@ -385,7 +385,7 @@ } }; -/// \brief An RAII object for [un]poisoning an identifier within a scope. +/// An RAII object for [un]poisoning an identifier within a scope. /// /// \p II is allowed to be null, in which case objects of this type have /// no effect. @@ -406,7 +406,7 @@ } }; -/// \brief An iterator that walks over all of the known identifiers +/// An iterator that walks over all of the known identifiers /// in the lookup table. /// /// Since this iterator uses an abstract interface via virtual @@ -426,7 +426,7 @@ virtual ~IdentifierIterator(); - /// \brief Retrieve the next string in the identifier table and + /// Retrieve the next string in the identifier table and /// advances the iterator for the following string. /// /// \returns The next string in the identifier table. If there is @@ -434,19 +434,19 @@ virtual StringRef Next() = 0; }; -/// \brief Provides lookups to, and iteration over, IdentiferInfo objects. +/// Provides lookups to, and iteration over, IdentiferInfo objects. class IdentifierInfoLookup { public: virtual ~IdentifierInfoLookup(); - /// \brief Return the IdentifierInfo for the specified named identifier. + /// Return the IdentifierInfo for the specified named identifier. /// /// Unlike the version in IdentifierTable, this returns a pointer instead /// of a reference. If the pointer is null then the IdentifierInfo cannot /// be found. virtual IdentifierInfo* get(StringRef Name) = 0; - /// \brief Retrieve an iterator into the set of all identifiers + /// Retrieve an iterator into the set of all identifiers /// known to this identifier lookup source. /// /// This routine provides access to all of the identifiers known to @@ -459,7 +459,7 @@ virtual IdentifierIterator *getIdentifiers(); }; -/// \brief Implements an efficient mapping from strings to IdentifierInfo nodes. +/// Implements an efficient mapping from strings to IdentifierInfo nodes. /// /// This has no other purpose, but this is an extremely performance-critical /// piece of the code, as each occurrence of every identifier goes through @@ -473,20 +473,20 @@ IdentifierInfoLookup* ExternalLookup; public: - /// \brief Create the identifier table. + /// Create the identifier table. explicit IdentifierTable(IdentifierInfoLookup *ExternalLookup = nullptr); - /// \brief Create the identifier table, populating it with info about the + /// Create the identifier table, populating it with info about the /// language keywords for the language specified by \p LangOpts. explicit IdentifierTable(const LangOptions &LangOpts, IdentifierInfoLookup *ExternalLookup = nullptr); - /// \brief Set the external identifier lookup mechanism. + /// Set the external identifier lookup mechanism. void setExternalIdentifierLookup(IdentifierInfoLookup *IILookup) { ExternalLookup = IILookup; } - /// \brief Retrieve the external identifier lookup object, if any. + /// Retrieve the external identifier lookup object, if any. IdentifierInfoLookup *getExternalIdentifierLookup() const { return ExternalLookup; } @@ -495,7 +495,7 @@ return HashTable.getAllocator(); } - /// \brief Return the identifier token info for the specified named + /// Return the identifier token info for the specified named /// identifier. IdentifierInfo &get(StringRef Name) { auto &Entry = *HashTable.insert(std::make_pair(Name, nullptr)).first; @@ -528,7 +528,7 @@ return II; } - /// \brief Gets an IdentifierInfo for the given name without consulting + /// Gets an IdentifierInfo for the given name without consulting /// external sources. /// /// This is a version of get() meant for external sources that want to @@ -563,16 +563,16 @@ iterator end() const { return HashTable.end(); } unsigned size() const { return HashTable.size(); } - /// \brief Print some statistics to stderr that indicate how well the + /// Print some statistics to stderr that indicate how well the /// hashing is doing. void PrintStats() const; - /// \brief Populate the identifier table with info about the language keywords + /// Populate the identifier table with info about the language keywords /// for the language specified by \p LangOpts. void AddKeywords(const LangOptions &LangOpts); }; -/// \brief A family of Objective-C methods. +/// A family of Objective-C methods. /// /// These families have no inherent meaning in the language, but are /// nonetheless central enough in the existing implementations to @@ -590,7 +590,7 @@ /// explicitly change or remove a method's family. Therefore the /// method's family should be considered the single source of truth. enum ObjCMethodFamily { - /// \brief No particular method family. + /// No particular method family. OMF_None, // Selectors in these families may have arbitrary arity, may be @@ -622,10 +622,10 @@ /// InvalidObjCMethodFamily. enum { ObjCMethodFamilyBitWidth = 4 }; -/// \brief An invalid value of ObjCMethodFamily. +/// An invalid value of ObjCMethodFamily. enum { InvalidObjCMethodFamily = (1 << ObjCMethodFamilyBitWidth) - 1 }; -/// \brief A family of Objective-C methods. +/// A family of Objective-C methods. /// /// These are family of methods whose result type is initially 'id', but /// but are candidate for the result type to be changed to 'instancetype'. @@ -644,7 +644,7 @@ SFF_CFString }; -/// \brief Smart pointer class that efficiently represents Objective-C method +/// Smart pointer class that efficiently represents Objective-C method /// names. /// /// This class will either point to an IdentifierInfo or a @@ -717,7 +717,7 @@ return reinterpret_cast<void*>(InfoPtr); } - /// \brief Determine whether this is the empty selector. + /// Determine whether this is the empty selector. bool isNull() const { return InfoPtr == 0; } // Predicates to identify the selector type. @@ -731,7 +731,7 @@ unsigned getNumArgs() const; - /// \brief Retrieve the identifier at a given position in the selector. + /// Retrieve the identifier at a given position in the selector. /// /// Note that the identifier pointer returned may be NULL. Clients that only /// care about the text of the identifier string, and not the specific, @@ -746,7 +746,7 @@ /// no corresponding identifier. IdentifierInfo *getIdentifierInfoForSlot(unsigned argIndex) const; - /// \brief Retrieve the name at a given position in the selector. + /// Retrieve the name at a given position in the selector. /// /// \param argIndex The index for which we want to retrieve the name. /// This index shall be less than \c getNumArgs() unless this is a keyword @@ -756,14 +756,14 @@ /// name was supplied. StringRef getNameForSlot(unsigned argIndex) const; - /// \brief Derive the full selector name (e.g. "foo:bar:") and return + /// Derive the full selector name (e.g. "foo:bar:") and return /// it as an std::string. std::string getAsString() const; - /// \brief Prints the full selector name (e.g. "foo:bar:"). + /// Prints the full selector name (e.g. "foo:bar:"). void print(llvm::raw_ostream &OS) const; - /// \brief Derive the conventional family of this method. + /// Derive the conventional family of this method. ObjCMethodFamily getMethodFamily() const { return getMethodFamilyImpl(*this); } @@ -783,7 +783,7 @@ static ObjCInstanceTypeFamily getInstTypeMethodFamily(Selector sel); }; -/// \brief This table allows us to fully hide how we implement +/// This table allows us to fully hide how we implement /// multi-keyword caching. class SelectorTable { // Actually a SelectorTableImpl @@ -795,7 +795,7 @@ SelectorTable &operator=(const SelectorTable &) = delete; ~SelectorTable(); - /// \brief Can create any sort of selector. + /// Can create any sort of selector. /// /// \p NumArgs indicates whether this is a no argument selector "foo", a /// single argument selector "foo:" or multi-argument "foo:bar:". @@ -809,16 +809,16 @@ return Selector(ID, 0); } - /// \brief Return the total amount of memory allocated for managing selectors. + /// Return the total amount of memory allocated for managing selectors. size_t getTotalMemory() const; - /// \brief Return the default setter name for the given identifier. + /// Return the default setter name for the given identifier. /// /// This is "set" + \p Name where the initial character of \p Name /// has been capitalized. static SmallString<64> constructSetterName(StringRef Name); - /// \brief Return the default setter selector for the given identifier. + /// Return the default setter selector for the given identifier. /// /// This is "set" + \p Name where the initial character of \p Name /// has been capitalized. Index: cfe/trunk/include/clang/Basic/LLVM.h =================================================================== --- cfe/trunk/include/clang/Basic/LLVM.h +++ cfe/trunk/include/clang/Basic/LLVM.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Forward-declares and imports various common LLVM datatypes that +/// Forward-declares and imports various common LLVM datatypes that /// clang wants to use unqualified. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/include/clang/Basic/Lambda.h =================================================================== --- cfe/trunk/include/clang/Basic/Lambda.h +++ cfe/trunk/include/clang/Basic/Lambda.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines several types used to describe C++ lambda expressions +/// Defines several types used to describe C++ lambda expressions /// that are shared between the parser and AST. /// //===----------------------------------------------------------------------===// @@ -19,14 +19,14 @@ namespace clang { -/// \brief The default, if any, capture method for a lambda expression. +/// The default, if any, capture method for a lambda expression. enum LambdaCaptureDefault { LCD_None, LCD_ByCopy, LCD_ByRef }; -/// \brief The different capture forms in a lambda introducer +/// The different capture forms in a lambda introducer /// /// C++11 allows capture of \c this, or of local variables by copy or /// by reference. C++1y also allows "init-capture", where the initializer Index: cfe/trunk/include/clang/Basic/LangOptions.h =================================================================== --- cfe/trunk/include/clang/Basic/LangOptions.h +++ cfe/trunk/include/clang/Basic/LangOptions.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Defines the clang::LangOptions interface. +/// Defines the clang::LangOptions interface. // //===----------------------------------------------------------------------===// @@ -45,7 +45,7 @@ #include "clang/Basic/LangOptions.def" }; -/// \brief Keeps track of the various options that can be +/// Keeps track of the various options that can be /// enabled, which controls the dialect of C or C++ that is accepted. class LangOptions : public LangOptionsBase { public: @@ -138,26 +138,26 @@ }; public: - /// \brief Set of enabled sanitizers. + /// Set of enabled sanitizers. SanitizerSet Sanitize; - /// \brief Paths to blacklist files specifying which objects + /// Paths to blacklist files specifying which objects /// (files, functions, variables) should not be instrumented. std::vector<std::string> SanitizerBlacklistFiles; - /// \brief Paths to the XRay "always instrument" files specifying which + /// Paths to the XRay "always instrument" files specifying which /// objects (files, functions, variables) should be imbued with the XRay /// "always instrument" attribute. /// WARNING: This is a deprecated field and will go away in the future. std::vector<std::string> XRayAlwaysInstrumentFiles; - /// \brief Paths to the XRay "never instrument" files specifying which + /// Paths to the XRay "never instrument" files specifying which /// objects (files, functions, variables) should be imbued with the XRay /// "never instrument" attribute. /// WARNING: This is a deprecated field and will go away in the future. std::vector<std::string> XRayNeverInstrumentFiles; - /// \brief Paths to the XRay attribute list files, specifying which objects + /// Paths to the XRay attribute list files, specifying which objects /// (files, functions, variables) should be imbued with the appropriate XRay /// attribute(s). std::vector<std::string> XRayAttrListFiles; @@ -166,7 +166,7 @@ std::string ObjCConstantStringClass; - /// \brief The name of the handler function to be called when -ftrapv is + /// The name of the handler function to be called when -ftrapv is /// specified. /// /// If none is specified, abort (GCC-compatible behaviour). @@ -175,34 +175,34 @@ /// The module currently being compiled as speficied by -fmodule-name. std::string ModuleName; - /// \brief The name of the current module, of which the main source file + /// The name of the current module, of which the main source file /// is a part. If CompilingModule is set, we are compiling the interface /// of this module, otherwise we are compiling an implementation file of /// it. This starts as ModuleName in case -fmodule-name is provided and /// changes during compilation to reflect the current module. std::string CurrentModule; - /// \brief The names of any features to enable in module 'requires' decls + /// The names of any features to enable in module 'requires' decls /// in addition to the hard-coded list in Module.cpp and the target features. /// /// This list is sorted. std::vector<std::string> ModuleFeatures; - /// \brief Options for parsing comments. + /// Options for parsing comments. CommentOptions CommentOpts; - /// \brief A list of all -fno-builtin-* function names (e.g., memset). + /// A list of all -fno-builtin-* function names (e.g., memset). std::vector<std::string> NoBuiltinFuncs; - /// \brief Triples of the OpenMP targets that the host code codegen should + /// Triples of the OpenMP targets that the host code codegen should /// take into account in order to generate accurate offloading descriptors. std::vector<llvm::Triple> OMPTargetTriples; - /// \brief Name of the IR file that contains the result of the OpenMP target + /// Name of the IR file that contains the result of the OpenMP target /// host code generation. std::string OMPHostIRFile; - /// \brief Indicates whether the front-end is explicitly told that the + /// Indicates whether the front-end is explicitly told that the /// input is a header file (i.e. -x c-header). bool IsHeaderFile = false; @@ -238,15 +238,15 @@ return MSCompatibilityVersion >= MajorVersion * 10000000U; } - /// \brief Reset all of the options that are not considered when building a + /// Reset all of the options that are not considered when building a /// module. void resetNonModularOptions(); - /// \brief Is this a libc/libm function that is no longer recognized as a + /// Is this a libc/libm function that is no longer recognized as a /// builtin because a -fno-builtin-* option has been specified? bool isNoBuiltinFunc(StringRef Name) const; - /// \brief True if any ObjC types may have non-trivial lifetime qualifiers. + /// True if any ObjC types may have non-trivial lifetime qualifiers. bool allowsNonTrivialObjCLifetimeQualifiers() const { return ObjCAutoRefCount || ObjCWeak; } @@ -255,11 +255,11 @@ return (CUDA && CUDAIsDevice) || OpenCL; } - /// \brief Return the OpenCL C or C++ version as a VersionTuple. + /// Return the OpenCL C or C++ version as a VersionTuple. VersionTuple getOpenCLVersionTuple() const; }; -/// \brief Floating point control options +/// Floating point control options class FPOptions { public: FPOptions() : fp_contract(LangOptions::FPC_Off) {} @@ -297,16 +297,16 @@ unsigned fp_contract : 2; }; -/// \brief Describes the kind of translation unit being processed. +/// Describes the kind of translation unit being processed. enum TranslationUnitKind { - /// \brief The translation unit is a complete translation unit. + /// The translation unit is a complete translation unit. TU_Complete, - /// \brief The translation unit is a prefix to a translation unit, and is + /// The translation unit is a prefix to a translation unit, and is /// not complete. TU_Prefix, - /// \brief The translation unit is a module. + /// The translation unit is a module. TU_Module }; Index: cfe/trunk/include/clang/Basic/LangOptions.def =================================================================== --- cfe/trunk/include/clang/Basic/LangOptions.def +++ cfe/trunk/include/clang/Basic/LangOptions.def @@ -233,7 +233,7 @@ BENIGN_LANGOPT(SpellChecking , 1, 1, "spell-checking") LANGOPT(SinglePrecisionConstants , 1, 0, "treating double-precision floating point constants as single precision constants") LANGOPT(FastRelaxedMath , 1, 0, "OpenCL fast relaxed math") -/// \brief FP_CONTRACT mode (on/off/fast). +/// FP_CONTRACT mode (on/off/fast). ENUM_LANGOPT(DefaultFPContractMode, FPContractModeKind, 2, FPC_Off, "FP contraction type") LANGOPT(NoBitFieldTypeAlign , 1, 0, "bit-field type alignment") LANGOPT(HexagonQdsp6Compat , 1, 0, "hexagon-qdsp6 backward compatibility") Index: cfe/trunk/include/clang/Basic/Linkage.h =================================================================== --- cfe/trunk/include/clang/Basic/Linkage.h +++ cfe/trunk/include/clang/Basic/Linkage.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Defines the Linkage enumeration and various utility functions. +/// Defines the Linkage enumeration and various utility functions. // //===----------------------------------------------------------------------===// @@ -19,19 +19,19 @@ namespace clang { -/// \brief Describes the different kinds of linkage +/// Describes the different kinds of linkage /// (C++ [basic.link], C99 6.2.2) that an entity may have. enum Linkage : unsigned char { - /// \brief No linkage, which means that the entity is unique and + /// No linkage, which means that the entity is unique and /// can only be referred to from within its scope. NoLinkage = 0, - /// \brief Internal linkage, which indicates that the entity can + /// Internal linkage, which indicates that the entity can /// be referred to from within the translation unit (but not other /// translation units). InternalLinkage, - /// \brief External linkage within a unique namespace. + /// External linkage within a unique namespace. /// /// From the language perspective, these entities have external /// linkage. However, since they reside in an anonymous namespace, @@ -40,27 +40,27 @@ /// point of view. UniqueExternalLinkage, - /// \brief No linkage according to the standard, but is visible from other + /// No linkage according to the standard, but is visible from other /// translation units because of types defined in a inline function. VisibleNoLinkage, - /// \brief Internal linkage according to the Modules TS, but can be referred + /// Internal linkage according to the Modules TS, but can be referred /// to from other translation units indirectly through inline functions and /// templates in the module interface. ModuleInternalLinkage, - /// \brief Module linkage, which indicates that the entity can be referred + /// Module linkage, which indicates that the entity can be referred /// to from other translation units within the same module, and indirectly /// from arbitrary other translation units through inline functions and /// templates in the module interface. ModuleLinkage, - /// \brief External linkage, which indicates that the entity can + /// External linkage, which indicates that the entity can /// be referred to from other translation units. ExternalLinkage }; -/// \brief Describes the different kinds of language linkage +/// Describes the different kinds of language linkage /// (C++ [dcl.link]) that an entity may have. enum LanguageLinkage { CLanguageLinkage, @@ -68,7 +68,7 @@ NoLanguageLinkage }; -/// \brief A more specific kind of linkage than enum Linkage. +/// A more specific kind of linkage than enum Linkage. /// /// This is relevant to CodeGen and AST file reading. enum GVALinkage { @@ -104,7 +104,7 @@ return getFormalLinkage(L) == ExternalLinkage; } -/// \brief Compute the minimum linkage given two linkages. +/// Compute the minimum linkage given two linkages. /// /// The linkage can be interpreted as a pair formed by the formal linkage and /// a boolean for external visibility. This is just what getFormalLinkage and Index: cfe/trunk/include/clang/Basic/MacroBuilder.h =================================================================== --- cfe/trunk/include/clang/Basic/MacroBuilder.h +++ cfe/trunk/include/clang/Basic/MacroBuilder.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines the clang::MacroBuilder utility class. +/// Defines the clang::MacroBuilder utility class. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/include/clang/Basic/Module.h =================================================================== --- cfe/trunk/include/clang/Basic/Module.h +++ cfe/trunk/include/clang/Basic/Module.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Defines the clang::Module class, which describes a module in the +/// Defines the clang::Module class, which describes a module in the /// source code. // //===----------------------------------------------------------------------===// @@ -48,7 +48,7 @@ class LangOptions; class TargetInfo; -/// \brief Describes the name of a module. +/// Describes the name of a module. using ModuleId = SmallVector<std::pair<std::string, SourceLocation>, 2>; /// The signature of a module, which is a hash of the AST content. @@ -61,76 +61,76 @@ } }; -/// \brief Describes a module or submodule. +/// Describes a module or submodule. class Module { public: - /// \brief The name of this module. + /// The name of this module. std::string Name; - /// \brief The location of the module definition. + /// The location of the module definition. SourceLocation DefinitionLoc; enum ModuleKind { - /// \brief This is a module that was defined by a module map and built out + /// This is a module that was defined by a module map and built out /// of header files. ModuleMapModule, - /// \brief This is a C++ Modules TS module interface unit. + /// This is a C++ Modules TS module interface unit. ModuleInterfaceUnit, - /// \brief This is a fragment of the global module within some C++ Modules + /// This is a fragment of the global module within some C++ Modules /// TS module. GlobalModuleFragment, }; - /// \brief The kind of this module. + /// The kind of this module. ModuleKind Kind = ModuleMapModule; - /// \brief The parent of this module. This will be NULL for the top-level + /// The parent of this module. This will be NULL for the top-level /// module. Module *Parent; - /// \brief The build directory of this module. This is the directory in + /// The build directory of this module. This is the directory in /// which the module is notionally built, and relative to which its headers /// are found. const DirectoryEntry *Directory = nullptr; - /// \brief The presumed file name for the module map defining this module. + /// The presumed file name for the module map defining this module. /// Only non-empty when building from preprocessed source. std::string PresumedModuleMapFile; - /// \brief The umbrella header or directory. + /// The umbrella header or directory. llvm::PointerUnion<const DirectoryEntry *, const FileEntry *> Umbrella; - /// \brief The module signature. + /// The module signature. ASTFileSignature Signature; - /// \brief The name of the umbrella entry, as written in the module map. + /// The name of the umbrella entry, as written in the module map. std::string UmbrellaAsWritten; - /// \brief The module through which entities defined in this module will + /// The module through which entities defined in this module will /// eventually be exposed, for use in "private" modules. std::string ExportAsModule; private: - /// \brief The submodules of this module, indexed by name. + /// The submodules of this module, indexed by name. std::vector<Module *> SubModules; - /// \brief A mapping from the submodule name to the index into the + /// A mapping from the submodule name to the index into the /// \c SubModules vector at which that submodule resides. llvm::StringMap<unsigned> SubModuleIndex; - /// \brief The AST file if this is a top-level module which has a + /// The AST file if this is a top-level module which has a /// corresponding serialized AST file, or null otherwise. const FileEntry *ASTFile = nullptr; - /// \brief The top-level headers associated with this module. + /// The top-level headers associated with this module. llvm::SmallSetVector<const FileEntry *, 2> TopHeaders; - /// \brief top-level header filenames that aren't resolved to FileEntries yet. + /// top-level header filenames that aren't resolved to FileEntries yet. std::vector<std::string> TopHeaderNames; - /// \brief Cache of modules visible to lookup in this module. + /// Cache of modules visible to lookup in this module. mutable llvm::DenseSet<const Module*> VisibleModulesCache; /// The ID used when referencing this module within a VisibleModuleSet. @@ -146,7 +146,7 @@ }; static const int NumHeaderKinds = HK_Excluded + 1; - /// \brief Information about a header directive as found in the module map + /// Information about a header directive as found in the module map /// file. struct Header { std::string NameAsWritten; @@ -155,7 +155,7 @@ explicit operator bool() { return Entry; } }; - /// \brief Information about a directory name as found in the module map + /// Information about a directory name as found in the module map /// file. struct DirectoryName { std::string NameAsWritten; @@ -164,10 +164,10 @@ explicit operator bool() { return Entry; } }; - /// \brief The headers that are part of this module. + /// The headers that are part of this module. SmallVector<Header, 2> Headers[5]; - /// \brief Stored information about a header directive that was found in the + /// Stored information about a header directive that was found in the /// module map file but has not been resolved to a file. struct UnresolvedHeaderDirective { HeaderKind Kind = HK_Normal; @@ -183,155 +183,155 @@ /// yet attempted to resolve to a file on the file system. SmallVector<UnresolvedHeaderDirective, 1> UnresolvedHeaders; - /// \brief Headers that are mentioned in the module map file but could not be + /// Headers that are mentioned in the module map file but could not be /// found on the file system. SmallVector<UnresolvedHeaderDirective, 1> MissingHeaders; - /// \brief An individual requirement: a feature name and a flag indicating + /// An individual requirement: a feature name and a flag indicating /// the required state of that feature. using Requirement = std::pair<std::string, bool>; - /// \brief The set of language features required to use this module. + /// The set of language features required to use this module. /// /// If any of these requirements are not available, the \c IsAvailable bit /// will be false to indicate that this (sub)module is not available. SmallVector<Requirement, 2> Requirements; - /// \brief A module with the same name that shadows this module. + /// A module with the same name that shadows this module. Module *ShadowingModule = nullptr; - /// \brief Whether this module is missing a feature from \c Requirements. + /// Whether this module is missing a feature from \c Requirements. unsigned IsMissingRequirement : 1; - /// \brief Whether we tried and failed to load a module file for this module. + /// Whether we tried and failed to load a module file for this module. unsigned HasIncompatibleModuleFile : 1; - /// \brief Whether this module is available in the current translation unit. + /// Whether this module is available in the current translation unit. /// /// If the module is missing headers or does not meet all requirements then /// this bit will be 0. unsigned IsAvailable : 1; - /// \brief Whether this module was loaded from a module file. + /// Whether this module was loaded from a module file. unsigned IsFromModuleFile : 1; - /// \brief Whether this is a framework module. + /// Whether this is a framework module. unsigned IsFramework : 1; - /// \brief Whether this is an explicit submodule. + /// Whether this is an explicit submodule. unsigned IsExplicit : 1; - /// \brief Whether this is a "system" module (which assumes that all + /// Whether this is a "system" module (which assumes that all /// headers in it are system headers). unsigned IsSystem : 1; - /// \brief Whether this is an 'extern "C"' module (which implicitly puts all + /// Whether this is an 'extern "C"' module (which implicitly puts all /// headers in it within an 'extern "C"' block, and allows the module to be /// imported within such a block). unsigned IsExternC : 1; - /// \brief Whether this is an inferred submodule (module * { ... }). + /// Whether this is an inferred submodule (module * { ... }). unsigned IsInferred : 1; - /// \brief Whether we should infer submodules for this module based on + /// Whether we should infer submodules for this module based on /// the headers. /// /// Submodules can only be inferred for modules with an umbrella header. unsigned InferSubmodules : 1; - /// \brief Whether, when inferring submodules, the inferred submodules + /// Whether, when inferring submodules, the inferred submodules /// should be explicit. unsigned InferExplicitSubmodules : 1; - /// \brief Whether, when inferring submodules, the inferr submodules should + /// Whether, when inferring submodules, the inferr submodules should /// export all modules they import (e.g., the equivalent of "export *"). unsigned InferExportWildcard : 1; - /// \brief Whether the set of configuration macros is exhaustive. + /// Whether the set of configuration macros is exhaustive. /// /// When the set of configuration macros is exhaustive, meaning /// that no identifier not in this list should affect how the module is /// built. unsigned ConfigMacrosExhaustive : 1; - /// \brief Whether files in this module can only include non-modular headers + /// Whether files in this module can only include non-modular headers /// and headers from used modules. unsigned NoUndeclaredIncludes : 1; - /// \brief Whether this module came from a "private" module map, found next + /// Whether this module came from a "private" module map, found next /// to a regular (public) module map. unsigned ModuleMapIsPrivate : 1; - /// \brief Describes the visibility of the various names within a + /// Describes the visibility of the various names within a /// particular module. enum NameVisibilityKind { - /// \brief All of the names in this module are hidden. + /// All of the names in this module are hidden. Hidden, - /// \brief All of the names in this module are visible. + /// All of the names in this module are visible. AllVisible }; - /// \brief The visibility of names within this particular module. + /// The visibility of names within this particular module. NameVisibilityKind NameVisibility; - /// \brief The location of the inferred submodule. + /// The location of the inferred submodule. SourceLocation InferredSubmoduleLoc; - /// \brief The set of modules imported by this module, and on which this + /// The set of modules imported by this module, and on which this /// module depends. llvm::SmallSetVector<Module *, 2> Imports; - /// \brief Describes an exported module. + /// Describes an exported module. /// /// The pointer is the module being re-exported, while the bit will be true /// to indicate that this is a wildcard export. using ExportDecl = llvm::PointerIntPair<Module *, 1, bool>; - /// \brief The set of export declarations. + /// The set of export declarations. SmallVector<ExportDecl, 2> Exports; - /// \brief Describes an exported module that has not yet been resolved + /// Describes an exported module that has not yet been resolved /// (perhaps because the module it refers to has not yet been loaded). struct UnresolvedExportDecl { - /// \brief The location of the 'export' keyword in the module map file. + /// The location of the 'export' keyword in the module map file. SourceLocation ExportLoc; - /// \brief The name of the module. + /// The name of the module. ModuleId Id; - /// \brief Whether this export declaration ends in a wildcard, indicating + /// Whether this export declaration ends in a wildcard, indicating /// that all of its submodules should be exported (rather than the named /// module itself). bool Wildcard; }; - /// \brief The set of export declarations that have yet to be resolved. + /// The set of export declarations that have yet to be resolved. SmallVector<UnresolvedExportDecl, 2> UnresolvedExports; - /// \brief The directly used modules. + /// The directly used modules. SmallVector<Module *, 2> DirectUses; - /// \brief The set of use declarations that have yet to be resolved. + /// The set of use declarations that have yet to be resolved. SmallVector<ModuleId, 2> UnresolvedDirectUses; - /// \brief A library or framework to link against when an entity from this + /// A library or framework to link against when an entity from this /// module is used. struct LinkLibrary { LinkLibrary() = default; LinkLibrary(const std::string &Library, bool IsFramework) : Library(Library), IsFramework(IsFramework) {} - /// \brief The library to link against. + /// The library to link against. /// /// This will typically be a library or framework name, but can also /// be an absolute path to the library or framework. std::string Library; - /// \brief Whether this is a framework rather than a library. + /// Whether this is a framework rather than a library. bool IsFramework = false; }; - /// \brief The set of libraries or frameworks to link against when + /// The set of libraries or frameworks to link against when /// an entity from this module is used. llvm::SmallVector<LinkLibrary, 2> LinkLibraries; @@ -339,46 +339,46 @@ /// when this is false and the export_as name otherwise. bool UseExportAsModuleLinkName = false; - /// \brief The set of "configuration macros", which are macros that + /// The set of "configuration macros", which are macros that /// (intentionally) change how this module is built. std::vector<std::string> ConfigMacros; - /// \brief An unresolved conflict with another module. + /// An unresolved conflict with another module. struct UnresolvedConflict { - /// \brief The (unresolved) module id. + /// The (unresolved) module id. ModuleId Id; - /// \brief The message provided to the user when there is a conflict. + /// The message provided to the user when there is a conflict. std::string Message; }; - /// \brief The list of conflicts for which the module-id has not yet been + /// The list of conflicts for which the module-id has not yet been /// resolved. std::vector<UnresolvedConflict> UnresolvedConflicts; - /// \brief A conflict between two modules. + /// A conflict between two modules. struct Conflict { - /// \brief The module that this module conflicts with. + /// The module that this module conflicts with. Module *Other; - /// \brief The message provided to the user when there is a conflict. + /// The message provided to the user when there is a conflict. std::string Message; }; - /// \brief The list of conflicts. + /// The list of conflicts. std::vector<Conflict> Conflicts; - /// \brief Construct a new module or submodule. + /// Construct a new module or submodule. Module(StringRef Name, SourceLocation DefinitionLoc, Module *Parent, bool IsFramework, bool IsExplicit, unsigned VisibilityID); ~Module(); - /// \brief Determine whether this module is available for use within the + /// Determine whether this module is available for use within the /// current translation unit. bool isAvailable() const { return IsAvailable; } - /// \brief Determine whether this module is available for use within the + /// Determine whether this module is available for use within the /// current translation unit. /// /// \param LangOpts The language options used for the current @@ -401,14 +401,14 @@ UnresolvedHeaderDirective &MissingHeader, Module *&ShadowingModule) const; - /// \brief Determine whether this module is a submodule. + /// Determine whether this module is a submodule. bool isSubModule() const { return Parent != nullptr; } - /// \brief Determine whether this module is a submodule of the given other + /// Determine whether this module is a submodule of the given other /// module. bool isSubModuleOf(const Module *Other) const; - /// \brief Determine whether this module is a part of a framework, + /// Determine whether this module is a part of a framework, /// either because it is a framework module or because it is a submodule /// of a framework module. bool isPartOfFramework() const { @@ -419,7 +419,7 @@ return false; } - /// \brief Determine whether this module is a subframework of another + /// Determine whether this module is a subframework of another /// framework. bool isSubFramework() const { return IsFramework && Parent && Parent->isPartOfFramework(); @@ -434,51 +434,51 @@ Parent->SubModules.push_back(this); } - /// \brief Retrieve the full name of this module, including the path from + /// Retrieve the full name of this module, including the path from /// its top-level module. /// \param AllowStringLiterals If \c true, components that might not be /// lexically valid as identifiers will be emitted as string literals. std::string getFullModuleName(bool AllowStringLiterals = false) const; - /// \brief Whether the full name of this module is equal to joining + /// Whether the full name of this module is equal to joining /// \p nameParts with "."s. /// /// This is more efficient than getFullModuleName(). bool fullModuleNameIs(ArrayRef<StringRef> nameParts) const; - /// \brief Retrieve the top-level module for this (sub)module, which may + /// Retrieve the top-level module for this (sub)module, which may /// be this module. Module *getTopLevelModule() { return const_cast<Module *>( const_cast<const Module *>(this)->getTopLevelModule()); } - /// \brief Retrieve the top-level module for this (sub)module, which may + /// Retrieve the top-level module for this (sub)module, which may /// be this module. const Module *getTopLevelModule() const; - /// \brief Retrieve the name of the top-level module. + /// Retrieve the name of the top-level module. StringRef getTopLevelModuleName() const { return getTopLevelModule()->Name; } - /// \brief The serialized AST file for this module, if one was created. + /// The serialized AST file for this module, if one was created. const FileEntry *getASTFile() const { return getTopLevelModule()->ASTFile; } - /// \brief Set the serialized AST file for the top-level module of this module. + /// Set the serialized AST file for the top-level module of this module. void setASTFile(const FileEntry *File) { assert((File == nullptr || getASTFile() == nullptr || getASTFile() == File) && "file path changed"); getTopLevelModule()->ASTFile = File; } - /// \brief Retrieve the directory for which this module serves as the + /// Retrieve the directory for which this module serves as the /// umbrella. DirectoryName getUmbrellaDir() const; - /// \brief Retrieve the header that serves as the umbrella header for this + /// Retrieve the header that serves as the umbrella header for this /// module. Header getUmbrellaHeader() const { if (auto *E = Umbrella.dyn_cast<const FileEntry *>()) @@ -486,31 +486,31 @@ return Header{}; } - /// \brief Determine whether this module has an umbrella directory that is + /// Determine whether this module has an umbrella directory that is /// not based on an umbrella header. bool hasUmbrellaDir() const { return Umbrella && Umbrella.is<const DirectoryEntry *>(); } - /// \brief Add a top-level header associated with this module. + /// Add a top-level header associated with this module. void addTopHeader(const FileEntry *File) { assert(File); TopHeaders.insert(File); } - /// \brief Add a top-level header filename associated with this module. + /// Add a top-level header filename associated with this module. void addTopHeaderFilename(StringRef Filename) { TopHeaderNames.push_back(Filename); } - /// \brief The top-level headers associated with this module. + /// The top-level headers associated with this module. ArrayRef<const FileEntry *> getTopHeaders(FileManager &FileMgr); - /// \brief Determine whether this module has declared its intention to + /// Determine whether this module has declared its intention to /// directly use another module. bool directlyUses(const Module *Requested) const; - /// \brief Add the given feature requirement to the list of features + /// Add the given feature requirement to the list of features /// required by this module. /// /// \param Feature The feature that is required by this module (and @@ -528,15 +528,15 @@ const LangOptions &LangOpts, const TargetInfo &Target); - /// \brief Mark this module and all of its submodules as unavailable. + /// Mark this module and all of its submodules as unavailable. void markUnavailable(bool MissingRequirement = false); - /// \brief Find the submodule with the given name. + /// Find the submodule with the given name. /// /// \returns The submodule if found, or NULL otherwise. Module *findSubmodule(StringRef Name) const; - /// \brief Determine whether the specified module would be visible to + /// Determine whether the specified module would be visible to /// a lookup at the end of this module. /// /// FIXME: This may return incorrect results for (submodules of) the @@ -565,7 +565,7 @@ return llvm::make_range(submodule_begin(), submodule_end()); } - /// \brief Appends this module's list of exported modules to \p Exported. + /// Appends this module's list of exported modules to \p Exported. /// /// This provides a subset of immediately imported modules (the ones that are /// directly exported), not the complete set of exported modules. @@ -575,17 +575,17 @@ return "<module-includes>"; } - /// \brief Print the module map for this module to the given stream. + /// Print the module map for this module to the given stream. void print(raw_ostream &OS, unsigned Indent = 0) const; - /// \brief Dump the contents of this module to the given output stream. + /// Dump the contents of this module to the given output stream. void dump() const; private: void buildVisibleModulesCache() const; }; -/// \brief A set of visible modules. +/// A set of visible modules. class VisibleModuleSet { public: VisibleModuleSet() = default; @@ -605,34 +605,34 @@ return *this; } - /// \brief Get the current visibility generation. Incremented each time the + /// Get the current visibility generation. Incremented each time the /// set of visible modules changes in any way. unsigned getGeneration() const { return Generation; } - /// \brief Determine whether a module is visible. + /// Determine whether a module is visible. bool isVisible(const Module *M) const { return getImportLoc(M).isValid(); } - /// \brief Get the location at which the import of a module was triggered. + /// Get the location at which the import of a module was triggered. SourceLocation getImportLoc(const Module *M) const { return M->getVisibilityID() < ImportLocs.size() ? ImportLocs[M->getVisibilityID()] : SourceLocation(); } - /// \brief A callback to call when a module is made visible (directly or + /// A callback to call when a module is made visible (directly or /// indirectly) by a call to \ref setVisible. using VisibleCallback = llvm::function_ref<void(Module *M)>; - /// \brief A callback to call when a module conflict is found. \p Path + /// A callback to call when a module conflict is found. \p Path /// consists of a sequence of modules from the conflicting module to the one /// made visible, where each was exported by the next. using ConflictCallback = llvm::function_ref<void(ArrayRef<Module *> Path, Module *Conflict, StringRef Message)>; - /// \brief Make a specific module visible. + /// Make a specific module visible. void setVisible(Module *M, SourceLocation Loc, VisibleCallback Vis = [](Module *) {}, ConflictCallback Cb = [](ArrayRef<Module *>, Module *, Index: cfe/trunk/include/clang/Basic/ObjCRuntime.h =================================================================== --- cfe/trunk/include/clang/Basic/ObjCRuntime.h +++ cfe/trunk/include/clang/Basic/ObjCRuntime.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Defines types useful for describing an Objective-C runtime. +/// Defines types useful for describing an Objective-C runtime. // //===----------------------------------------------------------------------===// @@ -24,10 +24,10 @@ namespace clang { -/// \brief The basic abstraction for the target Objective-C runtime. +/// The basic abstraction for the target Objective-C runtime. class ObjCRuntime { public: - /// \brief The basic Objective-C runtimes that we know about. + /// The basic Objective-C runtimes that we know about. enum Kind { /// 'macosx' is the Apple-provided NeXT-derived runtime on Mac OS /// X platforms that use the non-fragile ABI; the version is a @@ -77,7 +77,7 @@ Kind getKind() const { return TheKind; } const VersionTuple &getVersion() const { return Version; } - /// \brief Does this runtime follow the set of implied behaviors for a + /// Does this runtime follow the set of implied behaviors for a /// "non-fragile" ABI? bool isNonFragile() const { switch (getKind()) { @@ -115,7 +115,7 @@ return true; } - /// \brief Is this runtime basically of the GNU family of runtimes? + /// Is this runtime basically of the GNU family of runtimes? bool isGNUFamily() const { switch (getKind()) { case FragileMacOSX: @@ -131,14 +131,14 @@ llvm_unreachable("bad kind"); } - /// \brief Is this runtime basically of the NeXT family of runtimes? + /// Is this runtime basically of the NeXT family of runtimes? bool isNeXTFamily() const { // For now, this is just the inverse of isGNUFamily(), but that's // not inherently true. return !isGNUFamily(); } - /// \brief Does this runtime allow ARC at all? + /// Does this runtime allow ARC at all? bool allowsARC() const { switch (getKind()) { case FragileMacOSX: @@ -154,7 +154,7 @@ llvm_unreachable("bad kind"); } - /// \brief Does this runtime natively provide the ARC entrypoints? + /// Does this runtime natively provide the ARC entrypoints? /// /// ARC cannot be directly supported on a platform that does not provide /// these entrypoints, although it may be supportable via a stub @@ -173,7 +173,7 @@ llvm_unreachable("bad kind"); } - /// \brief Does this runtime supports optimized setter entrypoints? + /// Does this runtime supports optimized setter entrypoints? bool hasOptimizedSetter() const { switch (getKind()) { case MacOSX: @@ -194,7 +194,7 @@ return hasNativeWeak(); } - /// \brief Does this runtime natively provide ARC-compliant 'weak' + /// Does this runtime natively provide ARC-compliant 'weak' /// entrypoints? bool hasNativeWeak() const { // Right now, this is always equivalent to whether the runtime @@ -202,7 +202,7 @@ return hasNativeARC(); } - /// \brief Does this runtime directly support the subscripting methods? + /// Does this runtime directly support the subscripting methods? /// /// This is really a property of the library, not the runtime. bool hasSubscripting() const { @@ -222,12 +222,12 @@ llvm_unreachable("bad kind"); } - /// \brief Does this runtime allow sizeof or alignof on object types? + /// Does this runtime allow sizeof or alignof on object types? bool allowsSizeofAlignof() const { return isFragile(); } - /// \brief Does this runtime allow pointer arithmetic on objects? + /// Does this runtime allow pointer arithmetic on objects? /// /// This covers +, -, ++, --, and (if isSubscriptPointerArithmetic() /// yields true) []. @@ -246,12 +246,12 @@ llvm_unreachable("bad kind"); } - /// \brief Is subscripting pointer arithmetic? + /// Is subscripting pointer arithmetic? bool isSubscriptPointerArithmetic() const { return allowsPointerArithmetic(); } - /// \brief Does this runtime provide an objc_terminate function? + /// Does this runtime provide an objc_terminate function? /// /// This is used in handlers for exceptions during the unwind process; /// without it, abort() must be used in pure ObjC files. @@ -268,7 +268,7 @@ llvm_unreachable("bad kind"); } - /// \brief Does this runtime support weakly importing classes? + /// Does this runtime support weakly importing classes? bool hasWeakClassImport() const { switch (getKind()) { case MacOSX: return true; @@ -282,7 +282,7 @@ llvm_unreachable("bad kind"); } - /// \brief Does this runtime use zero-cost exceptions? + /// Does this runtime use zero-cost exceptions? bool hasUnwindExceptions() const { switch (getKind()) { case MacOSX: return true; @@ -340,7 +340,7 @@ } } - /// \brief Try to parse an Objective-C runtime specification from the given + /// Try to parse an Objective-C runtime specification from the given /// string. /// /// \return true on error. Index: cfe/trunk/include/clang/Basic/OpenCLOptions.h =================================================================== --- cfe/trunk/include/clang/Basic/OpenCLOptions.h +++ cfe/trunk/include/clang/Basic/OpenCLOptions.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines the clang::OpenCLOptions class. +/// Defines the clang::OpenCLOptions class. /// //===----------------------------------------------------------------------===// @@ -19,7 +19,7 @@ namespace clang { -/// \brief OpenCL supported extensions and optional core features +/// OpenCL supported extensions and optional core features class OpenCLOptions { struct Info { bool Supported; // Is this option supported @@ -67,7 +67,7 @@ OptMap[Ext].Enabled = V; } - /// \brief Enable or disable support for OpenCL extensions + /// Enable or disable support for OpenCL extensions /// \param Ext name of the extension optionally prefixed with /// '+' or '-' /// \param V used when \p Ext is not prefixed by '+' or '-' Index: cfe/trunk/include/clang/Basic/OpenMPKinds.h =================================================================== --- cfe/trunk/include/clang/Basic/OpenMPKinds.h +++ cfe/trunk/include/clang/Basic/OpenMPKinds.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines some OpenMP-specific enums and functions. +/// Defines some OpenMP-specific enums and functions. /// //===----------------------------------------------------------------------===// @@ -19,7 +19,7 @@ namespace clang { -/// \brief OpenMP directives. +/// OpenMP directives. enum OpenMPDirectiveKind { #define OPENMP_DIRECTIVE(Name) \ OMPD_##Name, @@ -29,7 +29,7 @@ OMPD_unknown }; -/// \brief OpenMP clauses. +/// OpenMP clauses. enum OpenMPClauseKind { #define OPENMP_CLAUSE(Name, Class) \ OMPC_##Name, @@ -39,7 +39,7 @@ OMPC_unknown }; -/// \brief OpenMP attributes for 'default' clause. +/// OpenMP attributes for 'default' clause. enum OpenMPDefaultClauseKind { #define OPENMP_DEFAULT_KIND(Name) \ OMPC_DEFAULT_##Name, @@ -47,7 +47,7 @@ OMPC_DEFAULT_unknown }; -/// \brief OpenMP attributes for 'proc_bind' clause. +/// OpenMP attributes for 'proc_bind' clause. enum OpenMPProcBindClauseKind { #define OPENMP_PROC_BIND_KIND(Name) \ OMPC_PROC_BIND_##Name, @@ -55,7 +55,7 @@ OMPC_PROC_BIND_unknown }; -/// \brief OpenMP attributes for 'schedule' clause. +/// OpenMP attributes for 'schedule' clause. enum OpenMPScheduleClauseKind { #define OPENMP_SCHEDULE_KIND(Name) \ OMPC_SCHEDULE_##Name, @@ -63,7 +63,7 @@ OMPC_SCHEDULE_unknown }; -/// \brief OpenMP modifiers for 'schedule' clause. +/// OpenMP modifiers for 'schedule' clause. enum OpenMPScheduleClauseModifier { OMPC_SCHEDULE_MODIFIER_unknown = OMPC_SCHEDULE_unknown, #define OPENMP_SCHEDULE_MODIFIER(Name) \ @@ -72,7 +72,7 @@ OMPC_SCHEDULE_MODIFIER_last }; -/// \brief OpenMP attributes for 'depend' clause. +/// OpenMP attributes for 'depend' clause. enum OpenMPDependClauseKind { #define OPENMP_DEPEND_KIND(Name) \ OMPC_DEPEND_##Name, @@ -80,7 +80,7 @@ OMPC_DEPEND_unknown }; -/// \brief OpenMP attributes for 'linear' clause. +/// OpenMP attributes for 'linear' clause. enum OpenMPLinearClauseKind { #define OPENMP_LINEAR_KIND(Name) \ OMPC_LINEAR_##Name, @@ -88,7 +88,7 @@ OMPC_LINEAR_unknown }; -/// \brief OpenMP mapping kind for 'map' clause. +/// OpenMP mapping kind for 'map' clause. enum OpenMPMapClauseKind { #define OPENMP_MAP_KIND(Name) \ OMPC_MAP_##Name, @@ -96,14 +96,14 @@ OMPC_MAP_unknown }; -/// \brief OpenMP attributes for 'dist_schedule' clause. +/// OpenMP attributes for 'dist_schedule' clause. enum OpenMPDistScheduleClauseKind { #define OPENMP_DIST_SCHEDULE_KIND(Name) OMPC_DIST_SCHEDULE_##Name, #include "clang/Basic/OpenMPKinds.def" OMPC_DIST_SCHEDULE_unknown }; -/// \brief OpenMP attributes for 'defaultmap' clause. +/// OpenMP attributes for 'defaultmap' clause. enum OpenMPDefaultmapClauseKind { #define OPENMP_DEFAULTMAP_KIND(Name) \ OMPC_DEFAULTMAP_##Name, @@ -111,7 +111,7 @@ OMPC_DEFAULTMAP_unknown }; -/// \brief OpenMP modifiers for 'defaultmap' clause. +/// OpenMP modifiers for 'defaultmap' clause. enum OpenMPDefaultmapClauseModifier { OMPC_DEFAULTMAP_MODIFIER_unknown = OMPC_DEFAULTMAP_unknown, #define OPENMP_DEFAULTMAP_MODIFIER(Name) \ @@ -139,39 +139,39 @@ bool isAllowedClauseForDirective(OpenMPDirectiveKind DKind, OpenMPClauseKind CKind); -/// \brief Checks if the specified directive is a directive with an associated +/// Checks if the specified directive is a directive with an associated /// loop construct. /// \param DKind Specified directive. /// \return true - the directive is a loop-associated directive like 'omp simd' /// or 'omp for' directive, otherwise - false. bool isOpenMPLoopDirective(OpenMPDirectiveKind DKind); -/// \brief Checks if the specified directive is a worksharing directive. +/// Checks if the specified directive is a worksharing directive. /// \param DKind Specified directive. /// \return true - the directive is a worksharing directive like 'omp for', /// otherwise - false. bool isOpenMPWorksharingDirective(OpenMPDirectiveKind DKind); -/// \brief Checks if the specified directive is a taskloop directive. +/// Checks if the specified directive is a taskloop directive. /// \param DKind Specified directive. /// \return true - the directive is a worksharing directive like 'omp taskloop', /// otherwise - false. bool isOpenMPTaskLoopDirective(OpenMPDirectiveKind DKind); -/// \brief Checks if the specified directive is a parallel-kind directive. +/// Checks if the specified directive is a parallel-kind directive. /// \param DKind Specified directive. /// \return true - the directive is a parallel-like directive like 'omp /// parallel', otherwise - false. bool isOpenMPParallelDirective(OpenMPDirectiveKind DKind); -/// \brief Checks if the specified directive is a target code offload directive. +/// Checks if the specified directive is a target code offload directive. /// \param DKind Specified directive. /// \return true - the directive is a target code offload directive like /// 'omp target', 'omp target parallel', 'omp target xxx' /// otherwise - false. bool isOpenMPTargetExecutionDirective(OpenMPDirectiveKind DKind); -/// \brief Checks if the specified directive is a target data offload directive. +/// Checks if the specified directive is a target data offload directive. /// \param DKind Specified directive. /// \return true - the directive is a target data offload directive like /// 'omp target data', 'omp target update', 'omp target enter data', @@ -193,13 +193,13 @@ /// \return true - the directive is a teams-like directive, otherwise - false. bool isOpenMPTeamsDirective(OpenMPDirectiveKind DKind); -/// \brief Checks if the specified directive is a simd directive. +/// Checks if the specified directive is a simd directive. /// \param DKind Specified directive. /// \return true - the directive is a simd directive like 'omp simd', /// otherwise - false. bool isOpenMPSimdDirective(OpenMPDirectiveKind DKind); -/// \brief Checks if the specified directive is a distribute directive. +/// Checks if the specified directive is a distribute directive. /// \param DKind Specified directive. /// \return true - the directive is a distribute-directive like 'omp /// distribute', @@ -214,13 +214,13 @@ /// otherwise - false. bool isOpenMPNestingDistributeDirective(OpenMPDirectiveKind DKind); -/// \brief Checks if the specified clause is one of private clauses like +/// Checks if the specified clause is one of private clauses like /// 'private', 'firstprivate', 'reduction' etc.. /// \param Kind Clause kind. /// \return true - the clause is a private clause, otherwise - false. bool isOpenMPPrivate(OpenMPClauseKind Kind); -/// \brief Checks if the specified clause is one of threadprivate clauses like +/// Checks if the specified clause is one of threadprivate clauses like /// 'threadprivate', 'copyin' or 'copyprivate'. /// \param Kind Clause kind. /// \return true - the clause is a threadprivate clause, otherwise - false. Index: cfe/trunk/include/clang/Basic/OpenMPKinds.def =================================================================== --- cfe/trunk/include/clang/Basic/OpenMPKinds.def +++ cfe/trunk/include/clang/Basic/OpenMPKinds.def @@ -7,7 +7,7 @@ // //===----------------------------------------------------------------------===// /// \file -/// \brief This file defines the list of supported OpenMP directives and +/// This file defines the list of supported OpenMP directives and /// clauses. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/include/clang/Basic/OperatorKinds.h =================================================================== --- cfe/trunk/include/clang/Basic/OperatorKinds.h +++ cfe/trunk/include/clang/Basic/OperatorKinds.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines an enumeration for C++ overloaded operators. +/// Defines an enumeration for C++ overloaded operators. /// //===----------------------------------------------------------------------===// @@ -17,7 +17,7 @@ namespace clang { -/// \brief Enumeration specifying the different kinds of C++ overloaded +/// Enumeration specifying the different kinds of C++ overloaded /// operators. enum OverloadedOperatorKind : int { OO_None, ///< Not an overloaded operator @@ -27,7 +27,7 @@ NUM_OVERLOADED_OPERATORS }; -/// \brief Retrieve the spelling of the given overloaded operator, without +/// Retrieve the spelling of the given overloaded operator, without /// the preceding "operator" keyword. const char *getOperatorSpelling(OverloadedOperatorKind Operator); Index: cfe/trunk/include/clang/Basic/OperatorPrecedence.h =================================================================== --- cfe/trunk/include/clang/Basic/OperatorPrecedence.h +++ cfe/trunk/include/clang/Basic/OperatorPrecedence.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines and computes precedence levels for binary/ternary operators. +/// Defines and computes precedence levels for binary/ternary operators. /// //===----------------------------------------------------------------------===// @@ -44,7 +44,7 @@ }; } -/// \brief Return the precedence of the specified binary operator token. +/// Return the precedence of the specified binary operator token. prec::Level getBinOpPrecedence(tok::TokenKind Kind, bool GreaterThanIsOperator, bool CPlusPlus11); Index: cfe/trunk/include/clang/Basic/PartialDiagnostic.h =================================================================== --- cfe/trunk/include/clang/Basic/PartialDiagnostic.h +++ cfe/trunk/include/clang/Basic/PartialDiagnostic.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Implements a partial diagnostic that can be emitted anwyhere +/// Implements a partial diagnostic that can be emitted anwyhere /// in a DiagnosticBuilder stream. // //===----------------------------------------------------------------------===// @@ -44,7 +44,7 @@ struct Storage { enum { - /// \brief The maximum number of arguments we can hold. We + /// The maximum number of arguments we can hold. We /// currently only support up to 10 arguments (%0-%9). /// /// A single diagnostic with more than that almost certainly has to @@ -52,35 +52,35 @@ MaxArguments = PartialDiagnostic::MaxArguments }; - /// \brief The number of entries in Arguments. + /// The number of entries in Arguments. unsigned char NumDiagArgs = 0; - /// \brief Specifies for each argument whether it is in DiagArgumentsStr + /// Specifies for each argument whether it is in DiagArgumentsStr /// or in DiagArguments. unsigned char DiagArgumentsKind[MaxArguments]; - /// \brief The values for the various substitution positions. + /// The values for the various substitution positions. /// /// This is used when the argument is not an std::string. The specific value /// is mangled into an intptr_t and the interpretation depends on exactly /// what sort of argument kind it is. intptr_t DiagArgumentsVal[MaxArguments]; - /// \brief The values for the various substitution positions that have + /// The values for the various substitution positions that have /// string arguments. std::string DiagArgumentsStr[MaxArguments]; - /// \brief The list of ranges added to this diagnostic. + /// The list of ranges added to this diagnostic. SmallVector<CharSourceRange, 8> DiagRanges; - /// \brief If valid, provides a hint with some code to insert, remove, or + /// If valid, provides a hint with some code to insert, remove, or /// modify at a particular position. SmallVector<FixItHint, 6> FixItHints; Storage() = default; }; - /// \brief An allocator for Storage objects, which uses a small cache to + /// An allocator for Storage objects, which uses a small cache to /// objects, used to reduce malloc()/free() traffic for partial diagnostics. class StorageAllocator { static const unsigned NumCached = 16; @@ -92,7 +92,7 @@ StorageAllocator(); ~StorageAllocator(); - /// \brief Allocate new storage. + /// Allocate new storage. Storage *Allocate() { if (NumFreeListEntries == 0) return new Storage; @@ -104,7 +104,7 @@ return Result; } - /// \brief Free the given storage object. + /// Free the given storage object. void Deallocate(Storage *S) { if (S >= Cached && S <= Cached + NumCached) { FreeList[NumFreeListEntries++] = S; @@ -120,16 +120,16 @@ // in the sense that its bits can be safely memcpy'ed and destructed // in the new location. - /// \brief The diagnostic ID. + /// The diagnostic ID. mutable unsigned DiagID = 0; - /// \brief Storage for args and ranges. + /// Storage for args and ranges. mutable Storage *DiagStorage = nullptr; - /// \brief Allocator used to allocate storage for this diagnostic. + /// Allocator used to allocate storage for this diagnostic. StorageAllocator *Allocator = nullptr; - /// \brief Retrieve storage for this particular diagnostic. + /// Retrieve storage for this particular diagnostic. Storage *getStorage() const { if (DiagStorage) return DiagStorage; @@ -184,7 +184,7 @@ public: struct NullDiagnostic {}; - /// \brief Create a null partial diagnostic, which cannot carry a payload, + /// Create a null partial diagnostic, which cannot carry a payload, /// and only exists to be swapped with a real partial diagnostic. PartialDiagnostic(NullDiagnostic) {} @@ -324,7 +324,7 @@ Diags.Clear(); } - /// \brief Clear out this partial diagnostic, giving it a new diagnostic ID + /// Clear out this partial diagnostic, giving it a new diagnostic ID /// and removing all of its arguments, ranges, and fix-it hints. void Reset(unsigned DiagID = 0) { this->DiagID = DiagID; @@ -414,7 +414,7 @@ return DB; } -/// \brief A partial diagnostic along with the source location where this +/// A partial diagnostic along with the source location where this /// diagnostic occurs. using PartialDiagnosticAt = std::pair<SourceLocation, PartialDiagnostic>; Index: cfe/trunk/include/clang/Basic/PrettyStackTrace.h =================================================================== --- cfe/trunk/include/clang/Basic/PrettyStackTrace.h +++ cfe/trunk/include/clang/Basic/PrettyStackTrace.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines the PrettyStackTraceEntry class, which is used to make +/// Defines the PrettyStackTraceEntry class, which is used to make /// crashes give more contextual information about what the program was doing /// when it crashed. /// Index: cfe/trunk/include/clang/Basic/Sanitizers.h =================================================================== --- cfe/trunk/include/clang/Basic/Sanitizers.h +++ cfe/trunk/include/clang/Basic/Sanitizers.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Defines the clang::SanitizerKind enum. +/// Defines the clang::SanitizerKind enum. // //===----------------------------------------------------------------------===// @@ -48,16 +48,16 @@ } // namespace SanitizerKind struct SanitizerSet { - /// \brief Check if a certain (single) sanitizer is enabled. + /// Check if a certain (single) sanitizer is enabled. bool has(SanitizerMask K) const { assert(llvm::isPowerOf2_64(K)); return Mask & K; } - /// \brief Check if one or more sanitizers are enabled. + /// Check if one or more sanitizers are enabled. bool hasOneOf(SanitizerMask K) const { return Mask & K; } - /// \brief Enable or disable a certain (single) sanitizer. + /// Enable or disable a certain (single) sanitizer. void set(SanitizerMask K, bool Value) { assert(llvm::isPowerOf2_64(K)); Mask = Value ? (Mask | K) : (Mask & ~K); @@ -66,10 +66,10 @@ /// Disable the sanitizers specified in \p K. void clear(SanitizerMask K = SanitizerKind::All) { Mask &= ~K; } - /// \brief Returns true if at least one sanitizer is enabled. + /// Returns true if at least one sanitizer is enabled. bool empty() const { return Mask == 0; } - /// \brief Bitmask of enabled sanitizers. + /// Bitmask of enabled sanitizers. SanitizerMask Mask = 0; }; Index: cfe/trunk/include/clang/Basic/SourceLocation.h =================================================================== --- cfe/trunk/include/clang/Basic/SourceLocation.h +++ cfe/trunk/include/clang/Basic/SourceLocation.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Defines the clang::SourceLocation class and associated facilities. +/// Defines the clang::SourceLocation class and associated facilities. // //===----------------------------------------------------------------------===// @@ -34,11 +34,11 @@ class SourceManager; -/// \brief An opaque identifier used by SourceManager which refers to a +/// An opaque identifier used by SourceManager which refers to a /// source file (MemoryBuffer) along with its \#include path and \#line data. /// class FileID { - /// \brief A mostly-opaque identifier, where 0 is "invalid", >0 is + /// A mostly-opaque identifier, where 0 is "invalid", >0 is /// this module, and <-1 is something loaded from another module. int ID = 0; @@ -70,7 +70,7 @@ int getOpaqueValue() const { return ID; } }; -/// \brief Encodes a location in the source. The SourceManager can decode this +/// Encodes a location in the source. The SourceManager can decode this /// to get at the full include stack, line and column information. /// /// Technically, a source location is simply an offset into the manager's view @@ -100,7 +100,7 @@ bool isFileID() const { return (ID & MacroIDBit) == 0; } bool isMacroID() const { return (ID & MacroIDBit) != 0; } - /// \brief Return true if this is a valid SourceLocation object. + /// Return true if this is a valid SourceLocation object. /// /// Invalid SourceLocations are often used when events have no corresponding /// location in the source (e.g. a diagnostic is required for a command line @@ -109,7 +109,7 @@ bool isInvalid() const { return ID == 0; } private: - /// \brief Return the offset into the manager's global input view. + /// Return the offset into the manager's global input view. unsigned getOffset() const { return ID & ~MacroIDBit; } @@ -129,7 +129,7 @@ } public: - /// \brief Return a source location with the specified offset from this + /// Return a source location with the specified offset from this /// SourceLocation. SourceLocation getLocWithOffset(int Offset) const { assert(((getOffset()+Offset) & MacroIDBit) == 0 && "offset overflow"); @@ -138,14 +138,14 @@ return L; } - /// \brief When a SourceLocation itself cannot be used, this returns + /// When a SourceLocation itself cannot be used, this returns /// an (opaque) 32-bit integer encoding for it. /// /// This should only be passed to SourceLocation::getFromRawEncoding, it /// should not be inspected directly. unsigned getRawEncoding() const { return ID; } - /// \brief Turn a raw encoding of a SourceLocation object into + /// Turn a raw encoding of a SourceLocation object into /// a real SourceLocation. /// /// \see getRawEncoding. @@ -155,7 +155,7 @@ return X; } - /// \brief When a SourceLocation itself cannot be used, this returns + /// When a SourceLocation itself cannot be used, this returns /// an (opaque) pointer encoding for it. /// /// This should only be passed to SourceLocation::getFromPtrEncoding, it @@ -166,7 +166,7 @@ return (void*)(uintptr_t)getRawEncoding(); } - /// \brief Turn a pointer encoding of a SourceLocation object back + /// Turn a pointer encoding of a SourceLocation object back /// into a real SourceLocation. static SourceLocation getFromPtrEncoding(const void *Encoding) { return getFromRawEncoding((unsigned)(uintptr_t)Encoding); @@ -194,7 +194,7 @@ return LHS.getRawEncoding() < RHS.getRawEncoding(); } -/// \brief A trivial tuple used to represent a source range. +/// A trivial tuple used to represent a source range. class SourceRange { SourceLocation B; SourceLocation E; @@ -222,7 +222,7 @@ } }; -/// \brief Represents a character-granular source range. +/// Represents a character-granular source range. /// /// The underlying SourceRange can either specify the starting/ending character /// of the range, or it can specify the start of the range and the start of the @@ -253,7 +253,7 @@ return getCharRange(SourceRange(B, E)); } - /// \brief Return true if the end of this range specifies the start of + /// Return true if the end of this range specifies the start of /// the last token. Return false if the end of this range specifies the last /// character in the range. bool isTokenRange() const { return IsTokenRange; } @@ -271,7 +271,7 @@ bool isInvalid() const { return !isValid(); } }; -/// \brief Represents an unpacked "presumed" location which can be presented +/// Represents an unpacked "presumed" location which can be presented /// to the user. /// /// A 'presumed' location can be modified by \#line and GNU line marker @@ -288,14 +288,14 @@ PresumedLoc(const char *FN, unsigned Ln, unsigned Co, SourceLocation IL) : Filename(FN), Line(Ln), Col(Co), IncludeLoc(IL) {} - /// \brief Return true if this object is invalid or uninitialized. + /// Return true if this object is invalid or uninitialized. /// /// This occurs when created with invalid source locations or when walking /// off the top of a \#include stack. bool isInvalid() const { return Filename == nullptr; } bool isValid() const { return Filename != nullptr; } - /// \brief Return the presumed filename of this location. + /// Return the presumed filename of this location. /// /// This can be affected by \#line etc. const char *getFilename() const { @@ -303,7 +303,7 @@ return Filename; } - /// \brief Return the presumed line number of this location. + /// Return the presumed line number of this location. /// /// This can be affected by \#line etc. unsigned getLine() const { @@ -311,7 +311,7 @@ return Line; } - /// \brief Return the presumed column number of this location. + /// Return the presumed column number of this location. /// /// This cannot be affected by \#line, but is packaged here for convenience. unsigned getColumn() const { @@ -319,7 +319,7 @@ return Col; } - /// \brief Return the presumed include location of this location. + /// Return the presumed include location of this location. /// /// This can be affected by GNU linemarker directives. SourceLocation getIncludeLoc() const { @@ -330,14 +330,14 @@ class FileEntry; -/// \brief A SourceLocation and its associated SourceManager. +/// A SourceLocation and its associated SourceManager. /// /// This is useful for argument passing to functions that expect both objects. class FullSourceLoc : public SourceLocation { const SourceManager *SrcMgr = nullptr; public: - /// \brief Creates a FullSourceLoc where isValid() returns \c false. + /// Creates a FullSourceLoc where isValid() returns \c false. FullSourceLoc() = default; explicit FullSourceLoc(SourceLocation Loc, const SourceManager &SM) @@ -379,11 +379,11 @@ const FileEntry *getFileEntry() const; - /// \brief Return a StringRef to the source buffer data for the + /// Return a StringRef to the source buffer data for the /// specified FileID. StringRef getBufferData(bool *Invalid = nullptr) const; - /// \brief Decompose the specified location into a raw FileID + Offset pair. + /// Decompose the specified location into a raw FileID + Offset pair. /// /// The first element is the FileID, the second is the offset from the /// start of the buffer of the location. @@ -391,12 +391,12 @@ bool isInSystemHeader() const; - /// \brief Determines the order of 2 source locations in the translation unit. + /// Determines the order of 2 source locations in the translation unit. /// /// \returns true if this source location comes before 'Loc', false otherwise. bool isBeforeInTranslationUnitThan(SourceLocation Loc) const; - /// \brief Determines the order of 2 source locations in the translation unit. + /// Determines the order of 2 source locations in the translation unit. /// /// \returns true if this source location comes before 'Loc', false otherwise. bool isBeforeInTranslationUnitThan(FullSourceLoc Loc) const { @@ -405,14 +405,14 @@ return isBeforeInTranslationUnitThan((SourceLocation)Loc); } - /// \brief Comparison function class, useful for sorting FullSourceLocs. + /// Comparison function class, useful for sorting FullSourceLocs. struct BeforeThanCompare { bool operator()(const FullSourceLoc& lhs, const FullSourceLoc& rhs) const { return lhs.isBeforeInTranslationUnitThan(rhs); } }; - /// \brief Prints information about this FullSourceLoc to stderr. + /// Prints information about this FullSourceLoc to stderr. /// /// This is useful for debugging. void dump() const; Index: cfe/trunk/include/clang/Basic/SourceManager.h =================================================================== --- cfe/trunk/include/clang/Basic/SourceManager.h +++ cfe/trunk/include/clang/Basic/SourceManager.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Defines the SourceManager interface. +/// Defines the SourceManager interface. /// /// There are three different types of locations in a %file: a spelling /// location, an expansion location, and a presumed location. @@ -64,11 +64,11 @@ class LineTableInfo; class SourceManager; -/// \brief Public enums and private classes that are part of the +/// Public enums and private classes that are part of the /// SourceManager implementation. namespace SrcMgr { - /// \brief Indicates whether a file or directory holds normal user code, + /// Indicates whether a file or directory holds normal user code, /// system code, or system code which is implicitly 'extern "C"' in C++ mode. /// /// Entire directories can be tagged with this (this is maintained by @@ -89,19 +89,19 @@ return CK == C_User_ModuleMap || CK == C_System_ModuleMap; } - /// \brief One instance of this struct is kept for every file loaded or used. + /// One instance of this struct is kept for every file loaded or used. /// /// This object owns the MemoryBuffer object. class LLVM_ALIGNAS(8) ContentCache { enum CCFlags { - /// \brief Whether the buffer is invalid. + /// Whether the buffer is invalid. InvalidFlag = 0x01, - /// \brief Whether the buffer should not be freed on destruction. + /// Whether the buffer should not be freed on destruction. DoNotFreeFlag = 0x02 }; - /// \brief The actual buffer containing the characters from the input + /// The actual buffer containing the characters from the input /// file. /// /// This is owned by the ContentCache object. The bits indicate @@ -109,7 +109,7 @@ mutable llvm::PointerIntPair<llvm::MemoryBuffer *, 2> Buffer; public: - /// \brief Reference to the file entry representing this ContentCache. + /// Reference to the file entry representing this ContentCache. /// /// This reference does not own the FileEntry object. /// @@ -117,35 +117,35 @@ /// an imaginary text buffer. const FileEntry *OrigEntry; - /// \brief References the file which the contents were actually loaded from. + /// References the file which the contents were actually loaded from. /// /// Can be different from 'Entry' if we overridden the contents of one file /// with the contents of another file. const FileEntry *ContentsEntry; - /// \brief A bump pointer allocated array of offsets for each source line. + /// A bump pointer allocated array of offsets for each source line. /// /// This is lazily computed. This is owned by the SourceManager /// BumpPointerAllocator object. unsigned *SourceLineCache = nullptr; - /// \brief The number of lines in this ContentCache. + /// The number of lines in this ContentCache. /// /// This is only valid if SourceLineCache is non-null. unsigned NumLines = 0; - /// \brief Indicates whether the buffer itself was provided to override + /// Indicates whether the buffer itself was provided to override /// the actual file contents. /// /// When true, the original entry may be a virtual file that does not /// exist. unsigned BufferOverridden : 1; - /// \brief True if this content cache was initially created for a source + /// True if this content cache was initially created for a source /// file considered as a system one. unsigned IsSystemFile : 1; - /// \brief True if this file may be transient, that is, if it might not + /// True if this file may be transient, that is, if it might not /// exist at some later point in time when this content entry is used, /// after serialization and deserialization. unsigned IsTransient : 1; @@ -176,7 +176,7 @@ ~ContentCache(); - /// \brief Returns the memory buffer for the associated content. + /// Returns the memory buffer for the associated content. /// /// \param Diag Object through which diagnostics will be emitted if the /// buffer cannot be retrieved. @@ -190,7 +190,7 @@ SourceLocation Loc = SourceLocation(), bool *Invalid = nullptr) const; - /// \brief Returns the size of the content encapsulated by this + /// Returns the size of the content encapsulated by this /// ContentCache. /// /// This can be the size of the source file or the size of an @@ -198,7 +198,7 @@ /// file this size is retrieved from the file's FileEntry. unsigned getSize() const; - /// \brief Returns the number of bytes actually mapped for this + /// Returns the number of bytes actually mapped for this /// ContentCache. /// /// This can be 0 if the MemBuffer was not actually expanded. @@ -208,20 +208,20 @@ /// this content cache. This is used for performance analysis. llvm::MemoryBuffer::BufferKind getMemoryBufferKind() const; - /// \brief Get the underlying buffer, returning NULL if the buffer is not + /// Get the underlying buffer, returning NULL if the buffer is not /// yet available. llvm::MemoryBuffer *getRawBuffer() const { return Buffer.getPointer(); } - /// \brief Replace the existing buffer (which will be deleted) + /// Replace the existing buffer (which will be deleted) /// with the given buffer. void replaceBuffer(llvm::MemoryBuffer *B, bool DoNotFree = false); - /// \brief Determine whether the buffer itself is invalid. + /// Determine whether the buffer itself is invalid. bool isBufferInvalid() const { return Buffer.getInt() & InvalidFlag; } - /// \brief Determine whether the buffer should be freed. + /// Determine whether the buffer should be freed. bool shouldFreeBuffer() const { return (Buffer.getInt() & DoNotFreeFlag) == 0; } @@ -232,7 +232,7 @@ static_assert(alignof(ContentCache) >= 8, "ContentCache must be 8-byte aligned."); - /// \brief Information about a FileID, basically just the logical file + /// Information about a FileID, basically just the logical file /// that it represents and include stack information. /// /// Each FileInfo has include stack information, indicating where it came @@ -246,26 +246,26 @@ friend class clang::ASTWriter; friend class clang::ASTReader; - /// \brief The location of the \#include that brought in this file. + /// The location of the \#include that brought in this file. /// /// This is an invalid SLOC for the main file (top of the \#include chain). unsigned IncludeLoc; // Really a SourceLocation - /// \brief Number of FileIDs (files and macros) that were created during + /// Number of FileIDs (files and macros) that were created during /// preprocessing of this \#include, including this SLocEntry. /// /// Zero means the preprocessor didn't provide such info for this SLocEntry. unsigned NumCreatedFIDs : 31; - /// \brief Whether this FileInfo has any \#line directives. + /// Whether this FileInfo has any \#line directives. unsigned HasLineDirectives : 1; - /// \brief The content cache and the characteristic of the file. + /// The content cache and the characteristic of the file. llvm::PointerIntPair<const ContentCache*, 3, CharacteristicKind> ContentAndKind; public: - /// \brief Return a FileInfo object. + /// Return a FileInfo object. static FileInfo get(SourceLocation IL, const ContentCache *Con, CharacteristicKind FileCharacter) { FileInfo X; @@ -285,28 +285,28 @@ return ContentAndKind.getPointer(); } - /// \brief Return whether this is a system header or not. + /// Return whether this is a system header or not. CharacteristicKind getFileCharacteristic() const { return ContentAndKind.getInt(); } - /// \brief Return true if this FileID has \#line directives in it. + /// Return true if this FileID has \#line directives in it. bool hasLineDirectives() const { return HasLineDirectives; } - /// \brief Set the flag that indicates that this FileID has + /// Set the flag that indicates that this FileID has /// line table entries associated with it. void setHasLineDirectives() { HasLineDirectives = true; } }; - /// \brief Each ExpansionInfo encodes the expansion location - where + /// Each ExpansionInfo encodes the expansion location - where /// the token was ultimately expanded, and the SpellingLoc - where the actual /// character data for the token came from. class ExpansionInfo { // Really these are all SourceLocations. - /// \brief Where the spelling for the token can be found. + /// Where the spelling for the token can be found. unsigned SpellingLoc; /// In a macro expansion, ExpansionLocStart and ExpansionLocEnd @@ -362,7 +362,7 @@ getExpansionLocStart() != getExpansionLocEnd(); } - /// \brief Return a ExpansionInfo for an expansion. + /// Return a ExpansionInfo for an expansion. /// /// Start and End specify the expansion range (where the macro is /// expanded), and SpellingLoc specifies the spelling location (where @@ -379,7 +379,7 @@ return X; } - /// \brief Return a special ExpansionInfo for the expansion of + /// Return a special ExpansionInfo for the expansion of /// a macro argument into a function-like macro's body. /// /// ExpansionLoc specifies the expansion location (where the macro is @@ -406,7 +406,7 @@ return create(SpellingLoc, ExpansionLoc, SourceLocation()); } - /// \brief Return a special ExpansionInfo representing a token that ends + /// Return a special ExpansionInfo representing a token that ends /// prematurely. This is used to model a '>>' token that has been split /// into '>' tokens and similar cases. Unlike for the other forms of /// expansion, the expansion range in this case is a character range, not @@ -418,7 +418,7 @@ } }; - /// \brief This is a discriminated union of FileInfo and ExpansionInfo. + /// This is a discriminated union of FileInfo and ExpansionInfo. /// /// SourceManager keeps an array of these objects, and they are uniquely /// identified by the FileID datatype. @@ -469,44 +469,44 @@ } // namespace SrcMgr -/// \brief External source of source location entries. +/// External source of source location entries. class ExternalSLocEntrySource { public: virtual ~ExternalSLocEntrySource(); - /// \brief Read the source location entry with index ID, which will always be + /// Read the source location entry with index ID, which will always be /// less than -1. /// /// \returns true if an error occurred that prevented the source-location /// entry from being loaded. virtual bool ReadSLocEntry(int ID) = 0; - /// \brief Retrieve the module import location and name for the given ID, if + /// Retrieve the module import location and name for the given ID, if /// in fact it was loaded from a module (rather than, say, a precompiled /// header). virtual std::pair<SourceLocation, StringRef> getModuleImportLoc(int ID) = 0; }; -/// \brief Holds the cache used by isBeforeInTranslationUnit. +/// Holds the cache used by isBeforeInTranslationUnit. /// /// The cache structure is complex enough to be worth breaking out of /// SourceManager. class InBeforeInTUCacheEntry { - /// \brief The FileID's of the cached query. + /// The FileID's of the cached query. /// /// If these match up with a subsequent query, the result can be reused. FileID LQueryFID, RQueryFID; - /// \brief True if LQueryFID was created before RQueryFID. + /// True if LQueryFID was created before RQueryFID. /// /// This is used to compare macro expansion locations. bool IsLQFIDBeforeRQFID; - /// \brief The file found in common between the two \#include traces, i.e., + /// The file found in common between the two \#include traces, i.e., /// the nearest common ancestor of the \#include tree. FileID CommonFID; - /// \brief The offset of the previous query in CommonFID. + /// The offset of the previous query in CommonFID. /// /// Usually, this represents the location of the \#include for QueryFID, but /// if LQueryFID is a parent of RQueryFID (or vice versa) then these can be a @@ -514,7 +514,7 @@ unsigned LCommonOffset, RCommonOffset; public: - /// \brief Return true if the currently cached values match up with + /// Return true if the currently cached values match up with /// the specified LHS/RHS query. /// /// If not, we can't use the cache. @@ -522,7 +522,7 @@ return LQueryFID == LHS && RQueryFID == RHS; } - /// \brief If the cache is valid, compute the result given the + /// If the cache is valid, compute the result given the /// specified offsets in the LHS/RHS FileID's. bool getCachedResult(unsigned LOffset, unsigned ROffset) const { // If one of the query files is the common file, use the offset. Otherwise, @@ -541,7 +541,7 @@ return LOffset < ROffset; } - /// \brief Set up a new query. + /// Set up a new query. void setQueryFIDs(FileID LHS, FileID RHS, bool isLFIDBeforeRFID) { assert(LHS != RHS); LQueryFID = LHS; @@ -562,12 +562,12 @@ } }; -/// \brief The stack used when building modules on demand, which is used +/// The stack used when building modules on demand, which is used /// to provide a link between the source managers of the different compiler /// instances. using ModuleBuildStack = ArrayRef<std::pair<std::string, FullSourceLoc>>; -/// \brief This class handles loading and caching of source files into memory. +/// This class handles loading and caching of source files into memory. /// /// This object owns the MemoryBuffer objects for all of the loaded /// files and assigns unique FileID's for each unique \#include chain. @@ -580,14 +580,14 @@ /// where the expanded token came from and the expansion location specifies /// where it was expanded. class SourceManager : public RefCountedBase<SourceManager> { - /// \brief DiagnosticsEngine object. + /// DiagnosticsEngine object. DiagnosticsEngine &Diag; FileManager &FileMgr; mutable llvm::BumpPtrAllocator ContentCacheAlloc; - /// \brief Memoized information about all of the files tracked by this + /// Memoized information about all of the files tracked by this /// SourceManager. /// /// This map allows us to merge ContentCache entries based @@ -595,29 +595,29 @@ /// non-null, FileEntry pointers. llvm::DenseMap<const FileEntry*, SrcMgr::ContentCache*> FileInfos; - /// \brief True if the ContentCache for files that are overridden by other + /// True if the ContentCache for files that are overridden by other /// files, should report the original file name. Defaults to true. bool OverridenFilesKeepOriginalName = true; - /// \brief True if non-system source files should be treated as volatile + /// True if non-system source files should be treated as volatile /// (likely to change while trying to use them). Defaults to false. bool UserFilesAreVolatile; - /// \brief True if all files read during this compilation should be treated + /// True if all files read during this compilation should be treated /// as transient (may not be present in later compilations using a module /// file created from this compilation). Defaults to false. bool FilesAreTransient = false; struct OverriddenFilesInfoTy { - /// \brief Files that have been overridden with the contents from another + /// Files that have been overridden with the contents from another /// file. llvm::DenseMap<const FileEntry *, const FileEntry *> OverriddenFiles; - /// \brief Files that were overridden with a memory buffer. + /// Files that were overridden with a memory buffer. llvm::DenseSet<const FileEntry *> OverriddenFilesWithBuffer; }; - /// \brief Lazily create the object keeping overridden files info, since + /// Lazily create the object keeping overridden files info, since /// it is uncommonly used. std::unique_ptr<OverriddenFilesInfoTy> OverriddenFilesInfo; @@ -627,77 +627,77 @@ return *OverriddenFilesInfo; } - /// \brief Information about various memory buffers that we have read in. + /// Information about various memory buffers that we have read in. /// /// All FileEntry* within the stored ContentCache objects are NULL, /// as they do not refer to a file. std::vector<SrcMgr::ContentCache*> MemBufferInfos; - /// \brief The table of SLocEntries that are local to this module. + /// The table of SLocEntries that are local to this module. /// /// Positive FileIDs are indexes into this table. Entry 0 indicates an invalid /// expansion. SmallVector<SrcMgr::SLocEntry, 0> LocalSLocEntryTable; - /// \brief The table of SLocEntries that are loaded from other modules. + /// The table of SLocEntries that are loaded from other modules. /// /// Negative FileIDs are indexes into this table. To get from ID to an index, /// use (-ID - 2). mutable SmallVector<SrcMgr::SLocEntry, 0> LoadedSLocEntryTable; - /// \brief The starting offset of the next local SLocEntry. + /// The starting offset of the next local SLocEntry. /// /// This is LocalSLocEntryTable.back().Offset + the size of that entry. unsigned NextLocalOffset; - /// \brief The starting offset of the latest batch of loaded SLocEntries. + /// The starting offset of the latest batch of loaded SLocEntries. /// /// This is LoadedSLocEntryTable.back().Offset, except that that entry might /// not have been loaded, so that value would be unknown. unsigned CurrentLoadedOffset; - /// \brief The highest possible offset is 2^31-1, so CurrentLoadedOffset + /// The highest possible offset is 2^31-1, so CurrentLoadedOffset /// starts at 2^31. static const unsigned MaxLoadedOffset = 1U << 31U; - /// \brief A bitmap that indicates whether the entries of LoadedSLocEntryTable + /// A bitmap that indicates whether the entries of LoadedSLocEntryTable /// have already been loaded from the external source. /// /// Same indexing as LoadedSLocEntryTable. llvm::BitVector SLocEntryLoaded; - /// \brief An external source for source location entries. + /// An external source for source location entries. ExternalSLocEntrySource *ExternalSLocEntries = nullptr; - /// \brief A one-entry cache to speed up getFileID. + /// A one-entry cache to speed up getFileID. /// /// LastFileIDLookup records the last FileID looked up or created, because it /// is very common to look up many tokens from the same file. mutable FileID LastFileIDLookup; - /// \brief Holds information for \#line directives. + /// Holds information for \#line directives. /// /// This is referenced by indices from SLocEntryTable. LineTableInfo *LineTable = nullptr; - /// \brief These ivars serve as a cache used in the getLineNumber + /// These ivars serve as a cache used in the getLineNumber /// method which is used to speedup getLineNumber calls to nearby locations. mutable FileID LastLineNoFileIDQuery; mutable SrcMgr::ContentCache *LastLineNoContentCache; mutable unsigned LastLineNoFilePos; mutable unsigned LastLineNoResult; - /// \brief The file ID for the main source file of the translation unit. + /// The file ID for the main source file of the translation unit. FileID MainFileID; - /// \brief The file ID for the precompiled preamble there is one. + /// The file ID for the precompiled preamble there is one. FileID PreambleFileID; // Statistics for -print-stats. mutable unsigned NumLinearScans = 0; mutable unsigned NumBinaryProbes = 0; - /// \brief Associates a FileID with its "included/expanded in" decomposed + /// Associates a FileID with its "included/expanded in" decomposed /// location. /// /// Used to cache results from and speed-up \c getDecomposedIncludedLoc @@ -725,14 +725,14 @@ mutable std::unique_ptr<SrcMgr::ContentCache> FakeContentCacheForRecovery; - /// \brief Lazily computed map of macro argument chunks to their expanded + /// Lazily computed map of macro argument chunks to their expanded /// source location. using MacroArgsMap = std::map<unsigned, SourceLocation>; mutable llvm::DenseMap<FileID, std::unique_ptr<MacroArgsMap>> MacroArgsCacheMap; - /// \brief The stack of modules being built, which is used to detect + /// The stack of modules being built, which is used to detect /// cycles in the module dependency graph as modules are being built, as /// well as to describe why we're rebuilding a particular module. /// @@ -758,29 +758,29 @@ FileManager &getFileManager() const { return FileMgr; } - /// \brief Set true if the SourceManager should report the original file name + /// Set true if the SourceManager should report the original file name /// for contents of files that were overridden by other files. Defaults to /// true. void setOverridenFilesKeepOriginalName(bool value) { OverridenFilesKeepOriginalName = value; } - /// \brief True if non-system source files should be treated as volatile + /// True if non-system source files should be treated as volatile /// (likely to change while trying to use them). bool userFilesAreVolatile() const { return UserFilesAreVolatile; } - /// \brief Retrieve the module build stack. + /// Retrieve the module build stack. ModuleBuildStack getModuleBuildStack() const { return StoredModuleBuildStack; } - /// \brief Set the module build stack. + /// Set the module build stack. void setModuleBuildStack(ModuleBuildStack stack) { StoredModuleBuildStack.clear(); StoredModuleBuildStack.append(stack.begin(), stack.end()); } - /// \brief Push an entry to the module build stack. + /// Push an entry to the module build stack. void pushModuleBuildStack(StringRef moduleName, FullSourceLoc importLoc) { StoredModuleBuildStack.push_back(std::make_pair(moduleName.str(),importLoc)); } @@ -789,28 +789,28 @@ // MainFileID creation and querying methods. //===--------------------------------------------------------------------===// - /// \brief Returns the FileID of the main source file. + /// Returns the FileID of the main source file. FileID getMainFileID() const { return MainFileID; } - /// \brief Set the file ID for the main source file. + /// Set the file ID for the main source file. void setMainFileID(FileID FID) { MainFileID = FID; } - /// \brief Set the file ID for the precompiled preamble. + /// Set the file ID for the precompiled preamble. void setPreambleFileID(FileID Preamble) { assert(PreambleFileID.isInvalid() && "PreambleFileID already set!"); PreambleFileID = Preamble; } - /// \brief Get the file ID for the precompiled preamble if there is one. + /// Get the file ID for the precompiled preamble if there is one. FileID getPreambleFileID() const { return PreambleFileID; } //===--------------------------------------------------------------------===// // Methods to create new FileID's and macro expansions. //===--------------------------------------------------------------------===// - /// \brief Create a new FileID that represents the specified file + /// Create a new FileID that represents the specified file /// being \#included from the specified IncludePosition. /// /// This translates NULL into standard input. @@ -823,7 +823,7 @@ return createFileID(IR, IncludePos, FileCharacter, LoadedID, LoadedOffset); } - /// \brief Create a new FileID that represents the specified memory buffer. + /// Create a new FileID that represents the specified memory buffer. /// /// This does no caching of the buffer and takes ownership of the /// MemoryBuffer, so only pass a MemoryBuffer to this once. @@ -838,7 +838,7 @@ enum UnownedTag { Unowned }; - /// \brief Create a new FileID that represents the specified memory buffer. + /// Create a new FileID that represents the specified memory buffer. /// /// This does no caching of the buffer and takes ownership of the /// MemoryBuffer, so only pass a MemoryBuffer to this once. @@ -850,7 +850,7 @@ IncludeLoc, FileCharacter, LoadedID, LoadedOffset); } - /// \brief Get the FileID for \p SourceFile if it exists. Otherwise, create a + /// Get the FileID for \p SourceFile if it exists. Otherwise, create a /// new FileID for the \p SourceFile. FileID getOrCreateFileID(const FileEntry *SourceFile, SrcMgr::CharacteristicKind FileCharacter) { @@ -859,7 +859,7 @@ FileCharacter); } - /// \brief Return a new SourceLocation that encodes the + /// Return a new SourceLocation that encodes the /// fact that a token from SpellingLoc should actually be referenced from /// ExpansionLoc, and that it represents the expansion of a macro argument /// into the function-like macro body. @@ -867,7 +867,7 @@ SourceLocation ExpansionLoc, unsigned TokLength); - /// \brief Return a new SourceLocation that encodes the fact + /// Return a new SourceLocation that encodes the fact /// that a token from SpellingLoc should actually be referenced from /// ExpansionLoc. SourceLocation createExpansionLoc(SourceLocation Loc, @@ -878,20 +878,20 @@ int LoadedID = 0, unsigned LoadedOffset = 0); - /// \brief Return a new SourceLocation that encodes that the token starting + /// Return a new SourceLocation that encodes that the token starting /// at \p TokenStart ends prematurely at \p TokenEnd. SourceLocation createTokenSplitLoc(SourceLocation SpellingLoc, SourceLocation TokenStart, SourceLocation TokenEnd); - /// \brief Retrieve the memory buffer associated with the given file. + /// Retrieve the memory buffer associated with the given file. /// /// \param Invalid If non-NULL, will be set \c true if an error /// occurs while retrieving the memory buffer. llvm::MemoryBuffer *getMemoryBufferForFile(const FileEntry *File, bool *Invalid = nullptr); - /// \brief Override the contents of the given source file by providing an + /// Override the contents of the given source file by providing an /// already-allocated buffer. /// /// \param SourceFile the source file whose contents will be overridden. @@ -908,7 +908,7 @@ overrideFileContents(SourceFile, Buffer.release(), /*DoNotFree*/ false); } - /// \brief Override the given source file with another one. + /// Override the given source file with another one. /// /// \param SourceFile the source file which will be overridden. /// @@ -917,7 +917,7 @@ void overrideFileContents(const FileEntry *SourceFile, const FileEntry *NewFile); - /// \brief Returns true if the file contents have been overridden. + /// Returns true if the file contents have been overridden. bool isFileOverridden(const FileEntry *File) const { if (OverriddenFilesInfo) { if (OverriddenFilesInfo->OverriddenFilesWithBuffer.count(File)) @@ -929,16 +929,16 @@ return false; } - /// \brief Disable overridding the contents of a file, previously enabled + /// Disable overridding the contents of a file, previously enabled /// with #overrideFileContents. /// /// This should be called before parsing has begun. void disableFileContentsOverride(const FileEntry *File); - /// \brief Specify that a file is transient. + /// Specify that a file is transient. void setFileIsTransient(const FileEntry *SourceFile); - /// \brief Specify that all files that are read during this compilation are + /// Specify that all files that are read during this compilation are /// transient. void setAllFilesAreTransient(bool Transient) { FilesAreTransient = Transient; @@ -948,7 +948,7 @@ // FileID manipulation methods. //===--------------------------------------------------------------------===// - /// \brief Return the buffer for the specified FileID. + /// Return the buffer for the specified FileID. /// /// If there is an error opening this buffer the first time, this /// manufactures a temporary buffer and returns a non-empty error string. @@ -982,7 +982,7 @@ Invalid); } - /// \brief Returns the FileEntry record for the provided FileID. + /// Returns the FileEntry record for the provided FileID. const FileEntry *getFileEntryForID(FileID FID) const { bool MyInvalid = false; const SrcMgr::SLocEntry &Entry = getSLocEntry(FID, &MyInvalid); @@ -995,7 +995,7 @@ return Content->OrigEntry; } - /// \brief Returns the FileEntry record for the provided SLocEntry. + /// Returns the FileEntry record for the provided SLocEntry. const FileEntry *getFileEntryForSLocEntry(const SrcMgr::SLocEntry &sloc) const { const SrcMgr::ContentCache *Content = sloc.getFile().getContentCache(); @@ -1004,14 +1004,14 @@ return Content->OrigEntry; } - /// \brief Return a StringRef to the source buffer data for the + /// Return a StringRef to the source buffer data for the /// specified FileID. /// /// \param FID The file ID whose contents will be returned. /// \param Invalid If non-NULL, will be set true if an error occurred. StringRef getBufferData(FileID FID, bool *Invalid = nullptr) const; - /// \brief Get the number of FileIDs (files and macros) that were created + /// Get the number of FileIDs (files and macros) that were created /// during preprocessing of \p FID, including it. unsigned getNumCreatedFIDsForFileID(FileID FID) const { bool Invalid = false; @@ -1022,7 +1022,7 @@ return Entry.getFile().NumCreatedFIDs; } - /// \brief Set the number of FileIDs (files and macros) that were created + /// Set the number of FileIDs (files and macros) that were created /// during preprocessing of \p FID, including it. void setNumCreatedFIDsForFileID(FileID FID, unsigned NumFIDs) const { bool Invalid = false; @@ -1038,7 +1038,7 @@ // SourceLocation manipulation methods. //===--------------------------------------------------------------------===// - /// \brief Return the FileID for a SourceLocation. + /// Return the FileID for a SourceLocation. /// /// This is a very hot method that is used for all SourceManager queries /// that start with a SourceLocation object. It is responsible for finding @@ -1054,14 +1054,14 @@ return getFileIDSlow(SLocOffset); } - /// \brief Return the filename of the file containing a SourceLocation. + /// Return the filename of the file containing a SourceLocation. StringRef getFilename(SourceLocation SpellingLoc) const { if (const FileEntry *F = getFileEntryForID(getFileID(SpellingLoc))) return F->getName(); return StringRef(); } - /// \brief Return the source location corresponding to the first byte of + /// Return the source location corresponding to the first byte of /// the specified file. SourceLocation getLocForStartOfFile(FileID FID) const { bool Invalid = false; @@ -1073,7 +1073,7 @@ return SourceLocation::getFileLoc(FileOffset); } - /// \brief Return the source location corresponding to the last byte of the + /// Return the source location corresponding to the last byte of the /// specified file. SourceLocation getLocForEndOfFile(FileID FID) const { bool Invalid = false; @@ -1085,7 +1085,7 @@ return SourceLocation::getFileLoc(FileOffset + getFileIDSize(FID)); } - /// \brief Returns the include location if \p FID is a \#include'd file + /// Returns the include location if \p FID is a \#include'd file /// otherwise it returns an invalid location. SourceLocation getIncludeLoc(FileID FID) const { bool Invalid = false; @@ -1096,7 +1096,7 @@ return Entry.getFile().getIncludeLoc(); } - // \brief Returns the import location if the given source location is + // Returns the import location if the given source location is // located within a module, or an invalid location if the source location // is within the current translation unit. std::pair<SourceLocation, StringRef> @@ -1111,7 +1111,7 @@ return ExternalSLocEntries->getModuleImportLoc(FID.ID); } - /// \brief Given a SourceLocation object \p Loc, return the expansion + /// Given a SourceLocation object \p Loc, return the expansion /// location referenced by the ID. SourceLocation getExpansionLoc(SourceLocation Loc) const { // Handle the non-mapped case inline, defer to out of line code to handle @@ -1120,7 +1120,7 @@ return getExpansionLocSlowCase(Loc); } - /// \brief Given \p Loc, if it is a macro location return the expansion + /// Given \p Loc, if it is a macro location return the expansion /// location or the spelling location, depending on if it comes from a /// macro argument or not. SourceLocation getFileLoc(SourceLocation Loc) const { @@ -1128,17 +1128,17 @@ return getFileLocSlowCase(Loc); } - /// \brief Return the start/end of the expansion information for an + /// Return the start/end of the expansion information for an /// expansion location. /// /// \pre \p Loc is required to be an expansion location. CharSourceRange getImmediateExpansionRange(SourceLocation Loc) const; - /// \brief Given a SourceLocation object, return the range of + /// Given a SourceLocation object, return the range of /// tokens covered by the expansion in the ultimate file. CharSourceRange getExpansionRange(SourceLocation Loc) const; - /// \brief Given a SourceRange object, return the range of + /// Given a SourceRange object, return the range of /// tokens or characters covered by the expansion in the ultimate file. CharSourceRange getExpansionRange(SourceRange Range) const { SourceLocation Begin = getExpansionRange(Range.getBegin()).getBegin(); @@ -1147,7 +1147,7 @@ End.isTokenRange()); } - /// \brief Given a CharSourceRange object, return the range of + /// Given a CharSourceRange object, return the range of /// tokens or characters covered by the expansion in the ultimate file. CharSourceRange getExpansionRange(CharSourceRange Range) const { CharSourceRange Expansion = getExpansionRange(Range.getAsRange()); @@ -1156,7 +1156,7 @@ return Expansion; } - /// \brief Given a SourceLocation object, return the spelling + /// Given a SourceLocation object, return the spelling /// location referenced by the ID. /// /// This is the place where the characters that make up the lexed token @@ -1168,7 +1168,7 @@ return getSpellingLocSlowCase(Loc); } - /// \brief Given a SourceLocation object, return the spelling location + /// Given a SourceLocation object, return the spelling location /// referenced by the ID. /// /// This is the first level down towards the place where the characters @@ -1176,7 +1176,7 @@ /// be used by clients. SourceLocation getImmediateSpellingLoc(SourceLocation Loc) const; - /// \brief Form a SourceLocation from a FileID and Offset pair. + /// Form a SourceLocation from a FileID and Offset pair. SourceLocation getComposedLoc(FileID FID, unsigned Offset) const { bool Invalid = false; const SrcMgr::SLocEntry &Entry = getSLocEntry(FID, &Invalid); @@ -1188,7 +1188,7 @@ : SourceLocation::getMacroLoc(GlobalOffset); } - /// \brief Decompose the specified location into a raw FileID + Offset pair. + /// Decompose the specified location into a raw FileID + Offset pair. /// /// The first element is the FileID, the second is the offset from the /// start of the buffer of the location. @@ -1201,7 +1201,7 @@ return std::make_pair(FID, Loc.getOffset()-E.getOffset()); } - /// \brief Decompose the specified location into a raw FileID + Offset pair. + /// Decompose the specified location into a raw FileID + Offset pair. /// /// If the location is an expansion record, walk through it until we find /// the final location expanded. @@ -1220,7 +1220,7 @@ return getDecomposedExpansionLocSlowCase(E); } - /// \brief Decompose the specified location into a raw FileID + Offset pair. + /// Decompose the specified location into a raw FileID + Offset pair. /// /// If the location is an expansion record, walk through it until we find /// its spelling record. @@ -1238,11 +1238,11 @@ return getDecomposedSpellingLocSlowCase(E, Offset); } - /// \brief Returns the "included/expanded in" decomposed location of the given + /// Returns the "included/expanded in" decomposed location of the given /// FileID. std::pair<FileID, unsigned> getDecomposedIncludedLoc(FileID FID) const; - /// \brief Returns the offset from the start of the file that the + /// Returns the offset from the start of the file that the /// specified SourceLocation represents. /// /// This is not very meaningful for a macro ID. @@ -1250,7 +1250,7 @@ return getDecomposedLoc(SpellingLoc).second; } - /// \brief Tests whether the given source location represents a macro + /// Tests whether the given source location represents a macro /// argument's expansion into the function-like macro definition. /// /// \param StartLoc If non-null and function returns true, it is set to the @@ -1262,14 +1262,14 @@ bool isMacroArgExpansion(SourceLocation Loc, SourceLocation *StartLoc = nullptr) const; - /// \brief Tests whether the given source location represents the expansion of + /// Tests whether the given source location represents the expansion of /// a macro body. /// /// This is equivalent to testing whether the location is part of a macro /// expansion but not the expansion of an argument to a function-like macro. bool isMacroBodyExpansion(SourceLocation Loc) const; - /// \brief Returns true if the given MacroID location points at the beginning + /// Returns true if the given MacroID location points at the beginning /// of the immediate macro expansion. /// /// \param MacroBegin If non-null and function returns true, it is set to the @@ -1277,7 +1277,7 @@ bool isAtStartOfImmediateMacroExpansion(SourceLocation Loc, SourceLocation *MacroBegin = nullptr) const; - /// \brief Returns true if the given MacroID location points at the character + /// Returns true if the given MacroID location points at the character /// end of the immediate macro expansion. /// /// \param MacroEnd If non-null and function returns true, it is set to the @@ -1286,7 +1286,7 @@ isAtEndOfImmediateMacroExpansion(SourceLocation Loc, SourceLocation *MacroEnd = nullptr) const; - /// \brief Returns true if \p Loc is inside the [\p Start, +\p Length) + /// Returns true if \p Loc is inside the [\p Start, +\p Length) /// chunk of the source location address space. /// /// If it's true and \p RelativeOffset is non-null, it will be set to the @@ -1311,7 +1311,7 @@ return false; } - /// \brief Return true if both \p LHS and \p RHS are in the local source + /// Return true if both \p LHS and \p RHS are in the local source /// location address space or the loaded one. /// /// If it's true and \p RelativeOffset is non-null, it will be set to the @@ -1335,14 +1335,14 @@ // Queries about the code at a SourceLocation. //===--------------------------------------------------------------------===// - /// \brief Return a pointer to the start of the specified location + /// Return a pointer to the start of the specified location /// in the appropriate spelling MemoryBuffer. /// /// \param Invalid If non-NULL, will be set \c true if an error occurs. const char *getCharacterData(SourceLocation SL, bool *Invalid = nullptr) const; - /// \brief Return the column # for the specified file position. + /// Return the column # for the specified file position. /// /// This is significantly cheaper to compute than the line number. This /// returns zero if the column number isn't known. This may only be called @@ -1357,7 +1357,7 @@ unsigned getPresumedColumnNumber(SourceLocation Loc, bool *Invalid = nullptr) const; - /// \brief Given a SourceLocation, return the spelling line number + /// Given a SourceLocation, return the spelling line number /// for the position indicated. /// /// This requires building and caching a table of line offsets for the @@ -1368,14 +1368,14 @@ unsigned getExpansionLineNumber(SourceLocation Loc, bool *Invalid = nullptr) const; unsigned getPresumedLineNumber(SourceLocation Loc, bool *Invalid = nullptr) const; - /// \brief Return the filename or buffer identifier of the buffer the + /// Return the filename or buffer identifier of the buffer the /// location is in. /// /// Note that this name does not respect \#line directives. Use /// getPresumedLoc for normal clients. StringRef getBufferName(SourceLocation Loc, bool *Invalid = nullptr) const; - /// \brief Return the file characteristic of the specified source + /// Return the file characteristic of the specified source /// location, indicating whether this is a normal file, a system /// header, or an "implicit extern C" system header. /// @@ -1387,7 +1387,7 @@ /// considered to be from a system header. SrcMgr::CharacteristicKind getFileCharacteristic(SourceLocation Loc) const; - /// \brief Returns the "presumed" location of a SourceLocation specifies. + /// Returns the "presumed" location of a SourceLocation specifies. /// /// A "presumed location" can be modified by \#line or GNU line marker /// directives. This provides a view on the data that a user should see @@ -1403,7 +1403,7 @@ PresumedLoc getPresumedLoc(SourceLocation Loc, bool UseLineDirectives = true) const; - /// \brief Returns whether the PresumedLoc for a given SourceLocation is + /// Returns whether the PresumedLoc for a given SourceLocation is /// in the main file. /// /// This computes the "presumed" location for a SourceLocation, then checks @@ -1412,7 +1412,7 @@ /// account. bool isInMainFile(SourceLocation Loc) const; - /// \brief Returns true if the spelling locations for both SourceLocations + /// Returns true if the spelling locations for both SourceLocations /// are part of the same file buffer. /// /// This check ignores line marker directives. @@ -1420,7 +1420,7 @@ return getFileID(Loc1) == getFileID(Loc2); } - /// \brief Returns true if the spelling location for the given location + /// Returns true if the spelling location for the given location /// is in the main file buffer. /// /// This check ignores line marker directives. @@ -1428,25 +1428,25 @@ return getFileID(Loc) == getMainFileID(); } - /// \brief Returns if a SourceLocation is in a system header. + /// Returns if a SourceLocation is in a system header. bool isInSystemHeader(SourceLocation Loc) const { return isSystem(getFileCharacteristic(Loc)); } - /// \brief Returns if a SourceLocation is in an "extern C" system header. + /// Returns if a SourceLocation is in an "extern C" system header. bool isInExternCSystemHeader(SourceLocation Loc) const { return getFileCharacteristic(Loc) == SrcMgr::C_ExternCSystem; } - /// \brief Returns whether \p Loc is expanded from a macro in a system header. + /// Returns whether \p Loc is expanded from a macro in a system header. bool isInSystemMacro(SourceLocation loc) const { return loc.isMacroID() && isInSystemHeader(getSpellingLoc(loc)); } - /// \brief The size of the SLocEntry that \p FID represents. + /// The size of the SLocEntry that \p FID represents. unsigned getFileIDSize(FileID FID) const; - /// \brief Given a specific FileID, returns true if \p Loc is inside that + /// Given a specific FileID, returns true if \p Loc is inside that /// FileID chunk and sets relative offset (offset of \p Loc from beginning /// of FileID) to \p relativeOffset. bool isInFileID(SourceLocation Loc, FileID FID, @@ -1465,10 +1465,10 @@ // Line Table Manipulation Routines //===--------------------------------------------------------------------===// - /// \brief Return the uniqued ID for the specified filename. + /// Return the uniqued ID for the specified filename. unsigned getLineTableFilenameID(StringRef Str); - /// \brief Add a line note to the line table for the FileID and offset + /// Add a line note to the line table for the FileID and offset /// specified by Loc. /// /// If FilenameID is -1, it is considered to be unspecified. @@ -1476,17 +1476,17 @@ bool IsFileEntry, bool IsFileExit, SrcMgr::CharacteristicKind FileKind); - /// \brief Determine if the source manager has a line table. + /// Determine if the source manager has a line table. bool hasLineTable() const { return LineTable != nullptr; } - /// \brief Retrieve the stored line table. + /// Retrieve the stored line table. LineTableInfo &getLineTable(); //===--------------------------------------------------------------------===// // Queries for performance analysis. //===--------------------------------------------------------------------===// - /// \brief Return the total amount of physical memory allocated by the + /// Return the total amount of physical memory allocated by the /// ContentCache allocator. size_t getContentCacheSize() const { return ContentCacheAlloc.getTotalMemory(); @@ -1500,11 +1500,11 @@ : malloc_bytes(malloc_bytes), mmap_bytes(mmap_bytes) {} }; - /// \brief Return the amount of memory used by memory buffers, breaking down + /// Return the amount of memory used by memory buffers, breaking down /// by heap-backed versus mmap'ed memory. MemoryBufferSizes getMemoryBufferSizes() const; - /// \brief Return the amount of memory used for various side tables and + /// Return the amount of memory used for various side tables and /// data structures in the SourceManager. size_t getDataStructureSizes() const; @@ -1512,25 +1512,25 @@ // Other miscellaneous methods. //===--------------------------------------------------------------------===// - /// \brief Get the source location for the given file:line:col triplet. + /// Get the source location for the given file:line:col triplet. /// /// If the source file is included multiple times, the source location will /// be based upon the first inclusion. SourceLocation translateFileLineCol(const FileEntry *SourceFile, unsigned Line, unsigned Col) const; - /// \brief Get the FileID for the given file. + /// Get the FileID for the given file. /// /// If the source file is included multiple times, the FileID will be the /// first inclusion. FileID translateFile(const FileEntry *SourceFile) const; - /// \brief Get the source location in \p FID for the given line:col. + /// Get the source location in \p FID for the given line:col. /// Returns null location if \p FID is not a file SLocEntry. SourceLocation translateLineCol(FileID FID, unsigned Line, unsigned Col) const; - /// \brief If \p Loc points inside a function macro argument, the returned + /// If \p Loc points inside a function macro argument, the returned /// location will be the macro location in which the argument was expanded. /// If a macro argument is used multiple times, the expanded location will /// be at the first expansion of the argument. @@ -1541,12 +1541,12 @@ /// where 'foo' was expanded into. SourceLocation getMacroArgExpandedLocation(SourceLocation Loc) const; - /// \brief Determines the order of 2 source locations in the translation unit. + /// Determines the order of 2 source locations in the translation unit. /// /// \returns true if LHS source location comes before RHS, false otherwise. bool isBeforeInTranslationUnit(SourceLocation LHS, SourceLocation RHS) const; - /// \brief Determines whether the two decomposed source location is in the + /// Determines whether the two decomposed source location is in the /// same translation unit. As a byproduct, it also calculates the order /// of the source locations in case they are in the same TU. /// @@ -1557,13 +1557,13 @@ isInTheSameTranslationUnit(std::pair<FileID, unsigned> &LOffs, std::pair<FileID, unsigned> &ROffs) const; - /// \brief Determines the order of 2 source locations in the "source location + /// Determines the order of 2 source locations in the "source location /// address space". bool isBeforeInSLocAddrSpace(SourceLocation LHS, SourceLocation RHS) const { return isBeforeInSLocAddrSpace(LHS, RHS.getOffset()); } - /// \brief Determines the order of a source location and a source location + /// Determines the order of a source location and a source location /// offset in the "source location address space". /// /// Note that we always consider source locations loaded from @@ -1595,25 +1595,25 @@ return FileInfos.find(File) != FileInfos.end(); } - /// \brief Print statistics to stderr. + /// Print statistics to stderr. void PrintStats() const; void dump() const; - /// \brief Get the number of local SLocEntries we have. + /// Get the number of local SLocEntries we have. unsigned local_sloc_entry_size() const { return LocalSLocEntryTable.size(); } - /// \brief Get a local SLocEntry. This is exposed for indexing. + /// Get a local SLocEntry. This is exposed for indexing. const SrcMgr::SLocEntry &getLocalSLocEntry(unsigned Index, bool *Invalid = nullptr) const { assert(Index < LocalSLocEntryTable.size() && "Invalid index"); return LocalSLocEntryTable[Index]; } - /// \brief Get the number of loaded SLocEntries we have. + /// Get the number of loaded SLocEntries we have. unsigned loaded_sloc_entry_size() const { return LoadedSLocEntryTable.size();} - /// \brief Get a loaded SLocEntry. This is exposed for indexing. + /// Get a loaded SLocEntry. This is exposed for indexing. const SrcMgr::SLocEntry &getLoadedSLocEntry(unsigned Index, bool *Invalid = nullptr) const { assert(Index < LoadedSLocEntryTable.size() && "Invalid index"); @@ -1639,7 +1639,7 @@ ExternalSLocEntries = Source; } - /// \brief Allocate a number of loaded SLocEntries, which will be actually + /// Allocate a number of loaded SLocEntries, which will be actually /// loaded on demand from the external source. /// /// NumSLocEntries will be allocated, which occupy a total of TotalSize space @@ -1648,23 +1648,23 @@ std::pair<int, unsigned> AllocateLoadedSLocEntries(unsigned NumSLocEntries, unsigned TotalSize); - /// \brief Returns true if \p Loc came from a PCH/Module. + /// Returns true if \p Loc came from a PCH/Module. bool isLoadedSourceLocation(SourceLocation Loc) const { return Loc.getOffset() >= CurrentLoadedOffset; } - /// \brief Returns true if \p Loc did not come from a PCH/Module. + /// Returns true if \p Loc did not come from a PCH/Module. bool isLocalSourceLocation(SourceLocation Loc) const { return Loc.getOffset() < NextLocalOffset; } - /// \brief Returns true if \p FID came from a PCH/Module. + /// Returns true if \p FID came from a PCH/Module. bool isLoadedFileID(FileID FID) const { assert(FID.ID != -1 && "Using FileID sentinel value"); return FID.ID < 0; } - /// \brief Returns true if \p FID did not come from a PCH/Module. + /// Returns true if \p FID did not come from a PCH/Module. bool isLocalFileID(FileID FID) const { return !isLoadedFileID(FID); } @@ -1697,7 +1697,7 @@ const SrcMgr::SLocEntry &loadSLocEntry(unsigned Index, bool *Invalid) const; - /// \brief Get the entry with the given unwrapped FileID. + /// Get the entry with the given unwrapped FileID. const SrcMgr::SLocEntry &getSLocEntryByID(int ID, bool *Invalid = nullptr) const { assert(ID != -1 && "Using FileID sentinel value"); @@ -1718,7 +1718,7 @@ int LoadedID = 0, unsigned LoadedOffset = 0); - /// \brief Return true if the specified FileID contains the + /// Return true if the specified FileID contains the /// specified SourceLocation offset. This is a very hot method. inline bool isOffsetInFileID(FileID FID, unsigned SLocOffset) const { const SrcMgr::SLocEntry &Entry = getSLocEntry(FID); @@ -1738,15 +1738,15 @@ return SLocOffset < getSLocEntryByID(FID.ID+1).getOffset(); } - /// \brief Returns the previous in-order FileID or an invalid FileID if there + /// Returns the previous in-order FileID or an invalid FileID if there /// is no previous one. FileID getPreviousFileID(FileID FID) const; - /// \brief Returns the next in-order FileID or an invalid FileID if there is + /// Returns the next in-order FileID or an invalid FileID if there is /// no next one. FileID getNextFileID(FileID FID) const; - /// \brief Create a new fileID for the specified ContentCache and + /// Create a new fileID for the specified ContentCache and /// include position. /// /// This works regardless of whether the ContentCache corresponds to a @@ -1760,7 +1760,7 @@ getOrCreateContentCache(const FileEntry *SourceFile, bool isSystemFile = false); - /// \brief Create a new ContentCache for the specified memory buffer. + /// Create a new ContentCache for the specified memory buffer. const SrcMgr::ContentCache * createMemBufferContentCache(llvm::MemoryBuffer *Buf, bool DoNotFree); @@ -1785,11 +1785,11 @@ unsigned ExpansionLength) const; }; -/// \brief Comparison function object. +/// Comparison function object. template<typename T> class BeforeThanCompare; -/// \brief Compare two source locations. +/// Compare two source locations. template<> class BeforeThanCompare<SourceLocation> { SourceManager &SM; @@ -1802,7 +1802,7 @@ } }; -/// \brief Compare two non-overlapping source ranges. +/// Compare two non-overlapping source ranges. template<> class BeforeThanCompare<SourceRange> { SourceManager &SM; Index: cfe/trunk/include/clang/Basic/SourceManagerInternals.h =================================================================== --- cfe/trunk/include/clang/Basic/SourceManagerInternals.h +++ cfe/trunk/include/clang/Basic/SourceManagerInternals.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Defines implementation details of the clang::SourceManager class. +/// Defines implementation details of the clang::SourceManager class. // //===----------------------------------------------------------------------===// @@ -31,20 +31,20 @@ //===----------------------------------------------------------------------===// struct LineEntry { - /// \brief The offset in this file that the line entry occurs at. + /// The offset in this file that the line entry occurs at. unsigned FileOffset; - /// \brief The presumed line number of this line entry: \#line 4. + /// The presumed line number of this line entry: \#line 4. unsigned LineNo; - /// \brief The ID of the filename identified by this line entry: + /// The ID of the filename identified by this line entry: /// \#line 4 "foo.c". This is -1 if not specified. int FilenameID; - /// \brief Set the 0 if no flags, 1 if a system header, + /// Set the 0 if no flags, 1 if a system header, SrcMgr::CharacteristicKind FileKind; - /// \brief The offset of the virtual include stack location, + /// The offset of the virtual include stack location, /// which is manipulated by GNU linemarker directives. /// /// If this is 0 then there is no virtual \#includer. @@ -77,9 +77,9 @@ return Offset < E.FileOffset; } -/// \brief Used to hold and unique data used to represent \#line information. +/// Used to hold and unique data used to represent \#line information. class LineTableInfo { - /// \brief Map used to assign unique IDs to filenames in \#line directives. + /// Map used to assign unique IDs to filenames in \#line directives. /// /// This allows us to unique the filenames that /// frequently reoccur and reference them with indices. FilenameIDs holds @@ -88,7 +88,7 @@ llvm::StringMap<unsigned, llvm::BumpPtrAllocator> FilenameIDs; std::vector<llvm::StringMapEntry<unsigned>*> FilenamesByID; - /// \brief Map from FileIDs to a list of line entries (sorted by the offset + /// Map from FileIDs to a list of line entries (sorted by the offset /// at which they occur in the file). std::map<FileID, std::vector<LineEntry>> LineEntries; @@ -113,7 +113,7 @@ unsigned EntryExit, SrcMgr::CharacteristicKind FileKind); - /// \brief Find the line entry nearest to FID that is before it. + /// Find the line entry nearest to FID that is before it. /// /// If there is no line entry before \p Offset in \p FID, returns null. const LineEntry *FindNearestLineEntry(FileID FID, unsigned Offset); @@ -124,7 +124,7 @@ iterator begin() { return LineEntries.begin(); } iterator end() { return LineEntries.end(); } - /// \brief Add a new line entry that has already been encoded into + /// Add a new line entry that has already been encoded into /// the internal representation of the line table. void AddEntry(FileID FID, const std::vector<LineEntry> &Entries); }; Index: cfe/trunk/include/clang/Basic/Specifiers.h =================================================================== --- cfe/trunk/include/clang/Basic/Specifiers.h +++ cfe/trunk/include/clang/Basic/Specifiers.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines various enumerations that describe declaration and +/// Defines various enumerations that describe declaration and /// type specifiers. /// //===----------------------------------------------------------------------===// @@ -21,7 +21,7 @@ #include "llvm/Support/ErrorHandling.h" namespace clang { - /// \brief Specifies the width of a type, e.g., short, long, or long long. + /// Specifies the width of a type, e.g., short, long, or long long. enum TypeSpecifierWidth { TSW_unspecified, TSW_short, @@ -29,7 +29,7 @@ TSW_longlong }; - /// \brief Specifies the signedness of a type, e.g., signed or unsigned. + /// Specifies the signedness of a type, e.g., signed or unsigned. enum TypeSpecifierSign { TSS_unspecified, TSS_signed, @@ -41,7 +41,7 @@ TSP_pipe }; - /// \brief Specifies the kind of type. + /// Specifies the kind of type. enum TypeSpecifierType { TST_unspecified, TST_void, @@ -81,7 +81,7 @@ TST_error // erroneous type }; - /// \brief Structure that packs information about the type specifiers that + /// Structure that packs information about the type specifiers that /// were written in a particular type specifier sequence. struct WrittenBuiltinSpecs { static_assert(TST_error < 1 << 6, "Type bitfield not wide enough for TST"); @@ -91,7 +91,7 @@ unsigned ModeAttr : 1; }; - /// \brief A C++ access specifier (public, private, protected), plus the + /// A C++ access specifier (public, private, protected), plus the /// special value "none" which means different things in different contexts. enum AccessSpecifier { AS_public, @@ -100,24 +100,24 @@ AS_none }; - /// \brief The categorization of expression values, currently following the + /// The categorization of expression values, currently following the /// C++11 scheme. enum ExprValueKind { - /// \brief An r-value expression (a pr-value in the C++11 taxonomy) + /// An r-value expression (a pr-value in the C++11 taxonomy) /// produces a temporary value. VK_RValue, - /// \brief An l-value expression is a reference to an object with + /// An l-value expression is a reference to an object with /// independent storage. VK_LValue, - /// \brief An x-value expression is a reference to an object with + /// An x-value expression is a reference to an object with /// independent storage but which can be "moved", i.e. /// efficiently cannibalized for its resources. VK_XValue }; - /// \brief A further classification of the kind of object referenced by an + /// A further classification of the kind of object referenced by an /// l-value or x-value. enum ExprObjectKind { /// An ordinary object is located at an address in memory. @@ -139,7 +139,7 @@ OK_ObjCSubscript }; - /// \brief Describes the kind of template specialization that a + /// Describes the kind of template specialization that a /// particular template specialization declaration represents. enum TemplateSpecializationKind { /// This template specialization was formed from a template-id but @@ -162,14 +162,14 @@ TSK_ExplicitInstantiationDefinition }; - /// \brief Determine whether this template specialization kind refers + /// Determine whether this template specialization kind refers /// to an instantiation of an entity (as opposed to a non-template or /// an explicit specialization). inline bool isTemplateInstantiation(TemplateSpecializationKind Kind) { return Kind != TSK_Undeclared && Kind != TSK_ExplicitSpecialization; } - /// \brief True if this template specialization kind is an explicit + /// True if this template specialization kind is an explicit /// specialization, explicit instantiation declaration, or explicit /// instantiation definition. inline bool isTemplateExplicitInstantiationOrSpecialization( @@ -187,7 +187,7 @@ llvm_unreachable("bad template specialization kind"); } - /// \brief Thread storage-class-specifier. + /// Thread storage-class-specifier. enum ThreadStorageClassSpecifier { TSCS_unspecified, /// GNU __thread. @@ -200,7 +200,7 @@ TSCS__Thread_local }; - /// \brief Storage classes. + /// Storage classes. enum StorageClass { // These are legal on both functions and variables. SC_None, @@ -213,24 +213,24 @@ SC_Register }; - /// \brief Checks whether the given storage class is legal for functions. + /// Checks whether the given storage class is legal for functions. inline bool isLegalForFunction(StorageClass SC) { return SC <= SC_PrivateExtern; } - /// \brief Checks whether the given storage class is legal for variables. + /// Checks whether the given storage class is legal for variables. inline bool isLegalForVariable(StorageClass SC) { return true; } - /// \brief In-class initialization styles for non-static data members. + /// In-class initialization styles for non-static data members. enum InClassInitStyle { ICIS_NoInit, ///< No in-class initializer. ICIS_CopyInit, ///< Copy initialization. ICIS_ListInit ///< Direct list-initialization. }; - /// \brief CallingConv - Specifies the calling convention that a function uses. + /// CallingConv - Specifies the calling convention that a function uses. enum CallingConv { CC_C, // __attribute__((cdecl)) CC_X86StdCall, // __attribute__((stdcall)) @@ -251,7 +251,7 @@ CC_PreserveAll, // __attribute__((preserve_all)) }; - /// \brief Checks whether the given calling convention supports variadic + /// Checks whether the given calling convention supports variadic /// calls. Unprototyped calls also use the variadic call rules. inline bool supportsVariadicCall(CallingConv CC) { switch (CC) { @@ -270,7 +270,7 @@ } } - /// \brief The storage duration for an object (per C++ [basic.stc]). + /// The storage duration for an object (per C++ [basic.stc]). enum StorageDuration { SD_FullExpression, ///< Full-expression storage duration (for temporaries). SD_Automatic, ///< Automatic storage duration (most local variables). @@ -296,7 +296,7 @@ llvm::StringRef getNullabilitySpelling(NullabilityKind kind, bool isContextSensitive = false); - /// \brief Kinds of parameter ABI. + /// Kinds of parameter ABI. enum class ParameterABI { /// This parameter uses ordinary ABI rules for its type. Ordinary, Index: cfe/trunk/include/clang/Basic/SyncScope.h =================================================================== --- cfe/trunk/include/clang/Basic/SyncScope.h +++ cfe/trunk/include/clang/Basic/SyncScope.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Provides definitions for the atomic synchronization scopes. +/// Provides definitions for the atomic synchronization scopes. /// //===----------------------------------------------------------------------===// @@ -22,7 +22,7 @@ namespace clang { -/// \brief Defines synch scope values used internally by clang. +/// Defines synch scope values used internally by clang. /// /// The enum values start from 0 and are contiguous. They are mainly used for /// enumerating all supported synch scope values and mapping them to LLVM @@ -62,36 +62,36 @@ llvm_unreachable("Invalid synch scope"); } -/// \brief Defines the kind of atomic scope models. +/// Defines the kind of atomic scope models. enum class AtomicScopeModelKind { None, OpenCL }; -/// \brief Defines the interface for synch scope model. +/// Defines the interface for synch scope model. class AtomicScopeModel { public: virtual ~AtomicScopeModel() {} - /// \brief Maps language specific synch scope values to internal + /// Maps language specific synch scope values to internal /// SyncScope enum. virtual SyncScope map(unsigned S) const = 0; - /// \brief Check if the compile-time constant synch scope value + /// Check if the compile-time constant synch scope value /// is valid. virtual bool isValid(unsigned S) const = 0; - /// \brief Get all possible synch scope values that might be + /// Get all possible synch scope values that might be /// encountered at runtime for the current language. virtual ArrayRef<unsigned> getRuntimeValues() const = 0; - /// \brief If atomic builtin function is called with invalid + /// If atomic builtin function is called with invalid /// synch scope value at runtime, it will fall back to a valid /// synch scope value returned by this function. virtual unsigned getFallBackValue() const = 0; - /// \brief Create an atomic scope model by AtomicScopeModelKind. + /// Create an atomic scope model by AtomicScopeModelKind. /// \return an empty std::unique_ptr for AtomicScopeModelKind::None. static std::unique_ptr<AtomicScopeModel> create(AtomicScopeModelKind K); }; -/// \brief Defines the synch scope model for OpenCL. +/// Defines the synch scope model for OpenCL. class AtomicScopeOpenCLModel : public AtomicScopeModel { public: /// The enum values match the pre-defined macros Index: cfe/trunk/include/clang/Basic/TargetBuiltins.h =================================================================== --- cfe/trunk/include/clang/Basic/TargetBuiltins.h +++ cfe/trunk/include/clang/Basic/TargetBuiltins.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Enumerates target-specific builtins in their own namespaces within +/// Enumerates target-specific builtins in their own namespaces within /// namespace ::clang. /// //===----------------------------------------------------------------------===// @@ -31,7 +31,7 @@ }; } - /// \brief ARM builtins + /// ARM builtins namespace ARM { enum { LastTIBuiltin = clang::Builtin::FirstTSBuiltin-1, @@ -42,7 +42,7 @@ }; } - /// \brief AArch64 builtins + /// AArch64 builtins namespace AArch64 { enum { LastTIBuiltin = clang::Builtin::FirstTSBuiltin - 1, @@ -53,7 +53,7 @@ }; } - /// \brief PPC builtins + /// PPC builtins namespace PPC { enum { LastTIBuiltin = clang::Builtin::FirstTSBuiltin-1, @@ -63,7 +63,7 @@ }; } - /// \brief NVPTX builtins + /// NVPTX builtins namespace NVPTX { enum { LastTIBuiltin = clang::Builtin::FirstTSBuiltin-1, @@ -73,7 +73,7 @@ }; } - /// \brief AMDGPU builtins + /// AMDGPU builtins namespace AMDGPU { enum { LastTIBuiltin = clang::Builtin::FirstTSBuiltin - 1, @@ -83,7 +83,7 @@ }; } - /// \brief X86 builtins + /// X86 builtins namespace X86 { enum { LastTIBuiltin = clang::Builtin::FirstTSBuiltin - 1, @@ -97,7 +97,7 @@ }; } - /// \brief Flags to identify the types for overloaded Neon builtins. + /// Flags to identify the types for overloaded Neon builtins. /// /// These must be kept in sync with the flags in utils/TableGen/NeonEmitter.h. class NeonTypeFlags { @@ -140,7 +140,7 @@ bool isQuad() const { return (Flags & QuadFlag) != 0; } }; - /// \brief Hexagon builtins + /// Hexagon builtins namespace Hexagon { enum { LastTIBuiltin = clang::Builtin::FirstTSBuiltin-1, @@ -150,7 +150,7 @@ }; } - /// \brief Nios2 builtins + /// Nios2 builtins namespace Nios2 { enum { LastTIBuiltin = clang::Builtin::FirstTSBuiltin - 1, @@ -160,7 +160,7 @@ }; } - /// \brief MIPS builtins + /// MIPS builtins namespace Mips { enum { LastTIBuiltin = clang::Builtin::FirstTSBuiltin-1, @@ -170,7 +170,7 @@ }; } - /// \brief XCore builtins + /// XCore builtins namespace XCore { enum { LastTIBuiltin = clang::Builtin::FirstTSBuiltin-1, @@ -180,7 +180,7 @@ }; } - /// \brief Le64 builtins + /// Le64 builtins namespace Le64 { enum { LastTIBuiltin = clang::Builtin::FirstTSBuiltin - 1, @@ -190,7 +190,7 @@ }; } - /// \brief SystemZ builtins + /// SystemZ builtins namespace SystemZ { enum { LastTIBuiltin = clang::Builtin::FirstTSBuiltin-1, @@ -200,7 +200,7 @@ }; } - /// \brief WebAssembly builtins + /// WebAssembly builtins namespace WebAssembly { enum { LastTIBuiltin = clang::Builtin::FirstTSBuiltin-1, Index: cfe/trunk/include/clang/Basic/TargetCXXABI.h =================================================================== --- cfe/trunk/include/clang/Basic/TargetCXXABI.h +++ cfe/trunk/include/clang/Basic/TargetCXXABI.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines the TargetCXXABI class, which abstracts details of the +/// Defines the TargetCXXABI class, which abstracts details of the /// C++ ABI that we're targeting. /// //===----------------------------------------------------------------------===// @@ -20,10 +20,10 @@ namespace clang { -/// \brief The basic abstraction for the target C++ ABI. +/// The basic abstraction for the target C++ ABI. class TargetCXXABI { public: - /// \brief The basic C++ ABI kind. + /// The basic C++ ABI kind. enum Kind { /// The generic Itanium ABI is the standard ABI of most open-source /// and Unix-like platforms. It is the primary ABI targeted by @@ -131,7 +131,7 @@ Kind getKind() const { return TheKind; } - /// \brief Does this ABI generally fall into the Itanium family of ABIs? + /// Does this ABI generally fall into the Itanium family of ABIs? bool isItaniumFamily() const { switch (getKind()) { case GenericAArch64: @@ -150,7 +150,7 @@ llvm_unreachable("bad ABI kind"); } - /// \brief Is this ABI an MSVC-compatible ABI? + /// Is this ABI an MSVC-compatible ABI? bool isMicrosoft() const { switch (getKind()) { case GenericAArch64: @@ -169,7 +169,7 @@ llvm_unreachable("bad ABI kind"); } - /// \brief Are member functions differently aligned? + /// Are member functions differently aligned? /// /// Many Itanium-style C++ ABIs require member functions to be aligned, so /// that a pointer to such a function is guaranteed to have a zero in the @@ -210,25 +210,25 @@ return isMicrosoft(); } - /// \brief Does this ABI have different entrypoints for complete-object + /// Does this ABI have different entrypoints for complete-object /// and base-subobject constructors? bool hasConstructorVariants() const { return isItaniumFamily(); } - /// \brief Does this ABI allow virtual bases to be primary base classes? + /// Does this ABI allow virtual bases to be primary base classes? bool hasPrimaryVBases() const { return isItaniumFamily(); } - /// \brief Does this ABI use key functions? If so, class data such as the + /// Does this ABI use key functions? If so, class data such as the /// vtable is emitted with strong linkage by the TU containing the key /// function. bool hasKeyFunctions() const { return isItaniumFamily(); } - /// \brief Can an out-of-line inline function serve as a key function? + /// Can an out-of-line inline function serve as a key function? /// /// This flag is only useful in ABIs where type data (for example, /// vtables and type_info objects) are emitted only after processing Index: cfe/trunk/include/clang/Basic/TargetInfo.h =================================================================== --- cfe/trunk/include/clang/Basic/TargetInfo.h +++ cfe/trunk/include/clang/Basic/TargetInfo.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines the clang::TargetInfo interface. +/// Defines the clang::TargetInfo interface. /// //===----------------------------------------------------------------------===// @@ -49,7 +49,7 @@ namespace Builtin { struct Info; } -/// \brief Exposes information about the current target. +/// Exposes information about the current target. /// class TargetInfo : public RefCountedBase<TargetInfo> { std::shared_ptr<TargetOptions> TargetOpts; @@ -109,7 +109,7 @@ } public: - /// \brief Construct a target for the given options. + /// Construct a target for the given options. /// /// \param Opts - The options to use to initialize the target. The target may /// modify the options to canonicalize the target feature information to match @@ -120,7 +120,7 @@ virtual ~TargetInfo(); - /// \brief Retrieve the target options. + /// Retrieve the target options. TargetOptions &getTargetOpts() const { assert(TargetOpts && "Missing target options"); return *TargetOpts; @@ -149,7 +149,7 @@ Float128 }; - /// \brief The different kinds of __builtin_va_list types defined by + /// The different kinds of __builtin_va_list types defined by /// the target implementation. enum BuiltinVaListKind { /// typedef char* __builtin_va_list; @@ -195,7 +195,7 @@ WIntType, Char16Type, Char32Type, Int64Type, SigAtomicType, ProcessIDType; - /// \brief Whether Objective-C's built-in boolean type should be signed char. + /// Whether Objective-C's built-in boolean type should be signed char. /// /// Otherwise, when this flag is not set, the normal built-in boolean type is /// used. @@ -208,7 +208,7 @@ /// boundary. unsigned UseBitFieldTypeAlignment : 1; - /// \brief Whether zero length bitfields (e.g., int : 0;) force alignment of + /// Whether zero length bitfields (e.g., int : 0;) force alignment of /// the next bitfield. /// /// If the alignment of the zero length bitfield is greater than the member @@ -216,14 +216,14 @@ /// zero-length bitfield. unsigned UseZeroLengthBitfieldAlignment : 1; - /// \brief Whether explicit bit field alignment attributes are honored. + /// Whether explicit bit field alignment attributes are honored. unsigned UseExplicitBitFieldAlignment : 1; /// If non-zero, specifies a fixed alignment value for bitfields that follow /// zero length bitfield, regardless of the zero length bitfield type. unsigned ZeroLengthBitfieldBoundary; - /// \brief Specify if mangling based on address space map should be used or + /// Specify if mangling based on address space map should be used or /// not for language specific address spaces bool UseAddrSpaceMapMangling; @@ -285,30 +285,30 @@ } } - /// \brief Return the width (in bits) of the specified integer type enum. + /// Return the width (in bits) of the specified integer type enum. /// /// For example, SignedInt -> getIntWidth(). unsigned getTypeWidth(IntType T) const; - /// \brief Return integer type with specified width. + /// Return integer type with specified width. virtual IntType getIntTypeByWidth(unsigned BitWidth, bool IsSigned) const; - /// \brief Return the smallest integer type with at least the specified width. + /// Return the smallest integer type with at least the specified width. virtual IntType getLeastIntTypeByWidth(unsigned BitWidth, bool IsSigned) const; - /// \brief Return floating point type with specified width. + /// Return floating point type with specified width. RealType getRealTypeByWidth(unsigned BitWidth) const; - /// \brief Return the alignment (in bits) of the specified integer type enum. + /// Return the alignment (in bits) of the specified integer type enum. /// /// For example, SignedInt -> getIntAlign(). unsigned getTypeAlign(IntType T) const; - /// \brief Returns true if the type is signed; false otherwise. + /// Returns true if the type is signed; false otherwise. static bool isTypeSigned(IntType T); - /// \brief Return the width of pointers on this target, for the + /// Return the width of pointers on this target, for the /// specified address space. uint64_t getPointerWidth(unsigned AddrSpace) const { return AddrSpace == 0 ? PointerWidth : getPointerWidthV(AddrSpace); @@ -317,29 +317,29 @@ return AddrSpace == 0 ? PointerAlign : getPointerAlignV(AddrSpace); } - /// \brief Return the maximum width of pointers on this target. + /// Return the maximum width of pointers on this target. virtual uint64_t getMaxPointerWidth() const { return PointerWidth; } - /// \brief Get integer value for null pointer. + /// Get integer value for null pointer. /// \param AddrSpace address space of pointee in source language. virtual uint64_t getNullPointerValue(LangAS AddrSpace) const { return 0; } - /// \brief Return the size of '_Bool' and C++ 'bool' for this target, in bits. + /// Return the size of '_Bool' and C++ 'bool' for this target, in bits. unsigned getBoolWidth() const { return BoolWidth; } - /// \brief Return the alignment of '_Bool' and C++ 'bool' for this target. + /// Return the alignment of '_Bool' and C++ 'bool' for this target. unsigned getBoolAlign() const { return BoolAlign; } unsigned getCharWidth() const { return 8; } // FIXME unsigned getCharAlign() const { return 8; } // FIXME - /// \brief Return the size of 'signed short' and 'unsigned short' for this + /// Return the size of 'signed short' and 'unsigned short' for this /// target, in bits. unsigned getShortWidth() const { return 16; } // FIXME - /// \brief Return the alignment of 'signed short' and 'unsigned short' for + /// Return the alignment of 'signed short' and 'unsigned short' for /// this target. unsigned getShortAlign() const { return 16; } // FIXME @@ -358,22 +358,22 @@ unsigned getLongLongWidth() const { return LongLongWidth; } unsigned getLongLongAlign() const { return LongLongAlign; } - /// \brief Determine whether the __int128 type is supported on this target. + /// Determine whether the __int128 type is supported on this target. virtual bool hasInt128Type() const { return (getPointerWidth(0) >= 64) || getTargetOpts().ForceEnableInt128; } // FIXME - /// \brief Determine whether _Float16 is supported on this target. + /// Determine whether _Float16 is supported on this target. virtual bool hasLegalHalfType() const { return HasLegalHalfType; } - /// \brief Determine whether the __float128 type is supported on this target. + /// Determine whether the __float128 type is supported on this target. virtual bool hasFloat128Type() const { return HasFloat128; } - /// \brief Return the alignment that is suitable for storing any + /// Return the alignment that is suitable for storing any /// object with a fundamental alignment requirement. unsigned getSuitableAlign() const { return SuitableAlign; } - /// \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 getDefaultAlignForAttributeAligned() const { return DefaultAlignForAttributeAligned; @@ -436,11 +436,11 @@ return *Float128Format; } - /// \brief Return true if the 'long double' type should be mangled like + /// Return true if the 'long double' type should be mangled like /// __float128. virtual bool useFloat128ManglingForLongDouble() const { return false; } - /// \brief Return the value for the C99 FLT_EVAL_METHOD macro. + /// Return the value for the C99 FLT_EVAL_METHOD macro. virtual unsigned getFloatEvalMethod() const { return 0; } // getLargeArrayMinWidth/Align - Return the minimum array size that is @@ -448,16 +448,16 @@ unsigned getLargeArrayMinWidth() const { return LargeArrayMinWidth; } unsigned getLargeArrayAlign() const { return LargeArrayAlign; } - /// \brief Return the maximum width lock-free atomic operation which will + /// Return the maximum width lock-free atomic operation which will /// ever be supported for the given target unsigned getMaxAtomicPromoteWidth() const { return MaxAtomicPromoteWidth; } - /// \brief Return the maximum width lock-free atomic operation which can be + /// Return the maximum width lock-free atomic operation which can be /// inlined given the supported features of the given target. unsigned getMaxAtomicInlineWidth() const { return MaxAtomicInlineWidth; } - /// \brief Set the maximum inline or promote width lock-free atomic operation + /// Set the maximum inline or promote width lock-free atomic operation /// for the given target. virtual void setMaxAtomicWidth() {} - /// \brief Returns true if the given target supports lock-free atomic + /// Returns true if the given target supports lock-free atomic /// operations at the specified width and alignment. virtual bool hasBuiltinAtomic(uint64_t AtomicSizeInBits, uint64_t AlignmentInBits) const { @@ -467,14 +467,14 @@ llvm::isPowerOf2_64(AtomicSizeInBits / getCharWidth())); } - /// \brief Return the maximum vector alignment supported for the given target. + /// Return the maximum vector alignment supported for the given target. unsigned getMaxVectorAlign() const { return MaxVectorAlign; } - /// \brief Return default simd alignment for the given target. Generally, this + /// Return default simd alignment for the given target. Generally, this /// value is type-specific, but this alignment can be used for most of the /// types for the given target. unsigned getSimdDefaultAlign() const { return SimdDefaultAlign; } - /// \brief Return the size of intmax_t and uintmax_t for this target, in bits. + /// Return the size of intmax_t and uintmax_t for this target, in bits. unsigned getIntMaxTWidth() const { return getTypeWidth(IntMaxType); } @@ -482,7 +482,7 @@ // Return the size of unwind_word for this target. virtual unsigned getUnwindWordWidth() const { return getPointerWidth(0); } - /// \brief Return the "preferred" register width on this target. + /// Return the "preferred" register width on this target. virtual unsigned getRegisterWidth() const { // Currently we assume the register width on the target matches the pointer // width, we can introduce a new variable for this if/when some target wants @@ -490,12 +490,12 @@ return PointerWidth; } - /// \brief Returns the name of the mcount instrumentation function. + /// Returns the name of the mcount instrumentation function. const char *getMCountName() const { return MCountName; } - /// \brief Check if the Objective-C built-in boolean type should be signed + /// Check if the Objective-C built-in boolean type should be signed /// char. /// /// Otherwise, if this returns false, the normal built-in boolean type @@ -507,58 +507,58 @@ UseSignedCharForObjCBool = false; } - /// \brief Check whether the alignment of bit-field types is respected + /// Check whether the alignment of bit-field types is respected /// when laying out structures. bool useBitFieldTypeAlignment() const { return UseBitFieldTypeAlignment; } - /// \brief Check whether zero length bitfields should force alignment of + /// Check whether zero length bitfields should force alignment of /// the next member. bool useZeroLengthBitfieldAlignment() const { return UseZeroLengthBitfieldAlignment; } - /// \brief Get the fixed alignment value in bits for a member that follows + /// Get the fixed alignment value in bits for a member that follows /// a zero length bitfield. unsigned getZeroLengthBitfieldBoundary() const { return ZeroLengthBitfieldBoundary; } - /// \brief Check whether explicit bitfield alignment attributes should be + /// Check whether explicit bitfield alignment attributes should be // honored, as in "__attribute__((aligned(2))) int b : 1;". bool useExplicitBitFieldAlignment() const { return UseExplicitBitFieldAlignment; } - /// \brief Check whether this target support '\#pragma options align=mac68k'. + /// Check whether this target support '\#pragma options align=mac68k'. bool hasAlignMac68kSupport() const { return HasAlignMac68kSupport; } - /// \brief Return the user string for the specified integer type enum. + /// Return the user string for the specified integer type enum. /// /// For example, SignedShort -> "short". static const char *getTypeName(IntType T); - /// \brief Return the constant suffix for the specified integer type enum. + /// Return the constant suffix for the specified integer type enum. /// /// For example, SignedLong -> "L". const char *getTypeConstantSuffix(IntType T) const; - /// \brief Return the printf format modifier for the specified + /// Return the printf format modifier for the specified /// integer type enum. /// /// For example, SignedLong -> "l". static const char *getTypeFormatModifier(IntType T); - /// \brief Check whether the given real type should use the "fpret" flavor of + /// Check whether the given real type should use the "fpret" flavor of /// Objective-C message passing on this target. bool useObjCFPRetForRealType(RealType T) const { return RealTypeUsesObjCFPRet & (1 << T); } - /// \brief Check whether _Complex long double should use the "fp2ret" flavor + /// Check whether _Complex long double should use the "fp2ret" flavor /// of Objective-C message passing on this target. bool useObjCFP2RetForComplexLongDouble() const { return ComplexLongDoubleUsesFP2Ret; @@ -572,7 +572,7 @@ return true; } - /// \brief Specify if mangling based on address space map should be used or + /// Specify if mangling based on address space map should be used or /// not for language specific address spaces bool useAddressSpaceMapMangling() const { return UseAddrSpaceMapMangling; @@ -580,7 +580,7 @@ ///===---- Other target property query methods --------------------------===// - /// \brief Appends the target-specific \#define values for this + /// Appends the target-specific \#define values for this /// target set to the specified buffer. virtual void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const = 0; @@ -598,7 +598,7 @@ /// idea to avoid optimizing based on that undef behavior. virtual bool isCLZForZeroUndef() const { return true; } - /// \brief Returns the kind of __builtin_va_list type that should be used + /// Returns the kind of __builtin_va_list type that should be used /// with this target. virtual BuiltinVaListKind getBuiltinVaListKind() const = 0; @@ -609,19 +609,19 @@ /// Returns true for RenderScript. bool isRenderScriptTarget() const { return IsRenderScriptTarget; } - /// \brief Returns whether the passed in string is a valid clobber in an + /// Returns whether the passed in string is a valid clobber in an /// inline asm statement. /// /// This is used by Sema. bool isValidClobber(StringRef Name) const; - /// \brief Returns whether the passed in string is a valid register name + /// Returns whether the passed in string is a valid register name /// according to GCC. /// /// This is used by Sema for inline asm statements. virtual bool isValidGCCRegisterName(StringRef Name) const; - /// \brief Returns the "normalized" GCC register name. + /// Returns the "normalized" GCC register name. /// /// ReturnCannonical true will return the register name without any additions /// such as "{}" or "%" in it's canonical form, for example: @@ -629,7 +629,7 @@ StringRef getNormalizedGCCRegisterName(StringRef Name, bool ReturnCanonical = false) const; - /// \brief Extracts a register from the passed constraint (if it is a + /// Extracts a register from the passed constraint (if it is a /// single-register constraint) and the asm label expression related to a /// variable in the input or output list of an inline asm statement. /// @@ -674,11 +674,11 @@ bool allowsRegister() const { return (Flags & CI_AllowsRegister) != 0; } bool allowsMemory() const { return (Flags & CI_AllowsMemory) != 0; } - /// \brief Return true if this output operand has a matching + /// Return true if this output operand has a matching /// (tied) input operand. bool hasMatchingInput() const { return (Flags & CI_HasMatchingInput) != 0; } - /// \brief Return true if this input operand is a matching + /// Return true if this input operand is a matching /// constraint that ties it to an output operand. /// /// If this returns true then getTiedOperand will indicate which output @@ -722,7 +722,7 @@ ImmRange.Max = INT_MAX; } - /// \brief Indicate that this is an input operand that is tied to + /// Indicate that this is an input operand that is tied to /// the specified output operand. /// /// Copy over the various constraint information from the output. @@ -734,7 +734,7 @@ } }; - /// \brief Validate register name used for global register variables. + /// Validate register name used for global register variables. /// /// This function returns true if the register passed in RegName can be used /// for global register variables on this target. In addition, it returns @@ -788,16 +788,16 @@ return std::string(1, *Constraint); } - /// \brief Returns a string of target-specific clobbers, in LLVM format. + /// Returns a string of target-specific clobbers, in LLVM format. virtual const char *getClobbers() const = 0; - /// \brief Returns true if NaN encoding is IEEE 754-2008. + /// Returns true if NaN encoding is IEEE 754-2008. /// Only MIPS allows a different encoding. virtual bool isNan2008() const { return true; } - /// \brief Returns the target triple of the primary target. + /// Returns the target triple of the primary target. const llvm::Triple &getTriple() const { return Triple; } @@ -817,7 +817,7 @@ const unsigned RegNum; }; - /// \brief Does this target support "protected" visibility? + /// Does this target support "protected" visibility? /// /// Any target which dynamic libraries will naturally support /// something like "default" (meaning that the symbol is visible @@ -829,7 +829,7 @@ /// either; the entire thing is pretty badly mangled. virtual bool hasProtectedVisibility() const { return true; } - /// \brief An optional hook that targets can implement to perform semantic + /// An optional hook that targets can implement to perform semantic /// checking on attribute((section("foo"))) specifiers. /// /// In this case, "foo" is passed in to be checked. If the section @@ -844,18 +844,18 @@ return ""; } - /// \brief Set forced language options. + /// Set forced language options. /// /// Apply changes to the target information with respect to certain /// language options which change the target configuration and adjust /// the language based on the target options where applicable. virtual void adjust(LangOptions &Opts); - /// \brief Adjust target options based on codegen options. + /// Adjust target options based on codegen options. virtual void adjustTargetOptions(const CodeGenOptions &CGOpts, TargetOptions &TargetOpts) const {} - /// \brief Initialize the map with the default set of target features for the + /// Initialize the map with the default set of target features for the /// CPU this should include all legal feature strings on the target. /// /// \return False on error (invalid features). @@ -863,15 +863,15 @@ DiagnosticsEngine &Diags, StringRef CPU, const std::vector<std::string> &FeatureVec) const; - /// \brief Get the ABI currently in use. + /// Get the ABI currently in use. virtual StringRef getABI() const { return StringRef(); } - /// \brief Get the C++ ABI currently in use. + /// Get the C++ ABI currently in use. TargetCXXABI getCXXABI() const { return TheCXXABI; } - /// \brief Target the specified CPU. + /// Target the specified CPU. /// /// \return False on error (invalid CPU name). virtual bool setCPU(const std::string &Name) { @@ -886,21 +886,21 @@ return true; } - /// \brief Use the specified ABI. + /// Use the specified ABI. /// /// \return False on error (invalid ABI name). virtual bool setABI(const std::string &Name) { return false; } - /// \brief Use the specified unit for FP math. + /// Use the specified unit for FP math. /// /// \return False on error (invalid unit name). virtual bool setFPMath(StringRef Name) { return false; } - /// \brief Enable or disable a specific target feature; + /// Enable or disable a specific target feature; /// the feature name must be valid. virtual void setFeatureEnabled(llvm::StringMap<bool> &Features, StringRef Name, @@ -908,12 +908,12 @@ Features[Name] = Enabled; } - /// \brief Determine whether this TargetInfo supports the given feature. + /// Determine whether this TargetInfo supports the given feature. virtual bool isValidFeatureName(StringRef Feature) const { return true; } - /// \brief Perform initialization based on the user configured + /// Perform initialization based on the user configured /// set of features (e.g., +sse4). /// /// The list is guaranteed to have at most one entry per feature. @@ -929,41 +929,41 @@ return true; } - /// \brief Determine whether the given target has the given feature. + /// Determine whether the given target has the given feature. virtual bool hasFeature(StringRef Feature) const { return false; } - /// \brief Identify whether this taret supports multiversioning of functions, + /// Identify whether this taret supports multiversioning of functions, /// which requires support for cpu_supports and cpu_is functionality. virtual bool supportsMultiVersioning() const { return false; } - // \brief Validate the contents of the __builtin_cpu_supports(const char*) + // Validate the contents of the __builtin_cpu_supports(const char*) // argument. virtual bool validateCpuSupports(StringRef Name) const { return false; } - // \brief Return the target-specific priority for features/cpus/vendors so + // Return the target-specific priority for features/cpus/vendors so // that they can be properly sorted for checking. virtual unsigned multiVersionSortPriority(StringRef Name) const { return 0; } - // \brief Validate the contents of the __builtin_cpu_is(const char*) + // Validate the contents of the __builtin_cpu_is(const char*) // argument. virtual bool validateCpuIs(StringRef Name) const { return false; } - // \brief Returns maximal number of args passed in registers. + // Returns maximal number of args passed in registers. unsigned getRegParmMax() const { assert(RegParmMax < 7 && "RegParmMax value is larger than AST can handle"); return RegParmMax; } - /// \brief Whether the target supports thread-local storage. + /// Whether the target supports thread-local storage. bool isTLSSupported() const { return TLSSupported; } - /// \brief Return the maximum alignment (in bits) of a TLS variable + /// Return the maximum alignment (in bits) of a TLS variable /// /// Gets the maximum alignment (in bits) of a TLS variable on this target. /// Returns zero if there is no such constraint. @@ -971,17 +971,17 @@ return MaxTLSAlign; } - /// \brief Whether target supports variable-length arrays. + /// Whether target supports variable-length arrays. bool isVLASupported() const { return VLASupported; } - /// \brief Whether the target supports SEH __try. + /// Whether the target supports SEH __try. bool isSEHTrySupported() const { return getTriple().isOSWindows() && (getTriple().getArch() == llvm::Triple::x86 || getTriple().getArch() == llvm::Triple::x86_64); } - /// \brief Return true if {|} are normal characters in the asm string. + /// Return true if {|} are normal characters in the asm string. /// /// If this returns false (the default), then {abc|xyz} is syntax /// that says that when compiling for asm variant #0, "abc" should be @@ -991,7 +991,7 @@ return NoAsmVariants; } - /// \brief Return the register number that __builtin_eh_return_regno would + /// Return the register number that __builtin_eh_return_regno would /// return with the specified argument. /// This corresponds with TargetLowering's getExceptionPointerRegister /// and getExceptionSelectorRegister in the backend. @@ -999,14 +999,14 @@ return -1; } - /// \brief Return the section to use for C++ static initialization functions. + /// Return the section to use for C++ static initialization functions. virtual const char *getStaticInitSectionSpecifier() const { return nullptr; } const LangASMap &getAddressSpaceMap() const { return *AddrSpaceMap; } - /// \brief Return an AST address space which can be used opportunistically + /// Return an AST address space which can be used opportunistically /// for constant global memory. It must be possible to convert pointers into /// this address space to LangAS::Default. If no such address space exists, /// this may return None, and such optimizations will be disabled. @@ -1014,11 +1014,11 @@ return LangAS::Default; } - /// \brief Retrieve the name of the platform as it is used in the + /// Retrieve the name of the platform as it is used in the /// availability attribute. StringRef getPlatformName() const { return PlatformName; } - /// \brief Retrieve the minimum desired version of the platform, to + /// Retrieve the minimum desired version of the platform, to /// which the program should be compiled. VersionTuple getPlatformMinVersion() const { return PlatformMinVersion; } @@ -1031,7 +1031,7 @@ CCMT_NonMember }; - /// \brief Gets the default calling convention for the given target and + /// Gets the default calling convention for the given target and /// declaration context. virtual CallingConv getDefaultCallingConv(CallingConvMethodType MT) const { // Not all targets will specify an explicit calling convention that we can @@ -1046,7 +1046,7 @@ CCCR_Ignore, }; - /// \brief Determines whether a given calling convention is valid for the + /// Determines whether a given calling convention is valid for the /// target. A calling convention can either be accepted, produce a warning /// and be substituted with the default calling convention, or (someday) /// produce an error (such as using thiscall on a non-instance function). @@ -1085,25 +1085,25 @@ return false; } - /// \brief Whether target allows to overalign ABI-specified preferred alignment + /// Whether target allows to overalign ABI-specified preferred alignment virtual bool allowsLargerPreferedTypeAlignment() const { return true; } - /// \brief Set supported OpenCL extensions and optional core features. + /// Set supported OpenCL extensions and optional core features. virtual void setSupportedOpenCLOpts() {} - /// \brief Set supported OpenCL extensions as written on command line + /// Set supported OpenCL extensions as written on command line virtual void setOpenCLExtensionOpts() { for (const auto &Ext : getTargetOpts().OpenCLExtensionsAsWritten) { getTargetOpts().SupportedOpenCLOptions.support(Ext); } } - /// \brief Get supported OpenCL extensions and optional core features. + /// Get supported OpenCL extensions and optional core features. OpenCLOptions &getSupportedOpenCLOpts() { return getTargetOpts().SupportedOpenCLOptions; } - /// \brief Get const supported OpenCL extensions and optional core features. + /// Get const supported OpenCL extensions and optional core features. const OpenCLOptions &getSupportedOpenCLOpts() const { return getTargetOpts().SupportedOpenCLOptions; } @@ -1119,7 +1119,7 @@ OCLTK_Sampler, }; - /// \brief Get address space for OpenCL type. + /// Get address space for OpenCL type. virtual LangAS getOpenCLTypeAddrSpace(OpenCLTypeKind TK) const; /// \returns Target specific vtbl ptr address space. @@ -1137,7 +1137,7 @@ return None; } - /// \brief Check the target is valid after it is fully initialized. + /// Check the target is valid after it is fully initialized. virtual bool validateTarget(DiagnosticsEngine &Diags) const { return true; } Index: cfe/trunk/include/clang/Basic/TargetOptions.h =================================================================== --- cfe/trunk/include/clang/Basic/TargetOptions.h +++ cfe/trunk/include/clang/Basic/TargetOptions.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines the clang::TargetOptions class. +/// Defines the clang::TargetOptions class. /// //===----------------------------------------------------------------------===// @@ -22,7 +22,7 @@ namespace clang { -/// \brief Options for controlling the target. +/// Options for controlling the target. class TargetOptions { public: /// The name of the target triple to compile for. @@ -47,7 +47,7 @@ /// If given, the version string of the linker in use. std::string LinkerVersion; - /// \brief The list of target specific features to enable or disable, as written on the command line. + /// The list of target specific features to enable or disable, as written on the command line. std::vector<std::string> FeaturesAsWritten; /// The list of target specific features to enable or disable -- this should @@ -57,11 +57,11 @@ /// Supported OpenCL extensions and optional core features. OpenCLOptions SupportedOpenCLOptions; - /// \brief The list of OpenCL extensions to enable or disable, as written on + /// The list of OpenCL extensions to enable or disable, as written on /// the command line. std::vector<std::string> OpenCLExtensionsAsWritten; - /// \brief If given, enables support for __int128_t and __uint128_t types. + /// If given, enables support for __int128_t and __uint128_t types. bool ForceEnableInt128 = false; }; Index: cfe/trunk/include/clang/Basic/TemplateKinds.h =================================================================== --- cfe/trunk/include/clang/Basic/TemplateKinds.h +++ cfe/trunk/include/clang/Basic/TemplateKinds.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines the clang::TemplateNameKind enum. +/// Defines the clang::TemplateNameKind enum. /// //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_BASIC_TEMPLATEKINDS_H @@ -16,7 +16,7 @@ namespace clang { -/// \brief Specifies the kind of template name that an identifier refers to. +/// Specifies the kind of template name that an identifier refers to. /// Be careful when changing this: this enumeration is used in diagnostics. enum TemplateNameKind { /// The name does not refer to a template. Index: cfe/trunk/include/clang/Basic/TokenKinds.h =================================================================== --- cfe/trunk/include/clang/Basic/TokenKinds.h +++ cfe/trunk/include/clang/Basic/TokenKinds.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines the clang::TokenKind enum and support functions. +/// Defines the clang::TokenKind enum and support functions. /// //===----------------------------------------------------------------------===// @@ -21,14 +21,14 @@ namespace tok { -/// \brief Provides a simple uniform namespace for tokens from all C languages. +/// Provides a simple uniform namespace for tokens from all C languages. enum TokenKind : unsigned short { #define TOK(X) X, #include "clang/Basic/TokenKinds.def" NUM_TOKENS }; -/// \brief Provides a namespace for preprocessor keywords which start with a +/// Provides a namespace for preprocessor keywords which start with a /// '#' at the beginning of the line. enum PPKeywordKind { #define PPKEYWORD(X) pp_##X, @@ -36,7 +36,7 @@ NUM_PP_KEYWORDS }; -/// \brief Provides a namespace for Objective-C keywords which start with +/// Provides a namespace for Objective-C keywords which start with /// an '@'. enum ObjCKeywordKind { #define OBJC1_AT_KEYWORD(X) objc_##X, @@ -45,18 +45,18 @@ NUM_OBJC_KEYWORDS }; -/// \brief Defines the possible values of an on-off-switch (C99 6.10.6p2). +/// Defines the possible values of an on-off-switch (C99 6.10.6p2). enum OnOffSwitch { OOS_ON, OOS_OFF, OOS_DEFAULT }; -/// \brief Determines the name of a token as used within the front end. +/// Determines the name of a token as used within the front end. /// /// The name of a token will be an internal name (such as "l_square") /// and should not be used as part of diagnostic messages. const char *getTokenName(TokenKind Kind) LLVM_READNONE; -/// \brief Determines the spelling of simple punctuation tokens like +/// Determines the spelling of simple punctuation tokens like /// '!' or '%', and returns NULL for literal and annotation tokens. /// /// This routine only retrieves the "simple" spelling of the token, @@ -65,16 +65,16 @@ /// Preprocessor::getSpelling(). const char *getPunctuatorSpelling(TokenKind Kind) LLVM_READNONE; -/// \brief Determines the spelling of simple keyword and contextual keyword +/// Determines the spelling of simple keyword and contextual keyword /// tokens like 'int' and 'dynamic_cast'. Returns NULL for other token kinds. const char *getKeywordSpelling(TokenKind Kind) LLVM_READNONE; -/// \brief Return true if this is a raw identifier or an identifier kind. +/// Return true if this is a raw identifier or an identifier kind. inline bool isAnyIdentifier(TokenKind K) { return (K == tok::identifier) || (K == tok::raw_identifier); } -/// \brief Return true if this is a C or C++ string-literal (or +/// Return true if this is a C or C++ string-literal (or /// C++11 user-defined-string-literal) token. inline bool isStringLiteral(TokenKind K) { return K == tok::string_literal || K == tok::wide_string_literal || @@ -82,7 +82,7 @@ K == tok::utf32_string_literal; } -/// \brief Return true if this is a "literal" kind, like a numeric +/// Return true if this is a "literal" kind, like a numeric /// constant, string, etc. inline bool isLiteral(TokenKind K) { return K == tok::numeric_constant || K == tok::char_constant || @@ -91,7 +91,7 @@ isStringLiteral(K) || K == tok::angle_string_literal; } -/// \brief Return true if this is any of tok::annot_* kinds. +/// Return true if this is any of tok::annot_* kinds. inline bool isAnnotation(TokenKind K) { #define ANNOTATION(NAME) \ if (K == tok::annot_##NAME) \ Index: cfe/trunk/include/clang/Basic/TypeTraits.h =================================================================== --- cfe/trunk/include/clang/Basic/TypeTraits.h +++ cfe/trunk/include/clang/Basic/TypeTraits.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines enumerations for the type traits support. +/// Defines enumerations for the type traits support. /// //===----------------------------------------------------------------------===// @@ -17,7 +17,7 @@ namespace clang { - /// \brief Names for traits that operate specifically on types. + /// Names for traits that operate specifically on types. enum TypeTrait { UTT_HasNothrowAssign, UTT_HasNothrowMoveAssign, @@ -87,13 +87,13 @@ TT_IsTriviallyConstructible }; - /// \brief Names for the array type traits. + /// Names for the array type traits. enum ArrayTypeTrait { ATT_ArrayRank, ATT_ArrayExtent }; - /// \brief Names for the "expression or type" traits. + /// Names for the "expression or type" traits. enum UnaryExprOrTypeTrait { UETT_SizeOf, UETT_AlignOf, Index: cfe/trunk/include/clang/Basic/Version.h =================================================================== --- cfe/trunk/include/clang/Basic/Version.h +++ cfe/trunk/include/clang/Basic/Version.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines version macros and version-related utility functions +/// Defines version macros and version-related utility functions /// for Clang. /// //===----------------------------------------------------------------------===// @@ -20,40 +20,40 @@ #include "llvm/ADT/StringRef.h" namespace clang { - /// \brief Retrieves the repository path (e.g., Subversion path) that + /// Retrieves the repository path (e.g., Subversion path) that /// identifies the particular Clang branch, tag, or trunk from which this /// Clang was built. std::string getClangRepositoryPath(); - /// \brief Retrieves the repository path from which LLVM was built. + /// Retrieves the repository path from which LLVM was built. /// /// This supports LLVM residing in a separate repository from clang. std::string getLLVMRepositoryPath(); - /// \brief Retrieves the repository revision number (or identifier) from which + /// Retrieves the repository revision number (or identifier) from which /// this Clang was built. std::string getClangRevision(); - /// \brief Retrieves the repository revision number (or identifier) from which + /// Retrieves the repository revision number (or identifier) from which /// LLVM was built. /// /// If Clang and LLVM are in the same repository, this returns the same /// string as getClangRevision. std::string getLLVMRevision(); - /// \brief Retrieves the full repository version that is an amalgamation of + /// Retrieves the full repository version that is an amalgamation of /// the information in getClangRepositoryPath() and getClangRevision(). std::string getClangFullRepositoryVersion(); - /// \brief Retrieves a string representing the complete clang version, + /// Retrieves a string representing the complete clang version, /// which includes the clang version number, the repository version, /// and the vendor tag. std::string getClangFullVersion(); - /// \brief Like getClangFullVersion(), but with a custom tool name. + /// Like getClangFullVersion(), but with a custom tool name. std::string getClangToolFullVersion(llvm::StringRef ToolName); - /// \brief Retrieves a string representing the complete clang version suitable + /// Retrieves a string representing the complete clang version suitable /// for use in the CPP __VERSION__ macro, which includes the clang version /// number, the repository version, and the vendor tag. std::string getClangFullCPPVersion(); Index: cfe/trunk/include/clang/Basic/VersionTuple.h =================================================================== --- cfe/trunk/include/clang/Basic/VersionTuple.h +++ cfe/trunk/include/clang/Basic/VersionTuple.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines the clang::VersionTuple class, which represents a version in +/// Defines the clang::VersionTuple class, which represents a version in /// the form major[.minor[.subminor]]. /// //===----------------------------------------------------------------------===// @@ -22,7 +22,7 @@ namespace clang { -/// \brief Represents a version number in the form major[.minor[.subminor[.build]]]. +/// Represents a version number in the form major[.minor[.subminor[.build]]]. class VersionTuple { unsigned Major : 31; @@ -64,30 +64,30 @@ HasMinor(true), Subminor(Subminor), HasSubminor(true), Build(Build), HasBuild(true) {} - /// \brief Determine whether this version information is empty + /// Determine whether this version information is empty /// (e.g., all version components are zero). bool empty() const { return Major == 0 && Minor == 0 && Subminor == 0 && Build == 0; } - /// \brief Retrieve the major version number. + /// Retrieve the major version number. unsigned getMajor() const { return Major; } - /// \brief Retrieve the minor version number, if provided. + /// Retrieve the minor version number, if provided. Optional<unsigned> getMinor() const { if (!HasMinor) return None; return Minor; } - /// \brief Retrieve the subminor version number, if provided. + /// Retrieve the subminor version number, if provided. Optional<unsigned> getSubminor() const { if (!HasSubminor) return None; return Subminor; } - /// \brief Retrieve the build version number, if provided. + /// Retrieve the build version number, if provided. Optional<unsigned> getBuild() const { if (!HasBuild) return None; @@ -102,14 +102,14 @@ UsesUnderscores = false; } - /// \brief Determine if two version numbers are equivalent. If not + /// Determine if two version numbers are equivalent. If not /// provided, minor and subminor version numbers are considered to be zero. friend bool operator==(const VersionTuple& X, const VersionTuple &Y) { return X.Major == Y.Major && X.Minor == Y.Minor && X.Subminor == Y.Subminor && X.Build == Y.Build; } - /// \brief Determine if two version numbers are not equivalent. + /// Determine if two version numbers are not equivalent. /// /// If not provided, minor and subminor version numbers are considered to be /// zero. @@ -117,7 +117,7 @@ return !(X == Y); } - /// \brief Determine whether one version number precedes another. + /// Determine whether one version number precedes another. /// /// If not provided, minor and subminor version numbers are considered to be /// zero. @@ -126,7 +126,7 @@ std::tie(Y.Major, Y.Minor, Y.Subminor, Y.Build); } - /// \brief Determine whether one version number follows another. + /// Determine whether one version number follows another. /// /// If not provided, minor and subminor version numbers are considered to be /// zero. @@ -134,7 +134,7 @@ return Y < X; } - /// \brief Determine whether one version number precedes or is + /// Determine whether one version number precedes or is /// equivalent to another. /// /// If not provided, minor and subminor version numbers are considered to be @@ -143,7 +143,7 @@ return !(Y < X); } - /// \brief Determine whether one version number follows or is + /// Determine whether one version number follows or is /// equivalent to another. /// /// If not provided, minor and subminor version numbers are considered to be @@ -152,16 +152,16 @@ return !(X < Y); } - /// \brief Retrieve a string representation of the version number. + /// Retrieve a string representation of the version number. std::string getAsString() const; - /// \brief Try to parse the given string as a version number. + /// Try to parse the given string as a version number. /// \returns \c true if the string does not match the regular expression /// [0-9]+(\.[0-9]+){0,3} bool tryParse(StringRef string); }; -/// \brief Print a version number. +/// Print a version number. raw_ostream& operator<<(raw_ostream &Out, const VersionTuple &V); } // end namespace clang Index: cfe/trunk/include/clang/Basic/VirtualFileSystem.h =================================================================== --- cfe/trunk/include/clang/Basic/VirtualFileSystem.h +++ cfe/trunk/include/clang/Basic/VirtualFileSystem.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Defines the virtual file system interface vfs::FileSystem. +/// Defines the virtual file system interface vfs::FileSystem. // //===----------------------------------------------------------------------===// @@ -45,7 +45,7 @@ namespace clang { namespace vfs { -/// \brief The result of a \p status operation. +/// The result of a \p status operation. class Status { std::string Name; llvm::sys::fs::UniqueID UID; @@ -72,7 +72,7 @@ static Status copyWithNewName(const llvm::sys::fs::file_status &In, StringRef NewName); - /// \brief Returns the name that should be used for this file or directory. + /// Returns the name that should be used for this file or directory. StringRef getName() const { return Name; } /// @name Status interface from llvm::sys::fs @@ -98,18 +98,18 @@ /// @} }; -/// \brief Represents an open file. +/// Represents an open file. class File { public: - /// \brief Destroy the file after closing it (if open). + /// Destroy the file after closing it (if open). /// Sub-classes should generally call close() inside their destructors. We /// cannot do that from the base class, since close is virtual. virtual ~File(); - /// \brief Get the status of the file. + /// Get the status of the file. virtual llvm::ErrorOr<Status> status() = 0; - /// \brief Get the name of the file + /// Get the name of the file virtual llvm::ErrorOr<std::string> getName() { if (auto Status = status()) return Status->getName().str(); @@ -117,23 +117,23 @@ return Status.getError(); } - /// \brief Get the contents of the file as a \p MemoryBuffer. + /// Get the contents of the file as a \p MemoryBuffer. virtual llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> getBuffer(const Twine &Name, int64_t FileSize = -1, bool RequiresNullTerminator = true, bool IsVolatile = false) = 0; - /// \brief Closes the file. + /// Closes the file. virtual std::error_code close() = 0; }; namespace detail { -/// \brief An interface for virtual file systems to provide an iterator over the +/// An interface for virtual file systems to provide an iterator over the /// (non-recursive) contents of a directory. struct DirIterImpl { virtual ~DirIterImpl(); - /// \brief Sets \c CurrentEntry to the next entry in the directory on success, + /// Sets \c CurrentEntry to the next entry in the directory on success, /// or returns a system-defined \c error_code. virtual std::error_code increment() = 0; @@ -142,7 +142,7 @@ } // namespace detail -/// \brief An input iterator over the entries in a virtual path, similar to +/// An input iterator over the entries in a virtual path, similar to /// llvm::sys::fs::directory_iterator. class directory_iterator { std::shared_ptr<detail::DirIterImpl> Impl; // Input iterator semantics on copy @@ -155,10 +155,10 @@ Impl.reset(); // Normalize the end iterator to Impl == nullptr. } - /// \brief Construct an 'end' iterator. + /// Construct an 'end' iterator. directory_iterator() = default; - /// \brief Equivalent to operator++, with an error code. + /// Equivalent to operator++, with an error code. directory_iterator &increment(std::error_code &EC) { assert(Impl && "attempting to increment past end"); EC = Impl->increment(); @@ -182,7 +182,7 @@ class FileSystem; -/// \brief An input iterator over the recursive contents of a virtual path, +/// An input iterator over the recursive contents of a virtual path, /// similar to llvm::sys::fs::recursive_directory_iterator. class recursive_directory_iterator { using IterState = @@ -195,10 +195,10 @@ recursive_directory_iterator(FileSystem &FS, const Twine &Path, std::error_code &EC); - /// \brief Construct an 'end' iterator. + /// Construct an 'end' iterator. recursive_directory_iterator() = default; - /// \brief Equivalent to operator++, with an error code. + /// Equivalent to operator++, with an error code. recursive_directory_iterator &increment(std::error_code &EC); const Status &operator*() const { return *State->top(); } @@ -211,22 +211,22 @@ return !(*this == RHS); } - /// \brief Gets the current level. Starting path is at level 0. + /// Gets the current level. Starting path is at level 0. int level() const { assert(!State->empty() && "Cannot get level without any iteration state"); return State->size()-1; } }; -/// \brief The virtual file system interface. +/// The virtual file system interface. class FileSystem : public llvm::ThreadSafeRefCountedBase<FileSystem> { public: virtual ~FileSystem(); - /// \brief Get the status of the entry at \p Path, if one exists. + /// Get the status of the entry at \p Path, if one exists. virtual llvm::ErrorOr<Status> status(const Twine &Path) = 0; - /// \brief Get a \p File object for the file at \p Path, if one exists. + /// Get a \p File object for the file at \p Path, if one exists. virtual llvm::ErrorOr<std::unique_ptr<File>> openFileForRead(const Twine &Path) = 0; @@ -236,7 +236,7 @@ getBufferForFile(const Twine &Name, int64_t FileSize = -1, bool RequiresNullTerminator = true, bool IsVolatile = false); - /// \brief Get a directory_iterator for \p Dir. + /// Get a directory_iterator for \p Dir. /// \note The 'end' iterator is directory_iterator(). virtual directory_iterator dir_begin(const Twine &Dir, std::error_code &EC) = 0; @@ -265,11 +265,11 @@ std::error_code makeAbsolute(SmallVectorImpl<char> &Path) const; }; -/// \brief Gets an \p vfs::FileSystem for the 'real' file system, as seen by +/// Gets an \p vfs::FileSystem for the 'real' file system, as seen by /// the operating system. IntrusiveRefCntPtr<FileSystem> getRealFileSystem(); -/// \brief A file system that allows overlaying one \p AbstractFileSystem on top +/// A file system that allows overlaying one \p AbstractFileSystem on top /// of another. /// /// Consists of a stack of >=1 \p FileSystem objects, which are treated as being @@ -282,14 +282,14 @@ class OverlayFileSystem : public FileSystem { using FileSystemList = SmallVector<IntrusiveRefCntPtr<FileSystem>, 1>; - /// \brief The stack of file systems, implemented as a list in order of + /// The stack of file systems, implemented as a list in order of /// their addition. FileSystemList FSList; public: OverlayFileSystem(IntrusiveRefCntPtr<FileSystem> Base); - /// \brief Pushes a file system on top of the stack. + /// Pushes a file system on top of the stack. void pushOverlay(IntrusiveRefCntPtr<FileSystem> FS); llvm::ErrorOr<Status> status(const Twine &Path) override; @@ -301,10 +301,10 @@ using iterator = FileSystemList::reverse_iterator; - /// \brief Get an iterator pointing to the most recently added file system. + /// Get an iterator pointing to the most recently added file system. iterator overlays_begin() { return FSList.rbegin(); } - /// \brief Get an iterator pointing one-past the least recently added file + /// Get an iterator pointing one-past the least recently added file /// system. iterator overlays_end() { return FSList.rend(); } }; @@ -367,10 +367,10 @@ std::error_code setCurrentWorkingDirectory(const Twine &Path) override; }; -/// \brief Get a globally unique ID for a virtual file or directory. +/// Get a globally unique ID for a virtual file or directory. llvm::sys::fs::UniqueID getNextVirtualUniqueID(); -/// \brief Gets a \p FileSystem for a virtual file system described in YAML +/// Gets a \p FileSystem for a virtual file system described in YAML /// format. IntrusiveRefCntPtr<FileSystem> getVFSFromYAML(std::unique_ptr<llvm::MemoryBuffer> Buffer, @@ -386,7 +386,7 @@ std::string RPath; }; -/// \brief Collect all pairs of <virtual path, real path> entries from the +/// Collect all pairs of <virtual path, real path> entries from the /// \p YAMLFilePath. This is used by the module dependency collector to forward /// the entries into the reproducer output VFS YAML file. void collectVFSFromYAML( Index: cfe/trunk/include/clang/Basic/Visibility.h =================================================================== --- cfe/trunk/include/clang/Basic/Visibility.h +++ cfe/trunk/include/clang/Basic/Visibility.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines the clang::Visibility enumeration and various utility +/// Defines the clang::Visibility enumeration and various utility /// functions. /// //===----------------------------------------------------------------------===// @@ -20,7 +20,7 @@ namespace clang { -/// \brief Describes the different kinds of visibility that a declaration +/// Describes the different kinds of visibility that a declaration /// may have. /// /// Visibility determines how a declaration interacts with the dynamic Index: cfe/trunk/include/clang/Basic/XRayInstr.h =================================================================== --- cfe/trunk/include/clang/Basic/XRayInstr.h +++ cfe/trunk/include/clang/Basic/XRayInstr.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Defines the clang::XRayInstrKind enum. +/// Defines the clang::XRayInstrKind enum. // //===----------------------------------------------------------------------===// Index: cfe/trunk/include/clang/CodeGen/CGFunctionInfo.h =================================================================== --- cfe/trunk/include/clang/CodeGen/CGFunctionInfo.h +++ cfe/trunk/include/clang/CodeGen/CGFunctionInfo.h @@ -384,7 +384,7 @@ AllocaFieldIndex = FieldIndex; } - /// \brief Return true if this field of an inalloca struct should be returned + /// Return true if this field of an inalloca struct should be returned /// to implement a struct return calling convention. bool getInAllocaSRet() const { assert(isInAlloca() && "Invalid kind!"); @@ -648,10 +648,10 @@ return getExtParameterInfos()[argIndex]; } - /// \brief Return true if this function uses inalloca arguments. + /// Return true if this function uses inalloca arguments. bool usesInAlloca() const { return ArgStruct; } - /// \brief Get the struct type used to represent all the arguments in memory. + /// Get the struct type used to represent all the arguments in memory. llvm::StructType *getArgStruct() const { return ArgStruct; } CharUnits getArgStructAlignment() const { return CharUnits::fromQuantity(ArgStructAlign); Index: cfe/trunk/include/clang/CrossTU/CrossTranslationUnit.h =================================================================== --- cfe/trunk/include/clang/CrossTU/CrossTranslationUnit.h +++ cfe/trunk/include/clang/CrossTU/CrossTranslationUnit.h @@ -62,7 +62,7 @@ int LineNo; }; -/// \brief This function parses an index file that determines which +/// This function parses an index file that determines which /// translation unit contains which definition. /// /// The index file format is the following: @@ -75,7 +75,7 @@ std::string createCrossTUIndexString(const llvm::StringMap<std::string> &Index); -/// \brief This class is used for tools that requires cross translation +/// This class is used for tools that requires cross translation /// unit capability. /// /// This class can load function definitions from external AST files. @@ -90,7 +90,7 @@ CrossTranslationUnitContext(CompilerInstance &CI); ~CrossTranslationUnitContext(); - /// \brief This function loads a function definition from an external AST + /// This function loads a function definition from an external AST /// file and merge it into the original AST. /// /// This method should only be used on functions that have no definitions in @@ -110,7 +110,7 @@ getCrossTUDefinition(const FunctionDecl *FD, StringRef CrossTUDir, StringRef IndexName); - /// \brief This function loads a function definition from an external AST + /// This function loads a function definition from an external AST /// file. /// /// A function definition with the same declaration will be looked up in the @@ -126,17 +126,17 @@ StringRef CrossTUDir, StringRef IndexName); - /// \brief This function merges a definition from a separate AST Unit into + /// This function merges a definition from a separate AST Unit into /// the current one which was created by the compiler instance that /// was passed to the constructor. /// /// \return Returns the resulting definition or an error. llvm::Expected<const FunctionDecl *> importDefinition(const FunctionDecl *FD); - /// \brief Get a name to identify a function. + /// Get a name to identify a function. static std::string getLookupName(const NamedDecl *ND); - /// \brief Emit diagnostics for the user for potential configuration errors. + /// Emit diagnostics for the user for potential configuration errors. void emitCrossTUDiagnostics(const IndexError &IE); private: Index: cfe/trunk/include/clang/Driver/Action.h =================================================================== --- cfe/trunk/include/clang/Driver/Action.h +++ cfe/trunk/include/clang/Driver/Action.h @@ -547,13 +547,13 @@ /// Type that provides information about the actions that depend on this /// unbundling action. struct DependentActionInfo final { - /// \brief The tool chain of the dependent action. + /// The tool chain of the dependent action. const ToolChain *DependentToolChain = nullptr; - /// \brief The bound architecture of the dependent action. + /// The bound architecture of the dependent action. StringRef DependentBoundArch; - /// \brief The offload kind of the dependent action. + /// The offload kind of the dependent action. const OffloadKind DependentOffloadKind = OFK_None; DependentActionInfo(const ToolChain *DependentToolChain, Index: cfe/trunk/include/clang/Driver/Driver.h =================================================================== --- cfe/trunk/include/clang/Driver/Driver.h +++ cfe/trunk/include/clang/Driver/Driver.h @@ -243,7 +243,7 @@ std::list<std::string> TempFiles; std::list<std::string> ResultFiles; - /// \brief Cache of all the ToolChains in use by the driver. + /// Cache of all the ToolChains in use by the driver. /// /// This maps from the string representation of a triple to a ToolChain /// created targeting that triple. The driver owns all the ToolChain objects @@ -267,7 +267,7 @@ void generatePrefixedToolNames(StringRef Tool, const ToolChain &TC, SmallVectorImpl<std::string> &Names) const; - /// \brief Find the appropriate .crash diagonostic file for the child crash + /// Find the appropriate .crash diagonostic file for the child crash /// under this driver and copy it out to a temporary destination with the /// other reproducer related files (.sh, .cache, etc). If not found, suggest a /// directory for the user to look at. @@ -309,12 +309,12 @@ const std::string &getTitle() { return DriverTitle; } void setTitle(std::string Value) { DriverTitle = std::move(Value); } - /// \brief Get the path to the main clang executable. + /// Get the path to the main clang executable. const char *getClangProgramPath() const { return ClangExecutable.c_str(); } - /// \brief Get the path to where the clang executable was installed. + /// Get the path to where the clang executable was installed. const char *getInstalledDir() const { if (!InstalledDir.empty()) return InstalledDir.c_str(); @@ -540,7 +540,7 @@ /// compilation based on which -f(no-)?lto(=.*)? option occurs last. void setLTOMode(const llvm::opt::ArgList &Args); - /// \brief Retrieves a ToolChain for a particular \p Target triple. + /// Retrieves a ToolChain for a particular \p Target triple. /// /// Will cache ToolChains for the life of the driver object, and create them /// on-demand. @@ -549,7 +549,7 @@ /// @} - /// \brief Get bitmasks for which option flags to include and exclude based on + /// Get bitmasks for which option flags to include and exclude based on /// the driver mode. std::pair<unsigned, unsigned> getIncludeExcludeOptionFlagMasks() const; Index: cfe/trunk/include/clang/Driver/Job.h =================================================================== --- cfe/trunk/include/clang/Driver/Job.h +++ cfe/trunk/include/clang/Driver/Job.h @@ -116,7 +116,7 @@ InputFileList = std::move(List); } - /// \brief Sets the environment to be used by the new process. + /// Sets the environment to be used by the new process. /// \param NewEnvironment An array of environment variables. /// \remark If the environment remains unset, then the environment /// from the parent process will be used. Index: cfe/trunk/include/clang/Driver/Multilib.h =================================================================== --- cfe/trunk/include/clang/Driver/Multilib.h +++ cfe/trunk/include/clang/Driver/Multilib.h @@ -40,7 +40,7 @@ Multilib(StringRef GCCSuffix = {}, StringRef OSSuffix = {}, StringRef IncludeSuffix = {}); - /// \brief Get the detected GCC installation path suffix for the multi-arch + /// Get the detected GCC installation path suffix for the multi-arch /// target variant. Always starts with a '/', unless empty const std::string &gccSuffix() const { assert(GCCSuffix.empty() || @@ -51,7 +51,7 @@ /// Set the GCC installation path suffix. Multilib &gccSuffix(StringRef S); - /// \brief Get the detected os path suffix for the multi-arch + /// Get the detected os path suffix for the multi-arch /// target variant. Always starts with a '/', unless empty const std::string &osSuffix() const { assert(OSSuffix.empty() || @@ -62,7 +62,7 @@ /// Set the os path suffix. Multilib &osSuffix(StringRef S); - /// \brief Get the include directory suffix. Always starts with a '/', unless + /// Get the include directory suffix. Always starts with a '/', unless /// empty const std::string &includeSuffix() const { assert(IncludeSuffix.empty() || @@ -73,7 +73,7 @@ /// Set the include directory suffix Multilib &includeSuffix(StringRef S); - /// \brief Get the flags that indicate or contraindicate this multilib's use + /// Get the flags that indicate or contraindicate this multilib's use /// All elements begin with either '+' or '-' const flags_list &flags() const { return Flags; } flags_list &flags() { return Flags; } @@ -92,7 +92,7 @@ } LLVM_DUMP_METHOD void dump() const; - /// \brief print summary of the Multilib + /// print summary of the Multilib void print(raw_ostream &OS) const; /// Check whether any of the 'against' flags contradict the 'for' flags. Index: cfe/trunk/include/clang/Driver/Tool.h =================================================================== --- cfe/trunk/include/clang/Driver/Tool.h +++ cfe/trunk/include/clang/Driver/Tool.h @@ -88,12 +88,12 @@ virtual bool hasIntegratedCPP() const = 0; virtual bool isLinkJob() const { return false; } virtual bool isDsymutilJob() const { return false; } - /// \brief Returns the level of support for response files of this tool, + /// Returns the level of support for response files of this tool, /// whether it accepts arguments to be passed via a file on disk. ResponseFileSupport getResponseFilesSupport() const { return ResponseSupport; } - /// \brief Returns which encoding the response file should use. This is only + /// Returns which encoding the response file should use. This is only /// relevant on Windows platforms where there are different encodings being /// accepted for different tools. On UNIX, UTF8 is universal. /// @@ -108,11 +108,11 @@ llvm::sys::WindowsEncodingMethod getResponseFileEncoding() const { return ResponseEncoding; } - /// \brief Returns which prefix to use when passing the name of a response + /// Returns which prefix to use when passing the name of a response /// file as a parameter to this tool. const char *getResponseFileFlag() const { return ResponseFlag; } - /// \brief Does this tool have "good" standardized diagnostics, or should the + /// Does this tool have "good" standardized diagnostics, or should the /// driver add an additional "command failed" diagnostic on failures. virtual bool hasGoodDiagnostics() const { return false; } Index: cfe/trunk/include/clang/Driver/ToolChain.h =================================================================== --- cfe/trunk/include/clang/Driver/ToolChain.h +++ cfe/trunk/include/clang/Driver/ToolChain.h @@ -201,7 +201,7 @@ StringRef getPlatform() const { return Triple.getVendorName(); } StringRef getOS() const { return Triple.getOSName(); } - /// \brief Provide the default architecture name (as expected by -arch) for + /// Provide the default architecture name (as expected by -arch) for /// this toolchain. StringRef getDefaultUniversalArchName() const; @@ -233,7 +233,7 @@ // Returns the RTTIMode for the toolchain with the current arguments. RTTIMode getRTTIMode() const { return CachedRTTIMode; } - /// \brief Return any implicit target and/or mode flag for an invocation of + /// Return any implicit target and/or mode flag for an invocation of /// the compiler driver as `ProgName`. /// /// For example, when called with i686-linux-android-g++, the first element @@ -287,7 +287,7 @@ /// the linker suffix or name. std::string GetLinkerPath() const; - /// \brief Dispatch to the specific toolchain for verbose printing. + /// Dispatch to the specific toolchain for verbose printing. /// /// This is used when handling the verbose option to print detailed, /// toolchain-specific information useful for understanding the behavior of @@ -296,7 +296,7 @@ // Platform defaults information - /// \brief Returns true if the toolchain is targeting a non-native + /// Returns true if the toolchain is targeting a non-native /// architecture. virtual bool isCrossCompiling() const; @@ -315,7 +315,7 @@ /// by default. virtual bool IsIntegratedAssemblerDefault() const { return false; } - /// \brief Check if the toolchain should use the integrated assembler. + /// Check if the toolchain should use the integrated assembler. virtual bool useIntegratedAs() const; /// IsMathErrnoDefault - Does this tool chain use -fmath-errno by default. @@ -333,7 +333,7 @@ /// mixed dispatch method be used? virtual bool UseObjCMixedDispatch() const { return false; } - /// \brief Check whether to enable x86 relax relocations by default. + /// Check whether to enable x86 relax relocations by default. virtual bool useRelaxRelocations() const; /// GetDefaultStackProtectorLevel - Get the default stack protector level for @@ -378,13 +378,13 @@ /// by default. virtual bool IsUnwindTablesDefault(const llvm::opt::ArgList &Args) const; - /// \brief Test whether this toolchain defaults to PIC. + /// Test whether this toolchain defaults to PIC. virtual bool isPICDefault() const = 0; - /// \brief Test whether this toolchain defaults to PIE. + /// Test whether this toolchain defaults to PIE. virtual bool isPIEDefault() const = 0; - /// \brief Tests whether this toolchain forces its default for PIC, PIE or + /// Tests whether this toolchain forces its default for PIC, PIE or /// non-PIC. If this returns true, any PIC related flags should be ignored /// and instead the results of \c isPICDefault() and \c isPIEDefault() are /// used exclusively. @@ -456,7 +456,7 @@ /// FIXME: this really belongs on some sort of DeploymentTarget abstraction virtual bool hasBlocksRuntime() const { return true; } - /// \brief Add the clang cc1 arguments for system include paths. + /// Add the clang cc1 arguments for system include paths. /// /// This routine is responsible for adding the necessary cc1 arguments to /// include headers from standard system header directories. @@ -464,12 +464,12 @@ AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const; - /// \brief Add options that need to be passed to cc1 for this target. + /// Add options that need to be passed to cc1 for this target. virtual void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, Action::OffloadKind DeviceOffloadKind) const; - /// \brief Add warning options that need to be passed to cc1 for this target. + /// Add warning options that need to be passed to cc1 for this target. virtual void addClangWarningOptions(llvm::opt::ArgStringList &CC1Args) const; // GetRuntimeLibType - Determine the runtime library type to use with the @@ -517,22 +517,22 @@ virtual void addProfileRTLibs(const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const; - /// \brief Add arguments to use system-specific CUDA includes. + /// Add arguments to use system-specific CUDA includes. virtual void AddCudaIncludeArgs(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const; - /// \brief Add arguments to use MCU GCC toolchain includes. + /// Add arguments to use MCU GCC toolchain includes. virtual void AddIAMCUIncludeArgs(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const; - /// \brief On Windows, returns the MSVC compatibility version. + /// On Windows, returns the MSVC compatibility version. virtual VersionTuple computeMSVCVersion(const Driver *D, const llvm::opt::ArgList &Args) const; - /// \brief Return sanitizers which are available in this toolchain. + /// Return sanitizers which are available in this toolchain. virtual SanitizerMask getSupportedSanitizers() const; - /// \brief Return sanitizers which are enabled by default. + /// Return sanitizers which are enabled by default. virtual SanitizerMask getDefaultSanitizers() const { return 0; } }; Index: cfe/trunk/include/clang/Edit/EditsReceiver.h =================================================================== --- cfe/trunk/include/clang/Edit/EditsReceiver.h +++ cfe/trunk/include/clang/Edit/EditsReceiver.h @@ -24,7 +24,7 @@ virtual void insert(SourceLocation loc, StringRef text) = 0; virtual void replace(CharSourceRange range, StringRef text) = 0; - /// \brief By default it calls replace with an empty string. + /// By default it calls replace with an empty string. virtual void remove(CharSourceRange range); }; Index: cfe/trunk/include/clang/Format/Format.h =================================================================== --- cfe/trunk/include/clang/Format/Format.h +++ cfe/trunk/include/clang/Format/Format.h @@ -41,27 +41,27 @@ const std::error_category &getParseCategory(); std::error_code make_error_code(ParseError e); -/// \brief The ``FormatStyle`` is used to configure the formatting to follow +/// The ``FormatStyle`` is used to configure the formatting to follow /// specific guidelines. struct FormatStyle { - /// \brief The extra indent or outdent of access modifiers, e.g. ``public:``. + /// The extra indent or outdent of access modifiers, e.g. ``public:``. int AccessModifierOffset; - /// \brief Different styles for aligning after open brackets. + /// Different styles for aligning after open brackets. enum BracketAlignmentStyle { - /// \brief Align parameters on the open bracket, e.g.: + /// Align parameters on the open bracket, e.g.: /// \code /// someLongFunction(argument1, /// argument2); /// \endcode BAS_Align, - /// \brief Don't align, instead use ``ContinuationIndentWidth``, e.g.: + /// Don't align, instead use ``ContinuationIndentWidth``, e.g.: /// \code /// someLongFunction(argument1, /// argument2); /// \endcode BAS_DontAlign, - /// \brief Always break after an open bracket, if the parameters don't fit + /// Always break after an open bracket, if the parameters don't fit /// on a single line, e.g.: /// \code /// someLongFunction( @@ -70,13 +70,13 @@ BAS_AlwaysBreak, }; - /// \brief If ``true``, horizontally aligns arguments after an open bracket. + /// If ``true``, horizontally aligns arguments after an open bracket. /// /// This applies to round brackets (parentheses), angle brackets and square /// brackets. BracketAlignmentStyle AlignAfterOpenBracket; - /// \brief If ``true``, aligns consecutive assignments. + /// If ``true``, aligns consecutive assignments. /// /// This will align the assignment operators of consecutive lines. This /// will result in formattings like @@ -87,7 +87,7 @@ /// \endcode bool AlignConsecutiveAssignments; - /// \brief If ``true``, aligns consecutive declarations. + /// If ``true``, aligns consecutive declarations. /// /// This will align the declaration names of consecutive lines. This /// will result in formattings like @@ -98,9 +98,9 @@ /// \endcode bool AlignConsecutiveDeclarations; - /// \brief Different styles for aligning escaped newlines. + /// Different styles for aligning escaped newlines. enum EscapedNewlineAlignmentStyle { - /// \brief Don't align escaped newlines. + /// Don't align escaped newlines. /// \code /// #define A \ /// int aaaa; \ @@ -108,7 +108,7 @@ /// int dddddddddd; /// \endcode ENAS_DontAlign, - /// \brief Align escaped newlines as far left as possible. + /// Align escaped newlines as far left as possible. /// \code /// true: /// #define A \ @@ -119,7 +119,7 @@ /// false: /// \endcode ENAS_Left, - /// \brief Align escaped newlines in the right-most column. + /// Align escaped newlines in the right-most column. /// \code /// #define A \ /// int aaaa; \ @@ -129,10 +129,10 @@ ENAS_Right, }; - /// \brief Options for aligning backslashes in escaped newlines. + /// Options for aligning backslashes in escaped newlines. EscapedNewlineAlignmentStyle AlignEscapedNewlines; - /// \brief If ``true``, horizontally align operands of binary and ternary + /// If ``true``, horizontally align operands of binary and ternary /// expressions. /// /// Specifically, this aligns operands of a single expression that needs to be @@ -143,7 +143,7 @@ /// \endcode bool AlignOperands; - /// \brief If ``true``, aligns trailing comments. + /// If ``true``, aligns trailing comments. /// \code /// true: false: /// int a; // My comment a vs. int a; // My comment a @@ -151,7 +151,7 @@ /// \endcode bool AlignTrailingComments; - /// \brief If the function declaration doesn't fit on a line, + /// If the function declaration doesn't fit on a line, /// allow putting all parameters of a function declaration onto /// the next line even if ``BinPackParameters`` is ``false``. /// \code @@ -168,12 +168,12 @@ /// \endcode bool AllowAllParametersOfDeclarationOnNextLine; - /// \brief Allows contracting simple braced statements to a single line. + /// Allows contracting simple braced statements to a single line. /// /// E.g., this allows ``if (a) { return; }`` to be put on a single line. bool AllowShortBlocksOnASingleLine; - /// \brief If ``true``, short case labels will be contracted to a single line. + /// If ``true``, short case labels will be contracted to a single line. /// \code /// true: false: /// switch (a) { vs. switch (a) { @@ -186,12 +186,12 @@ /// \endcode bool AllowShortCaseLabelsOnASingleLine; - /// \brief Different styles for merging short functions containing at most one + /// Different styles for merging short functions containing at most one /// statement. enum ShortFunctionStyle { - /// \brief Never merge functions into a single line. + /// Never merge functions into a single line. SFS_None, - /// \brief Only merge functions defined inside a class. Same as "inline", + /// Only merge functions defined inside a class. Same as "inline", /// except it does not implies "empty": i.e. top level empty functions /// are not merged either. /// \code @@ -205,7 +205,7 @@ /// } /// \endcode SFS_InlineOnly, - /// \brief Only merge empty functions. + /// Only merge empty functions. /// \code /// void f() {} /// void f2() { @@ -213,7 +213,7 @@ /// } /// \endcode SFS_Empty, - /// \brief Only merge functions defined inside a class. Implies "empty". + /// Only merge functions defined inside a class. Implies "empty". /// \code /// class Foo { /// void f() { foo(); } @@ -224,7 +224,7 @@ /// void f() {} /// \endcode SFS_Inline, - /// \brief Merge all functions fitting on a single line. + /// Merge all functions fitting on a single line. /// \code /// class Foo { /// void f() { foo(); } @@ -234,18 +234,18 @@ SFS_All, }; - /// \brief Dependent on the value, ``int f() { return 0; }`` can be put on a + /// Dependent on the value, ``int f() { return 0; }`` can be put on a /// single line. ShortFunctionStyle AllowShortFunctionsOnASingleLine; - /// \brief If ``true``, ``if (a) return;`` can be put on a single line. + /// If ``true``, ``if (a) return;`` can be put on a single line. bool AllowShortIfStatementsOnASingleLine; - /// \brief If ``true``, ``while (true) continue;`` can be put on a single + /// If ``true``, ``while (true) continue;`` can be put on a single /// line. bool AllowShortLoopsOnASingleLine; - /// \brief Different ways to break after the function definition return type. + /// Different ways to break after the function definition return type. /// This option is **deprecated** and is retained for backwards compatibility. enum DefinitionReturnTypeBreakingStyle { /// Break after return type automatically. @@ -257,7 +257,7 @@ DRTBS_TopLevel, }; - /// \brief Different ways to break after the function definition or + /// Different ways to break after the function definition or /// declaration return type. enum ReturnTypeBreakingStyle { /// Break after return type automatically. @@ -328,14 +328,14 @@ RTBS_TopLevelDefinitions, }; - /// \brief The function definition return type breaking style to use. This + /// The function definition return type breaking style to use. This /// option is **deprecated** and is retained for backwards compatibility. DefinitionReturnTypeBreakingStyle AlwaysBreakAfterDefinitionReturnType; - /// \brief The function declaration return type breaking style to use. + /// The function declaration return type breaking style to use. ReturnTypeBreakingStyle AlwaysBreakAfterReturnType; - /// \brief If ``true``, always break before multiline string literals. + /// If ``true``, always break before multiline string literals. /// /// This flag is mean to make cases where there are multiple multiline strings /// in a file look more consistent. Thus, it will only take effect if wrapping @@ -349,7 +349,7 @@ /// \endcode bool AlwaysBreakBeforeMultilineStrings; - /// \brief If ``true``, always break after the ``template<...>`` of a template + /// If ``true``, always break after the ``template<...>`` of a template /// declaration. /// \code /// true: false: @@ -358,7 +358,7 @@ /// \endcode bool AlwaysBreakTemplateDeclarations; - /// \brief If ``false``, a function call's arguments will either be all on the + /// If ``false``, a function call's arguments will either be all on the /// same line or will have one line each. /// \code /// true: @@ -376,7 +376,7 @@ /// \endcode bool BinPackArguments; - /// \brief If ``false``, a function declaration's or function definition's + /// If ``false``, a function declaration's or function definition's /// parameters will either all be on the same line or will have one line each. /// \code /// true: @@ -390,7 +390,7 @@ /// \endcode bool BinPackParameters; - /// \brief The style of wrapping parameters on the same line (bin-packed) or + /// The style of wrapping parameters on the same line (bin-packed) or /// on one line each. enum BinPackStyle { /// Automatically determine parameter bin-packing behavior. @@ -401,7 +401,7 @@ BPS_Never, }; - /// \brief The style of breaking before or after binary operators. + /// The style of breaking before or after binary operators. enum BinaryOperatorStyle { /// Break after operators. /// \code @@ -441,10 +441,10 @@ BOS_All, }; - /// \brief The way to wrap binary operators. + /// The way to wrap binary operators. BinaryOperatorStyle BreakBeforeBinaryOperators; - /// \brief Different ways to attach braces to their surrounding context. + /// Different ways to attach braces to their surrounding context. enum BraceBreakingStyle { /// Always attach braces to surrounding context. /// \code @@ -579,10 +579,10 @@ BS_Custom }; - /// \brief The brace breaking style to use. + /// The brace breaking style to use. BraceBreakingStyle BreakBeforeBraces; - /// \brief Precise control over the wrapping of braces. + /// Precise control over the wrapping of braces. /// \code /// # Should be declared this way: /// BreakBeforeBraces: Custom @@ -590,7 +590,7 @@ /// AfterClass: true /// \endcode struct BraceWrappingFlags { - /// \brief Wrap class definitions. + /// Wrap class definitions. /// \code /// true: /// class foo {}; @@ -600,7 +600,7 @@ /// {}; /// \endcode bool AfterClass; - /// \brief Wrap control statements (``if``/``for``/``while``/``switch``/..). + /// Wrap control statements (``if``/``for``/``while``/``switch``/..). /// \code /// true: /// if (foo()) @@ -618,7 +618,7 @@ /// } /// \endcode bool AfterControlStatement; - /// \brief Wrap enum definitions. + /// Wrap enum definitions. /// \code /// true: /// enum X : int @@ -630,7 +630,7 @@ /// enum X : int { B }; /// \endcode bool AfterEnum; - /// \brief Wrap function definitions. + /// Wrap function definitions. /// \code /// true: /// void foo() @@ -646,7 +646,7 @@ /// } /// \endcode bool AfterFunction; - /// \brief Wrap namespace definitions. + /// Wrap namespace definitions. /// \code /// true: /// namespace @@ -662,11 +662,11 @@ /// } /// \endcode bool AfterNamespace; - /// \brief Wrap ObjC definitions (interfaces, implementations...). + /// Wrap ObjC definitions (interfaces, implementations...). /// \note @autoreleasepool and @synchronized blocks are wrapped /// according to `AfterControlStatement` flag. bool AfterObjCDeclaration; - /// \brief Wrap struct definitions. + /// Wrap struct definitions. /// \code /// true: /// struct foo @@ -680,7 +680,7 @@ /// }; /// \endcode bool AfterStruct; - /// \brief Wrap union definitions. + /// Wrap union definitions. /// \code /// true: /// union foo @@ -694,7 +694,7 @@ /// } /// \endcode bool AfterUnion; - /// \brief Wrap extern blocks. + /// Wrap extern blocks. /// \code /// true: /// extern "C" @@ -708,7 +708,7 @@ /// } /// \endcode bool AfterExternBlock; - /// \brief Wrap before ``catch``. + /// Wrap before ``catch``. /// \code /// true: /// try { @@ -724,7 +724,7 @@ /// } /// \endcode bool BeforeCatch; - /// \brief Wrap before ``else``. + /// Wrap before ``else``. /// \code /// true: /// if (foo()) { @@ -738,9 +738,9 @@ /// } /// \endcode bool BeforeElse; - /// \brief Indent the wrapped braces themselves. + /// Indent the wrapped braces themselves. bool IndentBraces; - /// \brief If ``false``, empty function body can be put on a single line. + /// If ``false``, empty function body can be put on a single line. /// This option is used only if the opening brace of the function has /// already been wrapped, i.e. the `AfterFunction` brace wrapping mode is /// set, and the function could/should not be put on a single line (as per @@ -752,7 +752,7 @@ /// \endcode /// bool SplitEmptyFunction; - /// \brief If ``false``, empty record (e.g. class, struct or union) body + /// If ``false``, empty record (e.g. class, struct or union) body /// can be put on a single line. This option is used only if the opening /// brace of the record has already been wrapped, i.e. the `AfterClass` /// (for classes) brace wrapping mode is set. @@ -763,7 +763,7 @@ /// \endcode /// bool SplitEmptyRecord; - /// \brief If ``false``, empty namespace body can be put on a single line. + /// If ``false``, empty namespace body can be put on a single line. /// This option is used only if the opening brace of the namespace has /// already been wrapped, i.e. the `AfterNamespace` brace wrapping mode is /// set. @@ -776,7 +776,7 @@ bool SplitEmptyNamespace; }; - /// \brief Control of individual brace wrapping cases. + /// Control of individual brace wrapping cases. /// /// If ``BreakBeforeBraces`` is set to ``BS_Custom``, use this to specify how /// each individual brace case should be handled. Otherwise, this is ignored. @@ -790,7 +790,7 @@ /// \endcode BraceWrappingFlags BraceWrapping; - /// \brief If ``true``, ternary operators will be placed after line breaks. + /// If ``true``, ternary operators will be placed after line breaks. /// \code /// true: /// veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongDescription @@ -804,7 +804,7 @@ /// \endcode bool BreakBeforeTernaryOperators; - /// \brief Different ways to break initializers. + /// Different ways to break initializers. enum BreakConstructorInitializersStyle { /// Break constructor initializers before the colon and after the commas. /// \code @@ -830,10 +830,10 @@ BCIS_AfterColon }; - /// \brief The constructor initializers style to use. + /// The constructor initializers style to use. BreakConstructorInitializersStyle BreakConstructorInitializers; - /// \brief Break after each annotation on a field in Java files. + /// Break after each annotation on a field in Java files. /// \code{.java} /// true: false: /// @Partial vs. @Partial @Mock DataLoad loader; @@ -842,17 +842,17 @@ /// \endcode bool BreakAfterJavaFieldAnnotations; - /// \brief Allow breaking string literals when formatting. + /// Allow breaking string literals when formatting. bool BreakStringLiterals; - /// \brief The column limit. + /// The column limit. /// /// A column limit of ``0`` means that there is no column limit. In this case, /// clang-format will respect the input's line breaking decisions within /// statements unless they contradict other rules. unsigned ColumnLimit; - /// \brief A regular expression that describes comments with special meaning, + /// A regular expression that describes comments with special meaning, /// which should not be split into lines or otherwise changed. /// \code /// // CommentPragmas: '^ FOOBAR pragma:' @@ -861,7 +861,7 @@ /// \endcode std::string CommentPragmas; - /// \brief If ``true``, in the class inheritance expression clang-format will + /// If ``true``, in the class inheritance expression clang-format will /// break before ``:`` and ``,`` if there is multiple inheritance. /// \code /// true: false: @@ -872,7 +872,7 @@ /// \endcode bool BreakBeforeInheritanceComma; - /// \brief If ``true``, consecutive namespace declarations will be on the same + /// If ``true``, consecutive namespace declarations will be on the same /// line. If ``false``, each namespace is declared on a new line. /// \code /// true: @@ -895,7 +895,7 @@ /// \endcode bool CompactNamespaces; - /// \brief If the constructor initializers don't fit on a line, put each + /// If the constructor initializers don't fit on a line, put each /// initializer on its own line. /// \code /// true: @@ -913,11 +913,11 @@ /// \endcode bool ConstructorInitializerAllOnOneLineOrOnePerLine; - /// \brief The number of characters to use for indentation of constructor + /// The number of characters to use for indentation of constructor /// initializer lists. unsigned ConstructorInitializerIndentWidth; - /// \brief Indent width for line continuations. + /// Indent width for line continuations. /// \code /// ContinuationIndentWidth: 2 /// @@ -927,7 +927,7 @@ /// \endcode unsigned ContinuationIndentWidth; - /// \brief If ``true``, format braced lists as best suited for C++11 braced + /// If ``true``, format braced lists as best suited for C++11 braced /// lists. /// /// Important differences: @@ -949,17 +949,17 @@ /// \endcode bool Cpp11BracedListStyle; - /// \brief If ``true``, analyze the formatted file for the most common + /// If ``true``, analyze the formatted file for the most common /// alignment of ``&`` and ``*``. /// Pointer and reference alignment styles are going to be updated according /// to the preferences found in the file. /// ``PointerAlignment`` is then used only as fallback. bool DerivePointerAlignment; - /// \brief Disables formatting completely. + /// Disables formatting completely. bool DisableFormat; - /// \brief If ``true``, clang-format detects whether function calls and + /// If ``true``, clang-format detects whether function calls and /// definitions are formatted with one parameter per line. /// /// Each call can be bin-packed, one-per-line or inconclusive. If it is @@ -971,7 +971,7 @@ /// not use this in config files, etc. Use at your own risk. bool ExperimentalAutoDetectBinPacking; - /// \brief If ``true``, clang-format adds missing namespace end comments and + /// If ``true``, clang-format adds missing namespace end comments and /// fixes invalid existing ones. /// \code /// true: false: @@ -981,7 +981,7 @@ /// \endcode bool FixNamespaceComments; - /// \brief A vector of macros that should be interpreted as foreach loops + /// A vector of macros that should be interpreted as foreach loops /// instead of as function calls. /// /// These are expected to be macros of the form: @@ -998,9 +998,9 @@ /// For example: BOOST_FOREACH. std::vector<std::string> ForEachMacros; - /// \brief Styles for sorting multiple ``#include`` blocks. + /// Styles for sorting multiple ``#include`` blocks. enum IncludeBlocksStyle { - /// \brief Sort each ``#include`` block separately. + /// Sort each ``#include`` block separately. /// \code /// #include "b.h" into #include "b.h" /// @@ -1008,7 +1008,7 @@ /// #include "a.h" #include <lib/main.h> /// \endcode IBS_Preserve, - /// \brief Merge multiple ``#include`` blocks together and sort as one. + /// Merge multiple ``#include`` blocks together and sort as one. /// \code /// #include "b.h" into #include "a.h" /// #include "b.h" @@ -1016,7 +1016,7 @@ /// #include "a.h" /// \endcode IBS_Merge, - /// \brief Merge multiple ``#include`` blocks together and sort as one. + /// Merge multiple ``#include`` blocks together and sort as one. /// Then split into groups based on category priority. See /// ``IncludeCategories``. /// \code @@ -1028,22 +1028,22 @@ IBS_Regroup, }; - /// \brief Dependent on the value, multiple ``#include`` blocks can be sorted + /// Dependent on the value, multiple ``#include`` blocks can be sorted /// as one and divided based on category. IncludeBlocksStyle IncludeBlocks; - /// \brief See documentation of ``IncludeCategories``. + /// See documentation of ``IncludeCategories``. struct IncludeCategory { - /// \brief The regular expression that this category matches. + /// The regular expression that this category matches. std::string Regex; - /// \brief The priority to assign to this category. + /// The priority to assign to this category. int Priority; bool operator==(const IncludeCategory &Other) const { return Regex == Other.Regex && Priority == Other.Priority; } }; - /// \brief Regular expressions denoting the different ``#include`` categories + /// Regular expressions denoting the different ``#include`` categories /// used for ordering ``#includes``. /// /// These regular expressions are matched against the filename of an include @@ -1071,7 +1071,7 @@ /// \endcode std::vector<IncludeCategory> IncludeCategories; - /// \brief Specify a regular expression of suffixes that are allowed in the + /// Specify a regular expression of suffixes that are allowed in the /// file-to-main-include mapping. /// /// When guessing whether a #include is the "main" include (to assign @@ -1084,7 +1084,7 @@ /// as the "main" include in both a.cc and a_test.cc. std::string IncludeIsMainRegex; - /// \brief Indent case labels one level from the switch statement. + /// Indent case labels one level from the switch statement. /// /// When ``false``, use the same indentation level as for the switch statement. /// Switch statement body is always indented one level more than case labels. @@ -1100,7 +1100,7 @@ /// \endcode bool IndentCaseLabels; - /// \brief Options for indenting preprocessor directives. + /// Options for indenting preprocessor directives. enum PPDirectiveIndentStyle { /// Does not indent any directives. /// \code @@ -1122,10 +1122,10 @@ PPDIS_AfterHash }; - /// \brief The preprocessor directive indenting style to use. + /// The preprocessor directive indenting style to use. PPDirectiveIndentStyle IndentPPDirectives; - /// \brief The number of columns to use for indentation. + /// The number of columns to use for indentation. /// \code /// IndentWidth: 3 /// @@ -1138,7 +1138,7 @@ /// \endcode unsigned IndentWidth; - /// \brief Indent if a function definition or declaration is wrapped after the + /// Indent if a function definition or declaration is wrapped after the /// type. /// \code /// true: @@ -1151,7 +1151,7 @@ /// \endcode bool IndentWrappedFunctionNames; - /// \brief Quotation styles for JavaScript strings. Does not affect template + /// Quotation styles for JavaScript strings. Does not affect template /// strings. enum JavaScriptQuoteStyle { /// Leave string quotes as they are. @@ -1174,10 +1174,10 @@ JSQS_Double }; - /// \brief The JavaScriptQuoteStyle to use for JavaScript strings. + /// The JavaScriptQuoteStyle to use for JavaScript strings. JavaScriptQuoteStyle JavaScriptQuotes; - /// \brief Whether to wrap JavaScript import/export statements. + /// Whether to wrap JavaScript import/export statements. /// \code{.js} /// true: /// import { @@ -1191,7 +1191,7 @@ /// \endcode bool JavaScriptWrapImports; - /// \brief If true, the empty line at the start of blocks is kept. + /// If true, the empty line at the start of blocks is kept. /// \code /// true: false: /// if (foo) { vs. if (foo) { @@ -1201,7 +1201,7 @@ /// \endcode bool KeepEmptyLinesAtTheStartOfBlocks; - /// \brief Supported languages. + /// Supported languages. /// /// When stored in a configuration file, specifies the language, that the /// configuration targets. When passed to the ``reformat()`` function, enables @@ -1228,10 +1228,10 @@ }; bool isCpp() const { return Language == LK_Cpp || Language == LK_ObjC; } - /// \brief Language, this format style is targeted at. + /// Language, this format style is targeted at. LanguageKind Language; - /// \brief A regular expression matching macros that start a block. + /// A regular expression matching macros that start a block. /// \code /// # With: /// MacroBlockBegin: "^NS_MAP_BEGIN|\ @@ -1259,10 +1259,10 @@ /// \endcode std::string MacroBlockBegin; - /// \brief A regular expression matching macros that end a block. + /// A regular expression matching macros that end a block. std::string MacroBlockEnd; - /// \brief The maximum number of consecutive empty lines to keep. + /// The maximum number of consecutive empty lines to keep. /// \code /// MaxEmptyLinesToKeep: 1 vs. MaxEmptyLinesToKeep: 0 /// int f() { int f() { @@ -1275,7 +1275,7 @@ /// \endcode unsigned MaxEmptyLinesToKeep; - /// \brief Different ways to indent namespace contents. + /// Different ways to indent namespace contents. enum NamespaceIndentationKind { /// Don't indent in namespaces. /// \code @@ -1309,10 +1309,10 @@ NI_All }; - /// \brief The indentation used for namespaces. + /// The indentation used for namespaces. NamespaceIndentationKind NamespaceIndentation; - /// \brief Controls bin-packing Objective-C protocol conformance list + /// Controls bin-packing Objective-C protocol conformance list /// items into as few lines as possible when they go over ``ColumnLimit``. /// /// If ``Auto`` (the default), delegates to the value in @@ -1344,7 +1344,7 @@ /// \endcode BinPackStyle ObjCBinPackProtocolList; - /// \brief The number of characters to use for indentation of ObjC blocks. + /// The number of characters to use for indentation of ObjC blocks. /// \code{.objc} /// ObjCBlockIndentWidth: 4 /// @@ -1354,37 +1354,37 @@ /// \endcode unsigned ObjCBlockIndentWidth; - /// \brief Add a space after ``@property`` in Objective-C, i.e. use + /// Add a space after ``@property`` in Objective-C, i.e. use /// ``@property (readonly)`` instead of ``@property(readonly)``. bool ObjCSpaceAfterProperty; - /// \brief Add a space in front of an Objective-C protocol list, i.e. use + /// Add a space in front of an Objective-C protocol list, i.e. use /// ``Foo <Protocol>`` instead of ``Foo<Protocol>``. bool ObjCSpaceBeforeProtocolList; - /// \brief The penalty for breaking around an assignment operator. + /// The penalty for breaking around an assignment operator. unsigned PenaltyBreakAssignment; - /// \brief The penalty for breaking a function call after ``call(``. + /// The penalty for breaking a function call after ``call(``. unsigned PenaltyBreakBeforeFirstCallParameter; - /// \brief The penalty for each line break introduced inside a comment. + /// The penalty for each line break introduced inside a comment. unsigned PenaltyBreakComment; - /// \brief The penalty for breaking before the first ``<<``. + /// The penalty for breaking before the first ``<<``. unsigned PenaltyBreakFirstLessLess; - /// \brief The penalty for each line break introduced inside a string literal. + /// The penalty for each line break introduced inside a string literal. unsigned PenaltyBreakString; - /// \brief The penalty for each character outside of the column limit. + /// The penalty for each character outside of the column limit. unsigned PenaltyExcessCharacter; - /// \brief Penalty for putting the return type of a function onto its own + /// Penalty for putting the return type of a function onto its own /// line. unsigned PenaltyReturnTypeOnItsOwnLine; - /// \brief The ``&`` and ``*`` alignment style. + /// The ``&`` and ``*`` alignment style. enum PointerAlignmentStyle { /// Align pointer to the left. /// \code @@ -1403,20 +1403,20 @@ PAS_Middle }; - /// \brief Pointer and reference alignment style. + /// Pointer and reference alignment style. PointerAlignmentStyle PointerAlignment; /// See documentation of ``RawStringFormats``. struct RawStringFormat { - /// \brief The language of this raw string. + /// The language of this raw string. LanguageKind Language; - /// \brief A list of raw string delimiters that match this language. + /// A list of raw string delimiters that match this language. std::vector<std::string> Delimiters; - /// \brief A list of enclosing function names that match this language. + /// A list of enclosing function names that match this language. std::vector<std::string> EnclosingFunctions; - /// \brief The canonical delimiter for this language. + /// The canonical delimiter for this language. std::string CanonicalDelimiter; - /// \brief The style name on which this raw string format is based on. + /// The style name on which this raw string format is based on. /// If not specified, the raw string format is based on the style that this /// format is based on. std::string BasedOnStyle; @@ -1428,7 +1428,7 @@ } }; - /// \brief Defines hints for detecting supported languages code blocks in raw + /// Defines hints for detecting supported languages code blocks in raw /// strings. /// /// A raw string with a matching delimiter or a matching enclosing function @@ -1465,7 +1465,7 @@ /// \endcode std::vector<RawStringFormat> RawStringFormats; - /// \brief If ``true``, clang-format will attempt to re-flow comments. + /// If ``true``, clang-format will attempt to re-flow comments. /// \code /// false: /// // veryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryLongComment with plenty of information @@ -1479,7 +1479,7 @@ /// \endcode bool ReflowComments; - /// \brief If ``true``, clang-format will sort ``#includes``. + /// If ``true``, clang-format will sort ``#includes``. /// \code /// false: true: /// #include "b.h" vs. #include "a.h" @@ -1487,7 +1487,7 @@ /// \endcode bool SortIncludes; - /// \brief If ``true``, clang-format will sort using declarations. + /// If ``true``, clang-format will sort using declarations. /// /// The order of using declarations is defined as follows: /// Split the strings by "::" and discard any initial empty strings. The last @@ -1503,21 +1503,21 @@ /// \endcode bool SortUsingDeclarations; - /// \brief If ``true``, a space is inserted after C style casts. + /// If ``true``, a space is inserted after C style casts. /// \code /// true: false: /// (int) i; vs. (int)i; /// \endcode bool SpaceAfterCStyleCast; - /// \brief If \c true, a space will be inserted after the 'template' keyword. + /// If \c true, a space will be inserted after the 'template' keyword. /// \code /// true: false: /// template <int> void foo(); vs. template<int> void foo(); /// \endcode bool SpaceAfterTemplateKeyword; - /// \brief If ``false``, spaces will be removed before assignment operators. + /// If ``false``, spaces will be removed before assignment operators. /// \code /// true: false: /// int a = 5; vs. int a=5; @@ -1525,7 +1525,7 @@ /// \endcode bool SpaceBeforeAssignmentOperators; - /// \brief If ``false``, spaces will be removed before constructor initializer + /// If ``false``, spaces will be removed before constructor initializer /// colon. /// \code /// true: false: @@ -1533,14 +1533,14 @@ /// \endcode bool SpaceBeforeCtorInitializerColon; - /// \brief If ``false``, spaces will be removed before inheritance colon. + /// If ``false``, spaces will be removed before inheritance colon. /// \code /// true: false: /// class Foo : Bar {} vs. class Foo: Bar {} /// \endcode bool SpaceBeforeInheritanceColon; - /// \brief Different ways to put a space before opening parentheses. + /// Different ways to put a space before opening parentheses. enum SpaceBeforeParensOptions { /// Never put a space before opening parentheses. /// \code @@ -1575,10 +1575,10 @@ SBPO_Always }; - /// \brief Defines in which cases to put a space before opening parentheses. + /// Defines in which cases to put a space before opening parentheses. SpaceBeforeParensOptions SpaceBeforeParens; - /// \brief If ``false``, spaces will be removed before range-based for loop + /// If ``false``, spaces will be removed before range-based for loop /// colon. /// \code /// true: false: @@ -1586,7 +1586,7 @@ /// \endcode bool SpaceBeforeRangeBasedForLoopColon; - /// \brief If ``true``, spaces may be inserted into ``()``. + /// If ``true``, spaces may be inserted into ``()``. /// \code /// true: false: /// void f( ) { vs. void f() { @@ -1598,7 +1598,7 @@ /// \endcode bool SpaceInEmptyParentheses; - /// \brief The number of spaces before trailing line comments + /// The number of spaces before trailing line comments /// (``//`` - comments). /// /// This does not affect trailing block comments (``/*`` - comments) as @@ -1614,7 +1614,7 @@ /// \endcode unsigned SpacesBeforeTrailingComments; - /// \brief If ``true``, spaces will be inserted after ``<`` and before ``>`` + /// If ``true``, spaces will be inserted after ``<`` and before ``>`` /// in template argument lists. /// \code /// true: false: @@ -1623,7 +1623,7 @@ /// \endcode bool SpacesInAngles; - /// \brief If ``true``, spaces are inserted inside container literals (e.g. + /// If ``true``, spaces are inserted inside container literals (e.g. /// ObjC and Javascript array and dict literals). /// \code{.js} /// true: false: @@ -1632,21 +1632,21 @@ /// \endcode bool SpacesInContainerLiterals; - /// \brief If ``true``, spaces may be inserted into C style casts. + /// If ``true``, spaces may be inserted into C style casts. /// \code /// true: false: /// x = ( int32 )y vs. x = (int32)y /// \endcode bool SpacesInCStyleCastParentheses; - /// \brief If ``true``, spaces will be inserted after ``(`` and before ``)``. + /// If ``true``, spaces will be inserted after ``(`` and before ``)``. /// \code /// true: false: /// t f( Deleted & ) & = delete; vs. t f(Deleted &) & = delete; /// \endcode bool SpacesInParentheses; - /// \brief If ``true``, spaces will be inserted after ``[`` and before ``]``. + /// If ``true``, spaces will be inserted after ``[`` and before ``]``. /// Lambdas or unspecified size array declarations will not be affected. /// \code /// true: false: @@ -1655,7 +1655,7 @@ /// \endcode bool SpacesInSquareBrackets; - /// \brief Supported language standards. + /// Supported language standards. enum LanguageStandard { /// Use C++03-compatible syntax. LS_Cpp03, @@ -1666,14 +1666,14 @@ LS_Auto }; - /// \brief Format compatible with this standard, e.g. use ``A<A<int> >`` + /// Format compatible with this standard, e.g. use ``A<A<int> >`` /// instead of ``A<A<int>>`` for ``LS_Cpp03``. LanguageStandard Standard; - /// \brief The number of columns used for tab stops. + /// The number of columns used for tab stops. unsigned TabWidth; - /// \brief Different ways to use tab in formatting. + /// Different ways to use tab in formatting. enum UseTabStyle { /// Never use tab. UT_Never, @@ -1686,7 +1686,7 @@ UT_Always }; - /// \brief The way to use tab characters in the resulting file. + /// The way to use tab characters in the resulting file. UseTabStyle UseTab; bool operator==(const FormatStyle &R) const { @@ -1822,36 +1822,36 @@ friend std::error_code parseConfiguration(StringRef Text, FormatStyle *Style); }; -/// \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 one of Google's style guides: +/// Returns a format style complying with one of Google's style guides: /// http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml. /// http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml. /// https://developers.google.com/protocol-buffers/docs/style. FormatStyle getGoogleStyle(FormatStyle::LanguageKind Language); -/// \brief Returns a format style complying with Chromium's style guide: +/// Returns a format style complying with Chromium's style guide: /// http://www.chromium.org/developers/coding-style. FormatStyle getChromiumStyle(FormatStyle::LanguageKind Language); -/// \brief Returns a format style complying with Mozilla's style guide: +/// Returns a format style complying with Mozilla's style guide: /// https://developer.mozilla.org/en-US/docs/Developer_Guide/Coding_Style. FormatStyle getMozillaStyle(); -/// \brief Returns a format style complying with Webkit's style guide: +/// Returns a format style complying with Webkit's style guide: /// http://www.webkit.org/coding/coding-style.html FormatStyle getWebKitStyle(); -/// \brief Returns a format style complying with GNU Coding Standards: +/// Returns a format style complying with GNU Coding Standards: /// http://www.gnu.org/prep/standards/standards.html FormatStyle getGNUStyle(); -/// \brief Returns style indicating formatting should be not applied at all. +/// Returns style indicating formatting should be not applied at all. FormatStyle getNoStyle(); -/// \brief Gets a predefined style for the specified language by name. +/// Gets a predefined style for the specified language by name. /// /// Currently supported names: LLVM, Google, Chromium, Mozilla. Names are /// compared case-insensitively. @@ -1860,7 +1860,7 @@ bool getPredefinedStyle(StringRef Name, FormatStyle::LanguageKind Language, FormatStyle *Style); -/// \brief Parse configuration from YAML-formatted text. +/// Parse configuration from YAML-formatted text. /// /// Style->Language is used to get the base style, if the ``BasedOnStyle`` /// option is present. @@ -1871,24 +1871,24 @@ /// document, are retained in \p Style. std::error_code parseConfiguration(StringRef Text, FormatStyle *Style); -/// \brief Gets configuration in a YAML string. +/// Gets configuration in a YAML string. std::string configurationAsText(const FormatStyle &Style); -/// \brief Returns the replacements necessary to sort all ``#include`` blocks +/// Returns the replacements necessary to sort all ``#include`` blocks /// that are affected by ``Ranges``. tooling::Replacements sortIncludes(const FormatStyle &Style, StringRef Code, ArrayRef<tooling::Range> Ranges, StringRef FileName, unsigned *Cursor = nullptr); -/// \brief Returns the replacements corresponding to applying and formatting +/// Returns the replacements corresponding to applying and formatting /// \p Replaces on success; otheriwse, return an llvm::Error carrying /// llvm::StringError. llvm::Expected<tooling::Replacements> formatReplacements(StringRef Code, const tooling::Replacements &Replaces, const FormatStyle &Style); -/// \brief Returns the replacements corresponding to applying \p Replaces and +/// Returns the replacements corresponding to applying \p Replaces and /// cleaning up the code after that on success; otherwise, return an llvm::Error /// carrying llvm::StringError. /// This also supports inserting/deleting C++ #include directives: @@ -1909,19 +1909,19 @@ cleanupAroundReplacements(StringRef Code, const tooling::Replacements &Replaces, const FormatStyle &Style); -/// \brief Represents the status of a formatting attempt. +/// Represents the status of a formatting attempt. struct FormattingAttemptStatus { - /// \brief A value of ``false`` means that any of the affected ranges were not + /// A value of ``false`` means that any of the affected ranges were not /// formatted due to a non-recoverable syntax error. bool FormatComplete = true; - /// \brief If ``FormatComplete`` is false, ``Line`` records a one-based + /// If ``FormatComplete`` is false, ``Line`` records a one-based /// original line number at which a syntax error might have occurred. This is /// based on a best-effort analysis and could be imprecise. unsigned Line = 0; }; -/// \brief Reformats the given \p Ranges in \p Code. +/// Reformats the given \p Ranges in \p Code. /// /// Each range is extended on either end to its next bigger logic unit, i.e. /// everything that might influence its formatting or might be influenced by its @@ -1937,7 +1937,7 @@ StringRef FileName = "<stdin>", FormattingAttemptStatus *Status = nullptr); -/// \brief Same as above, except if ``IncompleteFormat`` is non-null, its value +/// Same as above, except if ``IncompleteFormat`` is non-null, its value /// will be set to true if any of the affected ranges were not formatted due to /// a non-recoverable syntax error. tooling::Replacements reformat(const FormatStyle &Style, StringRef Code, @@ -1945,7 +1945,7 @@ StringRef FileName, bool *IncompleteFormat); -/// \brief Clean up any erroneous/redundant code in the given \p Ranges in \p +/// Clean up any erroneous/redundant code in the given \p Ranges in \p /// Code. /// /// Returns the ``Replacements`` that clean up all \p Ranges in \p Code. @@ -1953,7 +1953,7 @@ ArrayRef<tooling::Range> Ranges, StringRef FileName = "<stdin>"); -/// \brief Fix namespace end comments in the given \p Ranges in \p Code. +/// Fix namespace end comments in the given \p Ranges in \p Code. /// /// Returns the ``Replacements`` that fix the namespace comments in all /// \p Ranges in \p Code. @@ -1962,7 +1962,7 @@ ArrayRef<tooling::Range> Ranges, StringRef FileName = "<stdin>"); -/// \brief Sort consecutive using declarations in the given \p Ranges in +/// Sort consecutive using declarations in the given \p Ranges in /// \p Code. /// /// Returns the ``Replacements`` that sort the using declarations in all @@ -1972,17 +1972,17 @@ ArrayRef<tooling::Range> Ranges, StringRef FileName = "<stdin>"); -/// \brief Returns the ``LangOpts`` that the formatter expects you to set. +/// Returns the ``LangOpts`` that the formatter expects you to set. /// /// \param Style determines specific settings for lexing mode. LangOptions getFormattingLangOpts(const FormatStyle &Style = getLLVMStyle()); -/// \brief Description to be used for help text for a ``llvm::cl`` option for +/// Description to be used for help text for a ``llvm::cl`` option for /// specifying format style. The description is closely related to the operation /// of ``getStyle()``. extern const char *StyleOptionHelpDescription; -/// \brief Construct a FormatStyle based on ``StyleName``. +/// Construct a FormatStyle based on ``StyleName``. /// /// ``StyleName`` can take several forms: /// * "{<key>: <value>, ...}" - Set specic style parameters. @@ -2011,11 +2011,11 @@ StringRef Code = "", vfs::FileSystem *FS = nullptr); -// \brief Guesses the language from the ``FileName`` and ``Code`` to be formatted. +// Guesses the language from the ``FileName`` and ``Code`` to be formatted. // Defaults to FormatStyle::LK_Cpp. FormatStyle::LanguageKind guessLanguage(StringRef FileName, StringRef Code); -// \brief Returns a string representation of ``Language``. +// Returns a string representation of ``Language``. inline StringRef getLanguageName(FormatStyle::LanguageKind Language) { switch (Language) { case FormatStyle::LK_Cpp: Index: cfe/trunk/include/clang/Frontend/ASTUnit.h =================================================================== --- cfe/trunk/include/clang/Frontend/ASTUnit.h +++ cfe/trunk/include/clang/Frontend/ASTUnit.h @@ -81,7 +81,7 @@ } // namespace vfs -/// \brief Utility class for loading a ASTContext from an AST file. +/// Utility class for loading a ASTContext from an AST file. class ASTUnit { public: struct StandaloneFixIt { @@ -122,11 +122,11 @@ FileSystemOptions FileSystemOpts; - /// \brief The AST consumer that received information about the translation + /// The AST consumer that received information about the translation /// unit as it was parsed or loaded. std::unique_ptr<ASTConsumer> Consumer; - /// \brief The semantic analysis object used to type-check the translation + /// The semantic analysis object used to type-check the translation /// unit. std::unique_ptr<Sema> TheSema; @@ -142,19 +142,19 @@ // FIXME: This is temporary; eventually, CIndex will always do this. bool OnlyLocalDecls = false; - /// \brief Whether to capture any diagnostics produced. + /// Whether to capture any diagnostics produced. bool CaptureDiagnostics = false; - /// \brief Track whether the main file was loaded from an AST or not. + /// Track whether the main file was loaded from an AST or not. bool MainFileIsAST; - /// \brief What kind of translation unit this AST represents. + /// What kind of translation unit this AST represents. TranslationUnitKind TUKind = TU_Complete; - /// \brief Whether we should time each operation. + /// Whether we should time each operation. bool WantTiming; - /// \brief Whether the ASTUnit should delete the remapped buffers. + /// Whether the ASTUnit should delete the remapped buffers. bool OwnsRemappedFileBuffers = true; /// Track the top-level decls which appeared in an ASTUnit which was loaded @@ -166,36 +166,36 @@ // more scalable search mechanisms. std::vector<Decl*> TopLevelDecls; - /// \brief Sorted (by file offset) vector of pairs of file offset/Decl. + /// Sorted (by file offset) vector of pairs of file offset/Decl. using LocDeclsTy = SmallVector<std::pair<unsigned, Decl *>, 64>; using FileDeclsTy = llvm::DenseMap<FileID, LocDeclsTy *>; - /// \brief Map from FileID to the file-level declarations that it contains. + /// Map from FileID to the file-level declarations that it contains. /// The files and decls are only local (and non-preamble) ones. FileDeclsTy FileDecls; /// The name of the original source file used to generate this ASTUnit. std::string OriginalSourceFile; - /// \brief The set of diagnostics produced when creating the preamble. + /// The set of diagnostics produced when creating the preamble. SmallVector<StandaloneDiagnostic, 4> PreambleDiagnostics; - /// \brief The set of diagnostics produced when creating this + /// The set of diagnostics produced when creating this /// translation unit. SmallVector<StoredDiagnostic, 4> StoredDiagnostics; - /// \brief The set of diagnostics produced when failing to parse, e.g. due + /// The set of diagnostics produced when failing to parse, e.g. due /// to failure to load the PCH. SmallVector<StoredDiagnostic, 4> FailedParseDiagnostics; - /// \brief The number of stored diagnostics that come from the driver + /// The number of stored diagnostics that come from the driver /// itself. /// /// Diagnostics that come from the driver are retained from one parse to /// the next. unsigned NumStoredDiagnosticsFromDriver = 0; - /// \brief Counter that determines when we want to try building a + /// Counter that determines when we want to try building a /// precompiled preamble. /// /// If zero, we will never build a precompiled preamble. Otherwise, @@ -206,7 +206,7 @@ /// some number of calls. unsigned PreambleRebuildCounter = 0; - /// \brief Cache pairs "filename - source location" + /// Cache pairs "filename - source location" /// /// Cache contains only source locations from preamble so it is /// guaranteed that they stay valid when the SourceManager is recreated. @@ -217,12 +217,12 @@ /// The contents of the preamble. llvm::Optional<PrecompiledPreamble> Preamble; - /// \brief When non-NULL, this is the buffer used to store the contents of + /// When non-NULL, this is the buffer used to store the contents of /// the main file when it has been padded for use with the precompiled /// preamble. std::unique_ptr<llvm::MemoryBuffer> SavedMainFileBuffer; - /// \brief The number of warnings that occurred while parsing the preamble. + /// The number of warnings that occurred while parsing the preamble. /// /// This value will be used to restore the state of the \c DiagnosticsEngine /// object when re-using the precompiled preamble. Note that only the @@ -230,18 +230,18 @@ /// when any errors are present. unsigned NumWarningsInPreamble = 0; - /// \brief A list of the serialization ID numbers for each of the top-level + /// A list of the serialization ID numbers for each of the top-level /// declarations parsed within the precompiled preamble. std::vector<serialization::DeclID> TopLevelDeclsInPreamble; - /// \brief Whether we should be caching code-completion results. + /// Whether we should be caching code-completion results. bool ShouldCacheCodeCompletionResults : 1; - /// \brief Whether to include brief documentation within the set of code + /// Whether to include brief documentation within the set of code /// completions cached. bool IncludeBriefCommentsInCodeCompletion : 1; - /// \brief True if non-system source files should be treated as volatile + /// True if non-system source files should be treated as volatile /// (likely to change while trying to use them). bool UserFilesAreVolatile : 1; @@ -256,14 +256,14 @@ void clearFileLevelDecls(); public: - /// \brief A cached code-completion result, which may be introduced in one of + /// A cached code-completion result, which may be introduced in one of /// many different contexts. struct CachedCodeCompletionResult { - /// \brief The code-completion string corresponding to this completion + /// The code-completion string corresponding to this completion /// result. CodeCompletionString *Completion; - /// \brief A bitmask that indicates which code-completion contexts should + /// A bitmask that indicates which code-completion contexts should /// contain this completion result. /// /// The bits in the bitmask correspond to the values of @@ -272,20 +272,20 @@ /// several different contexts. uint64_t ShowInContexts; - /// \brief The priority given to this code-completion result. + /// The priority given to this code-completion result. unsigned Priority; - /// \brief The libclang cursor kind corresponding to this code-completion + /// The libclang cursor kind corresponding to this code-completion /// result. CXCursorKind Kind; - /// \brief The availability of this code-completion result. + /// The availability of this code-completion result. CXAvailabilityKind Availability; - /// \brief The simplified type class for a non-macro completion result. + /// The simplified type class for a non-macro completion result. SimplifiedTypeClass TypeClass; - /// \brief The type of a non-macro completion result, stored as a unique + /// The type of a non-macro completion result, stored as a unique /// integer used by the string map of cached completion types. /// /// This value will be zero if the type is not known, or a unique value @@ -294,13 +294,13 @@ unsigned Type; }; - /// \brief Retrieve the mapping from formatted type names to unique type + /// Retrieve the mapping from formatted type names to unique type /// identifiers. llvm::StringMap<unsigned> &getCachedCompletionTypes() { return CachedCompletionTypes; } - /// \brief Retrieve the allocator used to cache global code completions. + /// Retrieve the allocator used to cache global code completions. std::shared_ptr<GlobalCodeCompletionAllocator> getCachedCompletionAllocator() { return CachedCompletionAllocator; @@ -314,45 +314,45 @@ } private: - /// \brief Allocator used to store cached code completions. + /// Allocator used to store cached code completions. std::shared_ptr<GlobalCodeCompletionAllocator> CachedCompletionAllocator; std::unique_ptr<CodeCompletionTUInfo> CCTUInfo; - /// \brief The set of cached code-completion results. + /// The set of cached code-completion results. std::vector<CachedCodeCompletionResult> CachedCompletionResults; - /// \brief A mapping from the formatted type name to a unique number for that + /// A mapping from the formatted type name to a unique number for that /// type, which is used for type equality comparisons. llvm::StringMap<unsigned> CachedCompletionTypes; - /// \brief A string hash of the top-level declaration and macro definition + /// A string hash of the top-level declaration and macro definition /// names processed the last time that we reparsed the file. /// /// This hash value is used to determine when we need to refresh the /// global code-completion cache. unsigned CompletionCacheTopLevelHashValue = 0; - /// \brief A string hash of the top-level declaration and macro definition + /// A string hash of the top-level declaration and macro definition /// names processed the last time that we reparsed the precompiled preamble. /// /// This hash value is used to determine when we need to refresh the /// global code-completion cache after a rebuild of the precompiled preamble. unsigned PreambleTopLevelHashValue = 0; - /// \brief The current hash value for the top-level declaration and macro + /// The current hash value for the top-level declaration and macro /// definition names unsigned CurrentTopLevelHashValue = 0; - /// \brief Bit used by CIndex to mark when a translation unit may be in an + /// Bit used by CIndex to mark when a translation unit may be in an /// inconsistent state, and is not safe to free. unsigned UnsafeToFree : 1; - /// \brief Cache any "global" code-completion results, so that we can avoid + /// Cache any "global" code-completion results, so that we can avoid /// recomputing them with each completion. void CacheCodeCompletionResults(); - /// \brief Clear out and deallocate + /// Clear out and deallocate void ClearCachedCompletionResults(); explicit ASTUnit(bool MainFileIsAST); @@ -368,11 +368,11 @@ unsigned MaxLines = 0); void RealizeTopLevelDeclsFromPreamble(); - /// \brief Transfers ownership of the objects (like SourceManager) from + /// Transfers ownership of the objects (like SourceManager) from /// \param CI to this ASTUnit. void transferASTDataFromCompilerInstance(CompilerInstance &CI); - /// \brief Allows us to assert that ASTUnit is not being used concurrently, + /// Allows us to assert that ASTUnit is not being used concurrently, /// which is not supported. /// /// Clients should create instances of the ConcurrencyCheck class whenever @@ -475,7 +475,7 @@ StringRef getMainFileName() const; - /// \brief If this ASTUnit came from an AST file, returns the filename for it. + /// If this ASTUnit came from an AST file, returns the filename for it. StringRef getASTFileName() const; using top_level_iterator = std::vector<Decl *>::iterator; @@ -504,26 +504,26 @@ return TopLevelDeclsInPreamble.empty() && TopLevelDecls.empty(); } - /// \brief Add a new top-level declaration. + /// Add a new top-level declaration. void addTopLevelDecl(Decl *D) { TopLevelDecls.push_back(D); } - /// \brief Add a new local file-level declaration. + /// Add a new local file-level declaration. void addFileLevelDecl(Decl *D); - /// \brief Get the decls that are contained in a file in the Offset/Length + /// Get the decls that are contained in a file in the Offset/Length /// range. \p Length can be 0 to indicate a point at \p Offset instead of /// a range. void findFileRegionDecls(FileID File, unsigned Offset, unsigned Length, SmallVectorImpl<Decl *> &Decls); - /// \brief Retrieve a reference to the current top-level name hash value. + /// Retrieve a reference to the current top-level name hash value. /// /// Note: This is used internally by the top-level tracking action unsigned &getCurrentTopLevelHashValue() { return CurrentTopLevelHashValue; } - /// \brief Get the source location for the given file:line:col triplet. + /// Get the source location for the given file:line:col triplet. /// /// The difference with SourceManager::getLocation is that this method checks /// whether the requested location points inside the precompiled preamble @@ -531,15 +531,15 @@ SourceLocation getLocation(const FileEntry *File, unsigned Line, unsigned Col) const; - /// \brief Get the source location for the given file:offset pair. + /// Get the source location for the given file:offset pair. SourceLocation getLocation(const FileEntry *File, unsigned Offset) const; - /// \brief If \p Loc is a loaded location from the preamble, returns + /// If \p Loc is a loaded location from the preamble, returns /// the corresponding local location of the main file, otherwise it returns /// \p Loc. SourceLocation mapLocationFromPreamble(SourceLocation Loc) const; - /// \brief If \p Loc is a local location of the main file but inside the + /// If \p Loc is a local location of the main file but inside the /// preamble chunk, returns the corresponding loaded location from the /// preamble, otherwise it returns \p Loc. SourceLocation mapLocationToPreamble(SourceLocation Loc) const; @@ -604,43 +604,43 @@ return CachedCompletionResults.size(); } - /// \brief Returns an iterator range for the local preprocessing entities + /// Returns an iterator range for the local preprocessing entities /// of the local Preprocessor, if this is a parsed source file, or the loaded /// preprocessing entities of the primary module if this is an AST file. llvm::iterator_range<PreprocessingRecord::iterator> getLocalPreprocessingEntities() const; - /// \brief Type for a function iterating over a number of declarations. + /// Type for a function iterating over a number of declarations. /// \returns true to continue iteration and false to abort. using DeclVisitorFn = bool (*)(void *context, const Decl *D); - /// \brief Iterate over local declarations (locally parsed if this is a parsed + /// Iterate over local declarations (locally parsed if this is a parsed /// source file or the loaded declarations of the primary module if this is an /// AST file). /// \returns true if the iteration was complete or false if it was aborted. bool visitLocalTopLevelDecls(void *context, DeclVisitorFn Fn); - /// \brief Get the PCH file if one was included. + /// Get the PCH file if one was included. const FileEntry *getPCHFile(); - /// \brief Returns true if the ASTUnit was constructed from a serialized + /// Returns true if the ASTUnit was constructed from a serialized /// module file. bool isModuleFile() const; std::unique_ptr<llvm::MemoryBuffer> getBufferForFile(StringRef Filename, std::string *ErrorStr = nullptr); - /// \brief Determine what kind of translation unit this AST represents. + /// Determine what kind of translation unit this AST represents. TranslationUnitKind getTranslationUnitKind() const { return TUKind; } - /// \brief Determine the input kind this AST unit represents. + /// Determine the input kind this AST unit represents. InputKind getInputKind() const; - /// \brief A mapping from a file name to the memory buffer that stores the + /// A mapping from a file name to the memory buffer that stores the /// remapped contents of that file. using RemappedFile = std::pair<std::string, llvm::MemoryBuffer *>; - /// \brief Create a ASTUnit. Gets ownership of the passed CompilerInvocation. + /// Create a ASTUnit. Gets ownership of the passed CompilerInvocation. static std::unique_ptr<ASTUnit> create(std::shared_ptr<CompilerInvocation> CI, IntrusiveRefCntPtr<DiagnosticsEngine> Diags, bool CaptureDiagnostics, @@ -657,7 +657,7 @@ LoadEverything }; - /// \brief Create a ASTUnit from an AST file. + /// Create a ASTUnit from an AST file. /// /// \param Filename - The AST file to load. /// @@ -676,7 +676,7 @@ bool UserFilesAreVolatile = false); private: - /// \brief Helper function for \c LoadFromCompilerInvocation() and + /// Helper function for \c LoadFromCompilerInvocation() and /// \c LoadFromCommandLine(), which loads an AST from a compiler invocation. /// /// \param PrecompilePreambleAfterNParses After how many parses the preamble @@ -696,7 +696,7 @@ IntrusiveRefCntPtr<vfs::FileSystem> VFS); public: - /// \brief Create an ASTUnit from a source file, via a CompilerInvocation + /// Create an ASTUnit from a source file, via a CompilerInvocation /// object, by invoking the optionally provided ASTFrontendAction. /// /// \param CI - The compiler invocation to use; it must have exactly one input @@ -808,7 +808,7 @@ std::unique_ptr<ASTUnit> *ErrAST = nullptr, IntrusiveRefCntPtr<vfs::FileSystem> VFS = nullptr); - /// \brief Reparse the source files using the same command-line options that + /// Reparse the source files using the same command-line options that /// were originally used to produce this translation unit. /// /// \param VFS - A vfs::FileSystem to be used for all file accesses. Note that @@ -823,12 +823,12 @@ ArrayRef<RemappedFile> RemappedFiles = None, IntrusiveRefCntPtr<vfs::FileSystem> VFS = nullptr); - /// \brief Free data that will be re-generated on the next parse. + /// Free data that will be re-generated on the next parse. /// /// Preamble-related data is not affected. void ResetForParse(); - /// \brief Perform code completion at the given file, line, and + /// Perform code completion at the given file, line, and /// column within this translation unit. /// /// \param File The file in which code completion will occur. @@ -858,13 +858,13 @@ SmallVectorImpl<StoredDiagnostic> &StoredDiagnostics, SmallVectorImpl<const llvm::MemoryBuffer *> &OwnedBuffers); - /// \brief Save this translation unit to a file with the given name. + /// Save this translation unit to a file with the given name. /// /// \returns true if there was a file error or false if the save was /// successful. bool Save(StringRef File); - /// \brief Serialize this translation unit with the given output stream. + /// Serialize this translation unit with the given output stream. /// /// \returns True if an error occurred, false otherwise. bool serialize(raw_ostream &OS); Index: cfe/trunk/include/clang/Frontend/ChainedDiagnosticConsumer.h =================================================================== --- cfe/trunk/include/clang/Frontend/ChainedDiagnosticConsumer.h +++ cfe/trunk/include/clang/Frontend/ChainedDiagnosticConsumer.h @@ -32,7 +32,7 @@ : OwningPrimary(std::move(Primary)), Primary(OwningPrimary.get()), Secondary(std::move(Secondary)) {} - /// \brief Construct without taking ownership of \c Primary. + /// Construct without taking ownership of \c Primary. ChainedDiagnosticConsumer(DiagnosticConsumer *Primary, std::unique_ptr<DiagnosticConsumer> Secondary) : Primary(Primary), Secondary(std::move(Secondary)) {} Index: cfe/trunk/include/clang/Frontend/CodeGenOptions.h =================================================================== --- cfe/trunk/include/clang/Frontend/CodeGenOptions.h +++ cfe/trunk/include/clang/Frontend/CodeGenOptions.h @@ -27,7 +27,7 @@ namespace clang { -/// \brief Bitfields of CodeGenOptions, split out from CodeGenOptions to ensure +/// Bitfields of CodeGenOptions, split out from CodeGenOptions to ensure /// that this large collection of bitfields is a trivial class type. class CodeGenOptionsBase { public: @@ -249,7 +249,7 @@ /// List of backend command-line options for -fembed-bitcode. std::vector<uint8_t> CmdArgs; - /// \brief A list of all -fno-builtin-* function names (e.g., memset). + /// A list of all -fno-builtin-* function names (e.g., memset). std::vector<std::string> NoBuiltinFuncs; std::vector<std::string> Reciprocals; @@ -272,7 +272,7 @@ CodeGenOptions(); - /// \brief Is this a libc/libm function that is no longer recognized as a + /// Is this a libc/libm function that is no longer recognized as a /// builtin because a -fno-builtin-* option has been specified? bool isNoBuiltinFunc(const char *Name) const; @@ -280,22 +280,22 @@ return NoBuiltinFuncs; } - /// \brief Check if Clang profile instrumenation is on. + /// Check if Clang profile instrumenation is on. bool hasProfileClangInstr() const { return getProfileInstr() == ProfileClangInstr; } - /// \brief Check if IR level profile instrumentation is on. + /// Check if IR level profile instrumentation is on. bool hasProfileIRInstr() const { return getProfileInstr() == ProfileIRInstr; } - /// \brief Check if Clang profile use is on. + /// Check if Clang profile use is on. bool hasProfileClangUse() const { return getProfileUse() == ProfileClangInstr; } - /// \brief Check if IR level profile use is on. + /// Check if IR level profile use is on. bool hasProfileIRUse() const { return getProfileUse() == ProfileIRInstr; } Index: cfe/trunk/include/clang/Frontend/CodeGenOptions.def =================================================================== --- cfe/trunk/include/clang/Frontend/CodeGenOptions.def +++ cfe/trunk/include/clang/Frontend/CodeGenOptions.def @@ -75,7 +75,7 @@ CODEGENOPT(EmitOpenCLArgMetadata , 1, 0) ///< Emit OpenCL kernel arg metadata. CODEGENOPT(EmulatedTLS , 1, 0) ///< Set by default or -f[no-]emulated-tls. CODEGENOPT(ExplicitEmulatedTLS , 1, 0) ///< Set if -f[no-]emulated-tls is used. -/// \brief Embed Bitcode mode (off/all/bitcode/marker). +/// Embed Bitcode mode (off/all/bitcode/marker). ENUM_CODEGENOPT(EmbedBitcode, EmbedBitcodeKind, 2, Embed_Off) CODEGENOPT(ForbidGuardVariables , 1, 0) ///< Issue errors if C++ guard variables ///< are required. @@ -144,7 +144,7 @@ CODEGENOPT(UniformWGSize , 1, 0) ///< -cl-uniform-work-group-size CODEGENOPT(NoZeroInitializedInBSS , 1, 0) ///< -fno-zero-initialized-in-bss. -/// \brief Method of Objective-C dispatch to use. +/// Method of Objective-C dispatch to use. ENUM_CODEGENOPT(ObjCDispatchMethod, ObjCDispatchMethodKind, 2, Legacy) CODEGENOPT(OmitLeafFramePointer , 1, 0) ///< Set when -momit-leaf-frame-pointer is ///< enabled. @@ -152,9 +152,9 @@ VALUE_CODEGENOPT(OptimizationLevel, 2, 0) ///< The -O[0-3] option specified. VALUE_CODEGENOPT(OptimizeSize, 2, 0) ///< If -Os (==1) or -Oz (==2) is specified. -/// \brief Choose profile instrumenation kind or no instrumentation. +/// Choose profile instrumenation kind or no instrumentation. ENUM_CODEGENOPT(ProfileInstr, ProfileInstrKind, 2, ProfileNone) -/// \brief Choose profile kind for PGO use compilation. +/// Choose profile kind for PGO use compilation. ENUM_CODEGENOPT(ProfileUse, ProfileInstrKind, 2, ProfileNone) CODEGENOPT(CoverageMapping , 1, 0) ///< Generate coverage mapping regions to ///< enable code coverage analysis. Index: cfe/trunk/include/clang/Frontend/CommandLineSourceLoc.h =================================================================== --- cfe/trunk/include/clang/Frontend/CommandLineSourceLoc.h +++ cfe/trunk/include/clang/Frontend/CommandLineSourceLoc.h @@ -21,7 +21,7 @@ namespace clang { -/// \brief A source location that has been parsed on the command line. +/// A source location that has been parsed on the command line. struct ParsedSourceLocation { std::string FileName; unsigned Line; @@ -101,7 +101,7 @@ namespace llvm { namespace cl { - /// \brief Command-line option parser that parses source locations. + /// Command-line option parser that parses source locations. /// /// Source locations are of the form filename:line:column. template<> Index: cfe/trunk/include/clang/Frontend/CompilerInstance.h =================================================================== --- cfe/trunk/include/clang/Frontend/CompilerInstance.h +++ cfe/trunk/include/clang/Frontend/CompilerInstance.h @@ -109,59 +109,59 @@ /// The code completion consumer. std::unique_ptr<CodeCompleteConsumer> CompletionConsumer; - /// \brief The semantic analysis object. + /// The semantic analysis object. std::unique_ptr<Sema> TheSema; - /// \brief The frontend timer group. + /// The frontend timer group. std::unique_ptr<llvm::TimerGroup> FrontendTimerGroup; - /// \brief The frontend timer. + /// The frontend timer. std::unique_ptr<llvm::Timer> FrontendTimer; - /// \brief The ASTReader, if one exists. + /// The ASTReader, if one exists. IntrusiveRefCntPtr<ASTReader> ModuleManager; - /// \brief The module dependency collector for crashdumps + /// The module dependency collector for crashdumps std::shared_ptr<ModuleDependencyCollector> ModuleDepCollector; - /// \brief The module provider. + /// The module provider. std::shared_ptr<PCHContainerOperations> ThePCHContainerOperations; - /// \brief The dependency file generator. + /// The dependency file generator. std::unique_ptr<DependencyFileGenerator> TheDependencyFileGenerator; std::vector<std::shared_ptr<DependencyCollector>> DependencyCollectors; - /// \brief The set of top-level modules that has already been loaded, + /// The set of top-level modules that has already been loaded, /// along with the module map llvm::DenseMap<const IdentifierInfo *, Module *> KnownModules; - /// \brief The set of top-level modules that has already been built on the + /// The set of top-level modules that has already been built on the /// fly as part of this overall compilation action. std::map<std::string, std::string> BuiltModules; /// Should we delete the BuiltModules when we're done? bool DeleteBuiltModules = true; - /// \brief The location of the module-import keyword for the last module + /// The location of the module-import keyword for the last module /// import. SourceLocation LastModuleImportLoc; - /// \brief The result of the last module import. + /// The result of the last module import. /// ModuleLoadResult LastModuleImportResult; - /// \brief Whether we should (re)build the global module index once we + /// Whether we should (re)build the global module index once we /// have finished with this translation unit. bool BuildGlobalModuleIndex = false; - /// \brief We have a full global module index, with all modules. + /// We have a full global module index, with all modules. bool HaveFullGlobalModuleIndex = false; - /// \brief One or more modules failed to build. + /// One or more modules failed to build. bool ModuleBuildFailed = false; - /// \brief Holds information about the output file. + /// Holds information about the output file. /// /// If TempFilename is not empty we must rename it to Filename at the end. /// TempFilename may be empty and Filename non-empty if creating the temporary @@ -244,10 +244,10 @@ /// setInvocation - Replace the current invocation. void setInvocation(std::shared_ptr<CompilerInvocation> Value); - /// \brief Indicates whether we should (re)build the global module index. + /// Indicates whether we should (re)build the global module index. bool shouldBuildGlobalModuleIndex() const; - /// \brief Set the flag indicating whether we should (re)build the global + /// Set the flag indicating whether we should (re)build the global /// module index. void setBuildGlobalModuleIndex(bool Build) { BuildGlobalModuleIndex = Build; @@ -390,7 +390,7 @@ return *VirtualFileSystem; } - /// \brief Replace the current virtual file system. + /// Replace the current virtual file system. /// /// \note Most clients should use setFileManager, which will implicitly reset /// the virtual file system to the one contained in the file manager. @@ -415,7 +415,7 @@ FileMgr.resetWithoutRelease(); } - /// \brief Replace the current file manager and virtual file system. + /// Replace the current file manager and virtual file system. void setFileManager(FileManager *Value); /// } @@ -478,7 +478,7 @@ /// setASTContext - Replace the current AST context. void setASTContext(ASTContext *Value); - /// \brief Replace the current Sema; the compiler instance takes ownership + /// Replace the current Sema; the compiler instance takes ownership /// of S. void setSema(Sema *S); @@ -690,7 +690,7 @@ Preprocessor &PP, StringRef Filename, unsigned Line, unsigned Column, const CodeCompleteOptions &Opts, raw_ostream &OS); - /// \brief Create the Sema object to be used for parsing. + /// Create the Sema object to be used for parsing. void createSema(TranslationUnitKind TUKind, CodeCompleteConsumer *CompletionConsumer); Index: cfe/trunk/include/clang/Frontend/CompilerInvocation.h =================================================================== --- cfe/trunk/include/clang/Frontend/CompilerInvocation.h +++ cfe/trunk/include/clang/Frontend/CompilerInvocation.h @@ -44,7 +44,7 @@ class PreprocessorOptions; class TargetOptions; -/// \brief Fill out Opts based on the options given in Args. +/// Fill out Opts based on the options given in Args. /// /// Args must have been created from the OptTable returned by /// createCC1OptTable(). @@ -107,7 +107,7 @@ } }; -/// \brief Helper class for holding the data necessary to invoke the compiler. +/// Helper class for holding the data necessary to invoke the compiler. /// /// This class is designed to represent an abstract "invocation" of the /// compiler, including data such as the include paths, the code generation @@ -139,7 +139,7 @@ /// @name Utility Methods /// @{ - /// \brief Create a compiler invocation from a list of input options. + /// Create a compiler invocation from a list of input options. /// \returns true on success. /// /// \param [out] Res - The resulting invocation. @@ -151,7 +151,7 @@ const char* const *ArgEnd, DiagnosticsEngine &Diags); - /// \brief Get the directory where the compiler headers + /// Get the directory where the compiler headers /// reside, relative to the compiler binary (found by the passed in /// arguments). /// @@ -161,7 +161,7 @@ /// executable), for finding the builtin compiler path. static std::string GetResourcesPath(const char *Argv0, void *MainAddr); - /// \brief Set language defaults for the given input language and + /// Set language defaults for the given input language and /// language standard in the given LangOptions object. /// /// \param Opts - The LangOptions object to set up. @@ -173,7 +173,7 @@ const llvm::Triple &T, PreprocessorOptions &PPOpts, LangStandard::Kind LangStd = LangStandard::lang_unspecified); - /// \brief Retrieve a module hash string that is suitable for uniquely + /// Retrieve a module hash string that is suitable for uniquely /// identifying the conditions under which the module was built. std::string getModuleHash() const; Index: cfe/trunk/include/clang/Frontend/DependencyOutputOptions.h =================================================================== --- cfe/trunk/include/clang/Frontend/DependencyOutputOptions.h +++ cfe/trunk/include/clang/Frontend/DependencyOutputOptions.h @@ -58,10 +58,10 @@ /// In /showIncludes mode, pretend the main TU is a header with this name. std::string ShowIncludesPretendHeader; - /// \brief The file to write GraphViz-formatted header dependencies to. + /// The file to write GraphViz-formatted header dependencies to. std::string DOTOutputFile; - /// \brief The directory to copy module dependencies to when collecting them. + /// The directory to copy module dependencies to when collecting them. std::string ModuleDependencyOutputDir; public: Index: cfe/trunk/include/clang/Frontend/DiagnosticRenderer.h =================================================================== --- cfe/trunk/include/clang/Frontend/DiagnosticRenderer.h +++ cfe/trunk/include/clang/Frontend/DiagnosticRenderer.h @@ -33,7 +33,7 @@ using DiagOrStoredDiag = llvm::PointerUnion<const Diagnostic *, const StoredDiagnostic *>; -/// \brief Class to encapsulate the logic for formatting a diagnostic message. +/// Class to encapsulate the logic for formatting a diagnostic message. /// /// Actual "printing" logic is implemented by subclasses. /// @@ -50,20 +50,20 @@ const LangOptions &LangOpts; IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts; - /// \brief The location of the previous diagnostic if known. + /// The location of the previous diagnostic if known. /// /// This will be invalid in cases where there is no (known) previous /// diagnostic location, or that location itself is invalid or comes from /// a different source manager than SM. SourceLocation LastLoc; - /// \brief The location of the last include whose stack was printed if known. + /// The location of the last include whose stack was printed if known. /// /// Same restriction as LastLoc essentially, but tracking include stack /// root locations rather than diagnostic locations. SourceLocation LastIncludeLoc; - /// \brief The level of the last diagnostic emitted. + /// The level of the last diagnostic emitted. /// /// The level of the last diagnostic emitted. Used to detect level changes /// which change the amount of information displayed. @@ -118,7 +118,7 @@ ArrayRef<FixItHint> Hints); public: - /// \brief Emit a diagnostic. + /// Emit a diagnostic. /// /// This is the primary entry point for emitting diagnostic messages. /// It handles formatting and rendering the message as well as any ancillary Index: cfe/trunk/include/clang/Frontend/FrontendAction.h =================================================================== --- cfe/trunk/include/clang/Frontend/FrontendAction.h +++ cfe/trunk/include/clang/Frontend/FrontendAction.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines the clang::FrontendAction interface and various convenience +/// Defines the clang::FrontendAction interface and various convenience /// abstract classes (clang::ASTFrontendAction, clang::PluginASTAction, /// clang::PreprocessorFrontendAction, and clang::WrapperFrontendAction) /// derived from it. @@ -48,7 +48,7 @@ /// @name Implementation Action Interface /// @{ - /// \brief Create the AST consumer object for this action, if supported. + /// Create the AST consumer object for this action, if supported. /// /// This routine is called as part of BeginSourceFile(), which will /// fail if the AST consumer cannot be created. This will not be called if the @@ -64,7 +64,7 @@ virtual std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI, StringRef InFile) = 0; - /// \brief Callback before starting processing a single input, giving the + /// Callback before starting processing a single input, giving the /// opportunity to modify the CompilerInvocation or do some other action /// before BeginSourceFileAction is called. /// @@ -72,7 +72,7 @@ /// ExecuteAction() and EndSourceFileAction() will not be called. virtual bool BeginInvocation(CompilerInstance &CI) { return true; } - /// \brief Callback at the start of processing a single input. + /// Callback at the start of processing a single input. /// /// \return True on success; on failure ExecutionAction() and /// EndSourceFileAction() will not be called. @@ -80,20 +80,20 @@ return true; } - /// \brief Callback to run the program action, using the initialized + /// Callback to run the program action, using the initialized /// compiler instance. /// /// This is guaranteed to only be called between BeginSourceFileAction() /// and EndSourceFileAction(). virtual void ExecuteAction() = 0; - /// \brief Callback at the end of processing a single input. + /// Callback at the end of processing a single input. /// /// This is guaranteed to only be called following a successful call to /// BeginSourceFileAction (and BeginSourceFile). virtual void EndSourceFileAction() {} - /// \brief Callback at the end of processing a single input, to determine + /// Callback at the end of processing a single input, to determine /// if the output files should be erased or not. /// /// By default it returns true if a compiler error occurred. @@ -158,39 +158,39 @@ /// @name Supported Modes /// @{ - /// \brief Is this action invoked on a model file? + /// Is this action invoked on a model file? /// /// Model files are incomplete translation units that relies on type /// information from another translation unit. Check ParseModelFileAction for /// details. virtual bool isModelParsingAction() const { return false; } - /// \brief Does this action only use the preprocessor? + /// Does this action only use the preprocessor? /// /// If so no AST context will be created and this action will be invalid /// with AST file inputs. virtual bool usesPreprocessorOnly() const = 0; - /// \brief For AST-based actions, the kind of translation unit we're handling. + /// For AST-based actions, the kind of translation unit we're handling. virtual TranslationUnitKind getTranslationUnitKind() { return TU_Complete; } - /// \brief Does this action support use with PCH? + /// Does this action support use with PCH? virtual bool hasPCHSupport() const { return true; } - /// \brief Does this action support use with AST files? + /// Does this action support use with AST files? virtual bool hasASTFileSupport() const { return true; } - /// \brief Does this action support use with IR files? + /// Does this action support use with IR files? virtual bool hasIRSupport() const { return false; } - /// \brief Does this action support use with code completion? + /// Does this action support use with code completion? virtual bool hasCodeCompletionSupport() const { return false; } /// @} /// @name Public Action Interface /// @{ - /// \brief Prepare the action for processing the input file \p Input. + /// Prepare the action for processing the input file \p Input. /// /// This is run after the options and frontend have been initialized, /// but prior to executing any per-file processing. @@ -211,20 +211,20 @@ /// be aborted and neither Execute() nor EndSourceFile() should be called. bool BeginSourceFile(CompilerInstance &CI, const FrontendInputFile &Input); - /// \brief Set the source manager's main input file, and run the action. + /// Set the source manager's main input file, and run the action. bool Execute(); - /// \brief Perform any per-file post processing, deallocate per-file + /// Perform any per-file post processing, deallocate per-file /// objects, and run statistics and output file cleanup code. void EndSourceFile(); /// @} }; -/// \brief Abstract base class to use for AST consumer-based frontend actions. +/// Abstract base class to use for AST consumer-based frontend actions. class ASTFrontendAction : public FrontendAction { protected: - /// \brief Implement the ExecuteAction interface by running Sema on + /// Implement the ExecuteAction interface by running Sema on /// the already-initialized AST consumer. /// /// This will also take care of instantiating a code completion consumer if @@ -242,7 +242,7 @@ std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override = 0; - /// \brief Parse the given plugin command line arguments. + /// Parse the given plugin command line arguments. /// /// \param CI - The compiler instance, for use in reporting diagnostics. /// \return True if the parsing succeeded; otherwise the plugin will be @@ -257,7 +257,7 @@ AddBeforeMainAction, ///< Execute the action before the main action AddAfterMainAction ///< Execute the action after the main action }; - /// \brief Get the action type for this plugin + /// Get the action type for this plugin /// /// \return The action type. If the type is Cmdline then by default the /// plugin does nothing and what it does is determined by the cc1 @@ -265,10 +265,10 @@ virtual ActionType getActionType() { return Cmdline; } }; -/// \brief Abstract base class to use for preprocessor-based frontend actions. +/// Abstract base class to use for preprocessor-based frontend actions. class PreprocessorFrontendAction : public FrontendAction { protected: - /// \brief Provide a default implementation which returns aborts; + /// Provide a default implementation which returns aborts; /// this method should never be called by FrontendAction clients. std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override; @@ -277,7 +277,7 @@ bool usesPreprocessorOnly() const override { return true; } }; -/// \brief A frontend action which simply wraps some other runtime-specified +/// A frontend action which simply wraps some other runtime-specified /// frontend action. /// /// Deriving from this class allows an action to inject custom logic around Index: cfe/trunk/include/clang/Frontend/FrontendActions.h =================================================================== --- cfe/trunk/include/clang/Frontend/FrontendActions.h +++ cfe/trunk/include/clang/Frontend/FrontendActions.h @@ -83,14 +83,14 @@ bool shouldEraseOutputFiles() override; public: - /// \brief Compute the AST consumer arguments that will be used to + /// Compute the AST consumer arguments that will be used to /// create the PCHGenerator instance returned by CreateASTConsumer. /// /// \returns false if an error occurred, true otherwise. static bool ComputeASTConsumerArguments(CompilerInstance &CI, std::string &Sysroot); - /// \brief Creates file to write the PCH into and returns a stream to write it + /// Creates file to write the PCH into and returns a stream to write it /// into. On error, returns null. static std::unique_ptr<llvm::raw_pwrite_stream> CreateOutputFile(CompilerInstance &CI, StringRef InFile, @@ -140,7 +140,7 @@ bool hasCodeCompletionSupport() const override { return true; } }; -/// \brief Dump information about the given module file, to be used for +/// Dump information about the given module file, to be used for /// basic debugging and discovery. class DumpModuleInfoAction : public ASTFrontendAction { protected: @@ -176,7 +176,7 @@ }; /** - * \brief Frontend action adaptor that merges ASTs together. + * Frontend action adaptor that merges ASTs together. * * This action takes an existing AST file and "merges" it into the AST * context, producing a merged context. This action is an action @@ -184,10 +184,10 @@ * will consume the merged context. */ class ASTMergeAction : public FrontendAction { - /// \brief The action that the merge action adapts. + /// The action that the merge action adapts. std::unique_ptr<FrontendAction> AdaptedAction; - /// \brief The set of AST files to merge. + /// The set of AST files to merge. std::vector<std::string> ASTFiles; protected: Index: cfe/trunk/include/clang/Frontend/FrontendOptions.h =================================================================== --- cfe/trunk/include/clang/Frontend/FrontendOptions.h +++ cfe/trunk/include/clang/Frontend/FrontendOptions.h @@ -195,9 +195,9 @@ } }; -/// \brief An input file for the front end. +/// An input file for the front end. class FrontendInputFile { - /// \brief The file name, or "-" to read from standard input. + /// The file name, or "-" to read from standard input. std::string File; /// The input, if it comes from a buffer rather than a file. This object @@ -205,10 +205,10 @@ /// that it outlives any users. llvm::MemoryBuffer *Buffer = nullptr; - /// \brief The kind of input, e.g., C source, AST file, LLVM IR. + /// The kind of input, e.g., C source, AST file, LLVM IR. InputKind Kind; - /// \brief Whether we're dealing with a 'system' input (vs. a 'user' input). + /// Whether we're dealing with a 'system' input (vs. a 'user' input). bool IsSystem = false; public: @@ -315,46 +315,46 @@ enum { ObjCMT_None = 0, - /// \brief Enable migration to modern ObjC literals. + /// Enable migration to modern ObjC literals. ObjCMT_Literals = 0x1, - /// \brief Enable migration to modern ObjC subscripting. + /// Enable migration to modern ObjC subscripting. ObjCMT_Subscripting = 0x2, - /// \brief Enable migration to modern ObjC readonly property. + /// Enable migration to modern ObjC readonly property. ObjCMT_ReadonlyProperty = 0x4, - /// \brief Enable migration to modern ObjC readwrite property. + /// Enable migration to modern ObjC readwrite property. ObjCMT_ReadwriteProperty = 0x8, - /// \brief Enable migration to modern ObjC property. + /// Enable migration to modern ObjC property. ObjCMT_Property = (ObjCMT_ReadonlyProperty | ObjCMT_ReadwriteProperty), - /// \brief Enable annotation of ObjCMethods of all kinds. + /// Enable annotation of ObjCMethods of all kinds. ObjCMT_Annotation = 0x10, - /// \brief Enable migration of ObjC methods to 'instancetype'. + /// Enable migration of ObjC methods to 'instancetype'. ObjCMT_Instancetype = 0x20, - /// \brief Enable migration to NS_ENUM/NS_OPTIONS macros. + /// Enable migration to NS_ENUM/NS_OPTIONS macros. ObjCMT_NsMacros = 0x40, - /// \brief Enable migration to add conforming protocols. + /// Enable migration to add conforming protocols. ObjCMT_ProtocolConformance = 0x80, - /// \brief prefer 'atomic' property over 'nonatomic'. + /// prefer 'atomic' property over 'nonatomic'. ObjCMT_AtomicProperty = 0x100, - /// \brief annotate property with NS_RETURNS_INNER_POINTER + /// annotate property with NS_RETURNS_INNER_POINTER ObjCMT_ReturnsInnerPointerProperty = 0x200, - /// \brief use NS_NONATOMIC_IOSONLY for property 'atomic' attribute + /// use NS_NONATOMIC_IOSONLY for property 'atomic' attribute ObjCMT_NsAtomicIOSOnlyProperty = 0x400, - /// \brief Enable inferring NS_DESIGNATED_INITIALIZER for ObjC methods. + /// Enable inferring NS_DESIGNATED_INITIALIZER for ObjC methods. ObjCMT_DesignatedInitializer = 0x800, - /// \brief Enable converting setter/getter expressions to property-dot syntx. + /// Enable converting setter/getter expressions to property-dot syntx. ObjCMT_PropertyDotSyntax = 0x1000, ObjCMT_MigrateDecls = (ObjCMT_ReadonlyProperty | ObjCMT_ReadwriteProperty | @@ -408,31 +408,31 @@ /// The list of module file extensions. std::vector<std::shared_ptr<ModuleFileExtension>> ModuleFileExtensions; - /// \brief The list of module map files to load before processing the input. + /// The list of module map files to load before processing the input. std::vector<std::string> ModuleMapFiles; - /// \brief The list of additional prebuilt module files to load before + /// The list of additional prebuilt module files to load before /// processing the input. std::vector<std::string> ModuleFiles; - /// \brief The list of files to embed into the compiled module file. + /// The list of files to embed into the compiled module file. std::vector<std::string> ModulesEmbedFiles; - /// \brief The list of AST files to merge. + /// The list of AST files to merge. std::vector<std::string> ASTMergeFiles; - /// \brief A list of arguments to forward to LLVM's option processing; this + /// A list of arguments to forward to LLVM's option processing; this /// should only be used for debugging and experimental features. std::vector<std::string> LLVMArgs; - /// \brief File name of the file that will provide record layouts + /// File name of the file that will provide record layouts /// (in the format produced by -fdump-record-layouts). std::string OverrideRecordLayoutsFile; - /// \brief Auxiliary triple for CUDA compilation. + /// Auxiliary triple for CUDA compilation. std::string AuxTriple; - /// \brief If non-empty, search the pch input file as if it was a header + /// If non-empty, search the pch input file as if it was a header /// included by this file. std::string FindPchSource; Index: cfe/trunk/include/clang/Frontend/LayoutOverrideSource.h =================================================================== --- cfe/trunk/include/clang/Frontend/LayoutOverrideSource.h +++ cfe/trunk/include/clang/Frontend/LayoutOverrideSource.h @@ -16,36 +16,36 @@ #include "llvm/ADT/StringRef.h" namespace clang { - /// \brief An external AST source that overrides the layout of + /// An external AST source that overrides the layout of /// a specified set of record types. /// /// This class is used only for testing the ability of external AST sources /// to override the layout of record types. Its input is the output format /// of the command-line argument -fdump-record-layouts. class LayoutOverrideSource : public ExternalASTSource { - /// \brief The layout of a given record. + /// The layout of a given record. struct Layout { - /// \brief The size of the record. + /// The size of the record. uint64_t Size; - /// \brief The alignment of the record. + /// The alignment of the record. uint64_t Align; - /// \brief The offsets of the fields, in source order. + /// The offsets of the fields, in source order. SmallVector<uint64_t, 8> FieldOffsets; }; - /// \brief The set of layouts that will be overridden. + /// The set of layouts that will be overridden. llvm::StringMap<Layout> Layouts; public: - /// \brief Create a new AST source that overrides the layout of some + /// Create a new AST source that overrides the layout of some /// set of record types. /// /// The file is the result of passing -fdump-record-layouts to a file. explicit LayoutOverrideSource(StringRef Filename); - /// \brief If this particular record type has an overridden layout, + /// If this particular record type has an overridden layout, /// return that layout. bool layoutRecordType(const RecordDecl *Record, @@ -55,7 +55,7 @@ llvm::DenseMap<const CXXRecordDecl *, CharUnits> &VirtualBaseOffsets) override; - /// \brief Dump the overridden layouts. + /// Dump the overridden layouts. void dump(); }; } Index: cfe/trunk/include/clang/Frontend/PrecompiledPreamble.h =================================================================== --- cfe/trunk/include/clang/Frontend/PrecompiledPreamble.h +++ cfe/trunk/include/clang/Frontend/PrecompiledPreamble.h @@ -38,7 +38,7 @@ class DeclGroupRef; class PCHContainerOperations; -/// \brief Runs lexer to compute suggested preamble bounds. +/// Runs lexer to compute suggested preamble bounds. PreambleBounds ComputePreambleBounds(const LangOptions &LangOpts, llvm::MemoryBuffer *Buffer, unsigned MaxLines); @@ -53,7 +53,7 @@ struct PreambleFileHash; public: - /// \brief Try to build PrecompiledPreamble for \p Invocation. See + /// Try to build PrecompiledPreamble for \p Invocation. See /// BuildPreambleError for possible error codes. /// /// \param Invocation Original CompilerInvocation with options to compile the Index: cfe/trunk/include/clang/Frontend/SerializedDiagnosticPrinter.h =================================================================== --- cfe/trunk/include/clang/Frontend/SerializedDiagnosticPrinter.h +++ cfe/trunk/include/clang/Frontend/SerializedDiagnosticPrinter.h @@ -25,7 +25,7 @@ namespace serialized_diags { -/// \brief Returns a DiagnosticConsumer that serializes diagnostics to +/// Returns a DiagnosticConsumer that serializes diagnostics to /// a bitcode file. /// /// The created DiagnosticConsumer is designed for quick and lightweight Index: cfe/trunk/include/clang/Frontend/SerializedDiagnosticReader.h =================================================================== --- cfe/trunk/include/clang/Frontend/SerializedDiagnosticReader.h +++ cfe/trunk/include/clang/Frontend/SerializedDiagnosticReader.h @@ -43,7 +43,7 @@ return std::error_code(static_cast<int>(E), SDErrorCategory()); } -/// \brief A location that is represented in the serialized diagnostics. +/// A location that is represented in the serialized diagnostics. struct Location { unsigned FileID; unsigned Line; @@ -54,7 +54,7 @@ : FileID(FileID), Line(Line), Col(Col), Offset(Offset) {} }; -/// \brief A base class that handles reading serialized diagnostics from a file. +/// A base class that handles reading serialized diagnostics from a file. /// /// Subclasses should override the visit* methods with their logic for handling /// the various constructs that are found in serialized diagnostics. @@ -63,66 +63,66 @@ SerializedDiagnosticReader() = default; virtual ~SerializedDiagnosticReader() = default; - /// \brief Read the diagnostics in \c File + /// Read the diagnostics in \c File std::error_code readDiagnostics(StringRef File); private: enum class Cursor; - /// \brief Read to the next record or block to process. + /// Read to the next record or block to process. llvm::ErrorOr<Cursor> skipUntilRecordOrBlock(llvm::BitstreamCursor &Stream, unsigned &BlockOrRecordId); - /// \brief Read a metadata block from \c Stream. + /// Read a metadata block from \c Stream. std::error_code readMetaBlock(llvm::BitstreamCursor &Stream); - /// \brief Read a diagnostic block from \c Stream. + /// Read a diagnostic block from \c Stream. std::error_code readDiagnosticBlock(llvm::BitstreamCursor &Stream); protected: - /// \brief Visit the start of a diagnostic block. + /// Visit the start of a diagnostic block. virtual std::error_code visitStartOfDiagnostic() { return {}; } - /// \brief Visit the end of a diagnostic block. + /// Visit the end of a diagnostic block. virtual std::error_code visitEndOfDiagnostic() { return {}; } - /// \brief Visit a category. This associates the category \c ID to a \c Name. + /// Visit a category. This associates the category \c ID to a \c Name. virtual std::error_code visitCategoryRecord(unsigned ID, StringRef Name) { return {}; } - /// \brief Visit a flag. This associates the flag's \c ID to a \c Name. + /// Visit a flag. This associates the flag's \c ID to a \c Name. virtual std::error_code visitDiagFlagRecord(unsigned ID, StringRef Name) { return {}; } - /// \brief Visit a diagnostic. + /// Visit a diagnostic. virtual std::error_code visitDiagnosticRecord(unsigned Severity, const Location &Location, unsigned Category, unsigned Flag, StringRef Message) { return {}; } - /// \brief Visit a filename. This associates the file's \c ID to a \c Name. + /// Visit a filename. This associates the file's \c ID to a \c Name. virtual std::error_code visitFilenameRecord(unsigned ID, unsigned Size, unsigned Timestamp, StringRef Name) { return {}; } - /// \brief Visit a fixit hint. + /// Visit a fixit hint. virtual std::error_code visitFixitRecord(const Location &Start, const Location &End, StringRef Text) { return {}; } - /// \brief Visit a source range. + /// Visit a source range. virtual std::error_code visitSourceRangeRecord(const Location &Start, const Location &End) { return {}; } - /// \brief Visit the version of the set of diagnostics. + /// Visit the version of the set of diagnostics. virtual std::error_code visitVersionRecord(unsigned Version) { return {}; } }; Index: cfe/trunk/include/clang/Frontend/SerializedDiagnostics.h =================================================================== --- cfe/trunk/include/clang/Frontend/SerializedDiagnostics.h +++ cfe/trunk/include/clang/Frontend/SerializedDiagnostics.h @@ -16,11 +16,11 @@ namespace serialized_diags { enum BlockIDs { - /// \brief A top-level block which represents any meta data associated + /// A top-level block which represents any meta data associated /// with the diagostics, including versioning of the format. BLOCK_META = llvm::bitc::FIRST_APPLICATION_BLOCKID, - /// \brief The this block acts as a container for all the information + /// The this block acts as a container for all the information /// for a specific diagnostic. BLOCK_DIAG }; @@ -37,7 +37,7 @@ RECORD_LAST = RECORD_FIXIT }; -/// \brief A stable version of DiagnosticIDs::Level. +/// A stable version of DiagnosticIDs::Level. /// /// Do not change the order of values in this enum, and please increment the /// serialized diagnostics version number when you add to it. @@ -50,7 +50,7 @@ Remark }; -/// \brief The serialized diagnostics version number. +/// The serialized diagnostics version number. enum { VersionNumber = 2 }; } // end serialized_diags namespace Index: cfe/trunk/include/clang/Frontend/TextDiagnostic.h =================================================================== --- cfe/trunk/include/clang/Frontend/TextDiagnostic.h +++ cfe/trunk/include/clang/Frontend/TextDiagnostic.h @@ -20,7 +20,7 @@ namespace clang { -/// \brief Class to encapsulate the logic for formatting and printing a textual +/// Class to encapsulate the logic for formatting and printing a textual /// diagnostic message. /// /// This class provides an interface for building and emitting a textual @@ -42,7 +42,7 @@ ~TextDiagnostic() override; - /// \brief Print the diagonstic level to a raw_ostream. + /// Print the diagonstic level to a raw_ostream. /// /// This is a static helper that handles colorizing the level and formatting /// it into an arbitrary output stream. This is used internally by the @@ -54,7 +54,7 @@ bool ShowColors, bool CLFallbackMode = false); - /// \brief Pretty-print a diagnostic message to a raw_ostream. + /// Pretty-print a diagnostic message to a raw_ostream. /// /// This is a static helper to handle the line wrapping, colorizing, and /// rendering of a diagnostic message to a particular ostream. It is Index: cfe/trunk/include/clang/Frontend/TextDiagnosticPrinter.h =================================================================== --- cfe/trunk/include/clang/Frontend/TextDiagnosticPrinter.h +++ cfe/trunk/include/clang/Frontend/TextDiagnosticPrinter.h @@ -29,7 +29,7 @@ raw_ostream &OS; IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts; - /// \brief Handle to the currently active text diagnostic emitter. + /// Handle to the currently active text diagnostic emitter. std::unique_ptr<TextDiagnostic> TextDiag; /// A string to prefix to error messages. Index: cfe/trunk/include/clang/Frontend/VerifyDiagnosticConsumer.h =================================================================== --- cfe/trunk/include/clang/Frontend/VerifyDiagnosticConsumer.h +++ cfe/trunk/include/clang/Frontend/VerifyDiagnosticConsumer.h @@ -273,7 +273,7 @@ IsUnparsedNoDirectives }; - /// \brief Update lists of parsed and unparsed files. + /// Update lists of parsed and unparsed files. void UpdateParsedFileStatus(SourceManager &SM, FileID FID, ParsedStatus PS); bool HandleComment(Preprocessor &PP, SourceRange Comment) override; Index: cfe/trunk/include/clang/Index/USRGeneration.h =================================================================== --- cfe/trunk/include/clang/Index/USRGeneration.h +++ cfe/trunk/include/clang/Index/USRGeneration.h @@ -25,33 +25,33 @@ return "c:"; } -/// \brief Generate a USR for a Decl, including the USR prefix. +/// Generate a USR for a Decl, including the USR prefix. /// \returns true if the results should be ignored, false otherwise. bool generateUSRForDecl(const Decl *D, SmallVectorImpl<char> &Buf); -/// \brief Generate a USR fragment for an Objective-C class. +/// Generate a USR fragment for an Objective-C class. void generateUSRForObjCClass(StringRef Cls, raw_ostream &OS, StringRef ExtSymbolDefinedIn = "", StringRef CategoryContextExtSymbolDefinedIn = ""); -/// \brief Generate a USR fragment for an Objective-C class category. +/// Generate a USR fragment for an Objective-C class category. void generateUSRForObjCCategory(StringRef Cls, StringRef Cat, raw_ostream &OS, StringRef ClsExtSymbolDefinedIn = "", StringRef CatExtSymbolDefinedIn = ""); -/// \brief Generate a USR fragment for an Objective-C instance variable. The +/// Generate a USR fragment for an Objective-C instance variable. The /// complete USR can be created by concatenating the USR for the /// encompassing class with this USR fragment. void generateUSRForObjCIvar(StringRef Ivar, raw_ostream &OS); -/// \brief Generate a USR fragment for an Objective-C method. +/// Generate a USR fragment for an Objective-C method. void generateUSRForObjCMethod(StringRef Sel, bool IsInstanceMethod, raw_ostream &OS); -/// \brief Generate a USR fragment for an Objective-C property. +/// Generate a USR fragment for an Objective-C property. void generateUSRForObjCProperty(StringRef Prop, bool isClassProp, raw_ostream &OS); -/// \brief Generate a USR fragment for an Objective-C protocol. +/// Generate a USR fragment for an Objective-C protocol. void generateUSRForObjCProtocol(StringRef Prot, raw_ostream &OS, StringRef ExtSymbolDefinedIn = ""); @@ -62,7 +62,7 @@ /// Generate a USR fragment for an enum constant. void generateUSRForEnumConstant(StringRef EnumConstantName, raw_ostream &OS); -/// \brief Generate a USR for a macro, including the USR prefix. +/// Generate a USR for a macro, including the USR prefix. /// /// \returns true on error, false on success. bool generateUSRForMacro(const MacroDefinitionRecord *MD, Index: cfe/trunk/include/clang/Lex/CodeCompletionHandler.h =================================================================== --- cfe/trunk/include/clang/Lex/CodeCompletionHandler.h +++ cfe/trunk/include/clang/Lex/CodeCompletionHandler.h @@ -19,13 +19,13 @@ class IdentifierInfo; class MacroInfo; -/// \brief Callback handler that receives notifications when performing code +/// Callback handler that receives notifications when performing code /// completion within the preprocessor. class CodeCompletionHandler { public: virtual ~CodeCompletionHandler(); - /// \brief Callback invoked when performing code completion for a preprocessor + /// Callback invoked when performing code completion for a preprocessor /// directive. /// /// This callback will be invoked when the preprocessor processes a '#' at the @@ -35,22 +35,22 @@ /// already. virtual void CodeCompleteDirective(bool InConditional) { } - /// \brief Callback invoked when performing code completion within a block of + /// Callback invoked when performing code completion within a block of /// code that was excluded due to preprocessor conditionals. virtual void CodeCompleteInConditionalExclusion() { } - /// \brief Callback invoked when performing code completion in a context + /// Callback invoked when performing code completion in a context /// where the name of a macro is expected. /// /// \param IsDefinition Whether this is the definition of a macro, e.g., /// in a \#define. virtual void CodeCompleteMacroName(bool IsDefinition) { } - /// \brief Callback invoked when performing code completion in a preprocessor + /// Callback invoked when performing code completion in a preprocessor /// expression, such as the condition of an \#if or \#elif directive. virtual void CodeCompletePreprocessorExpression() { } - /// \brief Callback invoked when performing code completion inside a + /// Callback invoked when performing code completion inside a /// function-like macro argument. /// /// There will be another callback invocation after the macro arguments are @@ -60,7 +60,7 @@ MacroInfo *MacroInfo, unsigned ArgumentIndex) { } - /// \brief Callback invoked when performing code completion in a part of the + /// Callback invoked when performing code completion in a part of the /// file where we expect natural language, e.g., a comment, string, or /// \#error directive. virtual void CodeCompleteNaturalLanguage() { } Index: cfe/trunk/include/clang/Lex/DirectoryLookup.h =================================================================== --- cfe/trunk/include/clang/Lex/DirectoryLookup.h +++ cfe/trunk/include/clang/Lex/DirectoryLookup.h @@ -55,10 +55,10 @@ /// normal directory, a framework, or a headermap. unsigned LookupType : 2; - /// \brief Whether this is a header map used when building a framework. + /// Whether this is a header map used when building a framework. unsigned IsIndexHeaderMap : 1; - /// \brief Whether we've performed an exhaustive search for module maps + /// Whether we've performed an exhaustive search for module maps /// within the subdirectories of this directory. unsigned SearchedAllModuleMaps : 1; @@ -118,11 +118,11 @@ /// isHeaderMap - Return true if this is a header map, not a normal directory. bool isHeaderMap() const { return getLookupType() == LT_HeaderMap; } - /// \brief Determine whether we have already searched this entire + /// Determine whether we have already searched this entire /// directory for module maps. bool haveSearchedAllModuleMaps() const { return SearchedAllModuleMaps; } - /// \brief Specify whether we have already searched all of the subdirectories + /// Specify whether we have already searched all of the subdirectories /// for module maps. void setSearchedAllModuleMaps(bool SAMM) { SearchedAllModuleMaps = SAMM; @@ -134,12 +134,12 @@ return (SrcMgr::CharacteristicKind)DirCharacteristic; } - /// \brief Whether this describes a system header directory. + /// Whether this describes a system header directory. bool isSystemHeaderDirectory() const { return getDirCharacteristic() != SrcMgr::C_User; } - /// \brief Whether this header map is building a framework or not. + /// Whether this header map is building a framework or not. bool isIndexHeaderMap() const { return isHeaderMap() && IsIndexHeaderMap; } Index: cfe/trunk/include/clang/Lex/ExternalPreprocessorSource.h =================================================================== --- cfe/trunk/include/clang/Lex/ExternalPreprocessorSource.h +++ cfe/trunk/include/clang/Lex/ExternalPreprocessorSource.h @@ -19,7 +19,7 @@ class IdentifierInfo; class Module; -/// \brief Abstract interface for external sources of preprocessor +/// Abstract interface for external sources of preprocessor /// information. /// /// This abstract class allows an external sources (such as the \c ASTReader) @@ -28,18 +28,18 @@ public: virtual ~ExternalPreprocessorSource(); - /// \brief Read the set of macros defined by this external macro source. + /// Read the set of macros defined by this external macro source. virtual void ReadDefinedMacros() = 0; - /// \brief Update an out-of-date identifier. + /// Update an out-of-date identifier. virtual void updateOutOfDateIdentifier(IdentifierInfo &II) = 0; - /// \brief Return the identifier associated with the given ID number. + /// Return the identifier associated with the given ID number. /// /// The ID 0 is associated with the NULL identifier. virtual IdentifierInfo *GetIdentifier(unsigned ID) = 0; - /// \brief Map a module ID to a module. + /// Map a module ID to a module. virtual Module *getModule(unsigned ModuleID) = 0; }; Index: cfe/trunk/include/clang/Lex/HeaderSearch.h =================================================================== --- cfe/trunk/include/clang/Lex/HeaderSearch.h +++ cfe/trunk/include/clang/Lex/HeaderSearch.h @@ -46,13 +46,13 @@ class Preprocessor; class TargetInfo; -/// \brief The preprocessor keeps track of this information for each +/// The preprocessor keeps track of this information for each /// file that is \#included. struct HeaderFileInfo { - /// \brief True if this is a \#import'd or \#pragma once file. + /// True if this is a \#import'd or \#pragma once file. unsigned isImport : 1; - /// \brief True if this is a \#pragma once file. + /// True if this is a \#pragma once file. unsigned isPragmaOnce : 1; /// DirInfo - Keep track of whether this is a system header, and if so, @@ -61,21 +61,21 @@ /// SrcMgr::CharacteristicKind. unsigned DirInfo : 3; - /// \brief Whether this header file info was supplied by an external source, + /// Whether this header file info was supplied by an external source, /// and has not changed since. unsigned External : 1; - /// \brief Whether this header is part of a module. + /// Whether this header is part of a module. unsigned isModuleHeader : 1; - /// \brief Whether this header is part of the module that we are building. + /// Whether this header is part of the module that we are building. unsigned isCompilingModuleHeader : 1; - /// \brief Whether this structure is considered to already have been + /// Whether this structure is considered to already have been /// "resolved", meaning that it was loaded from the external source. unsigned Resolved : 1; - /// \brief Whether this is a header inside a framework that is currently + /// Whether this is a header inside a framework that is currently /// being built. /// /// When a framework is being built, the headers have not yet been placed @@ -84,13 +84,13 @@ /// those framework headers. unsigned IndexHeaderMapHeader : 1; - /// \brief Whether this file has been looked up as a header. + /// Whether this file has been looked up as a header. unsigned IsValid : 1; - /// \brief The number of times the file has been included already. + /// The number of times the file has been included already. unsigned short NumIncludes = 0; - /// \brief The ID number of the controlling macro. + /// The ID number of the controlling macro. /// /// This ID number will be non-zero when there is a controlling /// macro whose IdentifierInfo may not yet have been loaded from @@ -107,7 +107,7 @@ /// external storage. const IdentifierInfo *ControllingMacro = nullptr; - /// \brief If this header came from a framework include, this is the name + /// If this header came from a framework include, this is the name /// of the framework. StringRef Framework; @@ -116,12 +116,12 @@ External(false), isModuleHeader(false), isCompilingModuleHeader(false), Resolved(false), IndexHeaderMapHeader(false), IsValid(false) {} - /// \brief Retrieve the controlling macro for this header file, if + /// Retrieve the controlling macro for this header file, if /// any. const IdentifierInfo * getControllingMacro(ExternalPreprocessorSource *External); - /// \brief Determine whether this is a non-default header file info, e.g., + /// Determine whether this is a non-default header file info, e.g., /// it corresponds to an actual header we've included or tried to include. bool isNonDefault() const { return isImport || isPragmaOnce || NumIncludes || ControllingMacro || @@ -129,13 +129,13 @@ } }; -/// \brief An external source of header file information, which may supply +/// An external source of header file information, which may supply /// information about header files already included. class ExternalHeaderFileInfoSource { public: virtual ~ExternalHeaderFileInfoSource(); - /// \brief Retrieve the header file information for the given file entry. + /// Retrieve the header file information for the given file entry. /// /// \returns Header file information for the given file entry, with the /// \c External bit set. If the file entry is not known, return a @@ -143,7 +143,7 @@ virtual HeaderFileInfo GetHeaderFileInfo(const FileEntry *FE) = 0; }; -/// \brief Encapsulates the information needed to find the file referenced +/// Encapsulates the information needed to find the file referenced /// by a \#include or \#include_next, (sub-)framework lookup, etc. class HeaderSearch { friend class DirectoryLookup; @@ -159,7 +159,7 @@ bool IsUserSpecifiedSystemFramework; }; - /// \brief Header-search options used to initialize this header search. + /// Header-search options used to initialize this header search. std::shared_ptr<HeaderSearchOptions> HSOpts; DiagnosticsEngine &Diags; @@ -176,7 +176,7 @@ unsigned SystemDirIdx = 0; bool NoCurDirSearch = false; - /// \brief \#include prefixes for which the 'system header' property is + /// \#include prefixes for which the 'system header' property is /// overridden. /// /// For a \#include "x" or \#include \<x> directive, the last string in this @@ -184,10 +184,10 @@ /// a system header. std::vector<std::pair<std::string, bool>> SystemHeaderPrefixes; - /// \brief The path to the module cache. + /// The path to the module cache. std::string ModuleCachePath; - /// \brief All of the preprocessor-specific data about files that are + /// All of the preprocessor-specific data about files that are /// included, indexed by the FileEntry's UID. mutable std::vector<HeaderFileInfo> FileInfo; @@ -215,7 +215,7 @@ }; llvm::StringMap<LookupFileCacheInfo, llvm::BumpPtrAllocator> LookupFileCache; - /// \brief Collection mapping a framework or subframework + /// Collection mapping a framework or subframework /// name like "Carbon" to the Carbon.framework directory. llvm::StringMap<FrameworkCacheEntry, llvm::BumpPtrAllocator> FrameworkMap; @@ -230,26 +230,26 @@ /// headermaps. This vector owns the headermap. std::vector<std::pair<const FileEntry *, const HeaderMap *>> HeaderMaps; - /// \brief The mapping between modules and headers. + /// The mapping between modules and headers. mutable ModuleMap ModMap; - /// \brief Describes whether a given directory has a module map in it. + /// Describes whether a given directory has a module map in it. llvm::DenseMap<const DirectoryEntry *, bool> DirectoryHasModuleMap; - /// \brief Set of module map files we've already loaded, and a flag indicating + /// Set of module map files we've already loaded, and a flag indicating /// whether they were valid or not. llvm::DenseMap<const FileEntry *, bool> LoadedModuleMaps; - /// \brief Uniqued set of framework names, which is used to track which + /// Uniqued set of framework names, which is used to track which /// headers were included as framework headers. llvm::StringSet<llvm::BumpPtrAllocator> FrameworkNames; - /// \brief Entity used to resolve the identifier IDs of controlling + /// Entity used to resolve the identifier IDs of controlling /// macros into IdentifierInfo pointers, and keep the identifire up to date, /// as needed. ExternalPreprocessorSource *ExternalLookup = nullptr; - /// \brief Entity used to look up stored header file information. + /// Entity used to look up stored header file information. ExternalHeaderFileInfoSource *ExternalSource = nullptr; // Various statistics we track for performance analysis. @@ -266,13 +266,13 @@ HeaderSearch &operator=(const HeaderSearch &) = delete; ~HeaderSearch(); - /// \brief Retrieve the header-search options with which this header search + /// Retrieve the header-search options with which this header search /// was initialized. HeaderSearchOptions &getHeaderSearchOpts() const { return *HSOpts; } FileManager &getFileMgr() const { return FileMgr; } - /// \brief Interface for setting the file search paths. + /// Interface for setting the file search paths. void SetSearchPaths(const std::vector<DirectoryLookup> &dirs, unsigned angledDirIdx, unsigned systemDirIdx, bool noCurDirSearch) { @@ -285,7 +285,7 @@ //LookupFileCache.clear(); } - /// \brief Add an additional search path. + /// Add an additional search path. void AddSearchPath(const DirectoryLookup &dir, bool isAngled) { unsigned idx = isAngled ? SystemDirIdx : AngledDirIdx; SearchDirs.insert(SearchDirs.begin() + idx, dir); @@ -294,15 +294,15 @@ SystemDirIdx++; } - /// \brief Set the list of system header prefixes. + /// Set the list of system header prefixes. void SetSystemHeaderPrefixes(ArrayRef<std::pair<std::string, bool>> P) { SystemHeaderPrefixes.assign(P.begin(), P.end()); } - /// \brief Checks whether the map exists or not. + /// Checks whether the map exists or not. bool HasIncludeAliasMap() const { return (bool)IncludeAliases; } - /// \brief Map the source include name to the dest include name. + /// Map the source include name to the dest include name. /// /// The Source should include the angle brackets or quotes, the dest /// should not. This allows for distinction between <> and "" headers. @@ -326,20 +326,20 @@ return {}; } - /// \brief Set the path to the module cache. + /// Set the path to the module cache. void setModuleCachePath(StringRef CachePath) { ModuleCachePath = CachePath; } - /// \brief Retrieve the path to the module cache. + /// Retrieve the path to the module cache. StringRef getModuleCachePath() const { return ModuleCachePath; } - /// \brief Consider modules when including files from this directory. + /// Consider modules when including files from this directory. void setDirectoryHasModuleMap(const DirectoryEntry* Dir) { DirectoryHasModuleMap[Dir] = true; } - /// \brief Forget everything we know about headers so far. + /// Forget everything we know about headers so far. void ClearFileInfo() { FileInfo.clear(); } @@ -352,16 +352,16 @@ return ExternalLookup; } - /// \brief Set the external source of header information. + /// Set the external source of header information. void SetExternalSource(ExternalHeaderFileInfoSource *ES) { ExternalSource = ES; } - /// \brief Set the target information for the header search, if not + /// Set the target information for the header search, if not /// already known. void setTarget(const TargetInfo &Target); - /// \brief Given a "foo" or \<foo> reference, look up the indicated file, + /// Given a "foo" or \<foo> reference, look up the indicated file, /// return null on failure. /// /// \returns If successful, this returns 'UsedDir', the DirectoryLookup member @@ -399,7 +399,7 @@ Module *RequestingModule, ModuleMap::KnownHeader *SuggestedModule, bool *IsMapped, bool SkipCache = false, bool BuildSystemModule = false); - /// \brief Look up a subframework for the specified \#include file. + /// Look up a subframework for the specified \#include file. /// /// For example, if \#include'ing <HIToolbox/HIToolbox.h> from /// within ".../Carbon.framework/Headers/Carbon.h", check to see if @@ -410,13 +410,13 @@ SmallVectorImpl<char> *SearchPath, SmallVectorImpl<char> *RelativePath, Module *RequestingModule, ModuleMap::KnownHeader *SuggestedModule); - /// \brief Look up the specified framework name in our framework cache. + /// Look up the specified framework name in our framework cache. /// \returns The DirectoryEntry it is in if we know, null otherwise. FrameworkCacheEntry &LookupFrameworkCache(StringRef FWName) { return FrameworkMap[FWName]; } - /// \brief Mark the specified file as a target of a \#include, + /// Mark the specified file as a target of a \#include, /// \#include_next, or \#import directive. /// /// \return false if \#including the file will have no effect or true @@ -425,13 +425,13 @@ bool isImport, bool ModulesEnabled, Module *CorrespondingModule); - /// \brief Return whether the specified file is a normal header, + /// Return whether the specified file is a normal header, /// a system header, or a C++ friendly system header. SrcMgr::CharacteristicKind getFileDirFlavor(const FileEntry *File) { return (SrcMgr::CharacteristicKind)getFileInfo(File).DirInfo; } - /// \brief Mark the specified file as a "once only" file, e.g. due to + /// Mark the specified file as a "once only" file, e.g. due to /// \#pragma once. void MarkFileIncludeOnce(const FileEntry *File) { HeaderFileInfo &FI = getFileInfo(File); @@ -439,24 +439,24 @@ FI.isPragmaOnce = true; } - /// \brief Mark the specified file as a system header, e.g. due to + /// Mark the specified file as a system header, e.g. due to /// \#pragma GCC system_header. void MarkFileSystemHeader(const FileEntry *File) { getFileInfo(File).DirInfo = SrcMgr::C_System; } - /// \brief Mark the specified file as part of a module. + /// Mark the specified file as part of a module. void MarkFileModuleHeader(const FileEntry *File, ModuleMap::ModuleHeaderRole Role, bool IsCompiledModuleHeader); - /// \brief Increment the count for the number of times the specified + /// Increment the count for the number of times the specified /// FileEntry has been entered. void IncrementIncludeCount(const FileEntry *File) { ++getFileInfo(File).NumIncludes; } - /// \brief Mark the specified file as having a controlling macro. + /// Mark the specified file as having a controlling macro. /// /// This is used by the multiple-include optimization to eliminate /// no-op \#includes. @@ -465,12 +465,12 @@ getFileInfo(File).ControllingMacro = ControllingMacro; } - /// \brief Return true if this is the first time encountering this header. + /// Return true if this is the first time encountering this header. bool FirstTimeLexingFile(const FileEntry *File) { return getFileInfo(File).NumIncludes == 1; } - /// \brief Determine whether this file is intended to be safe from + /// Determine whether this file is intended to be safe from /// multiple inclusions, e.g., it has \#pragma once or a controlling /// macro. /// @@ -481,10 +481,10 @@ /// FileEntry, uniquing them through the 'HeaderMaps' datastructure. const HeaderMap *CreateHeaderMap(const FileEntry *FE); - /// \brief Get filenames for all registered header maps. + /// Get filenames for all registered header maps. void getHeaderMapFileNames(SmallVectorImpl<std::string> &Names) const; - /// \brief Retrieve the name of the cached module file that should be used + /// Retrieve the name of the cached module file that should be used /// to load the given module. /// /// \param Module The module whose module file name will be returned. @@ -493,7 +493,7 @@ /// or an empty string if this module does not correspond to any module file. std::string getCachedModuleFileName(Module *Module); - /// \brief Retrieve the name of the prebuilt module file that should be used + /// Retrieve the name of the prebuilt module file that should be used /// to load a module with the given name. /// /// \param ModuleName The module whose module file name will be returned. @@ -506,7 +506,7 @@ std::string getPrebuiltModuleFileName(StringRef ModuleName, bool FileMapOnly = false); - /// \brief Retrieve the name of the (to-be-)cached module file that should + /// Retrieve the name of the (to-be-)cached module file that should /// be used to load a module with the given name. /// /// \param ModuleName The module whose module file name will be returned. @@ -519,7 +519,7 @@ std::string getCachedModuleFileName(StringRef ModuleName, StringRef ModuleMapPath); - /// \brief Lookup a module Search for a module with the given name. + /// Lookup a module Search for a module with the given name. /// /// \param ModuleName The name of the module we're looking for. /// @@ -530,14 +530,14 @@ /// \returns The module with the given name. Module *lookupModule(StringRef ModuleName, bool AllowSearch = true); - /// \brief Try to find a module map file in the given directory, returning + /// Try to find a module map file in the given directory, returning /// \c nullptr if none is found. const FileEntry *lookupModuleMapFile(const DirectoryEntry *Dir, bool IsFramework); void IncrementFrameworkLookupCount() { ++NumFrameworkLookups; } - /// \brief Determine whether there is a module map that may map the header + /// Determine whether there is a module map that may map the header /// with the given file name to a (sub)module. /// Always returns false if modules are disabled. /// @@ -551,14 +551,14 @@ bool hasModuleMap(StringRef Filename, const DirectoryEntry *Root, bool IsSystem); - /// \brief Retrieve the module that corresponds to the given file, if any. + /// Retrieve the module that corresponds to the given file, if any. /// /// \param File The header that we wish to map to a module. /// \param AllowTextual Whether we want to find textual headers too. ModuleMap::KnownHeader findModuleForHeader(const FileEntry *File, bool AllowTextual = false) const; - /// \brief Read the contents of the given module map file. + /// Read the contents of the given module map file. /// /// \param File The module map file. /// \param IsSystem Whether this file is in a system header directory. @@ -575,16 +575,16 @@ FileID ID = FileID(), unsigned *Offset = nullptr, StringRef OriginalModuleMapFile = StringRef()); - /// \brief Collect the set of all known, top-level modules. + /// Collect the set of all known, top-level modules. /// /// \param Modules Will be filled with the set of known, top-level modules. void collectAllModules(SmallVectorImpl<Module *> &Modules); - /// \brief Load all known, top-level system modules. + /// Load all known, top-level system modules. void loadTopLevelSystemModules(); private: - /// \brief Lookup a module with the given module name and search-name. + /// Lookup a module with the given module name and search-name. /// /// \param ModuleName The name of the module we're looking for. /// @@ -596,7 +596,7 @@ /// \returns The module named ModuleName. Module *lookupModule(StringRef ModuleName, StringRef SearchName); - /// \brief Retrieve a module with the given name, which may be part of the + /// Retrieve a module with the given name, which may be part of the /// given framework. /// /// \param Name The name of the module to retrieve. @@ -611,11 +611,11 @@ const DirectoryEntry *Dir, bool IsSystem); - /// \brief Load all of the module maps within the immediate subdirectories + /// Load all of the module maps within the immediate subdirectories /// of the given search directory. void loadSubdirectoryModuleMaps(DirectoryLookup &SearchDir); - /// \brief Find and suggest a usable module for the given file. + /// Find and suggest a usable module for the given file. /// /// \return \c true if the file can be used, \c false if we are not permitted to /// find this file due to requirements from \p RequestingModule. @@ -625,7 +625,7 @@ ModuleMap::KnownHeader *SuggestedModule, bool IsSystemHeaderDir); - /// \brief Find and suggest a usable module for the given file, which is part of + /// Find and suggest a usable module for the given file, which is part of /// the specified framework. /// /// \return \c true if the file can be used, \c false if we are not permitted to @@ -634,7 +634,7 @@ const FileEntry *File, StringRef FrameworkDir, Module *RequestingModule, ModuleMap::KnownHeader *SuggestedModule, bool IsSystemFramework); - /// \brief Look up the file with the specified name and determine its owning + /// Look up the file with the specified name and determine its owning /// module. const FileEntry * getFileAndSuggestModule(StringRef FileName, SourceLocation IncludeLoc, @@ -643,19 +643,19 @@ ModuleMap::KnownHeader *SuggestedModule); public: - /// \brief Retrieve the module map. + /// Retrieve the module map. ModuleMap &getModuleMap() { return ModMap; } - /// \brief Retrieve the module map. + /// Retrieve the module map. const ModuleMap &getModuleMap() const { return ModMap; } unsigned header_file_size() const { return FileInfo.size(); } - /// \brief Return the HeaderFileInfo structure for the specified FileEntry, + /// Return the HeaderFileInfo structure for the specified FileEntry, /// in preparation for updating it in some way. HeaderFileInfo &getFileInfo(const FileEntry *FE); - /// \brief Return the HeaderFileInfo structure for the specified FileEntry, + /// Return the HeaderFileInfo structure for the specified FileEntry, /// if it has ever been filled in. /// \param WantExternal Whether the caller wants purely-external header file /// info (where \p External is true). @@ -691,10 +691,10 @@ search_dir_iterator system_dir_end() const { return SearchDirs.end(); } - /// \brief Retrieve a uniqued framework name. + /// Retrieve a uniqued framework name. StringRef getUniqueFrameworkName(StringRef Framework); - /// \brief Suggest a path by which the specified file could be found, for + /// Suggest a path by which the specified file could be found, for /// use in diagnostics to suggest a #include. /// /// \param IsSystem If non-null, filled in to indicate whether the suggested @@ -702,7 +702,7 @@ std::string suggestPathToFileForDiagnostics(const FileEntry *File, bool *IsSystem = nullptr); - /// \brief Suggest a path by which the specified file could be found, for + /// Suggest a path by which the specified file could be found, for /// use in diagnostics to suggest a #include. /// /// \param WorkingDir If non-empty, this will be prepended to search directory @@ -716,18 +716,18 @@ size_t getTotalMemory() const; private: - /// \brief Describes what happened when we tried to load a module map file. + /// Describes what happened when we tried to load a module map file. enum LoadModuleMapResult { - /// \brief The module map file had already been loaded. + /// The module map file had already been loaded. LMM_AlreadyLoaded, - /// \brief The module map file was loaded by this invocation. + /// The module map file was loaded by this invocation. LMM_NewlyLoaded, - /// \brief There is was directory with the given name. + /// There is was directory with the given name. LMM_NoDirectory, - /// \brief There was either no module map file or the module map file was + /// There was either no module map file or the module map file was /// invalid. LMM_InvalidModuleMap }; @@ -738,7 +738,7 @@ FileID ID = FileID(), unsigned *Offset = nullptr); - /// \brief Try to load the module map file in the given directory. + /// Try to load the module map file in the given directory. /// /// \param DirName The name of the directory where we will look for a module /// map file. @@ -750,7 +750,7 @@ LoadModuleMapResult loadModuleMapFile(StringRef DirName, bool IsSystem, bool IsFramework); - /// \brief Try to load the module map file in the given directory. + /// Try to load the module map file in the given directory. /// /// \param Dir The directory where we will look for a module map file. /// \param IsSystem Whether this is a system header directory. Index: cfe/trunk/include/clang/Lex/HeaderSearchOptions.h =================================================================== --- cfe/trunk/include/clang/Lex/HeaderSearchOptions.h +++ cfe/trunk/include/clang/Lex/HeaderSearchOptions.h @@ -108,32 +108,32 @@ /// etc.). std::string ResourceDir; - /// \brief The directory used for the module cache. + /// The directory used for the module cache. std::string ModuleCachePath; - /// \brief The directory used for a user build. + /// The directory used for a user build. std::string ModuleUserBuildPath; - /// \brief The mapping of module names to prebuilt module files. + /// The mapping of module names to prebuilt module files. std::map<std::string, std::string> PrebuiltModuleFiles; - /// \brief The directories used to load prebuilt module files. + /// The directories used to load prebuilt module files. std::vector<std::string> PrebuiltModulePaths; /// The module/pch container format. std::string ModuleFormat; - /// \brief Whether we should disable the use of the hash string within the + /// Whether we should disable the use of the hash string within the /// module cache. /// /// Note: Only used for testing! unsigned DisableModuleHash : 1; - /// \brief Implicit module maps. This option is enabld by default when + /// Implicit module maps. This option is enabld by default when /// modules is enabled. unsigned ImplicitModuleMaps : 1; - /// \brief Set the 'home directory' of a module map file to the current + /// Set the 'home directory' of a module map file to the current /// working directory (or the home directory of the module map file that /// contained the 'extern module' directive importing this module map file /// if any) rather than the directory containing the module map file. @@ -142,7 +142,7 @@ /// file. unsigned ModuleMapFileHomeIsCwd : 1; - /// \brief The interval (in seconds) between pruning operations. + /// The interval (in seconds) between pruning operations. /// /// This operation is expensive, because it requires Clang to walk through /// the directory structure of the module cache, stat()'ing and removing @@ -151,7 +151,7 @@ /// The default value is large, e.g., the operation runs once a week. unsigned ModuleCachePruneInterval = 7 * 24 * 60 * 60; - /// \brief The time (in seconds) after which an unused module file will be + /// The time (in seconds) after which an unused module file will be /// considered unused and will, therefore, be pruned. /// /// When the module cache is pruned, any module file that has not been @@ -160,17 +160,17 @@ /// regenerated often. unsigned ModuleCachePruneAfter = 31 * 24 * 60 * 60; - /// \brief The time in seconds when the build session started. + /// The time in seconds when the build session started. /// /// This time is used by other optimizations in header search and module /// loading. uint64_t BuildSessionTimestamp = 0; - /// \brief The set of macro names that should be ignored for the purposes + /// The set of macro names that should be ignored for the purposes /// of computing the module hash. llvm::SmallSetVector<llvm::CachedHashString, 16> ModulesIgnoreMacros; - /// \brief The set of user-provided virtual filesystem overlay files. + /// The set of user-provided virtual filesystem overlay files. std::vector<std::string> VFSOverlayFiles; /// Include the compiler builtin includes. @@ -188,12 +188,12 @@ /// Whether header search information should be output as for -v. unsigned Verbose : 1; - /// \brief If true, skip verifying input files used by modules if the + /// If true, skip verifying input files used by modules if the /// module was already verified during this build session (see /// \c BuildSessionTimestamp). unsigned ModulesValidateOncePerBuildSession : 1; - /// \brief Whether to validate system input files when a module is loaded. + /// Whether to validate system input files when a module is loaded. unsigned ModulesValidateSystemHeaders : 1; /// Whether the module includes debug information (-gmodules). Index: cfe/trunk/include/clang/Lex/Lexer.h =================================================================== --- cfe/trunk/include/clang/Lex/Lexer.h +++ cfe/trunk/include/clang/Lex/Lexer.h @@ -57,10 +57,10 @@ /// PreprocessorOptions::PrecompiledPreambleBytes. /// The preamble includes the BOM, if any. struct PreambleBounds { - /// \brief Size of the preamble in bytes. + /// Size of the preamble in bytes. unsigned Size; - /// \brief Whether the preamble ends at the start of a new line. + /// Whether the preamble ends at the start of a new line. /// /// Used to inform the lexer as to whether it's starting at the beginning of /// a line after skipping the preamble. @@ -263,7 +263,7 @@ return getSourceLocation(BufferPtr); } - /// \brief Return the current location in the buffer. + /// Return the current location in the buffer. const char *getBufferLocation() const { return BufferPtr; } /// Stringify - Convert the specified string into a C string by i) escaping @@ -322,14 +322,14 @@ const SourceManager &SM, const LangOptions &LangOpts); - /// \brief Relex the token at the specified location. + /// Relex the token at the specified location. /// \returns true if there was a failure, false on success. static bool getRawToken(SourceLocation Loc, Token &Result, const SourceManager &SM, const LangOptions &LangOpts, bool IgnoreWhiteSpace = false); - /// \brief Given a location any where in a source buffer, find the location + /// Given a location any where in a source buffer, find the location /// that corresponds to the beginning of the token in which the original /// source location lands. static SourceLocation GetBeginningOfToken(SourceLocation Loc, @@ -354,7 +354,7 @@ getTokenPrefixLength(TokStart, Characters, SM, LangOpts)); } - /// \brief Computes the source location just past the end of the + /// Computes the source location just past the end of the /// token at this source location. /// /// This routine can be used to produce a source location that @@ -373,7 +373,7 @@ const SourceManager &SM, const LangOptions &LangOpts); - /// \brief Given a token range, produce a corresponding CharSourceRange that + /// Given a token range, produce a corresponding CharSourceRange that /// is not a token range. This allows the source range to be used by /// components that don't have access to the lexer and thus can't find the /// end of the range for themselves. @@ -393,7 +393,7 @@ : Range; } - /// \brief Returns true if the given MacroID location points at the first + /// Returns true if the given MacroID location points at the first /// token of the macro expansion. /// /// \param MacroBegin If non-null and function returns true, it is set to @@ -403,7 +403,7 @@ const LangOptions &LangOpts, SourceLocation *MacroBegin = nullptr); - /// \brief Returns true if the given MacroID location points at the last + /// Returns true if the given MacroID location points at the last /// token of the macro expansion. /// /// \param MacroEnd If non-null and function returns true, it is set to @@ -413,7 +413,7 @@ const LangOptions &LangOpts, SourceLocation *MacroEnd = nullptr); - /// \brief Accepts a range and returns a character range with file locations. + /// Accepts a range and returns a character range with file locations. /// /// Returns a null range if a part of the range resides inside a macro /// expansion or the range does not reside on the same FileID. @@ -443,13 +443,13 @@ const SourceManager &SM, const LangOptions &LangOpts); - /// \brief Returns a string for the source that the range encompasses. + /// Returns a string for the source that the range encompasses. static StringRef getSourceText(CharSourceRange Range, const SourceManager &SM, const LangOptions &LangOpts, bool *Invalid = nullptr); - /// \brief Retrieve the name of the immediate macro expansion. + /// Retrieve the name of the immediate macro expansion. /// /// This routine starts from a source location, and finds the name of the macro /// responsible for its immediate expansion. It looks through any intervening @@ -460,7 +460,7 @@ const SourceManager &SM, const LangOptions &LangOpts); - /// \brief Retrieve the name of the immediate macro expansion. + /// Retrieve the name of the immediate macro expansion. /// /// This routine starts from a source location, and finds the name of the /// macro responsible for its immediate expansion. It looks through any @@ -480,7 +480,7 @@ static StringRef getImmediateMacroNameForDiagnostics( SourceLocation Loc, const SourceManager &SM, const LangOptions &LangOpts); - /// \brief Compute the preamble of the given file. + /// Compute the preamble of the given file. /// /// The preamble of a file contains the initial comments, include directives, /// and other preprocessor directives that occur before the code in this @@ -506,7 +506,7 @@ const SourceManager &SM, const LangOptions &LangOpts); - /// \brief Checks that the given token is the first token that occurs after + /// Checks that the given token is the first token that occurs after /// the given location (this excludes comments and whitespace). Returns the /// location immediately after the specified token. If the token is not found /// or the location is inside a macro, the returned source location will be @@ -517,10 +517,10 @@ const LangOptions &LangOpts, bool SkipTrailingWhitespaceAndNewLine); - /// \brief Returns true if the given character could appear in an identifier. + /// Returns true if the given character could appear in an identifier. static bool isIdentifierBodyChar(char c, const LangOptions &LangOpts); - /// \brief Checks whether new line pointed by Str is preceded by escape + /// Checks whether new line pointed by Str is preceded by escape /// sequence. static bool isNewLineEscaped(const char *BufferStart, const char *Str); @@ -726,7 +726,7 @@ /// invalid. uint32_t tryReadUCN(const char *&CurPtr, const char *SlashLoc, Token *Tok); - /// \brief Try to consume a UCN as part of an identifier at the current + /// Try to consume a UCN as part of an identifier at the current /// location. /// \param CurPtr Initially points to the range of characters in the source /// buffer containing the '\'. Updated to point past the end of @@ -740,7 +740,7 @@ bool tryConsumeIdentifierUCN(const char *&CurPtr, unsigned Size, Token &Result); - /// \brief Try to consume an identifier character encoded in UTF-8. + /// Try to consume an identifier character encoded in UTF-8. /// \param CurPtr Points to the start of the (potential) UTF-8 code unit /// sequence. On success, updated to point past the end of it. /// \return \c true if a UTF-8 sequence mapping to an acceptable identifier Index: cfe/trunk/include/clang/Lex/LiteralSupport.h =================================================================== --- cfe/trunk/include/clang/Lex/LiteralSupport.h +++ cfe/trunk/include/clang/Lex/LiteralSupport.h @@ -112,7 +112,7 @@ static bool isDigitSeparator(char C) { return C == '\''; } - /// \brief Determine whether the sequence of characters [Start, End) contains + /// Determine whether the sequence of characters [Start, End) contains /// any real digits (not digit separators). bool containsDigits(const char *Start, const char *End) { return Start != End && (Start + 1 != End || !isDigitSeparator(Start[0])); @@ -120,7 +120,7 @@ enum CheckSeparatorKind { CSK_BeforeDigits, CSK_AfterDigits }; - /// \brief Ensure that we don't have a digit separator here. + /// Ensure that we don't have a digit separator here. void checkSeparator(SourceLocation TokLoc, const char *Pos, CheckSeparatorKind IsAfterDigits); Index: cfe/trunk/include/clang/Lex/MacroInfo.h =================================================================== --- cfe/trunk/include/clang/Lex/MacroInfo.h +++ cfe/trunk/include/clang/Lex/MacroInfo.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Defines the clang::MacroInfo and clang::MacroDirective classes. +/// Defines the clang::MacroInfo and clang::MacroDirective classes. // //===----------------------------------------------------------------------===// @@ -34,20 +34,20 @@ class Preprocessor; class SourceManager; -/// \brief Encapsulates the data about a macro definition (e.g. its tokens). +/// Encapsulates the data about a macro definition (e.g. its tokens). /// /// There's an instance of this class for every #define. class MacroInfo { //===--------------------------------------------------------------------===// // State set when the macro is defined. - /// \brief The location the macro is defined. + /// The location the macro is defined. SourceLocation Location; - /// \brief The location of the last token in the macro. + /// The location of the last token in the macro. SourceLocation EndLocation; - /// \brief The list of arguments for a function-like macro. + /// The list of arguments for a function-like macro. /// /// ParameterList points to the first of NumParameters pointers. /// @@ -58,61 +58,61 @@ /// \see ParameterList unsigned NumParameters = 0; - /// \brief This is the list of tokens that the macro is defined to. + /// This is the list of tokens that the macro is defined to. SmallVector<Token, 8> ReplacementTokens; - /// \brief Length in characters of the macro definition. + /// Length in characters of the macro definition. mutable unsigned DefinitionLength; mutable bool IsDefinitionLengthCached : 1; - /// \brief True if this macro is function-like, false if it is object-like. + /// True if this macro is function-like, false if it is object-like. bool IsFunctionLike : 1; - /// \brief True if this macro is of the form "#define X(...)" or + /// True if this macro is of the form "#define X(...)" or /// "#define X(Y,Z,...)". /// /// The __VA_ARGS__ token should be replaced with the contents of "..." in an /// invocation. bool IsC99Varargs : 1; - /// \brief True if this macro is of the form "#define X(a...)". + /// True if this macro is of the form "#define X(a...)". /// /// The "a" identifier in the replacement list will be replaced with all /// arguments of the macro starting with the specified one. bool IsGNUVarargs : 1; - /// \brief True if this macro requires processing before expansion. + /// True if this macro requires processing before expansion. /// /// This is the case for builtin macros such as __LINE__, so long as they have /// not been redefined, but not for regular predefined macros from the /// "<built-in>" memory buffer (see Preprocessing::getPredefinesFileID). bool IsBuiltinMacro : 1; - /// \brief Whether this macro contains the sequence ", ## __VA_ARGS__" + /// Whether this macro contains the sequence ", ## __VA_ARGS__" bool HasCommaPasting : 1; //===--------------------------------------------------------------------===// // State that changes as the macro is used. - /// \brief True if we have started an expansion of this macro already. + /// True if we have started an expansion of this macro already. /// /// This disables recursive expansion, which would be quite bad for things /// like \#define A A. bool IsDisabled : 1; - /// \brief True if this macro is either defined in the main file and has + /// True if this macro is either defined in the main file and has /// been used, or if it is not defined in the main file. /// /// This is used to emit -Wunused-macros diagnostics. bool IsUsed : 1; - /// \brief True if this macro can be redefined without emitting a warning. + /// True if this macro can be redefined without emitting a warning. bool IsAllowRedefinitionsWithoutWarning : 1; - /// \brief Must warn if the macro is unused at the end of translation unit. + /// Must warn if the macro is unused at the end of translation unit. bool IsWarnIfUnused : 1; - /// \brief Whether this macro was used as header guard. + /// Whether this macro was used as header guard. bool UsedForHeaderGuard : 1; // Only the Preprocessor gets to create and destroy these. @@ -120,23 +120,23 @@ ~MacroInfo() = default; public: - /// \brief Return the location that the macro was defined at. + /// Return the location that the macro was defined at. SourceLocation getDefinitionLoc() const { return Location; } - /// \brief Set the location of the last token in the macro. + /// Set the location of the last token in the macro. void setDefinitionEndLoc(SourceLocation EndLoc) { EndLocation = EndLoc; } - /// \brief Return the location of the last token in the macro. + /// Return the location of the last token in the macro. SourceLocation getDefinitionEndLoc() const { return EndLocation; } - /// \brief Get length in characters of the macro definition. + /// Get length in characters of the macro definition. unsigned getDefinitionLength(const SourceManager &SM) const { if (IsDefinitionLengthCached) return DefinitionLength; return getDefinitionLengthSlow(SM); } - /// \brief Return true if the specified macro definition is equal to + /// Return true if the specified macro definition is equal to /// this macro in spelling, arguments, and whitespace. /// /// \param Syntactically if true, the macro definitions can be identical even @@ -146,21 +146,21 @@ bool isIdenticalTo(const MacroInfo &Other, Preprocessor &PP, bool Syntactically) const; - /// \brief Set or clear the isBuiltinMacro flag. + /// Set or clear the isBuiltinMacro flag. void setIsBuiltinMacro(bool Val = true) { IsBuiltinMacro = Val; } - /// \brief Set the value of the IsUsed flag. + /// Set the value of the IsUsed flag. void setIsUsed(bool Val) { IsUsed = Val; } - /// \brief Set the value of the IsAllowRedefinitionsWithoutWarning flag. + /// Set the value of the IsAllowRedefinitionsWithoutWarning flag. void setIsAllowRedefinitionsWithoutWarning(bool Val) { IsAllowRedefinitionsWithoutWarning = Val; } - /// \brief Set the value of the IsWarnIfUnused flag. + /// Set the value of the IsWarnIfUnused flag. void setIsWarnIfUnused(bool val) { IsWarnIfUnused = val; } - /// \brief Set the specified list of identifiers as the parameter list for + /// Set the specified list of identifiers as the parameter list for /// this macro. void setParameterList(ArrayRef<IdentifierInfo *> List, llvm::BumpPtrAllocator &PPAllocator) { @@ -185,7 +185,7 @@ return ArrayRef<const IdentifierInfo *>(ParameterList, NumParameters); } - /// \brief Return the parameter number of the specified identifier, + /// Return the parameter number of the specified identifier, /// or -1 if the identifier is not a formal parameter identifier. int getParameterNum(const IdentifierInfo *Arg) const { for (param_iterator I = param_begin(), E = param_end(); I != E; ++I) @@ -207,7 +207,7 @@ bool isGNUVarargs() const { return IsGNUVarargs; } bool isVariadic() const { return IsC99Varargs | IsGNUVarargs; } - /// \brief Return true if this macro requires processing before expansion. + /// Return true if this macro requires processing before expansion. /// /// This is true only for builtin macro, such as \__LINE__, whose values /// are not given by fixed textual expansions. Regular predefined macros @@ -218,19 +218,19 @@ bool hasCommaPasting() const { return HasCommaPasting; } void setHasCommaPasting() { HasCommaPasting = true; } - /// \brief Return false if this macro is defined in the main file and has + /// Return false if this macro is defined in the main file and has /// not yet been used. bool isUsed() const { return IsUsed; } - /// \brief Return true if this macro can be redefined without warning. + /// Return true if this macro can be redefined without warning. bool isAllowRedefinitionsWithoutWarning() const { return IsAllowRedefinitionsWithoutWarning; } - /// \brief Return true if we should emit a warning if the macro is unused. + /// Return true if we should emit a warning if the macro is unused. bool isWarnIfUnused() const { return IsWarnIfUnused; } - /// \brief Return the number of tokens that this macro expands to. + /// Return the number of tokens that this macro expands to. unsigned getNumTokens() const { return ReplacementTokens.size(); } const Token &getReplacementToken(unsigned Tok) const { @@ -245,7 +245,7 @@ bool tokens_empty() const { return ReplacementTokens.empty(); } ArrayRef<Token> tokens() const { return ReplacementTokens; } - /// \brief Add the specified token to the replacement text for the macro. + /// Add the specified token to the replacement text for the macro. void AddTokenToBody(const Token &Tok) { assert( !IsDefinitionLengthCached && @@ -253,7 +253,7 @@ ReplacementTokens.push_back(Tok); } - /// \brief Return true if this macro is enabled. + /// Return true if this macro is enabled. /// /// In other words, that we are not currently in an expansion of this macro. bool isEnabled() const { return !IsDisabled; } @@ -268,7 +268,7 @@ IsDisabled = true; } - /// \brief Determine whether this macro was used for a header guard. + /// Determine whether this macro was used for a header guard. bool isUsedForHeaderGuard() const { return UsedForHeaderGuard; } void setUsedForHeaderGuard(bool Val) { UsedForHeaderGuard = Val; } @@ -281,7 +281,7 @@ unsigned getDefinitionLengthSlow(const SourceManager &SM) const; }; -/// \brief Encapsulates changes to the "macros namespace" (the location where +/// Encapsulates changes to the "macros namespace" (the location where /// the macro name became active, the location where it was undefined, etc.). /// /// MacroDirectives, associated with an identifier, are used to model the macro @@ -297,20 +297,20 @@ }; protected: - /// \brief Previous macro directive for the same identifier, or nullptr. + /// Previous macro directive for the same identifier, or nullptr. MacroDirective *Previous = nullptr; SourceLocation Loc; - /// \brief MacroDirective kind. + /// MacroDirective kind. unsigned MDKind : 2; - /// \brief True if the macro directive was loaded from a PCH file. + /// True if the macro directive was loaded from a PCH file. unsigned IsFromPCH : 1; // Used by VisibilityMacroDirective ----------------------------------------// - /// \brief Whether the macro has public visibility (when described in a + /// Whether the macro has public visibility (when described in a /// module). unsigned IsPublic : 1; @@ -322,16 +322,16 @@ SourceLocation getLocation() const { return Loc; } - /// \brief Set previous definition of the macro with the same name. + /// Set previous definition of the macro with the same name. void setPrevious(MacroDirective *Prev) { Previous = Prev; } - /// \brief Get previous definition of the macro with the same name. + /// Get previous definition of the macro with the same name. const MacroDirective *getPrevious() const { return Previous; } - /// \brief Get previous definition of the macro with the same name. + /// Get previous definition of the macro with the same name. MacroDirective *getPrevious() { return Previous; } - /// \brief Return true if the macro directive was loaded from a PCH file. + /// Return true if the macro directive was loaded from a PCH file. bool isFromPCH() const { return IsFromPCH; } void setIsFromPCH() { IsFromPCH = true; } @@ -374,7 +374,7 @@ } }; - /// \brief Traverses the macro directives history and returns the next + /// Traverses the macro directives history and returns the next /// macro definition directive along with info about its undefined location /// (if there is one) and if it is public or private. DefInfo getDefinition(); @@ -393,7 +393,7 @@ } MacroInfo *getMacroInfo() { return getDefinition().getMacroInfo(); } - /// \brief Find macro definition active in the specified source location. If + /// Find macro definition active in the specified source location. If /// this macro was not defined there, return NULL. const DefInfo findDirectiveAtLoc(SourceLocation L, SourceManager &SM) const; @@ -402,7 +402,7 @@ static bool classof(const MacroDirective *) { return true; } }; -/// \brief A directive for a defined macro or a macro imported from a module. +/// A directive for a defined macro or a macro imported from a module. class DefMacroDirective : public MacroDirective { MacroInfo *Info; @@ -414,7 +414,7 @@ explicit DefMacroDirective(MacroInfo *MI) : DefMacroDirective(MI, MI->getDefinitionLoc()) {} - /// \brief The data for the macro definition. + /// The data for the macro definition. const MacroInfo *getInfo() const { return Info; } MacroInfo *getInfo() { return Info; } @@ -425,7 +425,7 @@ static bool classof(const DefMacroDirective *) { return true; } }; -/// \brief A directive for an undefined macro. +/// A directive for an undefined macro. class UndefMacroDirective : public MacroDirective { public: explicit UndefMacroDirective(SourceLocation UndefLoc) @@ -440,7 +440,7 @@ static bool classof(const UndefMacroDirective *) { return true; } }; -/// \brief A directive for setting the module visibility of a macro. +/// A directive for setting the module visibility of a macro. class VisibilityMacroDirective : public MacroDirective { public: explicit VisibilityMacroDirective(SourceLocation Loc, bool Public) @@ -448,7 +448,7 @@ IsPublic = Public; } - /// \brief Determine whether this macro is part of the public API of its + /// Determine whether this macro is part of the public API of its /// module. bool isPublic() const { return IsPublic; } @@ -478,7 +478,7 @@ return DefDirective->getPrevious()->getDefinition(); } -/// \brief Represents a macro directive exported by a module. +/// Represents a macro directive exported by a module. /// /// There's an instance of this class for every macro #define or #undef that is /// the final directive for a macro name within a module. These entities also @@ -557,7 +557,7 @@ unsigned getNumOverridingMacros() const { return NumOverriddenBy; } }; -/// \brief A description of the current definition of a macro. +/// A description of the current definition of a macro. /// /// The definition of a macro comprises a set of (at least one) defining /// entities, which are either local MacroDirectives or imported ModuleMacros. @@ -571,12 +571,12 @@ bool IsAmbiguous) : LatestLocalAndAmbiguous(MD, IsAmbiguous), ModuleMacros(MMs) {} - /// \brief Determine whether there is a definition of this macro. + /// Determine whether there is a definition of this macro. explicit operator bool() const { return getLocalDirective() || !ModuleMacros.empty(); } - /// \brief Get the MacroInfo that should be used for this definition. + /// Get the MacroInfo that should be used for this definition. MacroInfo *getMacroInfo() const { if (!ModuleMacros.empty()) return ModuleMacros.back()->getMacroInfo(); @@ -585,16 +585,16 @@ return nullptr; } - /// \brief \c true if the definition is ambiguous, \c false otherwise. + /// \c true if the definition is ambiguous, \c false otherwise. bool isAmbiguous() const { return LatestLocalAndAmbiguous.getInt(); } - /// \brief Get the latest non-imported, non-\#undef'd macro definition + /// Get the latest non-imported, non-\#undef'd macro definition /// for this macro. DefMacroDirective *getLocalDirective() const { return LatestLocalAndAmbiguous.getPointer(); } - /// \brief Get the active module macros for this macro. + /// Get the active module macros for this macro. ArrayRef<ModuleMacro *> getModuleMacros() const { return ModuleMacros; } template <typename Fn> void forAllDefinitions(Fn F) const { Index: cfe/trunk/include/clang/Lex/ModuleLoader.h =================================================================== --- cfe/trunk/include/clang/Lex/ModuleLoader.h +++ cfe/trunk/include/clang/Lex/ModuleLoader.h @@ -28,11 +28,11 @@ class GlobalModuleIndex; class IdentifierInfo; -/// \brief A sequence of identifier/location pairs used to describe a particular +/// A sequence of identifier/location pairs used to describe a particular /// module or submodule, e.g., std.vector. using ModuleIdPath = ArrayRef<std::pair<IdentifierInfo *, SourceLocation>>; -/// \brief Describes the result of attempting to load a module. +/// Describes the result of attempting to load a module. class ModuleLoadResult { public: enum LoadResultKind { @@ -55,18 +55,18 @@ operator Module *() const { return Storage.getPointer(); } - /// \brief Determines whether the module, which failed to load, was + /// Determines whether the module, which failed to load, was /// actually a submodule that we expected to see (based on implying the /// submodule from header structure), but didn't materialize in the actual /// module. bool isMissingExpected() const { return Storage.getInt() == MissingExpected; } - /// \brief Determines whether the module failed to load due to a configuration + /// Determines whether the module failed to load due to a configuration /// mismatch with an explicitly-named .pcm file from the command line. bool isConfigMismatch() const { return Storage.getInt() == ConfigMismatch; } }; -/// \brief Abstract interface for a module loader. +/// Abstract interface for a module loader. /// /// This abstract interface describes a module loader, which is responsible /// for resolving a module name (e.g., "std") to an actual module file, and @@ -81,17 +81,17 @@ virtual ~ModuleLoader(); - /// \brief Returns true if this instance is building a module. + /// Returns true if this instance is building a module. bool buildingModule() const { return BuildingModule; } - /// \brief Flag indicating whether this instance is building a module. + /// Flag indicating whether this instance is building a module. void setBuildingModule(bool BuildingModuleFlag) { BuildingModule = BuildingModuleFlag; } - /// \brief Attempt to load the given module. + /// Attempt to load the given module. /// /// This routine attempts to load the module described by the given /// parameters. @@ -125,12 +125,12 @@ virtual void loadModuleFromSource(SourceLocation Loc, StringRef ModuleName, StringRef Source) = 0; - /// \brief Make the given module visible. + /// Make the given module visible. virtual void makeModuleVisible(Module *Mod, Module::NameVisibilityKind Visibility, SourceLocation ImportLoc) = 0; - /// \brief Load, create, or return global module. + /// Load, create, or return global module. /// This function returns an existing global module index, if one /// had already been loaded or created, or loads one if it /// exists, or creates one if it doesn't exist. Index: cfe/trunk/include/clang/Lex/ModuleMap.h =================================================================== --- cfe/trunk/include/clang/Lex/ModuleMap.h +++ cfe/trunk/include/clang/Lex/ModuleMap.h @@ -42,13 +42,13 @@ class HeaderSearch; class SourceManager; -/// \brief A mechanism to observe the actions of the module map parser as it +/// A mechanism to observe the actions of the module map parser as it /// reads module map files. class ModuleMapCallbacks { public: virtual ~ModuleMapCallbacks() = default; - /// \brief Called when a module map file has been read. + /// Called when a module map file has been read. /// /// \param FileStart A SourceLocation referring to the start of the file's /// contents. @@ -57,12 +57,12 @@ virtual void moduleMapFileRead(SourceLocation FileStart, const FileEntry &File, bool IsSystem) {} - /// \brief Called when a header is added during module map parsing. + /// Called when a header is added during module map parsing. /// /// \param Filename The header file itself. virtual void moduleMapAddHeader(StringRef Filename) {} - /// \brief Called when an umbrella header is added during module map parsing. + /// Called when an umbrella header is added during module map parsing. /// /// \param FileMgr FileManager instance /// \param Header The umbrella header to collect. @@ -79,11 +79,11 @@ llvm::SmallVector<std::unique_ptr<ModuleMapCallbacks>, 1> Callbacks; - /// \brief The directory used for Clang-supplied, builtin include headers, + /// The directory used for Clang-supplied, builtin include headers, /// such as "stdint.h". const DirectoryEntry *BuiltinIncludeDir = nullptr; - /// \brief Language options used to parse the module map itself. + /// Language options used to parse the module map itself. /// /// These are always simple C language options. LangOptions MMapLangOpts; @@ -96,13 +96,13 @@ /// transferred if/when we create an enclosing module. std::unique_ptr<Module> PendingGlobalModule; - /// \brief The top-level modules that are known. + /// The top-level modules that are known. llvm::StringMap<Module *> Modules; /// Shadow modules created while building this module map. llvm::SmallVector<Module*, 2> ShadowModules; - /// \brief The number of modules we have created in total. + /// The number of modules we have created in total. unsigned NumCreatedModules = 0; /// In case a module has a export_as entry, it might have a pending link @@ -118,15 +118,15 @@ /// information is available or add it to a pending list otherwise. void addLinkAsDependency(Module *Mod); - /// \brief Flags describing the role of a module header. + /// Flags describing the role of a module header. enum ModuleHeaderRole { - /// \brief This header is normally included in the module. + /// This header is normally included in the module. NormalHeader = 0x0, - /// \brief This header is included but private. + /// This header is included but private. PrivateHeader = 0x1, - /// \brief This header is part of the module (for layering purposes) but + /// This header is part of the module (for layering purposes) but /// should be textually included. TextualHeader = 0x2, @@ -144,7 +144,7 @@ /// Convert a header role to a kind. static Module::HeaderKind headerRoleToKind(ModuleHeaderRole Role); - /// \brief A header that is known to reside within a given module, + /// A header that is known to reside within a given module, /// whether it was included or excluded. class KnownHeader { llvm::PointerIntPair<Module *, 2, ModuleHeaderRole> Storage; @@ -160,24 +160,24 @@ return A.Storage != B.Storage; } - /// \brief Retrieve the module the header is stored in. + /// Retrieve the module the header is stored in. Module *getModule() const { return Storage.getPointer(); } - /// \brief The role of this header within the module. + /// The role of this header within the module. ModuleHeaderRole getRole() const { return Storage.getInt(); } - /// \brief Whether this header is available in the module. + /// Whether this header is available in the module. bool isAvailable() const { return getModule()->isAvailable(); } - /// \brief Whether this header is accessible from the specified module. + /// Whether this header is accessible from the specified module. bool isAccessibleFrom(Module *M) const { return !(getRole() & PrivateHeader) || (M && M->getTopLevelModule() == getModule()->getTopLevelModule()); } - // \brief Whether this known header is valid (i.e., it has an + // Whether this known header is valid (i.e., it has an // associated module). explicit operator bool() const { return Storage.getPointer() != nullptr; @@ -192,7 +192,7 @@ using HeadersMap = llvm::DenseMap<const FileEntry *, SmallVector<KnownHeader, 1>>; - /// \brief Mapping from each header to the module that owns the contents of + /// Mapping from each header to the module that owns the contents of /// that header. HeadersMap Headers; @@ -203,7 +203,7 @@ mutable llvm::DenseMap<time_t, llvm::TinyPtrVector<Module*>> LazyHeadersByModTime; - /// \brief Mapping from directories with umbrella headers to the module + /// Mapping from directories with umbrella headers to the module /// that is generated from the umbrella header. /// /// This mapping is used to map headers that haven't explicitly been named @@ -211,7 +211,7 @@ /// header. llvm::DenseMap<const DirectoryEntry *, Module *> UmbrellaDirs; - /// \brief A generation counter that is used to test whether modules of the + /// A generation counter that is used to test whether modules of the /// same name may shadow or are illegal redefinitions. /// /// Modules from earlier scopes may shadow modules from later ones. @@ -220,18 +220,18 @@ llvm::DenseMap<Module *, unsigned> ModuleScopeIDs; - /// \brief The set of attributes that can be attached to a module. + /// The set of attributes that can be attached to a module. struct Attributes { - /// \brief Whether this is a system module. + /// Whether this is a system module. unsigned IsSystem : 1; - /// \brief Whether this is an extern "C" module. + /// Whether this is an extern "C" module. unsigned IsExternC : 1; - /// \brief Whether this is an exhaustive set of configuration macros. + /// Whether this is an exhaustive set of configuration macros. unsigned IsExhaustive : 1; - /// \brief Whether files in this module can only include non-modular headers + /// Whether files in this module can only include non-modular headers /// and headers from used modules. unsigned NoUndeclaredIncludes : 1; @@ -240,26 +240,26 @@ NoUndeclaredIncludes(false) {} }; - /// \brief A directory for which framework modules can be inferred. + /// A directory for which framework modules can be inferred. struct InferredDirectory { - /// \brief Whether to infer modules from this directory. + /// Whether to infer modules from this directory. unsigned InferModules : 1; - /// \brief The attributes to use for inferred modules. + /// The attributes to use for inferred modules. Attributes Attrs; - /// \brief If \c InferModules is non-zero, the module map file that allowed + /// If \c InferModules is non-zero, the module map file that allowed /// inferred modules. Otherwise, nullptr. const FileEntry *ModuleMapFile; - /// \brief The names of modules that cannot be inferred within this + /// The names of modules that cannot be inferred within this /// directory. SmallVector<std::string, 2> ExcludedModules; InferredDirectory() : InferModules(false) {} }; - /// \brief A mapping from directories to information about inferring + /// A mapping from directories to information about inferring /// framework modules from within those directories. llvm::DenseMap<const DirectoryEntry *, InferredDirectory> InferredDirectories; @@ -269,11 +269,11 @@ llvm::DenseMap<const Module *, AdditionalModMapsSet> AdditionalModMaps; - /// \brief Describes whether we haved parsed a particular file as a module + /// Describes whether we haved parsed a particular file as a module /// map. llvm::DenseMap<const FileEntry *, bool> ParsedModuleMap; - /// \brief Resolve the given export declaration into an actual export + /// Resolve the given export declaration into an actual export /// declaration. /// /// \param Mod The module in which we're resolving the export declaration. @@ -289,7 +289,7 @@ resolveExport(Module *Mod, const Module::UnresolvedExportDecl &Unresolved, bool Complain) const; - /// \brief Resolve the given module id to an actual module. + /// Resolve the given module id to an actual module. /// /// \param Id The module-id to resolve. /// @@ -327,14 +327,14 @@ bool resolveAsBuiltinHeader(Module *M, const Module::UnresolvedHeaderDirective &Header); - /// \brief Looks up the modules that \p File corresponds to. + /// Looks up the modules that \p File corresponds to. /// /// If \p File represents a builtin header within Clang's builtin include /// directory, this also loads all of the module maps to see if it will get /// associated with a specific module (e.g. in /usr/include). HeadersMap::iterator findKnownHeader(const FileEntry *File); - /// \brief Searches for a module whose umbrella directory contains \p File. + /// Searches for a module whose umbrella directory contains \p File. /// /// \param File The header to search for. /// @@ -343,11 +343,11 @@ KnownHeader findHeaderInUmbrellaDirs(const FileEntry *File, SmallVectorImpl<const DirectoryEntry *> &IntermediateDirs); - /// \brief Given that \p File is not in the Headers map, look it up within + /// Given that \p File is not in the Headers map, look it up within /// umbrella directories and find or create a module for it. KnownHeader findOrCreateModuleForHeaderInUmbrellaDir(const FileEntry *File); - /// \brief A convenience method to determine if \p File is (possibly nested) + /// A convenience method to determine if \p File is (possibly nested) /// in an umbrella directory. bool isHeaderInUmbrellaDirs(const FileEntry *File) { SmallVector<const DirectoryEntry *, 2> IntermediateDirs; @@ -358,7 +358,7 @@ Attributes Attrs, Module *Parent); public: - /// \brief Construct a new module map. + /// Construct a new module map. /// /// \param SourceMgr The source manager used to find module files and headers. /// This source manager should be shared with the header-search mechanism, @@ -373,32 +373,32 @@ const LangOptions &LangOpts, const TargetInfo *Target, HeaderSearch &HeaderInfo); - /// \brief Destroy the module map. + /// Destroy the module map. ~ModuleMap(); - /// \brief Set the target information. + /// Set the target information. void setTarget(const TargetInfo &Target); - /// \brief Set the directory that contains Clang-supplied include + /// Set the directory that contains Clang-supplied include /// files, such as our stdarg.h or tgmath.h. void setBuiltinIncludeDir(const DirectoryEntry *Dir) { BuiltinIncludeDir = Dir; } - /// \brief Get the directory that contains Clang-supplied include files. + /// Get the directory that contains Clang-supplied include files. const DirectoryEntry *getBuiltinDir() const { return BuiltinIncludeDir; } - /// \brief Is this a compiler builtin header? + /// Is this a compiler builtin header? static bool isBuiltinHeader(StringRef FileName); - /// \brief Add a module map callback. + /// Add a module map callback. void addModuleMapCallbacks(std::unique_ptr<ModuleMapCallbacks> Callback) { Callbacks.push_back(std::move(Callback)); } - /// \brief Retrieve the module that owns the given header file, if any. + /// Retrieve the module that owns the given header file, if any. /// /// \param File The header file that is likely to be included. /// @@ -412,7 +412,7 @@ KnownHeader findModuleForHeader(const FileEntry *File, bool AllowTextual = false); - /// \brief Retrieve all the modules that contain the given header file. This + /// Retrieve all the modules that contain the given header file. This /// may not include umbrella modules, nor information from external sources, /// if they have not yet been inferred / loaded. /// @@ -429,7 +429,7 @@ /// Resolve all lazy header directives for the specified module. void resolveHeaderDirectives(Module *Mod) const; - /// \brief Reports errors if a module must not include a specific file. + /// Reports errors if a module must not include a specific file. /// /// \param RequestingModule The module including a file. /// @@ -448,23 +448,23 @@ SourceLocation FilenameLoc, StringRef Filename, const FileEntry *File); - /// \brief Determine whether the given header is part of a module + /// Determine whether the given header is part of a module /// marked 'unavailable'. bool isHeaderInUnavailableModule(const FileEntry *Header) const; - /// \brief Determine whether the given header is unavailable as part + /// Determine whether the given header is unavailable as part /// of the specified module. bool isHeaderUnavailableInModule(const FileEntry *Header, const Module *RequestingModule) const; - /// \brief Retrieve a module with the given name. + /// Retrieve a module with the given name. /// /// \param Name The name of the module to look up. /// /// \returns The named module, if known; otherwise, returns null. Module *findModule(StringRef Name) const; - /// \brief Retrieve a module with the given name using lexical name lookup, + /// Retrieve a module with the given name using lexical name lookup, /// starting at the given context. /// /// \param Name The name of the module to look up. @@ -475,7 +475,7 @@ /// \returns The named module, if known; otherwise, returns null. Module *lookupModuleUnqualified(StringRef Name, Module *Context) const; - /// \brief Retrieve a module with the given name within the given context, + /// Retrieve a module with the given name within the given context, /// using direct (qualified) name lookup. /// /// \param Name The name of the module to look up. @@ -486,7 +486,7 @@ /// \returns The named submodule, if known; otherwose, returns null. Module *lookupModuleQualified(StringRef Name, Module *Context) const; - /// \brief Find a new module or submodule, or create it if it does not already + /// Find a new module or submodule, or create it if it does not already /// exist. /// /// \param Name The name of the module to find or create. @@ -504,7 +504,7 @@ bool IsFramework, bool IsExplicit); - /// \brief Create a 'global module' for a C++ Modules TS module interface + /// Create a 'global module' for a C++ Modules TS module interface /// unit. /// /// We model the global module as a submodule of the module interface unit. @@ -512,7 +512,7 @@ /// later, because we don't know what it will be called. Module *createGlobalModuleForInterfaceUnit(SourceLocation Loc); - /// \brief Create a new module for a C++ Modules TS module interface unit. + /// Create a new module for a C++ Modules TS module interface unit. /// The module must not already exist, and will be configured for the current /// compilation. /// @@ -522,17 +522,17 @@ Module *createModuleForInterfaceUnit(SourceLocation Loc, StringRef Name, Module *GlobalModule); - /// \brief Infer the contents of a framework module map from the given + /// Infer the contents of a framework module map from the given /// framework directory. Module *inferFrameworkModule(const DirectoryEntry *FrameworkDir, bool IsSystem, Module *Parent); - /// \brief Create a new top-level module that is shadowed by + /// Create a new top-level module that is shadowed by /// \p ShadowingModule. Module *createShadowedModule(StringRef Name, bool IsFramework, Module *ShadowingModule); - /// \brief Creates a new declaration scope for module names, allowing + /// Creates a new declaration scope for module names, allowing /// previously defined modules to shadow definitions from the new scope. /// /// \note Module names from earlier scopes will shadow names from the new @@ -545,7 +545,7 @@ return ModuleScopeIDs[ExistingModule] < CurrentModuleScopeID; } - /// \brief Retrieve the module map file containing the definition of the given + /// Retrieve the module map file containing the definition of the given /// module. /// /// \param Module The module whose module map file will be returned, if known. @@ -554,7 +554,7 @@ /// module, or nullptr if the module definition was inferred. const FileEntry *getContainingModuleMapFile(const Module *Module) const; - /// \brief Get the module map file that (along with the module name) uniquely + /// Get the module map file that (along with the module name) uniquely /// identifies this module. /// /// The particular module that \c Name refers to may depend on how the module @@ -567,7 +567,7 @@ void setInferredModuleAllowedBy(Module *M, const FileEntry *ModuleMap); - /// \brief Get any module map files other than getModuleMapFileForUniquing(M) + /// Get any module map files other than getModuleMapFileForUniquing(M) /// that define submodules of a top-level module \p M. This is cheaper than /// getting the module map file for each submodule individually, since the /// expected number of results is very small. @@ -582,7 +582,7 @@ AdditionalModMaps[M].insert(ModuleMap); } - /// \brief Resolve all of the unresolved exports in the given module. + /// Resolve all of the unresolved exports in the given module. /// /// \param Mod The module whose exports should be resolved. /// @@ -592,7 +592,7 @@ /// false otherwise. bool resolveExports(Module *Mod, bool Complain); - /// \brief Resolve all of the unresolved uses in the given module. + /// Resolve all of the unresolved uses in the given module. /// /// \param Mod The module whose uses should be resolved. /// @@ -602,7 +602,7 @@ /// false otherwise. bool resolveUses(Module *Mod, bool Complain); - /// \brief Resolve all of the unresolved conflicts in the given module. + /// Resolve all of the unresolved conflicts in the given module. /// /// \param Mod The module whose conflicts should be resolved. /// @@ -612,25 +612,25 @@ /// false otherwise. bool resolveConflicts(Module *Mod, bool Complain); - /// \brief Sets the umbrella header of the given module to the given + /// Sets the umbrella header of the given module to the given /// header. void setUmbrellaHeader(Module *Mod, const FileEntry *UmbrellaHeader, Twine NameAsWritten); - /// \brief Sets the umbrella directory of the given module to the given + /// Sets the umbrella directory of the given module to the given /// directory. void setUmbrellaDir(Module *Mod, const DirectoryEntry *UmbrellaDir, Twine NameAsWritten); - /// \brief Adds this header to the given module. + /// Adds this header to the given module. /// \param Role The role of the header wrt the module. void addHeader(Module *Mod, Module::Header Header, ModuleHeaderRole Role, bool Imported = false); - /// \brief Marks this header as being excluded from the given module. + /// Marks this header as being excluded from the given module. void excludeHeader(Module *Mod, Module::Header Header); - /// \brief Parse the given module map file, and record any modules we + /// Parse the given module map file, and record any modules we /// encounter. /// /// \param File The file to be parsed. @@ -655,7 +655,7 @@ FileID ID = FileID(), unsigned *Offset = nullptr, SourceLocation ExternModuleLoc = SourceLocation()); - /// \brief Dump the contents of the module map, for debugging purposes. + /// Dump the contents of the module map, for debugging purposes. void dump(); using module_iterator = llvm::StringMap<Module *>::const_iterator; Index: cfe/trunk/include/clang/Lex/MultipleIncludeOpt.h =================================================================== --- cfe/trunk/include/clang/Lex/MultipleIncludeOpt.h +++ cfe/trunk/include/clang/Lex/MultipleIncludeOpt.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines the MultipleIncludeOpt interface. +/// Defines the MultipleIncludeOpt interface. // //===----------------------------------------------------------------------===// @@ -20,7 +20,7 @@ namespace clang { class IdentifierInfo; -/// \brief Implements the simple state machine that the Lexer class uses to +/// Implements the simple state machine that the Lexer class uses to /// detect files subject to the 'multiple-include' optimization. /// /// The public methods in this class are triggered by various @@ -113,7 +113,7 @@ /// buffer, this method is called to disable the MIOpt if needed. void ExpandedMacro() { DidMacroExpansion = true; } - /// \brief Called when entering a top-level \#ifndef directive (or the + /// Called when entering a top-level \#ifndef directive (or the /// "\#if !defined" equivalent) without any preceding tokens. /// /// Note, we don't care about the input value of 'ReadAnyTokens'. The caller @@ -139,14 +139,14 @@ MacroLoc = Loc; } - /// \brief Invoked when a top level conditional (except \#ifndef) is found. + /// Invoked when a top level conditional (except \#ifndef) is found. void EnterTopLevelConditional() { // If a conditional directive (except #ifndef) is found at the top level, // there is a chunk of the file not guarded by the controlling macro. Invalidate(); } - /// \brief Called when the lexer exits the top-level conditional. + /// Called when the lexer exits the top-level conditional. void ExitTopLevelConditional() { // If we have a macro, that means the top of the file was ok. Set our state // back to "not having read any tokens" so we can detect anything after the @@ -159,7 +159,7 @@ ImmediatelyAfterTopLevelIfndef = false; } - /// \brief Once the entire file has been lexed, if there is a controlling + /// Once the entire file has been lexed, if there is a controlling /// macro, return it. const IdentifierInfo *GetControllingMacroAtEndOfFile() const { // If we haven't read any tokens after the #endif, return the controlling @@ -169,7 +169,7 @@ return nullptr; } - /// \brief If the ControllingMacro is followed by a macro definition, return + /// If the ControllingMacro is followed by a macro definition, return /// the macro that was defined. const IdentifierInfo *GetDefinedMacro() const { return DefinedMacro; Index: cfe/trunk/include/clang/Lex/PPCallbacks.h =================================================================== --- cfe/trunk/include/clang/Lex/PPCallbacks.h +++ cfe/trunk/include/clang/Lex/PPCallbacks.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines the PPCallbacks interface. +/// Defines the PPCallbacks interface. /// //===----------------------------------------------------------------------===// @@ -29,7 +29,7 @@ class MacroDirective; class MacroArgs; -/// \brief This interface provides a way to observe the actions of the +/// This interface provides a way to observe the actions of the /// preprocessor as it does its thing. /// /// Clients can define their hooks here to implement preprocessor level tools. @@ -41,7 +41,7 @@ EnterFile, ExitFile, SystemHeaderPragma, RenameFile }; - /// \brief Callback invoked whenever a source file is entered or exited. + /// Callback invoked whenever a source file is entered or exited. /// /// \param Loc Indicates the new location. /// \param PrevFID the file that was exited if \p Reason is ExitFile. @@ -50,7 +50,7 @@ FileID PrevFID = FileID()) { } - /// \brief Callback invoked whenever a source file is skipped as the result + /// Callback invoked whenever a source file is skipped as the result /// of header guard optimization. /// /// \param SkippedFile The file that is skipped instead of entering \#include @@ -63,7 +63,7 @@ SrcMgr::CharacteristicKind FileType) { } - /// \brief Callback invoked whenever an inclusion directive results in a + /// Callback invoked whenever an inclusion directive results in a /// file-not-found error. /// /// \param FileName The name of the file being included, as written in the @@ -80,7 +80,7 @@ return false; } - /// \brief Callback invoked whenever an inclusion directive of + /// Callback invoked whenever an inclusion directive of /// any kind (\c \#include, \c \#import, etc.) has been processed, regardless /// of whether the inclusion will actually result in an inclusion. /// @@ -128,7 +128,7 @@ const Module *Imported) { } - /// \brief Callback invoked whenever there was an explicit module-import + /// Callback invoked whenever there was an explicit module-import /// syntax. /// /// \param ImportLoc The location of import directive token. @@ -143,54 +143,54 @@ const Module *Imported) { } - /// \brief Callback invoked when the end of the main file is reached. + /// Callback invoked when the end of the main file is reached. /// /// No subsequent callbacks will be made. virtual void EndOfMainFile() { } - /// \brief Callback invoked when a \#ident or \#sccs directive is read. + /// Callback invoked when a \#ident or \#sccs directive is read. /// \param Loc The location of the directive. /// \param str The text of the directive. /// virtual void Ident(SourceLocation Loc, StringRef str) { } - /// \brief Callback invoked when start reading any pragma directive. + /// Callback invoked when start reading any pragma directive. virtual void PragmaDirective(SourceLocation Loc, PragmaIntroducerKind Introducer) { } - /// \brief Callback invoked when a \#pragma comment directive is read. + /// Callback invoked when a \#pragma comment directive is read. virtual void PragmaComment(SourceLocation Loc, const IdentifierInfo *Kind, StringRef Str) { } - /// \brief Callback invoked when a \#pragma detect_mismatch directive is + /// Callback invoked when a \#pragma detect_mismatch directive is /// read. virtual void PragmaDetectMismatch(SourceLocation Loc, StringRef Name, StringRef Value) { } - /// \brief Callback invoked when a \#pragma clang __debug directive is read. + /// Callback invoked when a \#pragma clang __debug directive is read. /// \param Loc The location of the debug directive. /// \param DebugType The identifier following __debug. virtual void PragmaDebug(SourceLocation Loc, StringRef DebugType) { } - /// \brief Determines the kind of \#pragma invoking a call to PragmaMessage. + /// Determines the kind of \#pragma invoking a call to PragmaMessage. enum PragmaMessageKind { - /// \brief \#pragma message has been invoked. + /// \#pragma message has been invoked. PMK_Message, - /// \brief \#pragma GCC warning has been invoked. + /// \#pragma GCC warning has been invoked. PMK_Warning, - /// \brief \#pragma GCC error has been invoked. + /// \#pragma GCC error has been invoked. PMK_Error }; - /// \brief Callback invoked when a \#pragma message directive is read. + /// Callback invoked when a \#pragma message directive is read. /// \param Loc The location of the message directive. /// \param Namespace The namespace of the message directive. /// \param Kind The type of the message directive. @@ -199,62 +199,62 @@ PragmaMessageKind Kind, StringRef Str) { } - /// \brief Callback invoked when a \#pragma gcc diagnostic push directive + /// Callback invoked when a \#pragma gcc diagnostic push directive /// is read. virtual void PragmaDiagnosticPush(SourceLocation Loc, StringRef Namespace) { } - /// \brief Callback invoked when a \#pragma gcc diagnostic pop directive + /// Callback invoked when a \#pragma gcc diagnostic pop directive /// is read. virtual void PragmaDiagnosticPop(SourceLocation Loc, StringRef Namespace) { } - /// \brief Callback invoked when a \#pragma gcc diagnostic directive is read. + /// Callback invoked when a \#pragma gcc diagnostic directive is read. virtual void PragmaDiagnostic(SourceLocation Loc, StringRef Namespace, diag::Severity mapping, StringRef Str) {} - /// \brief Called when an OpenCL extension is either disabled or + /// Called when an OpenCL extension is either disabled or /// enabled with a pragma. virtual void PragmaOpenCLExtension(SourceLocation NameLoc, const IdentifierInfo *Name, SourceLocation StateLoc, unsigned State) { } - /// \brief Callback invoked when a \#pragma warning directive is read. + /// Callback invoked when a \#pragma warning directive is read. virtual void PragmaWarning(SourceLocation Loc, StringRef WarningSpec, ArrayRef<int> Ids) { } - /// \brief Callback invoked when a \#pragma warning(push) directive is read. + /// Callback invoked when a \#pragma warning(push) directive is read. virtual void PragmaWarningPush(SourceLocation Loc, int Level) { } - /// \brief Callback invoked when a \#pragma warning(pop) directive is read. + /// Callback invoked when a \#pragma warning(pop) directive is read. virtual void PragmaWarningPop(SourceLocation Loc) { } - /// \brief Callback invoked when a \#pragma clang assume_nonnull begin directive + /// Callback invoked when a \#pragma clang assume_nonnull begin directive /// is read. virtual void PragmaAssumeNonNullBegin(SourceLocation Loc) {} - /// \brief Callback invoked when a \#pragma clang assume_nonnull end directive + /// Callback invoked when a \#pragma clang assume_nonnull end directive /// is read. virtual void PragmaAssumeNonNullEnd(SourceLocation Loc) {} - /// \brief Called by Preprocessor::HandleMacroExpandedIdentifier when a + /// Called by Preprocessor::HandleMacroExpandedIdentifier when a /// macro invocation is found. virtual void MacroExpands(const Token &MacroNameTok, const MacroDefinition &MD, SourceRange Range, const MacroArgs *Args) {} - /// \brief Hook called whenever a macro definition is seen. + /// Hook called whenever a macro definition is seen. virtual void MacroDefined(const Token &MacroNameTok, const MacroDirective *MD) { } - /// \brief Hook called whenever a macro \#undef is seen. + /// Hook called whenever a macro \#undef is seen. /// \param MacroNameTok The active Token /// \param MD A MacroDefinition for the named macro. /// \param Undef New MacroDirective if the macro was defined, null otherwise. @@ -265,13 +265,13 @@ const MacroDirective *Undef) { } - /// \brief Hook called whenever the 'defined' operator is seen. + /// Hook called whenever the 'defined' operator is seen. /// \param MD The MacroDirective if the name was a macro, null otherwise. virtual void Defined(const Token &MacroNameTok, const MacroDefinition &MD, SourceRange Range) { } - /// \brief Hook called when a source range is skipped. + /// Hook called when a source range is skipped. /// \param Range The SourceRange that was skipped. The range begins at the /// \#if/\#else directive and ends after the \#endif/\#else directive. /// \param EndifLoc The end location of the 'endif' token, which may precede @@ -284,7 +284,7 @@ CVK_NotEvaluated, CVK_False, CVK_True }; - /// \brief Hook called whenever an \#if is seen. + /// Hook called whenever an \#if is seen. /// \param Loc the source location of the directive. /// \param ConditionRange The SourceRange of the expression being tested. /// \param ConditionValue The evaluated value of the condition. @@ -294,7 +294,7 @@ ConditionValueKind ConditionValue) { } - /// \brief Hook called whenever an \#elif is seen. + /// Hook called whenever an \#elif is seen. /// \param Loc the source location of the directive. /// \param ConditionRange The SourceRange of the expression being tested. /// \param ConditionValue The evaluated value of the condition. @@ -304,7 +304,7 @@ ConditionValueKind ConditionValue, SourceLocation IfLoc) { } - /// \brief Hook called whenever an \#ifdef is seen. + /// Hook called whenever an \#ifdef is seen. /// \param Loc the source location of the directive. /// \param MacroNameTok Information on the token being tested. /// \param MD The MacroDefinition if the name was a macro, null otherwise. @@ -312,7 +312,7 @@ const MacroDefinition &MD) { } - /// \brief Hook called whenever an \#ifndef is seen. + /// Hook called whenever an \#ifndef is seen. /// \param Loc the source location of the directive. /// \param MacroNameTok Information on the token being tested. /// \param MD The MacroDefiniton if the name was a macro, null otherwise. @@ -320,20 +320,20 @@ const MacroDefinition &MD) { } - /// \brief Hook called whenever an \#else is seen. + /// Hook called whenever an \#else is seen. /// \param Loc the source location of the directive. /// \param IfLoc the source location of the \#if/\#ifdef/\#ifndef directive. virtual void Else(SourceLocation Loc, SourceLocation IfLoc) { } - /// \brief Hook called whenever an \#endif is seen. + /// Hook called whenever an \#endif is seen. /// \param Loc the source location of the directive. /// \param IfLoc the source location of the \#if/\#ifdef/\#ifndef directive. virtual void Endif(SourceLocation Loc, SourceLocation IfLoc) { } }; -/// \brief Simple wrapper class for chaining callbacks. +/// Simple wrapper class for chaining callbacks. class PPChainedCallbacks : public PPCallbacks { virtual void anchor(); std::unique_ptr<PPCallbacks> First, Second; @@ -499,41 +499,41 @@ Second->SourceRangeSkipped(Range, EndifLoc); } - /// \brief Hook called whenever an \#if is seen. + /// Hook called whenever an \#if is seen. void If(SourceLocation Loc, SourceRange ConditionRange, ConditionValueKind ConditionValue) override { First->If(Loc, ConditionRange, ConditionValue); Second->If(Loc, ConditionRange, ConditionValue); } - /// \brief Hook called whenever an \#elif is seen. + /// Hook called whenever an \#elif is seen. void Elif(SourceLocation Loc, SourceRange ConditionRange, ConditionValueKind ConditionValue, SourceLocation IfLoc) override { First->Elif(Loc, ConditionRange, ConditionValue, IfLoc); Second->Elif(Loc, ConditionRange, ConditionValue, IfLoc); } - /// \brief Hook called whenever an \#ifdef is seen. + /// Hook called whenever an \#ifdef is seen. void Ifdef(SourceLocation Loc, const Token &MacroNameTok, const MacroDefinition &MD) override { First->Ifdef(Loc, MacroNameTok, MD); Second->Ifdef(Loc, MacroNameTok, MD); } - /// \brief Hook called whenever an \#ifndef is seen. + /// Hook called whenever an \#ifndef is seen. void Ifndef(SourceLocation Loc, const Token &MacroNameTok, const MacroDefinition &MD) override { First->Ifndef(Loc, MacroNameTok, MD); Second->Ifndef(Loc, MacroNameTok, MD); } - /// \brief Hook called whenever an \#else is seen. + /// Hook called whenever an \#else is seen. void Else(SourceLocation Loc, SourceLocation IfLoc) override { First->Else(Loc, IfLoc); Second->Else(Loc, IfLoc); } - /// \brief Hook called whenever an \#endif is seen. + /// Hook called whenever an \#endif is seen. void Endif(SourceLocation Loc, SourceLocation IfLoc) override { First->Endif(Loc, IfLoc); Second->Endif(Loc, IfLoc); Index: cfe/trunk/include/clang/Lex/PPConditionalDirectiveRecord.h =================================================================== --- cfe/trunk/include/clang/Lex/PPConditionalDirectiveRecord.h +++ cfe/trunk/include/clang/Lex/PPConditionalDirectiveRecord.h @@ -21,7 +21,7 @@ namespace clang { -/// \brief Records preprocessor conditional directive regions and allows +/// Records preprocessor conditional directive regions and allows /// querying in which region source locations belong to. class PPConditionalDirectiveRecord : public PPCallbacks { SourceManager &SourceMgr; @@ -57,25 +57,25 @@ }; typedef std::vector<CondDirectiveLoc> CondDirectiveLocsTy; - /// \brief The locations of conditional directives in source order. + /// The locations of conditional directives in source order. CondDirectiveLocsTy CondDirectiveLocs; void addCondDirectiveLoc(CondDirectiveLoc DirLoc); public: - /// \brief Construct a new preprocessing record. + /// Construct a new preprocessing record. explicit PPConditionalDirectiveRecord(SourceManager &SM); size_t getTotalMemory() const; SourceManager &getSourceManager() const { return SourceMgr; } - /// \brief Returns true if the given range intersects with a conditional + /// Returns true if the given range intersects with a conditional /// directive. if a \#if/\#endif block is fully contained within the range, /// this function will return false. bool rangeIntersectsConditionalDirective(SourceRange Range) const; - /// \brief Returns true if the given locations are in different regions, + /// Returns true if the given locations are in different regions, /// separated by conditional directive blocks. bool areInDifferentConditionalDirectiveRegion(SourceLocation LHS, SourceLocation RHS) const { Index: cfe/trunk/include/clang/Lex/Pragma.h =================================================================== --- cfe/trunk/include/clang/Lex/Pragma.h +++ cfe/trunk/include/clang/Lex/Pragma.h @@ -26,22 +26,22 @@ class Token; /** - * \brief Describes how the pragma was introduced, e.g., with \#pragma, + * Describes how the pragma was introduced, e.g., with \#pragma, * _Pragma, or __pragma. */ enum PragmaIntroducerKind { /** - * \brief The pragma was introduced via \#pragma. + * The pragma was introduced via \#pragma. */ PIK_HashPragma, /** - * \brief The pragma was introduced via the C99 _Pragma(string-literal). + * The pragma was introduced via the C99 _Pragma(string-literal). */ PIK__Pragma, /** - * \brief The pragma was introduced via the Microsoft + * The pragma was introduced via the Microsoft * __pragma(token-string). */ PIK___pragma Index: cfe/trunk/include/clang/Lex/PreprocessingRecord.h =================================================================== --- cfe/trunk/include/clang/Lex/PreprocessingRecord.h +++ cfe/trunk/include/clang/Lex/PreprocessingRecord.h @@ -39,11 +39,11 @@ } // namespace clang -/// \brief Allocates memory within a Clang preprocessing record. +/// Allocates memory within a Clang preprocessing record. void *operator new(size_t bytes, clang::PreprocessingRecord &PR, unsigned alignment = 8) noexcept; -/// \brief Frees memory allocated in a Clang preprocessing record. +/// Frees memory allocated in a Clang preprocessing record. void operator delete(void *ptr, clang::PreprocessingRecord &PR, unsigned) noexcept; @@ -55,25 +55,25 @@ class SourceManager; class Token; - /// \brief Base class that describes a preprocessed entity, which may be a + /// Base class that describes a preprocessed entity, which may be a /// preprocessor directive or macro expansion. class PreprocessedEntity { public: - /// \brief The kind of preprocessed entity an object describes. + /// The kind of preprocessed entity an object describes. enum EntityKind { - /// \brief Indicates a problem trying to load the preprocessed entity. + /// Indicates a problem trying to load the preprocessed entity. InvalidKind, - /// \brief A macro expansion. + /// A macro expansion. MacroExpansionKind, /// \defgroup Preprocessing directives /// @{ - /// \brief A macro definition. + /// A macro definition. MacroDefinitionKind, - /// \brief An inclusion directive, such as \c \#include, \c + /// An inclusion directive, such as \c \#include, \c /// \#import, or \c \#include_next. InclusionDirectiveKind, @@ -84,10 +84,10 @@ }; private: - /// \brief The kind of preprocessed entity that this object describes. + /// The kind of preprocessed entity that this object describes. EntityKind Kind; - /// \brief The source range that covers this preprocessed entity. + /// The source range that covers this preprocessed entity. SourceRange Range; protected: @@ -97,14 +97,14 @@ : Kind(Kind), Range(Range) {} public: - /// \brief Retrieve the kind of preprocessed entity stored in this object. + /// Retrieve the kind of preprocessed entity stored in this object. EntityKind getKind() const { return Kind; } - /// \brief Retrieve the source range that covers this entire preprocessed + /// Retrieve the source range that covers this entire preprocessed /// entity. SourceRange getSourceRange() const LLVM_READONLY { return Range; } - /// \brief Returns true if there was a problem loading the preprocessed + /// Returns true if there was a problem loading the preprocessed /// entity. bool isInvalid() const { return Kind == InvalidKind; } @@ -131,7 +131,7 @@ void operator delete(void *data) noexcept; }; - /// \brief Records the presence of a preprocessor directive. + /// Records the presence of a preprocessor directive. class PreprocessingDirective : public PreprocessedEntity { public: PreprocessingDirective(EntityKind Kind, SourceRange Range) @@ -144,9 +144,9 @@ } }; - /// \brief Record the location of a macro definition. + /// Record the location of a macro definition. class MacroDefinitionRecord : public PreprocessingDirective { - /// \brief The name of the macro being defined. + /// The name of the macro being defined. const IdentifierInfo *Name; public: @@ -154,10 +154,10 @@ SourceRange Range) : PreprocessingDirective(MacroDefinitionKind, Range), Name(Name) {} - /// \brief Retrieve the name of the macro being defined. + /// Retrieve the name of the macro being defined. const IdentifierInfo *getName() const { return Name; } - /// \brief Retrieve the location of the macro name in the definition. + /// Retrieve the location of the macro name in the definition. SourceLocation getLocation() const { return getSourceRange().getBegin(); } // Implement isa/cast/dyncast/etc. @@ -166,9 +166,9 @@ } }; - /// \brief Records the location of a macro expansion. + /// Records the location of a macro expansion. class MacroExpansion : public PreprocessedEntity { - /// \brief The definition of this macro or the name of the macro if it is + /// The definition of this macro or the name of the macro if it is /// a builtin macro. llvm::PointerUnion<IdentifierInfo *, MacroDefinitionRecord *> NameOrDef; @@ -181,17 +181,17 @@ : PreprocessedEntity(MacroExpansionKind, Range), NameOrDef(Definition) { } - /// \brief True if it is a builtin macro. + /// True if it is a builtin macro. bool isBuiltinMacro() const { return NameOrDef.is<IdentifierInfo *>(); } - /// \brief The name of the macro being expanded. + /// The name of the macro being expanded. const IdentifierInfo *getName() const { if (MacroDefinitionRecord *Def = getDefinition()) return Def->getName(); return NameOrDef.get<IdentifierInfo *>(); } - /// \brief The definition of the macro being expanded. May return null if + /// The definition of the macro being expanded. May return null if /// this is a builtin macro. MacroDefinitionRecord *getDefinition() const { return NameOrDef.dyn_cast<MacroDefinitionRecord *>(); @@ -203,45 +203,45 @@ } }; - /// \brief Record the location of an inclusion directive, such as an + /// Record the location of an inclusion directive, such as an /// \c \#include or \c \#import statement. class InclusionDirective : public PreprocessingDirective { public: - /// \brief The kind of inclusion directives known to the + /// The kind of inclusion directives known to the /// preprocessor. enum InclusionKind { - /// \brief An \c \#include directive. + /// An \c \#include directive. Include, - /// \brief An Objective-C \c \#import directive. + /// An Objective-C \c \#import directive. Import, - /// \brief A GNU \c \#include_next directive. + /// A GNU \c \#include_next directive. IncludeNext, - /// \brief A Clang \c \#__include_macros directive. + /// A Clang \c \#__include_macros directive. IncludeMacros }; private: - /// \brief The name of the file that was included, as written in + /// The name of the file that was included, as written in /// the source. StringRef FileName; - /// \brief Whether the file name was in quotation marks; otherwise, it was + /// Whether the file name was in quotation marks; otherwise, it was /// in angle brackets. unsigned InQuotes : 1; - /// \brief The kind of inclusion directive we have. + /// The kind of inclusion directive we have. /// /// This is a value of type InclusionKind. unsigned Kind : 2; - /// \brief Whether the inclusion directive was automatically turned into + /// Whether the inclusion directive was automatically turned into /// a module import. unsigned ImportedModule : 1; - /// \brief The file that was included. + /// The file that was included. const FileEntry *File; public: @@ -250,21 +250,21 @@ bool InQuotes, bool ImportedModule, const FileEntry *File, SourceRange Range); - /// \brief Determine what kind of inclusion directive this is. + /// Determine what kind of inclusion directive this is. InclusionKind getKind() const { return static_cast<InclusionKind>(Kind); } - /// \brief Retrieve the included file name as it was written in the source. + /// Retrieve the included file name as it was written in the source. StringRef getFileName() const { return FileName; } - /// \brief Determine whether the included file name was written in quotes; + /// Determine whether the included file name was written in quotes; /// otherwise, it was written in angle brackets. bool wasInQuotes() const { return InQuotes; } - /// \brief Determine whether the inclusion directive was automatically + /// Determine whether the inclusion directive was automatically /// turned into a module import. bool importedModule() const { return ImportedModule; } - /// \brief Retrieve the file entry for the actual file that was included + /// Retrieve the file entry for the actual file that was included /// by this directive. const FileEntry *getFile() const { return File; } @@ -274,60 +274,60 @@ } }; - /// \brief An abstract class that should be subclassed by any external source + /// An abstract class that should be subclassed by any external source /// of preprocessing record entries. class ExternalPreprocessingRecordSource { public: virtual ~ExternalPreprocessingRecordSource(); - /// \brief Read a preallocated preprocessed entity from the external source. + /// Read a preallocated preprocessed entity from the external source. /// /// \returns null if an error occurred that prevented the preprocessed /// entity from being loaded. virtual PreprocessedEntity *ReadPreprocessedEntity(unsigned Index) = 0; - /// \brief Returns a pair of [Begin, End) indices of preallocated + /// Returns a pair of [Begin, End) indices of preallocated /// preprocessed entities that \p Range encompasses. virtual std::pair<unsigned, unsigned> findPreprocessedEntitiesInRange(SourceRange Range) = 0; - /// \brief Optionally returns true or false if the preallocated preprocessed + /// Optionally returns true or false if the preallocated preprocessed /// entity with index \p Index came from file \p FID. virtual Optional<bool> isPreprocessedEntityInFileID(unsigned Index, FileID FID) { return None; } - /// \brief Read a preallocated skipped range from the external source. + /// Read a preallocated skipped range from the external source. virtual SourceRange ReadSkippedRange(unsigned Index) = 0; }; - /// \brief A record of the steps taken while preprocessing a source file, + /// A record of the steps taken while preprocessing a source file, /// including the various preprocessing directives processed, macros /// expanded, etc. class PreprocessingRecord : public PPCallbacks { SourceManager &SourceMgr; - /// \brief Allocator used to store preprocessing objects. + /// Allocator used to store preprocessing objects. llvm::BumpPtrAllocator BumpAlloc; - /// \brief The set of preprocessed entities in this record, in order they + /// The set of preprocessed entities in this record, in order they /// were seen. std::vector<PreprocessedEntity *> PreprocessedEntities; - /// \brief The set of preprocessed entities in this record that have been + /// The set of preprocessed entities in this record that have been /// loaded from external sources. /// /// The entries in this vector are loaded lazily from the external source, /// and are referenced by the iterator using negative indices. std::vector<PreprocessedEntity *> LoadedPreprocessedEntities; - /// \brief The set of ranges that were skipped by the preprocessor, + /// The set of ranges that were skipped by the preprocessor, std::vector<SourceRange> SkippedRanges; bool SkippedRangesAllLoaded = true; - /// \brief Global (loaded or local) ID for a preprocessed entity. + /// Global (loaded or local) ID for a preprocessed entity. /// Negative values are used to indicate preprocessed entities /// loaded from the external source while non-negative values are used to /// indicate preprocessed entities introduced by the current preprocessor. @@ -351,60 +351,60 @@ return isLoaded ? PPEntityID(-int(Index)-1) : PPEntityID(Index+1); } - /// \brief Mapping from MacroInfo structures to their definitions. + /// Mapping from MacroInfo structures to their definitions. llvm::DenseMap<const MacroInfo *, MacroDefinitionRecord *> MacroDefinitions; - /// \brief External source of preprocessed entities. + /// External source of preprocessed entities. ExternalPreprocessingRecordSource *ExternalSource = nullptr; - /// \brief Retrieve the preprocessed entity at the given ID. + /// Retrieve the preprocessed entity at the given ID. PreprocessedEntity *getPreprocessedEntity(PPEntityID PPID); - /// \brief Retrieve the loaded preprocessed entity at the given index. + /// Retrieve the loaded preprocessed entity at the given index. PreprocessedEntity *getLoadedPreprocessedEntity(unsigned Index); - /// \brief Determine the number of preprocessed entities that were + /// Determine the number of preprocessed entities that were /// loaded (or can be loaded) from an external source. unsigned getNumLoadedPreprocessedEntities() const { return LoadedPreprocessedEntities.size(); } - /// \brief Returns a pair of [Begin, End) indices of local preprocessed + /// Returns a pair of [Begin, End) indices of local preprocessed /// entities that \p Range encompasses. std::pair<unsigned, unsigned> findLocalPreprocessedEntitiesInRange(SourceRange Range) const; unsigned findBeginLocalPreprocessedEntity(SourceLocation Loc) const; unsigned findEndLocalPreprocessedEntity(SourceLocation Loc) const; - /// \brief Allocate space for a new set of loaded preprocessed entities. + /// Allocate space for a new set of loaded preprocessed entities. /// /// \returns The index into the set of loaded preprocessed entities, which /// corresponds to the first newly-allocated entity. unsigned allocateLoadedEntities(unsigned NumEntities); - /// \brief Allocate space for a new set of loaded preprocessed skipped + /// Allocate space for a new set of loaded preprocessed skipped /// ranges. /// /// \returns The index into the set of loaded preprocessed ranges, which /// corresponds to the first newly-allocated range. unsigned allocateSkippedRanges(unsigned NumRanges); - /// \brief Ensures that all external skipped ranges have been loaded. + /// Ensures that all external skipped ranges have been loaded. void ensureSkippedRangesLoaded(); - /// \brief Register a new macro definition. + /// Register a new macro definition. void RegisterMacroDefinition(MacroInfo *Macro, MacroDefinitionRecord *Def); public: - /// \brief Construct a new preprocessing record. + /// Construct a new preprocessing record. explicit PreprocessingRecord(SourceManager &SM); - /// \brief Allocate memory in the preprocessing record. + /// Allocate memory in the preprocessing record. void *Allocate(unsigned Size, unsigned Align = 8) { return BumpAlloc.Allocate(Size, Align); } - /// \brief Deallocate memory in the preprocessing record. + /// Deallocate memory in the preprocessing record. void Deallocate(void *Ptr) {} size_t getTotalMemory() const; @@ -451,27 +451,27 @@ PreprocessedEntity *operator->() const { return **this; } }; - /// \brief Begin iterator for all preprocessed entities. + /// Begin iterator for all preprocessed entities. iterator begin() { return iterator(this, -(int)LoadedPreprocessedEntities.size()); } - /// \brief End iterator for all preprocessed entities. + /// End iterator for all preprocessed entities. iterator end() { return iterator(this, PreprocessedEntities.size()); } - /// \brief Begin iterator for local, non-loaded, preprocessed entities. + /// Begin iterator for local, non-loaded, preprocessed entities. iterator local_begin() { return iterator(this, 0); } - /// \brief End iterator for local, non-loaded, preprocessed entities. + /// End iterator for local, non-loaded, preprocessed entities. iterator local_end() { return iterator(this, PreprocessedEntities.size()); } - /// \brief iterator range for the given range of loaded + /// iterator range for the given range of loaded /// preprocessed entities. llvm::iterator_range<iterator> getIteratorsForLoadedRange(unsigned start, unsigned count) { @@ -482,14 +482,14 @@ iterator(this, int(end) - LoadedPreprocessedEntities.size())); } - /// \brief Returns a range of preprocessed entities that source range \p R + /// Returns a range of preprocessed entities that source range \p R /// encompasses. /// /// \param R the range to look for preprocessed entities. llvm::iterator_range<iterator> getPreprocessedEntitiesInRange(SourceRange R); - /// \brief Returns true if the preprocessed entity that \p PPEI iterator + /// Returns true if the preprocessed entity that \p PPEI iterator /// points to is coming from the file \p FID. /// /// Can be used to avoid implicit deserializations of preallocated @@ -498,22 +498,22 @@ /// \see getPreprocessedEntitiesInRange. bool isEntityInFileID(iterator PPEI, FileID FID); - /// \brief Add a new preprocessed entity to this record. + /// Add a new preprocessed entity to this record. PPEntityID addPreprocessedEntity(PreprocessedEntity *Entity); - /// \brief Set the external source for preprocessed entities. + /// Set the external source for preprocessed entities. void SetExternalSource(ExternalPreprocessingRecordSource &Source); - /// \brief Retrieve the external source for preprocessed entities. + /// Retrieve the external source for preprocessed entities. ExternalPreprocessingRecordSource *getExternalSource() const { return ExternalSource; } - /// \brief Retrieve the macro definition that corresponds to the given + /// Retrieve the macro definition that corresponds to the given /// \c MacroInfo. MacroDefinitionRecord *findMacroDefinition(const MacroInfo *MI); - /// \brief Retrieve all ranges that got skipped while preprocessing. + /// Retrieve all ranges that got skipped while preprocessing. const std::vector<SourceRange> &getSkippedRanges() { ensureSkippedRangesLoaded(); return SkippedRanges; @@ -539,7 +539,7 @@ void Ifndef(SourceLocation Loc, const Token &MacroNameTok, const MacroDefinition &MD) override; - /// \brief Hook called whenever the 'defined' operator is seen. + /// Hook called whenever the 'defined' operator is seen. void Defined(const Token &MacroNameTok, const MacroDefinition &MD, SourceRange Range) override; @@ -549,7 +549,7 @@ void addMacroExpansion(const Token &Id, const MacroInfo *MI, SourceRange Range); - /// \brief Cached result of the last \see getPreprocessedEntitiesInRange + /// Cached result of the last \see getPreprocessedEntitiesInRange /// query. struct { SourceRange Range; Index: cfe/trunk/include/clang/Lex/Preprocessor.h =================================================================== --- cfe/trunk/include/clang/Lex/Preprocessor.h +++ cfe/trunk/include/clang/Lex/Preprocessor.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Defines the clang::Preprocessor interface. +/// Defines the clang::Preprocessor interface. // //===----------------------------------------------------------------------===// @@ -83,7 +83,7 @@ class ScratchBuffer; class TargetInfo; -/// \brief Stores token information for comparing actual tokens with +/// Stores token information for comparing actual tokens with /// predefined values. Only handles simple tokens and identifiers. class TokenValue { tok::TokenKind Kind; @@ -106,7 +106,7 @@ } }; -/// \brief Context in which macro name is used. +/// Context in which macro name is used. enum MacroUse { // other than #define or #undef MU_Other = 0, @@ -118,7 +118,7 @@ MU_Undef = 2 }; -/// \brief Engages in a tight little dance with the lexer to efficiently +/// Engages in a tight little dance with the lexer to efficiently /// preprocess tokens. /// /// Lexers know only about tokens within a single source file, and don't @@ -140,7 +140,7 @@ HeaderSearch &HeaderInfo; ModuleLoader &TheModuleLoader; - /// \brief External source of macros. + /// External source of macros. ExternalPreprocessorSource *ExternalSource; /// An optional PTHManager object used for getting tokens from @@ -186,7 +186,7 @@ unsigned CounterValue = 0; enum { - /// \brief Maximum depth of \#includes. + /// Maximum depth of \#includes. MaxAllowedIncludeStackDepth = 200 }; @@ -210,26 +210,26 @@ class ResetMacroExpansionHelper; - /// \brief Whether we have already loaded macros from the external source. + /// Whether we have already loaded macros from the external source. mutable bool ReadMacrosFromExternalSource : 1; - /// \brief True if pragmas are enabled. + /// True if pragmas are enabled. bool PragmasEnabled : 1; - /// \brief True if the current build action is a preprocessing action. + /// True if the current build action is a preprocessing action. bool PreprocessedOutput : 1; - /// \brief True if we are currently preprocessing a #if or #elif directive + /// True if we are currently preprocessing a #if or #elif directive bool ParsingIfOrElifDirective; - /// \brief True if we are pre-expanding macro arguments. + /// True if we are pre-expanding macro arguments. bool InMacroArgPreExpansion; - /// \brief Mapping/lookup information for all identifiers in + /// Mapping/lookup information for all identifiers in /// the program, including program keywords. mutable IdentifierTable Identifiers; - /// \brief This table contains all the selectors in the program. + /// This table contains all the selectors in the program. /// /// Unlike IdentifierTable above, this table *isn't* populated by the /// preprocessor. It is declared/expanded here because its role/lifetime is @@ -240,82 +240,82 @@ /// the lifetime of the preprocessor. SelectorTable Selectors; - /// \brief Information about builtins. + /// Information about builtins. Builtin::Context BuiltinInfo; - /// \brief Tracks all of the pragmas that the client registered + /// Tracks all of the pragmas that the client registered /// with this preprocessor. std::unique_ptr<PragmaNamespace> PragmaHandlers; - /// \brief Pragma handlers of the original source is stored here during the + /// Pragma handlers of the original source is stored here during the /// parsing of a model file. std::unique_ptr<PragmaNamespace> PragmaHandlersBackup; - /// \brief Tracks all of the comment handlers that the client registered + /// Tracks all of the comment handlers that the client registered /// with this preprocessor. std::vector<CommentHandler *> CommentHandlers; - /// \brief True if we want to ignore EOF token and continue later on (thus + /// True if we want to ignore EOF token and continue later on (thus /// avoid tearing the Lexer and etc. down). bool IncrementalProcessing = false; /// The kind of translation unit we are processing. TranslationUnitKind TUKind; - /// \brief The code-completion handler. + /// The code-completion handler. CodeCompletionHandler *CodeComplete = nullptr; - /// \brief The file that we're performing code-completion for, if any. + /// The file that we're performing code-completion for, if any. const FileEntry *CodeCompletionFile = nullptr; - /// \brief The offset in file for the code-completion point. + /// The offset in file for the code-completion point. unsigned CodeCompletionOffset = 0; - /// \brief The location for the code-completion point. This gets instantiated + /// The location for the code-completion point. This gets instantiated /// when the CodeCompletionFile gets \#include'ed for preprocessing. SourceLocation CodeCompletionLoc; - /// \brief The start location for the file of the code-completion point. + /// The start location for the file of the code-completion point. /// /// This gets instantiated when the CodeCompletionFile gets \#include'ed /// for preprocessing. SourceLocation CodeCompletionFileLoc; - /// \brief The source location of the \c import contextual keyword we just + /// The source location of the \c import contextual keyword we just /// lexed, if any. SourceLocation ModuleImportLoc; - /// \brief The module import path that we're currently processing. + /// The module import path that we're currently processing. SmallVector<std::pair<IdentifierInfo *, SourceLocation>, 2> ModuleImportPath; - /// \brief Whether the last token we lexed was an '@'. + /// Whether the last token we lexed was an '@'. bool LastTokenWasAt = false; - /// \brief Whether the module import expects an identifier next. Otherwise, + /// Whether the module import expects an identifier next. Otherwise, /// it expects a '.' or ';'. bool ModuleImportExpectsIdentifier = false; - /// \brief The source location of the currently-active + /// The source location of the currently-active /// \#pragma clang arc_cf_code_audited begin. SourceLocation PragmaARCCFCodeAuditedLoc; - /// \brief The source location of the currently-active + /// The source location of the currently-active /// \#pragma clang assume_nonnull begin. SourceLocation PragmaAssumeNonNullLoc; - /// \brief True if we hit the code-completion point. + /// True if we hit the code-completion point. bool CodeCompletionReached = false; - /// \brief The code completion token containing the information + /// The code completion token containing the information /// on the stem that is to be code completed. IdentifierInfo *CodeCompletionII = nullptr; - /// \brief The directory that the main file should be considered to occupy, + /// The directory that the main file should be considered to occupy, /// if it does not correspond to a real file (as happens when building a /// module). const DirectoryEntry *MainFileDir = nullptr; - /// \brief The number of bytes that we will initially skip when entering the + /// The number of bytes that we will initially skip when entering the /// main file, along with a flag that indicates whether skipping this number /// of bytes will place the lexer at the start of a line. /// @@ -386,37 +386,37 @@ State ConditionalStackState = Off; } PreambleConditionalStack; - /// \brief The current top of the stack that we're lexing from if + /// The current top of the stack that we're lexing from if /// not expanding a macro and we are lexing directly from source code. /// /// Only one of CurLexer, CurPTHLexer, or CurTokenLexer will be non-null. std::unique_ptr<Lexer> CurLexer; - /// \brief The current top of stack that we're lexing from if + /// The current top of stack that we're lexing from if /// not expanding from a macro and we are lexing from a PTH cache. /// /// Only one of CurLexer, CurPTHLexer, or CurTokenLexer will be non-null. std::unique_ptr<PTHLexer> CurPTHLexer; - /// \brief The current top of the stack what we're lexing from + /// The current top of the stack what we're lexing from /// if not expanding a macro. /// /// This is an alias for either CurLexer or CurPTHLexer. PreprocessorLexer *CurPPLexer = nullptr; - /// \brief Used to find the current FileEntry, if CurLexer is non-null + /// Used to find the current FileEntry, if CurLexer is non-null /// and if applicable. /// /// This allows us to implement \#include_next and find directory-specific /// properties. const DirectoryLookup *CurDirLookup = nullptr; - /// \brief The current macro we are expanding, if we are expanding a macro. + /// The current macro we are expanding, if we are expanding a macro. /// /// One of CurLexer and CurTokenLexer must be null. std::unique_ptr<TokenLexer> CurTokenLexer; - /// \brief The kind of lexer we're currently working with. + /// The kind of lexer we're currently working with. enum CurLexerKind { CLK_Lexer, CLK_PTHLexer, @@ -425,11 +425,11 @@ CLK_LexAfterModuleImport } CurLexerKind = CLK_Lexer; - /// \brief If the current lexer is for a submodule that is being built, this + /// If the current lexer is for a submodule that is being built, this /// is that submodule. Module *CurLexerSubmodule = nullptr; - /// \brief Keeps track of the stack of files currently + /// Keeps track of the stack of files currently /// \#included, and macros currently being expanded from, not counting /// CurLexer/CurTokenLexer. struct IncludeStackInfo { @@ -458,7 +458,7 @@ }; std::vector<IncludeStackInfo> IncludeMacroStack; - /// \brief Actions invoked when some preprocessor activity is + /// Actions invoked when some preprocessor activity is /// encountered (e.g. a file is \#included, etc). std::unique_ptr<PPCallbacks> Callbacks; @@ -617,7 +617,7 @@ struct SubmoduleState; - /// \brief Information about a submodule that we're currently building. + /// Information about a submodule that we're currently building. struct BuildingSubmoduleInfo { /// The module that we are building. Module *M; @@ -643,7 +643,7 @@ }; SmallVector<BuildingSubmoduleInfo, 8> BuildingSubmoduleStack; - /// \brief Information about a submodule's preprocessor state. + /// Information about a submodule's preprocessor state. struct SubmoduleState { /// The macros for the submodule. MacroMap Macros; @@ -674,7 +674,7 @@ llvm::DenseMap<const IdentifierInfo *, llvm::TinyPtrVector<ModuleMacro *>> LeafModuleMacros; - /// \brief Macros that we want to warn because they are not used at the end + /// Macros that we want to warn because they are not used at the end /// of the translation unit. /// /// We store just their SourceLocations instead of @@ -686,7 +686,7 @@ using WarnUnusedMacroLocsTy = llvm::SmallPtrSet<SourceLocation, 32>; WarnUnusedMacroLocsTy WarnUnusedMacroLocs; - /// \brief A "freelist" of MacroArg objects that can be + /// A "freelist" of MacroArg objects that can be /// reused for quick allocation. MacroArgs *MacroArgCache = nullptr; @@ -713,21 +713,21 @@ unsigned NumFastTokenPaste = 0; unsigned NumSkipped = 0; - /// \brief The predefined macros that preprocessor should use from the + /// The predefined macros that preprocessor should use from the /// command line etc. std::string Predefines; - /// \brief The file ID for the preprocessor predefines. + /// The file ID for the preprocessor predefines. FileID PredefinesFileID; /// \{ - /// \brief Cache of macro expanders to reduce malloc traffic. + /// Cache of macro expanders to reduce malloc traffic. enum { TokenLexerCacheSize = 8 }; unsigned NumCachedTokenLexers; std::unique_ptr<TokenLexer> TokenLexerCache[TokenLexerCacheSize]; /// \} - /// \brief Keeps macro expanded tokens for TokenLexers. + /// Keeps macro expanded tokens for TokenLexers. // /// Works like a stack; a TokenLexer adds the macro expanded tokens that is /// going to lex in the cache and when it finishes the tokens are removed @@ -735,7 +735,7 @@ SmallVector<Token, 16> MacroExpandedTokens; std::vector<std::pair<TokenLexer *, size_t>> MacroExpandingLexersStack; - /// \brief A record of the macro definitions and expansions that + /// A record of the macro definitions and expansions that /// occurred during preprocessing. /// /// This is an optional side structure that can be enabled with @@ -745,18 +745,18 @@ /// Cached tokens state. using CachedTokensTy = SmallVector<Token, 1>; - /// \brief Cached tokens are stored here when we do backtracking or + /// Cached tokens are stored here when we do backtracking or /// lookahead. They are "lexed" by the CachingLex() method. CachedTokensTy CachedTokens; - /// \brief The position of the cached token that CachingLex() should + /// The position of the cached token that CachingLex() should /// "lex" next. /// /// If it points beyond the CachedTokens vector, it means that a normal /// Lex() should be invoked. CachedTokensTy::size_type CachedLexPos = 0; - /// \brief Stack of backtrack positions, allowing nested backtracks. + /// Stack of backtrack positions, allowing nested backtracks. /// /// The EnableBacktrackAtThisPos() method pushes a position to /// indicate where CachedLexPos should be set when the BackTrack() method is @@ -785,7 +785,7 @@ ~Preprocessor(); - /// \brief Initialize the preprocessor using information about the target. + /// Initialize the preprocessor using information about the target. /// /// \param Target is owned by the caller and must remain valid for the /// lifetime of the preprocessor. @@ -794,7 +794,7 @@ void Initialize(const TargetInfo &Target, const TargetInfo *AuxTarget = nullptr); - /// \brief Initialize the preprocessor to parse a model file + /// Initialize the preprocessor to parse a model file /// /// To parse model files the preprocessor of the original source is reused to /// preserver the identifier table. However to avoid some duplicate @@ -802,10 +802,10 @@ /// to parse model files. This method does that cleanup. void InitializeForModelFile(); - /// \brief Cleanup after model file parsing + /// Cleanup after model file parsing void FinalizeForModelFile(); - /// \brief Retrieve the preprocessor options used to initialize this + /// Retrieve the preprocessor options used to initialize this /// preprocessor. PreprocessorOptions &getPreprocessorOpts() const { return *PPOpts; } @@ -838,19 +838,19 @@ return ExternalSource; } - /// \brief Retrieve the module loader associated with this preprocessor. + /// Retrieve the module loader associated with this preprocessor. ModuleLoader &getModuleLoader() const { return TheModuleLoader; } bool hadModuleLoaderFatalFailure() const { return TheModuleLoader.HadFatalFailure; } - /// \brief True if we are currently preprocessing a #if or #elif directive + /// True if we are currently preprocessing a #if or #elif directive bool isParsingIfOrElifDirective() const { return ParsingIfOrElifDirective; } - /// \brief Control whether the preprocessor retains comments in output. + /// Control whether the preprocessor retains comments in output. void SetCommentRetentionState(bool KeepComments, bool KeepMacroComments) { this->KeepComments = KeepComments | KeepMacroComments; this->KeepMacroComments = KeepMacroComments; @@ -879,32 +879,32 @@ /// false if it is producing tokens to be consumed by Parse and Sema. bool isPreprocessedOutput() const { return PreprocessedOutput; } - /// \brief Return true if we are lexing directly from the specified lexer. + /// Return true if we are lexing directly from the specified lexer. bool isCurrentLexer(const PreprocessorLexer *L) const { return CurPPLexer == L; } - /// \brief Return the current lexer being lexed from. + /// Return the current lexer being lexed from. /// /// Note that this ignores any potentially active macro expansions and _Pragma /// expansions going on at the time. PreprocessorLexer *getCurrentLexer() const { return CurPPLexer; } - /// \brief Return the current file lexer being lexed from. + /// Return the current file lexer being lexed from. /// /// Note that this ignores any potentially active macro expansions and _Pragma /// expansions going on at the time. PreprocessorLexer *getCurrentFileLexer() const; - /// \brief Return the submodule owning the file being lexed. This may not be + /// Return the submodule owning the file being lexed. This may not be /// the current module if we have changed modules since entering the file. Module *getCurrentLexerSubmodule() const { return CurLexerSubmodule; } - /// \brief Returns the FileID for the preprocessor predefines. + /// Returns the FileID for the preprocessor predefines. FileID getPredefinesFileID() const { return PredefinesFileID; } /// \{ - /// \brief Accessors for preprocessor callbacks. + /// Accessors for preprocessor callbacks. /// /// Note that this class takes ownership of any PPCallbacks object given to /// it. @@ -925,7 +925,7 @@ (!getLangOpts().Modules || (bool)getMacroDefinition(II)); } - /// \brief Determine whether II is defined as a macro within the module M, + /// Determine whether II is defined as a macro within the module M, /// if that is a module that we've already preprocessed. Does not check for /// macros imported into M. bool isMacroDefinedInLocalModule(const IdentifierInfo *II, Module *M) { @@ -969,7 +969,7 @@ S.isAmbiguous(*this, II)); } - /// \brief Given an identifier, return its latest non-imported MacroDirective + /// Given an identifier, return its latest non-imported MacroDirective /// if it is \#define'd and not \#undef'd, or null if it isn't \#define'd. MacroDirective *getLocalMacroDirective(const IdentifierInfo *II) const { if (!II->hasMacroDefinition()) @@ -994,14 +994,14 @@ return nullptr; } - /// \brief Given an identifier, return the latest non-imported macro + /// Given an identifier, return the latest non-imported macro /// directive for that identifier. /// /// One can iterate over all previous macro directives from the most recent /// one. MacroDirective *getLocalMacroDirectiveHistory(const IdentifierInfo *II) const; - /// \brief Add a directive to the macro directive history for this identifier. + /// Add a directive to the macro directive history for this identifier. void appendMacroDirective(IdentifierInfo *II, MacroDirective *MD); DefMacroDirective *appendDefMacroDirective(IdentifierInfo *II, MacroInfo *MI, SourceLocation Loc) { @@ -1014,16 +1014,16 @@ return appendDefMacroDirective(II, MI, MI->getDefinitionLoc()); } - /// \brief Set a MacroDirective that was loaded from a PCH file. + /// Set a MacroDirective that was loaded from a PCH file. void setLoadedMacroDirective(IdentifierInfo *II, MacroDirective *ED, MacroDirective *MD); - /// \brief Register an exported macro for a module and identifier. + /// Register an exported macro for a module and identifier. ModuleMacro *addModuleMacro(Module *Mod, IdentifierInfo *II, MacroInfo *Macro, ArrayRef<ModuleMacro *> Overrides, bool &IsNew); ModuleMacro *getModuleMacro(Module *Mod, IdentifierInfo *II); - /// \brief Get the list of leaf (non-overridden) module macros for a name. + /// Get the list of leaf (non-overridden) module macros for a name. ArrayRef<ModuleMacro*> getLeafModuleMacros(const IdentifierInfo *II) const { if (II->isOutOfDate()) updateOutOfDateIdentifier(const_cast<IdentifierInfo&>(*II)); @@ -1051,7 +1051,7 @@ /// \} - /// \brief Return the name of the macro defined before \p Loc that has + /// Return the name of the macro defined before \p Loc that has /// spelling \p Tokens. If there are multiple macros with same spelling, /// return the last one defined. StringRef getLastMacroWithSpelling(SourceLocation Loc, @@ -1059,7 +1059,7 @@ const std::string &getPredefines() const { return Predefines; } - /// \brief Set the predefines for this Preprocessor. + /// Set the predefines for this Preprocessor. /// /// These predefines are automatically injected when parsing the main file. void setPredefines(const char *P) { Predefines = P; } @@ -1071,7 +1071,7 @@ return &Identifiers.get(Name); } - /// \brief Add the specified pragma handler to this preprocessor. + /// Add the specified pragma handler to this preprocessor. /// /// If \p Namespace is non-null, then it is a token required to exist on the /// pragma line before the pragma string starts, e.g. "STDC" or "GCC". @@ -1080,7 +1080,7 @@ AddPragmaHandler(StringRef(), Handler); } - /// \brief Remove the specific pragma handler from this preprocessor. + /// Remove the specific pragma handler from this preprocessor. /// /// If \p Namespace is non-null, then it should be the namespace that /// \p Handler was added to. It is an error to remove a handler that @@ -1093,68 +1093,68 @@ /// Install empty handlers for all pragmas (making them ignored). void IgnorePragmas(); - /// \brief Add the specified comment handler to the preprocessor. + /// Add the specified comment handler to the preprocessor. void addCommentHandler(CommentHandler *Handler); - /// \brief Remove the specified comment handler. + /// Remove the specified comment handler. /// /// It is an error to remove a handler that has not been registered. void removeCommentHandler(CommentHandler *Handler); - /// \brief Set the code completion handler to the given object. + /// Set the code completion handler to the given object. void setCodeCompletionHandler(CodeCompletionHandler &Handler) { CodeComplete = &Handler; } - /// \brief Retrieve the current code-completion handler. + /// Retrieve the current code-completion handler. CodeCompletionHandler *getCodeCompletionHandler() const { return CodeComplete; } - /// \brief Clear out the code completion handler. + /// Clear out the code completion handler. void clearCodeCompletionHandler() { CodeComplete = nullptr; } - /// \brief Hook used by the lexer to invoke the "natural language" code + /// Hook used by the lexer to invoke the "natural language" code /// completion point. void CodeCompleteNaturalLanguage(); - /// \brief Set the code completion token for filtering purposes. + /// Set the code completion token for filtering purposes. void setCodeCompletionIdentifierInfo(IdentifierInfo *Filter) { CodeCompletionII = Filter; } - /// \brief Get the code completion token for filtering purposes. + /// Get the code completion token for filtering purposes. StringRef getCodeCompletionFilter() { if (CodeCompletionII) return CodeCompletionII->getName(); return {}; } - /// \brief Retrieve the preprocessing record, or NULL if there is no + /// Retrieve the preprocessing record, or NULL if there is no /// preprocessing record. PreprocessingRecord *getPreprocessingRecord() const { return Record; } - /// \brief Create a new preprocessing record, which will keep track of + /// Create a new preprocessing record, which will keep track of /// all macro expansions, macro definitions, etc. void createPreprocessingRecord(); - /// \brief Enter the specified FileID as the main source file, + /// Enter the specified FileID as the main source file, /// which implicitly adds the builtin defines etc. void EnterMainSourceFile(); - /// \brief Inform the preprocessor callbacks that processing is complete. + /// Inform the preprocessor callbacks that processing is complete. void EndSourceFile(); - /// \brief Add a source file to the top of the include stack and + /// Add a source file to the top of the include stack and /// start lexing tokens from it instead of the current buffer. /// /// Emits a diagnostic, doesn't enter the file, and returns true on error. bool EnterSourceFile(FileID CurFileID, const DirectoryLookup *Dir, SourceLocation Loc); - /// \brief Add a Macro to the top of the include stack and start lexing + /// Add a Macro to the top of the include stack and start lexing /// tokens from it instead of the current buffer. /// /// \param Args specifies the tokens input to a function-like macro. @@ -1163,7 +1163,7 @@ void EnterMacro(Token &Identifier, SourceLocation ILEnd, MacroInfo *Macro, MacroArgs *Args); - /// \brief Add a "macro" context to the top of the include stack, + /// Add a "macro" context to the top of the include stack, /// which will cause the lexer to start returning the specified tokens. /// /// If \p DisableMacroExpansion is true, tokens lexed from the token stream @@ -1188,7 +1188,7 @@ EnterTokenStream(Toks.data(), Toks.size(), DisableMacroExpansion, false); } - /// \brief Pop the current lexer/macro exp off the top of the lexer stack. + /// Pop the current lexer/macro exp off the top of the lexer stack. /// /// This should only be used in situations where the current state of the /// top-of-stack lexer is known. @@ -1209,7 +1209,7 @@ /// void EnableBacktrackAtThisPos(); - /// \brief Disable the last EnableBacktrackAtThisPos call. + /// Disable the last EnableBacktrackAtThisPos call. void CommitBacktrackedTokens(); struct CachedTokensRange { @@ -1217,28 +1217,28 @@ }; private: - /// \brief A range of cached tokens that should be erased after lexing + /// A range of cached tokens that should be erased after lexing /// when backtracking requires the erasure of such cached tokens. Optional<CachedTokensRange> CachedTokenRangeToErase; public: - /// \brief Returns the range of cached tokens that were lexed since + /// Returns the range of cached tokens that were lexed since /// EnableBacktrackAtThisPos() was previously called. CachedTokensRange LastCachedTokenRange(); - /// \brief Erase the range of cached tokens that were lexed since + /// Erase the range of cached tokens that were lexed since /// EnableBacktrackAtThisPos() was previously called. void EraseCachedTokens(CachedTokensRange TokenRange); - /// \brief Make Preprocessor re-lex the tokens that were lexed since + /// Make Preprocessor re-lex the tokens that were lexed since /// EnableBacktrackAtThisPos() was previously called. void Backtrack(); - /// \brief True if EnableBacktrackAtThisPos() was called and + /// True if EnableBacktrackAtThisPos() was called and /// caching of tokens is on. bool isBacktrackEnabled() const { return !BacktrackPositions.empty(); } - /// \brief Lex the next token for this preprocessor. + /// Lex the next token for this preprocessor. void Lex(Token &Result); void LexAfterModuleImport(Token &Result); @@ -1249,7 +1249,7 @@ return CurSubmoduleState->VisibleModules.getImportLoc(M); } - /// \brief Lex a string literal, which may be the concatenation of multiple + /// Lex a string literal, which may be the concatenation of multiple /// string literals and may even come from macro expansion. /// \returns true on success, false if a error diagnostic has been generated. bool LexStringLiteral(Token &Result, std::string &String, @@ -1262,13 +1262,13 @@ AllowMacroExpansion); } - /// \brief Complete the lexing of a string literal where the first token has + /// Complete the lexing of a string literal where the first token has /// already been lexed (see LexStringLiteral). bool FinishLexStringLiteral(Token &Result, std::string &String, const char *DiagnosticTag, bool AllowMacroExpansion); - /// \brief Lex a token. If it's a comment, keep lexing until we get + /// Lex a token. If it's a comment, keep lexing until we get /// something not a comment. /// /// This is useful in -E -C mode where comments would foul up preprocessor @@ -1279,7 +1279,7 @@ while (Result.getKind() == tok::comment); } - /// \brief Just like Lex, but disables macro expansion of identifier tokens. + /// Just like Lex, but disables macro expansion of identifier tokens. void LexUnexpandedToken(Token &Result) { // Disable macro expansion. bool OldVal = DisableMacroExpansion; @@ -1291,7 +1291,7 @@ DisableMacroExpansion = OldVal; } - /// \brief Like LexNonComment, but this disables macro expansion of + /// Like LexNonComment, but this disables macro expansion of /// identifier tokens. void LexUnexpandedNonComment(Token &Result) { do @@ -1299,7 +1299,7 @@ while (Result.getKind() == tok::comment); } - /// \brief Parses a simple integer literal to get its numeric value. Floating + /// Parses a simple integer literal to get its numeric value. Floating /// point literals and user defined literals are rejected. Used primarily to /// handle pragmas that accept integer arguments. bool parseSimpleIntegerLiteral(Token &Tok, uint64_t &Value); @@ -1310,7 +1310,7 @@ MacroExpansionInDirectivesOverride = true; } - /// \brief Peeks ahead N tokens and returns that token without consuming any + /// Peeks ahead N tokens and returns that token without consuming any /// tokens. /// /// LookAhead(0) returns the next token that would be returned by Lex(), @@ -1324,7 +1324,7 @@ return PeekAhead(N+1); } - /// \brief When backtracking is enabled and tokens are cached, + /// When backtracking is enabled and tokens are cached, /// this allows to revert a specific number of tokens. /// /// Note that the number of tokens being reverted should be up to the last @@ -1339,7 +1339,7 @@ CachedLexPos -= N; } - /// \brief Enters a token in the token stream to be lexed next. + /// Enters a token in the token stream to be lexed next. /// /// If BackTrack() is called afterwards, the token will remain at the /// insertion point. @@ -1369,18 +1369,18 @@ return CachedTokens[CachedLexPos-1].getLastLoc(); } - /// \brief Whether \p Tok is the most recent token (`CachedLexPos - 1`) in + /// Whether \p Tok is the most recent token (`CachedLexPos - 1`) in /// CachedTokens. bool IsPreviousCachedToken(const Token &Tok) const; - /// \brief Replace token in `CachedLexPos - 1` in CachedTokens by the tokens + /// Replace token in `CachedLexPos - 1` in CachedTokens by the tokens /// in \p NewToks. /// /// Useful when a token needs to be split in smaller ones and CachedTokens /// most recent token must to be updated to reflect that. void ReplacePreviousCachedToken(ArrayRef<Token> NewToks); - /// \brief Replace the last token with an annotation token. + /// Replace the last token with an annotation token. /// /// Like AnnotateCachedTokens(), this routine replaces an /// already-parsed (and resolved) token with an annotation @@ -1406,19 +1406,19 @@ CachedTokens[CachedLexPos-1] = Tok; } - /// \brief Recompute the current lexer kind based on the CurLexer/CurPTHLexer/ + /// Recompute the current lexer kind based on the CurLexer/CurPTHLexer/ /// CurTokenLexer pointers. void recomputeCurLexerKind(); - /// \brief Returns true if incremental processing is enabled + /// Returns true if incremental processing is enabled bool isIncrementalProcessingEnabled() const { return IncrementalProcessing; } - /// \brief Enables the incremental processing + /// Enables the incremental processing void enableIncrementalProcessing(bool value = true) { IncrementalProcessing = value; } - /// \brief Specify the point at which code-completion will be performed. + /// Specify the point at which code-completion will be performed. /// /// \param File the file in which code completion should occur. If /// this file is included multiple times, code-completion will @@ -1435,16 +1435,16 @@ bool SetCodeCompletionPoint(const FileEntry *File, unsigned Line, unsigned Column); - /// \brief Determine if we are performing code completion. + /// Determine if we are performing code completion. bool isCodeCompletionEnabled() const { return CodeCompletionFile != nullptr; } - /// \brief Returns the location of the code-completion point. + /// Returns the location of the code-completion point. /// /// Returns an invalid location if code-completion is not enabled or the file /// containing the code-completion point has not been lexed yet. SourceLocation getCodeCompletionLoc() const { return CodeCompletionLoc; } - /// \brief Returns the start location of the file of code-completion point. + /// Returns the start location of the file of code-completion point. /// /// Returns an invalid location if code-completion is not enabled or the file /// containing the code-completion point has not been lexed yet. @@ -1452,11 +1452,11 @@ return CodeCompletionFileLoc; } - /// \brief Returns true if code-completion is enabled and we have hit the + /// Returns true if code-completion is enabled and we have hit the /// code-completion point. bool isCodeCompletionReached() const { return CodeCompletionReached; } - /// \brief Note that we hit the code-completion point. + /// Note that we hit the code-completion point. void setCodeCompletionReached() { assert(isCodeCompletionEnabled() && "Code-completion not enabled!"); CodeCompletionReached = true; @@ -1464,7 +1464,7 @@ getDiagnostics().setSuppressAllDiagnostics(true); } - /// \brief The location of the currently-active \#pragma clang + /// The location of the currently-active \#pragma clang /// arc_cf_code_audited begin. /// /// Returns an invalid location if there is no such pragma active. @@ -1472,13 +1472,13 @@ return PragmaARCCFCodeAuditedLoc; } - /// \brief Set the location of the currently-active \#pragma clang + /// Set the location of the currently-active \#pragma clang /// arc_cf_code_audited begin. An invalid location ends the pragma. void setPragmaARCCFCodeAuditedLoc(SourceLocation Loc) { PragmaARCCFCodeAuditedLoc = Loc; } - /// \brief The location of the currently-active \#pragma clang + /// The location of the currently-active \#pragma clang /// assume_nonnull begin. /// /// Returns an invalid location if there is no such pragma active. @@ -1486,19 +1486,19 @@ return PragmaAssumeNonNullLoc; } - /// \brief Set the location of the currently-active \#pragma clang + /// Set the location of the currently-active \#pragma clang /// assume_nonnull begin. An invalid location ends the pragma. void setPragmaAssumeNonNullLoc(SourceLocation Loc) { PragmaAssumeNonNullLoc = Loc; } - /// \brief Set the directory in which the main file should be considered + /// Set the directory in which the main file should be considered /// to have been found, if it is not a real file. void setMainFileDir(const DirectoryEntry *Dir) { MainFileDir = Dir; } - /// \brief Instruct the preprocessor to skip part of the main source file. + /// Instruct the preprocessor to skip part of the main source file. /// /// \param Bytes The number of bytes in the preamble to skip. /// @@ -1533,7 +1533,7 @@ return Lexer::getSpelling(loc, buffer, SourceMgr, LangOpts, invalid); } - /// \brief Return the 'spelling' of the Tok token. + /// Return the 'spelling' of the Tok token. /// /// The spelling of a token is the characters used to represent the token in /// the source file after trigraph expansion and escaped-newline folding. In @@ -1545,7 +1545,7 @@ return Lexer::getSpelling(Tok, SourceMgr, LangOpts, Invalid); } - /// \brief Get the spelling of a token into a preallocated buffer, instead + /// Get the spelling of a token into a preallocated buffer, instead /// of as an std::string. /// /// The caller is required to allocate enough space for the token, which is @@ -1562,7 +1562,7 @@ return Lexer::getSpelling(Tok, Buffer, SourceMgr, LangOpts, Invalid); } - /// \brief Get the spelling of a token into a SmallVector. + /// Get the spelling of a token into a SmallVector. /// /// Note that the returned StringRef may not point to the /// supplied buffer if a copy can be avoided. @@ -1570,14 +1570,14 @@ SmallVectorImpl<char> &Buffer, bool *Invalid = nullptr) const; - /// \brief Relex the token at the specified location. + /// Relex the token at the specified location. /// \returns true if there was a failure, false on success. bool getRawToken(SourceLocation Loc, Token &Result, bool IgnoreWhiteSpace = false) { return Lexer::getRawToken(Loc, Result, SourceMgr, LangOpts, IgnoreWhiteSpace); } - /// \brief Given a Token \p Tok that is a numeric constant with length 1, + /// Given a Token \p Tok that is a numeric constant with length 1, /// return the character. char getSpellingOfSingleCharacterNumericConstant(const Token &Tok, @@ -1595,7 +1595,7 @@ return *SourceMgr.getCharacterData(Tok.getLocation(), Invalid); } - /// \brief Retrieve the name of the immediate macro expansion. + /// Retrieve the name of the immediate macro expansion. /// /// This routine starts from a source location, and finds the name of the /// macro responsible for its immediate expansion. It looks through any @@ -1607,7 +1607,7 @@ return Lexer::getImmediateMacroName(Loc, SourceMgr, getLangOpts()); } - /// \brief Plop the specified string into a scratch buffer and set the + /// Plop the specified string into a scratch buffer and set the /// specified token's location and length to it. /// /// If specified, the source location provides a location of the expansion @@ -1621,7 +1621,7 @@ /// split token will return the split token rather than the original. SourceLocation SplitToken(SourceLocation TokLoc, unsigned Length); - /// \brief Computes the source location just past the end of the + /// Computes the source location just past the end of the /// token at this source location. /// /// This routine can be used to produce a source location that @@ -1640,7 +1640,7 @@ return Lexer::getLocForEndOfToken(Loc, Offset, SourceMgr, LangOpts); } - /// \brief Returns true if the given MacroID location points at the first + /// Returns true if the given MacroID location points at the first /// token of the macro expansion. /// /// \param MacroBegin If non-null and function returns true, it is set to @@ -1651,7 +1651,7 @@ MacroBegin); } - /// \brief Returns true if the given MacroID location points at the last + /// Returns true if the given MacroID location points at the last /// token of the macro expansion. /// /// \param MacroEnd If non-null and function returns true, it is set to @@ -1661,20 +1661,20 @@ return Lexer::isAtEndOfMacroExpansion(loc, SourceMgr, LangOpts, MacroEnd); } - /// \brief Print the token to stderr, used for debugging. + /// Print the token to stderr, used for debugging. void DumpToken(const Token &Tok, bool DumpFlags = false) const; void DumpLocation(SourceLocation Loc) const; void DumpMacro(const MacroInfo &MI) const; void dumpMacroInfo(const IdentifierInfo *II); - /// \brief Given a location that specifies the start of a + /// Given a location that specifies the start of a /// token, return a new location that specifies a character within the token. SourceLocation AdvanceToTokenCharacter(SourceLocation TokStart, unsigned Char) const { return Lexer::AdvanceToTokenCharacter(TokStart, Char, SourceMgr, LangOpts); } - /// \brief Increment the counters for the number of token paste operations + /// Increment the counters for the number of token paste operations /// performed. /// /// If fast was specified, this is a 'fast paste' case we handled. @@ -1707,13 +1707,13 @@ llvm::DenseMap<IdentifierInfo*,unsigned> PoisonReasons; public: - /// \brief Specifies the reason for poisoning an identifier. + /// Specifies the reason for poisoning an identifier. /// /// If that identifier is accessed while poisoned, then this reason will be /// used instead of the default "poisoned" diagnostic. void SetPoisonReason(IdentifierInfo *II, unsigned DiagID); - /// \brief Display reason for poisoned identifier. + /// Display reason for poisoned identifier. void HandlePoisonedIdentifier(Token & Tok); void MaybeHandlePoisonedIdentifier(Token & Identifier) { @@ -1746,7 +1746,7 @@ public: void PoisonSEHIdentifiers(bool Poison = true); // Borland - /// \brief Callback invoked when the lexer reads an identifier and has + /// Callback invoked when the lexer reads an identifier and has /// filled in the tokens IdentifierInfo member. /// /// This callback potentially macro expands it or turns it into a named @@ -1756,36 +1756,36 @@ /// lex again. bool HandleIdentifier(Token &Identifier); - /// \brief Callback invoked when the lexer hits the end of the current file. + /// Callback invoked when the lexer hits the end of the current file. /// /// This either returns the EOF token and returns true, or /// pops a level off the include stack and returns false, at which point the /// client should call lex again. bool HandleEndOfFile(Token &Result, bool isEndOfMacro = false); - /// \brief Callback invoked when the current TokenLexer hits the end of its + /// Callback invoked when the current TokenLexer hits the end of its /// token stream. bool HandleEndOfTokenLexer(Token &Result); - /// \brief Callback invoked when the lexer sees a # token at the start of a + /// Callback invoked when the lexer sees a # token at the start of a /// line. /// /// This consumes the directive, modifies the lexer/preprocessor state, and /// advances the lexer(s) so that the next token read is the correct one. void HandleDirective(Token &Result); - /// \brief Ensure that the next token is a tok::eod token. + /// Ensure that the next token is a tok::eod token. /// /// If not, emit a diagnostic and consume up until the eod. /// If \p EnableMacros is true, then we consider macros that expand to zero /// tokens as being ok. void CheckEndOfDirective(const char *Directive, bool EnableMacros = false); - /// \brief Read and discard all tokens remaining on the current line until + /// Read and discard all tokens remaining on the current line until /// the tok::eod token is found. void DiscardUntilEndOfDirective(); - /// \brief Returns true if the preprocessor has seen a use of + /// Returns true if the preprocessor has seen a use of /// __DATE__ or __TIME__ in the file so far. bool SawDateOrTime() const { return DATELoc != SourceLocation() || TIMELoc != SourceLocation(); @@ -1793,13 +1793,13 @@ unsigned getCounterValue() const { return CounterValue; } void setCounterValue(unsigned V) { CounterValue = V; } - /// \brief Retrieves the module that we're currently building, if any. + /// Retrieves the module that we're currently building, if any. Module *getCurrentModule(); - /// \brief Allocate a new MacroInfo object with the provided SourceLocation. + /// Allocate a new MacroInfo object with the provided SourceLocation. MacroInfo *AllocateMacroInfo(SourceLocation L); - /// \brief Turn the specified lexer token into a fully checked and spelled + /// Turn the specified lexer token into a fully checked and spelled /// filename, e.g. as an operand of \#include. /// /// The caller is expected to provide a buffer that is large enough to hold @@ -1810,7 +1810,7 @@ /// in ""'s. bool GetIncludeFilenameSpelling(SourceLocation Loc,StringRef &Filename); - /// \brief Given a "foo" or \<foo> reference, look up the indicated file. + /// Given a "foo" or \<foo> reference, look up the indicated file. /// /// Returns null on failure. \p isAngled indicates whether the file /// reference is for system \#include's or not (i.e. using <> instead of ""). @@ -1823,17 +1823,17 @@ ModuleMap::KnownHeader *SuggestedModule, bool *IsMapped, bool SkipCache = false); - /// \brief Get the DirectoryLookup structure used to find the current + /// Get the DirectoryLookup structure used to find the current /// FileEntry, if CurLexer is non-null and if applicable. /// /// This allows us to implement \#include_next and find directory-specific /// properties. const DirectoryLookup *GetCurDirLookup() { return CurDirLookup; } - /// \brief Return true if we're in the top-level file, not in a \#include. + /// Return true if we're in the top-level file, not in a \#include. bool isInPrimaryFile() const; - /// \brief Handle cases where the \#include name is expanded + /// Handle cases where the \#include name is expanded /// from a macro as multiple tokens, which need to be glued together. /// /// This occurs for code like: @@ -1849,7 +1849,7 @@ bool ConcatenateIncludeName(SmallString<128> &FilenameBuffer, SourceLocation &End); - /// \brief Lex an on-off-switch (C99 6.10.6p2) and verify that it is + /// Lex an on-off-switch (C99 6.10.6p2) and verify that it is /// followed by EOD. Return true if the token is not a valid on-off-switch. bool LexOnOffSwitch(tok::OnOffSwitch &OOS); @@ -1898,7 +1898,7 @@ VisibilityMacroDirective *AllocateVisibilityMacroDirective(SourceLocation Loc, bool isPublic); - /// \brief Lex and validate a macro name, which occurs after a + /// Lex and validate a macro name, which occurs after a /// \#define or \#undef. /// /// \param MacroNameTok Token that represents the name defined or undefined. @@ -1942,7 +1942,7 @@ bool FoundNonSkipPortion, bool FoundElse, SourceLocation ElseLoc = SourceLocation()); - /// \brief A fast PTH version of SkipExcludedConditionalBlock. + /// A fast PTH version of SkipExcludedConditionalBlock. void PTHSkipExcludedConditionalBlock(); /// Information about the result for evaluating an expression for a @@ -1955,17 +1955,17 @@ bool IncludedUndefinedIds; }; - /// \brief Evaluate an integer constant expression that may occur after a + /// Evaluate an integer constant expression that may occur after a /// \#if or \#elif directive and return a \p DirectiveEvalResult object. /// /// If the expression is equivalent to "!defined(X)" return X in IfNDefMacro. DirectiveEvalResult EvaluateDirectiveExpression(IdentifierInfo *&IfNDefMacro); - /// \brief Install the standard preprocessor pragmas: + /// Install the standard preprocessor pragmas: /// \#pragma GCC poison/system_header/dependency and \#pragma once. void RegisterBuiltinPragmas(); - /// \brief Register builtin macros such as __LINE__ with the identifier table. + /// Register builtin macros such as __LINE__ with the identifier table. void RegisterBuiltinMacros(); /// If an identifier token is read that is to be expanded as a macro, handle @@ -1973,7 +1973,7 @@ /// otherwise the caller should lex again. bool HandleMacroExpandedIdentifier(Token &Tok, const MacroDefinition &MD); - /// \brief Cache macro expanded tokens for TokenLexers. + /// Cache macro expanded tokens for TokenLexers. // /// Works like a stack; a TokenLexer adds the macro expanded tokens that is /// going to lex in the cache and when it finishes the tokens are removed @@ -1993,34 +1993,34 @@ MacroArgs *ReadMacroCallArgumentList(Token &MacroName, MacroInfo *MI, SourceLocation &ExpansionEnd); - /// \brief If an identifier token is read that is to be expanded + /// If an identifier token is read that is to be expanded /// as a builtin macro, handle it and return the next token as 'Tok'. void ExpandBuiltinMacro(Token &Tok); - /// \brief Read a \c _Pragma directive, slice it up, process it, then + /// Read a \c _Pragma directive, slice it up, process it, then /// return the first token after the directive. /// This assumes that the \c _Pragma token has just been read into \p Tok. void Handle_Pragma(Token &Tok); - /// \brief Like Handle_Pragma except the pragma text is not enclosed within + /// Like Handle_Pragma except the pragma text is not enclosed within /// a string literal. void HandleMicrosoft__pragma(Token &Tok); - /// \brief Add a lexer to the top of the include stack and + /// Add a lexer to the top of the include stack and /// start lexing tokens from it instead of the current buffer. void EnterSourceFileWithLexer(Lexer *TheLexer, const DirectoryLookup *Dir); - /// \brief Add a lexer to the top of the include stack and + /// Add a lexer to the top of the include stack and /// start getting tokens from it using the PTH cache. void EnterSourceFileWithPTH(PTHLexer *PL, const DirectoryLookup *Dir); - /// \brief Set the FileID for the preprocessor predefines. + /// Set the FileID for the preprocessor predefines. void setPredefinesFileID(FileID FID) { assert(PredefinesFileID.isInvalid() && "PredefinesFileID already set!"); PredefinesFileID = FID; } - /// \brief Returns true if we are lexing from a file and not a + /// Returns true if we are lexing from a file and not a /// pragma or a macro. static bool IsFileLexer(const Lexer* L, const PreprocessorLexer* P) { return L ? !L->isPragmaLexer() : P != nullptr; @@ -2086,12 +2086,12 @@ DiagnosticsEngine &Diags, Module *M); // Module inclusion testing. - /// \brief Find the module that owns the source or header file that + /// Find the module that owns the source or header file that /// \p Loc points to. If the location is in a file that was included /// into a module, or is outside any module, returns nullptr. Module *getModuleForLocation(SourceLocation Loc); - /// \brief We want to produce a diagnostic at location IncLoc concerning a + /// We want to produce a diagnostic at location IncLoc concerning a /// missing module import. /// /// \param IncLoc The location at which the missing import was detected. @@ -2134,7 +2134,7 @@ } private: - /// \brief After processing predefined file, initialize the conditional stack from + /// After processing predefined file, initialize the conditional stack from /// the preamble. void replayPreambleConditionalStack(); @@ -2171,12 +2171,12 @@ // has inserted some tokens and getCommentRetentionState() is false. bool HandleComment(Token &Token, SourceRange Comment); - /// \brief A macro is used, update information about macros that need unused + /// A macro is used, update information about macros that need unused /// warnings. void markMacroAsUsed(MacroInfo *MI); }; -/// \brief Abstract base class that describes a handler that will receive +/// Abstract base class that describes a handler that will receive /// source ranges for each of the comments encountered in the source file. class CommentHandler { public: @@ -2187,7 +2187,7 @@ virtual bool HandleComment(Preprocessor &PP, SourceRange Comment) = 0; }; -/// \brief Registry of pragma handlers added by plugins +/// Registry of pragma handlers added by plugins using PragmaHandlerRegistry = llvm::Registry<PragmaHandler>; } // namespace clang Index: cfe/trunk/include/clang/Lex/PreprocessorLexer.h =================================================================== --- cfe/trunk/include/clang/Lex/PreprocessorLexer.h +++ cfe/trunk/include/clang/Lex/PreprocessorLexer.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Defines the PreprocessorLexer interface. +/// Defines the PreprocessorLexer interface. // //===----------------------------------------------------------------------===// @@ -39,21 +39,21 @@ /// The SourceManager FileID corresponding to the file being lexed. const FileID FID; - /// \brief Number of SLocEntries before lexing the file. + /// Number of SLocEntries before lexing the file. unsigned InitialNumSLocEntries = 0; //===--------------------------------------------------------------------===// // Context-specific lexing flags set by the preprocessor. //===--------------------------------------------------------------------===// - /// \brief True when parsing \#XXX; turns '\\n' into a tok::eod token. + /// True when parsing \#XXX; turns '\\n' into a tok::eod token. bool ParsingPreprocessorDirective = false; - /// \brief True after \#include; turns \<xx> into a tok::angle_string_literal + /// True after \#include; turns \<xx> into a tok::angle_string_literal /// token. bool ParsingFilename = false; - /// \brief True if in raw mode. + /// True if in raw mode. /// /// Raw mode disables interpretation of tokens and is a far faster mode to /// lex in than non-raw-mode. This flag: @@ -68,11 +68,11 @@ /// Note that in raw mode that the PP pointer may be null. bool LexingRawMode = false; - /// \brief A state machine that detects the \#ifndef-wrapping a file + /// A state machine that detects the \#ifndef-wrapping a file /// idiom for the multiple-include optimization. MultipleIncludeOpt MIOpt; - /// \brief Information about the set of \#if/\#ifdef/\#ifndef blocks + /// Information about the set of \#if/\#ifdef/\#ifndef blocks /// we are currently in. SmallVector<PPConditionalInfo, 4> ConditionalStack; @@ -82,7 +82,7 @@ virtual void IndirectLex(Token& Result) = 0; - /// \brief Return the source location for the next observable location. + /// Return the source location for the next observable location. virtual SourceLocation getSourceLocation() = 0; //===--------------------------------------------------------------------===// @@ -114,7 +114,7 @@ return false; } - /// \brief Return the top of the conditional stack. + /// Return the top of the conditional stack. /// \pre This requires that there be a conditional active. PPConditionalInfo &peekConditionalLevel() { assert(!ConditionalStack.empty() && "No conditionals active!"); @@ -130,23 +130,23 @@ //===--------------------------------------------------------------------===// // Misc. lexing methods. - /// \brief After the preprocessor has parsed a \#include, lex and + /// After the preprocessor has parsed a \#include, lex and /// (potentially) macro expand the filename. /// /// If the sequence parsed is not lexically legal, emit a diagnostic and /// return a result EOD token. void LexIncludeFilename(Token &Result); - /// \brief Inform the lexer whether or not we are currently lexing a + /// Inform the lexer whether or not we are currently lexing a /// preprocessor directive. void setParsingPreprocessorDirective(bool f) { ParsingPreprocessorDirective = f; } - /// \brief Return true if this lexer is in raw mode or not. + /// Return true if this lexer is in raw mode or not. bool isLexingRawMode() const { return LexingRawMode; } - /// \brief Return the preprocessor object for this lexer. + /// Return the preprocessor object for this lexer. Preprocessor *getPP() const { return PP; } FileID getFileID() const { @@ -155,7 +155,7 @@ return FID; } - /// \brief Number of SLocEntries before lexing the file. + /// Number of SLocEntries before lexing the file. unsigned getInitialNumSLocEntries() const { return InitialNumSLocEntries; } @@ -164,7 +164,7 @@ /// getFileID(), this only works for lexers with attached preprocessors. const FileEntry *getFileEntry() const; - /// \brief Iterator that traverses the current stack of preprocessor + /// Iterator that traverses the current stack of preprocessor /// conditional directives (\#if/\#ifdef/\#ifndef). using conditional_iterator = SmallVectorImpl<PPConditionalInfo>::const_iterator; Index: cfe/trunk/include/clang/Lex/PreprocessorOptions.h =================================================================== --- cfe/trunk/include/clang/Lex/PreprocessorOptions.h +++ cfe/trunk/include/clang/Lex/PreprocessorOptions.h @@ -27,14 +27,14 @@ namespace clang { -/// \brief Enumerate the kinds of standard library that +/// Enumerate the kinds of standard library that enum ObjCXXARCStandardLibraryKind { ARCXX_nolib, - /// \brief libc++ + /// libc++ ARCXX_libcxx, - /// \brief libstdc++ + /// libstdc++ ARCXX_libstdcxx }; @@ -46,42 +46,42 @@ std::vector<std::string> Includes; std::vector<std::string> MacroIncludes; - /// \brief Initialize the preprocessor with the compiler and target specific + /// Initialize the preprocessor with the compiler and target specific /// predefines. bool UsePredefines = true; - /// \brief Whether we should maintain a detailed record of all macro + /// Whether we should maintain a detailed record of all macro /// definitions and expansions. bool DetailedRecord = false; /// The implicit PCH included at the start of the translation unit, or empty. std::string ImplicitPCHInclude; - /// \brief Headers that will be converted to chained PCHs in memory. + /// Headers that will be converted to chained PCHs in memory. std::vector<std::string> ChainedIncludes; - /// \brief When true, disables most of the normal validation performed on + /// When true, disables most of the normal validation performed on /// precompiled headers. bool DisablePCHValidation = false; - /// \brief When true, a PCH with compiler errors will not be rejected. + /// When true, a PCH with compiler errors will not be rejected. bool AllowPCHWithCompilerErrors = false; - /// \brief Dump declarations that are deserialized from PCH, for testing. + /// Dump declarations that are deserialized from PCH, for testing. bool DumpDeserializedPCHDecls = false; - /// \brief This is a set of names for decls that we do not want to be + /// This is a set of names for decls that we do not want to be /// deserialized, and we emit an error if they are; for testing purposes. std::set<std::string> DeserializedPCHDeclsToErrorOn; - /// \brief If non-zero, the implicit PCH include is actually a precompiled + /// If non-zero, the implicit PCH include is actually a precompiled /// preamble that covers this number of bytes in the main source file. /// /// The boolean indicates whether the preamble ends at the start of a new /// line. std::pair<unsigned, bool> PrecompiledPreambleBytes; - /// \brief True indicates that a preamble is being generated. + /// True indicates that a preamble is being generated. /// /// When the lexer is done, one of the things that need to be preserved is the /// conditional #if stack, so the ASTWriter/ASTReader can save/restore it when @@ -105,22 +105,22 @@ /// When enabled, the preprocessor will construct editor placeholder tokens. bool LexEditorPlaceholders = true; - /// \brief True if the SourceManager should report the original file name for + /// True if the SourceManager should report the original file name for /// contents of files that were remapped to other files. Defaults to true. bool RemappedFilesKeepOriginalName = true; - /// \brief The set of file remappings, which take existing files on + /// The set of file remappings, which take existing files on /// the system (the first part of each pair) and gives them the /// contents of other files on the system (the second part of each /// pair). std::vector<std::pair<std::string, std::string>> RemappedFiles; - /// \brief The set of file-to-buffer remappings, which take existing files + /// The set of file-to-buffer remappings, which take existing files /// on the system (the first part of each pair) and gives them the contents /// of the specified memory buffer (the second part of each pair). std::vector<std::pair<std::string, llvm::MemoryBuffer *>> RemappedFileBuffers; - /// \brief Whether the compiler instance should retain (i.e., not free) + /// Whether the compiler instance should retain (i.e., not free) /// the buffers associated with remapped files. /// /// This flag defaults to false; it can be set true only through direct @@ -128,12 +128,12 @@ /// compiler invocation and its buffers will be reused. bool RetainRemappedFileBuffers = false; - /// \brief The Objective-C++ ARC standard library that we should support, + /// The Objective-C++ ARC standard library that we should support, /// by providing appropriate definitions to retrofit the standard library /// with support for lifetime-qualified pointers. ObjCXXARCStandardLibraryKind ObjCXXARCStandardLibrary = ARCXX_nolib; - /// \brief Records the set of modules + /// Records the set of modules class FailedModulesSet { llvm::StringSet<> Failed; @@ -147,7 +147,7 @@ } }; - /// \brief The set of modules that failed to build. + /// The set of modules that failed to build. /// /// This pointer will be shared among all of the compiler instances created /// to (re)build modules, so that once a module fails to build anywhere, @@ -174,7 +174,7 @@ RemappedFileBuffers.clear(); } - /// \brief Reset any options that are not considered when building a + /// Reset any options that are not considered when building a /// module. void resetNonModularOptions() { Includes.clear(); Index: cfe/trunk/include/clang/Lex/Token.h =================================================================== --- cfe/trunk/include/clang/Lex/Token.h +++ cfe/trunk/include/clang/Lex/Token.h @@ -102,24 +102,24 @@ return is(K1) || isOneOf(K2, Ks...); } - /// \brief Return true if this is a raw identifier (when lexing + /// Return true if this is a raw identifier (when lexing /// in raw mode) or a non-keyword identifier (when lexing in non-raw mode). bool isAnyIdentifier() const { return tok::isAnyIdentifier(getKind()); } - /// \brief Return true if this is a "literal", like a numeric + /// Return true if this is a "literal", like a numeric /// constant, string, etc. bool isLiteral() const { return tok::isLiteral(getKind()); } - /// \brief Return true if this is any of tok::annot_* kind tokens. + /// Return true if this is any of tok::annot_* kind tokens. bool isAnnotation() const { return tok::isAnnotation(getKind()); } - /// \brief Return a source location identifier for the specified + /// Return a source location identifier for the specified /// offset in the current file. SourceLocation getLocation() const { return SourceLocation::getFromRawEncoding(Loc); @@ -153,7 +153,7 @@ : getLocation().getLocWithOffset(getLength()); } - /// \brief SourceRange of the group of tokens that this annotation token + /// SourceRange of the group of tokens that this annotation token /// represents. SourceRange getAnnotationRange() const { return SourceRange(getLocation(), getAnnotationEndLoc()); @@ -165,7 +165,7 @@ const char *getName() const { return tok::getTokenName(Kind); } - /// \brief Reset all flags to cleared. + /// Reset all flags to cleared. void startToken() { Kind = tok::unknown; Flags = 0; @@ -230,22 +230,22 @@ PtrData = val; } - /// \brief Set the specified flag. + /// Set the specified flag. void setFlag(TokenFlags Flag) { Flags |= Flag; } - /// \brief Get the specified flag. + /// Get the specified flag. bool getFlag(TokenFlags Flag) const { return (Flags & Flag) != 0; } - /// \brief Unset the specified flag. + /// Unset the specified flag. void clearFlag(TokenFlags Flag) { Flags &= ~Flag; } - /// \brief Return the internal represtation of the flags. + /// Return the internal represtation of the flags. /// /// This is only intended for low-level operations such as writing tokens to /// disk. @@ -253,7 +253,7 @@ return Flags; } - /// \brief Set a flag to either true or false. + /// Set a flag to either true or false. void setFlagValue(TokenFlags Flag, bool Val) { if (Val) setFlag(Flag); @@ -265,28 +265,28 @@ /// bool isAtStartOfLine() const { return getFlag(StartOfLine); } - /// \brief Return true if this token has whitespace before it. + /// Return true if this token has whitespace before it. /// bool hasLeadingSpace() const { return getFlag(LeadingSpace); } - /// \brief Return true if this identifier token should never + /// Return true if this identifier token should never /// be expanded in the future, due to C99 6.10.3.4p2. bool isExpandDisabled() const { return getFlag(DisableExpand); } - /// \brief Return true if we have an ObjC keyword identifier. + /// Return true if we have an ObjC keyword identifier. bool isObjCAtKeyword(tok::ObjCKeywordKind objcKey) const; - /// \brief Return the ObjC keyword kind. + /// Return the ObjC keyword kind. tok::ObjCKeywordKind getObjCKeywordID() const; - /// \brief Return true if this token has trigraphs or escaped newlines in it. + /// Return true if this token has trigraphs or escaped newlines in it. bool needsCleaning() const { return getFlag(NeedsCleaning); } - /// \brief Return true if this token has an empty macro before it. + /// Return true if this token has an empty macro before it. /// bool hasLeadingEmptyMacro() const { return getFlag(LeadingEmptyMacro); } - /// \brief Return true if this token is a string or character literal which + /// Return true if this token is a string or character literal which /// has a ud-suffix. bool hasUDSuffix() const { return getFlag(HasUDSuffix); } @@ -308,21 +308,21 @@ bool isEditorPlaceholder() const { return getFlag(IsEditorPlaceholder); } }; -/// \brief Information about the conditional stack (\#if directives) +/// Information about the conditional stack (\#if directives) /// currently active. struct PPConditionalInfo { - /// \brief Location where the conditional started. + /// Location where the conditional started. SourceLocation IfLoc; - /// \brief True if this was contained in a skipping directive, e.g., + /// True if this was contained in a skipping directive, e.g., /// in a "\#if 0" block. bool WasSkipping; - /// \brief True if we have emitted tokens already, and now we're in + /// True if we have emitted tokens already, and now we're in /// an \#else block or something. Only useful in Skipping blocks. bool FoundNonSkip; - /// \brief True if we've seen a \#else in this block. If so, + /// True if we've seen a \#else in this block. If so, /// \#elif/\#else directives are not allowed. bool FoundElse; }; Index: cfe/trunk/include/clang/Lex/TokenLexer.h =================================================================== --- cfe/trunk/include/clang/Lex/TokenLexer.h +++ cfe/trunk/include/clang/Lex/TokenLexer.h @@ -62,18 +62,18 @@ /// expanded. SourceLocation ExpandLocStart, ExpandLocEnd; - /// \brief Source location pointing at the source location entry chunk that + /// Source location pointing at the source location entry chunk that /// was reserved for the current macro expansion. SourceLocation MacroExpansionStart; - /// \brief The offset of the macro expansion in the + /// The offset of the macro expansion in the /// "source location address space". unsigned MacroStartSLocOffset; - /// \brief Location of the macro definition. + /// Location of the macro definition. SourceLocation MacroDefStart; - /// \brief Length of the macro definition. + /// Length of the macro definition. unsigned MacroDefLength; /// Lexical information about the expansion point of the macro: the identifier @@ -216,12 +216,12 @@ /// first token on the next line. void HandleMicrosoftCommentPaste(Token &Tok, SourceLocation OpLoc); - /// \brief If \p loc is a FileID and points inside the current macro + /// If \p loc is a FileID and points inside the current macro /// definition, returns the appropriate source location pointing at the /// macro expansion source location entry. SourceLocation getExpansionLocForMacroDefLoc(SourceLocation loc) const; - /// \brief Creates SLocEntries and updates the locations of macro argument + /// Creates SLocEntries and updates the locations of macro argument /// tokens to their new expanded locations. /// /// \param ArgIdSpellLoc the location of the macro argument id inside the Index: cfe/trunk/include/clang/Lex/VariadicMacroSupport.h =================================================================== --- cfe/trunk/include/clang/Lex/VariadicMacroSupport.h +++ cfe/trunk/include/clang/Lex/VariadicMacroSupport.h @@ -66,7 +66,7 @@ ~VariadicMacroScopeGuard() { exitScope(); } }; - /// \brief A class for tracking whether we're inside a VA_OPT during a + /// A class for tracking whether we're inside a VA_OPT during a /// traversal of the tokens of a variadic macro definition. class VAOptDefinitionContext { /// Contains all the locations of so far unmatched lparens. @@ -116,7 +116,7 @@ }; - /// \brief A class for tracking whether we're inside a VA_OPT during a + /// A class for tracking whether we're inside a VA_OPT during a /// traversal of the tokens of a macro during macro expansion. class VAOptExpansionContext : VAOptDefinitionContext { Index: cfe/trunk/include/clang/Parse/ParseAST.h =================================================================== --- cfe/trunk/include/clang/Parse/ParseAST.h +++ cfe/trunk/include/clang/Parse/ParseAST.h @@ -23,7 +23,7 @@ class CodeCompleteConsumer; class Sema; - /// \brief Parse the entire file specified, notifying the ASTConsumer as + /// Parse the entire file specified, notifying the ASTConsumer as /// the file is parsed. /// /// This operation inserts the parsed decls into the translation @@ -42,7 +42,7 @@ CodeCompleteConsumer *CompletionConsumer = nullptr, bool SkipFunctionBodies = false); - /// \brief Parse the main file known to the preprocessor, producing an + /// Parse the main file known to the preprocessor, producing an /// abstract syntax tree. void ParseAST(Sema &S, bool PrintStats = false, bool SkipFunctionBodies = false); Index: cfe/trunk/include/clang/Parse/Parser.h =================================================================== --- cfe/trunk/include/clang/Parse/Parser.h +++ cfe/trunk/include/clang/Parse/Parser.h @@ -121,25 +121,25 @@ /// Objective-C contextual keywords. mutable IdentifierInfo *Ident_instancetype; - /// \brief Identifier for "introduced". + /// Identifier for "introduced". IdentifierInfo *Ident_introduced; - /// \brief Identifier for "deprecated". + /// Identifier for "deprecated". IdentifierInfo *Ident_deprecated; - /// \brief Identifier for "obsoleted". + /// Identifier for "obsoleted". IdentifierInfo *Ident_obsoleted; - /// \brief Identifier for "unavailable". + /// Identifier for "unavailable". IdentifierInfo *Ident_unavailable; - /// \brief Identifier for "message". + /// Identifier for "message". IdentifierInfo *Ident_message; - /// \brief Identifier for "strict". + /// Identifier for "strict". IdentifierInfo *Ident_strict; - /// \brief Identifier for "replacement". + /// Identifier for "replacement". IdentifierInfo *Ident_replacement; /// Identifiers used by the 'external_source_symbol' attribute. @@ -205,7 +205,7 @@ /// ColonProtectionRAIIObject RAII object. bool ColonIsSacred; - /// \brief When true, we are directly inside an Objective-C message + /// When true, we are directly inside an Objective-C message /// send expression. /// /// This is managed by the \c InMessageExpressionRAIIObject class, and @@ -215,7 +215,7 @@ /// The "depth" of the template parameters currently being parsed. unsigned TemplateParameterDepth; - /// \brief RAII class that manages the template parameter depth. + /// RAII class that manages the template parameter depth. class TemplateParameterDepthRAII { unsigned &Depth; unsigned AddedLevels; @@ -241,11 +241,11 @@ /// Factory object for creating AttributeList objects. AttributeFactory AttrFactory; - /// \brief Gathers and cleans up TemplateIdAnnotations when parsing of a + /// Gathers and cleans up TemplateIdAnnotations when parsing of a /// top-level declaration is finished. SmallVector<TemplateIdAnnotation *, 16> TemplateIds; - /// \brief Identifiers which have been declared within a tentative parse. + /// Identifiers which have been declared within a tentative parse. SmallVector<IdentifierInfo *, 8> TentativelyDeclaredIdentifiers; IdentifierInfo *getSEHExceptKeyword(); @@ -400,11 +400,11 @@ isTokenBrace() || Tok.is(tok::code_completion) || Tok.isAnnotation(); } - /// \brief Returns true if the current token is '=' or is a type of '='. + /// Returns true if the current token is '=' or is a type of '='. /// For typos, give a fixit to '=' bool isTokenEqualOrEqualTypo(); - /// \brief Return the current token to the token stream and make the given + /// Return the current token to the token stream and make the given /// token the current token. void UnconsumeToken(Token &Consumed) { Token Next = Tok; @@ -474,7 +474,7 @@ return PrevTokLocation; } - /// \brief Consume the current code-completion token. + /// Consume the current code-completion token. /// /// This routine can be called to consume the code-completion token and /// continue processing in special cases where \c cutOffParsing() isn't @@ -493,7 +493,7 @@ /// \returns the source location of the code-completion token. SourceLocation handleUnexpectedCodeCompletionToken(); - /// \brief Abruptly cut off parsing; mainly used when we have reached the + /// Abruptly cut off parsing; mainly used when we have reached the /// code-completion point. void cutOffParsing() { if (PP.isCodeCompletionEnabled()) @@ -502,7 +502,7 @@ Tok.setKind(tok::eof); } - /// \brief Determine if we're at the end of the file or at a transition + /// Determine if we're at the end of the file or at a transition /// between modules. bool isEofOrEom() { tok::TokenKind Kind = Tok.getKind(); @@ -510,34 +510,34 @@ Kind == tok::annot_module_end || Kind == tok::annot_module_include; } - /// \brief Checks if the \p Level is valid for use in a fold expression. + /// Checks if the \p Level is valid for use in a fold expression. bool isFoldOperator(prec::Level Level) const; - /// \brief Checks if the \p Kind is a valid operator for fold expressions. + /// Checks if the \p Kind is a valid operator for fold expressions. bool isFoldOperator(tok::TokenKind Kind) const; - /// \brief Initialize all pragma handlers. + /// Initialize all pragma handlers. void initializePragmaHandlers(); - /// \brief Destroy and reset all pragma handlers. + /// Destroy and reset all pragma handlers. void resetPragmaHandlers(); - /// \brief Handle the annotation token produced for #pragma unused(...) + /// Handle the annotation token produced for #pragma unused(...) void HandlePragmaUnused(); - /// \brief Handle the annotation token produced for + /// Handle the annotation token produced for /// #pragma GCC visibility... void HandlePragmaVisibility(); - /// \brief Handle the annotation token produced for + /// Handle the annotation token produced for /// #pragma pack... void HandlePragmaPack(); - /// \brief Handle the annotation token produced for + /// Handle the annotation token produced for /// #pragma ms_struct... void HandlePragmaMSStruct(); - /// \brief Handle the annotation token produced for + /// Handle the annotation token produced for /// #pragma comment... void HandlePragmaMSComment(); @@ -553,43 +553,43 @@ bool HandlePragmaMSInitSeg(StringRef PragmaName, SourceLocation PragmaLocation); - /// \brief Handle the annotation token produced for + /// Handle the annotation token produced for /// #pragma align... void HandlePragmaAlign(); - /// \brief Handle the annotation token produced for + /// Handle the annotation token produced for /// #pragma clang __debug dump... void HandlePragmaDump(); - /// \brief Handle the annotation token produced for + /// Handle the annotation token produced for /// #pragma weak id... void HandlePragmaWeak(); - /// \brief Handle the annotation token produced for + /// Handle the annotation token produced for /// #pragma weak id = id... void HandlePragmaWeakAlias(); - /// \brief Handle the annotation token produced for + /// Handle the annotation token produced for /// #pragma redefine_extname... void HandlePragmaRedefineExtname(); - /// \brief Handle the annotation token produced for + /// Handle the annotation token produced for /// #pragma STDC FP_CONTRACT... void HandlePragmaFPContract(); - /// \brief Handle the annotation token produced for + /// Handle the annotation token produced for /// #pragma clang fp ... void HandlePragmaFP(); - /// \brief Handle the annotation token produced for + /// Handle the annotation token produced for /// #pragma OPENCL EXTENSION... void HandlePragmaOpenCLExtension(); - /// \brief Handle the annotation token produced for + /// Handle the annotation token produced for /// #pragma clang __debug captured StmtResult HandlePragmaCaptured(); - /// \brief Handle the annotation token produced for + /// Handle the annotation token produced for /// #pragma clang loop and #pragma unroll. bool HandlePragmaLoopHint(LoopHint &Hint); @@ -628,13 +628,13 @@ Tok.setAnnotationValue(T.getAsOpaquePtr()); } - /// \brief Read an already-translated primary expression out of an annotation + /// Read an already-translated primary expression out of an annotation /// token. static ExprResult getExprAnnotation(const Token &Tok) { return ExprResult::getFromOpaquePointer(Tok.getAnnotationValue()); } - /// \brief Set the primary expression corresponding to the given annotation + /// Set the primary expression corresponding to the given annotation /// token. static void setExprAnnotation(Token &Tok, ExprResult ER) { Tok.setAnnotationValue(ER.getAsOpaquePointer()); @@ -718,7 +718,7 @@ /// otherwise emits a diagnostic and returns true. bool TryKeywordIdentFallback(bool DisableKeyword); - /// \brief Get the TemplateIdAnnotation from the token. + /// Get the TemplateIdAnnotation from the token. TemplateIdAnnotation *takeTemplateIdAnnotation(const Token &tok); /// TentativeParsingAction - An object that is used as a kind of "tentative @@ -816,14 +816,14 @@ unsigned Diag = diag::err_expected, StringRef DiagMsg = ""); - /// \brief The parser expects a semicolon and, if present, will consume it. + /// The parser expects a semicolon and, if present, will consume it. /// /// If the next token is not a semicolon, this emits the specified diagnostic, /// or, if there's just some closing-delimiter noise (e.g., ')' or ']') prior /// to the semicolon, consumes that extra token. bool ExpectAndConsumeSemi(unsigned DiagID); - /// \brief The kind of extra semi diagnostic to emit. + /// The kind of extra semi diagnostic to emit. enum ExtraSemiKind { OutsideFunction = 0, InsideStruct = 1, @@ -831,7 +831,7 @@ AfterMemberFunctionDefinition = 3 }; - /// \brief Consume any extra semi-colons until the end of the line. + /// Consume any extra semi-colons until the end of the line. void ConsumeExtraSemi(ExtraSemiKind Kind, unsigned TST = TST_unspecified); /// Return false if the next token is an identifier. An 'expected identifier' @@ -895,7 +895,7 @@ void ExitScope(); private: - /// \brief RAII object used to modify the scope flags for the current scope. + /// RAII object used to modify the scope flags for the current scope. class ParseScopeFlags { Scope *CurScope; unsigned OldFlags; @@ -924,10 +924,10 @@ public: - /// \brief Control flags for SkipUntil functions. + /// Control flags for SkipUntil functions. enum SkipUntilFlags { StopAtSemi = 1 << 0, ///< Stop skipping at semicolon - /// \brief Stop skipping at specified token, but don't skip the token itself + /// Stop skipping at specified token, but don't skip the token itself StopBeforeMatch = 1 << 1, StopAtCodeCompletion = 1 << 2 ///< Stop at code completion }; @@ -1049,7 +1049,7 @@ Decl *D; CachedTokens Toks; - /// \brief Whether this member function had an associated template + /// Whether this member function had an associated template /// scope. When true, D is a template declaration. /// otherwise, it is a member function declaration. bool TemplateScope; @@ -1095,7 +1095,7 @@ /// Method - The method declaration. Decl *Method; - /// \brief Whether this member function had an associated template + /// Whether this member function had an associated template /// scope. When true, D is a template declaration. /// otherwise, it is a member function declaration. bool TemplateScope; @@ -1107,7 +1107,7 @@ /// scope at the appropriate times. SmallVector<LateParsedDefaultArgument, 8> DefaultArgs; - /// \brief The set of tokens that make up an exception-specification that + /// The set of tokens that make up an exception-specification that /// has not yet been parsed. CachedTokens *ExceptionSpecTokens; }; @@ -1139,7 +1139,7 @@ /// entities. typedef SmallVector<LateParsedDeclaration*,2> LateParsedDeclarationsContainer; - /// \brief Representation of a class that has been parsed, including + /// Representation of a class that has been parsed, including /// any member function declarations or definitions that need to be /// parsed after the corresponding top-level class is complete. struct ParsingClass { @@ -1147,19 +1147,19 @@ : TopLevelClass(TopLevelClass), TemplateScope(false), IsInterface(IsInterface), TagOrTemplate(TagOrTemplate) { } - /// \brief Whether this is a "top-level" class, meaning that it is + /// Whether this is a "top-level" class, meaning that it is /// not nested within another class. bool TopLevelClass : 1; - /// \brief Whether this class had an associated template + /// Whether this class had an associated template /// scope. When true, TagOrTemplate is a template declaration; /// otherwise, it is a tag declaration. bool TemplateScope : 1; - /// \brief Whether this class is an __interface. + /// Whether this class is an __interface. bool IsInterface : 1; - /// \brief The class or class template whose definition we are parsing. + /// The class or class template whose definition we are parsing. Decl *TagOrTemplate; /// LateParsedDeclarations - Method declarations, inline definitions and @@ -1168,7 +1168,7 @@ LateParsedDeclarationsContainer LateParsedDeclarations; }; - /// \brief The stack of classes that is currently being + /// The stack of classes that is currently being /// parsed. Nested and local classes will be pushed onto this stack /// when they are parsed, and removed afterward. std::stack<ParsingClass *> ClassStack; @@ -1178,7 +1178,7 @@ return *ClassStack.top(); } - /// \brief RAII object used to manage the parsing of a class definition. + /// RAII object used to manage the parsing of a class definition. class ParsingClassDefinition { Parser &P; bool Popped; @@ -1191,7 +1191,7 @@ State(P.PushParsingClass(TagOrTemplate, TopLevelClass, IsInterface)) { } - /// \brief Pop this class of the stack. + /// Pop this class of the stack. void Pop() { assert(!Popped && "Nested class has already been popped"); Popped = true; @@ -1204,7 +1204,7 @@ } }; - /// \brief Contains information about any template-specific + /// Contains information about any template-specific /// information that has been parsed prior to parsing declaration /// specifiers. struct ParsedTemplateInfo { @@ -1224,31 +1224,31 @@ ExternLoc(ExternLoc), TemplateLoc(TemplateLoc), LastParameterListWasEmpty(false){ } - /// \brief The kind of template we are parsing. + /// The kind of template we are parsing. enum { - /// \brief We are not parsing a template at all. + /// We are not parsing a template at all. NonTemplate = 0, - /// \brief We are parsing a template declaration. + /// We are parsing a template declaration. Template, - /// \brief We are parsing an explicit specialization. + /// We are parsing an explicit specialization. ExplicitSpecialization, - /// \brief We are parsing an explicit instantiation. + /// We are parsing an explicit instantiation. ExplicitInstantiation } Kind; - /// \brief The template parameter lists, for template declarations + /// The template parameter lists, for template declarations /// and explicit specializations. TemplateParameterLists *TemplateParams; - /// \brief The location of the 'extern' keyword, if any, for an explicit + /// The location of the 'extern' keyword, if any, for an explicit /// instantiation SourceLocation ExternLoc; - /// \brief The location of the 'template' keyword, for an explicit + /// The location of the 'template' keyword, for an explicit /// instantiation. SourceLocation TemplateLoc; - /// \brief Whether the last template parameter list was empty. + /// Whether the last template parameter list was empty. bool LastParameterListWasEmpty; SourceRange getSourceRange() const LLVM_READONLY; @@ -1742,11 +1742,11 @@ StmtResult ParseStatement(SourceLocation *TrailingElseLoc = nullptr, bool AllowOpenMPStandalone = false); enum AllowedConstructsKind { - /// \brief Allow any declarations, statements, OpenMP directives. + /// Allow any declarations, statements, OpenMP directives. ACK_Any, - /// \brief Allow only statements and non-standalone OpenMP directives. + /// Allow only statements and non-standalone OpenMP directives. ACK_StatementsOpenMPNonStandalone, - /// \brief Allow statements and all executable OpenMP directives + /// Allow statements and all executable OpenMP directives ACK_StatementsOpenMPAnyExecutable }; StmtResult @@ -1787,34 +1787,34 @@ SourceLocation *TrailingElseLoc, ParsedAttributesWithRange &Attrs); - /// \brief Describes the behavior that should be taken for an __if_exists + /// Describes the behavior that should be taken for an __if_exists /// block. enum IfExistsBehavior { - /// \brief Parse the block; this code is always used. + /// Parse the block; this code is always used. IEB_Parse, - /// \brief Skip the block entirely; this code is never used. + /// Skip the block entirely; this code is never used. IEB_Skip, - /// \brief Parse the block as a dependent block, which may be used in + /// Parse the block as a dependent block, which may be used in /// some template instantiations but not others. IEB_Dependent }; - /// \brief Describes the condition of a Microsoft __if_exists or + /// Describes the condition of a Microsoft __if_exists or /// __if_not_exists block. struct IfExistsCondition { - /// \brief The location of the initial keyword. + /// The location of the initial keyword. SourceLocation KeywordLoc; - /// \brief Whether this is an __if_exists block (rather than an + /// Whether this is an __if_exists block (rather than an /// __if_not_exists block). bool IsIfExists; - /// \brief Nested-name-specifier preceding the name. + /// Nested-name-specifier preceding the name. CXXScopeSpec SS; - /// \brief The name we're looking for. + /// The name we're looking for. UnqualifiedId Name; - /// \brief The behavior of this __if_exists or __if_not_exists block + /// The behavior of this __if_exists or __if_not_exists block /// should. IfExistsBehavior Behavior; }; @@ -1947,7 +1947,7 @@ Decl *ParseFunctionStatementBody(Decl *Decl, ParseScope &BodyScope); Decl *ParseFunctionTryBlock(Decl *Decl, ParseScope &BodyScope); - /// \brief When in code-completion, skip parsing of the function/method body + /// When in code-completion, skip parsing of the function/method body /// unless the body contains the code-completion point. /// /// \returns true if the function body was skipped. @@ -1995,7 +1995,7 @@ /// specifier or if we're not sure. bool isKnownToBeTypeSpecifier(const Token &Tok) const; - /// \brief Return true if we know that we are definitely looking at a + /// Return true if we know that we are definitely looking at a /// decl-specifier, and isn't part of an expression such as a function-style /// cast. Return false if it's no a decl-specifier, or we're not sure. bool isKnownToBeDeclarationSpecifier() { @@ -2023,19 +2023,19 @@ return isDeclarationSpecifier(true); } - /// \brief Determine whether this is a C++1z for-range-identifier. + /// Determine whether this is a C++1z for-range-identifier. bool isForRangeIdentifier(); - /// \brief Determine whether we are currently at the start of an Objective-C + /// Determine whether we are currently at the start of an Objective-C /// class message that appears to be missing the open bracket '['. bool isStartOfObjCClassMessageMissingOpenBracket(); - /// \brief Starting with a scope specifier, identifier, or + /// Starting with a scope specifier, identifier, or /// template-id that refers to the current class, determine whether /// this is a constructor declarator. bool isConstructorDeclarator(bool Unqualified, bool DeductionGuide = false); - /// \brief Specifies the context in which type-id/expression + /// Specifies the context in which type-id/expression /// disambiguation will occur. enum TentativeCXXTypeIdContext { TypeIdInParens, @@ -2058,7 +2058,7 @@ return isTypeIdInParens(isAmbiguous); } - /// \brief Checks if the current tokens form type-id or expression. + /// Checks if the current tokens form type-id or expression. /// It is similar to isTypeIdInParens but does not suppose that type-id /// is in parenthesis. bool isTypeIdUnambiguously() { @@ -2096,7 +2096,7 @@ InitStmtDecl, ///< Disambiguated as a simple-declaration init-statement. Error ///< Can't be any of the above! }; - /// \brief Disambiguates between the different kinds of things that can happen + /// Disambiguates between the different kinds of things that can happen /// after 'if (' or 'switch ('. This could be one of two different kinds of /// declaration (depending on whether there is a ';' later) or an expression. ConditionOrInitStatement @@ -2114,7 +2114,7 @@ True, False, Ambiguous, Error }; - /// \brief Based only on the given token kind, determine whether we know that + /// Based only on the given token kind, determine whether we know that /// we're at the start of an expression or a type-specifier-seq (which may /// be an expression, in C++). /// @@ -2142,7 +2142,7 @@ /// a type-specifier other than a cv-qualifier. bool isCXXDeclarationSpecifierAType(); - /// \brief Determine whether an identifier has been tentatively declared as a + /// Determine whether an identifier has been tentatively declared as a /// non-type. Such tentative declarations should not be found to name a type /// during a tentative parse, but also should not be annotated as a non-type. bool isTentativelyDeclared(IdentifierInfo *II); @@ -2227,16 +2227,16 @@ void ProhibitCXX11Attributes(ParsedAttributesWithRange &Attrs, unsigned DiagID); - /// \brief Skip C++11 and C2x attributes and return the end location of the + /// Skip C++11 and C2x attributes and return the end location of the /// last one. /// \returns SourceLocation() if there are no attributes. SourceLocation SkipCXX11Attributes(); - /// \brief Diagnose and skip C++11 and C2x attributes that appear in syntactic + /// Diagnose and skip C++11 and C2x attributes that appear in syntactic /// locations where attributes are not allowed. void DiagnoseAndSkipCXX11Attributes(); - /// \brief Parses syntax-generic attribute arguments for attributes which are + /// Parses syntax-generic attribute arguments for attributes which are /// known to the implementation, and adds them to the given ParsedAttributes /// list with the given attribute syntax. Returns the number of arguments /// parsed for the attribute. @@ -2309,7 +2309,7 @@ SourceLocation *EndLoc = nullptr); void ParseCXX11Attributes(ParsedAttributesWithRange &attrs, SourceLocation *EndLoc = nullptr); - /// \brief Parses a C++11 (or C2x)-style attribute argument list. Returns true + /// Parses a C++11 (or C2x)-style attribute argument list. Returns true /// if this results in adding an attribute to the ParsedAttributes list. bool ParseCXX11AttributeArgs(IdentifierInfo *AttrName, SourceLocation AttrNameLoc, @@ -2345,7 +2345,7 @@ void ParseBorlandTypeAttributes(ParsedAttributes &attrs); void ParseOpenCLKernelAttributes(ParsedAttributes &attrs); void ParseOpenCLQualifiers(ParsedAttributes &Attrs); - /// \brief Parses opencl_unroll_hint attribute if language is OpenCL v2.0 + /// Parses opencl_unroll_hint attribute if language is OpenCL v2.0 /// or higher. /// \return false if error happens. bool MaybeParseOpenCLUnrollHintAttribute(ParsedAttributes &Attrs) { @@ -2353,7 +2353,7 @@ return ParseOpenCLUnrollHintAttribute(Attrs); return true; } - /// \brief Parses opencl_unroll_hint attribute. + /// Parses opencl_unroll_hint attribute. /// \return false if error happens. bool ParseOpenCLUnrollHintAttribute(ParsedAttributes &Attrs); void ParseNullabilityTypeSpecifiers(ParsedAttributes &attrs); @@ -2633,18 +2633,18 @@ DeclGroupPtrTy ParseOMPDeclareSimdClauses(DeclGroupPtrTy Ptr, CachedTokens &Toks, SourceLocation Loc); - /// \brief Parses declarative OpenMP directives. + /// Parses declarative OpenMP directives. DeclGroupPtrTy ParseOpenMPDeclarativeDirectiveWithExtDecl( AccessSpecifier &AS, ParsedAttributesWithRange &Attrs, DeclSpec::TST TagType = DeclSpec::TST_unspecified, Decl *TagDecl = nullptr); - /// \brief Parse 'omp declare reduction' construct. + /// Parse 'omp declare reduction' construct. DeclGroupPtrTy ParseOpenMPDeclareReductionDirective(AccessSpecifier AS); /// Parses initializer for provided omp_priv declaration inside the reduction /// initializer. void ParseOpenMPReductionInitializerForDecl(VarDecl *OmpPrivParm); - /// \brief Parses simple list of variables. + /// Parses simple list of variables. /// /// \param Kind Kind of the directive. /// \param Callback Callback function to be called for the list elements. @@ -2656,7 +2656,7 @@ const llvm::function_ref<void(CXXScopeSpec &, DeclarationNameInfo)> & Callback, bool AllowScopeSpecifier); - /// \brief Parses declarative or executable directive. + /// Parses declarative or executable directive. /// /// \param Allowed ACK_Any, if any directives are allowed, /// ACK_StatementsOpenMPAnyExecutable - if any executable directives are @@ -2665,7 +2665,7 @@ /// StmtResult ParseOpenMPDeclarativeOrExecutableDirective(AllowedConstructsKind Allowed); - /// \brief Parses clause of kind \a CKind for directive of a kind \a Kind. + /// Parses clause of kind \a CKind for directive of a kind \a Kind. /// /// \param DKind Kind of current directive. /// \param CKind Kind of current clause. @@ -2674,7 +2674,7 @@ /// OMPClause *ParseOpenMPClause(OpenMPDirectiveKind DKind, OpenMPClauseKind CKind, bool FirstClause); - /// \brief Parses clause with a single expression of a kind \a Kind. + /// Parses clause with a single expression of a kind \a Kind. /// /// \param Kind Kind of current clause. /// \param ParseOnly true to skip the clause's semantic actions and return @@ -2682,14 +2682,14 @@ /// OMPClause *ParseOpenMPSingleExprClause(OpenMPClauseKind Kind, bool ParseOnly); - /// \brief Parses simple clause of a kind \a Kind. + /// Parses simple clause of a kind \a Kind. /// /// \param Kind Kind of current clause. /// \param ParseOnly true to skip the clause's semantic actions and return /// nullptr. /// OMPClause *ParseOpenMPSimpleClause(OpenMPClauseKind Kind, bool ParseOnly); - /// \brief Parses clause with a single expression and an additional argument + /// Parses clause with a single expression and an additional argument /// of a kind \a Kind. /// /// \param Kind Kind of current clause. @@ -2698,14 +2698,14 @@ /// OMPClause *ParseOpenMPSingleExprWithArgClause(OpenMPClauseKind Kind, bool ParseOnly); - /// \brief Parses clause without any additional arguments. + /// Parses clause without any additional arguments. /// /// \param Kind Kind of current clause. /// \param ParseOnly true to skip the clause's semantic actions and return /// nullptr. /// OMPClause *ParseOpenMPClause(OpenMPClauseKind Kind, bool ParseOnly = false); - /// \brief Parses clause with the list of variables of a kind \a Kind. + /// Parses clause with the list of variables of a kind \a Kind. /// /// \param Kind Kind of current clause. /// \param ParseOnly true to skip the clause's semantic actions and return Index: cfe/trunk/include/clang/Parse/RAIIObjectsForParser.h =================================================================== --- cfe/trunk/include/clang/Parse/RAIIObjectsForParser.h +++ cfe/trunk/include/clang/Parse/RAIIObjectsForParser.h @@ -25,7 +25,7 @@ // TODO: move ParsingClassDefinition here. // TODO: move TentativeParsingAction here. - /// \brief A RAII object used to temporarily suppress access-like + /// A RAII object used to temporarily suppress access-like /// checking. Access-like checks are those associated with /// controlling the use of a declaration, like C++ access control /// errors and deprecation warnings. They are contextually @@ -84,7 +84,7 @@ } }; - /// \brief RAII object used to inform the actions that we're + /// RAII object used to inform the actions that we're /// currently parsing a declaration. This is active when parsing a /// variable's initializer, but not when parsing the body of a /// class or function definition. @@ -288,7 +288,7 @@ } }; - /// \brief RAII object that makes '>' behave either as an operator + /// RAII object that makes '>' behave either as an operator /// or as the closing angle bracket for a template argument list. class GreaterThanIsOperatorScope { bool &GreaterThanIsOperator; @@ -320,7 +320,7 @@ } }; - /// \brief RAII object that makes sure paren/bracket/brace count is correct + /// RAII object that makes sure paren/bracket/brace count is correct /// after declaration/statement parsing, even when there's a parsing error. class ParenBraceBracketBalancer { Parser &P; @@ -361,7 +361,7 @@ } }; - /// \brief RAII class that helps handle the parsing of an open/close delimiter + /// RAII class that helps handle the parsing of an open/close delimiter /// pair, such as braces { ... } or parentheses ( ... ). class BalancedDelimiterTracker : public GreaterThanIsOperatorScope { Parser& P; @@ -441,7 +441,7 @@ void skipToEnd(); }; - /// \brief RAIIObject to destroy the contents of a SmallVector of + /// RAIIObject to destroy the contents of a SmallVector of /// TemplateIdAnnotation pointers and clear the vector. class DestroyTemplateIdAnnotationsRAIIObj { SmallVectorImpl<TemplateIdAnnotation *> &Container; Index: cfe/trunk/include/clang/Rewrite/Core/RewriteBuffer.h =================================================================== --- cfe/trunk/include/clang/Rewrite/Core/RewriteBuffer.h +++ cfe/trunk/include/clang/Rewrite/Core/RewriteBuffer.h @@ -48,7 +48,7 @@ Initialize(Input.begin(), Input.end()); } - /// \brief Write to \p Stream the result of applying all changes to the + /// Write to \p Stream the result of applying all changes to the /// original buffer. /// Note that it isn't safe to use this function to overwrite memory mapped /// files in-place (PR17960). Consider using a higher-level utility such as Index: cfe/trunk/include/clang/Rewrite/Core/Rewriter.h =================================================================== --- cfe/trunk/include/clang/Rewrite/Core/Rewriter.h +++ cfe/trunk/include/clang/Rewrite/Core/Rewriter.h @@ -37,15 +37,15 @@ public: struct RewriteOptions { - /// \brief Given a source range, true to include previous inserts at the + /// Given a source range, true to include previous inserts at the /// beginning of the range as part of the range itself (true by default). bool IncludeInsertsAtBeginOfRange = true; - /// \brief Given a source range, true to include previous inserts at the + /// Given a source range, true to include previous inserts at the /// end of the range as part of the range itself (true by default). bool IncludeInsertsAtEndOfRange = true; - /// \brief If true and removing some text leaves a blank line + /// If true and removing some text leaves a blank line /// also remove the empty line (false by default). bool RemoveLineIfEmpty = false; @@ -105,7 +105,7 @@ return InsertText(Loc, Str); } - /// \brief Insert the specified string after the token in the + /// Insert the specified string after the token in the /// specified location. bool InsertTextAfterToken(SourceLocation Loc, StringRef Str); @@ -122,13 +122,13 @@ bool RemoveText(SourceLocation Start, unsigned Length, RewriteOptions opts = RewriteOptions()); - /// \brief Remove the specified text region. + /// Remove the specified text region. bool RemoveText(CharSourceRange range, RewriteOptions opts = RewriteOptions()) { return RemoveText(range.getBegin(), getRangeSize(range, opts), opts); } - /// \brief Remove the specified text region. + /// Remove the specified text region. bool RemoveText(SourceRange range, RewriteOptions opts = RewriteOptions()) { return RemoveText(range.getBegin(), getRangeSize(range, opts), opts); } @@ -151,7 +151,7 @@ /// operation. bool ReplaceText(SourceRange range, SourceRange replacementRange); - /// \brief Increase indentation for the lines between the given source range. + /// Increase indentation for the lines between the given source range. /// To determine what the indentation should be, 'parentIndent' is used /// that should be at a source location with an indentation one degree /// lower than the given range. Index: cfe/trunk/include/clang/Rewrite/Frontend/FixItRewriter.h =================================================================== --- cfe/trunk/include/clang/Rewrite/Frontend/FixItRewriter.h +++ cfe/trunk/include/clang/Rewrite/Frontend/FixItRewriter.h @@ -36,7 +36,7 @@ FixItOptions() = default; virtual ~FixItOptions(); - /// \brief This file is about to be rewritten. Return the name of the file + /// This file is about to be rewritten. Return the name of the file /// that is okay to write to. /// /// \param fd out parameter for file descriptor. After the call it may be set @@ -48,52 +48,52 @@ /// if this is false. bool InPlace = false; - /// \brief Whether to abort fixing a file when not all errors could be fixed. + /// Whether to abort fixing a file when not all errors could be fixed. bool FixWhatYouCan = false; - /// \brief Whether to only fix warnings and not errors. + /// Whether to only fix warnings and not errors. bool FixOnlyWarnings = false; - /// \brief If true, only pass the diagnostic to the actual diagnostic consumer + /// If true, only pass the diagnostic to the actual diagnostic consumer /// if it is an error or a fixit was applied as part of the diagnostic. /// It basically silences warnings without accompanying fixits. bool Silent = false; }; class FixItRewriter : public DiagnosticConsumer { - /// \brief The diagnostics machinery. + /// The diagnostics machinery. DiagnosticsEngine &Diags; edit::EditedSource Editor; - /// \brief The rewriter used to perform the various code + /// The rewriter used to perform the various code /// modifications. Rewriter Rewrite; - /// \brief The diagnostic client that performs the actual formatting + /// The diagnostic client that performs the actual formatting /// of error messages. DiagnosticConsumer *Client; std::unique_ptr<DiagnosticConsumer> Owner; - /// \brief Turn an input path into an output path. NULL implies overwriting + /// Turn an input path into an output path. NULL implies overwriting /// the original. FixItOptions *FixItOpts; - /// \brief The number of rewriter failures. + /// The number of rewriter failures. unsigned NumFailures = 0; - /// \brief Whether the previous diagnostic was not passed to the consumer. + /// Whether the previous diagnostic was not passed to the consumer. bool PrevDiagSilenced = false; public: - /// \brief Initialize a new fix-it rewriter. + /// Initialize a new fix-it rewriter. FixItRewriter(DiagnosticsEngine &Diags, SourceManager &SourceMgr, const LangOptions &LangOpts, FixItOptions *FixItOpts); - /// \brief Destroy the fix-it rewriter. + /// Destroy the fix-it rewriter. ~FixItRewriter() override; - /// \brief Check whether there are modifications for a given file. + /// Check whether there are modifications for a given file. bool IsModified(FileID ID) const { return Rewrite.getRewriteBufferFor(ID) != nullptr; } @@ -104,12 +104,12 @@ iterator buffer_begin() { return Rewrite.buffer_begin(); } iterator buffer_end() { return Rewrite.buffer_end(); } - /// \brief Write a single modified source file. + /// Write a single modified source file. /// /// \returns true if there was an error, false otherwise. bool WriteFixedFile(FileID ID, raw_ostream &OS); - /// \brief Write the modified source files. + /// Write the modified source files. /// /// \returns true if there was an error, false otherwise. bool WriteFixedFiles( @@ -126,7 +126,7 @@ void HandleDiagnostic(DiagnosticsEngine::Level DiagLevel, const Diagnostic &Info) override; - /// \brief Emit a diagnostic via the adapted diagnostic client. + /// Emit a diagnostic via the adapted diagnostic client. void Diag(SourceLocation Loc, unsigned DiagID); }; Index: cfe/trunk/include/clang/Rewrite/Frontend/FrontendActions.h =================================================================== --- cfe/trunk/include/clang/Rewrite/Frontend/FrontendActions.h +++ cfe/trunk/include/clang/Rewrite/Frontend/FrontendActions.h @@ -46,7 +46,7 @@ ~FixItAction() override; }; -/// \brief Emits changes to temporary files and uses them for the original +/// Emits changes to temporary files and uses them for the original /// frontend action. class FixItRecompile : public WrapperFrontendAction { public: Index: cfe/trunk/include/clang/Sema/AnalysisBasedWarnings.h =================================================================== --- cfe/trunk/include/clang/Sema/AnalysisBasedWarnings.h +++ cfe/trunk/include/clang/Sema/AnalysisBasedWarnings.h @@ -54,34 +54,34 @@ /// \name Statistics /// @{ - /// \brief Number of function CFGs built and analyzed. + /// Number of function CFGs built and analyzed. unsigned NumFunctionsAnalyzed; - /// \brief Number of functions for which the CFG could not be successfully + /// Number of functions for which the CFG could not be successfully /// built. unsigned NumFunctionsWithBadCFGs; - /// \brief Total number of blocks across all CFGs. + /// Total number of blocks across all CFGs. unsigned NumCFGBlocks; - /// \brief Largest number of CFG blocks for a single function analyzed. + /// Largest number of CFG blocks for a single function analyzed. unsigned MaxCFGBlocksPerFunction; - /// \brief Total number of CFGs with variables analyzed for uninitialized + /// Total number of CFGs with variables analyzed for uninitialized /// uses. unsigned NumUninitAnalysisFunctions; - /// \brief Total number of variables analyzed for uninitialized uses. + /// Total number of variables analyzed for uninitialized uses. unsigned NumUninitAnalysisVariables; - /// \brief Max number of variables analyzed for uninitialized uses in a single + /// Max number of variables analyzed for uninitialized uses in a single /// function. unsigned MaxUninitAnalysisVariablesPerFunction; - /// \brief Total number of block visits during uninitialized use analysis. + /// Total number of block visits during uninitialized use analysis. unsigned NumUninitAnalysisBlockVisits; - /// \brief Max number of block visits during uninitialized use analysis of + /// Max number of block visits during uninitialized use analysis of /// a single function. unsigned MaxUninitAnalysisBlockVisitsPerFunction; Index: cfe/trunk/include/clang/Sema/AttributeList.h =================================================================== --- cfe/trunk/include/clang/Sema/AttributeList.h +++ cfe/trunk/include/clang/Sema/AttributeList.h @@ -36,20 +36,20 @@ class IdentifierInfo; class LangOptions; -/// \brief Represents information about a change in availability for +/// Represents information about a change in availability for /// an entity, which is part of the encoding of the 'availability' /// attribute. struct AvailabilityChange { - /// \brief The location of the keyword indicating the kind of change. + /// The location of the keyword indicating the kind of change. SourceLocation KeywordLoc; - /// \brief The version number at which the change occurred. + /// The version number at which the change occurred. VersionTuple Version; - /// \brief The source range covering the version number. + /// The source range covering the version number. SourceRange VersionRange; - /// \brief Determine whether this availability change is valid. + /// Determine whether this availability change is valid. bool isValid() const { return !Version.empty(); } }; @@ -78,7 +78,7 @@ } // namespace -/// \brief Wraps an identifier and optional source location for the identifier. +/// Wraps an identifier and optional source location for the identifier. struct IdentifierLoc { SourceLocation Loc; IdentifierInfo *Ident; @@ -87,7 +87,7 @@ IdentifierInfo *Ident); }; -/// \brief A union of the various pointer types that can be passed to an +/// A union of the various pointer types that can be passed to an /// AttributeList as an argument. using ArgsUnion = llvm::PointerUnion<Expr *, IdentifierLoc *>; using ArgsVector = llvm::SmallVector<ArgsUnion, 12U>; @@ -175,7 +175,7 @@ /// A cached value. mutable unsigned ProcessingCache : 8; - /// \brief The location of the 'unavailable' keyword in an + /// The location of the 'unavailable' keyword in an /// availability attribute. SourceLocation UnavailableLoc; @@ -524,7 +524,7 @@ return getPropertyDataBuffer(); } - /// \brief Get an index into the attribute spelling list + /// Get an index into the attribute spelling list /// defined in Attr.td. This index is used by an attribute /// to pretty print itself. unsigned getAttributeSpellingListIndex() const; @@ -547,7 +547,7 @@ bool isKnownToGCC() const; bool isSupportedByPragmaAttribute() const; - /// \brief If the parsed attribute has a semantic equivalent, and it would + /// If the parsed attribute has a semantic equivalent, and it would /// have a semantic Spelling enumeration (due to having semantically-distinct /// spelling variations), return the value of that semantic spelling. If the /// parsed attribute does not have a semantic equivalent, or would not have Index: cfe/trunk/include/clang/Sema/CodeCompleteConsumer.h =================================================================== --- cfe/trunk/include/clang/Sema/CodeCompleteConsumer.h +++ cfe/trunk/include/clang/Sema/CodeCompleteConsumer.h @@ -47,102 +47,102 @@ class Preprocessor; class Sema; -/// \brief Default priority values for code-completion results based +/// Default priority values for code-completion results based /// on their kind. enum { - /// \brief Priority for the next initialization in a constructor initializer + /// Priority for the next initialization in a constructor initializer /// list. CCP_NextInitializer = 7, - /// \brief Priority for an enumeration constant inside a switch whose + /// Priority for an enumeration constant inside a switch whose /// condition is of the enumeration type. CCP_EnumInCase = 7, - /// \brief Priority for a send-to-super completion. + /// Priority for a send-to-super completion. CCP_SuperCompletion = 20, - /// \brief Priority for a declaration that is in the local scope. + /// Priority for a declaration that is in the local scope. CCP_LocalDeclaration = 34, - /// \brief Priority for a member declaration found from the current + /// Priority for a member declaration found from the current /// method or member function. CCP_MemberDeclaration = 35, - /// \brief Priority for a language keyword (that isn't any of the other + /// Priority for a language keyword (that isn't any of the other /// categories). CCP_Keyword = 40, - /// \brief Priority for a code pattern. + /// Priority for a code pattern. CCP_CodePattern = 40, - /// \brief Priority for a non-type declaration. + /// Priority for a non-type declaration. CCP_Declaration = 50, - /// \brief Priority for a type. + /// Priority for a type. CCP_Type = CCP_Declaration, - /// \brief Priority for a constant value (e.g., enumerator). + /// Priority for a constant value (e.g., enumerator). CCP_Constant = 65, - /// \brief Priority for a preprocessor macro. + /// Priority for a preprocessor macro. CCP_Macro = 70, - /// \brief Priority for a nested-name-specifier. + /// Priority for a nested-name-specifier. CCP_NestedNameSpecifier = 75, - /// \brief Priority for a result that isn't likely to be what the user wants, + /// Priority for a result that isn't likely to be what the user wants, /// but is included for completeness. CCP_Unlikely = 80, - /// \brief Priority for the Objective-C "_cmd" implicit parameter. + /// Priority for the Objective-C "_cmd" implicit parameter. CCP_ObjC_cmd = CCP_Unlikely }; -/// \brief Priority value deltas that are added to code-completion results +/// Priority value deltas that are added to code-completion results /// based on the context of the result. enum { - /// \brief The result is in a base class. + /// The result is in a base class. CCD_InBaseClass = 2, - /// \brief The result is a C++ non-static member function whose qualifiers + /// The result is a C++ non-static member function whose qualifiers /// exactly match the object type on which the member function can be called. CCD_ObjectQualifierMatch = -1, - /// \brief The selector of the given message exactly matches the selector + /// The selector of the given message exactly matches the selector /// of the current method, which might imply that some kind of delegation /// is occurring. CCD_SelectorMatch = -3, - /// \brief Adjustment to the "bool" type in Objective-C, where the typedef + /// Adjustment to the "bool" type in Objective-C, where the typedef /// "BOOL" is preferred. CCD_bool_in_ObjC = 1, - /// \brief Adjustment for KVC code pattern priorities when it doesn't look + /// Adjustment for KVC code pattern priorities when it doesn't look /// like the CCD_ProbablyNotObjCCollection = 15, - /// \brief An Objective-C method being used as a property. + /// An Objective-C method being used as a property. CCD_MethodAsProperty = 2, - /// \brief An Objective-C block property completed as a setter with a + /// An Objective-C block property completed as a setter with a /// block placeholder. CCD_BlockPropertySetter = 3 }; -/// \brief Priority value factors by which we will divide or multiply the +/// Priority value factors by which we will divide or multiply the /// priority of a code-completion result. enum { - /// \brief Divide by this factor when a code-completion result's type exactly + /// Divide by this factor when a code-completion result's type exactly /// matches the type we expect. CCF_ExactTypeMatch = 4, - /// \brief Divide by this factor when a code-completion result's type is + /// Divide by this factor when a code-completion result's type is /// similar to the type we expect (e.g., both arithmetic types, both /// Objective-C object pointer types). CCF_SimilarTypeMatch = 2 }; -/// \brief A simplified classification of types used when determining +/// A simplified classification of types used when determining /// "similar" types for code completion. enum SimplifiedTypeClass { STC_Arithmetic, @@ -156,14 +156,14 @@ STC_Void }; -/// \brief Determine the simplified type class of the given canonical type. +/// Determine the simplified type class of the given canonical type. SimplifiedTypeClass getSimplifiedTypeClass(CanQualType T); -/// \brief Determine the type that this declaration will have if it is used +/// Determine the type that this declaration will have if it is used /// as a type or in an expression. QualType getDeclUsageType(ASTContext &C, const NamedDecl *ND); -/// \brief Determine the priority to be given to a macro code completion result +/// Determine the priority to be given to a macro code completion result /// with the given name. /// /// \param MacroName The name of the macro. @@ -176,53 +176,53 @@ const LangOptions &LangOpts, bool PreferredTypeIsPointer = false); -/// \brief Determine the libclang cursor kind associated with the given +/// Determine the libclang cursor kind associated with the given /// declaration. CXCursorKind getCursorKindForDecl(const Decl *D); -/// \brief The context in which code completion occurred, so that the +/// The context in which code completion occurred, so that the /// code-completion consumer can process the results accordingly. class CodeCompletionContext { public: enum Kind { - /// \brief An unspecified code-completion context. + /// An unspecified code-completion context. CCC_Other, - /// \brief An unspecified code-completion context where we should also add + /// An unspecified code-completion context where we should also add /// macro completions. CCC_OtherWithMacros, - /// \brief Code completion occurred within a "top-level" completion context, + /// Code completion occurred within a "top-level" completion context, /// e.g., at namespace or global scope. CCC_TopLevel, - /// \brief Code completion occurred within an Objective-C interface, + /// Code completion occurred within an Objective-C interface, /// protocol, or category interface. CCC_ObjCInterface, - /// \brief Code completion occurred within an Objective-C implementation + /// Code completion occurred within an Objective-C implementation /// or category implementation. CCC_ObjCImplementation, - /// \brief Code completion occurred within the instance variable list of + /// Code completion occurred within the instance variable list of /// an Objective-C interface, implementation, or category implementation. CCC_ObjCIvarList, - /// \brief Code completion occurred within a class, struct, or union. + /// Code completion occurred within a class, struct, or union. CCC_ClassStructUnion, - /// \brief Code completion occurred where a statement (or declaration) is + /// Code completion occurred where a statement (or declaration) is /// expected in a function, method, or block. CCC_Statement, - /// \brief Code completion occurred where an expression is expected. + /// Code completion occurred where an expression is expected. CCC_Expression, - /// \brief Code completion occurred where an Objective-C message receiver + /// Code completion occurred where an Objective-C message receiver /// is expected. CCC_ObjCMessageReceiver, - /// \brief Code completion occurred on the right-hand side of a member + /// Code completion occurred on the right-hand side of a member /// access expression using the dot operator. /// /// The results of this completion are the members of the type being @@ -230,7 +230,7 @@ /// \c CodeCompletionContext::getType(). CCC_DotMemberAccess, - /// \brief Code completion occurred on the right-hand side of a member + /// Code completion occurred on the right-hand side of a member /// access expression using the arrow operator. /// /// The results of this completion are the members of the type being @@ -238,7 +238,7 @@ /// \c CodeCompletionContext::getType(). CCC_ArrowMemberAccess, - /// \brief Code completion occurred on the right-hand side of an Objective-C + /// Code completion occurred on the right-hand side of an Objective-C /// property access expression. /// /// The results of this completion are the members of the type being @@ -246,81 +246,81 @@ /// \c CodeCompletionContext::getType(). CCC_ObjCPropertyAccess, - /// \brief Code completion occurred after the "enum" keyword, to indicate + /// Code completion occurred after the "enum" keyword, to indicate /// an enumeration name. CCC_EnumTag, - /// \brief Code completion occurred after the "union" keyword, to indicate + /// Code completion occurred after the "union" keyword, to indicate /// a union name. CCC_UnionTag, - /// \brief Code completion occurred after the "struct" or "class" keyword, + /// Code completion occurred after the "struct" or "class" keyword, /// to indicate a struct or class name. CCC_ClassOrStructTag, - /// \brief Code completion occurred where a protocol name is expected. + /// Code completion occurred where a protocol name is expected. CCC_ObjCProtocolName, - /// \brief Code completion occurred where a namespace or namespace alias + /// Code completion occurred where a namespace or namespace alias /// is expected. CCC_Namespace, - /// \brief Code completion occurred where a type name is expected. + /// Code completion occurred where a type name is expected. CCC_Type, - /// \brief Code completion occurred where a new name is expected. + /// Code completion occurred where a new name is expected. CCC_Name, - /// \brief Code completion occurred where a new name is expected and a + /// Code completion occurred where a new name is expected and a /// qualified name is permissible. CCC_PotentiallyQualifiedName, - /// \brief Code completion occurred where an macro is being defined. + /// Code completion occurred where an macro is being defined. CCC_MacroName, - /// \brief Code completion occurred where a macro name is expected + /// Code completion occurred where a macro name is expected /// (without any arguments, in the case of a function-like macro). CCC_MacroNameUse, - /// \brief Code completion occurred within a preprocessor expression. + /// Code completion occurred within a preprocessor expression. CCC_PreprocessorExpression, - /// \brief Code completion occurred where a preprocessor directive is + /// Code completion occurred where a preprocessor directive is /// expected. CCC_PreprocessorDirective, - /// \brief Code completion occurred in a context where natural language is + /// Code completion occurred in a context where natural language is /// expected, e.g., a comment or string literal. /// /// This context usually implies that no completions should be added, /// unless they come from an appropriate natural-language dictionary. CCC_NaturalLanguage, - /// \brief Code completion for a selector, as in an \@selector expression. + /// Code completion for a selector, as in an \@selector expression. CCC_SelectorName, - /// \brief Code completion within a type-qualifier list. + /// Code completion within a type-qualifier list. CCC_TypeQualifiers, - /// \brief Code completion in a parenthesized expression, which means that + /// Code completion in a parenthesized expression, which means that /// we may also have types here in C and Objective-C (as well as in C++). CCC_ParenthesizedExpression, - /// \brief Code completion where an Objective-C instance message is + /// Code completion where an Objective-C instance message is /// expected. CCC_ObjCInstanceMessage, - /// \brief Code completion where an Objective-C class message is expected. + /// Code completion where an Objective-C class message is expected. CCC_ObjCClassMessage, - /// \brief Code completion where the name of an Objective-C class is + /// Code completion where the name of an Objective-C class is /// expected. CCC_ObjCInterfaceName, - /// \brief Code completion where an Objective-C category name is expected. + /// Code completion where an Objective-C category name is expected. CCC_ObjCCategoryName, - /// \brief An unknown context, in which we are recovering from a parsing + /// An unknown context, in which we are recovering from a parsing /// error and don't know which completions we should give. CCC_Recovery }; @@ -330,29 +330,29 @@ private: Kind CCKind; - /// \brief The type that would prefer to see at this point (e.g., the type + /// The type that would prefer to see at this point (e.g., the type /// of an initializer or function parameter). QualType PreferredType; - /// \brief The type of the base object in a member access expression. + /// The type of the base object in a member access expression. QualType BaseType; - /// \brief The identifiers for Objective-C selector parts. + /// The identifiers for Objective-C selector parts. ArrayRef<IdentifierInfo *> SelIdents; - /// \brief The scope specifier that comes before the completion token e.g. + /// The scope specifier that comes before the completion token e.g. /// "a::b::" llvm::Optional<CXXScopeSpec> ScopeSpecifier; - /// \brief A set of declaration contexts visited by Sema when doing lookup for + /// A set of declaration contexts visited by Sema when doing lookup for /// code completion. VisitedContextSet VisitedContexts; public: - /// \brief Construct a new code-completion context of the given kind. + /// Construct a new code-completion context of the given kind. CodeCompletionContext(Kind CCKind) : CCKind(CCKind), SelIdents(None) {} - /// \brief Construct a new code-completion context of the given kind. + /// Construct a new code-completion context of the given kind. CodeCompletionContext(Kind CCKind, QualType T, ArrayRef<IdentifierInfo *> SelIdents = None) : CCKind(CCKind), SelIdents(SelIdents) { @@ -364,38 +364,38 @@ PreferredType = T; } - /// \brief Retrieve the kind of code-completion context. + /// Retrieve the kind of code-completion context. Kind getKind() const { return CCKind; } - /// \brief Retrieve the type that this expression would prefer to have, e.g., + /// Retrieve the type that this expression would prefer to have, e.g., /// if the expression is a variable initializer or a function argument, the /// type of the corresponding variable or function parameter. QualType getPreferredType() const { return PreferredType; } - /// \brief Retrieve the type of the base object in a member-access + /// Retrieve the type of the base object in a member-access /// expression. QualType getBaseType() const { return BaseType; } - /// \brief Retrieve the Objective-C selector identifiers. + /// Retrieve the Objective-C selector identifiers. ArrayRef<IdentifierInfo *> getSelIdents() const { return SelIdents; } - /// \brief Determines whether we want C++ constructors as results within this + /// Determines whether we want C++ constructors as results within this /// context. bool wantConstructorResults() const; - /// \brief Sets the scope specifier that comes before the completion token. + /// Sets the scope specifier that comes before the completion token. /// This is expected to be set in code completions on qualfied specifiers /// (e.g. "a::b::"). void setCXXScopeSpecifier(CXXScopeSpec SS) { this->ScopeSpecifier = std::move(SS); } - /// \brief Adds a visited context. + /// Adds a visited context. void addVisitedContext(DeclContext *Ctx) { VisitedContexts.insert(Ctx); } - /// \brief Retrieves all visited contexts. + /// Retrieves all visited contexts. const VisitedContextSet &getVisitedContexts() const { return VisitedContexts; } @@ -407,10 +407,10 @@ } }; -/// \brief Get string representation of \p Kind, useful for for debugging. +/// Get string representation of \p Kind, useful for for debugging. llvm::StringRef getCompletionKindString(CodeCompletionContext::Kind Kind); -/// \brief A "string" used to describe how code completion can +/// A "string" used to describe how code completion can /// be performed for an entity. /// /// A code completion string typically shows how a particular entity can be @@ -419,97 +419,97 @@ /// arguments, etc. class CodeCompletionString { public: - /// \brief The different kinds of "chunks" that can occur within a code + /// The different kinds of "chunks" that can occur within a code /// completion string. enum ChunkKind { - /// \brief The piece of text that the user is expected to type to + /// The piece of text that the user is expected to type to /// match the code-completion string, typically a keyword or the name of a /// declarator or macro. CK_TypedText, - /// \brief A piece of text that should be placed in the buffer, e.g., + /// A piece of text that should be placed in the buffer, e.g., /// parentheses or a comma in a function call. CK_Text, - /// \brief A code completion string that is entirely optional. For example, + /// A code completion string that is entirely optional. For example, /// an optional code completion string that describes the default arguments /// in a function call. CK_Optional, - /// \brief A string that acts as a placeholder for, e.g., a function + /// A string that acts as a placeholder for, e.g., a function /// call argument. CK_Placeholder, - /// \brief A piece of text that describes something about the result but + /// A piece of text that describes something about the result but /// should not be inserted into the buffer. CK_Informative, - /// \brief A piece of text that describes the type of an entity or, for + /// A piece of text that describes the type of an entity or, for /// functions and methods, the return type. CK_ResultType, - /// \brief A piece of text that describes the parameter that corresponds + /// A piece of text that describes the parameter that corresponds /// to the code-completion location within a function call, message send, /// macro invocation, etc. CK_CurrentParameter, - /// \brief A left parenthesis ('('). + /// A left parenthesis ('('). CK_LeftParen, - /// \brief A right parenthesis (')'). + /// A right parenthesis (')'). CK_RightParen, - /// \brief A left bracket ('['). + /// A left bracket ('['). CK_LeftBracket, - /// \brief A right bracket (']'). + /// A right bracket (']'). CK_RightBracket, - /// \brief A left brace ('{'). + /// A left brace ('{'). CK_LeftBrace, - /// \brief A right brace ('}'). + /// A right brace ('}'). CK_RightBrace, - /// \brief A left angle bracket ('<'). + /// A left angle bracket ('<'). CK_LeftAngle, - /// \brief A right angle bracket ('>'). + /// A right angle bracket ('>'). CK_RightAngle, - /// \brief A comma separator (','). + /// A comma separator (','). CK_Comma, - /// \brief A colon (':'). + /// A colon (':'). CK_Colon, - /// \brief A semicolon (';'). + /// A semicolon (';'). CK_SemiColon, - /// \brief An '=' sign. + /// An '=' sign. CK_Equal, - /// \brief Horizontal whitespace (' '). + /// Horizontal whitespace (' '). CK_HorizontalSpace, - /// \brief Vertical whitespace ('\\n' or '\\r\\n', depending on the + /// Vertical whitespace ('\\n' or '\\r\\n', depending on the /// platform). CK_VerticalSpace }; - /// \brief One piece of the code completion string. + /// One piece of the code completion string. struct Chunk { - /// \brief The kind of data stored in this piece of the code completion + /// The kind of data stored in this piece of the code completion /// string. ChunkKind Kind = CK_Text; union { - /// \brief The text string associated with a CK_Text, CK_Placeholder, + /// The text string associated with a CK_Text, CK_Placeholder, /// CK_Informative, or CK_Comma chunk. /// The string is owned by the chunk and will be deallocated /// (with delete[]) when the chunk is destroyed. const char *Text; - /// \brief The code completion string associated with a CK_Optional chunk. + /// The code completion string associated with a CK_Optional chunk. /// The optional code completion string is owned by the chunk, and will /// be deallocated (with delete) when the chunk is destroyed. CodeCompletionString *Optional; @@ -519,22 +519,22 @@ explicit Chunk(ChunkKind Kind, const char *Text = ""); - /// \brief Create a new text chunk. + /// Create a new text chunk. static Chunk CreateText(const char *Text); - /// \brief Create a new optional chunk. + /// Create a new optional chunk. static Chunk CreateOptional(CodeCompletionString *Optional); - /// \brief Create a new placeholder chunk. + /// Create a new placeholder chunk. static Chunk CreatePlaceholder(const char *Placeholder); - /// \brief Create a new informative chunk. + /// Create a new informative chunk. static Chunk CreateInformative(const char *Informative); - /// \brief Create a new result type chunk. + /// Create a new result type chunk. static Chunk CreateResultType(const char *ResultType); - /// \brief Create a new current-parameter chunk. + /// Create a new current-parameter chunk. static Chunk CreateCurrentParameter(const char *CurrentParameter); }; @@ -542,22 +542,22 @@ friend class CodeCompletionBuilder; friend class CodeCompletionResult; - /// \brief The number of chunks stored in this string. + /// The number of chunks stored in this string. unsigned NumChunks : 16; - /// \brief The number of annotations for this code-completion result. + /// The number of annotations for this code-completion result. unsigned NumAnnotations : 16; - /// \brief The priority of this code-completion string. + /// The priority of this code-completion string. unsigned Priority : 16; - /// \brief The availability of this code-completion result. + /// The availability of this code-completion result. unsigned Availability : 2; - /// \brief The name of the parent context. + /// The name of the parent context. StringRef ParentName; - /// \brief A brief documentation comment attached to the declaration of + /// A brief documentation comment attached to the declaration of /// entity being completed by this result. const char *BriefComment; @@ -584,22 +584,22 @@ return begin()[I]; } - /// \brief Returns the text in the TypedText chunk. + /// Returns the text in the TypedText chunk. const char *getTypedText() const; - /// \brief Retrieve the priority of this code completion result. + /// Retrieve the priority of this code completion result. unsigned getPriority() const { return Priority; } - /// \brief Retrieve the availability of this code completion result. + /// Retrieve the availability of this code completion result. unsigned getAvailability() const { return Availability; } - /// \brief Retrieve the number of annotations for this code completion result. + /// Retrieve the number of annotations for this code completion result. unsigned getAnnotationCount() const; - /// \brief Retrieve the annotation string specified by \c AnnotationNr. + /// Retrieve the annotation string specified by \c AnnotationNr. const char *getAnnotation(unsigned AnnotationNr) const; - /// \brief Retrieve the name of the parent context. + /// Retrieve the name of the parent context. StringRef getParentContextName() const { return ParentName; } @@ -608,19 +608,19 @@ return BriefComment; } - /// \brief Retrieve a string representation of the code completion string, + /// Retrieve a string representation of the code completion string, /// which is mainly useful for debugging. std::string getAsString() const; }; -/// \brief An allocator used specifically for the purpose of code completion. +/// An allocator used specifically for the purpose of code completion. class CodeCompletionAllocator : public llvm::BumpPtrAllocator { public: - /// \brief Copy the given string into this allocator. + /// Copy the given string into this allocator. const char *CopyString(const Twine &String); }; -/// \brief Allocator for a cached set of global code completions. +/// Allocator for a cached set of global code completions. class GlobalCodeCompletionAllocator : public CodeCompletionAllocator {}; class CodeCompletionTUInfo { @@ -656,7 +656,7 @@ namespace clang { -/// \brief A builder class used to construct new code-completion strings. +/// A builder class used to construct new code-completion strings. class CodeCompletionBuilder { public: using Chunk = CodeCompletionString::Chunk; @@ -669,7 +669,7 @@ StringRef ParentName; const char *BriefComment = nullptr; - /// \brief The chunks stored in this string. + /// The chunks stored in this string. SmallVector<Chunk, 4> Chunks; SmallVector<const char *, 2> Annotations; @@ -685,44 +685,44 @@ : Allocator(Allocator), CCTUInfo(CCTUInfo), Priority(Priority), Availability(Availability) {} - /// \brief Retrieve the allocator into which the code completion + /// Retrieve the allocator into which the code completion /// strings should be allocated. CodeCompletionAllocator &getAllocator() const { return Allocator; } CodeCompletionTUInfo &getCodeCompletionTUInfo() const { return CCTUInfo; } - /// \brief Take the resulting completion string. + /// Take the resulting completion string. /// /// This operation can only be performed once. CodeCompletionString *TakeString(); - /// \brief Add a new typed-text chunk. + /// Add a new typed-text chunk. void AddTypedTextChunk(const char *Text); - /// \brief Add a new text chunk. + /// Add a new text chunk. void AddTextChunk(const char *Text); - /// \brief Add a new optional chunk. + /// Add a new optional chunk. void AddOptionalChunk(CodeCompletionString *Optional); - /// \brief Add a new placeholder chunk. + /// Add a new placeholder chunk. void AddPlaceholderChunk(const char *Placeholder); - /// \brief Add a new informative chunk. + /// Add a new informative chunk. void AddInformativeChunk(const char *Text); - /// \brief Add a new result-type chunk. + /// Add a new result-type chunk. void AddResultTypeChunk(const char *ResultType); - /// \brief Add a new current-parameter chunk. + /// Add a new current-parameter chunk. void AddCurrentParameterChunk(const char *CurrentParameter); - /// \brief Add a new chunk. + /// Add a new chunk. void AddChunk(CodeCompletionString::ChunkKind CK, const char *Text = ""); void AddAnnotation(const char *A) { Annotations.push_back(A); } - /// \brief Add the parent context information to this code completion. + /// Add the parent context information to this code completion. void addParentContext(const DeclContext *DC); const char *getBriefComment() const { return BriefComment; } @@ -731,10 +731,10 @@ StringRef getParentName() const { return ParentName; } }; -/// \brief Captures a result of code completion. +/// Captures a result of code completion. class CodeCompletionResult { public: - /// \brief Describes the kind of result generated. + /// Describes the kind of result generated. enum ResultKind { /// Refers to a declaration. RK_Declaration = 0, @@ -749,63 +749,63 @@ RK_Pattern }; - /// \brief When Kind == RK_Declaration or RK_Pattern, the declaration we are + /// When Kind == RK_Declaration or RK_Pattern, the declaration we are /// referring to. In the latter case, the declaration might be NULL. const NamedDecl *Declaration = nullptr; union { - /// \brief When Kind == RK_Keyword, the string representing the keyword + /// When Kind == RK_Keyword, the string representing the keyword /// or symbol's spelling. const char *Keyword; - /// \brief When Kind == RK_Pattern, the code-completion string that + /// When Kind == RK_Pattern, the code-completion string that /// describes the completion text to insert. CodeCompletionString *Pattern; - /// \brief When Kind == RK_Macro, the identifier that refers to a macro. + /// When Kind == RK_Macro, the identifier that refers to a macro. const IdentifierInfo *Macro; }; - /// \brief The priority of this particular code-completion result. + /// The priority of this particular code-completion result. unsigned Priority; - /// \brief Specifies which parameter (of a function, Objective-C method, + /// Specifies which parameter (of a function, Objective-C method, /// macro, etc.) we should start with when formatting the result. unsigned StartParameter = 0; - /// \brief The kind of result stored here. + /// The kind of result stored here. ResultKind Kind; - /// \brief The cursor kind that describes this result. + /// The cursor kind that describes this result. CXCursorKind CursorKind; - /// \brief The availability of this result. + /// The availability of this result. CXAvailabilityKind Availability = CXAvailability_Available; - /// \brief Whether this result is hidden by another name. + /// Whether this result is hidden by another name. bool Hidden : 1; - /// \brief Whether this result was found via lookup into a base class. + /// Whether this result was found via lookup into a base class. bool QualifierIsInformative : 1; - /// \brief Whether this declaration is the beginning of a + /// Whether this declaration is the beginning of a /// nested-name-specifier and, therefore, should be followed by '::'. bool StartsNestedNameSpecifier : 1; - /// \brief Whether all parameters (of a function, Objective-C + /// Whether all parameters (of a function, Objective-C /// method, etc.) should be considered "informative". bool AllParametersAreInformative : 1; - /// \brief Whether we're completing a declaration of the given entity, + /// Whether we're completing a declaration of the given entity, /// rather than a use of that entity. bool DeclaringEntity : 1; - /// \brief If the result should have a nested-name-specifier, this is it. + /// If the result should have a nested-name-specifier, this is it. /// When \c QualifierIsInformative, the nested-name-specifier is /// informative rather than required. NestedNameSpecifier *Qualifier = nullptr; - /// \brief Build a result that refers to a declaration. + /// Build a result that refers to a declaration. CodeCompletionResult(const NamedDecl *Declaration, unsigned Priority, NestedNameSpecifier *Qualifier = nullptr, @@ -818,14 +818,14 @@ computeCursorKindAndAvailability(Accessible); } - /// \brief Build a result that refers to a keyword or symbol. + /// Build a result that refers to a keyword or symbol. CodeCompletionResult(const char *Keyword, unsigned Priority = CCP_Keyword) : Keyword(Keyword), Priority(Priority), Kind(RK_Keyword), CursorKind(CXCursor_NotImplemented), Hidden(false), QualifierIsInformative(false), StartsNestedNameSpecifier(false), AllParametersAreInformative(false), DeclaringEntity(false) {} - /// \brief Build a result that refers to a macro. + /// Build a result that refers to a macro. CodeCompletionResult(const IdentifierInfo *Macro, unsigned Priority = CCP_Macro) : Macro(Macro), Priority(Priority), Kind(RK_Macro), @@ -833,7 +833,7 @@ QualifierIsInformative(false), StartsNestedNameSpecifier(false), AllParametersAreInformative(false), DeclaringEntity(false) {} - /// \brief Build a result that refers to a pattern. + /// Build a result that refers to a pattern. CodeCompletionResult(CodeCompletionString *Pattern, unsigned Priority = CCP_CodePattern, CXCursorKind CursorKind = CXCursor_NotImplemented, @@ -844,7 +844,7 @@ QualifierIsInformative(false), StartsNestedNameSpecifier(false), AllParametersAreInformative(false), DeclaringEntity(false) {} - /// \brief Build a result that refers to a pattern with an associated + /// Build a result that refers to a pattern with an associated /// declaration. CodeCompletionResult(CodeCompletionString *Pattern, const NamedDecl *D, unsigned Priority) @@ -855,19 +855,19 @@ computeCursorKindAndAvailability(); } - /// \brief Retrieve the declaration stored in this result. + /// Retrieve the declaration stored in this result. const NamedDecl *getDeclaration() const { assert(Kind == RK_Declaration && "Not a declaration result"); return Declaration; } - /// \brief Retrieve the keyword stored in this result. + /// Retrieve the keyword stored in this result. const char *getKeyword() const { assert(Kind == RK_Keyword && "Not a keyword result"); return Keyword; } - /// \brief Create a new code-completion string that describes how to insert + /// Create a new code-completion string that describes how to insert /// this result into a program. /// /// \param S The semantic analysis that created the result. @@ -886,7 +886,7 @@ CodeCompletionTUInfo &CCTUInfo, bool IncludeBriefComments); - /// \brief Retrieve the name that should be used to order a result. + /// Retrieve the name that should be used to order a result. /// /// If the name needs to be constructed as a string, that string will be /// saved into Saved and the returned StringRef will refer to it. @@ -916,46 +916,46 @@ raw_ostream &operator<<(raw_ostream &OS, const CodeCompletionString &CCS); -/// \brief Abstract interface for a consumer of code-completion +/// Abstract interface for a consumer of code-completion /// information. class CodeCompleteConsumer { protected: const CodeCompleteOptions CodeCompleteOpts; - /// \brief Whether the output format for the code-completion consumer is + /// Whether the output format for the code-completion consumer is /// binary. bool OutputIsBinary; public: class OverloadCandidate { public: - /// \brief Describes the type of overload candidate. + /// Describes the type of overload candidate. enum CandidateKind { - /// \brief The candidate is a function declaration. + /// The candidate is a function declaration. CK_Function, - /// \brief The candidate is a function template. + /// The candidate is a function template. CK_FunctionTemplate, - /// \brief The "candidate" is actually a variable, expression, or block + /// The "candidate" is actually a variable, expression, or block /// for which we only have a function prototype. CK_FunctionType }; private: - /// \brief The kind of overload candidate. + /// The kind of overload candidate. CandidateKind Kind; union { - /// \brief The function overload candidate, available when + /// The function overload candidate, available when /// Kind == CK_Function. FunctionDecl *Function; - /// \brief The function template overload candidate, available when + /// The function template overload candidate, available when /// Kind == CK_FunctionTemplate. FunctionTemplateDecl *FunctionTemplate; - /// \brief The function type that describes the entity being called, + /// The function type that describes the entity being called, /// when Kind == CK_FunctionType. const FunctionType *Type; }; @@ -970,24 +970,24 @@ OverloadCandidate(const FunctionType *Type) : Kind(CK_FunctionType), Type(Type) {} - /// \brief Determine the kind of overload candidate. + /// Determine the kind of overload candidate. CandidateKind getKind() const { return Kind; } - /// \brief Retrieve the function overload candidate or the templated + /// Retrieve the function overload candidate or the templated /// function declaration for a function template. FunctionDecl *getFunction() const; - /// \brief Retrieve the function template overload candidate. + /// Retrieve the function template overload candidate. FunctionTemplateDecl *getFunctionTemplate() const { assert(getKind() == CK_FunctionTemplate && "Not a function template"); return FunctionTemplate; } - /// \brief Retrieve the function type of the entity, regardless of how the + /// Retrieve the function type of the entity, regardless of how the /// function is stored. const FunctionType *getFunctionType() const; - /// \brief Create a new code-completion string that describes the function + /// Create a new code-completion string that describes the function /// signature of this overload candidate. CodeCompletionString *CreateSignatureString(unsigned CurrentArg, Sema &S, @@ -1000,46 +1000,46 @@ bool OutputIsBinary) : CodeCompleteOpts(CodeCompleteOpts), OutputIsBinary(OutputIsBinary) {} - /// \brief Whether the code-completion consumer wants to see macros. + /// Whether the code-completion consumer wants to see macros. bool includeMacros() const { return CodeCompleteOpts.IncludeMacros; } - /// \brief Whether the code-completion consumer wants to see code patterns. + /// Whether the code-completion consumer wants to see code patterns. bool includeCodePatterns() const { return CodeCompleteOpts.IncludeCodePatterns; } - /// \brief Whether to include global (top-level) declaration results. + /// Whether to include global (top-level) declaration results. bool includeGlobals() const { return CodeCompleteOpts.IncludeGlobals; } - /// \brief Whether to include declarations in namespace contexts (including + /// Whether to include declarations in namespace contexts (including /// the global namespace). If this is false, `includeGlobals()` will be /// ignored. bool includeNamespaceLevelDecls() const { return CodeCompleteOpts.IncludeNamespaceLevelDecls; } - /// \brief Whether to include brief documentation comments within the set of + /// Whether to include brief documentation comments within the set of /// code completions returned. bool includeBriefComments() const { return CodeCompleteOpts.IncludeBriefComments; } - /// \brief Hint whether to load data from the external AST in order to provide + /// Hint whether to load data from the external AST in order to provide /// full results. If false, declarations from the preamble may be omitted. bool loadExternal() const { return CodeCompleteOpts.LoadExternal; } - /// \brief Determine whether the output of this consumer is binary. + /// Determine whether the output of this consumer is binary. bool isOutputBinary() const { return OutputIsBinary; } - /// \brief Deregisters and destroys this code-completion consumer. + /// Deregisters and destroys this code-completion consumer. virtual ~CodeCompleteConsumer(); /// \name Code-completion filtering - /// \brief Check if the result should be filtered out. + /// Check if the result should be filtered out. virtual bool isResultFilteredOut(StringRef Filter, CodeCompletionResult Results) { return false; @@ -1047,7 +1047,7 @@ /// \name Code-completion callbacks //@{ - /// \brief Process the finalized code-completion results. + /// Process the finalized code-completion results. virtual void ProcessCodeCompleteResults(Sema &S, CodeCompletionContext Context, CodeCompletionResult *Results, @@ -1066,30 +1066,30 @@ unsigned NumCandidates) {} //@} - /// \brief Retrieve the allocator that will be used to allocate + /// Retrieve the allocator that will be used to allocate /// code completion strings. virtual CodeCompletionAllocator &getAllocator() = 0; virtual CodeCompletionTUInfo &getCodeCompletionTUInfo() = 0; }; -/// \brief A simple code-completion consumer that prints the results it +/// A simple code-completion consumer that prints the results it /// receives in a simple format. class PrintingCodeCompleteConsumer : public CodeCompleteConsumer { - /// \brief The raw output stream. + /// The raw output stream. raw_ostream &OS; CodeCompletionTUInfo CCTUInfo; public: - /// \brief Create a new printing code-completion consumer that prints its + /// Create a new printing code-completion consumer that prints its /// results to the given raw output stream. PrintingCodeCompleteConsumer(const CodeCompleteOptions &CodeCompleteOpts, raw_ostream &OS) : CodeCompleteConsumer(CodeCompleteOpts, false), OS(OS), CCTUInfo(std::make_shared<GlobalCodeCompletionAllocator>()) {} - /// \brief Prints the finalized code-completion results. + /// Prints the finalized code-completion results. void ProcessCodeCompleteResults(Sema &S, CodeCompletionContext Context, CodeCompletionResult *Results, unsigned NumResults) override; Index: cfe/trunk/include/clang/Sema/DeclSpec.h =================================================================== --- cfe/trunk/include/clang/Sema/DeclSpec.h +++ cfe/trunk/include/clang/Sema/DeclSpec.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file defines the classes used to store parsed information about +/// This file defines the classes used to store parsed information about /// declaration-specifiers and declarators. /// /// \verbatim @@ -48,7 +48,7 @@ class Declarator; struct TemplateIdAnnotation; -/// \brief Represents a C++ nested-name-specifier or a global scope specifier. +/// Represents a C++ nested-name-specifier or a global scope specifier. /// /// These can be in 3 states: /// 1) Not present, identified by isEmpty() @@ -72,12 +72,12 @@ SourceLocation getBeginLoc() const { return Range.getBegin(); } SourceLocation getEndLoc() const { return Range.getEnd(); } - /// \brief Retrieve the representation of the nested-name-specifier. + /// Retrieve the representation of the nested-name-specifier. NestedNameSpecifier *getScopeRep() const { return Builder.getRepresentation(); } - /// \brief Extend the current nested-name-specifier by another + /// Extend the current nested-name-specifier by another /// nested-name-specifier component of the form 'type::'. /// /// \param Context The AST context in which this nested-name-specifier @@ -91,7 +91,7 @@ void Extend(ASTContext &Context, SourceLocation TemplateKWLoc, TypeLoc TL, SourceLocation ColonColonLoc); - /// \brief Extend the current nested-name-specifier by another + /// Extend the current nested-name-specifier by another /// nested-name-specifier component of the form 'identifier::'. /// /// \param Context The AST context in which this nested-name-specifier @@ -105,7 +105,7 @@ void Extend(ASTContext &Context, IdentifierInfo *Identifier, SourceLocation IdentifierLoc, SourceLocation ColonColonLoc); - /// \brief Extend the current nested-name-specifier by another + /// Extend the current nested-name-specifier by another /// nested-name-specifier component of the form 'namespace::'. /// /// \param Context The AST context in which this nested-name-specifier @@ -119,7 +119,7 @@ void Extend(ASTContext &Context, NamespaceDecl *Namespace, SourceLocation NamespaceLoc, SourceLocation ColonColonLoc); - /// \brief Extend the current nested-name-specifier by another + /// Extend the current nested-name-specifier by another /// nested-name-specifier component of the form 'namespace-alias::'. /// /// \param Context The AST context in which this nested-name-specifier @@ -134,11 +134,11 @@ void Extend(ASTContext &Context, NamespaceAliasDecl *Alias, SourceLocation AliasLoc, SourceLocation ColonColonLoc); - /// \brief Turn this (empty) nested-name-specifier into the global + /// Turn this (empty) nested-name-specifier into the global /// nested-name-specifier '::'. void MakeGlobal(ASTContext &Context, SourceLocation ColonColonLoc); - /// \brief Turns this (empty) nested-name-specifier into '__super' + /// Turns this (empty) nested-name-specifier into '__super' /// nested-name-specifier. /// /// \param Context The AST context in which this nested-name-specifier @@ -154,7 +154,7 @@ void MakeSuper(ASTContext &Context, CXXRecordDecl *RD, SourceLocation SuperLoc, SourceLocation ColonColonLoc); - /// \brief Make a new nested-name-specifier from incomplete source-location + /// Make a new nested-name-specifier from incomplete source-location /// information. /// /// FIXME: This routine should be used very, very rarely, in cases where we @@ -163,18 +163,18 @@ void MakeTrivial(ASTContext &Context, NestedNameSpecifier *Qualifier, SourceRange R); - /// \brief Adopt an existing nested-name-specifier (with source-range + /// Adopt an existing nested-name-specifier (with source-range /// information). void Adopt(NestedNameSpecifierLoc Other); - /// \brief Retrieve a nested-name-specifier with location information, copied + /// Retrieve a nested-name-specifier with location information, copied /// into the given AST context. /// /// \param Context The context into which this nested-name-specifier will be /// copied. NestedNameSpecifierLoc getWithLocInContext(ASTContext &Context) const; - /// \brief Retrieve the location of the name in the last qualifier + /// Retrieve the location of the name in the last qualifier /// in this nested name specifier. /// /// For example, the location of \c bar @@ -195,7 +195,7 @@ /// A scope specifier is present, and it refers to a real scope. bool isValid() const { return isNotEmpty() && getScopeRep() != nullptr; } - /// \brief Indicate that this nested-name-specifier is invalid. + /// Indicate that this nested-name-specifier is invalid. void SetInvalid(SourceRange R) { assert(R.isValid() && "Must have a valid source range"); if (Range.getBegin().isInvalid()) @@ -213,21 +213,21 @@ Builder.Clear(); } - /// \brief Retrieve the data associated with the source-location information. + /// Retrieve the data associated with the source-location information. char *location_data() const { return Builder.getBuffer().first; } - /// \brief Retrieve the size of the data associated with source-location + /// Retrieve the size of the data associated with source-location /// information. unsigned location_size() const { return Builder.getBuffer().second; } }; -/// \brief Captures information about "declaration specifiers". +/// Captures information about "declaration specifiers". /// /// "Declaration specifiers" encompasses storage-class-specifiers, /// type-specifiers, type-qualifiers, and function-specifiers. class DeclSpec { public: - /// \brief storage-class-specifier + /// storage-class-specifier /// \note The order of these enumerators is important for diagnostics. enum SCS { SCS_unspecified = 0, @@ -525,7 +525,7 @@ bool hasTagDefinition() const; - /// \brief Turn a type-specifier-type into a string like "_Bool" or "union". + /// Turn a type-specifier-type into a string like "_Bool" or "union". static const char *getSpecifierName(DeclSpec::TST T, const PrintingPolicy &Policy); static const char *getSpecifierName(DeclSpec::TQ Q); @@ -546,7 +546,7 @@ SourceLocation getUnalignedSpecLoc() const { return TQ_unalignedLoc; } SourceLocation getPipeLoc() const { return TQ_pipeLoc; } - /// \brief Clear out all of the type qualifiers. + /// Clear out all of the type qualifiers. void ClearTypeQualifiers() { TypeQualifiers = 0; TQ_constLoc = SourceLocation(); @@ -587,7 +587,7 @@ FS_noreturnLoc = SourceLocation(); } - /// \brief Return true if any type-specifier has been found. + /// Return true if any type-specifier has been found. bool hasTypeSpecifier() const { return getTypeSpecType() != DeclSpec::TST_unspecified || getTypeSpecWidth() != DeclSpec::TSW_unspecified || @@ -595,7 +595,7 @@ getTypeSpecSign() != DeclSpec::TSS_unspecified; } - /// \brief Return a bitmask of which flavors of specifiers this + /// Return a bitmask of which flavors of specifiers this /// DeclSpec includes. unsigned getParsedSpecifiers() const; @@ -714,7 +714,7 @@ return Attrs.getPool(); } - /// \brief Concatenates two attribute lists. + /// Concatenates two attribute lists. /// /// The GCC attribute syntax allows for the following: /// @@ -756,13 +756,13 @@ ObjCDeclSpec *getObjCQualifiers() const { return ObjCQualifiers; } void setObjCQualifiers(ObjCDeclSpec *quals) { ObjCQualifiers = quals; } - /// \brief Checks if this DeclSpec can stand alone, without a Declarator. + /// Checks if this DeclSpec can stand alone, without a Declarator. /// /// Only tag declspecs can stand alone. bool isMissingDeclaratorOk(); }; -/// \brief Captures information about "declaration specifiers" specific to +/// Captures information about "declaration specifiers" specific to /// Objective-C. class ObjCDeclSpec { public: @@ -884,45 +884,45 @@ }; -/// \brief Describes the kind of unqualified-id parsed. +/// Describes the kind of unqualified-id parsed. enum class UnqualifiedIdKind { - /// \brief An identifier. + /// An identifier. IK_Identifier, - /// \brief An overloaded operator name, e.g., operator+. + /// An overloaded operator name, e.g., operator+. IK_OperatorFunctionId, - /// \brief A conversion function name, e.g., operator int. + /// A conversion function name, e.g., operator int. IK_ConversionFunctionId, - /// \brief A user-defined literal name, e.g., operator "" _i. + /// A user-defined literal name, e.g., operator "" _i. IK_LiteralOperatorId, - /// \brief A constructor name. + /// A constructor name. IK_ConstructorName, - /// \brief A constructor named via a template-id. + /// A constructor named via a template-id. IK_ConstructorTemplateId, - /// \brief A destructor name. + /// A destructor name. IK_DestructorName, - /// \brief A template-id, e.g., f<int>. + /// A template-id, e.g., f<int>. IK_TemplateId, - /// \brief An implicit 'self' parameter + /// An implicit 'self' parameter IK_ImplicitSelfParam, - /// \brief A deduction-guide name (a template-name) + /// A deduction-guide name (a template-name) IK_DeductionGuideName }; -/// \brief Represents a C++ unqualified-id that has been parsed. +/// Represents a C++ unqualified-id that has been parsed. class UnqualifiedId { private: UnqualifiedId(const UnqualifiedId &Other) = delete; const UnqualifiedId &operator=(const UnqualifiedId &) = delete; public: - /// \brief Describes the kind of unqualified-id parsed. + /// Describes the kind of unqualified-id parsed. UnqualifiedIdKind Kind; struct OFI { - /// \brief The kind of overloaded operator. + /// The kind of overloaded operator. OverloadedOperatorKind Operator; - /// \brief The source locations of the individual tokens that name + /// The source locations of the individual tokens that name /// the operator, e.g., the "new", "[", and "]" tokens in /// operator new []. /// @@ -932,50 +932,50 @@ unsigned SymbolLocations[3]; }; - /// \brief Anonymous union that holds extra data associated with the + /// Anonymous union that holds extra data associated with the /// parsed unqualified-id. union { - /// \brief When Kind == IK_Identifier, the parsed identifier, or when + /// When Kind == IK_Identifier, the parsed identifier, or when /// Kind == IK_UserLiteralId, the identifier suffix. IdentifierInfo *Identifier; - /// \brief When Kind == IK_OperatorFunctionId, the overloaded operator + /// When Kind == IK_OperatorFunctionId, the overloaded operator /// that we parsed. struct OFI OperatorFunctionId; - /// \brief When Kind == IK_ConversionFunctionId, the type that the + /// When Kind == IK_ConversionFunctionId, the type that the /// conversion function names. UnionParsedType ConversionFunctionId; - /// \brief When Kind == IK_ConstructorName, the class-name of the type + /// When Kind == IK_ConstructorName, the class-name of the type /// whose constructor is being referenced. UnionParsedType ConstructorName; - /// \brief When Kind == IK_DestructorName, the type referred to by the + /// When Kind == IK_DestructorName, the type referred to by the /// class-name. UnionParsedType DestructorName; - /// \brief When Kind == IK_DeductionGuideName, the parsed template-name. + /// When Kind == IK_DeductionGuideName, the parsed template-name. UnionParsedTemplateTy TemplateName; - /// \brief When Kind == IK_TemplateId or IK_ConstructorTemplateId, + /// When Kind == IK_TemplateId or IK_ConstructorTemplateId, /// the template-id annotation that contains the template name and /// template arguments. TemplateIdAnnotation *TemplateId; }; - /// \brief The location of the first token that describes this unqualified-id, + /// The location of the first token that describes this unqualified-id, /// which will be the location of the identifier, "operator" keyword, /// tilde (for a destructor), or the template name of a template-id. SourceLocation StartLocation; - /// \brief The location of the last token that describes this unqualified-id. + /// The location of the last token that describes this unqualified-id. SourceLocation EndLocation; UnqualifiedId() : Kind(UnqualifiedIdKind::IK_Identifier), Identifier(nullptr) {} - /// \brief Clear out this unqualified-id, setting it to default (invalid) + /// Clear out this unqualified-id, setting it to default (invalid) /// state. void clear() { Kind = UnqualifiedIdKind::IK_Identifier; @@ -984,17 +984,17 @@ EndLocation = SourceLocation(); } - /// \brief Determine whether this unqualified-id refers to a valid name. + /// Determine whether this unqualified-id refers to a valid name. bool isValid() const { return StartLocation.isValid(); } - /// \brief Determine whether this unqualified-id refers to an invalid name. + /// Determine whether this unqualified-id refers to an invalid name. bool isInvalid() const { return !isValid(); } - /// \brief Determine what kind of name we have. + /// Determine what kind of name we have. UnqualifiedIdKind getKind() const { return Kind; } void setKind(UnqualifiedIdKind kind) { Kind = kind; } - /// \brief Specify that this unqualified-id was parsed as an identifier. + /// Specify that this unqualified-id was parsed as an identifier. /// /// \param Id the parsed identifier. /// \param IdLoc the location of the parsed identifier. @@ -1004,7 +1004,7 @@ StartLocation = EndLocation = IdLoc; } - /// \brief Specify that this unqualified-id was parsed as an + /// Specify that this unqualified-id was parsed as an /// operator-function-id. /// /// \param OperatorLoc the location of the 'operator' keyword. @@ -1017,7 +1017,7 @@ OverloadedOperatorKind Op, SourceLocation SymbolLocations[3]); - /// \brief Specify that this unqualified-id was parsed as a + /// Specify that this unqualified-id was parsed as a /// conversion-function-id. /// /// \param OperatorLoc the location of the 'operator' keyword. @@ -1034,7 +1034,7 @@ ConversionFunctionId = Ty; } - /// \brief Specific that this unqualified-id was parsed as a + /// Specific that this unqualified-id was parsed as a /// literal-operator-id. /// /// \param Id the parsed identifier. @@ -1050,7 +1050,7 @@ EndLocation = IdLoc; } - /// \brief Specify that this unqualified-id was parsed as a constructor name. + /// Specify that this unqualified-id was parsed as a constructor name. /// /// \param ClassType the class type referred to by the constructor name. /// @@ -1066,7 +1066,7 @@ ConstructorName = ClassType; } - /// \brief Specify that this unqualified-id was parsed as a + /// Specify that this unqualified-id was parsed as a /// template-id that names a constructor. /// /// \param TemplateId the template-id annotation that describes the parsed @@ -1074,7 +1074,7 @@ /// \p TemplateId and will free it on destruction. void setConstructorTemplateId(TemplateIdAnnotation *TemplateId); - /// \brief Specify that this unqualified-id was parsed as a destructor name. + /// Specify that this unqualified-id was parsed as a destructor name. /// /// \param TildeLoc the location of the '~' that introduces the destructor /// name. @@ -1089,14 +1089,14 @@ DestructorName = ClassType; } - /// \brief Specify that this unqualified-id was parsed as a template-id. + /// Specify that this unqualified-id was parsed as a template-id. /// /// \param TemplateId the template-id annotation that describes the parsed /// template-id. This UnqualifiedId instance will take ownership of the /// \p TemplateId and will free it on destruction. void setTemplateId(TemplateIdAnnotation *TemplateId); - /// \brief Specify that this unqualified-id was parsed as a template-name for + /// Specify that this unqualified-id was parsed as a template-name for /// a deduction-guide. /// /// \param Template The parsed template-name. @@ -1108,7 +1108,7 @@ StartLocation = EndLocation = TemplateLoc; } - /// \brief Return the source range that covers this unqualified-id. + /// Return the source range that covers this unqualified-id. SourceRange getSourceRange() const LLVM_READONLY { return SourceRange(StartLocation, EndLocation); } @@ -1116,10 +1116,10 @@ SourceLocation getLocEnd() const LLVM_READONLY { return EndLocation; } }; -/// \brief A set of tokens that has been cached for later parsing. +/// A set of tokens that has been cached for later parsing. typedef SmallVector<Token, 4> CachedTokens; -/// \brief One instance of this struct is used for each type in a +/// One instance of this struct is used for each type in a /// declarator that is parsed. /// /// This is intended to be a small value object. @@ -1240,7 +1240,7 @@ /// Can this declaration be a constructor-style initializer? unsigned isAmbiguous : 1; - /// \brief Whether the ref-qualifier (if any) is an lvalue reference. + /// Whether the ref-qualifier (if any) is an lvalue reference. /// Otherwise, it's an rvalue reference. unsigned RefQualifierIsLValueRef : 1; @@ -1276,34 +1276,34 @@ /// number of declarations in the function prototype. unsigned NumExceptionsOrDecls; - /// \brief The location of the ref-qualifier, if any. + /// The location of the ref-qualifier, if any. /// /// If this is an invalid location, there is no ref-qualifier. unsigned RefQualifierLoc; - /// \brief The location of the const-qualifier, if any. + /// The location of the const-qualifier, if any. /// /// If this is an invalid location, there is no const-qualifier. unsigned ConstQualifierLoc; - /// \brief The location of the volatile-qualifier, if any. + /// The location of the volatile-qualifier, if any. /// /// If this is an invalid location, there is no volatile-qualifier. unsigned VolatileQualifierLoc; - /// \brief The location of the restrict-qualifier, if any. + /// The location of the restrict-qualifier, if any. /// /// If this is an invalid location, there is no restrict-qualifier. unsigned RestrictQualifierLoc; - /// \brief The location of the 'mutable' qualifer in a lambda-declarator, if + /// The location of the 'mutable' qualifer in a lambda-declarator, if /// any. unsigned MutableLoc; - /// \brief The beginning location of the exception specification, if any. + /// The beginning location of the exception specification, if any. unsigned ExceptionSpecLocBeg; - /// \brief The end location of the exception specification, if any. + /// The end location of the exception specification, if any. unsigned ExceptionSpecLocEnd; /// Params - This is a pointer to a new[]'d array of ParamInfo objects that @@ -1312,16 +1312,16 @@ ParamInfo *Params; union { - /// \brief Pointer to a new[]'d array of TypeAndRange objects that + /// Pointer to a new[]'d array of TypeAndRange objects that /// contain the types in the function's dynamic exception specification /// and their locations, if there is one. TypeAndRange *Exceptions; - /// \brief Pointer to the expression in the noexcept-specifier of this + /// Pointer to the expression in the noexcept-specifier of this /// function, if it has one. Expr *NoexceptExpr; - /// \brief Pointer to the cached tokens for an exception-specification + /// Pointer to the cached tokens for an exception-specification /// that has not yet been parsed. CachedTokens *ExceptionSpecTokens; @@ -1331,11 +1331,11 @@ NamedDecl **DeclsInPrototype; }; - /// \brief If HasTrailingReturnType is true, this is the trailing return + /// If HasTrailingReturnType is true, this is the trailing return /// type specified. UnionParsedType TrailingReturnType; - /// \brief Reset the parameter list to having zero parameters. + /// Reset the parameter list to having zero parameters. /// /// This is used in various places for error recovery. void freeParams() { @@ -1396,62 +1396,62 @@ return SourceRange(getExceptionSpecLocBeg(), getExceptionSpecLocEnd()); } - /// \brief Retrieve the location of the ref-qualifier, if any. + /// Retrieve the location of the ref-qualifier, if any. SourceLocation getRefQualifierLoc() const { return SourceLocation::getFromRawEncoding(RefQualifierLoc); } - /// \brief Retrieve the location of the 'const' qualifier, if any. + /// Retrieve the location of the 'const' qualifier, if any. SourceLocation getConstQualifierLoc() const { return SourceLocation::getFromRawEncoding(ConstQualifierLoc); } - /// \brief Retrieve the location of the 'volatile' qualifier, if any. + /// Retrieve the location of the 'volatile' qualifier, if any. SourceLocation getVolatileQualifierLoc() const { return SourceLocation::getFromRawEncoding(VolatileQualifierLoc); } - /// \brief Retrieve the location of the 'restrict' qualifier, if any. + /// Retrieve the location of the 'restrict' qualifier, if any. SourceLocation getRestrictQualifierLoc() const { return SourceLocation::getFromRawEncoding(RestrictQualifierLoc); } - /// \brief Retrieve the location of the 'mutable' qualifier, if any. + /// Retrieve the location of the 'mutable' qualifier, if any. SourceLocation getMutableLoc() const { return SourceLocation::getFromRawEncoding(MutableLoc); } - /// \brief Determine whether this function declaration contains a + /// Determine whether this function declaration contains a /// ref-qualifier. bool hasRefQualifier() const { return getRefQualifierLoc().isValid(); } - /// \brief Determine whether this lambda-declarator contains a 'mutable' + /// Determine whether this lambda-declarator contains a 'mutable' /// qualifier. bool hasMutableQualifier() const { return getMutableLoc().isValid(); } - /// \brief Get the type of exception specification this function has. + /// Get the type of exception specification this function has. ExceptionSpecificationType getExceptionSpecType() const { return static_cast<ExceptionSpecificationType>(ExceptionSpecType); } - /// \brief Get the number of dynamic exception specifications. + /// Get the number of dynamic exception specifications. unsigned getNumExceptions() const { assert(ExceptionSpecType != EST_None); return NumExceptionsOrDecls; } - /// \brief Get the non-parameter decls defined within this function + /// Get the non-parameter decls defined within this function /// prototype. Typically these are tag declarations. ArrayRef<NamedDecl *> getDeclsInPrototype() const { assert(ExceptionSpecType == EST_None); return llvm::makeArrayRef(DeclsInPrototype, NumExceptionsOrDecls); } - /// \brief Determine whether this function declarator had a + /// Determine whether this function declarator had a /// trailing-return-type. bool hasTrailingReturnType() const { return HasTrailingReturnType; } - /// \brief Get the trailing-return-type for this function declarator. + /// Get the trailing-return-type for this function declarator. ParsedType getTrailingReturnType() const { return TrailingReturnType; } }; @@ -1512,7 +1512,7 @@ } } - /// \brief If there are attributes applied to this declaratorchunk, return + /// If there are attributes applied to this declaratorchunk, return /// them. const AttributeList *getAttrs() const { return Common.AttrList; @@ -1522,7 +1522,7 @@ return Common.AttrList; } - /// \brief Return a DeclaratorChunk for a pointer. + /// Return a DeclaratorChunk for a pointer. static DeclaratorChunk getPointer(unsigned TypeQuals, SourceLocation Loc, SourceLocation ConstQualLoc, SourceLocation VolatileQualLoc, @@ -1542,7 +1542,7 @@ return I; } - /// \brief Return a DeclaratorChunk for a reference. + /// Return a DeclaratorChunk for a reference. static DeclaratorChunk getReference(unsigned TypeQuals, SourceLocation Loc, bool lvalue) { DeclaratorChunk I; @@ -1554,7 +1554,7 @@ return I; } - /// \brief Return a DeclaratorChunk for an array. + /// Return a DeclaratorChunk for an array. static DeclaratorChunk getArray(unsigned TypeQuals, bool isStatic, bool isStar, Expr *NumElts, SourceLocation LBLoc, SourceLocation RBLoc) { @@ -1599,7 +1599,7 @@ TypeResult TrailingReturnType = TypeResult()); - /// \brief Return a DeclaratorChunk for a block. + /// Return a DeclaratorChunk for a block. static DeclaratorChunk getBlockPointer(unsigned TypeQuals, SourceLocation Loc) { DeclaratorChunk I; @@ -1610,7 +1610,7 @@ return I; } - /// \brief Return a DeclaratorChunk for a block. + /// Return a DeclaratorChunk for a block. static DeclaratorChunk getPipe(unsigned TypeQuals, SourceLocation Loc) { DeclaratorChunk I; @@ -1634,7 +1634,7 @@ return I; } - /// \brief Return a DeclaratorChunk for a paren. + /// Return a DeclaratorChunk for a paren. static DeclaratorChunk getParen(SourceLocation LParenLoc, SourceLocation RParenLoc) { DeclaratorChunk I; @@ -1702,7 +1702,7 @@ } }; -/// \brief Described the kind of function definition (if any) provided for +/// Described the kind of function definition (if any) provided for /// a function. enum FunctionDefinitionKind { FDK_Declaration, @@ -1741,7 +1741,7 @@ }; -/// \brief Information about one declarator, including the parsed type +/// Information about one declarator, including the parsed type /// information and the identifier. /// /// When the declarator is fully formed, this is turned into the appropriate @@ -1761,7 +1761,7 @@ UnqualifiedId Name; SourceRange Range; - /// \brief Where we are parsing this declarator. + /// Where we are parsing this declarator. DeclaratorContext Context; /// The C++17 structured binding, if any. This is an alternative to a Name. @@ -1785,10 +1785,10 @@ /// Actually a FunctionDefinitionKind. unsigned FunctionDefinition : 2; - /// \brief Is this Declarator a redeclaration? + /// Is this Declarator a redeclaration? unsigned Redeclaration : 1; - /// \brief true if the declaration is preceded by \c __extension__. + /// true if the declaration is preceded by \c __extension__. unsigned Extension : 1; /// Indicates whether this is an Objective-C instance variable. @@ -1803,7 +1803,7 @@ /// Attrs - Attributes. ParsedAttributes Attrs; - /// \brief The asm label, if specified. + /// The asm label, if specified. Expr *AsmLabel; #ifndef _MSC_VER @@ -1818,11 +1818,11 @@ }; #endif - /// \brief If this is the second or subsequent declarator in this declaration, + /// If this is the second or subsequent declarator in this declaration, /// the location of the comma before this declarator. SourceLocation CommaLoc; - /// \brief If provided, the source location of the ellipsis used to describe + /// If provided, the source location of the ellipsis used to describe /// this declarator as a parameter pack. SourceLocation EllipsisLoc; @@ -1860,7 +1860,7 @@ const CXXScopeSpec &getCXXScopeSpec() const { return SS; } CXXScopeSpec &getCXXScopeSpec() { return SS; } - /// \brief Retrieve the name specified by this declarator. + /// Retrieve the name specified by this declarator. UnqualifiedId &getName() { return Name; } const DecompositionDeclarator &getDecompositionDeclarator() const { @@ -1876,7 +1876,7 @@ Context == DeclaratorContext::LambdaExprParameterContext); } - /// \brief Get the source range that spans this declarator. + /// Get the source range that spans this declarator. SourceRange getSourceRange() const LLVM_READONLY { return Range; } SourceLocation getLocStart() const LLVM_READONLY { return Range.getBegin(); } SourceLocation getLocEnd() const LLVM_READONLY { return Range.getEnd(); } @@ -1904,7 +1904,7 @@ Range.setEnd(SR.getEnd()); } - /// \brief Reset the contents of this Declarator. + /// Reset the contents of this Declarator. void clear() { SS.clear(); Name.clear(); @@ -2123,7 +2123,7 @@ } SourceLocation getIdentifierLoc() const { return Name.StartLocation; } - /// \brief Set the name of this declarator to be the given identifier. + /// Set the name of this declarator to be the given identifier. void SetIdentifier(IdentifierInfo *Id, SourceLocation IdLoc) { Name.setIdentifier(Id, IdLoc); } @@ -2147,12 +2147,12 @@ SetRangeEnd(EndLoc); } - /// \brief Add a new innermost chunk to this declarator. + /// Add a new innermost chunk to this declarator. void AddInnermostTypeInfo(const DeclaratorChunk &TI) { DeclTypeInfo.insert(DeclTypeInfo.begin(), TI); } - /// \brief Return the number of types applied to this declarator. + /// Return the number of types applied to this declarator. unsigned getNumTypeObjects() const { return DeclTypeInfo.size(); } /// Return the specified TypeInfo from this declarator. TypeInfo #0 is @@ -2259,7 +2259,7 @@ return const_cast<Declarator*>(this)->getFunctionTypeInfo(); } - /// \brief Determine whether the declaration that will be produced from + /// Determine whether the declaration that will be produced from /// this declaration will be a function. /// /// A declaration can declare a function even if the declarator itself @@ -2267,7 +2267,7 @@ /// type. This routine checks for both cases. bool isDeclarationOfFunction() const; - /// \brief Return true if this declaration appears in a context where a + /// Return true if this declaration appears in a context where a /// function declarator would be a function declaration. bool isFunctionDeclarationContext() const { if (getDeclSpec().getStorageClassSpec() == DeclSpec::SCS_typedef) @@ -2348,7 +2348,7 @@ llvm_unreachable("unknown context kind!"); } - /// \brief Return true if a function declarator at this position would be a + /// Return true if a function declarator at this position would be a /// function declaration. bool isFunctionDeclaratorAFunctionDeclaration() const { if (!isFunctionDeclarationContext()) @@ -2361,7 +2361,7 @@ return true; } - /// \brief Determine whether a trailing return type was written (at any + /// Determine whether a trailing return type was written (at any /// level) within this declarator. bool hasTrailingReturnType() const { for (const auto &Chunk : type_objects()) @@ -2401,7 +2401,7 @@ return false; } - /// \brief Return a source range list of C++11 attributes associated + /// Return a source range list of C++11 attributes associated /// with the declarator. void getCXX11AttributeRanges(SmallVectorImpl<SourceRange> &Ranges) { AttributeList *AttrList = Attrs.getList(); @@ -2470,7 +2470,7 @@ bool isRedeclaration() const { return Redeclaration; } }; -/// \brief This little struct is used to capture information about +/// This little struct is used to capture information about /// structure field declarators, which is basically just a bitfield size. struct FieldDeclarator { Declarator D; @@ -2480,7 +2480,7 @@ BitfieldSize(nullptr) {} }; -/// \brief Represents a C++11 virt-specifier-seq. +/// Represents a C++11 virt-specifier-seq. class VirtSpecifiers { public: enum Specifier { @@ -2530,9 +2530,9 @@ ListInit //!< [a{b}] }; -/// \brief Represents a complete lambda introducer. +/// Represents a complete lambda introducer. struct LambdaIntroducer { - /// \brief An individual capture in a lambda introducer. + /// An individual capture in a lambda introducer. struct LambdaCapture { LambdaCaptureKind Kind; SourceLocation Loc; @@ -2557,7 +2557,7 @@ LambdaIntroducer() : Default(LCD_None) {} - /// \brief Append a capture in a lambda introducer. + /// Append a capture in a lambda introducer. void addCapture(LambdaCaptureKind Kind, SourceLocation Loc, IdentifierInfo* Id, Index: cfe/trunk/include/clang/Sema/DelayedDiagnostic.h =================================================================== --- cfe/trunk/include/clang/Sema/DelayedDiagnostic.h +++ cfe/trunk/include/clang/Sema/DelayedDiagnostic.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Defines the classes clang::DelayedDiagnostic and +/// Defines the classes clang::DelayedDiagnostic and /// clang::AccessedEntity. /// /// DelayedDiangostic is used to record diagnostics that are being @@ -265,7 +265,7 @@ }; }; -/// \brief A collection of diagnostics which were delayed. +/// A collection of diagnostics which were delayed. class DelayedDiagnosticPool { const DelayedDiagnosticPool *Parent; SmallVector<DelayedDiagnostic, 4> Diagnostics; Index: cfe/trunk/include/clang/Sema/ExternalSemaSource.h =================================================================== --- cfe/trunk/include/clang/Sema/ExternalSemaSource.h +++ cfe/trunk/include/clang/Sema/ExternalSemaSource.h @@ -39,7 +39,7 @@ class VarDecl; struct LateParsedTemplate; -/// \brief A simple structure that captures a vtable use for the purposes of +/// A simple structure that captures a vtable use for the purposes of /// the \c ExternalSemaSource. struct ExternalVTableUse { CXXRecordDecl *Record; @@ -47,7 +47,7 @@ bool DefinitionRequired; }; -/// \brief An abstract interface that should be implemented by +/// An abstract interface that should be implemented by /// external AST sources that also provide information for semantic /// analysis. class ExternalSemaSource : public ExternalASTSource { @@ -58,15 +58,15 @@ ~ExternalSemaSource() override; - /// \brief Initialize the semantic source with the Sema instance + /// Initialize the semantic source with the Sema instance /// being used to perform semantic analysis on the abstract syntax /// tree. virtual void InitializeSema(Sema &S) {} - /// \brief Inform the semantic consumer that Sema is no longer available. + /// Inform the semantic consumer that Sema is no longer available. virtual void ForgetSema() {} - /// \brief Load the contents of the global method pool for a given + /// Load the contents of the global method pool for a given /// selector. virtual void ReadMethodPool(Selector Sel); @@ -74,12 +74,12 @@ /// selector if necessary. virtual void updateOutOfDateSelector(Selector Sel); - /// \brief Load the set of namespaces that are known to the external source, + /// Load the set of namespaces that are known to the external source, /// which will be used during typo correction. virtual void ReadKnownNamespaces( SmallVectorImpl<NamespaceDecl *> &Namespaces); - /// \brief Load the set of used but not defined functions or variables with + /// Load the set of used but not defined functions or variables with /// internal linkage, or used but not defined internal functions. virtual void ReadUndefinedButUsed(llvm::MapVector<NamedDecl *, SourceLocation> &Undefined); @@ -87,7 +87,7 @@ virtual void ReadMismatchingDeleteExpressions(llvm::MapVector< FieldDecl *, llvm::SmallVector<std::pair<SourceLocation, bool>, 4>> &); - /// \brief Do last resort, unqualified lookup on a LookupResult that + /// Do last resort, unqualified lookup on a LookupResult that /// Sema cannot find. /// /// \param R a LookupResult that is being recovered. @@ -97,7 +97,7 @@ /// \return true to tell Sema to recover using the LookupResult. virtual bool LookupUnqualified(LookupResult &R, Scope *S) { return false; } - /// \brief Read the set of tentative definitions known to the external Sema + /// Read the set of tentative definitions known to the external Sema /// source. /// /// The external source should append its own tentative definitions to the @@ -107,7 +107,7 @@ virtual void ReadTentativeDefinitions( SmallVectorImpl<VarDecl *> &TentativeDefs) {} - /// \brief Read the set of unused file-scope declarations known to the + /// Read the set of unused file-scope declarations known to the /// external Sema source. /// /// The external source should append its own unused, filed-scope to the @@ -117,7 +117,7 @@ virtual void ReadUnusedFileScopedDecls( SmallVectorImpl<const DeclaratorDecl *> &Decls) {} - /// \brief Read the set of delegating constructors known to the + /// Read the set of delegating constructors known to the /// external Sema source. /// /// The external source should append its own delegating constructors to the @@ -127,7 +127,7 @@ virtual void ReadDelegatingConstructors( SmallVectorImpl<CXXConstructorDecl *> &Decls) {} - /// \brief Read the set of ext_vector type declarations known to the + /// Read the set of ext_vector type declarations known to the /// external Sema source. /// /// The external source should append its own ext_vector type declarations to @@ -136,7 +136,7 @@ /// introduce the same declarations repeatedly. virtual void ReadExtVectorDecls(SmallVectorImpl<TypedefNameDecl *> &Decls) {} - /// \brief Read the set of potentially unused typedefs known to the source. + /// Read the set of potentially unused typedefs known to the source. /// /// The external source should append its own potentially unused local /// typedefs to the given vector of declarations. Note that this routine may @@ -145,7 +145,7 @@ virtual void ReadUnusedLocalTypedefNameCandidates( llvm::SmallSetVector<const TypedefNameDecl *, 4> &Decls) {} - /// \brief Read the set of referenced selectors known to the + /// Read the set of referenced selectors known to the /// external Sema source. /// /// The external source should append its own referenced selectors to the @@ -155,7 +155,7 @@ virtual void ReadReferencedSelectors( SmallVectorImpl<std::pair<Selector, SourceLocation> > &Sels) {} - /// \brief Read the set of weak, undeclared identifiers known to the + /// Read the set of weak, undeclared identifiers known to the /// external Sema source. /// /// The external source should append its own weak, undeclared identifiers to @@ -165,14 +165,14 @@ virtual void ReadWeakUndeclaredIdentifiers( SmallVectorImpl<std::pair<IdentifierInfo *, WeakInfo> > &WI) {} - /// \brief Read the set of used vtables known to the external Sema source. + /// Read the set of used vtables known to the external Sema source. /// /// The external source should append its own used vtables to the given /// vector. Note that this routine may be invoked multiple times; the external /// source should take care not to introduce the same vtables repeatedly. virtual void ReadUsedVTables(SmallVectorImpl<ExternalVTableUse> &VTables) {} - /// \brief Read the set of pending instantiations known to the external + /// Read the set of pending instantiations known to the external /// Sema source. /// /// The external source should append its own pending instantiations to the @@ -183,7 +183,7 @@ SmallVectorImpl<std::pair<ValueDecl *, SourceLocation> > &Pending) {} - /// \brief Read the set of late parsed template functions for this source. + /// Read the set of late parsed template functions for this source. /// /// The external source should insert its own late parsed template functions /// into the map. Note that this routine may be invoked multiple times; the @@ -209,7 +209,7 @@ return TypoCorrection(); } - /// \brief Produces a diagnostic note if the external source contains a + /// Produces a diagnostic note if the external source contains a /// complete definition for \p T. /// /// \param Loc the location at which a complete type was required but not Index: cfe/trunk/include/clang/Sema/IdentifierResolver.h =================================================================== --- cfe/trunk/include/clang/Sema/IdentifierResolver.h +++ cfe/trunk/include/clang/Sema/IdentifierResolver.h @@ -54,7 +54,7 @@ /// The decl must already be part of the decl chain. void RemoveDecl(NamedDecl *D); - /// \brief Insert the given declaration at the given position in the list. + /// Insert the given declaration at the given position in the list. void InsertDecl(DeclsTy::iterator Pos, NamedDecl *D) { Decls.insert(Pos, D); } @@ -163,11 +163,11 @@ /// The decl must already be part of the decl chain. void RemoveDecl(NamedDecl *D); - /// \brief Insert the given declaration after the given iterator + /// Insert the given declaration after the given iterator /// position. void InsertDeclAfter(iterator Pos, NamedDecl *D); - /// \brief Try to add the given declaration to the top level scope, if it + /// Try to add the given declaration to the top level scope, if it /// (or a redeclaration of it) hasn't already been added. /// /// \param D The externally-produced declaration to add. Index: cfe/trunk/include/clang/Sema/Initialization.h =================================================================== --- cfe/trunk/include/clang/Sema/Initialization.h +++ cfe/trunk/include/clang/Sema/Initialization.h @@ -45,49 +45,49 @@ class ObjCMethodDecl; class Sema; -/// \brief Describes an entity that is being initialized. +/// Describes an entity that is being initialized. class InitializedEntity { public: - /// \brief Specifies the kind of entity being initialized. + /// Specifies the kind of entity being initialized. enum EntityKind { - /// \brief The entity being initialized is a variable. + /// The entity being initialized is a variable. EK_Variable, - /// \brief The entity being initialized is a function parameter. + /// The entity being initialized is a function parameter. EK_Parameter, - /// \brief The entity being initialized is the result of a function call. + /// The entity being initialized is the result of a function call. EK_Result, - /// \brief The entity being initialized is an exception object that + /// The entity being initialized is an exception object that /// is being thrown. EK_Exception, - /// \brief The entity being initialized is a non-static data member + /// The entity being initialized is a non-static data member /// subobject. EK_Member, - /// \brief The entity being initialized is an element of an array. + /// The entity being initialized is an element of an array. EK_ArrayElement, - /// \brief The entity being initialized is an object (or array of + /// The entity being initialized is an object (or array of /// objects) allocated via new. EK_New, - /// \brief The entity being initialized is a temporary object. + /// The entity being initialized is a temporary object. EK_Temporary, - /// \brief The entity being initialized is a base member subobject. + /// The entity being initialized is a base member subobject. EK_Base, - /// \brief The initialization is being done by a delegating constructor. + /// The initialization is being done by a delegating constructor. EK_Delegating, - /// \brief The entity being initialized is an element of a vector. + /// The entity being initialized is an element of a vector. /// or vector. EK_VectorElement, - /// \brief The entity being initialized is a field of block descriptor for + /// The entity being initialized is a field of block descriptor for /// the copied-in c++ object. EK_BlockElement, @@ -95,27 +95,27 @@ /// copied-in lambda object that's used in the lambda to block conversion. EK_LambdaToBlockConversionBlockElement, - /// \brief The entity being initialized is the real or imaginary part of a + /// The entity being initialized is the real or imaginary part of a /// complex number. EK_ComplexElement, - /// \brief The entity being initialized is the field that captures a + /// The entity being initialized is the field that captures a /// variable in a lambda. EK_LambdaCapture, - /// \brief The entity being initialized is the initializer for a compound + /// The entity being initialized is the initializer for a compound /// literal. EK_CompoundLiteralInit, - /// \brief The entity being implicitly initialized back to the formal + /// The entity being implicitly initialized back to the formal /// result type. EK_RelatedResult, - /// \brief The entity being initialized is a function parameter; function + /// The entity being initialized is a function parameter; function /// is member of group of audited CF APIs. EK_Parameter_CF_Audited, - /// \brief The entity being initialized is a structured binding of a + /// The entity being initialized is a structured binding of a /// decomposition declaration. EK_Binding, @@ -125,73 +125,73 @@ }; private: - /// \brief The kind of entity being initialized. + /// The kind of entity being initialized. EntityKind Kind; - /// \brief If non-NULL, the parent entity in which this + /// If non-NULL, the parent entity in which this /// initialization occurs. const InitializedEntity *Parent = nullptr; - /// \brief The type of the object or reference being initialized. + /// The type of the object or reference being initialized. QualType Type; - /// \brief The mangling number for the next reference temporary to be created. + /// The mangling number for the next reference temporary to be created. mutable unsigned ManglingNumber = 0; struct LN { - /// \brief When Kind == EK_Result, EK_Exception, EK_New, the + /// When Kind == EK_Result, EK_Exception, EK_New, the /// location of the 'return', 'throw', or 'new' keyword, /// respectively. When Kind == EK_Temporary, the location where /// the temporary is being created. unsigned Location; - /// \brief Whether the entity being initialized may end up using the + /// Whether the entity being initialized may end up using the /// named return value optimization (NRVO). bool NRVO; }; struct VD { - /// \brief The VarDecl, FieldDecl, or BindingDecl being initialized. + /// The VarDecl, FieldDecl, or BindingDecl being initialized. ValueDecl *VariableOrMember; - /// \brief When Kind == EK_Member, whether this is an implicit member + /// When Kind == EK_Member, whether this is an implicit member /// initialization in a copy or move constructor. These can perform array /// copies. bool IsImplicitFieldInit; }; struct C { - /// \brief The name of the variable being captured by an EK_LambdaCapture. + /// The name of the variable being captured by an EK_LambdaCapture. IdentifierInfo *VarID; - /// \brief The source location at which the capture occurs. + /// The source location at which the capture occurs. unsigned Location; }; union { - /// \brief When Kind == EK_Variable, EK_Member or EK_Binding, the variable. + /// When Kind == EK_Variable, EK_Member or EK_Binding, the variable. VD Variable; - /// \brief When Kind == EK_RelatedResult, the ObjectiveC method where + /// When Kind == EK_RelatedResult, the ObjectiveC method where /// result type was implicitly changed to accommodate ARC semantics. ObjCMethodDecl *MethodDecl; - /// \brief When Kind == EK_Parameter, the ParmVarDecl, with the + /// When Kind == EK_Parameter, the ParmVarDecl, with the /// low bit indicating whether the parameter is "consumed". uintptr_t Parameter; - /// \brief When Kind == EK_Temporary or EK_CompoundLiteralInit, the type + /// When Kind == EK_Temporary or EK_CompoundLiteralInit, the type /// source information for the temporary. TypeSourceInfo *TypeInfo; struct LN LocAndNRVO; - /// \brief When Kind == EK_Base, the base specifier that provides the + /// When Kind == EK_Base, the base specifier that provides the /// base class. The lower bit specifies whether the base is an inherited /// virtual base. uintptr_t Base; - /// \brief When Kind == EK_ArrayElement, EK_VectorElement, or + /// When Kind == EK_ArrayElement, EK_VectorElement, or /// EK_ComplexElement, the index of the array or vector element being /// initialized. unsigned Index; @@ -201,11 +201,11 @@ InitializedEntity() = default; - /// \brief Create the initialization entity for a variable. + /// Create the initialization entity for a variable. InitializedEntity(VarDecl *Var, EntityKind EK = EK_Variable) : Kind(EK), Type(Var->getType()), Variable{Var, false} {} - /// \brief Create the initialization entity for the result of a + /// Create the initialization entity for the result of a /// function, throwing an object, performing an explicit cast, or /// initializing a parameter for which there is no declaration. InitializedEntity(EntityKind Kind, SourceLocation Loc, QualType Type, @@ -215,17 +215,17 @@ LocAndNRVO.NRVO = NRVO; } - /// \brief Create the initialization entity for a member subobject. + /// Create the initialization entity for a member subobject. InitializedEntity(FieldDecl *Member, const InitializedEntity *Parent, bool Implicit) : Kind(EK_Member), Parent(Parent), Type(Member->getType()), Variable{Member, Implicit} {} - /// \brief Create the initialization entity for an array element. + /// Create the initialization entity for an array element. InitializedEntity(ASTContext &Context, unsigned Index, const InitializedEntity &Parent); - /// \brief Create the initialization entity for a lambda capture. + /// Create the initialization entity for a lambda capture. InitializedEntity(IdentifierInfo *VarID, QualType FieldType, SourceLocation Loc) : Kind(EK_LambdaCapture), Type(FieldType) { Capture.VarID = VarID; @@ -233,18 +233,18 @@ } public: - /// \brief Create the initialization entity for a variable. + /// Create the initialization entity for a variable. static InitializedEntity InitializeVariable(VarDecl *Var) { return InitializedEntity(Var); } - /// \brief Create the initialization entity for a parameter. + /// Create the initialization entity for a parameter. static InitializedEntity InitializeParameter(ASTContext &Context, const ParmVarDecl *Parm) { return InitializeParameter(Context, Parm, Parm->getType()); } - /// \brief Create the initialization entity for a parameter, but use + /// Create the initialization entity for a parameter, but use /// another type. static InitializedEntity InitializeParameter(ASTContext &Context, const ParmVarDecl *Parm, @@ -262,7 +262,7 @@ return Entity; } - /// \brief Create the initialization entity for a parameter that is + /// Create the initialization entity for a parameter that is /// only known by its type. static InitializedEntity InitializeParameter(ASTContext &Context, QualType Type, @@ -275,7 +275,7 @@ return Entity; } - /// \brief Create the initialization entity for the result of a function. + /// Create the initialization entity for the result of a function. static InitializedEntity InitializeResult(SourceLocation ReturnLoc, QualType Type, bool NRVO) { return InitializedEntity(EK_Result, ReturnLoc, Type, NRVO); @@ -292,28 +292,28 @@ BlockVarLoc, Type, NRVO); } - /// \brief Create the initialization entity for an exception object. + /// Create the initialization entity for an exception object. static InitializedEntity InitializeException(SourceLocation ThrowLoc, QualType Type, bool NRVO) { return InitializedEntity(EK_Exception, ThrowLoc, Type, NRVO); } - /// \brief Create the initialization entity for an object allocated via new. + /// Create the initialization entity for an object allocated via new. static InitializedEntity InitializeNew(SourceLocation NewLoc, QualType Type) { return InitializedEntity(EK_New, NewLoc, Type); } - /// \brief Create the initialization entity for a temporary. + /// Create the initialization entity for a temporary. static InitializedEntity InitializeTemporary(QualType Type) { return InitializeTemporary(nullptr, Type); } - /// \brief Create the initialization entity for a temporary. + /// Create the initialization entity for a temporary. static InitializedEntity InitializeTemporary(TypeSourceInfo *TypeInfo) { return InitializeTemporary(TypeInfo, TypeInfo->getType()); } - /// \brief Create the initialization entity for a temporary. + /// Create the initialization entity for a temporary. static InitializedEntity InitializeTemporary(TypeSourceInfo *TypeInfo, QualType Type) { InitializedEntity Result(EK_Temporary, SourceLocation(), Type); @@ -321,7 +321,7 @@ return Result; } - /// \brief Create the initialization entity for a related result. + /// Create the initialization entity for a related result. static InitializedEntity InitializeRelatedResult(ObjCMethodDecl *MD, QualType Type) { InitializedEntity Result(EK_RelatedResult, SourceLocation(), Type); @@ -329,18 +329,18 @@ return Result; } - /// \brief Create the initialization entity for a base class subobject. + /// Create the initialization entity for a base class subobject. static InitializedEntity InitializeBase(ASTContext &Context, const CXXBaseSpecifier *Base, bool IsInheritedVirtualBase, const InitializedEntity *Parent = nullptr); - /// \brief Create the initialization entity for a delegated constructor. + /// Create the initialization entity for a delegated constructor. static InitializedEntity InitializeDelegation(QualType Type) { return InitializedEntity(EK_Delegating, SourceLocation(), Type); } - /// \brief Create the initialization entity for a member subobject. + /// Create the initialization entity for a member subobject. static InitializedEntity InitializeMember(FieldDecl *Member, const InitializedEntity *Parent = nullptr, @@ -348,7 +348,7 @@ return InitializedEntity(Member, Parent, Implicit); } - /// \brief Create the initialization entity for a member subobject. + /// Create the initialization entity for a member subobject. static InitializedEntity InitializeMember(IndirectFieldDecl *Member, const InitializedEntity *Parent = nullptr, @@ -356,26 +356,26 @@ return InitializedEntity(Member->getAnonField(), Parent, Implicit); } - /// \brief Create the initialization entity for an array element. + /// Create the initialization entity for an array element. static InitializedEntity InitializeElement(ASTContext &Context, unsigned Index, const InitializedEntity &Parent) { return InitializedEntity(Context, Index, Parent); } - /// \brief Create the initialization entity for a structured binding. + /// Create the initialization entity for a structured binding. static InitializedEntity InitializeBinding(VarDecl *Binding) { return InitializedEntity(Binding, EK_Binding); } - /// \brief Create the initialization entity for a lambda capture. + /// Create the initialization entity for a lambda capture. static InitializedEntity InitializeLambdaCapture(IdentifierInfo *VarID, QualType FieldType, SourceLocation Loc) { return InitializedEntity(VarID, FieldType, Loc); } - /// \brief Create the entity for a compound literal initializer. + /// Create the entity for a compound literal initializer. static InitializedEntity InitializeCompoundLiteralInit(TypeSourceInfo *TSI) { InitializedEntity Result(EK_CompoundLiteralInit, SourceLocation(), TSI->getType()); @@ -383,18 +383,18 @@ return Result; } - /// \brief Determine the kind of initialization. + /// Determine the kind of initialization. EntityKind getKind() const { return Kind; } - /// \brief Retrieve the parent of the entity being initialized, when + /// Retrieve the parent of the entity being initialized, when /// the initialization itself is occurring within the context of a /// larger initialization. const InitializedEntity *getParent() const { return Parent; } - /// \brief Retrieve type being initialized. + /// Retrieve type being initialized. QualType getType() const { return Type; } - /// \brief Retrieve complete type-source information for the object being + /// Retrieve complete type-source information for the object being /// constructed, if known. TypeSourceInfo *getTypeSourceInfo() const { if (Kind == EK_Temporary || Kind == EK_CompoundLiteralInit) @@ -403,17 +403,17 @@ return nullptr; } - /// \brief Retrieve the name of the entity being initialized. + /// Retrieve the name of the entity being initialized. DeclarationName getName() const; - /// \brief Retrieve the variable, parameter, or field being + /// Retrieve the variable, parameter, or field being /// initialized. ValueDecl *getDecl() const; - /// \brief Retrieve the ObjectiveC method being initialized. + /// Retrieve the ObjectiveC method being initialized. ObjCMethodDecl *getMethodDecl() const { return MethodDecl; } - /// \brief Determine whether this initialization allows the named return + /// Determine whether this initialization allows the named return /// value optimization, which also applies to thrown objects. bool allowsNRVO() const; @@ -422,52 +422,52 @@ getKind() == EK_Parameter_CF_Audited); } - /// \brief Determine whether this initialization consumes the + /// Determine whether this initialization consumes the /// parameter. bool isParameterConsumed() const { assert(isParameterKind() && "Not a parameter"); return (Parameter & 1); } - /// \brief Retrieve the base specifier. + /// Retrieve the base specifier. const CXXBaseSpecifier *getBaseSpecifier() const { assert(getKind() == EK_Base && "Not a base specifier"); return reinterpret_cast<const CXXBaseSpecifier *>(Base & ~0x1); } - /// \brief Return whether the base is an inherited virtual base. + /// Return whether the base is an inherited virtual base. bool isInheritedVirtualBase() const { assert(getKind() == EK_Base && "Not a base specifier"); return Base & 0x1; } - /// \brief Determine whether this is an array new with an unknown bound. + /// Determine whether this is an array new with an unknown bound. bool isVariableLengthArrayNew() const { return getKind() == EK_New && dyn_cast_or_null<IncompleteArrayType>( getType()->getAsArrayTypeUnsafe()); } - /// \brief Is this the implicit initialization of a member of a class from + /// Is this the implicit initialization of a member of a class from /// a defaulted constructor? bool isImplicitMemberInitializer() const { return getKind() == EK_Member && Variable.IsImplicitFieldInit; } - /// \brief Determine the location of the 'return' keyword when initializing + /// Determine the location of the 'return' keyword when initializing /// the result of a function call. SourceLocation getReturnLoc() const { assert(getKind() == EK_Result && "No 'return' location!"); return SourceLocation::getFromRawEncoding(LocAndNRVO.Location); } - /// \brief Determine the location of the 'throw' keyword when initializing + /// Determine the location of the 'throw' keyword when initializing /// an exception object. SourceLocation getThrowLoc() const { assert(getKind() == EK_Exception && "No 'throw' location!"); return SourceLocation::getFromRawEncoding(LocAndNRVO.Location); } - /// \brief If this is an array, vector, or complex number element, get the + /// If this is an array, vector, or complex number element, get the /// element's index. unsigned getElementIndex() const { assert(getKind() == EK_ArrayElement || getKind() == EK_VectorElement || @@ -475,7 +475,7 @@ return Index; } - /// \brief If this is already the initializer for an array or vector + /// If this is already the initializer for an array or vector /// element, sets the element index. void setElementIndex(unsigned Index) { assert(getKind() == EK_ArrayElement || getKind() == EK_VectorElement || @@ -483,13 +483,13 @@ this->Index = Index; } - /// \brief For a lambda capture, return the capture's name. + /// For a lambda capture, return the capture's name. StringRef getCapturedVarName() const { assert(getKind() == EK_LambdaCapture && "Not a lambda capture!"); return Capture.VarID->getName(); } - /// \brief Determine the location of the capture when initializing + /// Determine the location of the capture when initializing /// field from a captured variable in a lambda. SourceLocation getCaptureLoc() const { assert(getKind() == EK_LambdaCapture && "Not a lambda capture!"); @@ -510,12 +510,12 @@ unsigned dumpImpl(raw_ostream &OS) const; }; -/// \brief Describes the kind of initialization being performed, along with +/// Describes the kind of initialization being performed, along with /// location information for tokens related to the initialization (equal sign, /// parentheses). class InitializationKind { public: - /// \brief The kind of initialization being performed. + /// The kind of initialization being performed. enum InitKind { /// Direct initialization IK_Direct, @@ -534,7 +534,7 @@ }; private: - /// \brief The context of the initialization. + /// The context of the initialization. enum InitContext { /// Normal context IC_Normal, @@ -555,13 +555,13 @@ IC_FunctionalCast }; - /// \brief The kind of initialization being performed. + /// The kind of initialization being performed. InitKind Kind : 8; - /// \brief The context of the initialization. + /// The context of the initialization. InitContext Context : 8; - /// \brief The source locations involved in the initialization. + /// The source locations involved in the initialization. SourceLocation Locations[3]; InitializationKind(InitKind Kind, InitContext Context, SourceLocation Loc1, @@ -573,7 +573,7 @@ } public: - /// \brief Create a direct initialization. + /// Create a direct initialization. static InitializationKind CreateDirect(SourceLocation InitLoc, SourceLocation LParenLoc, SourceLocation RParenLoc) { @@ -593,14 +593,14 @@ RBraceLoc); } - /// \brief Create a direct initialization due to a cast that isn't a C-style + /// Create a direct initialization due to a cast that isn't a C-style /// or functional cast. static InitializationKind CreateCast(SourceRange TypeRange) { return InitializationKind(IK_Direct, IC_StaticCast, TypeRange.getBegin(), TypeRange.getBegin(), TypeRange.getEnd()); } - /// \brief Create a direct initialization for a C-style cast. + /// Create a direct initialization for a C-style cast. static InitializationKind CreateCStyleCast(SourceLocation StartLoc, SourceRange TypeRange, bool InitList) { @@ -611,7 +611,7 @@ TypeRange.getEnd()); } - /// \brief Create a direct initialization for a functional cast. + /// Create a direct initialization for a functional cast. static InitializationKind CreateFunctionalCast(SourceRange TypeRange, bool InitList) { return InitializationKind(InitList ? IK_DirectList : IK_Direct, @@ -619,7 +619,7 @@ TypeRange.getBegin(), TypeRange.getEnd()); } - /// \brief Create a copy initialization. + /// Create a copy initialization. static InitializationKind CreateCopy(SourceLocation InitLoc, SourceLocation EqualLoc, bool AllowExplicitConvs = false) { @@ -628,12 +628,12 @@ InitLoc, EqualLoc, EqualLoc); } - /// \brief Create a default initialization. + /// Create a default initialization. static InitializationKind CreateDefault(SourceLocation InitLoc) { return InitializationKind(IK_Default, IC_Normal, InitLoc, InitLoc, InitLoc); } - /// \brief Create a value initialization. + /// Create a value initialization. static InitializationKind CreateValue(SourceLocation InitLoc, SourceLocation LParenLoc, SourceLocation RParenLoc, @@ -642,7 +642,7 @@ InitLoc, LParenLoc, RParenLoc); } - /// \brief Create an initialization from an initializer (which, for direct + /// Create an initialization from an initializer (which, for direct /// initialization from a parenthesized list, will be a ParenListExpr). static InitializationKind CreateForInit(SourceLocation Loc, bool DirectInit, Expr *Init) { @@ -653,45 +653,45 @@ return CreateDirect(Loc, Init->getLocStart(), Init->getLocEnd()); } - /// \brief Determine the initialization kind. + /// Determine the initialization kind. InitKind getKind() const { return Kind; } - /// \brief Determine whether this initialization is an explicit cast. + /// Determine whether this initialization is an explicit cast. bool isExplicitCast() const { return Context >= IC_StaticCast; } - /// \brief Determine whether this initialization is a C-style cast. + /// Determine whether this initialization is a C-style cast. bool isCStyleOrFunctionalCast() const { return Context >= IC_CStyleCast; } - /// \brief Determine whether this is a C-style cast. + /// Determine whether this is a C-style cast. bool isCStyleCast() const { return Context == IC_CStyleCast; } - /// \brief Determine whether this is a functional-style cast. + /// Determine whether this is a functional-style cast. bool isFunctionalCast() const { return Context == IC_FunctionalCast; } - /// \brief Determine whether this initialization is an implicit + /// Determine whether this initialization is an implicit /// value-initialization, e.g., as occurs during aggregate /// initialization. bool isImplicitValueInit() const { return Context == IC_Implicit; } - /// \brief Retrieve the location at which initialization is occurring. + /// Retrieve the location at which initialization is occurring. SourceLocation getLocation() const { return Locations[0]; } - /// \brief Retrieve the source range that covers the initialization. + /// Retrieve the source range that covers the initialization. SourceRange getRange() const { return SourceRange(Locations[0], Locations[2]); } - /// \brief Retrieve the location of the equal sign for copy initialization + /// Retrieve the location of the equal sign for copy initialization /// (if present). SourceLocation getEqualLoc() const { assert(Kind == IK_Copy && "Only copy initialization has an '='"); @@ -700,11 +700,11 @@ bool isCopyInit() const { return Kind == IK_Copy; } - /// \brief Retrieve whether this initialization allows the use of explicit + /// Retrieve whether this initialization allows the use of explicit /// constructors. bool AllowExplicit() const { return !isCopyInit(); } - /// \brief Retrieve whether this initialization allows the use of explicit + /// Retrieve whether this initialization allows the use of explicit /// conversion functions when binding a reference. If the reference is the /// first parameter in a copy or move constructor, such conversions are /// permitted even though we are performing copy-initialization. @@ -718,7 +718,7 @@ return Kind == IK_Direct || Kind == IK_Value || Kind == IK_DirectList; } - /// \brief Retrieve the source range containing the locations of the open + /// Retrieve the source range containing the locations of the open /// and closing parentheses or braces for value, direct, and direct list /// initializations. SourceRange getParenOrBraceRange() const { @@ -729,159 +729,159 @@ } }; -/// \brief Describes the sequence of initializations required to initialize +/// Describes the sequence of initializations required to initialize /// a given object or reference with a set of arguments. class InitializationSequence { public: - /// \brief Describes the kind of initialization sequence computed. + /// Describes the kind of initialization sequence computed. enum SequenceKind { - /// \brief A failed initialization sequence. The failure kind tells what + /// A failed initialization sequence. The failure kind tells what /// happened. FailedSequence = 0, - /// \brief A dependent initialization, which could not be + /// A dependent initialization, which could not be /// type-checked due to the presence of dependent types or /// dependently-typed expressions. DependentSequence, - /// \brief A normal sequence. + /// A normal sequence. NormalSequence }; - /// \brief Describes the kind of a particular step in an initialization + /// Describes the kind of a particular step in an initialization /// sequence. enum StepKind { - /// \brief Resolve the address of an overloaded function to a specific + /// Resolve the address of an overloaded function to a specific /// function declaration. SK_ResolveAddressOfOverloadedFunction, - /// \brief Perform a derived-to-base cast, producing an rvalue. + /// Perform a derived-to-base cast, producing an rvalue. SK_CastDerivedToBaseRValue, - /// \brief Perform a derived-to-base cast, producing an xvalue. + /// Perform a derived-to-base cast, producing an xvalue. SK_CastDerivedToBaseXValue, - /// \brief Perform a derived-to-base cast, producing an lvalue. + /// Perform a derived-to-base cast, producing an lvalue. SK_CastDerivedToBaseLValue, - /// \brief Reference binding to an lvalue. + /// Reference binding to an lvalue. SK_BindReference, - /// \brief Reference binding to a temporary. + /// Reference binding to a temporary. SK_BindReferenceToTemporary, - /// \brief An optional copy of a temporary object to another + /// An optional copy of a temporary object to another /// temporary object, which is permitted (but not required) by /// C++98/03 but not C++0x. SK_ExtraneousCopyToTemporary, - /// \brief Direct-initialization from a reference-related object in the + /// Direct-initialization from a reference-related object in the /// final stage of class copy-initialization. SK_FinalCopy, - /// \brief Perform a user-defined conversion, either via a conversion + /// Perform a user-defined conversion, either via a conversion /// function or via a constructor. SK_UserConversion, - /// \brief Perform a qualification conversion, producing an rvalue. + /// Perform a qualification conversion, producing an rvalue. SK_QualificationConversionRValue, - /// \brief Perform a qualification conversion, producing an xvalue. + /// Perform a qualification conversion, producing an xvalue. SK_QualificationConversionXValue, - /// \brief Perform a qualification conversion, producing an lvalue. + /// Perform a qualification conversion, producing an lvalue. SK_QualificationConversionLValue, - /// \brief Perform a conversion adding _Atomic to a type. + /// Perform a conversion adding _Atomic to a type. SK_AtomicConversion, - /// \brief Perform a load from a glvalue, producing an rvalue. + /// Perform a load from a glvalue, producing an rvalue. SK_LValueToRValue, - /// \brief Perform an implicit conversion sequence. + /// Perform an implicit conversion sequence. SK_ConversionSequence, - /// \brief Perform an implicit conversion sequence without narrowing. + /// Perform an implicit conversion sequence without narrowing. SK_ConversionSequenceNoNarrowing, - /// \brief Perform list-initialization without a constructor. + /// Perform list-initialization without a constructor. SK_ListInitialization, - /// \brief Unwrap the single-element initializer list for a reference. + /// Unwrap the single-element initializer list for a reference. SK_UnwrapInitList, - /// \brief Rewrap the single-element initializer list for a reference. + /// Rewrap the single-element initializer list for a reference. SK_RewrapInitList, - /// \brief Perform initialization via a constructor. + /// Perform initialization via a constructor. SK_ConstructorInitialization, - /// \brief Perform initialization via a constructor, taking arguments from + /// Perform initialization via a constructor, taking arguments from /// a single InitListExpr. SK_ConstructorInitializationFromList, - /// \brief Zero-initialize the object + /// Zero-initialize the object SK_ZeroInitialization, - /// \brief C assignment + /// C assignment SK_CAssignment, - /// \brief Initialization by string + /// Initialization by string SK_StringInit, - /// \brief An initialization that "converts" an Objective-C object + /// An initialization that "converts" an Objective-C object /// (not a point to an object) to another Objective-C object type. SK_ObjCObjectConversion, - /// \brief Array indexing for initialization by elementwise copy. + /// Array indexing for initialization by elementwise copy. SK_ArrayLoopIndex, - /// \brief Array initialization by elementwise copy. + /// Array initialization by elementwise copy. SK_ArrayLoopInit, - /// \brief Array initialization (from an array rvalue). + /// Array initialization (from an array rvalue). SK_ArrayInit, - /// \brief Array initialization (from an array rvalue) as a GNU extension. + /// Array initialization (from an array rvalue) as a GNU extension. SK_GNUArrayInit, - /// \brief Array initialization from a parenthesized initializer list. + /// Array initialization from a parenthesized initializer list. /// This is a GNU C++ extension. SK_ParenthesizedArrayInit, - /// \brief Pass an object by indirect copy-and-restore. + /// Pass an object by indirect copy-and-restore. SK_PassByIndirectCopyRestore, - /// \brief Pass an object by indirect restore. + /// Pass an object by indirect restore. SK_PassByIndirectRestore, - /// \brief Produce an Objective-C object pointer. + /// Produce an Objective-C object pointer. SK_ProduceObjCObject, - /// \brief Construct a std::initializer_list from an initializer list. + /// Construct a std::initializer_list from an initializer list. SK_StdInitializerList, - /// \brief Perform initialization via a constructor taking a single + /// Perform initialization via a constructor taking a single /// std::initializer_list argument. SK_StdInitializerListConstructorCall, - /// \brief Initialize an OpenCL sampler from an integer. + /// Initialize an OpenCL sampler from an integer. SK_OCLSamplerInit, - /// \brief Initialize queue_t from 0. + /// Initialize queue_t from 0. SK_OCLZeroQueue, - /// \brief Passing zero to a function where OpenCL event_t is expected. + /// Passing zero to a function where OpenCL event_t is expected. SK_OCLZeroEvent }; - /// \brief A single step in the initialization sequence. + /// A single step in the initialization sequence. class Step { public: - /// \brief The kind of conversion or initialization step we are taking. + /// The kind of conversion or initialization step we are taking. StepKind Kind; - // \brief The type that results from this initialization. + // The type that results from this initialization. QualType Type; struct F { @@ -891,7 +891,7 @@ }; union { - /// \brief When Kind == SK_ResolvedOverloadedFunction or Kind == + /// When Kind == SK_ResolvedOverloadedFunction or Kind == /// SK_UserConversion, the function that the expression should be /// resolved to or the conversion function to call, respectively. /// When Kind == SK_ConstructorInitialization or SK_ListConstruction, @@ -903,11 +903,11 @@ /// For construct decls, the naming class is the target type. struct F Function; - /// \brief When Kind = SK_ConversionSequence, the implicit conversion + /// When Kind = SK_ConversionSequence, the implicit conversion /// sequence. ImplicitConversionSequence *ICS; - /// \brief When Kind = SK_RewrapInitList, the syntactic form of the + /// When Kind = SK_RewrapInitList, the syntactic form of the /// wrapping list. InitListExpr *WrappingSyntacticList; }; @@ -916,154 +916,154 @@ }; private: - /// \brief The kind of initialization sequence computed. + /// The kind of initialization sequence computed. enum SequenceKind SequenceKind; - /// \brief Steps taken by this initialization. + /// Steps taken by this initialization. SmallVector<Step, 4> Steps; public: - /// \brief Describes why initialization failed. + /// Describes why initialization failed. enum FailureKind { - /// \brief Too many initializers provided for a reference. + /// Too many initializers provided for a reference. FK_TooManyInitsForReference, - /// \brief Reference initialized from a parenthesized initializer list. + /// Reference initialized from a parenthesized initializer list. FK_ParenthesizedListInitForReference, - /// \brief Array must be initialized with an initializer list. + /// Array must be initialized with an initializer list. FK_ArrayNeedsInitList, - /// \brief Array must be initialized with an initializer list or a + /// Array must be initialized with an initializer list or a /// string literal. FK_ArrayNeedsInitListOrStringLiteral, - /// \brief Array must be initialized with an initializer list or a + /// Array must be initialized with an initializer list or a /// wide string literal. FK_ArrayNeedsInitListOrWideStringLiteral, - /// \brief Initializing a wide char array with narrow string literal. + /// Initializing a wide char array with narrow string literal. FK_NarrowStringIntoWideCharArray, - /// \brief Initializing char array with wide string literal. + /// Initializing char array with wide string literal. FK_WideStringIntoCharArray, - /// \brief Initializing wide char array with incompatible wide string + /// Initializing wide char array with incompatible wide string /// literal. FK_IncompatWideStringIntoWideChar, - /// \brief Initializing char8_t array with plain string literal. + /// Initializing char8_t array with plain string literal. FK_PlainStringIntoUTF8Char, - /// \brief Initializing char array with UTF-8 string literal. + /// Initializing char array with UTF-8 string literal. FK_UTF8StringIntoPlainChar, - /// \brief Array type mismatch. + /// Array type mismatch. FK_ArrayTypeMismatch, - /// \brief Non-constant array initializer + /// Non-constant array initializer FK_NonConstantArrayInit, - /// \brief Cannot resolve the address of an overloaded function. + /// Cannot resolve the address of an overloaded function. FK_AddressOfOverloadFailed, - /// \brief Overloading due to reference initialization failed. + /// Overloading due to reference initialization failed. FK_ReferenceInitOverloadFailed, - /// \brief Non-const lvalue reference binding to a temporary. + /// Non-const lvalue reference binding to a temporary. FK_NonConstLValueReferenceBindingToTemporary, - /// \brief Non-const lvalue reference binding to a bit-field. + /// Non-const lvalue reference binding to a bit-field. FK_NonConstLValueReferenceBindingToBitfield, - /// \brief Non-const lvalue reference binding to a vector element. + /// Non-const lvalue reference binding to a vector element. FK_NonConstLValueReferenceBindingToVectorElement, - /// \brief Non-const lvalue reference binding to an lvalue of unrelated + /// Non-const lvalue reference binding to an lvalue of unrelated /// type. FK_NonConstLValueReferenceBindingToUnrelated, - /// \brief Rvalue reference binding to an lvalue. + /// Rvalue reference binding to an lvalue. FK_RValueReferenceBindingToLValue, - /// \brief Reference binding drops qualifiers. + /// Reference binding drops qualifiers. FK_ReferenceInitDropsQualifiers, - /// \brief Reference binding failed. + /// Reference binding failed. FK_ReferenceInitFailed, - /// \brief Implicit conversion failed. + /// Implicit conversion failed. FK_ConversionFailed, - /// \brief Implicit conversion failed. + /// Implicit conversion failed. FK_ConversionFromPropertyFailed, - /// \brief Too many initializers for scalar + /// Too many initializers for scalar FK_TooManyInitsForScalar, - /// \brief Scalar initialized from a parenthesized initializer list. + /// Scalar initialized from a parenthesized initializer list. FK_ParenthesizedListInitForScalar, - /// \brief Reference initialization from an initializer list + /// Reference initialization from an initializer list FK_ReferenceBindingToInitList, - /// \brief Initialization of some unused destination type with an + /// Initialization of some unused destination type with an /// initializer list. FK_InitListBadDestinationType, - /// \brief Overloading for a user-defined conversion failed. + /// Overloading for a user-defined conversion failed. FK_UserConversionOverloadFailed, - /// \brief Overloading for initialization by constructor failed. + /// Overloading for initialization by constructor failed. FK_ConstructorOverloadFailed, - /// \brief Overloading for list-initialization by constructor failed. + /// Overloading for list-initialization by constructor failed. FK_ListConstructorOverloadFailed, - /// \brief Default-initialization of a 'const' object. + /// Default-initialization of a 'const' object. FK_DefaultInitOfConst, - /// \brief Initialization of an incomplete type. + /// Initialization of an incomplete type. FK_Incomplete, - /// \brief Variable-length array must not have an initializer. + /// Variable-length array must not have an initializer. FK_VariableLengthArrayHasInitializer, - /// \brief List initialization failed at some point. + /// List initialization failed at some point. FK_ListInitializationFailed, - /// \brief Initializer has a placeholder type which cannot be + /// Initializer has a placeholder type which cannot be /// resolved by initialization. FK_PlaceholderType, - /// \brief Trying to take the address of a function that doesn't support + /// Trying to take the address of a function that doesn't support /// having its address taken. FK_AddressOfUnaddressableFunction, - /// \brief List-copy-initialization chose an explicit constructor. + /// List-copy-initialization chose an explicit constructor. FK_ExplicitConstructor, }; private: - /// \brief The reason why initialization failed. + /// The reason why initialization failed. FailureKind Failure; - /// \brief The failed result of overload resolution. + /// The failed result of overload resolution. OverloadingResult FailedOverloadResult; - /// \brief The candidate set created when initialization failed. + /// The candidate set created when initialization failed. OverloadCandidateSet FailedCandidateSet; - /// \brief The incomplete type that caused a failure. + /// The incomplete type that caused a failure. QualType FailedIncompleteType; - /// \brief The fixit that needs to be applied to make this initialization + /// The fixit that needs to be applied to make this initialization /// succeed. std::string ZeroInitializationFixit; SourceLocation ZeroInitializationFixitLoc; public: - /// \brief Call for initializations are invalid but that would be valid + /// Call for initializations are invalid but that would be valid /// zero initialzations if Fixit was applied. void SetZeroInitializationFixit(const std::string& Fixit, SourceLocation L) { ZeroInitializationFixit = Fixit; @@ -1071,12 +1071,12 @@ } private: - /// \brief Prints a follow-up note that highlights the location of + /// Prints a follow-up note that highlights the location of /// the initialized entity, if it's remote. void PrintInitLocationNote(Sema &S, const InitializedEntity &Entity); public: - /// \brief Try to perform initialization of the given entity, creating a + /// Try to perform initialization of the given entity, creating a /// record of the steps required to perform the initialization. /// /// The generated initialization sequence will either contain enough @@ -1107,7 +1107,7 @@ ~InitializationSequence(); - /// \brief Perform the actual initialization of the given entity based on + /// Perform the actual initialization of the given entity based on /// the computed initialization sequence. /// /// \param S the semantic analysis object. @@ -1134,7 +1134,7 @@ MultiExprArg Args, QualType *ResultType = nullptr); - /// \brief Diagnose an potentially-invalid initialization sequence. + /// Diagnose an potentially-invalid initialization sequence. /// /// \returns true if the initialization sequence was ill-formed, /// false otherwise. @@ -1143,16 +1143,16 @@ const InitializationKind &Kind, ArrayRef<Expr *> Args); - /// \brief Determine the kind of initialization sequence computed. + /// Determine the kind of initialization sequence computed. enum SequenceKind getKind() const { return SequenceKind; } - /// \brief Set the kind of sequence computed. + /// Set the kind of sequence computed. void setSequenceKind(enum SequenceKind SK) { SequenceKind = SK; } - /// \brief Determine whether the initialization sequence is valid. + /// Determine whether the initialization sequence is valid. explicit operator bool() const { return !Failed(); } - /// \brief Determine whether the initialization sequence is invalid. + /// Determine whether the initialization sequence is invalid. bool Failed() const { return SequenceKind == FailedSequence; } using step_iterator = SmallVectorImpl<Step>::const_iterator; @@ -1164,18 +1164,18 @@ step_range steps() const { return {step_begin(), step_end()}; } - /// \brief Determine whether this initialization is a direct reference + /// Determine whether this initialization is a direct reference /// binding (C++ [dcl.init.ref]). bool isDirectReferenceBinding() const; - /// \brief Determine whether this initialization failed due to an ambiguity. + /// Determine whether this initialization failed due to an ambiguity. bool isAmbiguous() const; - /// \brief Determine whether this initialization is direct call to a + /// Determine whether this initialization is direct call to a /// constructor. bool isConstructorInitialization() const; - /// \brief Returns whether the last step in this initialization sequence is a + /// Returns whether the last step in this initialization sequence is a /// narrowing conversion, defined by C++0x [dcl.init.list]p7. /// /// If this function returns true, *isInitializerConstant will be set to @@ -1186,7 +1186,7 @@ bool *isInitializerConstant, APValue *ConstantValue) const; - /// \brief Add a new step in the initialization that resolves the address + /// Add a new step in the initialization that resolves the address /// of an overloaded function to a specific function declaration. /// /// \param Function the function to which the overloaded function reference @@ -1195,7 +1195,7 @@ DeclAccessPair Found, bool HadMultipleCandidates); - /// \brief Add a new step in the initialization that performs a derived-to- + /// Add a new step in the initialization that performs a derived-to- /// base cast. /// /// \param BaseType the base type to which we will be casting. @@ -1205,14 +1205,14 @@ void AddDerivedToBaseCastStep(QualType BaseType, ExprValueKind Category); - /// \brief Add a new step binding a reference to an object. + /// Add a new step binding a reference to an object. /// /// \param BindingTemporary True if we are binding a reference to a temporary /// object (thereby extending its lifetime); false if we are binding to an /// lvalue or an lvalue treated as an rvalue. void AddReferenceBindingStep(QualType T, bool BindingTemporary); - /// \brief Add a new step that makes an extraneous copy of the input + /// Add a new step that makes an extraneous copy of the input /// to a temporary of the same class type. /// /// This extraneous copy only occurs during reference binding in @@ -1224,40 +1224,40 @@ /// \param T The type of the temporary being created. void AddExtraneousCopyToTemporary(QualType T); - /// \brief Add a new step that makes a copy of the input to an object of + /// Add a new step that makes a copy of the input to an object of /// the given type, as the final step in class copy-initialization. void AddFinalCopy(QualType T); - /// \brief Add a new step invoking a conversion function, which is either + /// Add a new step invoking a conversion function, which is either /// a constructor or a conversion function. void AddUserConversionStep(FunctionDecl *Function, DeclAccessPair FoundDecl, QualType T, bool HadMultipleCandidates); - /// \brief Add a new step that performs a qualification conversion to the + /// Add a new step that performs a qualification conversion to the /// given type. void AddQualificationConversionStep(QualType Ty, ExprValueKind Category); - /// \brief Add a new step that performs conversion from non-atomic to atomic + /// Add a new step that performs conversion from non-atomic to atomic /// type. void AddAtomicConversionStep(QualType Ty); - /// \brief Add a new step that performs a load of the given type. + /// Add a new step that performs a load of the given type. /// /// Although the term "LValueToRValue" is conventional, this applies to both /// lvalues and xvalues. void AddLValueToRValueStep(QualType Ty); - /// \brief Add a new step that applies an implicit conversion sequence. + /// Add a new step that applies an implicit conversion sequence. void AddConversionSequenceStep(const ImplicitConversionSequence &ICS, QualType T, bool TopLevelOfInitList = false); - /// \brief Add a list-initialization step. + /// Add a list-initialization step. void AddListInitializationStep(QualType T); - /// \brief Add a constructor-initialization step. + /// Add a constructor-initialization step. /// /// \param FromInitList The constructor call is syntactically an initializer /// list. @@ -1268,59 +1268,59 @@ bool HadMultipleCandidates, bool FromInitList, bool AsInitList); - /// \brief Add a zero-initialization step. + /// Add a zero-initialization step. void AddZeroInitializationStep(QualType T); - /// \brief Add a C assignment step. + /// Add a C assignment step. // // FIXME: It isn't clear whether this should ever be needed; // ideally, we would handle everything needed in C in the common // path. However, that isn't the case yet. void AddCAssignmentStep(QualType T); - /// \brief Add a string init step. + /// Add a string init step. void AddStringInitStep(QualType T); - /// \brief Add an Objective-C object conversion step, which is + /// Add an Objective-C object conversion step, which is /// always a no-op. void AddObjCObjectConversionStep(QualType T); - /// \brief Add an array initialization loop step. + /// Add an array initialization loop step. void AddArrayInitLoopStep(QualType T, QualType EltTy); - /// \brief Add an array initialization step. + /// Add an array initialization step. void AddArrayInitStep(QualType T, bool IsGNUExtension); - /// \brief Add a parenthesized array initialization step. + /// Add a parenthesized array initialization step. void AddParenthesizedArrayInitStep(QualType T); - /// \brief Add a step to pass an object by indirect copy-restore. + /// Add a step to pass an object by indirect copy-restore. void AddPassByIndirectCopyRestoreStep(QualType T, bool shouldCopy); - /// \brief Add a step to "produce" an Objective-C object (by + /// Add a step to "produce" an Objective-C object (by /// retaining it). void AddProduceObjCObjectStep(QualType T); - /// \brief Add a step to construct a std::initializer_list object from an + /// Add a step to construct a std::initializer_list object from an /// initializer list. void AddStdInitializerListConstructionStep(QualType T); - /// \brief Add a step to initialize an OpenCL sampler from an integer + /// Add a step to initialize an OpenCL sampler from an integer /// constant. void AddOCLSamplerInitStep(QualType T); - /// \brief Add a step to initialize an OpenCL event_t from a NULL + /// Add a step to initialize an OpenCL event_t from a NULL /// constant. void AddOCLZeroEventStep(QualType T); - /// \brief Add a step to initialize an OpenCL queue_t from 0. + /// Add a step to initialize an OpenCL queue_t from 0. void AddOCLZeroQueueStep(QualType T); - /// \brief Add steps to unwrap a initializer list for a reference around a + /// Add steps to unwrap a initializer list for a reference around a /// single element and rewrap it at the end. void RewrapReferenceInitList(QualType T, InitListExpr *Syntactic); - /// \brief Note that this initialization sequence failed. + /// Note that this initialization sequence failed. void SetFailed(FailureKind Failure) { SequenceKind = FailedSequence; this->Failure = Failure; @@ -1328,40 +1328,40 @@ "Incomplete type failure requires a type!"); } - /// \brief Note that this initialization sequence failed due to failed + /// Note that this initialization sequence failed due to failed /// overload resolution. void SetOverloadFailure(FailureKind Failure, OverloadingResult Result); - /// \brief Retrieve a reference to the candidate set when overload + /// Retrieve a reference to the candidate set when overload /// resolution fails. OverloadCandidateSet &getFailedCandidateSet() { return FailedCandidateSet; } - /// \brief Get the overloading result, for when the initialization + /// Get the overloading result, for when the initialization /// sequence failed due to a bad overload. OverloadingResult getFailedOverloadResult() const { return FailedOverloadResult; } - /// \brief Note that this initialization sequence failed due to an + /// Note that this initialization sequence failed due to an /// incomplete type. void setIncompleteTypeFailure(QualType IncompleteType) { FailedIncompleteType = IncompleteType; SetFailed(FK_Incomplete); } - /// \brief Determine why initialization failed. + /// Determine why initialization failed. FailureKind getFailureKind() const { assert(Failed() && "Not an initialization failure!"); return Failure; } - /// \brief Dump a representation of this initialization sequence to + /// Dump a representation of this initialization sequence to /// the given stream, for debugging purposes. void dump(raw_ostream &OS) const; - /// \brief Dump a representation of this initialization sequence to + /// Dump a representation of this initialization sequence to /// standard error, for debugging purposes. void dump() const; }; Index: cfe/trunk/include/clang/Sema/Lookup.h =================================================================== --- cfe/trunk/include/clang/Sema/Lookup.h +++ cfe/trunk/include/clang/Sema/Lookup.h @@ -37,7 +37,7 @@ class CXXBasePaths; -/// @brief Represents the results of name lookup. +/// Represents the results of name lookup. /// /// An instance of the LookupResult class captures the results of a /// single name lookup, which can return no result (nothing found), @@ -47,28 +47,28 @@ class LookupResult { public: enum LookupResultKind { - /// @brief No entity found met the criteria. + /// No entity found met the criteria. NotFound = 0, - /// @brief No entity found met the criteria within the current + /// No entity found met the criteria within the current /// instantiation,, but there were dependent base classes of the /// current instantiation that could not be searched. NotFoundInCurrentInstantiation, - /// @brief Name lookup found a single declaration that met the + /// Name lookup found a single declaration that met the /// criteria. getFoundDecl() will return this declaration. Found, - /// @brief Name lookup found a set of overloaded functions that + /// Name lookup found a set of overloaded functions that /// met the criteria. FoundOverloaded, - /// @brief Name lookup found an unresolvable value declaration + /// Name lookup found an unresolvable value declaration /// and cannot yet complete. This only happens in C++ dependent /// contexts with dependent using declarations. FoundUnresolvedValue, - /// @brief Name lookup results in an ambiguity; use + /// Name lookup results in an ambiguity; use /// getAmbiguityKind to figure out what kind of ambiguity /// we have. Ambiguous @@ -232,7 +232,7 @@ return NameInfo; } - /// \brief Sets the name info to look up. + /// Sets the name info to look up. void setLookupNameInfo(const DeclarationNameInfo &NameInfo) { this->NameInfo = NameInfo; } @@ -242,7 +242,7 @@ return NameInfo.getName(); } - /// \brief Sets the name to look up. + /// Sets the name to look up. void setLookupName(DeclarationName Name) { NameInfo.setName(Name); } @@ -268,13 +268,13 @@ Redecl ? Sema::ForVisibleRedeclaration : Sema::NotForRedeclaration; } - /// \brief Specify whether hidden declarations are visible, e.g., + /// Specify whether hidden declarations are visible, e.g., /// for recovery reasons. void setAllowHidden(bool AH) { AllowHidden = AH; } - /// \brief Determine whether this lookup is permitted to see hidden + /// Determine whether this lookup is permitted to see hidden /// declarations, such as those in modules that have not yet been imported. bool isHiddenDeclarationVisible(NamedDecl *ND) const { return AllowHidden || @@ -324,16 +324,16 @@ iterator begin() const { return iterator(Decls.begin()); } iterator end() const { return iterator(Decls.end()); } - /// \brief Return true if no decls were found + /// Return true if no decls were found bool empty() const { return Decls.empty(); } - /// \brief Return the base paths structure that's associated with + /// Return the base paths structure that's associated with /// these results, or null if none is. CXXBasePaths *getBasePaths() const { return Paths; } - /// \brief Determine whether the given declaration is visible to the + /// Determine whether the given declaration is visible to the /// program. static bool isVisible(Sema &SemaRef, NamedDecl *D) { // If this declaration is not hidden, it's visible. @@ -345,7 +345,7 @@ return isVisibleSlow(SemaRef, D); } - /// \brief Retrieve the accepted (re)declaration of the given declaration, + /// Retrieve the accepted (re)declaration of the given declaration, /// if there is one. NamedDecl *getAcceptableDecl(NamedDecl *D) const { if (!D->isInIdentifierNamespace(IDNS)) @@ -362,18 +362,18 @@ NamedDecl *getAcceptableDeclSlow(NamedDecl *D) const; public: - /// \brief Returns the identifier namespace mask for this lookup. + /// Returns the identifier namespace mask for this lookup. unsigned getIdentifierNamespace() const { return IDNS; } - /// \brief Returns whether these results arose from performing a + /// Returns whether these results arose from performing a /// lookup into a class. bool isClassLookup() const { return NamingClass != nullptr; } - /// \brief Returns the 'naming class' for this lookup, i.e. the + /// Returns the 'naming class' for this lookup, i.e. the /// class which was looked into to find these results. /// /// C++0x [class.access.base]p5: @@ -393,72 +393,72 @@ return NamingClass; } - /// \brief Sets the 'naming class' for this lookup. + /// Sets the 'naming class' for this lookup. void setNamingClass(CXXRecordDecl *Record) { NamingClass = Record; } - /// \brief Returns the base object type associated with this lookup; + /// Returns the base object type associated with this lookup; /// important for [class.protected]. Most lookups do not have an /// associated base object. QualType getBaseObjectType() const { return BaseObjectType; } - /// \brief Sets the base object type for this lookup. + /// Sets the base object type for this lookup. void setBaseObjectType(QualType T) { BaseObjectType = T; } - /// \brief Add a declaration to these results with its natural access. + /// Add a declaration to these results with its natural access. /// Does not test the acceptance criteria. void addDecl(NamedDecl *D) { addDecl(D, D->getAccess()); } - /// \brief Add a declaration to these results with the given access. + /// Add a declaration to these results with the given access. /// Does not test the acceptance criteria. void addDecl(NamedDecl *D, AccessSpecifier AS) { Decls.addDecl(D, AS); ResultKind = Found; } - /// \brief Add all the declarations from another set of lookup + /// Add all the declarations from another set of lookup /// results. void addAllDecls(const LookupResult &Other) { Decls.append(Other.Decls.begin(), Other.Decls.end()); ResultKind = Found; } - /// \brief Determine whether no result was found because we could not + /// Determine whether no result was found because we could not /// search into dependent base classes of the current instantiation. bool wasNotFoundInCurrentInstantiation() const { return ResultKind == NotFoundInCurrentInstantiation; } - /// \brief Note that while no result was found in the current instantiation, + /// Note that while no result was found in the current instantiation, /// there were dependent base classes that could not be searched. void setNotFoundInCurrentInstantiation() { assert(ResultKind == NotFound && Decls.empty()); ResultKind = NotFoundInCurrentInstantiation; } - /// \brief Determine whether the lookup result was shadowed by some other + /// Determine whether the lookup result was shadowed by some other /// declaration that lookup ignored. bool isShadowed() const { return Shadowed; } - /// \brief Note that we found and ignored a declaration while performing + /// Note that we found and ignored a declaration while performing /// lookup. void setShadowed() { Shadowed = true; } - /// \brief Resolves the result kind of the lookup, possibly hiding + /// Resolves the result kind of the lookup, possibly hiding /// decls. /// /// This should be called in any environment where lookup might /// generate multiple lookup results. void resolveKind(); - /// \brief Re-resolves the result kind of the lookup after a set of + /// Re-resolves the result kind of the lookup after a set of /// removals has been performed. void resolveKindAfterFilter() { if (Decls.empty()) { @@ -498,7 +498,7 @@ return dyn_cast<DeclClass>(getFoundDecl()); } - /// \brief Fetch the unique decl found by this lookup. Asserts + /// Fetch the unique decl found by this lookup. Asserts /// that one was found. /// /// This is intended for users who have examined the result kind @@ -515,31 +515,31 @@ return *begin(); } - /// \brief Asks if the result is a single tag decl. + /// Asks if the result is a single tag decl. bool isSingleTagDecl() const { return getResultKind() == Found && isa<TagDecl>(getFoundDecl()); } - /// \brief Make these results show that the name was found in + /// Make these results show that the name was found in /// base classes of different types. /// /// The given paths object is copied and invalidated. void setAmbiguousBaseSubobjectTypes(CXXBasePaths &P); - /// \brief Make these results show that the name was found in + /// Make these results show that the name was found in /// distinct base classes of the same type. /// /// The given paths object is copied and invalidated. void setAmbiguousBaseSubobjects(CXXBasePaths &P); - /// \brief Make these results show that the name was found in + /// Make these results show that the name was found in /// different contexts and a tag decl was hidden by an ordinary /// decl in a different context. void setAmbiguousQualifiedTagHiding() { setAmbiguous(AmbiguousTagHiding); } - /// \brief Clears out any current state. + /// Clears out any current state. void clear() { ResultKind = NotFound; Decls.clear(); @@ -549,7 +549,7 @@ Shadowed = false; } - /// \brief Clears out any current state and re-initializes for a + /// Clears out any current state and re-initializes for a /// different kind of lookup. void clear(Sema::LookupNameKind Kind) { clear(); @@ -557,7 +557,7 @@ configure(); } - /// \brief Change this lookup's redeclaration kind. + /// Change this lookup's redeclaration kind. void setRedeclarationKind(Sema::RedeclarationKind RK) { Redecl = (RK != Sema::NotForRedeclaration); ExternalRedecl = (RK == Sema::ForExternalRedeclaration); @@ -596,7 +596,7 @@ return NameInfo.getLoc(); } - /// \brief Get the Sema object that this lookup result is searching + /// Get the Sema object that this lookup result is searching /// with. Sema &getSema() const { return *SemaPtr; } @@ -725,22 +725,22 @@ bool Redecl; bool ExternalRedecl; - /// \brief True if tag declarations should be hidden if non-tags + /// True if tag declarations should be hidden if non-tags /// are present bool HideTags = true; bool Diagnose = false; - /// \brief True if we should allow hidden declarations to be 'visible'. + /// True if we should allow hidden declarations to be 'visible'. bool AllowHidden = false; - /// \brief True if the found declarations were shadowed by some other + /// True if the found declarations were shadowed by some other /// declaration that we skipped. This only happens when \c LookupKind /// is \c LookupRedeclarationWithLinkage. bool Shadowed = false; }; -/// \brief Consumes visible declarations found when searching for +/// Consumes visible declarations found when searching for /// all visible names within a given scope or context. /// /// This abstract class is meant to be subclassed by clients of \c @@ -748,15 +748,15 @@ /// FoundDecl() function to process declarations as they are found. class VisibleDeclConsumer { public: - /// \brief Destroys the visible declaration consumer. + /// Destroys the visible declaration consumer. virtual ~VisibleDeclConsumer(); - /// \brief Determine whether hidden declarations (from unimported + /// Determine whether hidden declarations (from unimported /// modules) should be given to this consumer. By default, they /// are not included. virtual bool includeHiddenDecls() const; - /// \brief Invoked each time \p Sema::LookupVisibleDecls() finds a + /// Invoked each time \p Sema::LookupVisibleDecls() finds a /// declaration visible from the current scope or context. /// /// \param ND the declaration found. @@ -771,14 +771,14 @@ virtual void FoundDecl(NamedDecl *ND, NamedDecl *Hiding, DeclContext *Ctx, bool InBaseClass) = 0; - /// \brief Callback to inform the client that Sema entered into a new context + /// Callback to inform the client that Sema entered into a new context /// to find a visible declaration. // /// \param Ctx the context which Sema entered. virtual void EnteredContext(DeclContext *Ctx) {} }; -/// \brief A class for storing results from argument-dependent lookup. +/// A class for storing results from argument-dependent lookup. class ADLResult { private: /// A map from canonical decls to the 'most recent' decl. Index: cfe/trunk/include/clang/Sema/LoopHint.h =================================================================== --- cfe/trunk/include/clang/Sema/LoopHint.h +++ cfe/trunk/include/clang/Sema/LoopHint.h @@ -17,7 +17,7 @@ namespace clang { -/// \brief Loop optimization hint for loop and unroll pragmas. +/// Loop optimization hint for loop and unroll pragmas. struct LoopHint { // Source range of the directive. SourceRange Range; Index: cfe/trunk/include/clang/Sema/MultiplexExternalSemaSource.h =================================================================== --- cfe/trunk/include/clang/Sema/MultiplexExternalSemaSource.h +++ cfe/trunk/include/clang/Sema/MultiplexExternalSemaSource.h @@ -33,7 +33,7 @@ class VarDecl; -/// \brief An abstract interface that should be implemented by +/// An abstract interface that should be implemented by /// external AST sources that also provide information for semantic /// analysis. class MultiplexExternalSemaSource : public ExternalSemaSource { @@ -43,7 +43,7 @@ public: - ///\brief Constructs a new multiplexing external sema source and appends the + ///Constructs a new multiplexing external sema source and appends the /// given element to it. /// ///\param[in] s1 - A non-null (old) ExternalSemaSource. @@ -53,7 +53,7 @@ ~MultiplexExternalSemaSource() override; - ///\brief Appends new source to the source list. + ///Appends new source to the source list. /// ///\param[in] source - An ExternalSemaSource. /// @@ -63,45 +63,45 @@ // ExternalASTSource. //===--------------------------------------------------------------------===// - /// \brief Resolve a declaration ID into a declaration, potentially + /// Resolve a declaration ID into a declaration, potentially /// building a new declaration. Decl *GetExternalDecl(uint32_t ID) override; - /// \brief Complete the redeclaration chain if it's been extended since the + /// Complete the redeclaration chain if it's been extended since the /// previous generation of the AST source. void CompleteRedeclChain(const Decl *D) override; - /// \brief Resolve a selector ID into a selector. + /// Resolve a selector ID into a selector. Selector GetExternalSelector(uint32_t ID) override; - /// \brief Returns the number of selectors known to the external AST + /// Returns the number of selectors known to the external AST /// source. uint32_t GetNumExternalSelectors() override; - /// \brief Resolve the offset of a statement in the decl stream into + /// Resolve the offset of a statement in the decl stream into /// a statement. Stmt *GetExternalDeclStmt(uint64_t Offset) override; - /// \brief Resolve the offset of a set of C++ base specifiers in the decl + /// Resolve the offset of a set of C++ base specifiers in the decl /// stream into an array of specifiers. CXXBaseSpecifier *GetExternalCXXBaseSpecifiers(uint64_t Offset) override; - /// \brief Resolve a handle to a list of ctor initializers into the list of + /// Resolve a handle to a list of ctor initializers into the list of /// initializers themselves. CXXCtorInitializer **GetExternalCXXCtorInitializers(uint64_t Offset) override; ExtKind hasExternalDefinitions(const Decl *D) override; - /// \brief Find all declarations with the given name in the + /// Find all declarations with the given name in the /// given context. bool FindExternalVisibleDeclsByName(const DeclContext *DC, DeclarationName Name) override; - /// \brief Ensures that the table of all visible declarations inside this + /// Ensures that the table of all visible declarations inside this /// context is up to date. void completeVisibleDeclsMap(const DeclContext *DC) override; - /// \brief Finds all declarations lexically contained within the given + /// Finds all declarations lexically contained within the given /// DeclContext, after applying an optional filter predicate. /// /// \param IsKindWeWant a predicate function that returns true if the passed @@ -111,17 +111,17 @@ llvm::function_ref<bool(Decl::Kind)> IsKindWeWant, SmallVectorImpl<Decl *> &Result) override; - /// \brief Get the decls that are contained in a file in the Offset/Length + /// Get the decls that are contained in a file in the Offset/Length /// range. \p Length can be 0 to indicate a point at \p Offset instead of /// a range. void FindFileRegionDecls(FileID File, unsigned Offset,unsigned Length, SmallVectorImpl<Decl *> &Decls) override; - /// \brief Gives the external AST source an opportunity to complete + /// Gives the external AST source an opportunity to complete /// an incomplete type. void CompleteType(TagDecl *Tag) override; - /// \brief Gives the external AST source an opportunity to complete an + /// Gives the external AST source an opportunity to complete an /// incomplete Objective-C class. /// /// This routine will only be invoked if the "externally completed" bit is @@ -129,30 +129,30 @@ /// \c ObjCInterfaceDecl::setExternallyCompleted(). void CompleteType(ObjCInterfaceDecl *Class) override; - /// \brief Loads comment ranges. + /// Loads comment ranges. void ReadComments() override; - /// \brief Notify ExternalASTSource that we started deserialization of + /// Notify ExternalASTSource that we started deserialization of /// a decl or type so until FinishedDeserializing is called there may be /// decls that are initializing. Must be paired with FinishedDeserializing. void StartedDeserializing() override; - /// \brief Notify ExternalASTSource that we finished the deserialization of + /// Notify ExternalASTSource that we finished the deserialization of /// a decl or type. Must be paired with StartedDeserializing. void FinishedDeserializing() override; - /// \brief Function that will be invoked when we begin parsing a new + /// Function that will be invoked when we begin parsing a new /// translation unit involving this external AST source. void StartTranslationUnit(ASTConsumer *Consumer) override; - /// \brief Print any statistics that have been gathered regarding + /// Print any statistics that have been gathered regarding /// the external AST source. void PrintStats() override; - /// \brief Retrieve the module that corresponds to the given module ID. + /// Retrieve the module that corresponds to the given module ID. Module *getModule(unsigned ID) override; - /// \brief Perform layout on the given record. + /// Perform layout on the given record. /// /// This routine allows the external AST source to provide an specific /// layout for a record, overriding the layout that would normally be @@ -195,15 +195,15 @@ // ExternalSemaSource. //===--------------------------------------------------------------------===// - /// \brief Initialize the semantic source with the Sema instance + /// Initialize the semantic source with the Sema instance /// being used to perform semantic analysis on the abstract syntax /// tree. void InitializeSema(Sema &S) override; - /// \brief Inform the semantic consumer that Sema is no longer available. + /// Inform the semantic consumer that Sema is no longer available. void ForgetSema() override; - /// \brief Load the contents of the global method pool for a given + /// Load the contents of the global method pool for a given /// selector. void ReadMethodPool(Selector Sel) override; @@ -211,12 +211,12 @@ /// selector if necessary. void updateOutOfDateSelector(Selector Sel) override; - /// \brief Load the set of namespaces that are known to the external source, + /// Load the set of namespaces that are known to the external source, /// which will be used during typo correction. void ReadKnownNamespaces(SmallVectorImpl<NamespaceDecl*> &Namespaces) override; - /// \brief Load the set of used but not defined functions or variables with + /// Load the set of used but not defined functions or variables with /// internal linkage, or used but not defined inline functions. void ReadUndefinedButUsed( llvm::MapVector<NamedDecl *, SourceLocation> &Undefined) override; @@ -225,7 +225,7 @@ FieldDecl *, llvm::SmallVector<std::pair<SourceLocation, bool>, 4>> & Exprs) override; - /// \brief Do last resort, unqualified lookup on a LookupResult that + /// Do last resort, unqualified lookup on a LookupResult that /// Sema cannot find. /// /// \param R a LookupResult that is being recovered. @@ -235,7 +235,7 @@ /// \return true to tell Sema to recover using the LookupResult. bool LookupUnqualified(LookupResult &R, Scope *S) override; - /// \brief Read the set of tentative definitions known to the external Sema + /// Read the set of tentative definitions known to the external Sema /// source. /// /// The external source should append its own tentative definitions to the @@ -244,7 +244,7 @@ /// introduce the same declarations repeatedly. void ReadTentativeDefinitions(SmallVectorImpl<VarDecl*> &Defs) override; - /// \brief Read the set of unused file-scope declarations known to the + /// Read the set of unused file-scope declarations known to the /// external Sema source. /// /// The external source should append its own unused, filed-scope to the @@ -254,7 +254,7 @@ void ReadUnusedFileScopedDecls( SmallVectorImpl<const DeclaratorDecl*> &Decls) override; - /// \brief Read the set of delegating constructors known to the + /// Read the set of delegating constructors known to the /// external Sema source. /// /// The external source should append its own delegating constructors to the @@ -264,7 +264,7 @@ void ReadDelegatingConstructors( SmallVectorImpl<CXXConstructorDecl*> &Decls) override; - /// \brief Read the set of ext_vector type declarations known to the + /// Read the set of ext_vector type declarations known to the /// external Sema source. /// /// The external source should append its own ext_vector type declarations to @@ -273,7 +273,7 @@ /// introduce the same declarations repeatedly. void ReadExtVectorDecls(SmallVectorImpl<TypedefNameDecl*> &Decls) override; - /// \brief Read the set of potentially unused typedefs known to the source. + /// Read the set of potentially unused typedefs known to the source. /// /// The external source should append its own potentially unused local /// typedefs to the given vector of declarations. Note that this routine may @@ -282,7 +282,7 @@ void ReadUnusedLocalTypedefNameCandidates( llvm::SmallSetVector<const TypedefNameDecl *, 4> &Decls) override; - /// \brief Read the set of referenced selectors known to the + /// Read the set of referenced selectors known to the /// external Sema source. /// /// The external source should append its own referenced selectors to the @@ -292,7 +292,7 @@ void ReadReferencedSelectors(SmallVectorImpl<std::pair<Selector, SourceLocation> > &Sels) override; - /// \brief Read the set of weak, undeclared identifiers known to the + /// Read the set of weak, undeclared identifiers known to the /// external Sema source. /// /// The external source should append its own weak, undeclared identifiers to @@ -302,14 +302,14 @@ void ReadWeakUndeclaredIdentifiers( SmallVectorImpl<std::pair<IdentifierInfo*, WeakInfo> > &WI) override; - /// \brief Read the set of used vtables known to the external Sema source. + /// Read the set of used vtables known to the external Sema source. /// /// The external source should append its own used vtables to the given /// vector. Note that this routine may be invoked multiple times; the external /// source should take care not to introduce the same vtables repeatedly. void ReadUsedVTables(SmallVectorImpl<ExternalVTableUse> &VTables) override; - /// \brief Read the set of pending instantiations known to the external + /// Read the set of pending instantiations known to the external /// Sema source. /// /// The external source should append its own pending instantiations to the @@ -319,7 +319,7 @@ void ReadPendingInstantiations( SmallVectorImpl<std::pair<ValueDecl*, SourceLocation> >& Pending) override; - /// \brief Read the set of late parsed template functions for this source. + /// Read the set of late parsed template functions for this source. /// /// The external source should insert its own late parsed template functions /// into the map. Note that this routine may be invoked multiple times; the @@ -338,7 +338,7 @@ bool EnteringContext, const ObjCObjectPointerType *OPT) override; - /// \brief Produces a diagnostic note if one of the attached sources + /// Produces a diagnostic note if one of the attached sources /// contains a complete definition for \p T. Queries the sources in list /// order until the first one claims that a diagnostic was produced. /// Index: cfe/trunk/include/clang/Sema/ObjCMethodList.h =================================================================== --- cfe/trunk/include/clang/Sema/ObjCMethodList.h +++ cfe/trunk/include/clang/Sema/ObjCMethodList.h @@ -21,13 +21,13 @@ class ObjCMethodDecl; -/// \brief a linked list of methods with the same selector name but different +/// a linked list of methods with the same selector name but different /// signatures. struct ObjCMethodList { // NOTE: If you add any members to this struct, make sure to serialize them. - /// \brief If there is more than one decl with this signature. + /// If there is more than one decl with this signature. llvm::PointerIntPair<ObjCMethodDecl *, 1> MethodAndHasMoreThanOneDecl; - /// \brief The next list object and 2 bits for extra info. + /// The next list object and 2 bits for extra info. llvm::PointerIntPair<ObjCMethodList *, 2> NextAndExtraBits; ObjCMethodList() { } Index: cfe/trunk/include/clang/Sema/Overload.h =================================================================== --- cfe/trunk/include/clang/Sema/Overload.h +++ cfe/trunk/include/clang/Sema/Overload.h @@ -244,12 +244,12 @@ /// or a function conversion. ImplicitConversionKind Third : 8; - /// \brief Whether this is the deprecated conversion of a + /// Whether this is the deprecated conversion of a /// string literal to a pointer to non-const character data /// (C++ 4.2p2). unsigned DeprecatedStringLiteralToCharPtr : 1; - /// \brief Whether the qualification conversion involves a change in the + /// Whether the qualification conversion involves a change in the /// Objective-C lifetime (for automatic reference counting). unsigned QualificationIncludesObjCLifetime : 1; @@ -265,21 +265,21 @@ /// direct binding (C++ [dcl.init.ref]). unsigned DirectBinding : 1; - /// \brief Whether this is an lvalue reference binding (otherwise, it's + /// Whether this is an lvalue reference binding (otherwise, it's /// an rvalue reference binding). unsigned IsLvalueReference : 1; - /// \brief Whether we're binding to a function lvalue. + /// Whether we're binding to a function lvalue. unsigned BindsToFunctionLvalue : 1; - /// \brief Whether we're binding to an rvalue. + /// Whether we're binding to an rvalue. unsigned BindsToRvalue : 1; - /// \brief Whether this binds an implicit object argument to a + /// Whether this binds an implicit object argument to a /// non-static member function without a ref-qualifier. unsigned BindsImplicitObjectArgumentWithoutRefQualifier : 1; - /// \brief Whether this binds a reference to an object with a different + /// Whether this binds a reference to an object with a different /// Objective-C lifetime qualifier. unsigned ObjCLifetimeConversionBinding : 1; @@ -342,7 +342,7 @@ /// UserDefinedConversionSequence - Represents a user-defined /// conversion sequence (C++ 13.3.3.1.2). struct UserDefinedConversionSequence { - /// \brief Represents the standard conversion that occurs before + /// Represents the standard conversion that occurs before /// the actual user-defined conversion. /// /// C++11 13.3.3.1.2p1: @@ -377,7 +377,7 @@ /// aggregate initialization from an initializer list. FunctionDecl* ConversionFunction; - /// \brief The declaration that we found via name lookup, which might be + /// The declaration that we found via name lookup, which might be /// the same as \c ConversionFunction or it might be a using declaration /// that refers to \c ConversionFunction. DeclAccessPair FoundConversionFunction; @@ -506,7 +506,7 @@ /// ConversionKind - The kind of implicit conversion sequence. unsigned ConversionKind : 30; - /// \brief Whether the target is really a std::initializer_list, and the + /// Whether the target is really a std::initializer_list, and the /// sequence only represents the worst element conversion. unsigned StdInitializerListElement : 1; @@ -572,7 +572,7 @@ return Kind(ConversionKind); } - /// \brief Return a ranking of the implicit conversion sequence + /// Return a ranking of the implicit conversion sequence /// kind, where smaller ranks represent better conversion /// sequences. /// @@ -641,7 +641,7 @@ Standard.setAllToTypes(T); } - /// \brief Whether the target is really a std::initializer_list, and the + /// Whether the target is really a std::initializer_list, and the /// sequence only represents the worst element conversion. bool isStdInitializerListElement() const { return StdInitializerListElement; @@ -775,7 +775,7 @@ /// Actually an OverloadFailureKind. unsigned char FailureKind; - /// \brief The number of call arguments that were explicitly provided, + /// The number of call arguments that were explicitly provided, /// to be used while performing partial ordering of function templates. unsigned ExplicitCallArguments; @@ -905,13 +905,13 @@ SourceLocation getLocation() const { return Loc; } CandidateSetKind getKind() const { return Kind; } - /// \brief Determine when this overload candidate will be new to the + /// Determine when this overload candidate will be new to the /// overload set. bool isNewCandidate(Decl *F) { return Functions.insert(F->getCanonicalDecl()).second; } - /// \brief Clear out all of the candidates. + /// Clear out all of the candidates. void clear(CandidateSetKind CSK); using iterator = SmallVectorImpl<OverloadCandidate>::iterator; @@ -922,7 +922,7 @@ size_t size() const { return Candidates.size(); } bool empty() const { return Candidates.empty(); } - /// \brief Allocate storage for conversion sequences for NumConversions + /// Allocate storage for conversion sequences for NumConversions /// conversions. ConversionSequenceList allocateConversionSequences(unsigned NumConversions) { @@ -936,7 +936,7 @@ return ConversionSequenceList(Conversions, NumConversions); } - /// \brief Add a new candidate with NumConversions conversion sequence slots + /// Add a new candidate with NumConversions conversion sequence slots /// to the overload set. OverloadCandidate &addCandidate(unsigned NumConversions = 0, ConversionSequenceList Conversions = None) { Index: cfe/trunk/include/clang/Sema/Ownership.h =================================================================== --- cfe/trunk/include/clang/Sema/Ownership.h +++ cfe/trunk/include/clang/Sema/Ownership.h @@ -39,7 +39,7 @@ class TemplateName; class TemplateParameterList; - /// \brief Wrapper for void* pointer. + /// Wrapper for void* pointer. /// \tparam PtrTy Either a pointer type like 'T*' or a type that behaves like /// a pointer. /// @@ -60,7 +60,7 @@ static OpaquePtr make(PtrTy P) { OpaquePtr OP; OP.set(P); return OP; } - /// \brief Returns plain pointer to the entity pointed by this wrapper. + /// Returns plain pointer to the entity pointed by this wrapper. /// \tparam PointeeT Type of pointed entity. /// /// It is identical to getPtrAs<PointeeT*>. @@ -68,7 +68,7 @@ return get(); } - /// \brief Returns pointer converted to the specified type. + /// Returns pointer converted to the specified type. /// \tparam PtrT Result pointer type. There must be implicit conversion /// from PtrTy to PtrT. /// Index: cfe/trunk/include/clang/Sema/ParsedTemplate.h =================================================================== --- cfe/trunk/include/clang/Sema/ParsedTemplate.h +++ cfe/trunk/include/clang/Sema/ParsedTemplate.h @@ -26,32 +26,32 @@ #include <new> namespace clang { - /// \brief Represents the parsed form of a C++ template argument. + /// Represents the parsed form of a C++ template argument. class ParsedTemplateArgument { public: - /// \brief Describes the kind of template argument that was parsed. + /// Describes the kind of template argument that was parsed. enum KindType { - /// \brief A template type parameter, stored as a type. + /// A template type parameter, stored as a type. Type, - /// \brief A non-type template parameter, stored as an expression. + /// A non-type template parameter, stored as an expression. NonType, - /// \brief A template template argument, stored as a template name. + /// A template template argument, stored as a template name. Template }; - /// \brief Build an empty template argument. + /// Build an empty template argument. /// /// This template argument is invalid. ParsedTemplateArgument() : Kind(Type), Arg(nullptr) { } - /// \brief Create a template type argument or non-type template argument. + /// Create a template type argument or non-type template argument. /// /// \param Arg the template type argument or non-type template argument. /// \param Loc the location of the type. ParsedTemplateArgument(KindType Kind, void *Arg, SourceLocation Loc) : Kind(Kind), Arg(Arg), Loc(Loc) { } - /// \brief Create a template template argument. + /// Create a template template argument. /// /// \param SS the C++ scope specifier that precedes the template name, if /// any. @@ -67,34 +67,34 @@ Arg(Template.getAsOpaquePtr()), SS(SS), Loc(TemplateLoc), EllipsisLoc() { } - /// \brief Determine whether the given template argument is invalid. + /// Determine whether the given template argument is invalid. bool isInvalid() const { return Arg == nullptr; } - /// \brief Determine what kind of template argument we have. + /// Determine what kind of template argument we have. KindType getKind() const { return Kind; } - /// \brief Retrieve the template type argument's type. + /// Retrieve the template type argument's type. ParsedType getAsType() const { assert(Kind == Type && "Not a template type argument"); return ParsedType::getFromOpaquePtr(Arg); } - /// \brief Retrieve the non-type template argument's expression. + /// Retrieve the non-type template argument's expression. Expr *getAsExpr() const { assert(Kind == NonType && "Not a non-type template argument"); return static_cast<Expr*>(Arg); } - /// \brief Retrieve the template template argument's template name. + /// Retrieve the template template argument's template name. ParsedTemplateTy getAsTemplate() const { assert(Kind == Template && "Not a template template argument"); return ParsedTemplateTy::getFromOpaquePtr(Arg); } - /// \brief Retrieve the location of the template argument. + /// Retrieve the location of the template argument. SourceLocation getLocation() const { return Loc; } - /// \brief Retrieve the nested-name-specifier that precedes the template + /// Retrieve the nested-name-specifier that precedes the template /// name in a template template argument. const CXXScopeSpec &getScopeSpec() const { assert(Kind == Template && @@ -102,7 +102,7 @@ return SS; } - /// \brief Retrieve the location of the ellipsis that makes a template + /// Retrieve the location of the ellipsis that makes a template /// template argument into a pack expansion. SourceLocation getEllipsisLoc() const { assert(Kind == Template && @@ -110,7 +110,7 @@ return EllipsisLoc; } - /// \brief Retrieve a pack expansion of the given template template + /// Retrieve a pack expansion of the given template template /// argument. /// /// \param EllipsisLoc The location of the ellipsis. @@ -120,24 +120,24 @@ private: KindType Kind; - /// \brief The actual template argument representation, which may be + /// The actual template argument representation, which may be /// an \c Sema::TypeTy* (for a type), an Expr* (for an /// expression), or an Sema::TemplateTy (for a template). void *Arg; - /// \brief The nested-name-specifier that can accompany a template template + /// The nested-name-specifier that can accompany a template template /// argument. CXXScopeSpec SS; - /// \brief the location of the template argument. + /// the location of the template argument. SourceLocation Loc; - /// \brief The ellipsis location that can accompany a template template + /// The ellipsis location that can accompany a template template /// argument (turning it into a template template argument expansion). SourceLocation EllipsisLoc; }; - /// \brief Information about a template-id annotation + /// Information about a template-id annotation /// token. /// /// A template-id annotation token contains the template declaration, @@ -149,7 +149,7 @@ : private llvm::TrailingObjects<TemplateIdAnnotation, ParsedTemplateArgument> { friend TrailingObjects; - /// \brief The nested-name-specifier that precedes the template name. + /// The nested-name-specifier that precedes the template name. CXXScopeSpec SS; /// TemplateKWLoc - The location of the template keyword. @@ -184,12 +184,12 @@ /// NumArgs - The number of template arguments. unsigned NumArgs; - /// \brief Retrieves a pointer to the template arguments + /// Retrieves a pointer to the template arguments ParsedTemplateArgument *getTemplateArgs() { return getTrailingObjects<ParsedTemplateArgument>(); } - /// \brief Creates a new TemplateIdAnnotation with NumArgs arguments and + /// Creates a new TemplateIdAnnotation with NumArgs arguments and /// appends it to List. static TemplateIdAnnotation * Create(CXXScopeSpec SS, SourceLocation TemplateKWLoc, Index: cfe/trunk/include/clang/Sema/Scope.h =================================================================== --- cfe/trunk/include/clang/Sema/Scope.h +++ cfe/trunk/include/clang/Sema/Scope.h @@ -42,74 +42,74 @@ /// ScopeFlags - These are bitfields that are or'd together when creating a /// scope, which defines the sorts of things the scope contains. enum ScopeFlags { - /// \brief This indicates that the scope corresponds to a function, which + /// This indicates that the scope corresponds to a function, which /// means that labels are set here. FnScope = 0x01, - /// \brief This is a while, do, switch, for, etc that can have break + /// This is a while, do, switch, for, etc that can have break /// statements embedded into it. BreakScope = 0x02, - /// \brief This is a while, do, for, which can have continue statements + /// This is a while, do, for, which can have continue statements /// embedded into it. ContinueScope = 0x04, - /// \brief This is a scope that can contain a declaration. Some scopes + /// This is a scope that can contain a declaration. Some scopes /// just contain loop constructs but don't contain decls. DeclScope = 0x08, - /// \brief The controlling scope in a if/switch/while/for statement. + /// The controlling scope in a if/switch/while/for statement. ControlScope = 0x10, - /// \brief The scope of a struct/union/class definition. + /// The scope of a struct/union/class definition. ClassScope = 0x20, - /// \brief This is a scope that corresponds to a block/closure object. + /// This is a scope that corresponds to a block/closure object. /// Blocks serve as top-level scopes for some objects like labels, they /// also prevent things like break and continue. BlockScopes always have /// the FnScope and DeclScope flags set as well. BlockScope = 0x40, - /// \brief This is a scope that corresponds to the + /// This is a scope that corresponds to the /// template parameters of a C++ template. Template parameter /// scope starts at the 'template' keyword and ends when the /// template declaration ends. TemplateParamScope = 0x80, - /// \brief This is a scope that corresponds to the + /// This is a scope that corresponds to the /// parameters within a function prototype. FunctionPrototypeScope = 0x100, - /// \brief This is a scope that corresponds to the parameters within + /// This is a scope that corresponds to the parameters within /// a function prototype for a function declaration (as opposed to any /// other kind of function declarator). Always has FunctionPrototypeScope /// set as well. FunctionDeclarationScope = 0x200, - /// \brief This is a scope that corresponds to the Objective-C + /// This is a scope that corresponds to the Objective-C /// \@catch statement. AtCatchScope = 0x400, - /// \brief This scope corresponds to an Objective-C method body. + /// This scope corresponds to an Objective-C method body. /// It always has FnScope and DeclScope set as well. ObjCMethodScope = 0x800, - /// \brief This is a scope that corresponds to a switch statement. + /// This is a scope that corresponds to a switch statement. SwitchScope = 0x1000, - /// \brief This is the scope of a C++ try statement. + /// This is the scope of a C++ try statement. TryScope = 0x2000, - /// \brief This is the scope for a function-level C++ try or catch scope. + /// This is the scope for a function-level C++ try or catch scope. FnTryCatchScope = 0x4000, - /// \brief This is the scope of OpenMP executable directive. + /// This is the scope of OpenMP executable directive. OpenMPDirectiveScope = 0x8000, - /// \brief This is the scope of some OpenMP loop directive. + /// This is the scope of some OpenMP loop directive. OpenMPLoopDirectiveScope = 0x10000, - /// \brief This is the scope of some OpenMP simd directive. + /// This is the scope of some OpenMP simd directive. /// For example, it is used for 'omp simd', 'omp for simd'. /// This flag is propagated to children scopes. OpenMPSimdDirectiveScope = 0x20000, @@ -146,7 +146,7 @@ /// depth 0. unsigned short Depth; - /// \brief Declarations with static linkage are mangled with the number of + /// Declarations with static linkage are mangled with the number of /// scopes seen as a component. unsigned short MSLastManglingNumber; @@ -198,7 +198,7 @@ using UsingDirectivesTy = SmallVector<UsingDirectiveDecl *, 2>; UsingDirectivesTy UsingDirectives; - /// \brief Used to determine if errors occurred in this scope. + /// Used to determine if errors occurred in this scope. DiagnosticErrorTrap ErrorTrap; /// A lattice consisting of undefined, a single NRVO candidate variable in @@ -401,12 +401,12 @@ return false; } - /// \brief Determines whether this scope is the OpenMP directive scope + /// Determines whether this scope is the OpenMP directive scope bool isOpenMPDirectiveScope() const { return (getFlags() & Scope::OpenMPDirectiveScope); } - /// \brief Determine whether this scope is some OpenMP loop directive scope + /// Determine whether this scope is some OpenMP loop directive scope /// (for example, 'omp for', 'omp simd'). bool isOpenMPLoopDirectiveScope() const { if (getFlags() & Scope::OpenMPLoopDirectiveScope) { @@ -417,34 +417,34 @@ return false; } - /// \brief Determine whether this scope is (or is nested into) some OpenMP + /// Determine whether this scope is (or is nested into) some OpenMP /// loop simd directive scope (for example, 'omp simd', 'omp for simd'). bool isOpenMPSimdDirectiveScope() const { return getFlags() & Scope::OpenMPSimdDirectiveScope; } - /// \brief Determine whether this scope is a loop having OpenMP loop + /// Determine whether this scope is a loop having OpenMP loop /// directive attached. bool isOpenMPLoopScope() const { const Scope *P = getParent(); return P && P->isOpenMPLoopDirectiveScope(); } - /// \brief Determine whether this scope is a C++ 'try' block. + /// Determine whether this scope is a C++ 'try' block. bool isTryScope() const { return getFlags() & Scope::TryScope; } - /// \brief Determine whether this scope is a SEH '__try' block. + /// Determine whether this scope is a SEH '__try' block. bool isSEHTryScope() const { return getFlags() & Scope::SEHTryScope; } - /// \brief Determine whether this scope is a SEH '__except' block. + /// Determine whether this scope is a SEH '__except' block. bool isSEHExceptScope() const { return getFlags() & Scope::SEHExceptScope; } - /// \brief Determine whether this scope is a compound statement scope. + /// Determine whether this scope is a compound statement scope. bool isCompoundStmtScope() const { return getFlags() & Scope::CompoundStmtScope; } - /// \brief Returns if rhs has a higher scope depth than this. + /// Returns if rhs has a higher scope depth than this. /// /// The caller is responsible for calling this only if one of the two scopes /// is an ancestor of the other. @@ -487,7 +487,7 @@ /// Init - This is used by the parser to implement scope caching. void Init(Scope *parent, unsigned flags); - /// \brief Sets up the specified scope flags and adjusts the scope state + /// Sets up the specified scope flags and adjusts the scope state /// variables accordingly. void AddFlags(unsigned Flags); Index: cfe/trunk/include/clang/Sema/ScopeInfo.h =================================================================== --- cfe/trunk/include/clang/Sema/ScopeInfo.h +++ cfe/trunk/include/clang/Sema/ScopeInfo.h @@ -61,15 +61,15 @@ namespace sema { -/// \brief Contains information about the compound statement currently being +/// Contains information about the compound statement currently being /// parsed. class CompoundScopeInfo { public: - /// \brief Whether this compound stamement contains `for' or `while' loops + /// Whether this compound stamement contains `for' or `while' loops /// with empty bodies. bool HasEmptyLoopBodies = false; - /// \brief Whether this compound statement corresponds to a GNU statement + /// Whether this compound statement corresponds to a GNU statement /// expression. bool IsStmtExpr; @@ -91,7 +91,7 @@ : PD(PD), Loc(Loc), stmt(stmt) {} }; -/// \brief Retains information about a function, method, or block that is +/// Retains information about a function, method, or block that is /// currently being parsed. class FunctionScopeInfo { protected: @@ -103,29 +103,29 @@ }; public: - /// \brief What kind of scope we are describing. + /// What kind of scope we are describing. ScopeKind Kind : 3; - /// \brief Whether this function contains a VLA, \@try, try, C++ + /// Whether this function contains a VLA, \@try, try, C++ /// initializer, or anything else that can't be jumped past. bool HasBranchProtectedScope : 1; - /// \brief Whether this function contains any switches or direct gotos. + /// Whether this function contains any switches or direct gotos. bool HasBranchIntoScope : 1; - /// \brief Whether this function contains any indirect gotos. + /// Whether this function contains any indirect gotos. bool HasIndirectGoto : 1; - /// \brief Whether a statement was dropped because it was invalid. + /// Whether a statement was dropped because it was invalid. bool HasDroppedStmt : 1; - /// \brief True if current scope is for OpenMP declare reduction combiner. + /// True if current scope is for OpenMP declare reduction combiner. bool HasOMPDeclareReductionCombiner : 1; - /// \brief Whether there is a fallthrough statement in this function. + /// Whether there is a fallthrough statement in this function. bool HasFallthroughStmt : 1; - /// \brief Whether we make reference to a declaration that could be + /// Whether we make reference to a declaration that could be /// unavailable. bool HasPotentialAvailabilityViolations : 1; @@ -151,11 +151,11 @@ /// false if there is an invocation of an initializer on 'self'. bool ObjCWarnForNoInitDelegation : 1; - /// \brief True only when this function has not already built, or attempted + /// True only when this function has not already built, or attempted /// to build, the initial and final coroutine suspend points bool NeedsCoroutineSuspends : 1; - /// \brief An enumeration represeting the kind of the first coroutine statement + /// An enumeration represeting the kind of the first coroutine statement /// in the function. One of co_return, co_await, or co_yield. unsigned char FirstCoroutineStmtKind : 2; @@ -172,38 +172,38 @@ /// First SEH '__try' statement in the current function. SourceLocation FirstSEHTryLoc; - /// \brief Used to determine if errors occurred in this function or block. + /// Used to determine if errors occurred in this function or block. DiagnosticErrorTrap ErrorTrap; /// SwitchStack - This is the current set of active switch statements in the /// block. SmallVector<SwitchStmt*, 8> SwitchStack; - /// \brief The list of return statements that occur within the function or + /// The list of return statements that occur within the function or /// block, if there is any chance of applying the named return value /// optimization, or if we need to infer a return type. SmallVector<ReturnStmt*, 4> Returns; - /// \brief The promise object for this coroutine, if any. + /// The promise object for this coroutine, if any. VarDecl *CoroutinePromise = nullptr; - /// \brief A mapping between the coroutine function parameters that were moved + /// A mapping between the coroutine function parameters that were moved /// to the coroutine frame, and their move statements. llvm::SmallMapVector<ParmVarDecl *, Stmt *, 4> CoroutineParameterMoves; - /// \brief The initial and final coroutine suspend points. + /// The initial and final coroutine suspend points. std::pair<Stmt *, Stmt *> CoroutineSuspends; - /// \brief The stack of currently active compound stamement scopes in the + /// The stack of currently active compound stamement scopes in the /// function. SmallVector<CompoundScopeInfo, 4> CompoundScopes; - /// \brief A list of PartialDiagnostics created but delayed within the + /// A list of PartialDiagnostics created but delayed within the /// current function scope. These diagnostics are vetted for reachability /// prior to being emitted. SmallVector<PossiblyUnreachableDiag, 4> PossiblyUnreachableDiags; - /// \brief A list of parameters which have the nonnull attribute and are + /// A list of parameters which have the nonnull attribute and are /// modified in the function. llvm::SmallPtrSet<const ParmVarDecl *, 8> ModifiedNonNullParams; @@ -464,7 +464,7 @@ CoroutineSuspends.second = Final; } - /// \brief Clear out the information in this function scope, making it + /// Clear out the information in this function scope, making it /// suitable for reuse. void Clear(); }; @@ -501,21 +501,21 @@ /// a non-trivial copy constructor. llvm::PointerIntPair<void *, 2, CaptureKind> InitExprAndCaptureKind; - /// \brief The source location at which the first capture occurred. + /// The source location at which the first capture occurred. SourceLocation Loc; - /// \brief The location of the ellipsis that expands a parameter pack. + /// The location of the ellipsis that expands a parameter pack. SourceLocation EllipsisLoc; - /// \brief The type as it was captured, which is in effect the type of the + /// The type as it was captured, which is in effect the type of the /// non-static data member that would hold the capture. QualType CaptureType; - /// \brief Whether an explicit capture has been odr-used in the body of the + /// Whether an explicit capture has been odr-used in the body of the /// lambda. bool ODRUsed = false; - /// \brief Whether an explicit capture has been non-odr-used in the body of + /// Whether an explicit capture has been non-odr-used in the body of /// the lambda. bool NonODRUsed = false; @@ -574,14 +574,14 @@ return VarAndNestedAndThis.getPointer(); } - /// \brief Retrieve the location at which this variable was captured. + /// Retrieve the location at which this variable was captured. SourceLocation getLocation() const { return Loc; } - /// \brief Retrieve the source location of the ellipsis, whose presence + /// Retrieve the source location of the ellipsis, whose presence /// indicates that the capture is a pack expansion. SourceLocation getEllipsisLoc() const { return EllipsisLoc; } - /// \brief Retrieve the capture type for this capture, which is effectively + /// Retrieve the capture type for this capture, which is effectively /// the type of the non-static data member in the lambda/block structure /// that would store this capture. QualType getCaptureType() const { @@ -620,7 +620,7 @@ /// Captures - The captures. SmallVector<Capture, 4> Captures; - /// \brief - Whether the target type of return statements in this context + /// - Whether the target type of return statements in this context /// is deduced (e.g. a lambda or block with omitted return type). bool HasImplicitReturnType = false; @@ -649,24 +649,24 @@ void addThisCapture(bool isNested, SourceLocation Loc, Expr *Cpy, bool ByCopy); - /// \brief Determine whether the C++ 'this' is captured. + /// Determine whether the C++ 'this' is captured. bool isCXXThisCaptured() const { return CXXThisCaptureIndex != 0; } - /// \brief Retrieve the capture of C++ 'this', if it has been captured. + /// Retrieve the capture of C++ 'this', if it has been captured. Capture &getCXXThisCapture() { assert(isCXXThisCaptured() && "this has not been captured"); return Captures[CXXThisCaptureIndex - 1]; } - /// \brief Determine whether the given variable has been captured. + /// Determine whether the given variable has been captured. bool isCaptured(VarDecl *Var) const { return CaptureMap.count(Var); } - /// \brief Determine whether the given variable-array type has been captured. + /// Determine whether the given variable-array type has been captured. bool isVLATypeCaptured(const VariableArrayType *VAT) const; - /// \brief Retrieve the capture of the given variable, if it has been + /// Retrieve the capture of the given variable, if it has been /// captured already. Capture &getCapture(VarDecl *Var) { assert(isCaptured(Var) && "Variable has not been captured"); @@ -686,7 +686,7 @@ } }; -/// \brief Retains information about a block that is currently being parsed. +/// Retains information about a block that is currently being parsed. class BlockScopeInfo final : public CapturingScopeInfo { public: BlockDecl *TheDecl; @@ -712,22 +712,22 @@ } }; -/// \brief Retains information about a captured region. +/// Retains information about a captured region. class CapturedRegionScopeInfo final : public CapturingScopeInfo { public: - /// \brief The CapturedDecl for this statement. + /// The CapturedDecl for this statement. CapturedDecl *TheCapturedDecl; - /// \brief The captured record type. + /// The captured record type. RecordDecl *TheRecordDecl; - /// \brief This is the enclosing scope of the captured region. + /// This is the enclosing scope of the captured region. Scope *TheScope; - /// \brief The implicit parameter for the captured variables. + /// The implicit parameter for the captured variables. ImplicitParamDecl *ContextParam; - /// \brief The kind of captured region. + /// The kind of captured region. unsigned short CapRegionKind; unsigned short OpenMPLevel; @@ -743,7 +743,7 @@ ~CapturedRegionScopeInfo() override; - /// \brief A descriptive name for the kind of captured region this is. + /// A descriptive name for the kind of captured region this is. StringRef getRegionName() const { switch (CapRegionKind) { case CR_Default: @@ -761,40 +761,40 @@ class LambdaScopeInfo final : public CapturingScopeInfo { public: - /// \brief The class that describes the lambda. + /// The class that describes the lambda. CXXRecordDecl *Lambda = nullptr; - /// \brief The lambda's compiler-generated \c operator(). + /// The lambda's compiler-generated \c operator(). CXXMethodDecl *CallOperator = nullptr; - /// \brief Source range covering the lambda introducer [...]. + /// Source range covering the lambda introducer [...]. SourceRange IntroducerRange; - /// \brief Source location of the '&' or '=' specifying the default capture + /// Source location of the '&' or '=' specifying the default capture /// type, if any. SourceLocation CaptureDefaultLoc; - /// \brief The number of captures in the \c Captures list that are + /// The number of captures in the \c Captures list that are /// explicit captures. unsigned NumExplicitCaptures = 0; - /// \brief Whether this is a mutable lambda. + /// Whether this is a mutable lambda. bool Mutable = false; - /// \brief Whether the (empty) parameter list is explicit. + /// Whether the (empty) parameter list is explicit. bool ExplicitParams = false; - /// \brief Whether any of the capture expressions requires cleanups. + /// Whether any of the capture expressions requires cleanups. CleanupInfo Cleanup; - /// \brief Whether the lambda contains an unexpanded parameter pack. + /// Whether the lambda contains an unexpanded parameter pack. bool ContainsUnexpandedParameterPack = false; - /// \brief If this is a generic lambda, use this as the depth of + /// If this is a generic lambda, use this as the depth of /// each 'auto' parameter, during initial AST construction. unsigned AutoTemplateParameterDepth = 0; - /// \brief Store the list of the auto parameters for a generic lambda. + /// Store the list of the auto parameters for a generic lambda. /// If this is a generic lambda, store the list of the auto /// parameters converted into TemplateTypeParmDecls into a vector /// that can be used to construct the generic lambda's template @@ -806,7 +806,7 @@ /// store a reference to it (cache it to avoid reconstructing it). TemplateParameterList *GLTemplateParameterList = nullptr; - /// \brief Contains all variable-referring-expressions (i.e. DeclRefExprs + /// Contains all variable-referring-expressions (i.e. DeclRefExprs /// or MemberExprs) that refer to local variables in a generic lambda /// or a lambda in a potentially-evaluated-if-used context. /// @@ -821,7 +821,7 @@ /// enclosing lambda if all intervening lambdas can capture the variable. llvm::SmallVector<Expr*, 4> PotentiallyCapturingExprs; - /// \brief Contains all variable-referring-expressions that refer + /// Contains all variable-referring-expressions that refer /// to local variables that are usable as constant expressions and /// do not involve an odr-use (they may still need to be captured /// if the enclosing full-expression is instantiation dependent). @@ -843,7 +843,7 @@ Kind = SK_Lambda; } - /// \brief Note when all explicit captures have been added. + /// Note when all explicit captures have been added. void finishedExplicitCaptures() { NumExplicitCaptures = Captures.size(); } @@ -858,7 +858,7 @@ return !AutoTemplateParams.empty() || GLTemplateParameterList; } - /// \brief Add a variable that might potentially be captured by the + /// Add a variable that might potentially be captured by the /// lambda and therefore the enclosing lambdas. /// /// This is also used by enclosing lambda's to speculatively capture @@ -888,7 +888,7 @@ return PotentialThisCaptureLocation.isValid(); } - /// \brief Mark a variable's reference in a lambda as non-odr using. + /// Mark a variable's reference in a lambda as non-odr using. /// /// For generic lambdas, if a variable is named in a potentially evaluated /// expression, where the enclosing full expression is dependent then we Index: cfe/trunk/include/clang/Sema/Sema.h =================================================================== --- cfe/trunk/include/clang/Sema/Sema.h +++ cfe/trunk/include/clang/Sema/Sema.h @@ -277,10 +277,10 @@ Sema(const Sema &) = delete; void operator=(const Sema &) = delete; - ///\brief Source of additional semantic information. + ///Source of additional semantic information. ExternalSemaSource *ExternalSource; - ///\brief Whether Sema has generated a multiplexer and has to delete it. + ///Whether Sema has generated a multiplexer and has to delete it. bool isMultiplexExternalSource; static bool mightHaveNonExternalLinkage(const DeclaratorDecl *FD); @@ -320,16 +320,16 @@ DiagnosticsEngine &Diags; SourceManager &SourceMgr; - /// \brief Flag indicating whether or not to collect detailed statistics. + /// Flag indicating whether or not to collect detailed statistics. bool CollectStats; - /// \brief Code-completion consumer. + /// Code-completion consumer. CodeCompleteConsumer *CodeCompleter; /// CurContext - This is the current declaration context of parsing. DeclContext *CurContext; - /// \brief Generally null except when we temporarily switch decl contexts, + /// Generally null except when we temporarily switch decl contexts, /// like in \see ActOnObjCTemporaryExitContainerContext. DeclContext *OriginalLexicalContext; @@ -339,17 +339,17 @@ bool MSStructPragmaOn; // True when \#pragma ms_struct on - /// \brief Controls member pointer representation format under the MS ABI. + /// Controls member pointer representation format under the MS ABI. LangOptions::PragmaMSPointersToMembersKind MSPointerToMemberRepresentationMethod; /// Stack of active SEH __finally scopes. Can be empty. SmallVector<Scope*, 2> CurrentSEHFinally; - /// \brief Source location for newly created implicit MSInheritanceAttrs + /// Source location for newly created implicit MSInheritanceAttrs SourceLocation ImplicitMSInheritanceAttrLoc; - /// \brief pragma clang section kind + /// pragma clang section kind enum PragmaClangSectionKind { PCSK_Invalid = 0, PCSK_BSS = 1, @@ -440,7 +440,7 @@ // FIXME: We should serialize / deserialize these if they occur in a PCH (but // we shouldn't do so if they're in a module). - /// \brief Whether to insert vtordisps prior to virtual bases in the Microsoft + /// Whether to insert vtordisps prior to virtual bases in the Microsoft /// C++ ABI. Possible values are 0, 1, and 2, which mean: /// /// 0: Suppress all vtordisps @@ -489,7 +489,7 @@ /// VisContext - Manages the stack for \#pragma GCC visibility. void *VisContext; // Really a "PragmaVisStack*" - /// \brief This represents the stack of attributes that were pushed by + /// This represents the stack of attributes that were pushed by /// \#pragma clang attribute. struct PragmaAttributeEntry { SourceLocation Loc; @@ -499,16 +499,16 @@ }; SmallVector<PragmaAttributeEntry, 2> PragmaAttributeStack; - /// \brief The declaration that is currently receiving an attribute from the + /// The declaration that is currently receiving an attribute from the /// #pragma attribute stack. const Decl *PragmaAttributeCurrentTargetDecl; - /// \brief This represents the last location of a "#pragma clang optimize off" + /// This represents the last location of a "#pragma clang optimize off" /// directive if such a directive has not been closed by an "on" yet. If /// optimizations are currently "on", this is set to an invalid location. SourceLocation OptimizeOffPragmaLocation; - /// \brief Flag indicating if Sema is building a recovery call expression. + /// Flag indicating if Sema is building a recovery call expression. /// /// This flag is used to avoid building recovery call expressions /// if Sema is already doing so, which would cause infinite recursions. @@ -522,7 +522,7 @@ /// element type here is ExprWithCleanups::Object. SmallVector<BlockDecl*, 8> ExprCleanupObjects; - /// \brief Store a list of either DeclRefExprs or MemberExprs + /// Store a list of either DeclRefExprs or MemberExprs /// that contain a reference to a variable (constant) that may or may not /// be odr-used in this Expr, and we won't know until all lvalue-to-rvalue /// and discarded value conversions have been applied to all subexpressions @@ -532,7 +532,7 @@ std::unique_ptr<sema::FunctionScopeInfo> PreallocatedFunctionScope; - /// \brief Stack containing information about each of the nested + /// Stack containing information about each of the nested /// function, block, and method scopes that are currently active. SmallVector<sema::FunctionScopeInfo *, 4> FunctionScopes; @@ -550,14 +550,14 @@ typedef llvm::SmallSetVector<NamedDecl *, 16> NamedDeclSetType; - /// \brief Set containing all declared private fields that are not used. + /// Set containing all declared private fields that are not used. NamedDeclSetType UnusedPrivateFields; - /// \brief Set containing all typedefs that are likely unused. + /// Set containing all typedefs that are likely unused. llvm::SmallSetVector<const TypedefNameDecl *, 4> UnusedLocalTypedefNameCandidates; - /// \brief Delete-expressions to be analyzed at the end of translation unit + /// Delete-expressions to be analyzed at the end of translation unit /// /// This list contains class members, and locations of delete-expressions /// that could not be proven as to whether they mismatch with new-expression @@ -577,21 +577,21 @@ /// we are currently parsing the initializer. llvm::SmallPtrSet<const Decl*, 4> ParsingInitForAutoVars; - /// \brief Look for a locally scoped extern "C" declaration by the given name. + /// Look for a locally scoped extern "C" declaration by the given name. NamedDecl *findLocallyScopedExternCDecl(DeclarationName Name); typedef LazyVector<VarDecl *, ExternalSemaSource, &ExternalSemaSource::ReadTentativeDefinitions, 2, 2> TentativeDefinitionsType; - /// \brief All the tentative definitions encountered in the TU. + /// All the tentative definitions encountered in the TU. TentativeDefinitionsType TentativeDefinitions; typedef LazyVector<const DeclaratorDecl *, ExternalSemaSource, &ExternalSemaSource::ReadUnusedFileScopedDecls, 2, 2> UnusedFileScopedDeclsType; - /// \brief The set of file scoped decls seen so far that have not been used + /// The set of file scoped decls seen so far that have not been used /// and must warn if not used. Only contains the first declaration. UnusedFileScopedDeclsType UnusedFileScopedDecls; @@ -599,17 +599,17 @@ &ExternalSemaSource::ReadDelegatingConstructors, 2, 2> DelegatingCtorDeclsType; - /// \brief All the delegating constructors seen so far in the file, used for + /// All the delegating constructors seen so far in the file, used for /// cycle detection at the end of the TU. DelegatingCtorDeclsType DelegatingCtorDecls; - /// \brief All the overriding functions seen during a class definition + /// All the overriding functions seen during a class definition /// that had their exception spec checks delayed, plus the overridden /// function. SmallVector<std::pair<const CXXMethodDecl*, const CXXMethodDecl*>, 2> DelayedExceptionSpecChecks; - /// \brief All the members seen during a class definition which were both + /// All the members seen during a class definition which were both /// explicitly defaulted and had explicitly-specified exception /// specifications, along with the function type containing their /// user-specified exception specification. Those exception specifications @@ -624,7 +624,7 @@ LateParsedTemplateMapT; LateParsedTemplateMapT LateParsedTemplateMap; - /// \brief Callback to the parser to parse templated functions when needed. + /// Callback to the parser to parse templated functions when needed. typedef void LateTemplateParserCB(void *P, LateParsedTemplate &LPT); typedef void LateTemplateParserCleanupCB(void *P); LateTemplateParserCB *LateTemplateParser; @@ -651,7 +651,7 @@ /// A class which encapsulates the logic for delaying diagnostics /// during parsing and other processing. class DelayedDiagnostics { - /// \brief The current pool of diagnostics into which delayed + /// The current pool of diagnostics into which delayed /// diagnostics should go. sema::DelayedDiagnosticPool *CurPool; @@ -734,7 +734,7 @@ } }; - /// \brief RAII object to handle the state changes required to synthesize + /// RAII object to handle the state changes required to synthesize /// a function body. class SynthesizedFunctionScope { Sema &S; @@ -787,7 +787,7 @@ llvm::DenseMap<IdentifierInfo*,AsmLabelAttr*> ExtnameUndeclaredIdentifiers; - /// \brief Load weak undeclared identifiers from the external source. + /// Load weak undeclared identifiers from the external source. void LoadExternalWeakUndeclaredIdentifiers(); /// WeakTopLevelDecl - Translation-unit scoped declarations generated by @@ -804,77 +804,77 @@ /// For example, user-defined classes, built-in "id" type, etc. Scope *TUScope; - /// \brief The C++ "std" namespace, where the standard library resides. + /// The C++ "std" namespace, where the standard library resides. LazyDeclPtr StdNamespace; - /// \brief The C++ "std::bad_alloc" class, which is defined by the C++ + /// The C++ "std::bad_alloc" class, which is defined by the C++ /// standard library. LazyDeclPtr StdBadAlloc; - /// \brief The C++ "std::align_val_t" enum class, which is defined by the C++ + /// The C++ "std::align_val_t" enum class, which is defined by the C++ /// standard library. LazyDeclPtr StdAlignValT; - /// \brief The C++ "std::experimental" namespace, where the experimental parts + /// The C++ "std::experimental" namespace, where the experimental parts /// of the standard library resides. NamespaceDecl *StdExperimentalNamespaceCache; - /// \brief The C++ "std::initializer_list" template, which is defined in + /// The C++ "std::initializer_list" template, which is defined in /// \<initializer_list>. ClassTemplateDecl *StdInitializerList; - /// \brief The C++ "type_info" declaration, which is defined in \<typeinfo>. + /// The C++ "type_info" declaration, which is defined in \<typeinfo>. RecordDecl *CXXTypeInfoDecl; - /// \brief The MSVC "_GUID" struct, which is defined in MSVC header files. + /// The MSVC "_GUID" struct, which is defined in MSVC header files. RecordDecl *MSVCGuidDecl; - /// \brief Caches identifiers/selectors for NSFoundation APIs. + /// Caches identifiers/selectors for NSFoundation APIs. std::unique_ptr<NSAPI> NSAPIObj; - /// \brief The declaration of the Objective-C NSNumber class. + /// The declaration of the Objective-C NSNumber class. ObjCInterfaceDecl *NSNumberDecl; - /// \brief The declaration of the Objective-C NSValue class. + /// The declaration of the Objective-C NSValue class. ObjCInterfaceDecl *NSValueDecl; - /// \brief Pointer to NSNumber type (NSNumber *). + /// Pointer to NSNumber type (NSNumber *). QualType NSNumberPointer; - /// \brief Pointer to NSValue type (NSValue *). + /// Pointer to NSValue type (NSValue *). QualType NSValuePointer; - /// \brief The Objective-C NSNumber methods used to create NSNumber literals. + /// The Objective-C NSNumber methods used to create NSNumber literals. ObjCMethodDecl *NSNumberLiteralMethods[NSAPI::NumNSNumberLiteralMethods]; - /// \brief The declaration of the Objective-C NSString class. + /// The declaration of the Objective-C NSString class. ObjCInterfaceDecl *NSStringDecl; - /// \brief Pointer to NSString type (NSString *). + /// Pointer to NSString type (NSString *). QualType NSStringPointer; - /// \brief The declaration of the stringWithUTF8String: method. + /// The declaration of the stringWithUTF8String: method. ObjCMethodDecl *StringWithUTF8StringMethod; - /// \brief The declaration of the valueWithBytes:objCType: method. + /// The declaration of the valueWithBytes:objCType: method. ObjCMethodDecl *ValueWithBytesObjCTypeMethod; - /// \brief The declaration of the Objective-C NSArray class. + /// The declaration of the Objective-C NSArray class. ObjCInterfaceDecl *NSArrayDecl; - /// \brief The declaration of the arrayWithObjects:count: method. + /// The declaration of the arrayWithObjects:count: method. ObjCMethodDecl *ArrayWithObjectsMethod; - /// \brief The declaration of the Objective-C NSDictionary class. + /// The declaration of the Objective-C NSDictionary class. ObjCInterfaceDecl *NSDictionaryDecl; - /// \brief The declaration of the dictionaryWithObjects:forKeys:count: method. + /// The declaration of the dictionaryWithObjects:forKeys:count: method. ObjCMethodDecl *DictionaryWithObjectsMethod; - /// \brief id<NSCopying> type. + /// id<NSCopying> type. QualType QIDNSCopying; - /// \brief will hold 'respondsToSelector:' + /// will hold 'respondsToSelector:' Selector RespondsToSelectorSel; /// A flag to remember whether the implicit forms of operator new and delete @@ -885,43 +885,43 @@ /// references to fields. This is really a bool AllowAbstractFieldReference; - /// \brief Describes how the expressions currently being parsed are + /// Describes how the expressions currently being parsed are /// evaluated at run-time, if at all. enum class ExpressionEvaluationContext { - /// \brief The current expression and its subexpressions occur within an + /// The current expression and its subexpressions occur within an /// unevaluated operand (C++11 [expr]p7), such as the subexpression of /// \c sizeof, where the type of the expression may be significant but /// no code will be generated to evaluate the value of the expression at /// run time. Unevaluated, - /// \brief The current expression occurs within a braced-init-list within + /// The current expression occurs within a braced-init-list within /// an unevaluated operand. This is mostly like a regular unevaluated /// context, except that we still instantiate constexpr functions that are /// referenced here so that we can perform narrowing checks correctly. UnevaluatedList, - /// \brief The current expression occurs within a discarded statement. + /// The current expression occurs within a discarded statement. /// This behaves largely similarly to an unevaluated operand in preventing /// definitions from being required, but not in other ways. DiscardedStatement, - /// \brief The current expression occurs within an unevaluated + /// The current expression occurs within an unevaluated /// operand that unconditionally permits abstract references to /// fields, such as a SIZE operator in MS-style inline assembly. UnevaluatedAbstract, - /// \brief The current context is "potentially evaluated" in C++11 terms, + /// The current context is "potentially evaluated" in C++11 terms, /// but the expression is evaluated at compile-time (like the values of /// cases in a switch statement). ConstantEvaluated, - /// \brief The current expression is potentially evaluated at run time, + /// The current expression is potentially evaluated at run time, /// which means that code may be generated to evaluate the value of the /// expression at run time. PotentiallyEvaluated, - /// \brief The current expression is potentially evaluated, but any + /// The current expression is potentially evaluated, but any /// declarations referenced inside that expression are only used if /// in fact the current expression is used. /// @@ -932,49 +932,49 @@ PotentiallyEvaluatedIfUsed }; - /// \brief Data structure used to record current or nested + /// Data structure used to record current or nested /// expression evaluation contexts. struct ExpressionEvaluationContextRecord { - /// \brief The expression evaluation context. + /// The expression evaluation context. ExpressionEvaluationContext Context; - /// \brief Whether the enclosing context needed a cleanup. + /// Whether the enclosing context needed a cleanup. CleanupInfo ParentCleanup; - /// \brief Whether we are in a decltype expression. + /// Whether we are in a decltype expression. bool IsDecltype; - /// \brief The number of active cleanup objects when we entered + /// The number of active cleanup objects when we entered /// this expression evaluation context. unsigned NumCleanupObjects; - /// \brief The number of typos encountered during this expression evaluation + /// The number of typos encountered during this expression evaluation /// context (i.e. the number of TypoExprs created). unsigned NumTypos; llvm::SmallPtrSet<Expr*, 2> SavedMaybeODRUseExprs; - /// \brief The lambdas that are present within this context, if it + /// The lambdas that are present within this context, if it /// is indeed an unevaluated context. SmallVector<LambdaExpr *, 2> Lambdas; - /// \brief The declaration that provides context for lambda expressions + /// The declaration that provides context for lambda expressions /// and block literals if the normal declaration context does not /// suffice, e.g., in a default function argument. Decl *ManglingContextDecl; - /// \brief The context information used to mangle lambda expressions + /// The context information used to mangle lambda expressions /// and block literals within this context. /// /// This mangling information is allocated lazily, since most contexts /// do not have lambda expressions or block literals. std::unique_ptr<MangleNumberingContext> MangleNumbering; - /// \brief If we are processing a decltype type, a set of call expressions + /// If we are processing a decltype type, a set of call expressions /// for which we have deferred checking the completeness of the return type. SmallVector<CallExpr *, 8> DelayedDecltypeCalls; - /// \brief If we are processing a decltype type, a set of temporary binding + /// If we are processing a decltype type, a set of temporary binding /// expressions for which we have deferred checking the destructor. SmallVector<CXXBindTemporaryExpr *, 8> DelayedDecltypeBinds; @@ -988,7 +988,7 @@ NumTypos(0), ManglingContextDecl(ManglingContextDecl), MangleNumbering() { } - /// \brief Retrieve the mangling numbering context, used to consistently + /// Retrieve the mangling numbering context, used to consistently /// number constructs like lambdas for mangling. MangleNumberingContext &getMangleNumberingContext(ASTContext &Ctx); @@ -1005,7 +1005,7 @@ /// A stack of expression evaluation contexts. SmallVector<ExpressionEvaluationContextRecord, 8> ExprEvalContexts; - /// \brief Compute the mangling number context for a lambda expression or + /// Compute the mangling number context for a lambda expression or /// block literal. /// /// \param DC - The DeclContext containing the lambda expression or @@ -1054,15 +1054,15 @@ {} }; - /// \brief A cache of special member function overload resolution results + /// A cache of special member function overload resolution results /// for C++ records. llvm::FoldingSet<SpecialMemberOverloadResultEntry> SpecialMemberCache; - /// \brief A cache of the flags available in enumerations with the flag_bits + /// A cache of the flags available in enumerations with the flag_bits /// attribute. mutable llvm::DenseMap<const EnumDecl*, llvm::APInt> FlagBitsCache; - /// \brief The kind of translation unit we are processing. + /// The kind of translation unit we are processing. /// /// When we're processing a complete translation unit, Sema will perform /// end-of-translation-unit semantic tasks (such as creating @@ -1073,13 +1073,13 @@ llvm::BumpPtrAllocator BumpAlloc; - /// \brief The number of SFINAE diagnostics that have been trapped. + /// The number of SFINAE diagnostics that have been trapped. unsigned NumSFINAEErrors; typedef llvm::DenseMap<ParmVarDecl *, llvm::TinyPtrVector<ParmVarDecl *>> UnparsedDefaultArgInstantiationsMap; - /// \brief A mapping from parameters with unparsed default arguments to the + /// A mapping from parameters with unparsed default arguments to the /// set of instantiations of each parameter. /// /// This mapping is a temporary data structure used when parsing @@ -1161,7 +1161,7 @@ bool isSelfExpr(Expr *RExpr); bool isSelfExpr(Expr *RExpr, const ObjCMethodDecl *Method); - /// \brief Cause the active diagnostic on the DiagosticsEngine to be + /// Cause the active diagnostic on the DiagosticsEngine to be /// emitted. This is closely coupled to the SemaDiagnosticBuilder class and /// should not be used elsewhere. void EmitCurrentDiagnostic(unsigned DiagID); @@ -1186,7 +1186,7 @@ CodeCompleteConsumer *CompletionConsumer = nullptr); ~Sema(); - /// \brief Perform initialization that occurs after the parser has been + /// Perform initialization that occurs after the parser has been /// initialized but before it parses anything. void Initialize(); @@ -1202,7 +1202,7 @@ ASTMutationListener *getASTMutationListener() const; ExternalSemaSource* getExternalSource() const { return ExternalSource; } - ///\brief Registers an external source. If an external source already exists, + ///Registers an external source. If an external source already exists, /// creates a multiplex external source and appends to it. /// ///\param[in] E - A non-null external sema source. @@ -1211,7 +1211,7 @@ void PrintStats() const; - /// \brief Helper class that creates diagnostics with optional + /// Helper class that creates diagnostics with optional /// template instantiation stacks. /// /// This class provides a wrapper around the basic DiagnosticBuilder @@ -1266,29 +1266,29 @@ } }; - /// \brief Emit a diagnostic. + /// Emit a diagnostic. SemaDiagnosticBuilder Diag(SourceLocation Loc, unsigned DiagID) { DiagnosticBuilder DB = Diags.Report(Loc, DiagID); return SemaDiagnosticBuilder(DB, *this, DiagID); } - /// \brief Emit a partial diagnostic. + /// Emit a partial diagnostic. SemaDiagnosticBuilder Diag(SourceLocation Loc, const PartialDiagnostic& PD); - /// \brief Build a partial diagnostic. + /// Build a partial diagnostic. PartialDiagnostic PDiag(unsigned DiagID = 0); // in SemaInternal.h bool findMacroSpelling(SourceLocation &loc, StringRef name); - /// \brief Get a string to suggest for zero-initialization of a type. + /// Get a string to suggest for zero-initialization of a type. std::string getFixItZeroInitializerForType(QualType T, SourceLocation Loc) const; std::string getFixItZeroLiteralForType(QualType T, SourceLocation Loc) const; - /// \brief Calls \c Lexer::getLocForEndOfToken() + /// Calls \c Lexer::getLocForEndOfToken() SourceLocation getLocForEndOfToken(SourceLocation Loc, unsigned Offset = 0); - /// \brief Retrieve the module loader associated with the preprocessor. + /// Retrieve the module loader associated with the preprocessor. ModuleLoader &getModuleLoader() const; void emitAndClearUnusedLocalTypedefWarnings(); @@ -1304,7 +1304,7 @@ void PushBlockScope(Scope *BlockScope, BlockDecl *Block); sema::LambdaScopeInfo *PushLambdaScope(); - /// \brief This is used to inform Sema what the current TemplateParameterDepth + /// This is used to inform Sema what the current TemplateParameterDepth /// is during Parsing. Currently it is used to pass on the depth /// when parsing generic lambda 'auto' parameters. void RecordParsingTemplateParameterDepth(unsigned Depth); @@ -1334,7 +1334,7 @@ bool hasAnyUnrecoverableErrorsInThisFunction() const; - /// \brief Retrieve the current block, if any. + /// Retrieve the current block, if any. sema::BlockScopeInfo *getCurBlock(); /// Retrieve the current lambda scope info, if any. @@ -1344,10 +1344,10 @@ sema::LambdaScopeInfo * getCurLambda(bool IgnoreNonLambdaCapturingScope = false); - /// \brief Retrieve the current generic lambda info, if any. + /// Retrieve the current generic lambda info, if any. sema::LambdaScopeInfo *getCurGenericLambda(); - /// \brief Retrieve the current captured region, if any. + /// Retrieve the current captured region, if any. sema::CapturedRegionScopeInfo *getCurCapturedRegion(); /// WeakTopLevelDeclDecls - access to \#pragma weak-generated Decls @@ -1377,7 +1377,7 @@ bool CheckFunctionReturnType(QualType T, SourceLocation Loc); - /// \brief Build a function type. + /// Build a function type. /// /// This routine checks the function type according to C++ rules and /// under the assumption that the result type and parameter types have @@ -1426,7 +1426,7 @@ TypeSourceInfo *GetTypeSourceInfoForDeclarator(Declarator &D, QualType T, TypeSourceInfo *ReturnTypeInfo); - /// \brief Package the given type and TSI into a ParsedType. + /// Package the given type and TSI into a ParsedType. ParsedType CreateParsedType(QualType T, TypeSourceInfo *TInfo); DeclarationNameInfo GetNameForDeclarator(Declarator &D); DeclarationNameInfo GetNameFromUnqualifiedId(const UnqualifiedId &Name); @@ -1464,11 +1464,11 @@ TypeResult ActOnTypeName(Scope *S, Declarator &D); - /// \brief The parser has parsed the context-sensitive type 'instancetype' + /// The parser has parsed the context-sensitive type 'instancetype' /// in an Objective-C message declaration. Return the appropriate type. ParsedType ActOnObjCInstanceType(SourceLocation Loc); - /// \brief Abstract class used to diagnose incomplete types. + /// Abstract class used to diagnose incomplete types. struct TypeDiagnoser { TypeDiagnoser() {} @@ -1537,10 +1537,10 @@ VisibleModuleSet VisibleModules; public: - /// \brief Get the module owning an entity. + /// Get the module owning an entity. Module *getOwningModule(Decl *Entity) { return Entity->getOwningModule(); } - /// \brief Make a merged definition of an existing hidden definition \p ND + /// Make a merged definition of an existing hidden definition \p ND /// visible at the specified location. void makeMergedDefinitionVisible(NamedDecl *ND); @@ -1694,7 +1694,7 @@ SourceLocation NameLoc, bool IsTemplateTypeArg); - /// \brief Describes the result of the name lookup and resolution performed + /// Describes the result of the name lookup and resolution performed /// by \c ClassifyName(). enum NameClassificationKind { NC_Unknown, @@ -1785,7 +1785,7 @@ } }; - /// \brief Perform name lookup on the given name, classifying it based on + /// Perform name lookup on the given name, classifying it based on /// the results of name lookup and the following token. /// /// This routine is used by the parser to resolve identifiers and help direct @@ -1988,7 +1988,7 @@ return D && isa<ObjCMethodDecl>(D); } - /// \brief Determine whether we can delay parsing the body of a function or + /// Determine whether we can delay parsing the body of a function or /// function template until it is used, assuming we don't care about emitting /// code for that function. /// @@ -1998,7 +1998,7 @@ /// or has an 'auto' return type in C++14. These cases are essentially bugs. bool canDelayFunctionBody(const Declarator &D); - /// \brief Determine whether we can skip parsing the body of a function + /// Determine whether we can skip parsing the body of a function /// definition, assuming we don't care about analyzing its body or emitting /// code for that function. /// @@ -2017,11 +2017,11 @@ /// attribute for which parsing is delayed. void ActOnFinishDelayedAttribute(Scope *S, Decl *D, ParsedAttributes &Attrs); - /// \brief Diagnose any unused parameters in the given sequence of + /// Diagnose any unused parameters in the given sequence of /// ParmVarDecl pointers. void DiagnoseUnusedParameters(ArrayRef<ParmVarDecl *> Parameters); - /// \brief Diagnose whether the size of parameters or return value of a + /// Diagnose whether the size of parameters or return value of a /// function or obj-c method definition is pass-by-value and larger than a /// specified threshold. void @@ -2033,7 +2033,7 @@ SourceLocation AsmLoc, SourceLocation RParenLoc); - /// \brief Handle a C++11 empty-declaration and attribute-declaration. + /// Handle a C++11 empty-declaration and attribute-declaration. Decl *ActOnEmptyDeclaration(Scope *S, AttributeList *AttrList, SourceLocation SemiLoc); @@ -2050,7 +2050,7 @@ SourceLocation ModuleLoc, ModuleDeclKind MDK, ModuleIdPath Path); - /// \brief The parser has processed a module import declaration. + /// The parser has processed a module import declaration. /// /// \param AtLoc The location of the '@' symbol, if any. /// @@ -2060,17 +2060,17 @@ DeclResult ActOnModuleImport(SourceLocation AtLoc, SourceLocation ImportLoc, ModuleIdPath Path); - /// \brief The parser has processed a module import translated from a + /// The parser has processed a module import translated from a /// #include or similar preprocessing directive. void ActOnModuleInclude(SourceLocation DirectiveLoc, Module *Mod); void BuildModuleInclude(SourceLocation DirectiveLoc, Module *Mod); - /// \brief The parsed has entered a submodule. + /// The parsed has entered a submodule. void ActOnModuleBegin(SourceLocation DirectiveLoc, Module *Mod); - /// \brief The parser has left a submodule. + /// The parser has left a submodule. void ActOnModuleEnd(SourceLocation DirectiveLoc, Module *Mod); - /// \brief Create an implicit import of the given module at the given + /// Create an implicit import of the given module at the given /// source location, for error recovery, if possible. /// /// This routine is typically used when an entity found by name lookup @@ -2089,7 +2089,7 @@ PartialSpecialization }; - /// \brief Diagnose that the specified declaration needs to be visible but + /// Diagnose that the specified declaration needs to be visible but /// isn't, and suggest a module import that would resolve the problem. void diagnoseMissingImport(SourceLocation Loc, NamedDecl *Decl, MissingImportKind MIK, bool Recover = true); @@ -2102,23 +2102,23 @@ Decl *ActOnFinishExportDecl(Scope *S, Decl *ExportDecl, SourceLocation RBraceLoc); - /// \brief We've found a use of a templated declaration that would trigger an + /// We've found a use of a templated declaration that would trigger an /// implicit instantiation. Check that any relevant explicit specializations /// and partial specializations are visible, and diagnose if not. void checkSpecializationVisibility(SourceLocation Loc, NamedDecl *Spec); - /// \brief We've found a use of a template specialization that would select a + /// We've found a use of a template specialization that would select a /// partial specialization. Check that the partial specialization is visible, /// and diagnose if not. void checkPartialSpecializationVisibility(SourceLocation Loc, NamedDecl *Spec); - /// \brief Retrieve a suitable printing policy. + /// Retrieve a suitable printing policy. PrintingPolicy getPrintingPolicy() const { return getPrintingPolicy(Context, PP); } - /// \brief Retrieve a suitable printing policy. + /// Retrieve a suitable printing policy. static PrintingPolicy getPrintingPolicy(const ASTContext &Ctx, const Preprocessor &PP); @@ -2262,7 +2262,7 @@ typedef void *SkippedDefinitionContext; - /// \brief Invoked when we enter a tag definition that we're skipping. + /// Invoked when we enter a tag definition that we're skipping. SkippedDefinitionContext ActOnTagStartSkippedDefinition(Scope *S, Decl *TD); Decl *ActOnObjCContainerStartDefinition(Decl *IDecl); @@ -2284,7 +2284,7 @@ void ActOnObjCContainerFinishDefinition(); - /// \brief Invoked when we must temporarily exit the objective-c container + /// Invoked when we must temporarily exit the objective-c container /// scope for parsing/looking-up C constructs. /// /// Must be followed by a call to \see ActOnObjCReenterContainerContext @@ -2354,7 +2354,7 @@ /// Add this decl to the scope shadowed decl chains. void PushOnScopeChains(NamedDecl *D, Scope *S, bool AddToContext = true); - /// \brief Make the given externally-produced declaration visible at the + /// Make the given externally-produced declaration visible at the /// top level scope. /// /// \param D The externally-produced declaration to push. @@ -2381,18 +2381,18 @@ TypeSourceInfo *TInfo); bool isIncompatibleTypedef(TypeDecl *Old, TypedefNameDecl *New); - /// \brief Describes the kind of merge to perform for availability + /// Describes the kind of merge to perform for availability /// attributes (including "deprecated", "unavailable", and "availability"). enum AvailabilityMergeKind { - /// \brief Don't merge availability attributes at all. + /// Don't merge availability attributes at all. AMK_None, - /// \brief Merge availability attributes for a redeclaration, which requires + /// Merge availability attributes for a redeclaration, which requires /// an exact match. AMK_Redeclaration, - /// \brief Merge availability attributes for an override, which requires + /// Merge availability attributes for an override, which requires /// an exact match or a weakening of constraints. AMK_Override, - /// \brief Merge availability attributes for an implementation of + /// Merge availability attributes for an implementation of /// a protocol requirement. AMK_ProtocolImplementation, }; @@ -2494,7 +2494,7 @@ bool IsOverload(FunctionDecl *New, FunctionDecl *Old, bool IsForUsingDecl, bool ConsiderCudaAttrs = true); - /// \brief Checks availability of the function depending on the current + /// Checks availability of the function depending on the current /// function context.Inside an unavailable function,unavailability is ignored. /// /// \returns true if \p FD is unavailable and current context is inside @@ -2582,7 +2582,7 @@ ExprResult CheckConvertedConstantExpression(Expr *From, QualType T, APValue &Value, CCEKind CCE); - /// \brief Abstract base class used to perform a contextual implicit + /// Abstract base class used to perform a contextual implicit /// conversion from an expression to any type passing a filter. class ContextualImplicitConverter { public: @@ -2593,38 +2593,38 @@ bool SuppressConversion = false) : Suppress(Suppress), SuppressConversion(SuppressConversion) {} - /// \brief Determine whether the specified type is a valid destination type + /// Determine whether the specified type is a valid destination type /// for this conversion. virtual bool match(QualType T) = 0; - /// \brief Emits a diagnostic complaining that the expression does not have + /// Emits a diagnostic complaining that the expression does not have /// integral or enumeration type. virtual SemaDiagnosticBuilder diagnoseNoMatch(Sema &S, SourceLocation Loc, QualType T) = 0; - /// \brief Emits a diagnostic when the expression has incomplete class type. + /// Emits a diagnostic when the expression has incomplete class type. virtual SemaDiagnosticBuilder diagnoseIncomplete(Sema &S, SourceLocation Loc, QualType T) = 0; - /// \brief Emits a diagnostic when the only matching conversion function + /// Emits a diagnostic when the only matching conversion function /// is explicit. virtual SemaDiagnosticBuilder diagnoseExplicitConv( Sema &S, SourceLocation Loc, QualType T, QualType ConvTy) = 0; - /// \brief Emits a note for the explicit conversion function. + /// Emits a note for the explicit conversion function. virtual SemaDiagnosticBuilder noteExplicitConv(Sema &S, CXXConversionDecl *Conv, QualType ConvTy) = 0; - /// \brief Emits a diagnostic when there are multiple possible conversion + /// Emits a diagnostic when there are multiple possible conversion /// functions. virtual SemaDiagnosticBuilder diagnoseAmbiguous(Sema &S, SourceLocation Loc, QualType T) = 0; - /// \brief Emits a note for one of the candidate conversions. + /// Emits a note for one of the candidate conversions. virtual SemaDiagnosticBuilder noteAmbiguous(Sema &S, CXXConversionDecl *Conv, QualType ConvTy) = 0; - /// \brief Emits a diagnostic when we picked a conversion function + /// Emits a diagnostic when we picked a conversion function /// (for cases when we are not allowed to pick a conversion function). virtual SemaDiagnosticBuilder diagnoseConversion( Sema &S, SourceLocation Loc, QualType T, QualType ConvTy) = 0; @@ -2649,7 +2649,7 @@ return diagnoseNotInt(S, Loc, T); } - /// \brief Emits a diagnostic complaining that the expression does not have + /// Emits a diagnostic complaining that the expression does not have /// integral or enumeration type. virtual SemaDiagnosticBuilder diagnoseNotInt(Sema &S, SourceLocation Loc, QualType T) = 0; @@ -2984,7 +2984,7 @@ /// the ability to distinguish among them. //@{ - /// @brief Describes the kind of name lookup to perform. + /// Describes the kind of name lookup to perform. enum LookupNameKind { /// Ordinary name lookup, which finds ordinary names (functions, /// variables, typedefs, etc.) in C and most kinds of names @@ -3026,22 +3026,22 @@ LookupObjCProtocolName, /// Look up implicit 'self' parameter of an objective-c method. LookupObjCImplicitSelfParam, - /// \brief Look up the name of an OpenMP user-defined reduction operation. + /// Look up the name of an OpenMP user-defined reduction operation. LookupOMPReductionName, - /// \brief Look up any declaration with any name. + /// Look up any declaration with any name. LookupAnyName }; - /// \brief Specifies whether (or how) name lookup is being performed for a + /// Specifies whether (or how) name lookup is being performed for a /// redeclaration (vs. a reference). enum RedeclarationKind { - /// \brief The lookup is a reference to this name that is not for the + /// The lookup is a reference to this name that is not for the /// purpose of redeclaring the name. NotForRedeclaration = 0, - /// \brief The lookup results will be used for redeclaration of a name, + /// The lookup results will be used for redeclaration of a name, /// if an entity by that name already exists and is visible. ForVisibleRedeclaration, - /// \brief The lookup results will be used for redeclaration of a name + /// The lookup results will be used for redeclaration of a name /// with external linkage; non-visible lookup results with external linkage /// may also be found. ForExternalRedeclaration @@ -3058,23 +3058,23 @@ return ForExternalRedeclaration; } - /// \brief The possible outcomes of name lookup for a literal operator. + /// The possible outcomes of name lookup for a literal operator. enum LiteralOperatorLookupResult { - /// \brief The lookup resulted in an error. + /// The lookup resulted in an error. LOLR_Error, - /// \brief The lookup found no match but no diagnostic was issued. + /// The lookup found no match but no diagnostic was issued. LOLR_ErrorNoDiagnostic, - /// \brief The lookup found a single 'cooked' literal operator, which + /// The lookup found a single 'cooked' literal operator, which /// expects a normal literal to be built and passed to it. LOLR_Cooked, - /// \brief The lookup found a single 'raw' literal operator, which expects + /// The lookup found a single 'raw' literal operator, which expects /// a string literal containing the spelling of the literal token. LOLR_Raw, - /// \brief The lookup found an overload set of literal operator templates, + /// The lookup found an overload set of literal operator templates, /// which expect the characters of the spelling of the literal token to be /// passed as a non-type template argument pack. LOLR_Template, - /// \brief The lookup found an overload set of literal operator templates, + /// The lookup found an overload set of literal operator templates, /// which expect the character type and characters of the spelling of the /// string literal token to be passed as template arguments. LOLR_StringTemplate @@ -3104,25 +3104,25 @@ TypoExprState &operator=(TypoExprState &&other) noexcept; }; - /// \brief The set of unhandled TypoExprs and their associated state. + /// The set of unhandled TypoExprs and their associated state. llvm::MapVector<TypoExpr *, TypoExprState> DelayedTypos; - /// \brief Creates a new TypoExpr AST node. + /// Creates a new TypoExpr AST node. TypoExpr *createDelayedTypo(std::unique_ptr<TypoCorrectionConsumer> TCC, TypoDiagnosticGenerator TDG, TypoRecoveryCallback TRC); - // \brief The set of known/encountered (unique, canonicalized) NamespaceDecls. + // The set of known/encountered (unique, canonicalized) NamespaceDecls. // // The boolean value will be true to indicate that the namespace was loaded // from an AST/PCH file, or false otherwise. llvm::MapVector<NamespaceDecl*, bool> KnownNamespaces; - /// \brief Whether we have already loaded known namespaces from an extenal + /// Whether we have already loaded known namespaces from an extenal /// source. bool LoadedExternalKnownNamespaces; - /// \brief Helper for CorrectTypo and CorrectTypoDelayed used to create and + /// Helper for CorrectTypo and CorrectTypoDelayed used to create and /// populate a new TypoCorrectionConsumer. Returns nullptr if typo correction /// should be skipped entirely. std::unique_ptr<TypoCorrectionConsumer> @@ -3137,10 +3137,10 @@ public: const TypoExprState &getTypoExprState(TypoExpr *TE) const; - /// \brief Clears the state of the given TypoExpr. + /// Clears the state of the given TypoExpr. void clearDelayedTypo(TypoExpr *TE); - /// \brief Look up a name, looking for a single declaration. Return + /// Look up a name, looking for a single declaration. Return /// null if the results were absent, ambiguous, or overloaded. /// /// It is preferable to use the elaborated form and explicitly handle @@ -3230,7 +3230,7 @@ bool EnteringContext = false, const ObjCObjectPointerType *OPT = nullptr); - /// \brief Process any TypoExprs in the given Expr and its children, + /// Process any TypoExprs in the given Expr and its children, /// generating diagnostics as appropriate and returning a new Expr if there /// were typos that were all successfully corrected and ExprError if one or /// more typos could not be corrected. @@ -3377,7 +3377,7 @@ bool isContextSensitive, bool allowArrayTypes); - /// \brief Stmt attributes - this routine is the top level dispatcher. + /// Stmt attributes - this routine is the top level dispatcher. StmtResult ProcessStmtAttributes(Stmt *Stmt, AttributeList *Attrs, SourceRange Range); @@ -3520,7 +3520,7 @@ /// warns each time an exact match is found. void CheckCategoryVsClassMethodMatches(ObjCCategoryImplDecl *CatIMP); - /// \brief Add the given method to the list of globally-known methods. + /// Add the given method to the list of globally-known methods. void addMethodToGlobalList(ObjCMethodList *List, ObjCMethodDecl *Method); private: @@ -3535,7 +3535,7 @@ bool instance); public: - /// \brief - Returns instance or factory methods in global method pool for + /// - Returns instance or factory methods in global method pool for /// given selector. It checks the desired kind first, if none is found, and /// parameter checkTheOther is set, it then checks the other kind. If no such /// method or only one method is found, function returns false; otherwise, it @@ -3557,14 +3557,14 @@ bool receiverIdOrClass); private: - /// \brief - Returns a selector which best matches given argument list or + /// - Returns a selector which best matches given argument list or /// nullptr if none could be found ObjCMethodDecl *SelectBestMethod(Selector Sel, MultiExprArg Args, bool IsInstance, SmallVectorImpl<ObjCMethodDecl*>& Methods); - /// \brief Record the typo correction failure and return an empty correction. + /// Record the typo correction failure and return an empty correction. TypoCorrection FailedCorrection(IdentifierInfo *Typo, SourceLocation TypoLoc, bool RecordFailure = true) { if (RecordFailure) @@ -3669,7 +3669,7 @@ StmtResult ActOnCompoundStmt(SourceLocation L, SourceLocation R, ArrayRef<Stmt *> Elts, bool isStmtExpr); - /// \brief A RAII object to enter scope of a compound statement. + /// A RAII object to enter scope of a compound statement. class CompoundScopeRAII { public: CompoundScopeRAII(Sema &S, bool IsStmtExpr = false) : S(S) { @@ -3901,7 +3901,7 @@ bool ShouldWarnIfUnusedFileScopedDecl(const DeclaratorDecl *D) const; - /// \brief If it's a file scoped decl that must warn if not used, keep track + /// If it's a file scoped decl that must warn if not used, keep track /// of it. void MarkUnusedFileScopedDecl(const DeclaratorDecl *D); @@ -3930,7 +3930,7 @@ void DiagnoseSelfMove(const Expr *LHSExpr, const Expr *RHSExpr, SourceLocation OpLoc); - /// \brief Warn if we're implicitly casting from a _Nullable pointer type to a + /// Warn if we're implicitly casting from a _Nullable pointer type to a /// _Nonnull one. void diagnoseNullableToNonnullConversion(QualType DstType, QualType SrcType, SourceLocation Loc); @@ -3961,7 +3961,7 @@ bool makeUnavailableInSystemHeader(SourceLocation loc, UnavailableAttr::ImplicitReason reason); - /// \brief Issue any -Wunguarded-availability warnings in \c FD + /// Issue any -Wunguarded-availability warnings in \c FD void DiagnoseUnguardedAvailabilityViolations(Decl *FD); //===--------------------------------------------------------------------===// @@ -4023,7 +4023,7 @@ TryCapture_Implicit, TryCapture_ExplicitByVal, TryCapture_ExplicitByRef }; - /// \brief Try to capture the given variable. + /// Try to capture the given variable. /// /// \param Var The variable to capture. /// @@ -4062,15 +4062,15 @@ QualType &DeclRefType, const unsigned *const FunctionScopeIndexToStopAt); - /// \brief Try to capture the given variable. + /// Try to capture the given variable. bool tryCaptureVariable(VarDecl *Var, SourceLocation Loc, TryCaptureKind Kind = TryCapture_Implicit, SourceLocation EllipsisLoc = SourceLocation()); - /// \brief Checks if the variable must be captured. + /// Checks if the variable must be captured. bool NeedToCaptureVariable(VarDecl *Var, SourceLocation Loc); - /// \brief Given a variable, determine the type that a reference to that + /// Given a variable, determine the type that a reference to that /// variable will have in the given scope. QualType getCapturedDeclRefType(VarDecl *Var, SourceLocation Loc); @@ -4081,18 +4081,18 @@ void MarkDeclarationsReferencedInExpr(Expr *E, bool SkipLocalVariables = false); - /// \brief Try to recover by turning the given expression into a + /// Try to recover by turning the given expression into a /// call. Returns true if recovery was attempted or an error was /// emitted; this may also leave the ExprResult invalid. bool tryToRecoverWithCall(ExprResult &E, const PartialDiagnostic &PD, bool ForceComplain = false, bool (*IsPlausibleResult)(QualType) = nullptr); - /// \brief Figure out if an expression could be turned into a call. + /// Figure out if an expression could be turned into a call. bool tryExprAsCall(Expr &E, QualType &ZeroArgCallReturnTy, UnresolvedSetImpl &NonTemplateOverloads); - /// \brief Conditionally issue a diagnostic based on the current + /// Conditionally issue a diagnostic based on the current /// evaluation context. /// /// \param Statement If Statement is non-null, delay reporting the @@ -4366,7 +4366,7 @@ Expr *Op); CastKind PrepareScalarCast(ExprResult &src, QualType destType); - /// \brief Build an altivec or OpenCL literal. + /// Build an altivec or OpenCL literal. ExprResult BuildVectorLiteral(SourceLocation LParenLoc, SourceLocation RParenLoc, Expr *E, TypeSourceInfo *TInfo); @@ -4458,19 +4458,19 @@ bool CheckCaseExpression(Expr *E); - /// \brief Describes the result of an "if-exists" condition check. + /// Describes the result of an "if-exists" condition check. enum IfExistsResult { - /// \brief The symbol exists. + /// The symbol exists. IER_Exists, - /// \brief The symbol does not exist. + /// The symbol does not exist. IER_DoesNotExist, - /// \brief The name is a dependent name, so the results will differ + /// The name is a dependent name, so the results will differ /// from one instantiation to the next. IER_Dependent, - /// \brief An error occurred. + /// An error occurred. IER_Error }; @@ -4554,7 +4554,7 @@ llvm::SmallBitVector FullyCheckedComparisonCategories; public: - /// \brief Lookup the specified comparison category types in the standard + /// Lookup the specified comparison category types in the standard /// library, an check the VarDecls possibly returned by the operator<=> /// builtins for that type. /// @@ -4563,17 +4563,17 @@ QualType CheckComparisonCategoryType(ComparisonCategoryType Kind, SourceLocation Loc); - /// \brief Tests whether Ty is an instance of std::initializer_list and, if + /// Tests whether Ty is an instance of std::initializer_list and, if /// it is and Element is not NULL, assigns the element type to Element. bool isStdInitializerList(QualType Ty, QualType *Element); - /// \brief Looks for the std::initializer_list template and instantiates it + /// Looks for the std::initializer_list template and instantiates it /// with Element, or emits an error if it's not found. /// /// \returns The instantiated template, or null on error. QualType BuildStdInitializerList(QualType Element, SourceLocation Loc); - /// \brief Determine whether Ctor is an initializer-list constructor, as + /// Determine whether Ctor is an initializer-list constructor, as /// defined in [dcl.init.list]p2. bool isInitListConstructor(const FunctionDecl *Ctor); @@ -4705,7 +4705,7 @@ /// constructed variable. void FinalizeVarWithDestructor(VarDecl *VD, const RecordType *DeclInitType); - /// \brief Helper class that collects exception specifications for + /// Helper class that collects exception specifications for /// implicitly-declared special member functions. class ImplicitExceptionSpecification { // Pointer to allow copying @@ -4732,26 +4732,26 @@ ComputedEST = EST_DynamicNone; } - /// \brief Get the computed exception specification type. + /// Get the computed exception specification type. ExceptionSpecificationType getExceptionSpecType() const { assert(!isComputedNoexcept(ComputedEST) && "noexcept(expr) should not be a possible result"); return ComputedEST; } - /// \brief The number of exceptions in the exception specification. + /// The number of exceptions in the exception specification. unsigned size() const { return Exceptions.size(); } - /// \brief The set of exceptions in the exception specification. + /// The set of exceptions in the exception specification. const QualType *data() const { return Exceptions.data(); } - /// \brief Integrate another called method into the collected data. + /// Integrate another called method into the collected data. void CalledDecl(SourceLocation CallLoc, const CXXMethodDecl *Method); - /// \brief Integrate an invoked expression into the collected data. + /// Integrate an invoked expression into the collected data. void CalledExpr(Expr *E); - /// \brief Overwrite an EPI's exception specification with this + /// Overwrite an EPI's exception specification with this /// computed exception specification. FunctionProtoType::ExceptionSpecInfo getExceptionSpec() const { FunctionProtoType::ExceptionSpecInfo ESI; @@ -4770,46 +4770,46 @@ } }; - /// \brief Determine what sort of exception specification a defaulted + /// Determine what sort of exception specification a defaulted /// copy constructor of a class will have. ImplicitExceptionSpecification ComputeDefaultedDefaultCtorExceptionSpec(SourceLocation Loc, CXXMethodDecl *MD); - /// \brief Determine what sort of exception specification a defaulted + /// Determine what sort of exception specification a defaulted /// default constructor of a class will have, and whether the parameter /// will be const. ImplicitExceptionSpecification ComputeDefaultedCopyCtorExceptionSpec(CXXMethodDecl *MD); - /// \brief Determine what sort of exception specification a defautled + /// Determine what sort of exception specification a defautled /// copy assignment operator of a class will have, and whether the /// parameter will be const. ImplicitExceptionSpecification ComputeDefaultedCopyAssignmentExceptionSpec(CXXMethodDecl *MD); - /// \brief Determine what sort of exception specification a defaulted move + /// Determine what sort of exception specification a defaulted move /// constructor of a class will have. ImplicitExceptionSpecification ComputeDefaultedMoveCtorExceptionSpec(CXXMethodDecl *MD); - /// \brief Determine what sort of exception specification a defaulted move + /// Determine what sort of exception specification a defaulted move /// assignment operator of a class will have. ImplicitExceptionSpecification ComputeDefaultedMoveAssignmentExceptionSpec(CXXMethodDecl *MD); - /// \brief Determine what sort of exception specification a defaulted + /// Determine what sort of exception specification a defaulted /// destructor of a class will have. ImplicitExceptionSpecification ComputeDefaultedDtorExceptionSpec(CXXMethodDecl *MD); - /// \brief Determine what sort of exception specification an inheriting + /// Determine what sort of exception specification an inheriting /// constructor of a class will have. ImplicitExceptionSpecification ComputeInheritingCtorExceptionSpec(SourceLocation Loc, CXXConstructorDecl *CD); - /// \brief Evaluate the implicit exception specification for a defaulted + /// Evaluate the implicit exception specification for a defaulted /// special member function. void EvaluateImplicitExceptionSpec(SourceLocation Loc, CXXMethodDecl *MD); @@ -4818,7 +4818,7 @@ ExprResult ActOnNoexceptSpec(SourceLocation NoexceptLoc, Expr *NoexceptExpr, ExceptionSpecificationType &EST); - /// \brief Check the given exception-specification and update the + /// Check the given exception-specification and update the /// exception specification information with the results. void checkExceptionSpecification(bool IsTopLevel, ExceptionSpecificationType EST, @@ -4828,11 +4828,11 @@ SmallVectorImpl<QualType> &Exceptions, FunctionProtoType::ExceptionSpecInfo &ESI); - /// \brief Determine if we're in a case where we need to (incorrectly) eagerly + /// Determine if we're in a case where we need to (incorrectly) eagerly /// parse an exception specification to work around a libstdc++ bug. bool isLibstdcxxEagerExceptionSpecHack(const Declarator &D); - /// \brief Add an exception-specification to the given member function + /// Add an exception-specification to the given member function /// (or member function template). The exception-specification was parsed /// after the method itself was declared. void actOnDelayedExceptionSpecification(Decl *Method, @@ -4844,13 +4844,13 @@ class InheritedConstructorInfo; - /// \brief Determine if a special member function should have a deleted + /// Determine if a special member function should have a deleted /// definition when it is defaulted. bool ShouldDeleteSpecialMember(CXXMethodDecl *MD, CXXSpecialMember CSM, InheritedConstructorInfo *ICI = nullptr, bool Diagnose = false); - /// \brief Declare the implicit default constructor for the given class. + /// Declare the implicit default constructor for the given class. /// /// \param ClassDecl The class declaration into which the implicit /// default constructor will be added. @@ -4864,7 +4864,7 @@ void DefineImplicitDefaultConstructor(SourceLocation CurrentLocation, CXXConstructorDecl *Constructor); - /// \brief Declare the implicit destructor for the given class. + /// Declare the implicit destructor for the given class. /// /// \param ClassDecl The class declaration into which the implicit /// destructor will be added. @@ -4877,18 +4877,18 @@ void DefineImplicitDestructor(SourceLocation CurrentLocation, CXXDestructorDecl *Destructor); - /// \brief Build an exception spec for destructors that don't have one. + /// Build an exception spec for destructors that don't have one. /// /// C++11 says that user-defined destructors with no exception spec get one /// that looks as if the destructor was implicitly declared. void AdjustDestructorExceptionSpec(CXXRecordDecl *ClassDecl, CXXDestructorDecl *Destructor); - /// \brief Define the specified inheriting constructor. + /// Define the specified inheriting constructor. void DefineInheritingConstructor(SourceLocation UseLoc, CXXConstructorDecl *Constructor); - /// \brief Declare the implicit copy constructor for the given class. + /// Declare the implicit copy constructor for the given class. /// /// \param ClassDecl The class declaration into which the implicit /// copy constructor will be added. @@ -4901,7 +4901,7 @@ void DefineImplicitCopyConstructor(SourceLocation CurrentLocation, CXXConstructorDecl *Constructor); - /// \brief Declare the implicit move constructor for the given class. + /// Declare the implicit move constructor for the given class. /// /// \param ClassDecl The Class declaration into which the implicit /// move constructor will be added. @@ -4915,7 +4915,7 @@ void DefineImplicitMoveConstructor(SourceLocation CurrentLocation, CXXConstructorDecl *Constructor); - /// \brief Declare the implicit copy assignment operator for the given class. + /// Declare the implicit copy assignment operator for the given class. /// /// \param ClassDecl The class declaration into which the implicit /// copy assignment operator will be added. @@ -4923,11 +4923,11 @@ /// \returns The implicitly-declared copy assignment operator. CXXMethodDecl *DeclareImplicitCopyAssignment(CXXRecordDecl *ClassDecl); - /// \brief Defines an implicitly-declared copy assignment operator. + /// Defines an implicitly-declared copy assignment operator. void DefineImplicitCopyAssignment(SourceLocation CurrentLocation, CXXMethodDecl *MethodDecl); - /// \brief Declare the implicit move assignment operator for the given class. + /// Declare the implicit move assignment operator for the given class. /// /// \param ClassDecl The Class declaration into which the implicit /// move assignment operator will be added. @@ -4936,32 +4936,32 @@ /// wasn't declared. CXXMethodDecl *DeclareImplicitMoveAssignment(CXXRecordDecl *ClassDecl); - /// \brief Defines an implicitly-declared move assignment operator. + /// Defines an implicitly-declared move assignment operator. void DefineImplicitMoveAssignment(SourceLocation CurrentLocation, CXXMethodDecl *MethodDecl); - /// \brief Force the declaration of any implicitly-declared members of this + /// Force the declaration of any implicitly-declared members of this /// class. void ForceDeclarationOfImplicitMembers(CXXRecordDecl *Class); - /// \brief Check a completed declaration of an implicit special member. + /// Check a completed declaration of an implicit special member. void CheckImplicitSpecialMemberDeclaration(Scope *S, FunctionDecl *FD); - /// \brief Determine whether the given function is an implicitly-deleted + /// Determine whether the given function is an implicitly-deleted /// special member function. bool isImplicitlyDeleted(FunctionDecl *FD); - /// \brief Check whether 'this' shows up in the type of a static member + /// Check whether 'this' shows up in the type of a static member /// function after the (naturally empty) cv-qualifier-seq would be. /// /// \returns true if an error occurred. bool checkThisInStaticMemberFunctionType(CXXMethodDecl *Method); - /// \brief Whether this' shows up in the exception specification of a static + /// Whether this' shows up in the exception specification of a static /// member function. bool checkThisInStaticMemberFunctionExceptionSpec(CXXMethodDecl *Method); - /// \brief Check whether 'this' shows up in the attributes of the given + /// Check whether 'this' shows up in the attributes of the given /// static member function. /// /// \returns true if an error occurred. @@ -5043,7 +5043,7 @@ void *TyOrExpr, SourceLocation RParenLoc); - /// \brief Handle a C++1z fold-expression: ( expr op ... op expr ). + /// Handle a C++1z fold-expression: ( expr op ... op expr ). ExprResult ActOnCXXFoldExpr(SourceLocation LParenLoc, Expr *LHS, tok::TokenKind Operator, SourceLocation EllipsisLoc, Expr *RHS, @@ -5058,17 +5058,17 @@ //// ActOnCXXThis - Parse 'this' pointer. ExprResult ActOnCXXThis(SourceLocation loc); - /// \brief Try to retrieve the type of the 'this' pointer. + /// Try to retrieve the type of the 'this' pointer. /// /// \returns The type of 'this', if possible. Otherwise, returns a NULL type. QualType getCurrentThisType(); - /// \brief When non-NULL, the C++ 'this' expression is allowed despite the + /// When non-NULL, the C++ 'this' expression is allowed despite the /// current context not being a non-static member function. In such cases, /// this provides the type used for 'this'. QualType CXXThisTypeOverride; - /// \brief RAII object used to temporarily allow the C++ 'this' expression + /// RAII object used to temporarily allow the C++ 'this' expression /// to be used, with the given qualifiers on the current class type. class CXXThisScopeRAII { Sema &S; @@ -5076,7 +5076,7 @@ bool Enabled; public: - /// \brief Introduce a new scope where 'this' may be allowed (when enabled), + /// Introduce a new scope where 'this' may be allowed (when enabled), /// using the given declaration (which is either a class template or a /// class) along with the given qualifiers. /// along with the qualifiers placed on '*this'. @@ -5086,7 +5086,7 @@ ~CXXThisScopeRAII(); }; - /// \brief Make sure the value of 'this' is actually available in the current + /// Make sure the value of 'this' is actually available in the current /// context, if it is a potentially evaluated context. /// /// \param Loc The location at which the capture of 'this' occurs. @@ -5106,7 +5106,7 @@ const unsigned *const FunctionScopeIndexToStopAt = nullptr, bool ByCopy = false); - /// \brief Determine whether the given type is the type of *this that is used + /// Determine whether the given type is the type of *this that is used /// outside of the body of a member function for a type that is currently /// being defined. bool isThisOutsideMemberFunctionBody(QualType BaseType); @@ -5168,19 +5168,19 @@ bool CheckAllocatedType(QualType AllocType, SourceLocation Loc, SourceRange R); - /// \brief The scope in which to find allocation functions. + /// The scope in which to find allocation functions. enum AllocationFunctionScope { - /// \brief Only look for allocation functions in the global scope. + /// Only look for allocation functions in the global scope. AFS_Global, - /// \brief Only look for allocation functions in the scope of the + /// Only look for allocation functions in the scope of the /// allocated class. AFS_Class, - /// \brief Look for allocation functions in both the global scope + /// Look for allocation functions in both the global scope /// and in the scope of the allocated class. AFS_Both }; - /// \brief Finds the overloads of operator new and delete that are appropriate + /// Finds the overloads of operator new and delete that are appropriate /// for the allocation. bool FindAllocationFunctions(SourceLocation StartLoc, SourceRange Range, AllocationFunctionScope NewScope, @@ -5218,7 +5218,7 @@ ExprResult BuildCXXNoexceptExpr(SourceLocation KeyLoc, Expr *Operand, SourceLocation RParen); - /// \brief Parsed one of the type trait support pseudo-functions. + /// Parsed one of the type trait support pseudo-functions. ExprResult ActOnTypeTrait(TypeTrait Kind, SourceLocation KWLoc, ArrayRef<ParsedType> Args, SourceLocation RParenLoc); @@ -5313,7 +5313,7 @@ bool isDependentScopeSpecifier(const CXXScopeSpec &SS); CXXRecordDecl *getCurrentInstantiationOf(NestedNameSpecifier *NNS); - /// \brief The parser has parsed a global nested-name-specifier '::'. + /// The parser has parsed a global nested-name-specifier '::'. /// /// \param CCLoc The location of the '::'. /// @@ -5323,7 +5323,7 @@ /// \returns true if an error occurred, false otherwise. bool ActOnCXXGlobalScopeSpecifier(SourceLocation CCLoc, CXXScopeSpec &SS); - /// \brief The parser has parsed a '__super' nested-name-specifier. + /// The parser has parsed a '__super' nested-name-specifier. /// /// \param SuperLoc The location of the '__super' keyword. /// @@ -5340,23 +5340,23 @@ bool *CanCorrect = nullptr); NamedDecl *FindFirstQualifierInScope(Scope *S, NestedNameSpecifier *NNS); - /// \brief Keeps information about an identifier in a nested-name-spec. + /// Keeps information about an identifier in a nested-name-spec. /// struct NestedNameSpecInfo { - /// \brief The type of the object, if we're parsing nested-name-specifier in + /// The type of the object, if we're parsing nested-name-specifier in /// a member access expression. ParsedType ObjectType; - /// \brief The identifier preceding the '::'. + /// The identifier preceding the '::'. IdentifierInfo *Identifier; - /// \brief The location of the identifier. + /// The location of the identifier. SourceLocation IdentifierLoc; - /// \brief The location of the '::'. + /// The location of the '::'. SourceLocation CCLoc; - /// \brief Creates info object for the most typical case. + /// Creates info object for the most typical case. NestedNameSpecInfo(IdentifierInfo *II, SourceLocation IdLoc, SourceLocation ColonColonLoc, ParsedType ObjectType = ParsedType()) : ObjectType(ObjectType), Identifier(II), IdentifierLoc(IdLoc), @@ -5382,7 +5382,7 @@ bool *IsCorrectedToColon = nullptr, bool OnlyNamespace = false); - /// \brief The parser has parsed a nested-name-specifier 'identifier::'. + /// The parser has parsed a nested-name-specifier 'identifier::'. /// /// \param S The scope in which this nested-name-specifier occurs. /// @@ -5425,7 +5425,7 @@ NestedNameSpecInfo &IdInfo, bool EnteringContext); - /// \brief The parser has parsed a nested-name-specifier + /// The parser has parsed a nested-name-specifier /// 'template[opt] template-name < template-args >::'. /// /// \param S The scope in which this nested-name-specifier occurs. @@ -5459,7 +5459,7 @@ SourceLocation CCLoc, bool EnteringContext); - /// \brief Given a C++ nested-name-specifier, produce an annotation value + /// Given a C++ nested-name-specifier, produce an annotation value /// that the parser can use later to reconstruct the given /// nested-name-specifier. /// @@ -5469,7 +5469,7 @@ /// nested-name-specifier \p SS. void *SaveNestedNameSpecifierAnnotation(CXXScopeSpec &SS); - /// \brief Given an annotation pointer for a nested-name-specifier, restore + /// Given an annotation pointer for a nested-name-specifier, restore /// the nested-name-specifier structure. /// /// \param Annotation The annotation pointer, produced by @@ -5511,13 +5511,13 @@ /// initializer for the declaration 'Dcl'. void ActOnCXXExitDeclInitializer(Scope *S, Decl *Dcl); - /// \brief Create a new lambda closure type. + /// Create a new lambda closure type. CXXRecordDecl *createLambdaClosureType(SourceRange IntroducerRange, TypeSourceInfo *Info, bool KnownDependent, LambdaCaptureDefault CaptureDefault); - /// \brief Start the definition of a lambda expression. + /// Start the definition of a lambda expression. CXXMethodDecl *startLambdaDefinition(CXXRecordDecl *Class, SourceRange IntroducerRange, TypeSourceInfo *MethodType, @@ -5525,7 +5525,7 @@ ArrayRef<ParmVarDecl *> Params, bool IsConstexprSpecified); - /// \brief Endow the lambda scope info with the relevant properties. + /// Endow the lambda scope info with the relevant properties. void buildLambdaScope(sema::LambdaScopeInfo *LSI, CXXMethodDecl *CallOperator, SourceRange IntroducerRange, @@ -5535,7 +5535,7 @@ bool ExplicitResultType, bool Mutable); - /// \brief Perform initialization analysis of the init-capture and perform + /// Perform initialization analysis of the init-capture and perform /// any implicit conversions such as an lvalue-to-rvalue conversion if /// not being used to initialize a reference. ParsedType actOnLambdaInitCaptureInitialization( @@ -5548,7 +5548,7 @@ IdentifierInfo *Id, bool DirectInit, Expr *&Init); - /// \brief Create a dummy variable within the declcontext of the lambda's + /// Create a dummy variable within the declcontext of the lambda's /// call operator, for name lookup purposes for a lambda init capture. /// /// CodeGen handles emission of lambda captures, ignoring these dummy @@ -5558,17 +5558,17 @@ IdentifierInfo *Id, unsigned InitStyle, Expr *Init); - /// \brief Build the implicit field for an init-capture. + /// Build the implicit field for an init-capture. FieldDecl *buildInitCaptureField(sema::LambdaScopeInfo *LSI, VarDecl *Var); - /// \brief Note that we have finished the explicit captures for the + /// Note that we have finished the explicit captures for the /// given lambda. void finishLambdaExplicitCaptures(sema::LambdaScopeInfo *LSI); - /// \brief Introduce the lambda parameters into scope. + /// Introduce the lambda parameters into scope. void addLambdaParameters(CXXMethodDecl *CallOperator, Scope *CurScope); - /// \brief Deduce a block or lambda's return type based on the return + /// Deduce a block or lambda's return type based on the return /// statements present in the body. void deduceClosureReturnType(sema::CapturingScopeInfo &CSI); @@ -5589,13 +5589,13 @@ ExprResult ActOnLambdaExpr(SourceLocation StartLoc, Stmt *Body, Scope *CurScope); - /// \brief Does copying/destroying the captured variable have side effects? + /// Does copying/destroying the captured variable have side effects? bool CaptureHasSideEffects(const sema::Capture &From); - /// \brief Diagnose if an explicit lambda capture is unused. + /// Diagnose if an explicit lambda capture is unused. void DiagnoseUnusedLambdaCapture(const sema::Capture &From); - /// \brief Complete a lambda-expression having processed and attached the + /// Complete a lambda-expression having processed and attached the /// lambda body. ExprResult BuildLambdaExpr(SourceLocation StartLoc, SourceLocation EndLoc, sema::LambdaScopeInfo *LSI); @@ -5605,7 +5605,7 @@ QualType getLambdaConversionFunctionResultType(const FunctionProtoType *CallOpType); - /// \brief Define the "body" of the conversion from a lambda object to a + /// Define the "body" of the conversion from a lambda object to a /// function pointer. /// /// This routine doesn't actually define a sensible body; rather, it fills @@ -5615,7 +5615,7 @@ void DefineImplicitLambdaToFunctionPointerConversion( SourceLocation CurrentLoc, CXXConversionDecl *Conv); - /// \brief Define the "body" of the conversion from a lambda object to a + /// Define the "body" of the conversion from a lambda object to a /// block pointer. /// /// This routine doesn't actually define a sensible body; rather, it fills @@ -5784,30 +5784,30 @@ void MarkBaseAndMemberDestructorsReferenced(SourceLocation Loc, CXXRecordDecl *Record); - /// \brief The list of classes whose vtables have been used within + /// The list of classes whose vtables have been used within /// this translation unit, and the source locations at which the /// first use occurred. typedef std::pair<CXXRecordDecl*, SourceLocation> VTableUse; - /// \brief The list of vtables that are required but have not yet been + /// The list of vtables that are required but have not yet been /// materialized. SmallVector<VTableUse, 16> VTableUses; - /// \brief The set of classes whose vtables have been used within + /// The set of classes whose vtables have been used within /// this translation unit, and a bit that will be true if the vtable is /// required to be emitted (otherwise, it should be emitted only if needed /// by code generation). llvm::DenseMap<CXXRecordDecl *, bool> VTablesUsed; - /// \brief Load any externally-stored vtable uses. + /// Load any externally-stored vtable uses. void LoadExternalVTableUses(); - /// \brief Note that the vtable for the given class was used at the + /// Note that the vtable for the given class was used at the /// given location. void MarkVTableUsed(SourceLocation Loc, CXXRecordDecl *Class, bool DefinitionRequired = false); - /// \brief Mark the exception specifications of all virtual member functions + /// Mark the exception specifications of all virtual member functions /// in the given class as needed. void MarkVirtualMemberExceptionSpecsNeeded(SourceLocation Loc, const CXXRecordDecl *RD); @@ -5817,7 +5817,7 @@ void MarkVirtualMembersReferenced(SourceLocation Loc, const CXXRecordDecl *RD); - /// \brief Define all of the vtables that have been used in this + /// Define all of the vtables that have been used in this /// translation unit and reference any virtual members used by those /// vtables. /// @@ -5831,7 +5831,7 @@ ArrayRef<CXXCtorInitializer*> MemInits, bool AnyErrors); - /// \brief Check class-level dllimport/dllexport attribute. The caller must + /// Check class-level dllimport/dllexport attribute. The caller must /// ensure that referenceDLLExportedClassMethods is called some point later /// when all outer classes of Class are complete. void checkClassLevelDLLAttribute(CXXRecordDecl *Class); @@ -6047,7 +6047,7 @@ void HandleDelayedAccessCheck(sema::DelayedDiagnostic &DD, Decl *Ctx); - /// \brief When true, access checking violations are treated as SFINAE + /// When true, access checking violations are treated as SFINAE /// failures rather than hard errors. bool AccessCheckingSFINAE; @@ -6165,7 +6165,7 @@ SourceLocation RAngleLoc, Expr *RequiresClause); - /// \brief The context in which we are checking a template parameter list. + /// The context in which we are checking a template parameter list. enum TemplateParamListContext { TPC_ClassTemplate, TPC_VarTemplate, @@ -6223,7 +6223,7 @@ bool IsCtorOrDtorName = false, bool IsClassName = false); - /// \brief Parsed an elaborated-type-specifier that refers to a template-id, + /// Parsed an elaborated-type-specifier that refers to a template-id, /// such as \c class T::template apply<U>. TypeResult ActOnTagTemplateIdType(TagUseKind TUK, TypeSpecifierType TagSpec, @@ -6349,18 +6349,18 @@ &Converted, bool &HasDefaultArg); - /// \brief Specifies the context in which a particular template + /// Specifies the context in which a particular template /// argument is being checked. enum CheckTemplateArgumentKind { - /// \brief The template argument was specified in the code or was + /// The template argument was specified in the code or was /// instantiated with some deduced template arguments. CTAK_Specified, - /// \brief The template argument was deduced via template argument + /// The template argument was deduced via template argument /// deduction. CTAK_Deduced, - /// \brief The template argument was deduced from an array bound + /// The template argument was deduced from an array bound /// via template argument deduction. CTAK_DeducedFromArrayBound }; @@ -6374,7 +6374,7 @@ SmallVectorImpl<TemplateArgument> &Converted, CheckTemplateArgumentKind CTAK = CTAK_Specified); - /// \brief Check that the given template arguments can be be provided to + /// Check that the given template arguments can be be provided to /// the given template, converting the arguments along the way. /// /// \param Template The template to which the template arguments are being @@ -6427,10 +6427,10 @@ BuildExpressionFromIntegralTemplateArgument(const TemplateArgument &Arg, SourceLocation Loc); - /// \brief Enumeration describing how template parameter lists are compared + /// Enumeration describing how template parameter lists are compared /// for equality. enum TemplateParameterListEqualKind { - /// \brief We are matching the template parameter lists of two templates + /// We are matching the template parameter lists of two templates /// that might be redeclarations. /// /// \code @@ -6439,7 +6439,7 @@ /// \endcode TPL_TemplateMatch, - /// \brief We are matching the template parameter lists of two template + /// We are matching the template parameter lists of two template /// template parameters as part of matching the template parameter lists /// of two templates that might be redeclarations. /// @@ -6449,7 +6449,7 @@ /// \endcode TPL_TemplateTemplateParmMatch, - /// \brief We are matching the template parameter lists of a template + /// We are matching the template parameter lists of a template /// template argument against the template parameter lists of a template /// template parameter. /// @@ -6470,7 +6470,7 @@ bool CheckTemplateDeclScope(Scope *S, TemplateParameterList *TemplateParams); - /// \brief Called when the parser has parsed a C++ typename + /// Called when the parser has parsed a C++ typename /// specifier, e.g., "typename T::type". /// /// \param S The scope in which this typename type occurs. @@ -6483,7 +6483,7 @@ const CXXScopeSpec &SS, const IdentifierInfo &II, SourceLocation IdLoc); - /// \brief Called when the parser has parsed a C++ typename + /// Called when the parser has parsed a C++ typename /// specifier that ends in a template-id, e.g., /// "typename MetaFun::template apply<T1, T2>". /// @@ -6540,74 +6540,74 @@ /// location. Useful for error recovery. bool isUnexpandedParameterPackPermitted(); - /// \brief The context in which an unexpanded parameter pack is + /// The context in which an unexpanded parameter pack is /// being diagnosed. /// /// Note that the values of this enumeration line up with the first /// argument to the \c err_unexpanded_parameter_pack diagnostic. enum UnexpandedParameterPackContext { - /// \brief An arbitrary expression. + /// An arbitrary expression. UPPC_Expression = 0, - /// \brief The base type of a class type. + /// The base type of a class type. UPPC_BaseType, - /// \brief The type of an arbitrary declaration. + /// The type of an arbitrary declaration. UPPC_DeclarationType, - /// \brief The type of a data member. + /// The type of a data member. UPPC_DataMemberType, - /// \brief The size of a bit-field. + /// The size of a bit-field. UPPC_BitFieldWidth, - /// \brief The expression in a static assertion. + /// The expression in a static assertion. UPPC_StaticAssertExpression, - /// \brief The fixed underlying type of an enumeration. + /// The fixed underlying type of an enumeration. UPPC_FixedUnderlyingType, - /// \brief The enumerator value. + /// The enumerator value. UPPC_EnumeratorValue, - /// \brief A using declaration. + /// A using declaration. UPPC_UsingDeclaration, - /// \brief A friend declaration. + /// A friend declaration. UPPC_FriendDeclaration, - /// \brief A declaration qualifier. + /// A declaration qualifier. UPPC_DeclarationQualifier, - /// \brief An initializer. + /// An initializer. UPPC_Initializer, - /// \brief A default argument. + /// A default argument. UPPC_DefaultArgument, - /// \brief The type of a non-type template parameter. + /// The type of a non-type template parameter. UPPC_NonTypeTemplateParameterType, - /// \brief The type of an exception. + /// The type of an exception. UPPC_ExceptionType, - /// \brief Partial specialization. + /// Partial specialization. UPPC_PartialSpecialization, - /// \brief Microsoft __if_exists. + /// Microsoft __if_exists. UPPC_IfExists, - /// \brief Microsoft __if_not_exists. + /// Microsoft __if_not_exists. UPPC_IfNotExists, - /// \brief Lambda expression. + /// Lambda expression. UPPC_Lambda, - /// \brief Block expression, + /// Block expression, UPPC_Block }; - /// \brief Diagnose unexpanded parameter packs. + /// Diagnose unexpanded parameter packs. /// /// \param Loc The location at which we should emit the diagnostic. /// @@ -6621,7 +6621,7 @@ UnexpandedParameterPackContext UPPC, ArrayRef<UnexpandedParameterPack> Unexpanded); - /// \brief If the given type contains an unexpanded parameter pack, + /// If the given type contains an unexpanded parameter pack, /// diagnose the error. /// /// \param Loc The source location where a diagnostc should be emitted. @@ -6633,7 +6633,7 @@ bool DiagnoseUnexpandedParameterPack(SourceLocation Loc, TypeSourceInfo *T, UnexpandedParameterPackContext UPPC); - /// \brief If the given expression contains an unexpanded parameter + /// If the given expression contains an unexpanded parameter /// pack, diagnose the error. /// /// \param E The expression that is being checked for unexpanded @@ -6643,7 +6643,7 @@ bool DiagnoseUnexpandedParameterPack(Expr *E, UnexpandedParameterPackContext UPPC = UPPC_Expression); - /// \brief If the given nested-name-specifier contains an unexpanded + /// If the given nested-name-specifier contains an unexpanded /// parameter pack, diagnose the error. /// /// \param SS The nested-name-specifier that is being checked for @@ -6653,7 +6653,7 @@ bool DiagnoseUnexpandedParameterPack(const CXXScopeSpec &SS, UnexpandedParameterPackContext UPPC); - /// \brief If the given name contains an unexpanded parameter pack, + /// If the given name contains an unexpanded parameter pack, /// diagnose the error. /// /// \param NameInfo The name (with source location information) that @@ -6663,7 +6663,7 @@ bool DiagnoseUnexpandedParameterPack(const DeclarationNameInfo &NameInfo, UnexpandedParameterPackContext UPPC); - /// \brief If the given template name contains an unexpanded parameter pack, + /// If the given template name contains an unexpanded parameter pack, /// diagnose the error. /// /// \param Loc The location of the template name. @@ -6676,7 +6676,7 @@ TemplateName Template, UnexpandedParameterPackContext UPPC); - /// \brief If the given template argument contains an unexpanded parameter + /// If the given template argument contains an unexpanded parameter /// pack, diagnose the error. /// /// \param Arg The template argument that is being checked for unexpanded @@ -6686,7 +6686,7 @@ bool DiagnoseUnexpandedParameterPack(TemplateArgumentLoc Arg, UnexpandedParameterPackContext UPPC); - /// \brief Collect the set of unexpanded parameter packs within the given + /// Collect the set of unexpanded parameter packs within the given /// template argument. /// /// \param Arg The template argument that will be traversed to find @@ -6694,7 +6694,7 @@ void collectUnexpandedParameterPacks(TemplateArgument Arg, SmallVectorImpl<UnexpandedParameterPack> &Unexpanded); - /// \brief Collect the set of unexpanded parameter packs within the given + /// Collect the set of unexpanded parameter packs within the given /// template argument. /// /// \param Arg The template argument that will be traversed to find @@ -6702,7 +6702,7 @@ void collectUnexpandedParameterPacks(TemplateArgumentLoc Arg, SmallVectorImpl<UnexpandedParameterPack> &Unexpanded); - /// \brief Collect the set of unexpanded parameter packs within the given + /// Collect the set of unexpanded parameter packs within the given /// type. /// /// \param T The type that will be traversed to find @@ -6710,7 +6710,7 @@ void collectUnexpandedParameterPacks(QualType T, SmallVectorImpl<UnexpandedParameterPack> &Unexpanded); - /// \brief Collect the set of unexpanded parameter packs within the given + /// Collect the set of unexpanded parameter packs within the given /// type. /// /// \param TL The type that will be traversed to find @@ -6718,7 +6718,7 @@ void collectUnexpandedParameterPacks(TypeLoc TL, SmallVectorImpl<UnexpandedParameterPack> &Unexpanded); - /// \brief Collect the set of unexpanded parameter packs within the given + /// Collect the set of unexpanded parameter packs within the given /// nested-name-specifier. /// /// \param NNS The nested-name-specifier that will be traversed to find @@ -6726,7 +6726,7 @@ void collectUnexpandedParameterPacks(NestedNameSpecifierLoc NNS, SmallVectorImpl<UnexpandedParameterPack> &Unexpanded); - /// \brief Collect the set of unexpanded parameter packs within the given + /// Collect the set of unexpanded parameter packs within the given /// name. /// /// \param NameInfo The name that will be traversed to find @@ -6734,7 +6734,7 @@ void collectUnexpandedParameterPacks(const DeclarationNameInfo &NameInfo, SmallVectorImpl<UnexpandedParameterPack> &Unexpanded); - /// \brief Invoked when parsing a template argument followed by an + /// Invoked when parsing a template argument followed by an /// ellipsis, which creates a pack expansion. /// /// \param Arg The template argument preceding the ellipsis, which @@ -6744,7 +6744,7 @@ ParsedTemplateArgument ActOnPackExpansion(const ParsedTemplateArgument &Arg, SourceLocation EllipsisLoc); - /// \brief Invoked when parsing a type followed by an ellipsis, which + /// Invoked when parsing a type followed by an ellipsis, which /// creates a pack expansion. /// /// \param Type The type preceding the ellipsis, which will become @@ -6753,20 +6753,20 @@ /// \param EllipsisLoc The location of the ellipsis. TypeResult ActOnPackExpansion(ParsedType Type, SourceLocation EllipsisLoc); - /// \brief Construct a pack expansion type from the pattern of the pack + /// Construct a pack expansion type from the pattern of the pack /// expansion. TypeSourceInfo *CheckPackExpansion(TypeSourceInfo *Pattern, SourceLocation EllipsisLoc, Optional<unsigned> NumExpansions); - /// \brief Construct a pack expansion type from the pattern of the pack + /// Construct a pack expansion type from the pattern of the pack /// expansion. QualType CheckPackExpansion(QualType Pattern, SourceRange PatternRange, SourceLocation EllipsisLoc, Optional<unsigned> NumExpansions); - /// \brief Invoked when parsing an expression followed by an ellipsis, which + /// Invoked when parsing an expression followed by an ellipsis, which /// creates a pack expansion. /// /// \param Pattern The expression preceding the ellipsis, which will become @@ -6775,7 +6775,7 @@ /// \param EllipsisLoc The location of the ellipsis. ExprResult ActOnPackExpansion(Expr *Pattern, SourceLocation EllipsisLoc); - /// \brief Invoked when parsing an expression followed by an ellipsis, which + /// Invoked when parsing an expression followed by an ellipsis, which /// creates a pack expansion. /// /// \param Pattern The expression preceding the ellipsis, which will become @@ -6785,7 +6785,7 @@ ExprResult CheckPackExpansion(Expr *Pattern, SourceLocation EllipsisLoc, Optional<unsigned> NumExpansions); - /// \brief Determine whether we could expand a pack expansion with the + /// Determine whether we could expand a pack expansion with the /// given set of parameter packs into separate arguments by repeatedly /// transforming the pattern. /// @@ -6827,7 +6827,7 @@ bool &RetainExpansion, Optional<unsigned> &NumExpansions); - /// \brief Determine the number of arguments in the given pack expansion + /// Determine the number of arguments in the given pack expansion /// type. /// /// This routine assumes that the number of arguments in the expansion is @@ -6837,7 +6837,7 @@ Optional<unsigned> getNumArgumentsInExpansion(QualType T, const MultiLevelTemplateArgumentList &TemplateArgs); - /// \brief Determine whether the given declarator contains any unexpanded + /// Determine whether the given declarator contains any unexpanded /// parameter packs. /// /// This routine is used by the parser to disambiguate function declarators @@ -6854,7 +6854,7 @@ /// false otherwise. bool containsUnexpandedParameterPacks(Declarator &D); - /// \brief Returns the pattern of the pack expansion for a template argument. + /// Returns the pattern of the pack expansion for a template argument. /// /// \param OrigLoc The template argument to expand. /// @@ -6886,7 +6886,7 @@ QualType adjustCCAndNoReturn(QualType ArgFunctionType, QualType FunctionType, bool AdjustExceptionSpec = false); - /// \brief Describes the result of template argument deduction. + /// Describes the result of template argument deduction. /// /// The TemplateDeductionResult enumeration describes the result of /// template argument deduction, as returned from @@ -6896,51 +6896,51 @@ /// list (if successful) or the specific template parameters or /// deduced arguments that were involved in the failure. enum TemplateDeductionResult { - /// \brief Template argument deduction was successful. + /// Template argument deduction was successful. TDK_Success = 0, - /// \brief The declaration was invalid; do nothing. + /// The declaration was invalid; do nothing. TDK_Invalid, - /// \brief Template argument deduction exceeded the maximum template + /// Template argument deduction exceeded the maximum template /// instantiation depth (which has already been diagnosed). TDK_InstantiationDepth, - /// \brief Template argument deduction did not deduce a value + /// Template argument deduction did not deduce a value /// for every template parameter. TDK_Incomplete, - /// \brief Template argument deduction produced inconsistent + /// Template argument deduction produced inconsistent /// deduced values for the given template parameter. TDK_Inconsistent, - /// \brief Template argument deduction failed due to inconsistent + /// Template argument deduction failed due to inconsistent /// cv-qualifiers on a template parameter type that would /// otherwise be deduced, e.g., we tried to deduce T in "const T" /// but were given a non-const "X". TDK_Underqualified, - /// \brief Substitution of the deduced template argument values + /// Substitution of the deduced template argument values /// resulted in an error. TDK_SubstitutionFailure, - /// \brief After substituting deduced template arguments, a dependent + /// After substituting deduced template arguments, a dependent /// parameter type did not match the corresponding argument. TDK_DeducedMismatch, - /// \brief After substituting deduced template arguments, an element of + /// After substituting deduced template arguments, an element of /// a dependent parameter type did not match the corresponding element /// of the corresponding argument (when deducing from an initializer list). TDK_DeducedMismatchNested, - /// \brief A non-depnedent component of the parameter did not match the + /// A non-depnedent component of the parameter did not match the /// corresponding component of the argument. TDK_NonDeducedMismatch, - /// \brief When performing template argument deduction for a function + /// When performing template argument deduction for a function /// template, there were too many call arguments. TDK_TooManyArguments, - /// \brief When performing template argument deduction for a function + /// When performing template argument deduction for a function /// template, there were too few call arguments. TDK_TooFewArguments, - /// \brief The explicitly-specified template arguments were not valid + /// The explicitly-specified template arguments were not valid /// template arguments for the given template. TDK_InvalidExplicitArguments, - /// \brief Checking non-dependent argument conversions failed. + /// Checking non-dependent argument conversions failed. TDK_NonDependentConversionFailure, - /// \brief Deduction failed; that's all we know. + /// Deduction failed; that's all we know. TDK_MiscellaneousDeductionFailure, - /// \brief CUDA Target attributes do not match. + /// CUDA Target attributes do not match. TDK_CUDATargetMismatch }; @@ -7013,16 +7013,16 @@ sema::TemplateDeductionInfo &Info, bool IsAddressOfFunction = false); - /// \brief Substitute Replacement for \p auto in \p TypeWithAuto + /// Substitute Replacement for \p auto in \p TypeWithAuto QualType SubstAutoType(QualType TypeWithAuto, QualType Replacement); - /// \brief Substitute Replacement for auto in TypeWithAuto + /// Substitute Replacement for auto in TypeWithAuto TypeSourceInfo* SubstAutoTypeSourceInfo(TypeSourceInfo *TypeWithAuto, QualType Replacement); - /// \brief Completely replace the \c auto in \p TypeWithAuto by + /// Completely replace the \c auto in \p TypeWithAuto by /// \p Replacement. This does not retain any \c auto type sugar. QualType ReplaceAutoType(QualType TypeWithAuto, QualType Replacement); - /// \brief Result type of DeduceAutoType. + /// Result type of DeduceAutoType. enum DeduceAutoResult { DAR_Succeeded, DAR_Failed, @@ -7039,7 +7039,7 @@ bool DeduceReturnType(FunctionDecl *FD, SourceLocation Loc, bool Diagnose = true); - /// \brief Declare implicit deduction guides for a class template if we've + /// Declare implicit deduction guides for a class template if we've /// not already done so. void DeclareImplicitDeductionGuides(TemplateDecl *Template, SourceLocation Loc); @@ -7120,7 +7120,7 @@ /// alone is not sufficient to identify the context). This covers template /// instantiation and various forms of implicitly-generated functions. struct CodeSynthesisContext { - /// \brief The kind of template instantiation we are performing + /// The kind of template instantiation we are performing enum SynthesisKind { /// We are instantiating a template declaration. The entity is /// the declaration we're instantiating (e.g., a CXXRecordDecl). @@ -7176,31 +7176,31 @@ Memoization } Kind; - /// \brief Was the enclosing context a non-instantiation SFINAE context? + /// Was the enclosing context a non-instantiation SFINAE context? bool SavedInNonInstantiationSFINAEContext; - /// \brief The point of instantiation or synthesis within the source code. + /// The point of instantiation or synthesis within the source code. SourceLocation PointOfInstantiation; - /// \brief The entity that is being synthesized. + /// The entity that is being synthesized. Decl *Entity; - /// \brief The template (or partial specialization) in which we are + /// The template (or partial specialization) in which we are /// performing the instantiation, for substitutions of prior template /// arguments. NamedDecl *Template; - /// \brief The list of template arguments we are substituting, if they + /// The list of template arguments we are substituting, if they /// are not part of the entity. const TemplateArgument *TemplateArgs; // FIXME: Wrap this union around more members, or perhaps store the // kind-specific members in the RAII object owning the context. union { - /// \brief The number of template arguments in TemplateArgs. + /// The number of template arguments in TemplateArgs. unsigned NumTemplateArgs; - /// \brief The special member being declared or defined. + /// The special member being declared or defined. CXXSpecialMember SpecialMember; }; @@ -7209,11 +7209,11 @@ return {TemplateArgs, NumTemplateArgs}; } - /// \brief The template deduction info object associated with the + /// The template deduction info object associated with the /// substitution or checking of explicit or deduced template arguments. sema::TemplateDeductionInfo *DeductionInfo; - /// \brief The source range that covers the construct that cause + /// The source range that covers the construct that cause /// the instantiation, e.g., the template-id that causes a class /// template instantiation. SourceRange InstantiationRange; @@ -7222,12 +7222,12 @@ : Kind(TemplateInstantiation), Entity(nullptr), Template(nullptr), TemplateArgs(nullptr), NumTemplateArgs(0), DeductionInfo(nullptr) {} - /// \brief Determines whether this template is an actual instantiation + /// Determines whether this template is an actual instantiation /// that should be counted toward the maximum instantiation depth. bool isInstantiationRecord() const; }; - /// \brief List of active code synthesis contexts. + /// List of active code synthesis contexts. /// /// This vector is treated as a stack. As synthesis of one entity requires /// synthesis of another, additional contexts are pushed onto the stack. @@ -7240,32 +7240,32 @@ /// by some template instantiation. llvm::DenseSet<QualType> InstantiatedNonDependentTypes; - /// \brief Extra modules inspected when performing a lookup during a template + /// Extra modules inspected when performing a lookup during a template /// instantiation. Computed lazily. SmallVector<Module*, 16> CodeSynthesisContextLookupModules; - /// \brief Cache of additional modules that should be used for name lookup + /// Cache of additional modules that should be used for name lookup /// within the current template instantiation. Computed lazily; use /// getLookupModules() to get a complete set. llvm::DenseSet<Module*> LookupModulesCache; - /// \brief Get the set of additional modules that should be checked during + /// Get the set of additional modules that should be checked during /// name lookup. A module and its imports become visible when instanting a /// template defined within it. llvm::DenseSet<Module*> &getLookupModules(); - /// \brief Map from the most recent declaration of a namespace to the most + /// Map from the most recent declaration of a namespace to the most /// recent visible declaration of that namespace. llvm::DenseMap<NamedDecl*, NamedDecl*> VisibleNamespaceCache; - /// \brief Whether we are in a SFINAE context that is not associated with + /// Whether we are in a SFINAE context that is not associated with /// template instantiation. /// /// This is used when setting up a SFINAE trap (\c see SFINAETrap) outside /// of a template instantiation or template argument deduction. bool InNonInstantiationSFINAEContext; - /// \brief The number of \p CodeSynthesisContexts that are not template + /// The number of \p CodeSynthesisContexts that are not template /// instantiations and, therefore, should not be counted as part of the /// instantiation depth. /// @@ -7274,7 +7274,7 @@ // FIXME: Should we have a similar limit for other forms of synthesis? unsigned NonInstantiationEntries; - /// \brief The depth of the context stack at the point when the most recent + /// The depth of the context stack at the point when the most recent /// error or warning was produced. /// /// This value is used to suppress printing of redundant context stacks @@ -7282,7 +7282,7 @@ // FIXME: Does this belong in Sema? It's tough to implement it anywhere else. unsigned LastEmittedCodeSynthesisContextDepth = 0; - /// \brief The template instantiation callbacks to trace or track + /// The template instantiation callbacks to trace or track /// instantiations (objects can be chained). /// /// This callbacks is used to print, trace or track template @@ -7290,7 +7290,7 @@ std::vector<std::unique_ptr<TemplateInstantiationCallback>> TemplateInstCallbacks; - /// \brief The current index into pack expansion arguments that will be + /// The current index into pack expansion arguments that will be /// used for substitution of parameter packs. /// /// The pack expansion index will be -1 to indicate that parameter packs @@ -7298,7 +7298,7 @@ /// which argument within the parameter pack will be used for substitution. int ArgumentPackSubstitutionIndex; - /// \brief RAII object used to change the argument pack substitution index + /// RAII object used to change the argument pack substitution index /// within a \c Sema object. /// /// See \c ArgumentPackSubstitutionIndex for more information. @@ -7319,7 +7319,7 @@ friend class ArgumentPackSubstitutionRAII; - /// \brief For each declaration that involved template argument deduction, the + /// For each declaration that involved template argument deduction, the /// set of diagnostics that were suppressed during that template argument /// deduction. /// @@ -7328,7 +7328,7 @@ SuppressedDiagnosticsMap; SuppressedDiagnosticsMap SuppressedDiagnostics; - /// \brief A stack object to be created when performing template + /// A stack object to be created when performing template /// instantiation. /// /// Construction of an object of type \c InstantiatingTemplate @@ -7340,7 +7340,7 @@ /// Destruction of this object will pop the named instantiation off /// the stack. struct InstantiatingTemplate { - /// \brief Note that we are instantiating a class template, + /// Note that we are instantiating a class template, /// function template, variable template, alias template, /// or a member thereof. InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation, @@ -7348,20 +7348,20 @@ SourceRange InstantiationRange = SourceRange()); struct ExceptionSpecification {}; - /// \brief Note that we are instantiating an exception specification + /// Note that we are instantiating an exception specification /// of a function template. InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation, FunctionDecl *Entity, ExceptionSpecification, SourceRange InstantiationRange = SourceRange()); - /// \brief Note that we are instantiating a default argument in a + /// Note that we are instantiating a default argument in a /// template-id. InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation, TemplateParameter Param, TemplateDecl *Template, ArrayRef<TemplateArgument> TemplateArgs, SourceRange InstantiationRange = SourceRange()); - /// \brief Note that we are substituting either explicitly-specified or + /// Note that we are substituting either explicitly-specified or /// deduced template arguments during function template argument deduction. InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation, FunctionTemplateDecl *FunctionTemplate, @@ -7370,7 +7370,7 @@ sema::TemplateDeductionInfo &DeductionInfo, SourceRange InstantiationRange = SourceRange()); - /// \brief Note that we are instantiating as part of template + /// Note that we are instantiating as part of template /// argument deduction for a class template declaration. InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation, TemplateDecl *Template, @@ -7378,7 +7378,7 @@ sema::TemplateDeductionInfo &DeductionInfo, SourceRange InstantiationRange = SourceRange()); - /// \brief Note that we are instantiating as part of template + /// Note that we are instantiating as part of template /// argument deduction for a class template partial /// specialization. InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation, @@ -7387,7 +7387,7 @@ sema::TemplateDeductionInfo &DeductionInfo, SourceRange InstantiationRange = SourceRange()); - /// \brief Note that we are instantiating as part of template + /// Note that we are instantiating as part of template /// argument deduction for a variable template partial /// specialization. InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation, @@ -7396,14 +7396,14 @@ sema::TemplateDeductionInfo &DeductionInfo, SourceRange InstantiationRange = SourceRange()); - /// \brief Note that we are instantiating a default argument for a function + /// Note that we are instantiating a default argument for a function /// parameter. InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation, ParmVarDecl *Param, ArrayRef<TemplateArgument> TemplateArgs, SourceRange InstantiationRange = SourceRange()); - /// \brief Note that we are substituting prior template arguments into a + /// Note that we are substituting prior template arguments into a /// non-type parameter. InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation, NamedDecl *Template, @@ -7411,7 +7411,7 @@ ArrayRef<TemplateArgument> TemplateArgs, SourceRange InstantiationRange); - /// \brief Note that we are substituting prior template arguments into a + /// Note that we are substituting prior template arguments into a /// template template parameter. InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation, NamedDecl *Template, @@ -7419,7 +7419,7 @@ ArrayRef<TemplateArgument> TemplateArgs, SourceRange InstantiationRange); - /// \brief Note that we are checking the default template argument + /// Note that we are checking the default template argument /// against the template parameter for a given template-id. InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation, TemplateDecl *Template, @@ -7428,16 +7428,16 @@ SourceRange InstantiationRange); - /// \brief Note that we have finished instantiating this template. + /// Note that we have finished instantiating this template. void Clear(); ~InstantiatingTemplate() { Clear(); } - /// \brief Determines whether we have exceeded the maximum + /// Determines whether we have exceeded the maximum /// recursive template instantiations. bool isInvalid() const { return Invalid; } - /// \brief Determine whether we are already instantiating this + /// Determine whether we are already instantiating this /// specialization in some surrounding active instantiation. bool isAlreadyInstantiating() const { return AlreadyInstantiating; } @@ -7482,7 +7482,7 @@ void PrintPragmaAttributeInstantiationPoint(); - /// \brief Determines whether we are currently in a context where + /// Determines whether we are currently in a context where /// template argument substitution failures are not considered /// errors. /// @@ -7492,7 +7492,7 @@ /// diagnostics that will be suppressed. Optional<sema::TemplateDeductionInfo *> isSFINAEContext() const; - /// \brief Determines whether we are currently in a context that + /// Determines whether we are currently in a context that /// is not evaluated as per C++ [expr] p5. bool isUnevaluatedContext() const { assert(!ExprEvalContexts.empty() && @@ -7500,7 +7500,7 @@ return ExprEvalContexts.back().isUnevaluated(); } - /// \brief RAII class used to determine whether SFINAE has + /// RAII class used to determine whether SFINAE has /// trapped any errors that occur during template argument /// deduction. class SFINAETrap { @@ -7533,13 +7533,13 @@ PrevLastDiagnosticIgnored); } - /// \brief Determine whether any SFINAE errors have been trapped. + /// Determine whether any SFINAE errors have been trapped. bool hasErrorOccurred() const { return SemaRef.NumSFINAEErrors > PrevSFINAEErrors; } }; - /// \brief RAII class used to indicate that we are performing provisional + /// RAII class used to indicate that we are performing provisional /// semantic analysis to determine the validity of a construct, so /// typo-correction and diagnostics in the immediate context (not within /// implicitly-instantiated templates) should be suppressed. @@ -7559,30 +7559,30 @@ } }; - /// \brief The current instantiation scope used to store local + /// The current instantiation scope used to store local /// variables. LocalInstantiationScope *CurrentInstantiationScope; - /// \brief Tracks whether we are in a context where typo correction is + /// Tracks whether we are in a context where typo correction is /// disabled. bool DisableTypoCorrection; - /// \brief The number of typos corrected by CorrectTypo. + /// The number of typos corrected by CorrectTypo. unsigned TyposCorrected; typedef llvm::SmallSet<SourceLocation, 2> SrcLocSet; typedef llvm::DenseMap<IdentifierInfo *, SrcLocSet> IdentifierSourceLocations; - /// \brief A cache containing identifiers for which typo correction failed and + /// A cache containing identifiers for which typo correction failed and /// their locations, so that repeated attempts to correct an identifier in a /// given location are ignored if typo correction already failed for it. IdentifierSourceLocations TypoCorrectionFailures; - /// \brief Worker object for performing CFG-based warnings. + /// Worker object for performing CFG-based warnings. sema::AnalysisBasedWarnings AnalysisWarnings; threadSafety::BeforeSet *ThreadSafetyDeclCache; - /// \brief An entity for which implicit template instantiation is required. + /// An entity for which implicit template instantiation is required. /// /// The source location associated with the declaration is the first place in /// the source code where the declaration was "used". It is not necessarily @@ -7592,7 +7592,7 @@ /// because users will need to know what code triggered the instantiation. typedef std::pair<ValueDecl *, SourceLocation> PendingImplicitInstantiation; - /// \brief The queue of implicit template instantiations that are required + /// The queue of implicit template instantiations that are required /// but have not yet been performed. std::deque<PendingImplicitInstantiation> PendingInstantiations; @@ -7638,7 +7638,7 @@ bool Enabled; }; - /// \brief The queue of implicit template instantiations that are required + /// The queue of implicit template instantiations that are required /// and must be performed within the current local scope. /// /// This queue is only used for member functions of local classes in @@ -7737,7 +7737,7 @@ ExprResult SubstExpr(Expr *E, const MultiLevelTemplateArgumentList &TemplateArgs); - /// \brief Substitute the given template arguments into a list of + /// Substitute the given template arguments into a list of /// expressions, expanding pack expansions if required. /// /// \param Exprs The list of expressions to substitute into. @@ -8179,14 +8179,14 @@ ObjCMethodDecl *tryCaptureObjCSelf(SourceLocation Loc); - /// \brief Describes the kind of message expression indicated by a message + /// Describes the kind of message expression indicated by a message /// send that starts with an identifier. enum ObjCMessageKind { - /// \brief The message is sent to 'super'. + /// The message is sent to 'super'. ObjCSuperMessage, - /// \brief The message is an instance message. + /// The message is an instance message. ObjCInstanceMessage, - /// \brief The message is a class message, and the identifier is a type + /// The message is a class message, and the identifier is a type /// name. ObjCClassMessage }; @@ -8295,12 +8295,12 @@ bool checkInitMethod(ObjCMethodDecl *method, QualType receiverTypeIfCall); - /// \brief Check whether the given new method is a valid override of the + /// Check whether the given new method is a valid override of the /// given overridden method, and set any properties that should be inherited. void CheckObjCMethodOverride(ObjCMethodDecl *NewMethod, const ObjCMethodDecl *Overridden); - /// \brief Describes the compatibility of a result type with its method. + /// Describes the compatibility of a result type with its method. enum ResultTypeCompatibilityKind { RTC_Compatible, RTC_Incompatible, @@ -8357,7 +8357,7 @@ LangOptions::PragmaMSPointersToMembersKind Kind, SourceLocation PragmaLoc); - /// \brief Called on well formed \#pragma vtordisp(). + /// Called on well formed \#pragma vtordisp(). void ActOnPragmaMSVtorDisp(PragmaMsStackAction Action, SourceLocation PragmaLoc, MSVtorDispAttr::Mode Value); @@ -8376,22 +8376,22 @@ int SectionFlags, SourceLocation PragmaSectionLocation); - /// \brief Called on well formed \#pragma bss_seg/data_seg/const_seg/code_seg. + /// Called on well formed \#pragma bss_seg/data_seg/const_seg/code_seg. void ActOnPragmaMSSeg(SourceLocation PragmaLocation, PragmaMsStackAction Action, llvm::StringRef StackSlotLabel, StringLiteral *SegmentName, llvm::StringRef PragmaName); - /// \brief Called on well formed \#pragma section(). + /// Called on well formed \#pragma section(). void ActOnPragmaMSSection(SourceLocation PragmaLocation, int SectionFlags, StringLiteral *SegmentName); - /// \brief Called on well-formed \#pragma init_seg(). + /// Called on well-formed \#pragma init_seg(). void ActOnPragmaMSInitSeg(SourceLocation PragmaLocation, StringLiteral *SegmentName); - /// \brief Called on #pragma clang __debug dump II + /// Called on #pragma clang __debug dump II void ActOnPragmaDump(Scope *S, SourceLocation Loc, IdentifierInfo *II); /// ActOnPragmaDetectMismatch - Call on well-formed \#pragma detect_mismatch @@ -8467,35 +8467,35 @@ /// the appropriate attribute. void AddCFAuditedAttribute(Decl *D); - /// \brief Called on well-formed '\#pragma clang attribute push'. + /// Called on well-formed '\#pragma clang attribute push'. void ActOnPragmaAttributePush(AttributeList &Attribute, SourceLocation PragmaLoc, attr::ParsedSubjectMatchRuleSet Rules); - /// \brief Called on well-formed '\#pragma clang attribute pop'. + /// Called on well-formed '\#pragma clang attribute pop'. void ActOnPragmaAttributePop(SourceLocation PragmaLoc); - /// \brief Adds the attributes that have been specified using the + /// Adds the attributes that have been specified using the /// '\#pragma clang attribute push' directives to the given declaration. void AddPragmaAttributes(Scope *S, Decl *D); void DiagnoseUnterminatedPragmaAttribute(); - /// \brief Called on well formed \#pragma clang optimize. + /// Called on well formed \#pragma clang optimize. void ActOnPragmaOptimize(bool On, SourceLocation PragmaLoc); - /// \brief Get the location for the currently active "\#pragma clang optimize + /// Get the location for the currently active "\#pragma clang optimize /// off". If this location is invalid, then the state of the pragma is "on". SourceLocation getOptimizeOffPragmaLocation() const { return OptimizeOffPragmaLocation; } - /// \brief Only called on function definitions; if there is a pragma in scope + /// Only called on function definitions; if there is a pragma in scope /// with the effect of a range-based optnone, consider marking the function /// with attribute optnone. void AddRangeBasedOptnone(FunctionDecl *FD); - /// \brief Adds the 'optnone' attribute to the function declaration if there + /// Adds the 'optnone' attribute to the function declaration if there /// are no conflicts; Loc represents the location causing the 'optnone' /// attribute to be added (usually because of a pragma). void AddOptnoneAttributeIfNoConflicts(FunctionDecl *FD, SourceLocation Loc); @@ -8577,36 +8577,36 @@ CurrOpenCLExtension = Ext; } - /// \brief Set OpenCL extensions for a type which can only be used when these + /// Set OpenCL extensions for a type which can only be used when these /// OpenCL extensions are enabled. If \p Exts is empty, do nothing. /// \param Exts A space separated list of OpenCL extensions. void setOpenCLExtensionForType(QualType T, llvm::StringRef Exts); - /// \brief Set OpenCL extensions for a declaration which can only be + /// Set OpenCL extensions for a declaration which can only be /// used when these OpenCL extensions are enabled. If \p Exts is empty, do /// nothing. /// \param Exts A space separated list of OpenCL extensions. void setOpenCLExtensionForDecl(Decl *FD, llvm::StringRef Exts); - /// \brief Set current OpenCL extensions for a type which can only be used + /// Set current OpenCL extensions for a type which can only be used /// when these OpenCL extensions are enabled. If current OpenCL extension is /// empty, do nothing. void setCurrentOpenCLExtensionForType(QualType T); - /// \brief Set current OpenCL extensions for a declaration which + /// Set current OpenCL extensions for a declaration which /// can only be used when these OpenCL extensions are enabled. If current /// OpenCL extension is empty, do nothing. void setCurrentOpenCLExtensionForDecl(Decl *FD); bool isOpenCLDisabledDecl(Decl *FD); - /// \brief Check if type \p T corresponding to declaration specifier \p DS + /// Check if type \p T corresponding to declaration specifier \p DS /// is disabled due to required OpenCL extensions being disabled. If so, /// emit diagnostics. /// \return true if type is disabled. bool checkOpenCLDisabledTypeDeclSpec(const DeclSpec &DS, QualType T); - /// \brief Check if declaration \p D used by expression \p E + /// Check if declaration \p D used by expression \p E /// is disabled due to required OpenCL extensions being disabled. If so, /// emit diagnostics. /// \return true if type is disabled. @@ -8619,7 +8619,7 @@ void *VarDataSharingAttributesStack; /// Set to true inside '#pragma omp declare target' region. bool IsInOpenMPDeclareTargetContext = false; - /// \brief Initialization of data-sharing attributes stack. + /// Initialization of data-sharing attributes stack. void InitDataSharingAttributesStack(); void DestroyDataSharingAttributesStack(); ExprResult @@ -8654,20 +8654,20 @@ SourceRange SrcRange = SourceRange()); public: - /// \brief Return true if the provided declaration \a VD should be captured by + /// Return true if the provided declaration \a VD should be captured by /// reference. /// \param Level Relative level of nested OpenMP construct for that the check /// is performed. bool isOpenMPCapturedByRef(const ValueDecl *D, unsigned Level) const; - /// \brief Check if the specified variable is used in one of the private + /// Check if the specified variable is used in one of the private /// clauses (private, firstprivate, lastprivate, reduction etc.) in OpenMP /// constructs. VarDecl *isOpenMPCapturedDecl(ValueDecl *D) const; ExprResult getOpenMPCapturedExpr(VarDecl *Capture, ExprValueKind VK, ExprObjectKind OK, SourceLocation Loc); - /// \brief Check if the specified variable is used in 'private' clause. + /// Check if the specified variable is used in 'private' clause. /// \param Level Relative level of nested OpenMP construct for that the check /// is performed. bool isOpenMPPrivateDecl(const ValueDecl *D, unsigned Level) const; @@ -8677,63 +8677,63 @@ /// \p D. void setOpenMPCaptureKind(FieldDecl *FD, const ValueDecl *D, unsigned Level); - /// \brief Check if the specified variable is captured by 'target' directive. + /// Check if the specified variable is captured by 'target' directive. /// \param Level Relative level of nested OpenMP construct for that the check /// is performed. bool isOpenMPTargetCapturedDecl(const ValueDecl *D, unsigned Level) const; ExprResult PerformOpenMPImplicitIntegerConversion(SourceLocation OpLoc, Expr *Op); - /// \brief Called on start of new data sharing attribute block. + /// Called on start of new data sharing attribute block. void StartOpenMPDSABlock(OpenMPDirectiveKind K, const DeclarationNameInfo &DirName, Scope *CurScope, SourceLocation Loc); - /// \brief Start analysis of clauses. + /// Start analysis of clauses. void StartOpenMPClause(OpenMPClauseKind K); - /// \brief End analysis of clauses. + /// End analysis of clauses. void EndOpenMPClause(); - /// \brief Called on end of data sharing attribute block. + /// Called on end of data sharing attribute block. void EndOpenMPDSABlock(Stmt *CurDirective); - /// \brief Check if the current region is an OpenMP loop region and if it is, + /// Check if the current region is an OpenMP loop region and if it is, /// mark loop control variable, used in \p Init for loop initialization, as /// private by default. /// \param Init First part of the for loop. void ActOnOpenMPLoopInitialization(SourceLocation ForLoc, Stmt *Init); // OpenMP directives and clauses. - /// \brief Called on correct id-expression from the '#pragma omp + /// Called on correct id-expression from the '#pragma omp /// threadprivate'. ExprResult ActOnOpenMPIdExpression(Scope *CurScope, CXXScopeSpec &ScopeSpec, const DeclarationNameInfo &Id); - /// \brief Called on well-formed '#pragma omp threadprivate'. + /// Called on well-formed '#pragma omp threadprivate'. DeclGroupPtrTy ActOnOpenMPThreadprivateDirective( SourceLocation Loc, ArrayRef<Expr *> VarList); - /// \brief Builds a new OpenMPThreadPrivateDecl and checks its correctness. + /// Builds a new OpenMPThreadPrivateDecl and checks its correctness. OMPThreadPrivateDecl *CheckOMPThreadPrivateDecl(SourceLocation Loc, ArrayRef<Expr *> VarList); - /// \brief Check if the specified type is allowed to be used in 'omp declare + /// Check if the specified type is allowed to be used in 'omp declare /// reduction' construct. QualType ActOnOpenMPDeclareReductionType(SourceLocation TyLoc, TypeResult ParsedType); - /// \brief Called on start of '#pragma omp declare reduction'. + /// Called on start of '#pragma omp declare reduction'. DeclGroupPtrTy ActOnOpenMPDeclareReductionDirectiveStart( Scope *S, DeclContext *DC, DeclarationName Name, ArrayRef<std::pair<QualType, SourceLocation>> ReductionTypes, AccessSpecifier AS, Decl *PrevDeclInScope = nullptr); - /// \brief Initialize declare reduction construct initializer. + /// Initialize declare reduction construct initializer. void ActOnOpenMPDeclareReductionCombinerStart(Scope *S, Decl *D); - /// \brief Finish current declare reduction construct initializer. + /// Finish current declare reduction construct initializer. void ActOnOpenMPDeclareReductionCombinerEnd(Decl *D, Expr *Combiner); - /// \brief Initialize declare reduction construct initializer. + /// Initialize declare reduction construct initializer. /// \return omp_priv variable. VarDecl *ActOnOpenMPDeclareReductionInitializerStart(Scope *S, Decl *D); - /// \brief Finish current declare reduction construct initializer. + /// Finish current declare reduction construct initializer. void ActOnOpenMPDeclareReductionInitializerEnd(Decl *D, Expr *Initializer, VarDecl *OmpPrivParm); - /// \brief Called at the end of '#pragma omp declare reduction'. + /// Called at the end of '#pragma omp declare reduction'. DeclGroupPtrTy ActOnOpenMPDeclareReductionDirectiveEnd( Scope *S, DeclGroupPtrTy DeclReductions, bool IsValid); @@ -8765,9 +8765,9 @@ /// Return the number of captured regions created for an OpenMP directive. static int getOpenMPCaptureLevels(OpenMPDirectiveKind Kind); - /// \brief Initialization of captured region for OpenMP region. + /// Initialization of captured region for OpenMP region. void ActOnOpenMPRegionStart(OpenMPDirectiveKind DKind, Scope *CurScope); - /// \brief End of OpenMP region. + /// End of OpenMP region. /// /// \param S Statement associated with the current OpenMP region. /// \param Clauses List of clauses for the current OpenMP region. @@ -8778,7 +8778,7 @@ OpenMPDirectiveKind Kind, const DeclarationNameInfo &DirName, OpenMPDirectiveKind CancelRegion, ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed '\#pragma omp parallel' after parsing + /// Called on well-formed '\#pragma omp parallel' after parsing /// of the associated statement. StmtResult ActOnOpenMPParallelDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt, @@ -8786,187 +8786,187 @@ SourceLocation EndLoc); using VarsWithInheritedDSAType = llvm::SmallDenseMap<const ValueDecl *, const Expr *, 4>; - /// \brief Called on well-formed '\#pragma omp simd' after parsing + /// Called on well-formed '\#pragma omp simd' after parsing /// of the associated statement. StmtResult ActOnOpenMPSimdDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc, VarsWithInheritedDSAType &VarsWithImplicitDSA); - /// \brief Called on well-formed '\#pragma omp for' after parsing + /// Called on well-formed '\#pragma omp for' after parsing /// of the associated statement. StmtResult ActOnOpenMPForDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc, VarsWithInheritedDSAType &VarsWithImplicitDSA); - /// \brief Called on well-formed '\#pragma omp for simd' after parsing + /// Called on well-formed '\#pragma omp for simd' after parsing /// of the associated statement. StmtResult ActOnOpenMPForSimdDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc, VarsWithInheritedDSAType &VarsWithImplicitDSA); - /// \brief Called on well-formed '\#pragma omp sections' after parsing + /// Called on well-formed '\#pragma omp sections' after parsing /// of the associated statement. StmtResult ActOnOpenMPSectionsDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed '\#pragma omp section' after parsing of the + /// Called on well-formed '\#pragma omp section' after parsing of the /// associated statement. StmtResult ActOnOpenMPSectionDirective(Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed '\#pragma omp single' after parsing of the + /// Called on well-formed '\#pragma omp single' after parsing of the /// associated statement. StmtResult ActOnOpenMPSingleDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed '\#pragma omp master' after parsing of the + /// Called on well-formed '\#pragma omp master' after parsing of the /// associated statement. StmtResult ActOnOpenMPMasterDirective(Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed '\#pragma omp critical' after parsing of the + /// Called on well-formed '\#pragma omp critical' after parsing of the /// associated statement. StmtResult ActOnOpenMPCriticalDirective(const DeclarationNameInfo &DirName, ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed '\#pragma omp parallel for' after parsing + /// Called on well-formed '\#pragma omp parallel for' after parsing /// of the associated statement. StmtResult ActOnOpenMPParallelForDirective( ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc, VarsWithInheritedDSAType &VarsWithImplicitDSA); - /// \brief Called on well-formed '\#pragma omp parallel for simd' after + /// Called on well-formed '\#pragma omp parallel for simd' after /// parsing of the associated statement. StmtResult ActOnOpenMPParallelForSimdDirective( ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc, VarsWithInheritedDSAType &VarsWithImplicitDSA); - /// \brief Called on well-formed '\#pragma omp parallel sections' after + /// Called on well-formed '\#pragma omp parallel sections' after /// parsing of the associated statement. StmtResult ActOnOpenMPParallelSectionsDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed '\#pragma omp task' after parsing of the + /// Called on well-formed '\#pragma omp task' after parsing of the /// associated statement. StmtResult ActOnOpenMPTaskDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed '\#pragma omp taskyield'. + /// Called on well-formed '\#pragma omp taskyield'. StmtResult ActOnOpenMPTaskyieldDirective(SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed '\#pragma omp barrier'. + /// Called on well-formed '\#pragma omp barrier'. StmtResult ActOnOpenMPBarrierDirective(SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed '\#pragma omp taskwait'. + /// Called on well-formed '\#pragma omp taskwait'. StmtResult ActOnOpenMPTaskwaitDirective(SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed '\#pragma omp taskgroup'. + /// Called on well-formed '\#pragma omp taskgroup'. StmtResult ActOnOpenMPTaskgroupDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed '\#pragma omp flush'. + /// Called on well-formed '\#pragma omp flush'. StmtResult ActOnOpenMPFlushDirective(ArrayRef<OMPClause *> Clauses, SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed '\#pragma omp ordered' after parsing of the + /// Called on well-formed '\#pragma omp ordered' after parsing of the /// associated statement. StmtResult ActOnOpenMPOrderedDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed '\#pragma omp atomic' after parsing of the + /// Called on well-formed '\#pragma omp atomic' after parsing of the /// associated statement. StmtResult ActOnOpenMPAtomicDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed '\#pragma omp target' after parsing of the + /// Called on well-formed '\#pragma omp target' after parsing of the /// associated statement. StmtResult ActOnOpenMPTargetDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed '\#pragma omp target data' after parsing of + /// Called on well-formed '\#pragma omp target data' after parsing of /// the associated statement. StmtResult ActOnOpenMPTargetDataDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed '\#pragma omp target enter data' after + /// Called on well-formed '\#pragma omp target enter data' after /// parsing of the associated statement. StmtResult ActOnOpenMPTargetEnterDataDirective(ArrayRef<OMPClause *> Clauses, SourceLocation StartLoc, SourceLocation EndLoc, Stmt *AStmt); - /// \brief Called on well-formed '\#pragma omp target exit data' after + /// Called on well-formed '\#pragma omp target exit data' after /// parsing of the associated statement. StmtResult ActOnOpenMPTargetExitDataDirective(ArrayRef<OMPClause *> Clauses, SourceLocation StartLoc, SourceLocation EndLoc, Stmt *AStmt); - /// \brief Called on well-formed '\#pragma omp target parallel' after + /// Called on well-formed '\#pragma omp target parallel' after /// parsing of the associated statement. StmtResult ActOnOpenMPTargetParallelDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed '\#pragma omp target parallel for' after + /// Called on well-formed '\#pragma omp target parallel for' after /// parsing of the associated statement. StmtResult ActOnOpenMPTargetParallelForDirective( ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc, VarsWithInheritedDSAType &VarsWithImplicitDSA); - /// \brief Called on well-formed '\#pragma omp teams' after parsing of the + /// Called on well-formed '\#pragma omp teams' after parsing of the /// associated statement. StmtResult ActOnOpenMPTeamsDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed '\#pragma omp cancellation point'. + /// Called on well-formed '\#pragma omp cancellation point'. StmtResult ActOnOpenMPCancellationPointDirective(SourceLocation StartLoc, SourceLocation EndLoc, OpenMPDirectiveKind CancelRegion); - /// \brief Called on well-formed '\#pragma omp cancel'. + /// Called on well-formed '\#pragma omp cancel'. StmtResult ActOnOpenMPCancelDirective(ArrayRef<OMPClause *> Clauses, SourceLocation StartLoc, SourceLocation EndLoc, OpenMPDirectiveKind CancelRegion); - /// \brief Called on well-formed '\#pragma omp taskloop' after parsing of the + /// Called on well-formed '\#pragma omp taskloop' after parsing of the /// associated statement. StmtResult ActOnOpenMPTaskLoopDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc, VarsWithInheritedDSAType &VarsWithImplicitDSA); - /// \brief Called on well-formed '\#pragma omp taskloop simd' after parsing of + /// Called on well-formed '\#pragma omp taskloop simd' after parsing of /// the associated statement. StmtResult ActOnOpenMPTaskLoopSimdDirective( ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc, VarsWithInheritedDSAType &VarsWithImplicitDSA); - /// \brief Called on well-formed '\#pragma omp distribute' after parsing + /// Called on well-formed '\#pragma omp distribute' after parsing /// of the associated statement. StmtResult ActOnOpenMPDistributeDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc, VarsWithInheritedDSAType &VarsWithImplicitDSA); - /// \brief Called on well-formed '\#pragma omp target update'. + /// Called on well-formed '\#pragma omp target update'. StmtResult ActOnOpenMPTargetUpdateDirective(ArrayRef<OMPClause *> Clauses, SourceLocation StartLoc, SourceLocation EndLoc, Stmt *AStmt); - /// \brief Called on well-formed '\#pragma omp distribute parallel for' after + /// Called on well-formed '\#pragma omp distribute parallel for' after /// parsing of the associated statement. StmtResult ActOnOpenMPDistributeParallelForDirective( ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc, VarsWithInheritedDSAType &VarsWithImplicitDSA); - /// \brief Called on well-formed '\#pragma omp distribute parallel for simd' + /// Called on well-formed '\#pragma omp distribute parallel for simd' /// after parsing of the associated statement. StmtResult ActOnOpenMPDistributeParallelForSimdDirective( ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc, VarsWithInheritedDSAType &VarsWithImplicitDSA); - /// \brief Called on well-formed '\#pragma omp distribute simd' after + /// Called on well-formed '\#pragma omp distribute simd' after /// parsing of the associated statement. StmtResult ActOnOpenMPDistributeSimdDirective( ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc, VarsWithInheritedDSAType &VarsWithImplicitDSA); - /// \brief Called on well-formed '\#pragma omp target parallel for simd' after + /// Called on well-formed '\#pragma omp target parallel for simd' after /// parsing of the associated statement. StmtResult ActOnOpenMPTargetParallelForSimdDirective( ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc, VarsWithInheritedDSAType &VarsWithImplicitDSA); - /// \brief Called on well-formed '\#pragma omp target simd' after parsing of + /// Called on well-formed '\#pragma omp target simd' after parsing of /// the associated statement. StmtResult ActOnOpenMPTargetSimdDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt, @@ -9027,7 +9027,7 @@ bool CheckOpenMPLinearDecl(const ValueDecl *D, SourceLocation ELoc, OpenMPLinearClauseKind LinKind, QualType Type); - /// \brief Called on well-formed '\#pragma omp declare simd' after parsing of + /// Called on well-formed '\#pragma omp declare simd' after parsing of /// the associated method/function. DeclGroupPtrTy ActOnOpenMPDeclareSimdDirective( DeclGroupPtrTy DG, OMPDeclareSimdDeclAttr::BranchStateTy BS, @@ -9040,50 +9040,50 @@ SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'if' clause. + /// Called on well-formed 'if' clause. OMPClause *ActOnOpenMPIfClause(OpenMPDirectiveKind NameModifier, Expr *Condition, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation NameModifierLoc, SourceLocation ColonLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'final' clause. + /// Called on well-formed 'final' clause. OMPClause *ActOnOpenMPFinalClause(Expr *Condition, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'num_threads' clause. + /// Called on well-formed 'num_threads' clause. OMPClause *ActOnOpenMPNumThreadsClause(Expr *NumThreads, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'safelen' clause. + /// Called on well-formed 'safelen' clause. OMPClause *ActOnOpenMPSafelenClause(Expr *Length, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'simdlen' clause. + /// Called on well-formed 'simdlen' clause. OMPClause *ActOnOpenMPSimdlenClause(Expr *Length, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'collapse' clause. + /// Called on well-formed 'collapse' clause. OMPClause *ActOnOpenMPCollapseClause(Expr *NumForLoops, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'ordered' clause. + /// Called on well-formed 'ordered' clause. OMPClause * ActOnOpenMPOrderedClause(SourceLocation StartLoc, SourceLocation EndLoc, SourceLocation LParenLoc = SourceLocation(), Expr *NumForLoops = nullptr); - /// \brief Called on well-formed 'grainsize' clause. + /// Called on well-formed 'grainsize' clause. OMPClause *ActOnOpenMPGrainsizeClause(Expr *Size, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'num_tasks' clause. + /// Called on well-formed 'num_tasks' clause. OMPClause *ActOnOpenMPNumTasksClause(Expr *NumTasks, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'hint' clause. + /// Called on well-formed 'hint' clause. OMPClause *ActOnOpenMPHintClause(Expr *Hint, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); @@ -9094,13 +9094,13 @@ SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'default' clause. + /// Called on well-formed 'default' clause. OMPClause *ActOnOpenMPDefaultClause(OpenMPDefaultClauseKind Kind, SourceLocation KindLoc, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'proc_bind' clause. + /// Called on well-formed 'proc_bind' clause. OMPClause *ActOnOpenMPProcBindClause(OpenMPProcBindClauseKind Kind, SourceLocation KindLoc, SourceLocation StartLoc, @@ -9112,7 +9112,7 @@ SourceLocation StartLoc, SourceLocation LParenLoc, ArrayRef<SourceLocation> ArgumentsLoc, SourceLocation DelimLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'schedule' clause. + /// Called on well-formed 'schedule' clause. OMPClause *ActOnOpenMPScheduleClause( OpenMPScheduleClauseModifier M1, OpenMPScheduleClauseModifier M2, OpenMPScheduleClauseKind Kind, Expr *ChunkSize, SourceLocation StartLoc, @@ -9121,37 +9121,37 @@ OMPClause *ActOnOpenMPClause(OpenMPClauseKind Kind, SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'nowait' clause. + /// Called on well-formed 'nowait' clause. OMPClause *ActOnOpenMPNowaitClause(SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'untied' clause. + /// Called on well-formed 'untied' clause. OMPClause *ActOnOpenMPUntiedClause(SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'mergeable' clause. + /// Called on well-formed 'mergeable' clause. OMPClause *ActOnOpenMPMergeableClause(SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'read' clause. + /// Called on well-formed 'read' clause. OMPClause *ActOnOpenMPReadClause(SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'write' clause. + /// Called on well-formed 'write' clause. OMPClause *ActOnOpenMPWriteClause(SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'update' clause. + /// Called on well-formed 'update' clause. OMPClause *ActOnOpenMPUpdateClause(SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'capture' clause. + /// Called on well-formed 'capture' clause. OMPClause *ActOnOpenMPCaptureClause(SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'seq_cst' clause. + /// Called on well-formed 'seq_cst' clause. OMPClause *ActOnOpenMPSeqCstClause(SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'threads' clause. + /// Called on well-formed 'threads' clause. OMPClause *ActOnOpenMPThreadsClause(SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'simd' clause. + /// Called on well-formed 'simd' clause. OMPClause *ActOnOpenMPSIMDClause(SourceLocation StartLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'nogroup' clause. + /// Called on well-formed 'nogroup' clause. OMPClause *ActOnOpenMPNogroupClause(SourceLocation StartLoc, SourceLocation EndLoc); @@ -9164,27 +9164,27 @@ OpenMPLinearClauseKind LinKind, OpenMPMapClauseKind MapTypeModifier, OpenMPMapClauseKind MapType, bool IsMapTypeImplicit, SourceLocation DepLinMapLoc); - /// \brief Called on well-formed 'private' clause. + /// Called on well-formed 'private' clause. OMPClause *ActOnOpenMPPrivateClause(ArrayRef<Expr *> VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'firstprivate' clause. + /// Called on well-formed 'firstprivate' clause. OMPClause *ActOnOpenMPFirstprivateClause(ArrayRef<Expr *> VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'lastprivate' clause. + /// Called on well-formed 'lastprivate' clause. OMPClause *ActOnOpenMPLastprivateClause(ArrayRef<Expr *> VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'shared' clause. + /// Called on well-formed 'shared' clause. OMPClause *ActOnOpenMPSharedClause(ArrayRef<Expr *> VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'reduction' clause. + /// Called on well-formed 'reduction' clause. OMPClause *ActOnOpenMPReductionClause( ArrayRef<Expr *> VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation ColonLoc, SourceLocation EndLoc, @@ -9205,80 +9205,80 @@ CXXScopeSpec &ReductionIdScopeSpec, const DeclarationNameInfo &ReductionId, ArrayRef<Expr *> UnresolvedReductions = llvm::None); - /// \brief Called on well-formed 'linear' clause. + /// Called on well-formed 'linear' clause. OMPClause * ActOnOpenMPLinearClause(ArrayRef<Expr *> VarList, Expr *Step, SourceLocation StartLoc, SourceLocation LParenLoc, OpenMPLinearClauseKind LinKind, SourceLocation LinLoc, SourceLocation ColonLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'aligned' clause. + /// Called on well-formed 'aligned' clause. OMPClause *ActOnOpenMPAlignedClause(ArrayRef<Expr *> VarList, Expr *Alignment, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation ColonLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'copyin' clause. + /// Called on well-formed 'copyin' clause. OMPClause *ActOnOpenMPCopyinClause(ArrayRef<Expr *> VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'copyprivate' clause. + /// Called on well-formed 'copyprivate' clause. OMPClause *ActOnOpenMPCopyprivateClause(ArrayRef<Expr *> VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'flush' pseudo clause. + /// Called on well-formed 'flush' pseudo clause. OMPClause *ActOnOpenMPFlushClause(ArrayRef<Expr *> VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'depend' clause. + /// Called on well-formed 'depend' clause. OMPClause * ActOnOpenMPDependClause(OpenMPDependClauseKind DepKind, SourceLocation DepLoc, SourceLocation ColonLoc, ArrayRef<Expr *> VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'device' clause. + /// Called on well-formed 'device' clause. OMPClause *ActOnOpenMPDeviceClause(Expr *Device, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'map' clause. + /// Called on well-formed 'map' clause. OMPClause * ActOnOpenMPMapClause(OpenMPMapClauseKind MapTypeModifier, OpenMPMapClauseKind MapType, bool IsMapTypeImplicit, SourceLocation MapLoc, SourceLocation ColonLoc, ArrayRef<Expr *> VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'num_teams' clause. + /// Called on well-formed 'num_teams' clause. OMPClause *ActOnOpenMPNumTeamsClause(Expr *NumTeams, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'thread_limit' clause. + /// Called on well-formed 'thread_limit' clause. OMPClause *ActOnOpenMPThreadLimitClause(Expr *ThreadLimit, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'priority' clause. + /// Called on well-formed 'priority' clause. OMPClause *ActOnOpenMPPriorityClause(Expr *Priority, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'dist_schedule' clause. + /// Called on well-formed 'dist_schedule' clause. OMPClause *ActOnOpenMPDistScheduleClause( OpenMPDistScheduleClauseKind Kind, Expr *ChunkSize, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation KindLoc, SourceLocation CommaLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'defaultmap' clause. + /// Called on well-formed 'defaultmap' clause. OMPClause *ActOnOpenMPDefaultmapClause( OpenMPDefaultmapClauseModifier M, OpenMPDefaultmapClauseKind Kind, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation MLoc, SourceLocation KindLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'to' clause. + /// Called on well-formed 'to' clause. OMPClause *ActOnOpenMPToClause(ArrayRef<Expr *> VarList, SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief Called on well-formed 'from' clause. + /// Called on well-formed 'from' clause. OMPClause *ActOnOpenMPFromClause(ArrayRef<Expr *> VarList, SourceLocation StartLoc, SourceLocation LParenLoc, @@ -9294,15 +9294,15 @@ SourceLocation LParenLoc, SourceLocation EndLoc); - /// \brief The kind of conversion being performed. + /// The kind of conversion being performed. enum CheckedConversionKind { - /// \brief An implicit conversion. + /// An implicit conversion. CCK_ImplicitConversion, - /// \brief A C-style cast. + /// A C-style cast. CCK_CStyleCast, - /// \brief A functional-style cast. + /// A functional-style cast. CCK_FunctionalCast, - /// \brief A cast other than a C-style cast. + /// A cast other than a C-style cast. CCK_OtherCast }; @@ -9539,7 +9539,7 @@ QualType LHSType, ExprResult &RHS, bool Diagnose = true, bool DiagnoseCFAudited = false, bool ConvertRHS = true); - // \brief If the lhs type is a transparent union, check whether we + // If the lhs type is a transparent union, check whether we // can initialize the transparent union with the given expression. AssignConvertType CheckTransparentUnionArgumentConstraints(QualType ArgType, ExprResult &RHS); @@ -9687,11 +9687,11 @@ Expr *CastExpr, CastKind &CastKind, ExprValueKind &VK, CXXCastPath &Path); - /// \brief Force an expression with unknown-type to an expression of the + /// Force an expression with unknown-type to an expression of the /// given type. ExprResult forceUnknownAnyToType(Expr *E, QualType ToType); - /// \brief Type-check an expression that's being passed to an + /// Type-check an expression that's being passed to an /// __unknown_anytype parameter. ExprResult checkUnknownAnyArg(SourceLocation callLoc, Expr *result, QualType ¶mType); @@ -9703,7 +9703,7 @@ bool CheckVectorCast(SourceRange R, QualType VectorTy, QualType Ty, CastKind &Kind); - /// \brief Prepare `SplattedExpr` for a vector splat operation, adding + /// Prepare `SplattedExpr` for a vector splat operation, adding /// implicit casts if necessary. ExprResult prepareVectorSplat(QualType VectorTy, Expr *SplattedExpr); @@ -9722,7 +9722,7 @@ enum ARCConversionResult { ACR_okay, ACR_unbridged, ACR_error }; - /// \brief Checks for invalid conversions and casts between + /// Checks for invalid conversions and casts between /// retainable pointers and other pointer kinds for ARC and Weak. ARCConversionResult CheckObjCConversion(SourceRange castRange, QualType castType, Expr *&op, @@ -9765,18 +9765,18 @@ SourceRange RecRange, QualType &ReturnType, ExprValueKind &VK); - /// \brief Determine the result of a message send expression based on + /// Determine the result of a message send expression based on /// the type of the receiver, the method expected to receive the message, /// and the form of the message send. QualType getMessageSendResultType(QualType ReceiverType, ObjCMethodDecl *Method, bool isClassMessage, bool isSuperMessage); - /// \brief If the given expression involves a message send to a method + /// If the given expression involves a message send to a method /// with a related result type, emit a note describing what happened. void EmitRelatedResultTypeNote(const Expr *E); - /// \brief Given that we had incompatible pointer types in a return + /// Given that we had incompatible pointer types in a return /// statement, check whether we're in a method with a related result /// type, and if so, emit a note describing what happened. void EmitRelatedResultTypeNoteForReturn(QualType destType); @@ -9850,7 +9850,7 @@ /// being used as a boolean condition, warn if it's an assignment. void DiagnoseAssignmentAsCondition(Expr *E); - /// \brief Redundant parentheses over an equality comparison can indicate + /// Redundant parentheses over an equality comparison can indicate /// that the user intended an assignment used as condition. void DiagnoseEqualityWithExtraParens(ParenExpr *ParenE); @@ -9869,7 +9869,7 @@ /// in the global scope. bool CheckObjCDeclScope(Decl *D); - /// \brief Abstract base class used for diagnosing integer constant + /// Abstract base class used for diagnosing integer constant /// expression violations. class VerifyICEDiagnoser { public: @@ -10173,48 +10173,48 @@ /// \name Code completion //@{ - /// \brief Describes the context in which code completion occurs. + /// Describes the context in which code completion occurs. enum ParserCompletionContext { - /// \brief Code completion occurs at top-level or namespace context. + /// Code completion occurs at top-level or namespace context. PCC_Namespace, - /// \brief Code completion occurs within a class, struct, or union. + /// Code completion occurs within a class, struct, or union. PCC_Class, - /// \brief Code completion occurs within an Objective-C interface, protocol, + /// Code completion occurs within an Objective-C interface, protocol, /// or category. PCC_ObjCInterface, - /// \brief Code completion occurs within an Objective-C implementation or + /// Code completion occurs within an Objective-C implementation or /// category implementation PCC_ObjCImplementation, - /// \brief Code completion occurs within the list of instance variables + /// Code completion occurs within the list of instance variables /// in an Objective-C interface, protocol, category, or implementation. PCC_ObjCInstanceVariableList, - /// \brief Code completion occurs following one or more template + /// Code completion occurs following one or more template /// headers. PCC_Template, - /// \brief Code completion occurs following one or more template + /// Code completion occurs following one or more template /// headers within a class. PCC_MemberTemplate, - /// \brief Code completion occurs within an expression. + /// Code completion occurs within an expression. PCC_Expression, - /// \brief Code completion occurs within a statement, which may + /// Code completion occurs within a statement, which may /// also be an expression or a declaration. PCC_Statement, - /// \brief Code completion occurs at the beginning of the + /// Code completion occurs at the beginning of the /// initialization statement (or expression) in a for loop. PCC_ForInit, - /// \brief Code completion occurs within the condition of an if, + /// Code completion occurs within the condition of an if, /// while, switch, or for statement. PCC_Condition, - /// \brief Code completion occurs within the body of a function on a + /// Code completion occurs within the body of a function on a /// recovery path, where we do not have a specific handle on our position /// in the grammar. PCC_RecoveryInFunction, - /// \brief Code completion occurs where only a type is permitted. + /// Code completion occurs where only a type is permitted. PCC_Type, - /// \brief Code completion occurs in a parenthesized expression, which + /// Code completion occurs in a parenthesized expression, which /// might also be a type cast. PCC_ParenthesizedExpression, - /// \brief Code completion occurs within a sequence of declaration + /// Code completion occurs within a sequence of declaration /// specifiers within a function, method, or block. PCC_LocalDeclarationSpecifiers }; @@ -10485,7 +10485,7 @@ void CheckForIntOverflow(Expr *E); void CheckUnsequencedOperations(Expr *E); - /// \brief Perform semantic checks on a completed expression. This will either + /// Perform semantic checks on a completed expression. This will either /// be a full-expression or a default argument expression. void CheckCompletedExpr(Expr *E, SourceLocation CheckLoc = SourceLocation(), bool IsConstexpr = false); @@ -10498,11 +10498,11 @@ DeclarationName FieldName, const CXXRecordDecl *RD); - /// \brief Check if the given expression contains 'break' or 'continue' + /// Check if the given expression contains 'break' or 'continue' /// statement that produces control flow different from GCC. void CheckBreakContinueBinding(Expr *E); - /// \brief Check whether receiver is mutable ObjC container which + /// Check whether receiver is mutable ObjC container which /// attempts to add itself into the container void CheckObjCCircularContainer(ObjCMessageExpr *Message); @@ -10510,7 +10510,7 @@ void AnalyzeDeleteExprMismatch(FieldDecl *Field, SourceLocation DeleteLoc, bool DeleteWasArrayForm); public: - /// \brief Register a magic integral constant to be used as a type tag. + /// Register a magic integral constant to be used as a type tag. void RegisterTypeTagForDatatype(const IdentifierInfo *ArgumentKind, uint64_t MagicValue, QualType Type, bool LayoutCompatible, bool MustBeNull); @@ -10536,21 +10536,21 @@ typedef std::pair<const IdentifierInfo *, uint64_t> TypeTagMagicValue; private: - /// \brief A map from magic value to type information. + /// A map from magic value to type information. std::unique_ptr<llvm::DenseMap<TypeTagMagicValue, TypeTagData>> TypeTagForDatatypeMagicValues; - /// \brief Peform checks on a call of a function with argument_with_type_tag + /// Peform checks on a call of a function with argument_with_type_tag /// or pointer_with_type_tag attributes. void CheckArgumentWithTypeTag(const ArgumentWithTypeTagAttr *Attr, const ArrayRef<const Expr *> ExprArgs, SourceLocation CallSiteLoc); - /// \brief Check if we are taking the address of a packed field + /// Check if we are taking the address of a packed field /// as this may be a problem if the pointer value is dereferenced. void CheckAddressOfPackedMember(Expr *rhs); - /// \brief The parser's current scope. + /// The parser's current scope. /// /// The parser maintains this state here. Scope *CurScope; @@ -10565,7 +10565,7 @@ IdentifierInfo *Ident_NSError = nullptr; - /// \brief The handler for the FileChanged preprocessor events. + /// The handler for the FileChanged preprocessor events. /// /// Used for diagnostics that implement custom semantic analysis for #include /// directives, like -Wpragma-pack. @@ -10588,7 +10588,7 @@ /// Retrieve the identifier "NSError". IdentifierInfo *getNSErrorIdent(); - /// \brief Retrieve the parser's current scope. + /// Retrieve the parser's current scope. /// /// This routine must only be used when it is certain that semantic analysis /// and the parser are in precisely the same context, which is not the case @@ -10619,7 +10619,7 @@ return DC; } - /// \brief To be used for checking whether the arguments being passed to + /// To be used for checking whether the arguments being passed to /// function exceeds the number of parameters expected for it. static bool TooManyArguments(size_t NumParams, size_t NumArgs, bool PartialOverloading = false) { @@ -10664,7 +10664,7 @@ } }; - /// \brief Helper class that collects misaligned member designations and + /// Helper class that collects misaligned member designations and /// their location info for delayed diagnostics. struct MisalignedMember { Expr *E; @@ -10681,28 +10681,28 @@ bool operator==(const MisalignedMember &m) { return this->E == m.E; } }; - /// \brief Small set of gathered accesses to potentially misaligned members + /// Small set of gathered accesses to potentially misaligned members /// due to the packed attribute. SmallVector<MisalignedMember, 4> MisalignedMembers; - /// \brief Adds an expression to the set of gathered misaligned members. + /// Adds an expression to the set of gathered misaligned members. void AddPotentialMisalignedMembers(Expr *E, RecordDecl *RD, ValueDecl *MD, CharUnits Alignment); public: - /// \brief Diagnoses the current set of gathered accesses. This typically + /// Diagnoses the current set of gathered accesses. This typically /// happens at full expression level. The set is cleared after emitting the /// diagnostics. void DiagnoseMisalignedMembers(); - /// \brief This function checks if the expression is in the sef of potentially + /// This function checks if the expression is in the sef of potentially /// misaligned members and it is converted to some pointer type T with lower /// or equal alignment requirements. If so it removes it. This is used when /// we do not want to diagnose such misaligned access (e.g. in conversions to /// void*). void DiscardMisalignedMemberAddress(const Type *T, Expr *E); - /// \brief This function calls Action when it determines that E designates a + /// This function calls Action when it determines that E designates a /// misaligned member due to the packed attribute. This is used to emit /// local diagnostics like in reference binding. void RefersToMemberWithReducedAlignment( @@ -10711,7 +10711,7 @@ Action); }; -/// \brief RAII object that enters a new expression evaluation context. +/// RAII object that enters a new expression evaluation context. class EnterExpressionEvaluationContext { Sema &Actions; bool Entered = true; @@ -10764,11 +10764,11 @@ MakeDeductionFailureInfo(ASTContext &Context, Sema::TemplateDeductionResult TDK, sema::TemplateDeductionInfo &Info); -/// \brief Contains a late templated function. +/// Contains a late templated function. /// Will be parsed at the end of the translation unit, used by Sema & Parser. struct LateParsedTemplate { CachedTokens Toks; - /// \brief The template function declaration to be late parsed. + /// The template function declaration to be late parsed. Decl *D; }; Index: cfe/trunk/include/clang/Sema/SemaConsumer.h =================================================================== --- cfe/trunk/include/clang/Sema/SemaConsumer.h +++ cfe/trunk/include/clang/Sema/SemaConsumer.h @@ -20,7 +20,7 @@ namespace clang { class Sema; - /// \brief An abstract interface that should be implemented by + /// An abstract interface that should be implemented by /// clients that read ASTs and then require further semantic /// analysis of the entities in those ASTs. class SemaConsumer : public ASTConsumer { @@ -30,12 +30,12 @@ ASTConsumer::SemaConsumer = true; } - /// \brief Initialize the semantic consumer with the Sema instance + /// Initialize the semantic consumer with the Sema instance /// being used to perform semantic analysis on the abstract syntax /// tree. virtual void InitializeSema(Sema &S) {} - /// \brief Inform the semantic consumer that Sema is no longer available. + /// Inform the semantic consumer that Sema is no longer available. virtual void ForgetSema() {} // isa/cast/dyn_cast support Index: cfe/trunk/include/clang/Sema/SemaInternal.h =================================================================== --- cfe/trunk/include/clang/Sema/SemaInternal.h +++ cfe/trunk/include/clang/Sema/SemaInternal.h @@ -139,13 +139,13 @@ return CorrectionResults.empty() && ValidatedCorrections.size() == 1; } - /// \brief Return the list of TypoCorrections for the given identifier from + /// Return the list of TypoCorrections for the given identifier from /// the set of corrections that have the closest edit distance, if any. TypoResultList &operator[](StringRef Name) { return CorrectionResults.begin()->second[Name]; } - /// \brief Return the edit distance of the corrections that have the + /// Return the edit distance of the corrections that have the /// closest/best edit distance from the original typop. unsigned getBestEditDistance(bool Normalized) { if (CorrectionResults.empty()) @@ -155,28 +155,28 @@ return Normalized ? TypoCorrection::NormalizeEditDistance(BestED) : BestED; } - /// \brief Set-up method to add to the consumer the set of namespaces to use + /// Set-up method to add to the consumer the set of namespaces to use /// in performing corrections to nested name specifiers. This method also /// implicitly adds all of the known classes in the current AST context to the /// to the consumer for correcting nested name specifiers. void addNamespaces(const llvm::MapVector<NamespaceDecl *, bool> &KnownNamespaces); - /// \brief Return the next typo correction that passes all internal filters + /// Return the next typo correction that passes all internal filters /// and is deemed valid by the consumer's CorrectionCandidateCallback, /// starting with the corrections that have the closest edit distance. An /// empty TypoCorrection is returned once no more viable corrections remain /// in the consumer. const TypoCorrection &getNextCorrection(); - /// \brief Get the last correction returned by getNextCorrection(). + /// Get the last correction returned by getNextCorrection(). const TypoCorrection &getCurrentCorrection() { return CurrentTCIndex < ValidatedCorrections.size() ? ValidatedCorrections[CurrentTCIndex] : ValidatedCorrections[0]; // The empty correction. } - /// \brief Return the next typo correction like getNextCorrection, but keep + /// Return the next typo correction like getNextCorrection, but keep /// the internal state pointed to the current correction (i.e. the next time /// getNextCorrection is called, it will return the same correction returned /// by peekNextcorrection). @@ -187,27 +187,27 @@ return TC; } - /// \brief Reset the consumer's position in the stream of viable corrections + /// Reset the consumer's position in the stream of viable corrections /// (i.e. getNextCorrection() will return each of the previously returned /// corrections in order before returning any new corrections). void resetCorrectionStream() { CurrentTCIndex = 0; } - /// \brief Return whether the end of the stream of corrections has been + /// Return whether the end of the stream of corrections has been /// reached. bool finished() { return CorrectionResults.empty() && CurrentTCIndex >= ValidatedCorrections.size(); } - /// \brief Save the current position in the correction stream (overwriting any + /// Save the current position in the correction stream (overwriting any /// previously saved position). void saveCurrentPosition() { SavedTCIndex = CurrentTCIndex; } - /// \brief Restore the saved position in the correction stream. + /// Restore the saved position in the correction stream. void restoreSavedPosition() { CurrentTCIndex = SavedTCIndex; } @@ -241,7 +241,7 @@ std::map<unsigned, SpecifierInfoList> DistanceMap; - /// \brief Helper for building the list of DeclContexts between the current + /// Helper for building the list of DeclContexts between the current /// context and the top of the translation unit static DeclContextList buildContextChain(DeclContext *Start); @@ -252,11 +252,11 @@ NamespaceSpecifierSet(ASTContext &Context, DeclContext *CurContext, CXXScopeSpec *CurScopeSpec); - /// \brief Add the DeclContext (a namespace or record) to the set, computing + /// Add the DeclContext (a namespace or record) to the set, computing /// the corresponding NestedNameSpecifier and its distance in the process. void addNameSpecifier(DeclContext *Ctx); - /// \brief Provides flat iteration over specifiers, sorted by distance. + /// Provides flat iteration over specifiers, sorted by distance. class iterator : public llvm::iterator_facade_base<iterator, std::forward_iterator_tag, SpecifierInfo> { @@ -295,21 +295,21 @@ void addName(StringRef Name, NamedDecl *ND, NestedNameSpecifier *NNS = nullptr, bool isKeyword = false); - /// \brief Find any visible decls for the given typo correction candidate. + /// Find any visible decls for the given typo correction candidate. /// If none are found, it to the set of candidates for which qualified lookups /// will be performed to find possible nested name specifier changes. bool resolveCorrection(TypoCorrection &Candidate); - /// \brief Perform qualified lookups on the queued set of typo correction + /// Perform qualified lookups on the queued set of typo correction /// candidates and add the nested name specifier changes to each candidate if /// a lookup succeeds (at which point the candidate will be returned to the /// main pool of potential corrections). void performQualifiedLookups(); - /// \brief The name written that is a typo in the source. + /// The name written that is a typo in the source. IdentifierInfo *Typo; - /// \brief The results found that have the smallest edit distance + /// The results found that have the smallest edit distance /// found (so far) with the typo name. /// /// The pointer value being set to the current DeclContext indicates Index: cfe/trunk/include/clang/Sema/SemaLambda.h =================================================================== --- cfe/trunk/include/clang/Sema/SemaLambda.h +++ cfe/trunk/include/clang/Sema/SemaLambda.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 /// Lambdas. /// //===----------------------------------------------------------------------===// @@ -24,7 +24,7 @@ } class Sema; -/// \brief Examines the FunctionScopeInfo stack to determine the nearest +/// Examines the FunctionScopeInfo stack to determine the nearest /// enclosing lambda (to the current lambda) that is 'capture-capable' for /// the variable referenced in the current lambda (i.e. \p VarToCapture). /// If successful, returns the index into Sema's FunctionScopeInfo stack Index: cfe/trunk/include/clang/Sema/Template.h =================================================================== --- cfe/trunk/include/clang/Sema/Template.h +++ cfe/trunk/include/clang/Sema/Template.h @@ -43,7 +43,7 @@ class TypeSourceInfo; class VarDecl; - /// \brief Data structure that captures multiple levels of template argument + /// Data structure that captures multiple levels of template argument /// lists for use in template instantiation. /// /// Multiple levels of template arguments occur when instantiating the @@ -63,47 +63,47 @@ /// list will contain a template argument list (int) at depth 0 and a /// template argument list (17) at depth 1. class MultiLevelTemplateArgumentList { - /// \brief The template argument list at a certain template depth + /// The template argument list at a certain template depth using ArgList = ArrayRef<TemplateArgument>; - /// \brief The template argument lists, stored from the innermost template + /// The template argument lists, stored from the innermost template /// argument list (first) to the outermost template argument list (last). SmallVector<ArgList, 4> TemplateArgumentLists; - /// \brief The number of outer levels of template arguments that are not + /// The number of outer levels of template arguments that are not /// being substituted. unsigned NumRetainedOuterLevels = 0; public: - /// \brief Construct an empty set of template argument lists. + /// Construct an empty set of template argument lists. MultiLevelTemplateArgumentList() = default; - /// \brief Construct a single-level template argument list. + /// Construct a single-level template argument list. explicit MultiLevelTemplateArgumentList(const TemplateArgumentList &TemplateArgs) { addOuterTemplateArguments(&TemplateArgs); } - /// \brief Determine the number of levels in this template argument + /// Determine the number of levels in this template argument /// list. unsigned getNumLevels() const { return TemplateArgumentLists.size() + NumRetainedOuterLevels; } - /// \brief Determine the number of substituted levels in this template + /// Determine the number of substituted levels in this template /// argument list. unsigned getNumSubstitutedLevels() const { return TemplateArgumentLists.size(); } - /// \brief Retrieve the template argument at a given depth and index. + /// Retrieve the template argument at a given depth and index. const TemplateArgument &operator()(unsigned Depth, unsigned Index) const { assert(NumRetainedOuterLevels <= Depth && Depth < getNumLevels()); assert(Index < TemplateArgumentLists[getNumLevels() - Depth - 1].size()); return TemplateArgumentLists[getNumLevels() - Depth - 1][Index]; } - /// \brief Determine whether there is a non-NULL template argument at the + /// Determine whether there is a non-NULL template argument at the /// given depth and index. /// /// There must exist a template argument list at the given depth. @@ -119,7 +119,7 @@ return !(*this)(Depth, Index).isNull(); } - /// \brief Clear out a specific template argument. + /// Clear out a specific template argument. void setArgument(unsigned Depth, unsigned Index, TemplateArgument Arg) { assert(NumRetainedOuterLevels <= Depth && Depth < getNumLevels()); @@ -129,14 +129,14 @@ = Arg; } - /// \brief Add a new outermost level to the multi-level template argument + /// Add a new outermost level to the multi-level template argument /// list. void addOuterTemplateArguments(const TemplateArgumentList *TemplateArgs) { addOuterTemplateArguments(ArgList(TemplateArgs->data(), TemplateArgs->size())); } - /// \brief Add a new outmost level to the multi-level template argument + /// Add a new outmost level to the multi-level template argument /// list. void addOuterTemplateArguments(ArgList Args) { assert(!NumRetainedOuterLevels && @@ -144,29 +144,29 @@ TemplateArgumentLists.push_back(Args); } - /// \brief Add an outermost level that we are not substituting. We have no + /// Add an outermost level that we are not substituting. We have no /// arguments at this level, and do not remove it from the depth of inner /// template parameters that we instantiate. void addOuterRetainedLevel() { ++NumRetainedOuterLevels; } - /// \brief Retrieve the innermost template argument list. + /// Retrieve the innermost template argument list. const ArgList &getInnermost() const { return TemplateArgumentLists.front(); } }; - /// \brief The context in which partial ordering of function templates occurs. + /// The context in which partial ordering of function templates occurs. enum TPOC { - /// \brief Partial ordering of function templates for a function call. + /// Partial ordering of function templates for a function call. TPOC_Call, - /// \brief Partial ordering of function templates for a call to a + /// Partial ordering of function templates for a call to a /// conversion function. TPOC_Conversion, - /// \brief Partial ordering of function templates in other contexts, e.g., + /// Partial ordering of function templates in other contexts, e.g., /// taking the address of a function template or matching a function /// template specialization to a function template. TPOC_Other @@ -185,10 +185,10 @@ operator TPOC() const { return Value; } }; - /// \brief Captures a template argument whose value has been deduced + /// Captures a template argument whose value has been deduced /// via c++ template argument deduction. class DeducedTemplateArgument : public TemplateArgument { - /// \brief For a non-type template argument, whether the value was + /// For a non-type template argument, whether the value was /// deduced from an array bound. bool DeducedFromArrayBound = false; @@ -199,7 +199,7 @@ bool DeducedFromArrayBound = false) : TemplateArgument(Arg), DeducedFromArrayBound(DeducedFromArrayBound) {} - /// \brief Construct an integral non-type template argument that + /// Construct an integral non-type template argument that /// has been deduced, possibly from an array bound. DeducedTemplateArgument(ASTContext &Ctx, const llvm::APSInt &Value, @@ -208,18 +208,18 @@ : TemplateArgument(Ctx, Value, ValueType), DeducedFromArrayBound(DeducedFromArrayBound) {} - /// \brief For a non-type template argument, determine whether the + /// For a non-type template argument, determine whether the /// template argument was deduced from an array bound. bool wasDeducedFromArrayBound() const { return DeducedFromArrayBound; } - /// \brief Specify whether the given non-type template argument + /// Specify whether the given non-type template argument /// was deduced from an array bound. void setDeducedFromArrayBound(bool Deduced) { DeducedFromArrayBound = Deduced; } }; - /// \brief A stack-allocated class that identifies which local + /// A stack-allocated class that identifies which local /// variable declaration instantiations are present in this scope. /// /// A new instance of this class type will be created whenever we @@ -227,11 +227,11 @@ /// set of parameter declarations. class LocalInstantiationScope { public: - /// \brief A set of declarations. + /// A set of declarations. using DeclArgumentPack = SmallVector<ParmVarDecl *, 4>; private: - /// \brief Reference to the semantic analysis that is performing + /// Reference to the semantic analysis that is performing /// this template instantiation. Sema &SemaRef; @@ -239,7 +239,7 @@ llvm::SmallDenseMap<const Decl *, llvm::PointerUnion<Decl *, DeclArgumentPack *>, 4>; - /// \brief A mapping from local declarations that occur + /// A mapping from local declarations that occur /// within a template to their instantiations. /// /// This mapping is used during instantiation to keep track of, @@ -259,30 +259,30 @@ /// pointer. LocalDeclsMap LocalDecls; - /// \brief The set of argument packs we've allocated. + /// The set of argument packs we've allocated. SmallVector<DeclArgumentPack *, 1> ArgumentPacks; - /// \brief The outer scope, which contains local variable + /// The outer scope, which contains local variable /// definitions from some other instantiation (that may not be /// relevant to this particular scope). LocalInstantiationScope *Outer; - /// \brief Whether we have already exited this scope. + /// Whether we have already exited this scope. bool Exited = false; - /// \brief Whether to combine this scope with the outer scope, such that + /// Whether to combine this scope with the outer scope, such that /// lookup will search our outer scope. bool CombineWithOuterScope; - /// \brief If non-NULL, the template parameter pack that has been + /// If non-NULL, the template parameter pack that has been /// partially substituted per C++0x [temp.arg.explicit]p9. NamedDecl *PartiallySubstitutedPack = nullptr; - /// \brief If \c PartiallySubstitutedPack is non-null, the set of + /// If \c PartiallySubstitutedPack is non-null, the set of /// explicitly-specified template arguments in that pack. const TemplateArgument *ArgsInPartiallySubstitutedPack; - /// \brief If \c PartiallySubstitutedPack, the number of + /// If \c PartiallySubstitutedPack, the number of /// explicitly-specified template arguments in /// ArgsInPartiallySubstitutedPack. unsigned NumArgsInPartiallySubstitutedPack; @@ -304,7 +304,7 @@ const Sema &getSema() const { return SemaRef; } - /// \brief Exit this local instantiation scope early. + /// Exit this local instantiation scope early. void Exit() { if (Exited) return; @@ -316,7 +316,7 @@ Exited = true; } - /// \brief Clone this scope, and all outer scopes, down to the given + /// Clone this scope, and all outer scopes, down to the given /// outermost scope. LocalInstantiationScope *cloneScopes(LocalInstantiationScope *Outermost) { if (this == Outermost) return this; @@ -356,7 +356,7 @@ return newScope; } - /// \brief deletes the given scope, and all otuer scopes, down to the + /// deletes the given scope, and all otuer scopes, down to the /// given outermost scope. static void deleteScopes(LocalInstantiationScope *Scope, LocalInstantiationScope *Outermost) { @@ -367,7 +367,7 @@ } } - /// \brief Find the instantiation of the declaration D within the current + /// Find the instantiation of the declaration D within the current /// instantiation scope. /// /// \param D The declaration whose instantiation we are searching for. @@ -382,7 +382,7 @@ void InstantiatedLocalPackArg(const Decl *D, ParmVarDecl *Inst); void MakeInstantiatedLocalArgPack(const Decl *D); - /// \brief Note that the given parameter pack has been partially substituted + /// Note that the given parameter pack has been partially substituted /// via explicit specification of template arguments /// (C++0x [temp.arg.explicit]p9). /// @@ -398,7 +398,7 @@ const TemplateArgument *ExplicitArgs, unsigned NumExplicitArgs); - /// \brief Reset the partially-substituted pack when it is no longer of + /// Reset the partially-substituted pack when it is no longer of /// interest. void ResetPartiallySubstitutedPack() { assert(PartiallySubstitutedPack && "No partially-substituted pack"); @@ -407,7 +407,7 @@ NumArgsInPartiallySubstitutedPack = 0; } - /// \brief Retrieve the partially-substitued template parameter pack. + /// Retrieve the partially-substitued template parameter pack. /// /// If there is no partially-substituted parameter pack, returns NULL. NamedDecl * @@ -425,14 +425,14 @@ Sema::LateInstantiatedAttrVec* LateAttrs = nullptr; LocalInstantiationScope *StartingScope = nullptr; - /// \brief A list of out-of-line class template partial + /// A list of out-of-line class template partial /// specializations that will need to be instantiated after the /// enclosing class's instantiation is complete. SmallVector<std::pair<ClassTemplateDecl *, ClassTemplatePartialSpecializationDecl *>, 4> OutOfLinePartialSpecs; - /// \brief A list of out-of-line variable template partial + /// A list of out-of-line variable template partial /// specializations that will need to be instantiated after the /// enclosing variable's instantiation is complete. /// FIXME: Verify that this is needed. @@ -504,7 +504,7 @@ using delayed_var_partial_spec_iterator = SmallVectorImpl<std::pair< VarTemplateDecl *, VarTemplatePartialSpecializationDecl *>>::iterator; - /// \brief Return an iterator to the beginning of the set of + /// Return an iterator to the beginning of the set of /// "delayed" partial specializations, which must be passed to /// InstantiateClassTemplatePartialSpecialization once the class /// definition has been completed. @@ -516,7 +516,7 @@ return OutOfLineVarPartialSpecs.begin(); } - /// \brief Return an iterator to the end of the set of + /// Return an iterator to the end of the set of /// "delayed" partial specializations, which must be passed to /// InstantiateClassTemplatePartialSpecialization once the class /// definition has been completed. Index: cfe/trunk/include/clang/Sema/TemplateDeduction.h =================================================================== --- cfe/trunk/include/clang/Sema/TemplateDeduction.h +++ cfe/trunk/include/clang/Sema/TemplateDeduction.h @@ -34,24 +34,24 @@ namespace sema { -/// \brief Provides information about an attempted template argument +/// Provides information about an attempted template argument /// deduction, whose success or failure was described by a /// TemplateDeductionResult value. class TemplateDeductionInfo { - /// \brief The deduced template argument list. + /// The deduced template argument list. TemplateArgumentList *Deduced = nullptr; - /// \brief The source location at which template argument + /// The source location at which template argument /// deduction is occurring. SourceLocation Loc; - /// \brief Have we suppressed an error during deduction? + /// Have we suppressed an error during deduction? bool HasSFINAEDiagnostic = false; - /// \brief The template parameter depth for which we're performing deduction. + /// The template parameter depth for which we're performing deduction. unsigned DeducedDepth; - /// \brief Warnings (and follow-on notes) that were suppressed due to + /// Warnings (and follow-on notes) that were suppressed due to /// SFINAE while performing template argument deduction. SmallVector<PartialDiagnosticAt, 4> SuppressedDiagnostics; @@ -61,26 +61,26 @@ TemplateDeductionInfo(const TemplateDeductionInfo &) = delete; TemplateDeductionInfo &operator=(const TemplateDeductionInfo &) = delete; - /// \brief Returns the location at which template argument is + /// Returns the location at which template argument is /// occurring. SourceLocation getLocation() const { return Loc; } - /// \brief The depth of template parameters for which deduction is being + /// The depth of template parameters for which deduction is being /// performed. unsigned getDeducedDepth() const { return DeducedDepth; } - /// \brief Take ownership of the deduced template argument list. + /// Take ownership of the deduced template argument list. TemplateArgumentList *take() { TemplateArgumentList *Result = Deduced; Deduced = nullptr; return Result; } - /// \brief Take ownership of the SFINAE diagnostic. + /// Take ownership of the SFINAE diagnostic. void takeSFINAEDiagnostic(PartialDiagnosticAt &PD) { assert(HasSFINAEDiagnostic); PD.first = SuppressedDiagnostics.front().first; @@ -88,7 +88,7 @@ clearSFINAEDiagnostic(); } - /// \brief Discard any SFINAE diagnostics. + /// Discard any SFINAE diagnostics. void clearSFINAEDiagnostic() { SuppressedDiagnostics.clear(); HasSFINAEDiagnostic = false; @@ -100,18 +100,18 @@ return SuppressedDiagnostics.front(); } - /// \brief Provide a new template argument list that contains the + /// Provide a new template argument list that contains the /// results of template argument deduction. void reset(TemplateArgumentList *NewDeduced) { Deduced = NewDeduced; } - /// \brief Is a SFINAE diagnostic available? + /// Is a SFINAE diagnostic available? bool hasSFINAEDiagnostic() const { return HasSFINAEDiagnostic; } - /// \brief Set the diagnostic which caused the SFINAE failure. + /// Set the diagnostic which caused the SFINAE failure. void addSFINAEDiagnostic(SourceLocation Loc, PartialDiagnostic PD) { // Only collect the first diagnostic. if (HasSFINAEDiagnostic) @@ -121,7 +121,7 @@ HasSFINAEDiagnostic = true; } - /// \brief Add a new diagnostic to the set of diagnostics + /// Add a new diagnostic to the set of diagnostics void addSuppressedDiagnostic(SourceLocation Loc, PartialDiagnostic PD) { if (HasSFINAEDiagnostic) @@ -129,18 +129,18 @@ SuppressedDiagnostics.emplace_back(Loc, std::move(PD)); } - /// \brief Iterator over the set of suppressed diagnostics. + /// Iterator over the set of suppressed diagnostics. using diag_iterator = SmallVectorImpl<PartialDiagnosticAt>::const_iterator; - /// \brief Returns an iterator at the beginning of the sequence of suppressed + /// Returns an iterator at the beginning of the sequence of suppressed /// diagnostics. diag_iterator diag_begin() const { return SuppressedDiagnostics.begin(); } - /// \brief Returns an iterator at the end of the sequence of suppressed + /// Returns an iterator at the end of the sequence of suppressed /// diagnostics. diag_iterator diag_end() const { return SuppressedDiagnostics.end(); } - /// \brief The template parameter to which a template argument + /// The template parameter to which a template argument /// deduction failure refers. /// /// Depending on the result of template argument deduction, this @@ -153,7 +153,7 @@ /// two different template argument values were deduced. TemplateParameter Param; - /// \brief The first template argument to which the template + /// The first template argument to which the template /// argument deduction failure refers. /// /// Depending on the result of the template argument deduction, @@ -172,7 +172,7 @@ /// of the deduction, directly provided in the source code. TemplateArgument FirstArg; - /// \brief The second template argument to which the template + /// The second template argument to which the template /// argument deduction failure refers. /// /// TDK_Inconsistent: this argument is the second value deduced @@ -186,14 +186,14 @@ /// FIXME: Finish documenting this. TemplateArgument SecondArg; - /// \brief The index of the function argument that caused a deduction + /// The index of the function argument that caused a deduction /// failure. /// /// TDK_DeducedMismatch: this is the index of the argument that had a /// different argument type from its substituted parameter type. unsigned CallArgIndex = 0; - /// \brief Information on packs that we're currently expanding. + /// Information on packs that we're currently expanding. /// /// FIXME: This should be kept internal to SemaTemplateDeduction. SmallVector<DeducedPack *, 8> PendingDeducedPacks; @@ -207,41 +207,41 @@ /// A Sema::TemplateDeductionResult. unsigned Result : 8; - /// \brief Indicates whether a diagnostic is stored in Diagnostic. + /// Indicates whether a diagnostic is stored in Diagnostic. unsigned HasDiagnostic : 1; - /// \brief Opaque pointer containing additional data about + /// Opaque pointer containing additional data about /// this deduction failure. void *Data; - /// \brief A diagnostic indicating why deduction failed. + /// A diagnostic indicating why deduction failed. alignas(PartialDiagnosticAt) char Diagnostic[sizeof(PartialDiagnosticAt)]; - /// \brief Retrieve the diagnostic which caused this deduction failure, + /// Retrieve the diagnostic which caused this deduction failure, /// if any. PartialDiagnosticAt *getSFINAEDiagnostic(); - /// \brief Retrieve the template parameter this deduction failure + /// Retrieve the template parameter this deduction failure /// refers to, if any. TemplateParameter getTemplateParameter(); - /// \brief Retrieve the template argument list associated with this + /// Retrieve the template argument list associated with this /// deduction failure, if any. TemplateArgumentList *getTemplateArgumentList(); - /// \brief Return the first template argument this deduction failure + /// Return the first template argument this deduction failure /// refers to, if any. const TemplateArgument *getFirstArg(); - /// \brief Return the second template argument this deduction failure + /// Return the second template argument this deduction failure /// refers to, if any. const TemplateArgument *getSecondArg(); - /// \brief Return the index of the call argument that this deduction + /// Return the index of the call argument that this deduction /// failure refers to, if any. llvm::Optional<unsigned> getCallArgIndex(); - /// \brief Free any memory associated with this deduction failure. + /// Free any memory associated with this deduction failure. void Destroy(); }; @@ -253,7 +253,7 @@ /// TODO: In the future, we may need to unify/generalize this with /// OverloadCandidate. struct TemplateSpecCandidate { - /// \brief The declaration that was looked up, together with its access. + /// The declaration that was looked up, together with its access. /// Might be a UsingShadowDecl, but usually a FunctionTemplateDecl. DeclAccessPair FoundDecl; @@ -299,7 +299,7 @@ SourceLocation getLocation() const { return Loc; } - /// \brief Clear out all of the candidates. + /// Clear out all of the candidates. /// TODO: This may be unnecessary. void clear(); @@ -311,7 +311,7 @@ size_t size() const { return Candidates.size(); } bool empty() const { return Candidates.empty(); } - /// \brief Add a new candidate with NumConversions conversion sequence slots + /// Add a new candidate with NumConversions conversion sequence slots /// to the overload set. TemplateSpecCandidate &addCandidate() { Candidates.emplace_back(); Index: cfe/trunk/include/clang/Sema/TemplateInstCallback.h =================================================================== --- cfe/trunk/include/clang/Sema/TemplateInstCallback.h +++ cfe/trunk/include/clang/Sema/TemplateInstCallback.h @@ -19,23 +19,23 @@ namespace clang { -/// \brief This is a base class for callbacks that will be notified at every +/// This is a base class for callbacks that will be notified at every /// template instantiation. class TemplateInstantiationCallback { public: virtual ~TemplateInstantiationCallback() = default; - /// \brief Called before doing AST-parsing. + /// Called before doing AST-parsing. virtual void initialize(const Sema &TheSema) = 0; - /// \brief Called after AST-parsing is completed. + /// Called after AST-parsing is completed. virtual void finalize(const Sema &TheSema) = 0; - /// \brief Called when instantiation of a template just began. + /// Called when instantiation of a template just began. virtual void atTemplateBegin(const Sema &TheSema, const Sema::CodeSynthesisContext &Inst) = 0; - /// \brief Called when instantiation of a template is just about to end. + /// Called when instantiation of a template is just about to end. virtual void atTemplateEnd(const Sema &TheSema, const Sema::CodeSynthesisContext &Inst) = 0; }; Index: cfe/trunk/include/clang/Sema/TypoCorrection.h =================================================================== --- cfe/trunk/include/clang/Sema/TypoCorrection.h +++ cfe/trunk/include/clang/Sema/TypoCorrection.h @@ -39,7 +39,7 @@ class NestedNameSpecifier; class Sema; -/// @brief Simple class containing the result of Sema::CorrectTypo +/// Simple class containing the result of Sema::CorrectTypo class TypoCorrection { public: // "Distance" for unusable corrections @@ -81,14 +81,14 @@ TypoCorrection() = default; - /// \brief Gets the DeclarationName of the typo correction + /// Gets the DeclarationName of the typo correction DeclarationName getCorrection() const { return CorrectionName; } IdentifierInfo *getCorrectionAsIdentifierInfo() const { return CorrectionName.getAsIdentifierInfo(); } - /// \brief Gets the NestedNameSpecifier needed to use the typo correction + /// Gets the NestedNameSpecifier needed to use the typo correction NestedNameSpecifier *getCorrectionSpecifier() const { return CorrectionNameSpec; } @@ -123,7 +123,7 @@ return (ED + CharDistanceWeight / 2) / CharDistanceWeight; } - /// \brief Gets the "edit distance" of the typo correction from the typo. + /// Gets the "edit distance" of the typo correction from the typo. /// If Normalized is true, scale the distance down by the CharDistanceWeight /// to return the edit distance in terms of single-character edits. unsigned getEditDistance(bool Normalized = true) const { @@ -142,13 +142,13 @@ return Normalized ? NormalizeEditDistance(ED) : ED; } - /// \brief Get the correction declaration found by name lookup (before we + /// Get the correction declaration found by name lookup (before we /// looked through using shadow declarations and the like). NamedDecl *getFoundDecl() const { return hasCorrectionDecl() ? *(CorrectionDecls.begin()) : nullptr; } - /// \brief Gets the pointer to the declaration of the typo correction + /// Gets the pointer to the declaration of the typo correction NamedDecl *getCorrectionDecl() const { auto *D = getFoundDecl(); return D ? D->getUnderlyingDecl() : nullptr; @@ -158,24 +158,24 @@ return dyn_cast_or_null<DeclClass>(getCorrectionDecl()); } - /// \brief Clears the list of NamedDecls. + /// Clears the list of NamedDecls. void ClearCorrectionDecls() { CorrectionDecls.clear(); } - /// \brief Clears the list of NamedDecls before adding the new one. + /// Clears the list of NamedDecls before adding the new one. void setCorrectionDecl(NamedDecl *CDecl) { CorrectionDecls.clear(); addCorrectionDecl(CDecl); } - /// \brief Clears the list of NamedDecls and adds the given set. + /// Clears the list of NamedDecls and adds the given set. void setCorrectionDecls(ArrayRef<NamedDecl*> Decls) { CorrectionDecls.clear(); CorrectionDecls.insert(CorrectionDecls.begin(), Decls.begin(), Decls.end()); } - /// \brief Add the given NamedDecl to the list of NamedDecls that are the + /// Add the given NamedDecl to the list of NamedDecls that are the /// declarations associated with the DeclarationName of this TypoCorrection void addCorrectionDecl(NamedDecl *CDecl); @@ -185,10 +185,10 @@ return "'" + getAsString(LO) + "'"; } - /// \brief Returns whether this TypoCorrection has a non-empty DeclarationName + /// Returns whether this TypoCorrection has a non-empty DeclarationName explicit operator bool() const { return bool(CorrectionName); } - /// \brief Mark this TypoCorrection as being a keyword. + /// Mark this TypoCorrection as being a keyword. /// Since addCorrectionDeclsand setCorrectionDecl don't allow NULL to be /// added to the list of the correction's NamedDecl pointers, NULL is added /// as the only element in the list to mark this TypoCorrection as a keyword. @@ -244,7 +244,7 @@ const_decl_iterator end() const { return CorrectionDecls.end(); } - /// \brief Returns whether this typo correction is correcting to a + /// Returns whether this typo correction is correcting to a /// declaration that was declared in a module that has not been imported. bool requiresImport() const { return RequiresImport; } void setRequiresImport(bool Req) { RequiresImport = Req; } @@ -277,7 +277,7 @@ std::vector<PartialDiagnostic> ExtraDiagnostics; }; -/// @brief Base class for callback objects used by Sema::CorrectTypo to check +/// Base class for callback objects used by Sema::CorrectTypo to check /// the validity of a potential typo correction. class CorrectionCandidateCallback { public: @@ -289,7 +289,7 @@ virtual ~CorrectionCandidateCallback() = default; - /// \brief Simple predicate used by the default RankCandidate to + /// Simple predicate used by the default RankCandidate to /// determine whether to return an edit distance of 0 or InvalidDistance. /// This can be overridden by validators that only need to determine if a /// candidate is viable, without ranking potentially viable candidates. @@ -301,7 +301,7 @@ /// WantCXXNamedCasts, WantRemainingKeywords, or WantObjCSuper is true. virtual bool ValidateCandidate(const TypoCorrection &candidate); - /// \brief Method used by Sema::CorrectTypo to assign an "edit distance" rank + /// Method used by Sema::CorrectTypo to assign an "edit distance" rank /// to a candidate (where a lower value represents a better candidate), or /// returning InvalidDistance if the candidate is not at all viable. For /// validation callbacks that only need to determine if a candidate is viable, @@ -343,7 +343,7 @@ NestedNameSpecifier *TypoNNS; }; -/// @brief Simple template class for restricting typo correction candidates +/// Simple template class for restricting typo correction candidates /// to ones having a single Decl* of the given type. template <class C> class DeclFilterCCC : public CorrectionCandidateCallback { @@ -353,7 +353,7 @@ } }; -// @brief Callback class to limit the allowed keywords and to only accept typo +// Callback class to limit the allowed keywords and to only accept typo // corrections that are keywords or whose decls refer to functions (or template // functions) that accept the given number of arguments. class FunctionCallFilterCCC : public CorrectionCandidateCallback { @@ -371,7 +371,7 @@ MemberExpr *MemberFn; }; -// @brief Callback class that effectively disabled typo correction +// Callback class that effectively disabled typo correction class NoTypoCorrectionCCC : public CorrectionCandidateCallback { public: NoTypoCorrectionCCC() { Index: cfe/trunk/include/clang/Sema/Weak.h =================================================================== --- cfe/trunk/include/clang/Sema/Weak.h +++ cfe/trunk/include/clang/Sema/Weak.h @@ -21,7 +21,7 @@ class IdentifierInfo; -/// \brief Captures information about a \#pragma weak directive. +/// Captures information about a \#pragma weak directive. class WeakInfo { IdentifierInfo *alias; // alias (optional) SourceLocation loc; // for diagnostics Index: cfe/trunk/include/clang/Serialization/ASTBitCodes.h =================================================================== --- cfe/trunk/include/clang/Serialization/ASTBitCodes.h +++ cfe/trunk/include/clang/Serialization/ASTBitCodes.h @@ -31,7 +31,7 @@ namespace clang { namespace serialization { - /// \brief AST file major version number supported by this version of + /// AST file major version number supported by this version of /// Clang. /// /// Whenever the AST file format changes in a way that makes it @@ -44,7 +44,7 @@ /// AST files at this time. const unsigned VERSION_MAJOR = 6; - /// \brief AST file minor version number supported by this version of + /// AST file minor version number supported by this version of /// Clang. /// /// Whenever the AST format changes in a way that is still @@ -54,13 +54,13 @@ /// should be increased. const unsigned VERSION_MINOR = 0; - /// \brief An ID number that refers to an identifier in an AST file. + /// An ID number that refers to an identifier in an AST file. /// /// The ID numbers of identifiers are consecutive (in order of discovery) /// and start at 1. 0 is reserved for NULL. using IdentifierID = uint32_t; - /// \brief An ID number that refers to a declaration in an AST file. + /// An ID number that refers to a declaration in an AST file. /// /// The ID numbers of declarations are consecutive (in order of /// discovery), with values below NUM_PREDEF_DECL_IDS being reserved. @@ -73,7 +73,7 @@ using LocalDeclID = DeclID; using GlobalDeclID = DeclID; - /// \brief An ID number that refers to a type in an AST file. + /// An ID number that refers to a type in an AST file. /// /// The ID of a type is partitioned into two parts: the lower /// three bits are used to store the const/volatile/restrict @@ -85,7 +85,7 @@ /// other types that have serialized representations. using TypeID = uint32_t; - /// \brief A type index; the type ID with the qualifier bits removed. + /// A type index; the type ID with the qualifier bits removed. class TypeIdx { uint32_t Idx = 0; @@ -131,58 +131,58 @@ } }; - /// \brief An ID number that refers to an identifier in an AST file. + /// An ID number that refers to an identifier in an AST file. using IdentID = uint32_t; - /// \brief The number of predefined identifier IDs. + /// The number of predefined identifier IDs. const unsigned int NUM_PREDEF_IDENT_IDS = 1; - /// \brief An ID number that refers to a macro in an AST file. + /// An ID number that refers to a macro in an AST file. using MacroID = uint32_t; - /// \brief A global ID number that refers to a macro in an AST file. + /// A global ID number that refers to a macro in an AST file. using GlobalMacroID = uint32_t; - /// \brief A local to a module ID number that refers to a macro in an + /// A local to a module ID number that refers to a macro in an /// AST file. using LocalMacroID = uint32_t; - /// \brief The number of predefined macro IDs. + /// The number of predefined macro IDs. const unsigned int NUM_PREDEF_MACRO_IDS = 1; - /// \brief An ID number that refers to an ObjC selector in an AST file. + /// An ID number that refers to an ObjC selector in an AST file. using SelectorID = uint32_t; - /// \brief The number of predefined selector IDs. + /// The number of predefined selector IDs. const unsigned int NUM_PREDEF_SELECTOR_IDS = 1; - /// \brief An ID number that refers to a set of CXXBaseSpecifiers in an + /// An ID number that refers to a set of CXXBaseSpecifiers in an /// AST file. using CXXBaseSpecifiersID = uint32_t; - /// \brief An ID number that refers to a list of CXXCtorInitializers in an + /// An ID number that refers to a list of CXXCtorInitializers in an /// AST file. using CXXCtorInitializersID = uint32_t; - /// \brief An ID number that refers to an entity in the detailed + /// An ID number that refers to an entity in the detailed /// preprocessing record. using PreprocessedEntityID = uint32_t; - /// \brief An ID number that refers to a submodule in a module file. + /// An ID number that refers to a submodule in a module file. using SubmoduleID = uint32_t; - /// \brief The number of predefined submodule IDs. + /// The number of predefined submodule IDs. const unsigned int NUM_PREDEF_SUBMODULE_IDS = 1; - /// \brief Source range/offset of a preprocessed entity. + /// Source range/offset of a preprocessed entity. struct PPEntityOffset { - /// \brief Raw source location of beginning of range. + /// Raw source location of beginning of range. unsigned Begin; - /// \brief Raw source location of end of range. + /// Raw source location of end of range. unsigned End; - /// \brief Offset in the AST file. + /// Offset in the AST file. uint32_t BitOffset; PPEntityOffset(SourceRange R, uint32_t BitOffset) @@ -198,11 +198,11 @@ } }; - /// \brief Source range of a skipped preprocessor region + /// Source range of a skipped preprocessor region struct PPSkippedRange { - /// \brief Raw source location of beginning of range. + /// Raw source location of beginning of range. unsigned Begin; - /// \brief Raw source location of end of range. + /// Raw source location of end of range. unsigned End; PPSkippedRange(SourceRange R) @@ -217,12 +217,12 @@ } }; - /// \brief Source range/offset of a preprocessed entity. + /// Source range/offset of a preprocessed entity. struct DeclOffset { - /// \brief Raw source location. + /// Raw source location. unsigned Loc = 0; - /// \brief Offset in the AST file. + /// Offset in the AST file. uint32_t BitOffset = 0; DeclOffset() = default; @@ -238,56 +238,56 @@ } }; - /// \brief The number of predefined preprocessed entity IDs. + /// The number of predefined preprocessed entity IDs. const unsigned int NUM_PREDEF_PP_ENTITY_IDS = 1; - /// \brief Describes the various kinds of blocks that occur within + /// Describes the various kinds of blocks that occur within /// an AST file. enum BlockIDs { - /// \brief The AST block, which acts as a container around the + /// The AST block, which acts as a container around the /// full AST block. AST_BLOCK_ID = llvm::bitc::FIRST_APPLICATION_BLOCKID, - /// \brief The block containing information about the source + /// The block containing information about the source /// manager. SOURCE_MANAGER_BLOCK_ID, - /// \brief The block containing information about the + /// The block containing information about the /// preprocessor. PREPROCESSOR_BLOCK_ID, - /// \brief The block containing the definitions of all of the + /// The block containing the definitions of all of the /// types and decls used within the AST file. DECLTYPES_BLOCK_ID, - /// \brief The block containing the detailed preprocessing record. + /// The block containing the detailed preprocessing record. PREPROCESSOR_DETAIL_BLOCK_ID, - /// \brief The block containing the submodule structure. + /// The block containing the submodule structure. SUBMODULE_BLOCK_ID, - /// \brief The block containing comments. + /// The block containing comments. COMMENTS_BLOCK_ID, - /// \brief The control block, which contains all of the + /// The control block, which contains all of the /// information that needs to be validated prior to committing /// to loading the AST file. CONTROL_BLOCK_ID, - /// \brief The block of input files, which were used as inputs + /// The block of input files, which were used as inputs /// to create this AST file. /// /// This block is part of the control block. INPUT_FILES_BLOCK_ID, - /// \brief The block of configuration options, used to check that + /// The block of configuration options, used to check that /// a module is being used in a configuration compatible with the /// configuration in which it was built. /// /// This block is part of the control block. OPTIONS_BLOCK_ID, - /// \brief A block containing a module file extension. + /// A block containing a module file extension. EXTENSION_BLOCK_ID, /// A block with unhashed content. @@ -297,47 +297,47 @@ UNHASHED_CONTROL_BLOCK_ID, }; - /// \brief Record types that occur within the control block. + /// Record types that occur within the control block. enum ControlRecordTypes { - /// \brief AST file metadata, including the AST file version number + /// AST file metadata, including the AST file version number /// and information about the compiler used to build this AST file. METADATA = 1, - /// \brief Record code for the list of other AST files imported by + /// Record code for the list of other AST files imported by /// this AST file. IMPORTS, - /// \brief Record code for the original file that was used to + /// Record code for the original file that was used to /// generate the AST file, including both its file ID and its /// name. ORIGINAL_FILE, - /// \brief The directory that the PCH was originally created in. + /// The directory that the PCH was originally created in. ORIGINAL_PCH_DIR, - /// \brief Record code for file ID of the file or buffer that was used to + /// Record code for file ID of the file or buffer that was used to /// generate the AST file. ORIGINAL_FILE_ID, - /// \brief Offsets into the input-files block where input files + /// Offsets into the input-files block where input files /// reside. INPUT_FILE_OFFSETS, - /// \brief Record code for the module name. + /// Record code for the module name. MODULE_NAME, - /// \brief Record code for the module map file that was used to build this + /// Record code for the module map file that was used to build this /// AST file. MODULE_MAP_FILE, - /// \brief Record code for the module build directory. + /// Record code for the module build directory. MODULE_DIRECTORY, }; - /// \brief Record types that occur within the options block inside + /// Record types that occur within the options block inside /// the control block. enum OptionsRecordTypes { - /// \brief Record code for the language options table. + /// Record code for the language options table. /// /// The record with this code contains the contents of the /// LangOptions structure. We serialize the entire contents of @@ -345,16 +345,16 @@ /// actually important to check. LANGUAGE_OPTIONS = 1, - /// \brief Record code for the target options table. + /// Record code for the target options table. TARGET_OPTIONS, - /// \brief Record code for the filesystem options table. + /// Record code for the filesystem options table. FILE_SYSTEM_OPTIONS, - /// \brief Record code for the headers search options table. + /// Record code for the headers search options table. HEADER_SEARCH_OPTIONS, - /// \brief Record code for the preprocessor options table. + /// Record code for the preprocessor options table. PREPROCESSOR_OPTIONS, }; @@ -370,7 +370,7 @@ DIAG_PRAGMA_MAPPINGS, }; - /// \brief Record code for extension blocks. + /// Record code for extension blocks. enum ExtensionBlockRecordTypes { /// Metadata describing this particular extension. EXTENSION_METADATA = 1, @@ -379,16 +379,16 @@ FIRST_EXTENSION_RECORD_ID = 4 }; - /// \brief Record types that occur within the input-files block + /// Record types that occur within the input-files block /// inside the control block. enum InputFileRecordTypes { - /// \brief An input file. + /// An input file. INPUT_FILE = 1 }; - /// \brief Record types that occur within the AST block itself. + /// Record types that occur within the AST block itself. enum ASTRecordTypes { - /// \brief Record code for the offsets of each type. + /// Record code for the offsets of each type. /// /// The TYPE_OFFSET constant describes the record that occurs /// within the AST block. The record itself is an array of offsets that @@ -402,7 +402,7 @@ /// corresponding record within the DECLTYPES_BLOCK_ID block. TYPE_OFFSET = 1, - /// \brief Record code for the offsets of each decl. + /// Record code for the offsets of each decl. /// /// The DECL_OFFSET constant describes the record that occurs /// within the block identified by DECL_OFFSETS_BLOCK_ID within @@ -414,7 +414,7 @@ /// reserved for the translation unit declaration. DECL_OFFSET = 2, - /// \brief Record code for the table of offsets of each + /// Record code for the table of offsets of each /// identifier ID. /// /// The offset table contains offsets into the blob stored in @@ -422,12 +422,12 @@ /// NULL-terminated string that corresponds to that identifier. IDENTIFIER_OFFSET = 3, - /// \brief This is so that older clang versions, before the introduction + /// This is so that older clang versions, before the introduction /// of the control block, can read and reject the newer PCH format. /// *DON'T CHANGE THIS NUMBER*. METADATA_OLD_FORMAT = 4, - /// \brief Record code for the identifier table. + /// Record code for the identifier table. /// /// The identifier table is a simple blob that contains /// NULL-terminated strings for all of the identifiers @@ -441,7 +441,7 @@ /// IDs). IDENTIFIER_TABLE = 5, - /// \brief Record code for the array of eagerly deserialized decls. + /// Record code for the array of eagerly deserialized decls. /// /// The AST file contains a list of all of the declarations that should be /// eagerly deserialized present within the parsed headers, stored as an @@ -451,7 +451,7 @@ /// program (e.g., for code generation). EAGERLY_DESERIALIZED_DECLS = 6, - /// \brief Record code for the set of non-builtin, special + /// Record code for the set of non-builtin, special /// types. /// /// This record contains the type IDs for the various type nodes @@ -460,31 +460,31 @@ /// offsets into this record. SPECIAL_TYPES = 7, - /// \brief Record code for the extra statistics we gather while + /// Record code for the extra statistics we gather while /// generating an AST file. STATISTICS = 8, - /// \brief Record code for the array of tentative definitions. + /// Record code for the array of tentative definitions. TENTATIVE_DEFINITIONS = 9, // ID 10 used to be for a list of extern "C" declarations. - /// \brief Record code for the table of offsets into the + /// Record code for the table of offsets into the /// Objective-C method pool. SELECTOR_OFFSETS = 11, - /// \brief Record code for the Objective-C method pool, + /// Record code for the Objective-C method pool, METHOD_POOL = 12, - /// \brief The value of the next __COUNTER__ to dispense. + /// The value of the next __COUNTER__ to dispense. /// [PP_COUNTER_VALUE, Val] PP_COUNTER_VALUE = 13, - /// \brief Record code for the table of offsets into the block + /// Record code for the table of offsets into the block /// of source-location information. SOURCE_LOCATION_OFFSETS = 14, - /// \brief Record code for the set of source location entries + /// Record code for the set of source location entries /// that need to be preloaded by the AST reader. /// /// This set contains the source location entry for the @@ -492,47 +492,47 @@ /// preloaded. SOURCE_LOCATION_PRELOADS = 15, - /// \brief Record code for the set of ext_vector type names. + /// Record code for the set of ext_vector type names. EXT_VECTOR_DECLS = 16, - /// \brief Record code for the array of unused file scoped decls. + /// Record code for the array of unused file scoped decls. UNUSED_FILESCOPED_DECLS = 17, - /// \brief Record code for the table of offsets to entries in the + /// Record code for the table of offsets to entries in the /// preprocessing record. PPD_ENTITIES_OFFSETS = 18, - /// \brief Record code for the array of VTable uses. + /// Record code for the array of VTable uses. VTABLE_USES = 19, // ID 20 used to be for a list of dynamic classes. - /// \brief Record code for referenced selector pool. + /// Record code for referenced selector pool. REFERENCED_SELECTOR_POOL = 21, - /// \brief Record code for an update to the TU's lexically contained + /// Record code for an update to the TU's lexically contained /// declarations. TU_UPDATE_LEXICAL = 22, // ID 23 used to be for a list of local redeclarations. - /// \brief Record code for declarations that Sema keeps references of. + /// Record code for declarations that Sema keeps references of. SEMA_DECL_REFS = 24, - /// \brief Record code for weak undeclared identifiers. + /// Record code for weak undeclared identifiers. WEAK_UNDECLARED_IDENTIFIERS = 25, - /// \brief Record code for pending implicit instantiations. + /// Record code for pending implicit instantiations. PENDING_IMPLICIT_INSTANTIATIONS = 26, // ID 27 used to be for a list of replacement decls. - /// \brief Record code for an update to a decl context's lookup table. + /// Record code for an update to a decl context's lookup table. /// /// In practice, this should only be used for the TU and namespaces. UPDATE_VISIBLE = 28, - /// \brief Record for offsets of DECL_UPDATES records for declarations + /// Record for offsets of DECL_UPDATES records for declarations /// that were modified after being deserialized and need updates. DECL_UPDATE_OFFSETS = 29, @@ -543,245 +543,245 @@ // ID 32 used to be the code for \#pragma diagnostic mappings. - /// \brief Record code for special CUDA declarations. + /// Record code for special CUDA declarations. CUDA_SPECIAL_DECL_REFS = 33, - /// \brief Record code for header search information. + /// Record code for header search information. HEADER_SEARCH_TABLE = 34, - /// \brief Record code for floating point \#pragma options. + /// Record code for floating point \#pragma options. FP_PRAGMA_OPTIONS = 35, - /// \brief Record code for enabled OpenCL extensions. + /// Record code for enabled OpenCL extensions. OPENCL_EXTENSIONS = 36, - /// \brief The list of delegating constructor declarations. + /// The list of delegating constructor declarations. DELEGATING_CTORS = 37, - /// \brief Record code for the set of known namespaces, which are used + /// Record code for the set of known namespaces, which are used /// for typo correction. KNOWN_NAMESPACES = 38, - /// \brief Record code for the remapping information used to relate + /// Record code for the remapping information used to relate /// loaded modules to the various offsets and IDs(e.g., source location /// offests, declaration and type IDs) that are used in that module to /// refer to other modules. MODULE_OFFSET_MAP = 39, - /// \brief Record code for the source manager line table information, + /// Record code for the source manager line table information, /// which stores information about \#line directives. SOURCE_MANAGER_LINE_TABLE = 40, - /// \brief Record code for map of Objective-C class definition IDs to the + /// Record code for map of Objective-C class definition IDs to the /// ObjC categories in a module that are attached to that class. OBJC_CATEGORIES_MAP = 41, - /// \brief Record code for a file sorted array of DeclIDs in a module. + /// Record code for a file sorted array of DeclIDs in a module. FILE_SORTED_DECLS = 42, - /// \brief Record code for an array of all of the (sub)modules that were + /// Record code for an array of all of the (sub)modules that were /// imported by the AST file. IMPORTED_MODULES = 43, // ID 44 used to be a table of merged canonical declarations. // ID 45 used to be a list of declaration IDs of local redeclarations. - /// \brief Record code for the array of Objective-C categories (including + /// Record code for the array of Objective-C categories (including /// extensions). /// /// This array can only be interpreted properly using the Objective-C /// categories map. OBJC_CATEGORIES = 46, - /// \brief Record code for the table of offsets of each macro ID. + /// Record code for the table of offsets of each macro ID. /// /// The offset table contains offsets into the blob stored in /// the preprocessor block. Each offset points to the corresponding /// macro definition. MACRO_OFFSET = 47, - /// \brief A list of "interesting" identifiers. Only used in C++ (where we + /// A list of "interesting" identifiers. Only used in C++ (where we /// don't normally do lookups into the serialized identifier table). These /// are eagerly deserialized. INTERESTING_IDENTIFIERS = 48, - /// \brief Record code for undefined but used functions and variables that + /// Record code for undefined but used functions and variables that /// need a definition in this TU. UNDEFINED_BUT_USED = 49, - /// \brief Record code for late parsed template functions. + /// Record code for late parsed template functions. LATE_PARSED_TEMPLATE = 50, - /// \brief Record code for \#pragma optimize options. + /// Record code for \#pragma optimize options. OPTIMIZE_PRAGMA_OPTIONS = 51, - /// \brief Record code for potentially unused local typedef names. + /// Record code for potentially unused local typedef names. UNUSED_LOCAL_TYPEDEF_NAME_CANDIDATES = 52, // ID 53 used to be a table of constructor initializer records. - /// \brief Delete expressions that will be analyzed later. + /// Delete expressions that will be analyzed later. DELETE_EXPRS_TO_ANALYZE = 54, - /// \brief Record code for \#pragma ms_struct options. + /// Record code for \#pragma ms_struct options. MSSTRUCT_PRAGMA_OPTIONS = 55, - /// \brief Record code for \#pragma ms_struct options. + /// Record code for \#pragma ms_struct options. POINTERS_TO_MEMBERS_PRAGMA_OPTIONS = 56, - /// \brief Number of unmatched #pragma clang cuda_force_host_device begin + /// Number of unmatched #pragma clang cuda_force_host_device begin /// directives we've seen. CUDA_PRAGMA_FORCE_HOST_DEVICE_DEPTH = 57, - /// \brief Record code for types associated with OpenCL extensions. + /// Record code for types associated with OpenCL extensions. OPENCL_EXTENSION_TYPES = 58, - /// \brief Record code for declarations associated with OpenCL extensions. + /// Record code for declarations associated with OpenCL extensions. OPENCL_EXTENSION_DECLS = 59, MODULAR_CODEGEN_DECLS = 60, - /// \brief Record code for \#pragma pack options. + /// Record code for \#pragma pack options. PACK_PRAGMA_OPTIONS = 61, - /// \brief The stack of open #ifs/#ifdefs recorded in a preamble. + /// The stack of open #ifs/#ifdefs recorded in a preamble. PP_CONDITIONAL_STACK = 62, - /// \brief A table of skipped ranges within the preprocessing record. + /// A table of skipped ranges within the preprocessing record. PPD_SKIPPED_RANGES = 63 }; - /// \brief Record types used within a source manager block. + /// Record types used within a source manager block. enum SourceManagerRecordTypes { - /// \brief Describes a source location entry (SLocEntry) for a + /// Describes a source location entry (SLocEntry) for a /// file. SM_SLOC_FILE_ENTRY = 1, - /// \brief Describes a source location entry (SLocEntry) for a + /// Describes a source location entry (SLocEntry) for a /// buffer. SM_SLOC_BUFFER_ENTRY = 2, - /// \brief Describes a blob that contains the data for a buffer + /// Describes a blob that contains the data for a buffer /// entry. This kind of record always directly follows a /// SM_SLOC_BUFFER_ENTRY record or a SM_SLOC_FILE_ENTRY with an /// overridden buffer. SM_SLOC_BUFFER_BLOB = 3, - /// \brief Describes a zlib-compressed blob that contains the data for + /// Describes a zlib-compressed blob that contains the data for /// a buffer entry. SM_SLOC_BUFFER_BLOB_COMPRESSED = 4, - /// \brief Describes a source location entry (SLocEntry) for a + /// Describes a source location entry (SLocEntry) for a /// macro expansion. SM_SLOC_EXPANSION_ENTRY = 5 }; - /// \brief Record types used within a preprocessor block. + /// Record types used within a preprocessor block. enum PreprocessorRecordTypes { // The macros in the PP section are a PP_MACRO_* instance followed by a // list of PP_TOKEN instances for each token in the definition. - /// \brief An object-like macro definition. + /// An object-like macro definition. /// [PP_MACRO_OBJECT_LIKE, IdentInfoID, SLoc, IsUsed] PP_MACRO_OBJECT_LIKE = 1, - /// \brief A function-like macro definition. + /// A function-like macro definition. /// [PP_MACRO_FUNCTION_LIKE, \<ObjectLikeStuff>, IsC99Varargs, /// IsGNUVarars, NumArgs, ArgIdentInfoID* ] PP_MACRO_FUNCTION_LIKE = 2, - /// \brief Describes one token. + /// Describes one token. /// [PP_TOKEN, SLoc, Length, IdentInfoID, Kind, Flags] PP_TOKEN = 3, - /// \brief The macro directives history for a particular identifier. + /// The macro directives history for a particular identifier. PP_MACRO_DIRECTIVE_HISTORY = 4, - /// \brief A macro directive exported by a module. + /// A macro directive exported by a module. /// [PP_MODULE_MACRO, SubmoduleID, MacroID, (Overridden SubmoduleID)*] PP_MODULE_MACRO = 5, }; - /// \brief Record types used within a preprocessor detail block. + /// Record types used within a preprocessor detail block. enum PreprocessorDetailRecordTypes { - /// \brief Describes a macro expansion within the preprocessing record. + /// Describes a macro expansion within the preprocessing record. PPD_MACRO_EXPANSION = 0, - /// \brief Describes a macro definition within the preprocessing record. + /// Describes a macro definition within the preprocessing record. PPD_MACRO_DEFINITION = 1, - /// \brief Describes an inclusion directive within the preprocessing + /// Describes an inclusion directive within the preprocessing /// record. PPD_INCLUSION_DIRECTIVE = 2 }; - /// \brief Record types used within a submodule description block. + /// Record types used within a submodule description block. enum SubmoduleRecordTypes { - /// \brief Metadata for submodules as a whole. + /// Metadata for submodules as a whole. SUBMODULE_METADATA = 0, - /// \brief Defines the major attributes of a submodule, including its + /// Defines the major attributes of a submodule, including its /// name and parent. SUBMODULE_DEFINITION = 1, - /// \brief Specifies the umbrella header used to create this module, + /// Specifies the umbrella header used to create this module, /// if any. SUBMODULE_UMBRELLA_HEADER = 2, - /// \brief Specifies a header that falls into this (sub)module. + /// Specifies a header that falls into this (sub)module. SUBMODULE_HEADER = 3, - /// \brief Specifies a top-level header that falls into this (sub)module. + /// Specifies a top-level header that falls into this (sub)module. SUBMODULE_TOPHEADER = 4, - /// \brief Specifies an umbrella directory. + /// Specifies an umbrella directory. SUBMODULE_UMBRELLA_DIR = 5, - /// \brief Specifies the submodules that are imported by this + /// Specifies the submodules that are imported by this /// submodule. SUBMODULE_IMPORTS = 6, - /// \brief Specifies the submodules that are re-exported from this + /// Specifies the submodules that are re-exported from this /// submodule. SUBMODULE_EXPORTS = 7, - /// \brief Specifies a required feature. + /// Specifies a required feature. SUBMODULE_REQUIRES = 8, - /// \brief Specifies a header that has been explicitly excluded + /// Specifies a header that has been explicitly excluded /// from this submodule. SUBMODULE_EXCLUDED_HEADER = 9, - /// \brief Specifies a library or framework to link against. + /// Specifies a library or framework to link against. SUBMODULE_LINK_LIBRARY = 10, - /// \brief Specifies a configuration macro for this module. + /// Specifies a configuration macro for this module. SUBMODULE_CONFIG_MACRO = 11, - /// \brief Specifies a conflict with another module. + /// Specifies a conflict with another module. SUBMODULE_CONFLICT = 12, - /// \brief Specifies a header that is private to this submodule. + /// Specifies a header that is private to this submodule. SUBMODULE_PRIVATE_HEADER = 13, - /// \brief Specifies a header that is part of the module but must be + /// Specifies a header that is part of the module but must be /// textually included. SUBMODULE_TEXTUAL_HEADER = 14, - /// \brief Specifies a header that is private to this submodule but + /// Specifies a header that is private to this submodule but /// must be textually included. SUBMODULE_PRIVATE_TEXTUAL_HEADER = 15, - /// \brief Specifies some declarations with initializers that must be + /// Specifies some declarations with initializers that must be /// emitted to initialize the module. SUBMODULE_INITIALIZERS = 16, - /// \brief Specifies the name of the module that will eventually + /// Specifies the name of the module that will eventually /// re-export the entities in this module. SUBMODULE_EXPORT_AS = 17, }; - /// \brief Record types used within a comments block. + /// Record types used within a comments block. enum CommentRecordTypes { COMMENTS_RAW_COMMENT = 0 }; @@ -793,7 +793,7 @@ /// /// @{ - /// \brief Predefined type IDs. + /// Predefined type IDs. /// /// These type IDs correspond to predefined types in the AST /// context, such as built-in types (int) and special place-holder @@ -801,499 +801,499 @@ /// types are never actually serialized, since they will be built /// by the AST context when it is created. enum PredefinedTypeIDs { - /// \brief The NULL type. + /// The NULL type. PREDEF_TYPE_NULL_ID = 0, - /// \brief The void type. + /// The void type. PREDEF_TYPE_VOID_ID = 1, - /// \brief The 'bool' or '_Bool' type. + /// The 'bool' or '_Bool' type. PREDEF_TYPE_BOOL_ID = 2, - /// \brief The 'char' type, when it is unsigned. + /// The 'char' type, when it is unsigned. PREDEF_TYPE_CHAR_U_ID = 3, - /// \brief The 'unsigned char' type. + /// The 'unsigned char' type. PREDEF_TYPE_UCHAR_ID = 4, - /// \brief The 'unsigned short' type. + /// The 'unsigned short' type. PREDEF_TYPE_USHORT_ID = 5, - /// \brief The 'unsigned int' type. + /// The 'unsigned int' type. PREDEF_TYPE_UINT_ID = 6, - /// \brief The 'unsigned long' type. + /// The 'unsigned long' type. PREDEF_TYPE_ULONG_ID = 7, - /// \brief The 'unsigned long long' type. + /// The 'unsigned long long' type. PREDEF_TYPE_ULONGLONG_ID = 8, - /// \brief The 'char' type, when it is signed. + /// The 'char' type, when it is signed. PREDEF_TYPE_CHAR_S_ID = 9, - /// \brief The 'signed char' type. + /// The 'signed char' type. PREDEF_TYPE_SCHAR_ID = 10, - /// \brief The C++ 'wchar_t' type. + /// The C++ 'wchar_t' type. PREDEF_TYPE_WCHAR_ID = 11, - /// \brief The (signed) 'short' type. + /// The (signed) 'short' type. PREDEF_TYPE_SHORT_ID = 12, - /// \brief The (signed) 'int' type. + /// The (signed) 'int' type. PREDEF_TYPE_INT_ID = 13, - /// \brief The (signed) 'long' type. + /// The (signed) 'long' type. PREDEF_TYPE_LONG_ID = 14, - /// \brief The (signed) 'long long' type. + /// The (signed) 'long long' type. PREDEF_TYPE_LONGLONG_ID = 15, - /// \brief The 'float' type. + /// The 'float' type. PREDEF_TYPE_FLOAT_ID = 16, - /// \brief The 'double' type. + /// The 'double' type. PREDEF_TYPE_DOUBLE_ID = 17, - /// \brief The 'long double' type. + /// The 'long double' type. PREDEF_TYPE_LONGDOUBLE_ID = 18, - /// \brief The placeholder type for overloaded function sets. + /// The placeholder type for overloaded function sets. PREDEF_TYPE_OVERLOAD_ID = 19, - /// \brief The placeholder type for dependent types. + /// The placeholder type for dependent types. PREDEF_TYPE_DEPENDENT_ID = 20, - /// \brief The '__uint128_t' type. + /// The '__uint128_t' type. PREDEF_TYPE_UINT128_ID = 21, - /// \brief The '__int128_t' type. + /// The '__int128_t' type. PREDEF_TYPE_INT128_ID = 22, - /// \brief The type of 'nullptr'. + /// The type of 'nullptr'. PREDEF_TYPE_NULLPTR_ID = 23, - /// \brief The C++ 'char16_t' type. + /// The C++ 'char16_t' type. PREDEF_TYPE_CHAR16_ID = 24, - /// \brief The C++ 'char32_t' type. + /// The C++ 'char32_t' type. PREDEF_TYPE_CHAR32_ID = 25, - /// \brief The ObjC 'id' type. + /// The ObjC 'id' type. PREDEF_TYPE_OBJC_ID = 26, - /// \brief The ObjC 'Class' type. + /// The ObjC 'Class' type. PREDEF_TYPE_OBJC_CLASS = 27, - /// \brief The ObjC 'SEL' type. + /// The ObjC 'SEL' type. PREDEF_TYPE_OBJC_SEL = 28, - /// \brief The 'unknown any' placeholder type. + /// The 'unknown any' placeholder type. PREDEF_TYPE_UNKNOWN_ANY = 29, - /// \brief The placeholder type for bound member functions. + /// The placeholder type for bound member functions. PREDEF_TYPE_BOUND_MEMBER = 30, - /// \brief The "auto" deduction type. + /// The "auto" deduction type. PREDEF_TYPE_AUTO_DEDUCT = 31, - /// \brief The "auto &&" deduction type. + /// The "auto &&" deduction type. PREDEF_TYPE_AUTO_RREF_DEDUCT = 32, - /// \brief The OpenCL 'half' / ARM NEON __fp16 type. + /// The OpenCL 'half' / ARM NEON __fp16 type. PREDEF_TYPE_HALF_ID = 33, - /// \brief ARC's unbridged-cast placeholder type. + /// ARC's unbridged-cast placeholder type. PREDEF_TYPE_ARC_UNBRIDGED_CAST = 34, - /// \brief The pseudo-object placeholder type. + /// The pseudo-object placeholder type. PREDEF_TYPE_PSEUDO_OBJECT = 35, - /// \brief The placeholder type for builtin functions. + /// The placeholder type for builtin functions. PREDEF_TYPE_BUILTIN_FN = 36, - /// \brief OpenCL event type. + /// OpenCL event type. PREDEF_TYPE_EVENT_ID = 37, - /// \brief OpenCL clk event type. + /// OpenCL clk event type. PREDEF_TYPE_CLK_EVENT_ID = 38, - /// \brief OpenCL sampler type. + /// OpenCL sampler type. PREDEF_TYPE_SAMPLER_ID = 39, - /// \brief OpenCL queue type. + /// OpenCL queue type. PREDEF_TYPE_QUEUE_ID = 40, - /// \brief OpenCL reserve_id type. + /// OpenCL reserve_id type. PREDEF_TYPE_RESERVE_ID_ID = 41, - /// \brief The placeholder type for OpenMP array section. + /// The placeholder type for OpenMP array section. PREDEF_TYPE_OMP_ARRAY_SECTION = 42, - /// \brief The '__float128' type + /// The '__float128' type PREDEF_TYPE_FLOAT128_ID = 43, - /// \brief The '_Float16' type + /// The '_Float16' type PREDEF_TYPE_FLOAT16_ID = 44, - /// \brief The C++ 'char8_t' type. + /// The C++ 'char8_t' type. PREDEF_TYPE_CHAR8_ID = 45, - /// \brief OpenCL image types with auto numeration + /// OpenCL image types with auto numeration #define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \ PREDEF_TYPE_##Id##_ID, #include "clang/Basic/OpenCLImageTypes.def" }; - /// \brief The number of predefined type IDs that are reserved for + /// The number of predefined type IDs that are reserved for /// the PREDEF_TYPE_* constants. /// /// Type IDs for non-predefined types will start at /// NUM_PREDEF_TYPE_IDs. const unsigned NUM_PREDEF_TYPE_IDS = 100; - /// \brief Record codes for each kind of type. + /// Record codes for each kind of type. /// /// These constants describe the type records that can occur within a /// block identified by DECLTYPES_BLOCK_ID in the AST file. Each /// constant describes a record for a specific type class in the /// AST. Note that DeclCode values share this code space. enum TypeCode { - /// \brief An ExtQualType record. + /// An ExtQualType record. TYPE_EXT_QUAL = 1, - /// \brief A ComplexType record. + /// A ComplexType record. TYPE_COMPLEX = 3, - /// \brief A PointerType record. + /// A PointerType record. TYPE_POINTER = 4, - /// \brief A BlockPointerType record. + /// A BlockPointerType record. TYPE_BLOCK_POINTER = 5, - /// \brief An LValueReferenceType record. + /// An LValueReferenceType record. TYPE_LVALUE_REFERENCE = 6, - /// \brief An RValueReferenceType record. + /// An RValueReferenceType record. TYPE_RVALUE_REFERENCE = 7, - /// \brief A MemberPointerType record. + /// A MemberPointerType record. TYPE_MEMBER_POINTER = 8, - /// \brief A ConstantArrayType record. + /// A ConstantArrayType record. TYPE_CONSTANT_ARRAY = 9, - /// \brief An IncompleteArrayType record. + /// An IncompleteArrayType record. TYPE_INCOMPLETE_ARRAY = 10, - /// \brief A VariableArrayType record. + /// A VariableArrayType record. TYPE_VARIABLE_ARRAY = 11, - /// \brief A VectorType record. + /// A VectorType record. TYPE_VECTOR = 12, - /// \brief An ExtVectorType record. + /// An ExtVectorType record. TYPE_EXT_VECTOR = 13, - /// \brief A FunctionNoProtoType record. + /// A FunctionNoProtoType record. TYPE_FUNCTION_NO_PROTO = 14, - /// \brief A FunctionProtoType record. + /// A FunctionProtoType record. TYPE_FUNCTION_PROTO = 15, - /// \brief A TypedefType record. + /// A TypedefType record. TYPE_TYPEDEF = 16, - /// \brief A TypeOfExprType record. + /// A TypeOfExprType record. TYPE_TYPEOF_EXPR = 17, - /// \brief A TypeOfType record. + /// A TypeOfType record. TYPE_TYPEOF = 18, - /// \brief A RecordType record. + /// A RecordType record. TYPE_RECORD = 19, - /// \brief An EnumType record. + /// An EnumType record. TYPE_ENUM = 20, - /// \brief An ObjCInterfaceType record. + /// An ObjCInterfaceType record. TYPE_OBJC_INTERFACE = 21, - /// \brief An ObjCObjectPointerType record. + /// An ObjCObjectPointerType record. TYPE_OBJC_OBJECT_POINTER = 22, - /// \brief a DecltypeType record. + /// a DecltypeType record. TYPE_DECLTYPE = 23, - /// \brief An ElaboratedType record. + /// An ElaboratedType record. TYPE_ELABORATED = 24, - /// \brief A SubstTemplateTypeParmType record. + /// A SubstTemplateTypeParmType record. TYPE_SUBST_TEMPLATE_TYPE_PARM = 25, - /// \brief An UnresolvedUsingType record. + /// An UnresolvedUsingType record. TYPE_UNRESOLVED_USING = 26, - /// \brief An InjectedClassNameType record. + /// An InjectedClassNameType record. TYPE_INJECTED_CLASS_NAME = 27, - /// \brief An ObjCObjectType record. + /// An ObjCObjectType record. TYPE_OBJC_OBJECT = 28, - /// \brief An TemplateTypeParmType record. + /// An TemplateTypeParmType record. TYPE_TEMPLATE_TYPE_PARM = 29, - /// \brief An TemplateSpecializationType record. + /// An TemplateSpecializationType record. TYPE_TEMPLATE_SPECIALIZATION = 30, - /// \brief A DependentNameType record. + /// A DependentNameType record. TYPE_DEPENDENT_NAME = 31, - /// \brief A DependentTemplateSpecializationType record. + /// A DependentTemplateSpecializationType record. TYPE_DEPENDENT_TEMPLATE_SPECIALIZATION = 32, - /// \brief A DependentSizedArrayType record. + /// A DependentSizedArrayType record. TYPE_DEPENDENT_SIZED_ARRAY = 33, - /// \brief A ParenType record. + /// A ParenType record. TYPE_PAREN = 34, - /// \brief A PackExpansionType record. + /// A PackExpansionType record. TYPE_PACK_EXPANSION = 35, - /// \brief An AttributedType record. + /// An AttributedType record. TYPE_ATTRIBUTED = 36, - /// \brief A SubstTemplateTypeParmPackType record. + /// A SubstTemplateTypeParmPackType record. TYPE_SUBST_TEMPLATE_TYPE_PARM_PACK = 37, - /// \brief A AutoType record. + /// A AutoType record. TYPE_AUTO = 38, - /// \brief A UnaryTransformType record. + /// A UnaryTransformType record. TYPE_UNARY_TRANSFORM = 39, - /// \brief An AtomicType record. + /// An AtomicType record. TYPE_ATOMIC = 40, - /// \brief A DecayedType record. + /// A DecayedType record. TYPE_DECAYED = 41, - /// \brief An AdjustedType record. + /// An AdjustedType record. TYPE_ADJUSTED = 42, - /// \brief A PipeType record. + /// A PipeType record. TYPE_PIPE = 43, - /// \brief An ObjCTypeParamType record. + /// An ObjCTypeParamType record. TYPE_OBJC_TYPE_PARAM = 44, - /// \brief A DeducedTemplateSpecializationType record. + /// A DeducedTemplateSpecializationType record. TYPE_DEDUCED_TEMPLATE_SPECIALIZATION = 45, - /// \brief A DependentSizedExtVectorType record. + /// A DependentSizedExtVectorType record. TYPE_DEPENDENT_SIZED_EXT_VECTOR = 46, - /// \brief A DependentAddressSpaceType record. + /// A DependentAddressSpaceType record. TYPE_DEPENDENT_ADDRESS_SPACE = 47 }; - /// \brief The type IDs for special types constructed by semantic + /// The type IDs for special types constructed by semantic /// analysis. /// /// The constants in this enumeration are indices into the /// SPECIAL_TYPES record. enum SpecialTypeIDs { - /// \brief CFConstantString type + /// CFConstantString type SPECIAL_TYPE_CF_CONSTANT_STRING = 0, - /// \brief C FILE typedef type + /// C FILE typedef type SPECIAL_TYPE_FILE = 1, - /// \brief C jmp_buf typedef type + /// C jmp_buf typedef type SPECIAL_TYPE_JMP_BUF = 2, - /// \brief C sigjmp_buf typedef type + /// C sigjmp_buf typedef type SPECIAL_TYPE_SIGJMP_BUF = 3, - /// \brief Objective-C "id" redefinition type + /// Objective-C "id" redefinition type SPECIAL_TYPE_OBJC_ID_REDEFINITION = 4, - /// \brief Objective-C "Class" redefinition type + /// Objective-C "Class" redefinition type SPECIAL_TYPE_OBJC_CLASS_REDEFINITION = 5, - /// \brief Objective-C "SEL" redefinition type + /// Objective-C "SEL" redefinition type SPECIAL_TYPE_OBJC_SEL_REDEFINITION = 6, - /// \brief C ucontext_t typedef type + /// C ucontext_t typedef type SPECIAL_TYPE_UCONTEXT_T = 7 }; - /// \brief The number of special type IDs. + /// The number of special type IDs. const unsigned NumSpecialTypeIDs = 8; - /// \brief Predefined declaration IDs. + /// Predefined declaration IDs. /// /// These declaration IDs correspond to predefined declarations in the AST /// context, such as the NULL declaration ID. Such declarations are never /// actually serialized, since they will be built by the AST context when /// it is created. enum PredefinedDeclIDs { - /// \brief The NULL declaration. + /// The NULL declaration. PREDEF_DECL_NULL_ID = 0, - /// \brief The translation unit. + /// The translation unit. PREDEF_DECL_TRANSLATION_UNIT_ID = 1, - /// \brief The Objective-C 'id' type. + /// The Objective-C 'id' type. PREDEF_DECL_OBJC_ID_ID = 2, - /// \brief The Objective-C 'SEL' type. + /// The Objective-C 'SEL' type. PREDEF_DECL_OBJC_SEL_ID = 3, - /// \brief The Objective-C 'Class' type. + /// The Objective-C 'Class' type. PREDEF_DECL_OBJC_CLASS_ID = 4, - /// \brief The Objective-C 'Protocol' type. + /// The Objective-C 'Protocol' type. PREDEF_DECL_OBJC_PROTOCOL_ID = 5, - /// \brief The signed 128-bit integer type. + /// The signed 128-bit integer type. PREDEF_DECL_INT_128_ID = 6, - /// \brief The unsigned 128-bit integer type. + /// The unsigned 128-bit integer type. PREDEF_DECL_UNSIGNED_INT_128_ID = 7, - /// \brief The internal 'instancetype' typedef. + /// The internal 'instancetype' typedef. PREDEF_DECL_OBJC_INSTANCETYPE_ID = 8, - /// \brief The internal '__builtin_va_list' typedef. + /// The internal '__builtin_va_list' typedef. PREDEF_DECL_BUILTIN_VA_LIST_ID = 9, - /// \brief The internal '__va_list_tag' struct, if any. + /// The internal '__va_list_tag' struct, if any. PREDEF_DECL_VA_LIST_TAG = 10, - /// \brief The internal '__builtin_ms_va_list' typedef. + /// The internal '__builtin_ms_va_list' typedef. PREDEF_DECL_BUILTIN_MS_VA_LIST_ID = 11, - /// \brief The extern "C" context. + /// The extern "C" context. PREDEF_DECL_EXTERN_C_CONTEXT_ID = 12, - /// \brief The internal '__make_integer_seq' template. + /// The internal '__make_integer_seq' template. PREDEF_DECL_MAKE_INTEGER_SEQ_ID = 13, - /// \brief The internal '__NSConstantString' typedef. + /// The internal '__NSConstantString' typedef. PREDEF_DECL_CF_CONSTANT_STRING_ID = 14, - /// \brief The internal '__NSConstantString' tag type. + /// The internal '__NSConstantString' tag type. PREDEF_DECL_CF_CONSTANT_STRING_TAG_ID = 15, - /// \brief The internal '__type_pack_element' template. + /// The internal '__type_pack_element' template. PREDEF_DECL_TYPE_PACK_ELEMENT_ID = 16, }; - /// \brief The number of declaration IDs that are predefined. + /// The number of declaration IDs that are predefined. /// /// For more information about predefined declarations, see the /// \c PredefinedDeclIDs type and the PREDEF_DECL_*_ID constants. const unsigned int NUM_PREDEF_DECL_IDS = 17; - /// \brief Record of updates for a declaration that was modified after + /// Record of updates for a declaration that was modified after /// being deserialized. This can occur within DECLTYPES_BLOCK_ID. const unsigned int DECL_UPDATES = 49; - /// \brief Record code for a list of local redeclarations of a declaration. + /// Record code for a list of local redeclarations of a declaration. /// This can occur within DECLTYPES_BLOCK_ID. const unsigned int LOCAL_REDECLARATIONS = 50; - /// \brief Record codes for each kind of declaration. + /// Record codes for each kind of declaration. /// /// These constants describe the declaration records that can occur within /// a declarations block (identified by DECLTYPES_BLOCK_ID). Each /// constant describes a record for a specific declaration class /// in the AST. Note that TypeCode values share this code space. enum DeclCode { - /// \brief A TypedefDecl record. + /// A TypedefDecl record. DECL_TYPEDEF = 51, - /// \brief A TypeAliasDecl record. + /// A TypeAliasDecl record. DECL_TYPEALIAS, - /// \brief An EnumDecl record. + /// An EnumDecl record. DECL_ENUM, - /// \brief A RecordDecl record. + /// A RecordDecl record. DECL_RECORD, - /// \brief An EnumConstantDecl record. + /// An EnumConstantDecl record. DECL_ENUM_CONSTANT, - /// \brief A FunctionDecl record. + /// A FunctionDecl record. DECL_FUNCTION, - /// \brief A ObjCMethodDecl record. + /// A ObjCMethodDecl record. DECL_OBJC_METHOD, - /// \brief A ObjCInterfaceDecl record. + /// A ObjCInterfaceDecl record. DECL_OBJC_INTERFACE, - /// \brief A ObjCProtocolDecl record. + /// A ObjCProtocolDecl record. DECL_OBJC_PROTOCOL, - /// \brief A ObjCIvarDecl record. + /// A ObjCIvarDecl record. DECL_OBJC_IVAR, - /// \brief A ObjCAtDefsFieldDecl record. + /// A ObjCAtDefsFieldDecl record. DECL_OBJC_AT_DEFS_FIELD, - /// \brief A ObjCCategoryDecl record. + /// A ObjCCategoryDecl record. DECL_OBJC_CATEGORY, - /// \brief A ObjCCategoryImplDecl record. + /// A ObjCCategoryImplDecl record. DECL_OBJC_CATEGORY_IMPL, - /// \brief A ObjCImplementationDecl record. + /// A ObjCImplementationDecl record. DECL_OBJC_IMPLEMENTATION, - /// \brief A ObjCCompatibleAliasDecl record. + /// A ObjCCompatibleAliasDecl record. DECL_OBJC_COMPATIBLE_ALIAS, - /// \brief A ObjCPropertyDecl record. + /// A ObjCPropertyDecl record. DECL_OBJC_PROPERTY, - /// \brief A ObjCPropertyImplDecl record. + /// A ObjCPropertyImplDecl record. DECL_OBJC_PROPERTY_IMPL, - /// \brief A FieldDecl record. + /// A FieldDecl record. DECL_FIELD, - /// \brief A MSPropertyDecl record. + /// A MSPropertyDecl record. DECL_MS_PROPERTY, - /// \brief A VarDecl record. + /// A VarDecl record. DECL_VAR, - /// \brief An ImplicitParamDecl record. + /// An ImplicitParamDecl record. DECL_IMPLICIT_PARAM, - /// \brief A ParmVarDecl record. + /// A ParmVarDecl record. DECL_PARM_VAR, - /// \brief A DecompositionDecl record. + /// A DecompositionDecl record. DECL_DECOMPOSITION, - /// \brief A BindingDecl record. + /// A BindingDecl record. DECL_BINDING, - /// \brief A FileScopeAsmDecl record. + /// A FileScopeAsmDecl record. DECL_FILE_SCOPE_ASM, - /// \brief A BlockDecl record. + /// A BlockDecl record. DECL_BLOCK, - /// \brief A CapturedDecl record. + /// A CapturedDecl record. DECL_CAPTURED, - /// \brief A record that stores the set of declarations that are + /// A record that stores the set of declarations that are /// lexically stored within a given DeclContext. /// /// The record itself is a blob that is an array of declaration IDs, @@ -1303,7 +1303,7 @@ /// DeclContext::decls_begin() and DeclContext::decls_end(). DECL_CONTEXT_LEXICAL, - /// \brief A record that stores the set of declarations that are + /// A record that stores the set of declarations that are /// visible from a given DeclContext. /// /// The record itself stores a set of mappings, each of which @@ -1312,155 +1312,155 @@ /// into a DeclContext via DeclContext::lookup. DECL_CONTEXT_VISIBLE, - /// \brief A LabelDecl record. + /// A LabelDecl record. DECL_LABEL, - /// \brief A NamespaceDecl record. + /// A NamespaceDecl record. DECL_NAMESPACE, - /// \brief A NamespaceAliasDecl record. + /// A NamespaceAliasDecl record. DECL_NAMESPACE_ALIAS, - /// \brief A UsingDecl record. + /// A UsingDecl record. DECL_USING, - /// \brief A UsingPackDecl record. + /// A UsingPackDecl record. DECL_USING_PACK, - /// \brief A UsingShadowDecl record. + /// A UsingShadowDecl record. DECL_USING_SHADOW, - /// \brief A ConstructorUsingShadowDecl record. + /// A ConstructorUsingShadowDecl record. DECL_CONSTRUCTOR_USING_SHADOW, - /// \brief A UsingDirecitveDecl record. + /// A UsingDirecitveDecl record. DECL_USING_DIRECTIVE, - /// \brief An UnresolvedUsingValueDecl record. + /// An UnresolvedUsingValueDecl record. DECL_UNRESOLVED_USING_VALUE, - /// \brief An UnresolvedUsingTypenameDecl record. + /// An UnresolvedUsingTypenameDecl record. DECL_UNRESOLVED_USING_TYPENAME, - /// \brief A LinkageSpecDecl record. + /// A LinkageSpecDecl record. DECL_LINKAGE_SPEC, - /// \brief An ExportDecl record. + /// An ExportDecl record. DECL_EXPORT, - /// \brief A CXXRecordDecl record. + /// A CXXRecordDecl record. DECL_CXX_RECORD, - /// \brief A CXXDeductionGuideDecl record. + /// A CXXDeductionGuideDecl record. DECL_CXX_DEDUCTION_GUIDE, - /// \brief A CXXMethodDecl record. + /// A CXXMethodDecl record. DECL_CXX_METHOD, - /// \brief A CXXConstructorDecl record. + /// A CXXConstructorDecl record. DECL_CXX_CONSTRUCTOR, - /// \brief A CXXConstructorDecl record for an inherited constructor. + /// A CXXConstructorDecl record for an inherited constructor. DECL_CXX_INHERITED_CONSTRUCTOR, - /// \brief A CXXDestructorDecl record. + /// A CXXDestructorDecl record. DECL_CXX_DESTRUCTOR, - /// \brief A CXXConversionDecl record. + /// A CXXConversionDecl record. DECL_CXX_CONVERSION, - /// \brief An AccessSpecDecl record. + /// An AccessSpecDecl record. DECL_ACCESS_SPEC, - /// \brief A FriendDecl record. + /// A FriendDecl record. DECL_FRIEND, - /// \brief A FriendTemplateDecl record. + /// A FriendTemplateDecl record. DECL_FRIEND_TEMPLATE, - /// \brief A ClassTemplateDecl record. + /// A ClassTemplateDecl record. DECL_CLASS_TEMPLATE, - /// \brief A ClassTemplateSpecializationDecl record. + /// A ClassTemplateSpecializationDecl record. DECL_CLASS_TEMPLATE_SPECIALIZATION, - /// \brief A ClassTemplatePartialSpecializationDecl record. + /// A ClassTemplatePartialSpecializationDecl record. DECL_CLASS_TEMPLATE_PARTIAL_SPECIALIZATION, - /// \brief A VarTemplateDecl record. + /// A VarTemplateDecl record. DECL_VAR_TEMPLATE, - /// \brief A VarTemplateSpecializationDecl record. + /// A VarTemplateSpecializationDecl record. DECL_VAR_TEMPLATE_SPECIALIZATION, - /// \brief A VarTemplatePartialSpecializationDecl record. + /// A VarTemplatePartialSpecializationDecl record. DECL_VAR_TEMPLATE_PARTIAL_SPECIALIZATION, - /// \brief A FunctionTemplateDecl record. + /// A FunctionTemplateDecl record. DECL_FUNCTION_TEMPLATE, - /// \brief A TemplateTypeParmDecl record. + /// A TemplateTypeParmDecl record. DECL_TEMPLATE_TYPE_PARM, - /// \brief A NonTypeTemplateParmDecl record. + /// A NonTypeTemplateParmDecl record. DECL_NON_TYPE_TEMPLATE_PARM, - /// \brief A TemplateTemplateParmDecl record. + /// A TemplateTemplateParmDecl record. DECL_TEMPLATE_TEMPLATE_PARM, - /// \brief A TypeAliasTemplateDecl record. + /// A TypeAliasTemplateDecl record. DECL_TYPE_ALIAS_TEMPLATE, - /// \brief A StaticAssertDecl record. + /// A StaticAssertDecl record. DECL_STATIC_ASSERT, - /// \brief A record containing CXXBaseSpecifiers. + /// A record containing CXXBaseSpecifiers. DECL_CXX_BASE_SPECIFIERS, - /// \brief A record containing CXXCtorInitializers. + /// A record containing CXXCtorInitializers. DECL_CXX_CTOR_INITIALIZERS, - /// \brief A IndirectFieldDecl record. + /// A IndirectFieldDecl record. DECL_INDIRECTFIELD, - /// \brief A NonTypeTemplateParmDecl record that stores an expanded + /// A NonTypeTemplateParmDecl record that stores an expanded /// non-type template parameter pack. DECL_EXPANDED_NON_TYPE_TEMPLATE_PARM_PACK, - /// \brief A TemplateTemplateParmDecl record that stores an expanded + /// A TemplateTemplateParmDecl record that stores an expanded /// template template parameter pack. DECL_EXPANDED_TEMPLATE_TEMPLATE_PARM_PACK, - /// \brief A ClassScopeFunctionSpecializationDecl record a class scope + /// A ClassScopeFunctionSpecializationDecl record a class scope /// function specialization. (Microsoft extension). DECL_CLASS_SCOPE_FUNCTION_SPECIALIZATION, - /// \brief An ImportDecl recording a module import. + /// An ImportDecl recording a module import. DECL_IMPORT, - /// \brief An OMPThreadPrivateDecl record. + /// An OMPThreadPrivateDecl record. DECL_OMP_THREADPRIVATE, - /// \brief An EmptyDecl record. + /// An EmptyDecl record. DECL_EMPTY, - /// \brief An ObjCTypeParamDecl record. + /// An ObjCTypeParamDecl record. DECL_OBJC_TYPE_PARAM, - /// \brief An OMPCapturedExprDecl record. + /// An OMPCapturedExprDecl record. DECL_OMP_CAPTUREDEXPR, - /// \brief A PragmaCommentDecl record. + /// A PragmaCommentDecl record. DECL_PRAGMA_COMMENT, - /// \brief A PragmaDetectMismatchDecl record. + /// A PragmaDetectMismatchDecl record. DECL_PRAGMA_DETECT_MISMATCH, - /// \brief An OMPDeclareReductionDecl record. + /// An OMPDeclareReductionDecl record. DECL_OMP_DECLARE_REDUCTION, }; - /// \brief Record codes for each kind of statement or expression. + /// Record codes for each kind of statement or expression. /// /// These constants describe the records that describe statements /// or expressions. These records occur within type and declarations @@ -1468,310 +1468,310 @@ /// describes a record for a specific statement or expression class in the /// AST. enum StmtCode { - /// \brief A marker record that indicates that we are at the end + /// A marker record that indicates that we are at the end /// of an expression. STMT_STOP = 128, - /// \brief A NULL expression. + /// A NULL expression. STMT_NULL_PTR, - /// \brief A reference to a previously [de]serialized Stmt record. + /// A reference to a previously [de]serialized Stmt record. STMT_REF_PTR, - /// \brief A NullStmt record. + /// A NullStmt record. STMT_NULL, - /// \brief A CompoundStmt record. + /// A CompoundStmt record. STMT_COMPOUND, - /// \brief A CaseStmt record. + /// A CaseStmt record. STMT_CASE, - /// \brief A DefaultStmt record. + /// A DefaultStmt record. STMT_DEFAULT, - /// \brief A LabelStmt record. + /// A LabelStmt record. STMT_LABEL, - /// \brief An AttributedStmt record. + /// An AttributedStmt record. STMT_ATTRIBUTED, - /// \brief An IfStmt record. + /// An IfStmt record. STMT_IF, - /// \brief A SwitchStmt record. + /// A SwitchStmt record. STMT_SWITCH, - /// \brief A WhileStmt record. + /// A WhileStmt record. STMT_WHILE, - /// \brief A DoStmt record. + /// A DoStmt record. STMT_DO, - /// \brief A ForStmt record. + /// A ForStmt record. STMT_FOR, - /// \brief A GotoStmt record. + /// A GotoStmt record. STMT_GOTO, - /// \brief An IndirectGotoStmt record. + /// An IndirectGotoStmt record. STMT_INDIRECT_GOTO, - /// \brief A ContinueStmt record. + /// A ContinueStmt record. STMT_CONTINUE, - /// \brief A BreakStmt record. + /// A BreakStmt record. STMT_BREAK, - /// \brief A ReturnStmt record. + /// A ReturnStmt record. STMT_RETURN, - /// \brief A DeclStmt record. + /// A DeclStmt record. STMT_DECL, - /// \brief A CapturedStmt record. + /// A CapturedStmt record. STMT_CAPTURED, - /// \brief A GCC-style AsmStmt record. + /// A GCC-style AsmStmt record. STMT_GCCASM, - /// \brief A MS-style AsmStmt record. + /// A MS-style AsmStmt record. STMT_MSASM, - /// \brief A PredefinedExpr record. + /// A PredefinedExpr record. EXPR_PREDEFINED, - /// \brief A DeclRefExpr record. + /// A DeclRefExpr record. EXPR_DECL_REF, - /// \brief An IntegerLiteral record. + /// An IntegerLiteral record. EXPR_INTEGER_LITERAL, - /// \brief A FloatingLiteral record. + /// A FloatingLiteral record. EXPR_FLOATING_LITERAL, - /// \brief An ImaginaryLiteral record. + /// An ImaginaryLiteral record. EXPR_IMAGINARY_LITERAL, - /// \brief A StringLiteral record. + /// A StringLiteral record. EXPR_STRING_LITERAL, - /// \brief A CharacterLiteral record. + /// A CharacterLiteral record. EXPR_CHARACTER_LITERAL, - /// \brief A ParenExpr record. + /// A ParenExpr record. EXPR_PAREN, - /// \brief A ParenListExpr record. + /// A ParenListExpr record. EXPR_PAREN_LIST, - /// \brief A UnaryOperator record. + /// A UnaryOperator record. EXPR_UNARY_OPERATOR, - /// \brief An OffsetOfExpr record. + /// An OffsetOfExpr record. EXPR_OFFSETOF, - /// \brief A SizefAlignOfExpr record. + /// A SizefAlignOfExpr record. EXPR_SIZEOF_ALIGN_OF, - /// \brief An ArraySubscriptExpr record. + /// An ArraySubscriptExpr record. EXPR_ARRAY_SUBSCRIPT, - /// \brief A CallExpr record. + /// A CallExpr record. EXPR_CALL, - /// \brief A MemberExpr record. + /// A MemberExpr record. EXPR_MEMBER, - /// \brief A BinaryOperator record. + /// A BinaryOperator record. EXPR_BINARY_OPERATOR, - /// \brief A CompoundAssignOperator record. + /// A CompoundAssignOperator record. EXPR_COMPOUND_ASSIGN_OPERATOR, - /// \brief A ConditionOperator record. + /// A ConditionOperator record. EXPR_CONDITIONAL_OPERATOR, - /// \brief An ImplicitCastExpr record. + /// An ImplicitCastExpr record. EXPR_IMPLICIT_CAST, - /// \brief A CStyleCastExpr record. + /// A CStyleCastExpr record. EXPR_CSTYLE_CAST, - /// \brief A CompoundLiteralExpr record. + /// A CompoundLiteralExpr record. EXPR_COMPOUND_LITERAL, - /// \brief An ExtVectorElementExpr record. + /// An ExtVectorElementExpr record. EXPR_EXT_VECTOR_ELEMENT, - /// \brief An InitListExpr record. + /// An InitListExpr record. EXPR_INIT_LIST, - /// \brief A DesignatedInitExpr record. + /// A DesignatedInitExpr record. EXPR_DESIGNATED_INIT, - /// \brief A DesignatedInitUpdateExpr record. + /// A DesignatedInitUpdateExpr record. EXPR_DESIGNATED_INIT_UPDATE, - /// \brief An NoInitExpr record. + /// An NoInitExpr record. EXPR_NO_INIT, - /// \brief An ArrayInitLoopExpr record. + /// An ArrayInitLoopExpr record. EXPR_ARRAY_INIT_LOOP, - /// \brief An ArrayInitIndexExpr record. + /// An ArrayInitIndexExpr record. EXPR_ARRAY_INIT_INDEX, - /// \brief An ImplicitValueInitExpr record. + /// An ImplicitValueInitExpr record. EXPR_IMPLICIT_VALUE_INIT, - /// \brief A VAArgExpr record. + /// A VAArgExpr record. EXPR_VA_ARG, - /// \brief An AddrLabelExpr record. + /// An AddrLabelExpr record. EXPR_ADDR_LABEL, - /// \brief A StmtExpr record. + /// A StmtExpr record. EXPR_STMT, - /// \brief A ChooseExpr record. + /// A ChooseExpr record. EXPR_CHOOSE, - /// \brief A GNUNullExpr record. + /// A GNUNullExpr record. EXPR_GNU_NULL, - /// \brief A ShuffleVectorExpr record. + /// A ShuffleVectorExpr record. EXPR_SHUFFLE_VECTOR, - /// \brief A ConvertVectorExpr record. + /// A ConvertVectorExpr record. EXPR_CONVERT_VECTOR, - /// \brief BlockExpr + /// BlockExpr EXPR_BLOCK, - /// \brief A GenericSelectionExpr record. + /// A GenericSelectionExpr record. EXPR_GENERIC_SELECTION, - /// \brief A PseudoObjectExpr record. + /// A PseudoObjectExpr record. EXPR_PSEUDO_OBJECT, - /// \brief An AtomicExpr record. + /// An AtomicExpr record. EXPR_ATOMIC, // Objective-C - /// \brief An ObjCStringLiteral record. + /// An ObjCStringLiteral record. EXPR_OBJC_STRING_LITERAL, EXPR_OBJC_BOXED_EXPRESSION, EXPR_OBJC_ARRAY_LITERAL, EXPR_OBJC_DICTIONARY_LITERAL, - /// \brief An ObjCEncodeExpr record. + /// An ObjCEncodeExpr record. EXPR_OBJC_ENCODE, - /// \brief An ObjCSelectorExpr record. + /// An ObjCSelectorExpr record. EXPR_OBJC_SELECTOR_EXPR, - /// \brief An ObjCProtocolExpr record. + /// An ObjCProtocolExpr record. EXPR_OBJC_PROTOCOL_EXPR, - /// \brief An ObjCIvarRefExpr record. + /// An ObjCIvarRefExpr record. EXPR_OBJC_IVAR_REF_EXPR, - /// \brief An ObjCPropertyRefExpr record. + /// An ObjCPropertyRefExpr record. EXPR_OBJC_PROPERTY_REF_EXPR, - /// \brief An ObjCSubscriptRefExpr record. + /// An ObjCSubscriptRefExpr record. EXPR_OBJC_SUBSCRIPT_REF_EXPR, - /// \brief UNUSED + /// UNUSED EXPR_OBJC_KVC_REF_EXPR, - /// \brief An ObjCMessageExpr record. + /// An ObjCMessageExpr record. EXPR_OBJC_MESSAGE_EXPR, - /// \brief An ObjCIsa Expr record. + /// An ObjCIsa Expr record. EXPR_OBJC_ISA, - /// \brief An ObjCIndirectCopyRestoreExpr record. + /// An ObjCIndirectCopyRestoreExpr record. EXPR_OBJC_INDIRECT_COPY_RESTORE, - /// \brief An ObjCForCollectionStmt record. + /// An ObjCForCollectionStmt record. STMT_OBJC_FOR_COLLECTION, - /// \brief An ObjCAtCatchStmt record. + /// An ObjCAtCatchStmt record. STMT_OBJC_CATCH, - /// \brief An ObjCAtFinallyStmt record. + /// An ObjCAtFinallyStmt record. STMT_OBJC_FINALLY, - /// \brief An ObjCAtTryStmt record. + /// An ObjCAtTryStmt record. STMT_OBJC_AT_TRY, - /// \brief An ObjCAtSynchronizedStmt record. + /// An ObjCAtSynchronizedStmt record. STMT_OBJC_AT_SYNCHRONIZED, - /// \brief An ObjCAtThrowStmt record. + /// An ObjCAtThrowStmt record. STMT_OBJC_AT_THROW, - /// \brief An ObjCAutoreleasePoolStmt record. + /// An ObjCAutoreleasePoolStmt record. STMT_OBJC_AUTORELEASE_POOL, - /// \brief An ObjCBoolLiteralExpr record. + /// An ObjCBoolLiteralExpr record. EXPR_OBJC_BOOL_LITERAL, - /// \brief An ObjCAvailabilityCheckExpr record. + /// An ObjCAvailabilityCheckExpr record. EXPR_OBJC_AVAILABILITY_CHECK, // C++ - /// \brief A CXXCatchStmt record. + /// A CXXCatchStmt record. STMT_CXX_CATCH, - /// \brief A CXXTryStmt record. + /// A CXXTryStmt record. STMT_CXX_TRY, - /// \brief A CXXForRangeStmt record. + /// A CXXForRangeStmt record. STMT_CXX_FOR_RANGE, - /// \brief A CXXOperatorCallExpr record. + /// A CXXOperatorCallExpr record. EXPR_CXX_OPERATOR_CALL, - /// \brief A CXXMemberCallExpr record. + /// A CXXMemberCallExpr record. EXPR_CXX_MEMBER_CALL, - /// \brief A CXXConstructExpr record. + /// A CXXConstructExpr record. EXPR_CXX_CONSTRUCT, - /// \brief A CXXInheritedCtorInitExpr record. + /// A CXXInheritedCtorInitExpr record. EXPR_CXX_INHERITED_CTOR_INIT, - /// \brief A CXXTemporaryObjectExpr record. + /// A CXXTemporaryObjectExpr record. EXPR_CXX_TEMPORARY_OBJECT, - /// \brief A CXXStaticCastExpr record. + /// A CXXStaticCastExpr record. EXPR_CXX_STATIC_CAST, - /// \brief A CXXDynamicCastExpr record. + /// A CXXDynamicCastExpr record. EXPR_CXX_DYNAMIC_CAST, - /// \brief A CXXReinterpretCastExpr record. + /// A CXXReinterpretCastExpr record. EXPR_CXX_REINTERPRET_CAST, - /// \brief A CXXConstCastExpr record. + /// A CXXConstCastExpr record. EXPR_CXX_CONST_CAST, - /// \brief A CXXFunctionalCastExpr record. + /// A CXXFunctionalCastExpr record. EXPR_CXX_FUNCTIONAL_CAST, - /// \brief A UserDefinedLiteral record. + /// A UserDefinedLiteral record. EXPR_USER_DEFINED_LITERAL, - /// \brief A CXXStdInitializerListExpr record. + /// A CXXStdInitializerListExpr record. EXPR_CXX_STD_INITIALIZER_LIST, - /// \brief A CXXBoolLiteralExpr record. + /// A CXXBoolLiteralExpr record. EXPR_CXX_BOOL_LITERAL, EXPR_CXX_NULL_PTR_LITERAL, // CXXNullPtrLiteralExpr @@ -1890,24 +1890,24 @@ EXPR_DEPENDENT_COAWAIT, }; - /// \brief The kinds of designators that can occur in a + /// The kinds of designators that can occur in a /// DesignatedInitExpr. enum DesignatorTypes { - /// \brief Field designator where only the field name is known. + /// Field designator where only the field name is known. DESIG_FIELD_NAME = 0, - /// \brief Field designator where the field has been resolved to + /// Field designator where the field has been resolved to /// a declaration. DESIG_FIELD_DECL = 1, - /// \brief Array designator. + /// Array designator. DESIG_ARRAY = 2, - /// \brief GNU array range designator. + /// GNU array range designator. DESIG_ARRAY_RANGE = 3 }; - /// \brief The different kinds of data that can occur in a + /// The different kinds of data that can occur in a /// CtorInitializer. enum CtorInitializerType { CTOR_INITIALIZER_BASE, @@ -1916,7 +1916,7 @@ CTOR_INITIALIZER_INDIRECT_MEMBER }; - /// \brief Describes the redeclarations of a declaration. + /// Describes the redeclarations of a declaration. struct LocalRedeclarationsInfo { // The ID of the first declaration DeclID FirstID; @@ -1945,7 +1945,7 @@ } }; - /// \brief Describes the categories of an Objective-C class. + /// Describes the categories of an Objective-C class. struct ObjCCategoriesInfo { // The ID of the definition DeclID DefinitionID; @@ -1974,7 +1974,7 @@ } }; - /// \brief A key used when looking up entities by \ref DeclarationName. + /// A key used when looking up entities by \ref DeclarationName. /// /// Different \ref DeclarationNames are mapped to different keys, but the /// same key can occasionally represent multiple names (for names that Index: cfe/trunk/include/clang/Serialization/ASTDeserializationListener.h =================================================================== --- cfe/trunk/include/clang/Serialization/ASTDeserializationListener.h +++ cfe/trunk/include/clang/Serialization/ASTDeserializationListener.h @@ -32,28 +32,28 @@ public: virtual ~ASTDeserializationListener(); - /// \brief The ASTReader was initialized. + /// The ASTReader was initialized. virtual void ReaderInitialized(ASTReader *Reader) { } - /// \brief An identifier was deserialized from the AST file. + /// An identifier was deserialized from the AST file. virtual void IdentifierRead(serialization::IdentID ID, IdentifierInfo *II) { } - /// \brief A macro was read from the AST file. + /// A macro was read from the AST file. virtual void MacroRead(serialization::MacroID ID, MacroInfo *MI) { } - /// \brief A type was deserialized from the AST file. The ID here has the + /// A type was deserialized from the AST file. The ID here has the /// qualifier bits already removed, and T is guaranteed to be locally /// unqualified. virtual void TypeRead(serialization::TypeIdx Idx, QualType T) { } - /// \brief A decl was deserialized from the AST file. + /// A decl was deserialized from the AST file. virtual void DeclRead(serialization::DeclID ID, const Decl *D) { } - /// \brief A selector was read from the AST file. + /// A selector was read from the AST file. virtual void SelectorRead(serialization::SelectorID iD, Selector Sel) {} - /// \brief A macro definition was read from the AST file. + /// A macro definition was read from the AST file. virtual void MacroDefinitionRead(serialization::PreprocessedEntityID, MacroDefinitionRecord *MD) {} - /// \brief A module definition was read from the AST file. + /// A module definition was read from the AST file. virtual void ModuleRead(serialization::SubmoduleID ID, Module *Mod) {} - /// \brief A module import was read from the AST file. + /// A module import was read from the AST file. virtual void ModuleImportRead(serialization::SubmoduleID ID, SourceLocation ImportLoc) {} }; Index: cfe/trunk/include/clang/Serialization/ASTReader.h =================================================================== --- cfe/trunk/include/clang/Serialization/ASTReader.h +++ cfe/trunk/include/clang/Serialization/ASTReader.h @@ -117,7 +117,7 @@ class ValueDecl; class VarDecl; -/// \brief Abstract interface for callback invocations by the ASTReader. +/// Abstract interface for callback invocations by the ASTReader. /// /// While reading an AST file, the ASTReader will call the methods of the /// listener to pass on specific information. Some of the listener methods can @@ -127,7 +127,7 @@ public: virtual ~ASTReaderListener(); - /// \brief Receives the full Clang version information. + /// Receives the full Clang version information. /// /// \returns true to indicate that the version is invalid. Subclasses should /// generally defer to this implementation. @@ -138,7 +138,7 @@ virtual void ReadModuleName(StringRef ModuleName) {} virtual void ReadModuleMapFile(StringRef ModuleMapPath) {} - /// \brief Receives the language options. + /// Receives the language options. /// /// \returns true to indicate the options are invalid or false otherwise. virtual bool ReadLanguageOptions(const LangOptions &LangOpts, @@ -147,7 +147,7 @@ return false; } - /// \brief Receives the target options. + /// Receives the target options. /// /// \returns true to indicate the target options are invalid, or false /// otherwise. @@ -156,7 +156,7 @@ return false; } - /// \brief Receives the diagnostic options. + /// Receives the diagnostic options. /// /// \returns true to indicate the diagnostic options are invalid, or false /// otherwise. @@ -166,7 +166,7 @@ return false; } - /// \brief Receives the file system options. + /// Receives the file system options. /// /// \returns true to indicate the file system options are invalid, or false /// otherwise. @@ -175,7 +175,7 @@ return false; } - /// \brief Receives the header search options. + /// Receives the header search options. /// /// \returns true to indicate the header search options are invalid, or false /// otherwise. @@ -185,7 +185,7 @@ return false; } - /// \brief Receives the preprocessor options. + /// Receives the preprocessor options. /// /// \param SuggestedPredefines Can be filled in with the set of predefines /// that are suggested by the preprocessor options. Typically only used when @@ -199,7 +199,7 @@ return false; } - /// \brief Receives __COUNTER__ value. + /// Receives __COUNTER__ value. virtual void ReadCounter(const serialization::ModuleFile &M, unsigned Value) {} @@ -207,15 +207,15 @@ virtual void visitModuleFile(StringRef Filename, serialization::ModuleKind Kind) {} - /// \brief Returns true if this \c ASTReaderListener wants to receive the + /// Returns true if this \c ASTReaderListener wants to receive the /// input files of the AST file via \c visitInputFile, false otherwise. virtual bool needsInputFileVisitation() { return false; } - /// \brief Returns true if this \c ASTReaderListener wants to receive the + /// Returns true if this \c ASTReaderListener wants to receive the /// system input files of the AST file via \c visitInputFile, false otherwise. virtual bool needsSystemInputFileVisitation() { return false; } - /// \brief if \c needsInputFileVisitation returns true, this is called for + /// if \c needsInputFileVisitation returns true, this is called for /// each non-system input file of the AST File. If /// \c needsSystemInputFileVisitation is true, then it is called for all /// system input files as well. @@ -226,11 +226,11 @@ return true; } - /// \brief Returns true if this \c ASTReaderListener wants to receive the + /// Returns true if this \c ASTReaderListener wants to receive the /// imports of the AST file via \c visitImport, false otherwise. virtual bool needsImportVisitation() const { return false; } - /// \brief If needsImportVisitation returns \c true, this is called for each + /// If needsImportVisitation returns \c true, this is called for each /// AST file imported by this AST file. virtual void visitImport(StringRef Filename) {} @@ -239,7 +239,7 @@ const ModuleFileExtensionMetadata &Metadata) {} }; -/// \brief Simple wrapper class for chaining listeners. +/// Simple wrapper class for chaining listeners. class ChainedASTReaderListener : public ASTReaderListener { std::unique_ptr<ASTReaderListener> First; std::unique_ptr<ASTReaderListener> Second; @@ -283,7 +283,7 @@ const ModuleFileExtensionMetadata &Metadata) override; }; -/// \brief ASTReaderListener implementation to validate the information of +/// ASTReaderListener implementation to validate the information of /// the PCH file against an initialized Preprocessor. class PCHValidator : public ASTReaderListener { Preprocessor &PP; @@ -310,7 +310,7 @@ void Error(const char *Msg); }; -/// \brief ASTReaderListenter implementation to set SuggestedPredefines of +/// ASTReaderListenter implementation to set SuggestedPredefines of /// ASTReader which is required to use a pch file. This is the replacement /// of PCHValidator or SimplePCHValidator when using a pch file without /// validating it. @@ -332,14 +332,14 @@ class ASTIdentifierLookupTrait; -/// \brief The on-disk hash table(s) used for DeclContext name lookup. +/// The on-disk hash table(s) used for DeclContext name lookup. struct DeclContextLookupTable; } // namespace reader } // namespace serialization -/// \brief Reads an AST files chain containing the contents of a translation +/// Reads an AST files chain containing the contents of a translation /// unit. /// /// The ASTReader class reads bitstreams (produced by the ASTWriter @@ -360,7 +360,7 @@ public ExternalSLocEntrySource { public: - /// \brief Types of AST files. + /// Types of AST files. friend class ASTDeclReader; friend class ASTIdentifierIterator; friend class ASTRecordReader; @@ -375,31 +375,31 @@ using RecordData = SmallVector<uint64_t, 64>; using RecordDataImpl = SmallVectorImpl<uint64_t>; - /// \brief The result of reading the control block of an AST file, which + /// The result of reading the control block of an AST file, which /// can fail for various reasons. enum ASTReadResult { - /// \brief The control block was read successfully. Aside from failures, + /// The control block was read successfully. Aside from failures, /// the AST file is safe to read into the current context. Success, - /// \brief The AST file itself appears corrupted. + /// The AST file itself appears corrupted. Failure, - /// \brief The AST file was missing. + /// The AST file was missing. Missing, - /// \brief The AST file is out-of-date relative to its input files, + /// The AST file is out-of-date relative to its input files, /// and needs to be regenerated. OutOfDate, - /// \brief The AST file was written by a different version of Clang. + /// The AST file was written by a different version of Clang. VersionMismatch, - /// \brief The AST file was writtten with a different language/target + /// The AST file was writtten with a different language/target /// configuration. ConfigurationMismatch, - /// \brief The AST file has errors. + /// The AST file has errors. HadErrors }; @@ -411,10 +411,10 @@ using ModuleReverseIterator = ModuleManager::ModuleReverseIterator; private: - /// \brief The receiver of some callbacks invoked by ASTReader. + /// The receiver of some callbacks invoked by ASTReader. std::unique_ptr<ASTReaderListener> Listener; - /// \brief The receiver of deserialization events. + /// The receiver of deserialization events. ASTDeserializationListener *DeserializationListener = nullptr; bool OwnsDeserializationListener = false; @@ -424,26 +424,26 @@ const PCHContainerReader &PCHContainerRdr; DiagnosticsEngine &Diags; - /// \brief The semantic analysis object that will be processing the + /// The semantic analysis object that will be processing the /// AST files and the translation unit that uses it. Sema *SemaObj = nullptr; - /// \brief The preprocessor that will be loading the source file. + /// The preprocessor that will be loading the source file. Preprocessor &PP; - /// \brief The AST context into which we'll read the AST files. + /// The AST context into which we'll read the AST files. ASTContext *ContextObj = nullptr; - /// \brief The AST consumer. + /// The AST consumer. ASTConsumer *Consumer = nullptr; - /// \brief The module manager which manages modules and their dependencies + /// The module manager which manages modules and their dependencies ModuleManager ModuleMgr; /// The cache that manages memory buffers for PCM files. MemoryBufferCache &PCMCache; - /// \brief A dummy identifier resolver used to merge TU-scope declarations in + /// A dummy identifier resolver used to merge TU-scope declarations in /// C, for the cases where we don't have a Sema object to provide a real /// identifier resolver. IdentifierResolver DummyIdResolver; @@ -451,31 +451,31 @@ /// A mapping from extension block names to module file extensions. llvm::StringMap<std::shared_ptr<ModuleFileExtension>> ModuleFileExtensions; - /// \brief A timer used to track the time spent deserializing. + /// A timer used to track the time spent deserializing. std::unique_ptr<llvm::Timer> ReadTimer; - /// \brief The location where the module file will be considered as + /// The location where the module file will be considered as /// imported from. For non-module AST types it should be invalid. SourceLocation CurrentImportLoc; - /// \brief The global module index, if loaded. + /// The global module index, if loaded. std::unique_ptr<GlobalModuleIndex> GlobalIndex; - /// \brief A map of global bit offsets to the module that stores entities + /// A map of global bit offsets to the module that stores entities /// at those bit offsets. ContinuousRangeMap<uint64_t, ModuleFile*, 4> GlobalBitOffsetsMap; - /// \brief A map of negated SLocEntryIDs to the modules containing them. + /// A map of negated SLocEntryIDs to the modules containing them. ContinuousRangeMap<unsigned, ModuleFile*, 64> GlobalSLocEntryMap; using GlobalSLocOffsetMapType = ContinuousRangeMap<unsigned, ModuleFile *, 64>; - /// \brief A map of reversed (SourceManager::MaxLoadedOffset - SLocOffset) + /// A map of reversed (SourceManager::MaxLoadedOffset - SLocOffset) /// SourceLocation offsets to the modules containing them. GlobalSLocOffsetMapType GlobalSLocOffsetMap; - /// \brief Types that have already been loaded from the chain. + /// Types that have already been loaded from the chain. /// /// When the pointer at index I is non-NULL, the type with /// ID = (I + 1) << FastQual::Width has already been loaded @@ -484,12 +484,12 @@ using GlobalTypeMapType = ContinuousRangeMap<serialization::TypeID, ModuleFile *, 4>; - /// \brief Mapping from global type IDs to the module in which the + /// Mapping from global type IDs to the module in which the /// type resides along with the offset that should be added to the /// global type ID to produce a local ID. GlobalTypeMapType GlobalTypeMap; - /// \brief Declarations that have already been loaded from the chain. + /// Declarations that have already been loaded from the chain. /// /// When the pointer at index I is non-NULL, the declaration with ID /// = I + 1 has already been loaded. @@ -498,7 +498,7 @@ using GlobalDeclMapType = ContinuousRangeMap<serialization::DeclID, ModuleFile *, 4>; - /// \brief Mapping from global declaration IDs to the module in which the + /// Mapping from global declaration IDs to the module in which the /// declaration resides. GlobalDeclMapType GlobalDeclMap; @@ -507,7 +507,7 @@ using DeclUpdateOffsetsMap = llvm::DenseMap<serialization::DeclID, FileOffsetsTy>; - /// \brief Declarations that have modifications residing in a later file + /// Declarations that have modifications residing in a later file /// in the chain. DeclUpdateOffsetsMap DeclUpdateOffsets; @@ -523,28 +523,28 @@ : D(D), ID(ID), JustLoaded(JustLoaded) {} }; - /// \brief Declaration updates for already-loaded declarations that we need + /// Declaration updates for already-loaded declarations that we need /// to apply once we finish processing an import. llvm::SmallVector<PendingUpdateRecord, 16> PendingUpdateRecords; enum class PendingFakeDefinitionKind { NotFake, Fake, FakeLoaded }; - /// \brief The DefinitionData pointers that we faked up for class definitions + /// The DefinitionData pointers that we faked up for class definitions /// that we needed but hadn't loaded yet. llvm::DenseMap<void *, PendingFakeDefinitionKind> PendingFakeDefinitionData; - /// \brief Exception specification updates that have been loaded but not yet + /// Exception specification updates that have been loaded but not yet /// propagated across the relevant redeclaration chain. The map key is the /// canonical declaration (used only for deduplication) and the value is a /// declaration that has an exception specification. llvm::SmallMapVector<Decl *, FunctionDecl *, 4> PendingExceptionSpecUpdates; - /// \brief Declarations that have been imported and have typedef names for + /// Declarations that have been imported and have typedef names for /// linkage purposes. llvm::DenseMap<std::pair<DeclContext *, IdentifierInfo *>, NamedDecl *> ImportedTypedefNamesForLinkage; - /// \brief Mergeable declaration contexts that have anonymous declarations + /// Mergeable declaration contexts that have anonymous declarations /// within them, and those anonymous declarations. llvm::DenseMap<DeclContext*, llvm::SmallVector<NamedDecl*, 2>> AnonymousDeclarationsForMerging; @@ -558,21 +558,21 @@ : Mod(Mod), Decls(Decls) {} }; - /// \brief Map from a FileID to the file-level declarations that it contains. + /// Map from a FileID to the file-level declarations that it contains. llvm::DenseMap<FileID, FileDeclsInfo> FileDeclIDs; - /// \brief An array of lexical contents of a declaration context, as a sequence of + /// An array of lexical contents of a declaration context, as a sequence of /// Decl::Kind, DeclID pairs. using LexicalContents = ArrayRef<llvm::support::unaligned_uint32_t>; - /// \brief Map from a DeclContext to its lexical contents. + /// Map from a DeclContext to its lexical contents. llvm::DenseMap<const DeclContext*, std::pair<ModuleFile*, LexicalContents>> LexicalDecls; - /// \brief Map from the TU to its lexical contents from each module file. + /// Map from the TU to its lexical contents from each module file. std::vector<std::pair<ModuleFile*, LexicalContents>> TULexicalDecls; - /// \brief Map from a DeclContext to its lookup tables. + /// Map from a DeclContext to its lookup tables. llvm::DenseMap<const DeclContext *, serialization::reader::DeclContextLookupTable> Lookups; @@ -586,12 +586,12 @@ }; using DeclContextVisibleUpdates = SmallVector<PendingVisibleUpdate, 1>; - /// \brief Updates to the visible declarations of declaration contexts that + /// Updates to the visible declarations of declaration contexts that /// haven't been loaded yet. llvm::DenseMap<serialization::DeclID, DeclContextVisibleUpdates> PendingVisibleUpdates; - /// \brief The set of C++ or Objective-C classes that have forward + /// The set of C++ or Objective-C classes that have forward /// declarations that have not yet been linked to their definitions. llvm::SmallPtrSet<Decl *, 4> PendingDefinitions; @@ -600,24 +600,24 @@ llvm::SmallDenseMap<Decl *, unsigned, 4>, SmallVector<std::pair<Decl *, uint64_t>, 4>>; - /// \brief Functions or methods that have bodies that will be attached. + /// Functions or methods that have bodies that will be attached. PendingBodiesMap PendingBodies; - /// \brief Definitions for which we have added merged definitions but not yet + /// Definitions for which we have added merged definitions but not yet /// performed deduplication. llvm::SetVector<NamedDecl *> PendingMergedDefinitionsToDeduplicate; - /// \brief Read the record that describes the lexical contents of a DC. + /// Read the record that describes the lexical contents of a DC. bool ReadLexicalDeclContextStorage(ModuleFile &M, llvm::BitstreamCursor &Cursor, uint64_t Offset, DeclContext *DC); - /// \brief Read the record that describes the visible contents of a DC. + /// Read the record that describes the visible contents of a DC. bool ReadVisibleDeclContextStorage(ModuleFile &M, llvm::BitstreamCursor &Cursor, uint64_t Offset, serialization::DeclID ID); - /// \brief A vector containing identifiers that have already been + /// A vector containing identifiers that have already been /// loaded. /// /// If the pointer at index I is non-NULL, then it refers to the @@ -628,12 +628,12 @@ using GlobalIdentifierMapType = ContinuousRangeMap<serialization::IdentID, ModuleFile *, 4>; - /// \brief Mapping from global identifier IDs to the module in which the + /// Mapping from global identifier IDs to the module in which the /// identifier resides along with the offset that should be added to the /// global identifier ID to produce a local ID. GlobalIdentifierMapType GlobalIdentifierMap; - /// \brief A vector containing macros that have already been + /// A vector containing macros that have already been /// loaded. /// /// If the pointer at index I is non-NULL, then it refers to the @@ -644,7 +644,7 @@ using LoadedMacroInfo = std::pair<IdentifierInfo *, serialization::SubmoduleID>; - /// \brief A set of #undef directives that we have loaded; used to + /// A set of #undef directives that we have loaded; used to /// deduplicate the same #undef information coming from multiple module /// files. llvm::DenseSet<LoadedMacroInfo> LoadedUndefs; @@ -652,12 +652,12 @@ using GlobalMacroMapType = ContinuousRangeMap<serialization::MacroID, ModuleFile *, 4>; - /// \brief Mapping from global macro IDs to the module in which the + /// Mapping from global macro IDs to the module in which the /// macro resides along with the offset that should be added to the /// global macro ID to produce a local ID. GlobalMacroMapType GlobalMacroMap; - /// \brief A vector containing submodules that have already been loaded. + /// A vector containing submodules that have already been loaded. /// /// This vector is indexed by the Submodule ID (-1). NULL submodule entries /// indicate that the particular submodule ID has not yet been loaded. @@ -666,45 +666,45 @@ using GlobalSubmoduleMapType = ContinuousRangeMap<serialization::SubmoduleID, ModuleFile *, 4>; - /// \brief Mapping from global submodule IDs to the module file in which the + /// Mapping from global submodule IDs to the module file in which the /// submodule resides along with the offset that should be added to the /// global submodule ID to produce a local ID. GlobalSubmoduleMapType GlobalSubmoduleMap; - /// \brief A set of hidden declarations. + /// A set of hidden declarations. using HiddenNames = SmallVector<Decl *, 2>; using HiddenNamesMapType = llvm::DenseMap<Module *, HiddenNames>; - /// \brief A mapping from each of the hidden submodules to the deserialized + /// A mapping from each of the hidden submodules to the deserialized /// declarations in that submodule that could be made visible. HiddenNamesMapType HiddenNamesMap; - /// \brief A module import, export, or conflict that hasn't yet been resolved. + /// A module import, export, or conflict that hasn't yet been resolved. struct UnresolvedModuleRef { - /// \brief The file in which this module resides. + /// The file in which this module resides. ModuleFile *File; - /// \brief The module that is importing or exporting. + /// The module that is importing or exporting. Module *Mod; - /// \brief The kind of module reference. + /// The kind of module reference. enum { Import, Export, Conflict } Kind; - /// \brief The local ID of the module that is being exported. + /// The local ID of the module that is being exported. unsigned ID; - /// \brief Whether this is a wildcard export. + /// Whether this is a wildcard export. unsigned IsWildcard : 1; - /// \brief String data. + /// String data. StringRef String; }; - /// \brief The set of module imports and exports that still need to be + /// The set of module imports and exports that still need to be /// resolved. SmallVector<UnresolvedModuleRef, 2> UnresolvedModuleRefs; - /// \brief A vector containing selectors that have already been loaded. + /// A vector containing selectors that have already been loaded. /// /// This vector is indexed by the Selector ID (-1). NULL selector /// entries indicate that the particular selector ID has not yet @@ -714,11 +714,11 @@ using GlobalSelectorMapType = ContinuousRangeMap<serialization::SelectorID, ModuleFile *, 4>; - /// \brief Mapping from global selector IDs to the module in which the + /// Mapping from global selector IDs to the module in which the /// global selector ID to produce a local ID. GlobalSelectorMapType GlobalSelectorMap; - /// \brief The generation number of the last time we loaded data from the + /// The generation number of the last time we loaded data from the /// global method pool for this selector. llvm::DenseMap<Selector, unsigned> SelectorGeneration; @@ -737,14 +737,14 @@ using PendingMacroIDsMap = llvm::MapVector<IdentifierInfo *, SmallVector<PendingMacroInfo, 2>>; - /// \brief Mapping from identifiers that have a macro history to the global + /// Mapping from identifiers that have a macro history to the global /// IDs have not yet been deserialized to the global IDs of those macros. PendingMacroIDsMap PendingMacroIDs; using GlobalPreprocessedEntityMapType = ContinuousRangeMap<unsigned, ModuleFile *, 4>; - /// \brief Mapping from global preprocessing entity IDs to the module in + /// Mapping from global preprocessing entity IDs to the module in /// which the preprocessed entity resides along with the offset that should be /// added to the global preprocessing entity ID to produce a local ID. GlobalPreprocessedEntityMapType GlobalPreprocessedEntityMap; @@ -752,15 +752,15 @@ using GlobalSkippedRangeMapType = ContinuousRangeMap<unsigned, ModuleFile *, 4>; - /// \brief Mapping from global skipped range base IDs to the module in which + /// Mapping from global skipped range base IDs to the module in which /// the skipped ranges reside. GlobalSkippedRangeMapType GlobalSkippedRangeMap; /// \name CodeGen-relevant special data - /// \brief Fields containing data that is relevant to CodeGen. + /// Fields containing data that is relevant to CodeGen. //@{ - /// \brief The IDs of all declarations that fulfill the criteria of + /// The IDs of all declarations that fulfill the criteria of /// "interesting" decls. /// /// This contains the data loaded from all EAGERLY_DESERIALIZED_DECLS blocks @@ -768,21 +768,21 @@ /// the consumer eagerly. SmallVector<uint64_t, 16> EagerlyDeserializedDecls; - /// \brief The IDs of all tentative definitions stored in the chain. + /// The IDs of all tentative definitions stored in the chain. /// /// Sema keeps track of all tentative definitions in a TU because it has to /// complete them and pass them on to CodeGen. Thus, tentative definitions in /// the PCH chain must be eagerly deserialized. SmallVector<uint64_t, 16> TentativeDefinitions; - /// \brief The IDs of all CXXRecordDecls stored in the chain whose VTables are + /// The IDs of all CXXRecordDecls stored in the chain whose VTables are /// used. /// /// CodeGen has to emit VTables for these records, so they have to be eagerly /// deserialized. SmallVector<uint64_t, 64> VTableUses; - /// \brief A snapshot of the pending instantiations in the chain. + /// A snapshot of the pending instantiations in the chain. /// /// This record tracks the instantiations that Sema has to perform at the /// end of the TU. It consists of a pair of values for every pending @@ -793,26 +793,26 @@ //@} /// \name DiagnosticsEngine-relevant special data - /// \brief Fields containing data that is used for generating diagnostics + /// Fields containing data that is used for generating diagnostics //@{ - /// \brief A snapshot of Sema's unused file-scoped variable tracking, for + /// A snapshot of Sema's unused file-scoped variable tracking, for /// generating warnings. SmallVector<uint64_t, 16> UnusedFileScopedDecls; - /// \brief A list of all the delegating constructors we've seen, to diagnose + /// A list of all the delegating constructors we've seen, to diagnose /// cycles. SmallVector<uint64_t, 4> DelegatingCtorDecls; - /// \brief Method selectors used in a @selector expression. Used for + /// Method selectors used in a @selector expression. Used for /// implementation of -Wselector. SmallVector<uint64_t, 64> ReferencedSelectorsData; - /// \brief A snapshot of Sema's weak undeclared identifier tracking, for + /// A snapshot of Sema's weak undeclared identifier tracking, for /// generating warnings. SmallVector<uint64_t, 64> WeakUndeclaredIdentifiers; - /// \brief The IDs of type aliases for ext_vectors that exist in the chain. + /// The IDs of type aliases for ext_vectors that exist in the chain. /// /// Used by Sema for finding sugared names for ext_vectors in diagnostics. SmallVector<uint64_t, 4> ExtVectorDecls; @@ -820,48 +820,48 @@ //@} /// \name Sema-relevant special data - /// \brief Fields containing data that is used for semantic analysis + /// Fields containing data that is used for semantic analysis //@{ - /// \brief The IDs of all potentially unused typedef names in the chain. + /// The IDs of all potentially unused typedef names in the chain. /// /// Sema tracks these to emit warnings. SmallVector<uint64_t, 16> UnusedLocalTypedefNameCandidates; - /// \brief Our current depth in #pragma cuda force_host_device begin/end + /// Our current depth in #pragma cuda force_host_device begin/end /// macros. unsigned ForceCUDAHostDeviceDepth = 0; - /// \brief The IDs of the declarations Sema stores directly. + /// The IDs of the declarations Sema stores directly. /// /// Sema tracks a few important decls, such as namespace std, directly. SmallVector<uint64_t, 4> SemaDeclRefs; - /// \brief The IDs of the types ASTContext stores directly. + /// The IDs of the types ASTContext stores directly. /// /// The AST context tracks a few important types, such as va_list, directly. SmallVector<uint64_t, 16> SpecialTypes; - /// \brief The IDs of CUDA-specific declarations ASTContext stores directly. + /// The IDs of CUDA-specific declarations ASTContext stores directly. /// /// The AST context tracks a few important decls, currently cudaConfigureCall, /// directly. SmallVector<uint64_t, 2> CUDASpecialDeclRefs; - /// \brief The floating point pragma option settings. + /// The floating point pragma option settings. SmallVector<uint64_t, 1> FPPragmaOptions; - /// \brief The pragma clang optimize location (if the pragma state is "off"). + /// The pragma clang optimize location (if the pragma state is "off"). SourceLocation OptimizeOffPragmaLocation; - /// \brief The PragmaMSStructKind pragma ms_struct state if set, or -1. + /// The PragmaMSStructKind pragma ms_struct state if set, or -1. int PragmaMSStructState = -1; - /// \brief The PragmaMSPointersToMembersKind pragma pointers_to_members state. + /// The PragmaMSPointersToMembersKind pragma pointers_to_members state. int PragmaMSPointersToMembersState = -1; SourceLocation PointersToMembersPragmaLocation; - /// \brief The pragma pack state. + /// The pragma pack state. Optional<unsigned> PragmaPackCurrentValue; SourceLocation PragmaPackCurrentLocation; struct PragmaPackStackEntry { @@ -873,26 +873,26 @@ llvm::SmallVector<PragmaPackStackEntry, 2> PragmaPackStack; llvm::SmallVector<std::string, 2> PragmaPackStrings; - /// \brief The OpenCL extension settings. + /// The OpenCL extension settings. OpenCLOptions OpenCLExtensions; - /// \brief Extensions required by an OpenCL type. + /// Extensions required by an OpenCL type. llvm::DenseMap<const Type *, std::set<std::string>> OpenCLTypeExtMap; - /// \brief Extensions required by an OpenCL declaration. + /// Extensions required by an OpenCL declaration. llvm::DenseMap<const Decl *, std::set<std::string>> OpenCLDeclExtMap; - /// \brief A list of the namespaces we've seen. + /// A list of the namespaces we've seen. SmallVector<uint64_t, 4> KnownNamespaces; - /// \brief A list of undefined decls with internal linkage followed by the + /// A list of undefined decls with internal linkage followed by the /// SourceLocation of a matching ODR-use. SmallVector<uint64_t, 8> UndefinedButUsed; - /// \brief Delete expressions to analyze at the end of translation unit. + /// Delete expressions to analyze at the end of translation unit. SmallVector<uint64_t, 8> DelayedDeleteExprs; - // \brief A list of late parsed template function data. + // A list of late parsed template function data. SmallVector<uint64_t, 1> LateParsedTemplates; public: @@ -905,41 +905,41 @@ }; private: - /// \brief A list of modules that were imported by precompiled headers or + /// A list of modules that were imported by precompiled headers or /// any other non-module AST file. SmallVector<ImportedSubmodule, 2> ImportedModules; //@} - /// \brief The system include root to be used when loading the + /// The system include root to be used when loading the /// precompiled header. std::string isysroot; - /// \brief Whether to disable the normal validation performed on precompiled + /// Whether to disable the normal validation performed on precompiled /// headers when they are loaded. bool DisableValidation; - /// \brief Whether to accept an AST file with compiler errors. + /// Whether to accept an AST file with compiler errors. bool AllowASTWithCompilerErrors; - /// \brief Whether to accept an AST file that has a different configuration + /// Whether to accept an AST file that has a different configuration /// from the current compiler instance. bool AllowConfigurationMismatch; - /// \brief Whether validate system input files. + /// Whether validate system input files. bool ValidateSystemInputs; - /// \brief Whether we are allowed to use the global module index. + /// Whether we are allowed to use the global module index. bool UseGlobalIndex; - /// \brief Whether we have tried loading the global module index yet. + /// Whether we have tried loading the global module index yet. bool TriedLoadingGlobalIndex = false; - ///\brief Whether we are currently processing update records. + ///Whether we are currently processing update records. bool ProcessingUpdateRecords = false; using SwitchCaseMapTy = llvm::DenseMap<unsigned, SwitchCase *>; - /// \brief Mapping from switch-case IDs in the chain to switch-case statements + /// Mapping from switch-case IDs in the chain to switch-case statements /// /// Statements usually don't have IDs, but switch cases need them, so that the /// switch statement can refer to them. @@ -947,56 +947,56 @@ SwitchCaseMapTy *CurrSwitchCaseStmts; - /// \brief The number of source location entries de-serialized from + /// The number of source location entries de-serialized from /// the PCH file. unsigned NumSLocEntriesRead = 0; - /// \brief The number of source location entries in the chain. + /// The number of source location entries in the chain. unsigned TotalNumSLocEntries = 0; - /// \brief The number of statements (and expressions) de-serialized + /// The number of statements (and expressions) de-serialized /// from the chain. unsigned NumStatementsRead = 0; - /// \brief The total number of statements (and expressions) stored + /// The total number of statements (and expressions) stored /// in the chain. unsigned TotalNumStatements = 0; - /// \brief The number of macros de-serialized from the chain. + /// The number of macros de-serialized from the chain. unsigned NumMacrosRead = 0; - /// \brief The total number of macros stored in the chain. + /// The total number of macros stored in the chain. unsigned TotalNumMacros = 0; - /// \brief The number of lookups into identifier tables. + /// The number of lookups into identifier tables. unsigned NumIdentifierLookups = 0; - /// \brief The number of lookups into identifier tables that succeed. + /// The number of lookups into identifier tables that succeed. unsigned NumIdentifierLookupHits = 0; - /// \brief The number of selectors that have been read. + /// The number of selectors that have been read. unsigned NumSelectorsRead = 0; - /// \brief The number of method pool entries that have been read. + /// The number of method pool entries that have been read. unsigned NumMethodPoolEntriesRead = 0; - /// \brief The number of times we have looked up a selector in the method + /// The number of times we have looked up a selector in the method /// pool. unsigned NumMethodPoolLookups = 0; - /// \brief The number of times we have looked up a selector in the method + /// The number of times we have looked up a selector in the method /// pool and found something. unsigned NumMethodPoolHits = 0; - /// \brief The number of times we have looked up a selector in the method + /// The number of times we have looked up a selector in the method /// pool within a specific module. unsigned NumMethodPoolTableLookups = 0; - /// \brief The number of times we have looked up a selector in the method + /// The number of times we have looked up a selector in the method /// pool within a specific module and found something. unsigned NumMethodPoolTableHits = 0; - /// \brief The total number of method pool entries in the selector table. + /// The total number of method pool entries in the selector table. unsigned TotalNumMethodPoolEntries = 0; /// Number of lexical decl contexts read/total. @@ -1008,16 +1008,16 @@ /// Total size of modules, in bits, currently loaded uint64_t TotalModulesSizeInBits = 0; - /// \brief Number of Decl/types that are currently deserializing. + /// Number of Decl/types that are currently deserializing. unsigned NumCurrentElementsDeserializing = 0; - /// \brief Set true while we are in the process of passing deserialized + /// Set true while we are in the process of passing deserialized /// "interesting" decls to consumer inside FinishedDeserializing(). /// This is used as a guard to avoid recursively repeating the process of /// passing decls to consumer. bool PassingDeclsToConsumer = false; - /// \brief The set of identifiers that were read while the AST reader was + /// The set of identifiers that were read while the AST reader was /// (recursively) loading declarations. /// /// The declarations on the identifier chain for these identifiers will be @@ -1025,12 +1025,12 @@ llvm::MapVector<IdentifierInfo *, SmallVector<uint32_t, 4>> PendingIdentifierInfos; - /// \brief The set of lookup results that we have faked in order to support + /// The set of lookup results that we have faked in order to support /// merging of partially deserialized decls but that we have not yet removed. llvm::SmallMapVector<IdentifierInfo *, SmallVector<NamedDecl*, 2>, 16> PendingFakeLookupResults; - /// \brief The generation number of each identifier, which keeps track of + /// The generation number of each identifier, which keeps track of /// the last time we loaded information about this identifier. llvm::DenseMap<IdentifierInfo *, unsigned> IdentifierGeneration; @@ -1048,7 +1048,7 @@ bool hasPendingBody() { return DeclHasPendingBody; } }; - /// \brief Contains declarations and definitions that could be + /// Contains declarations and definitions that could be /// "interesting" to the ASTConsumer, when we get that AST consumer. /// /// "Interesting" declarations are those that have data that may @@ -1056,16 +1056,16 @@ /// Objective-C protocols. std::deque<InterestingDecl> PotentiallyInterestingDecls; - /// \brief The list of redeclaration chains that still need to be + /// The list of redeclaration chains that still need to be /// reconstructed, and the local offset to the corresponding list /// of redeclarations. SmallVector<std::pair<Decl *, uint64_t>, 16> PendingDeclChains; - /// \brief The list of canonical declarations whose redeclaration chains + /// The list of canonical declarations whose redeclaration chains /// need to be marked as incomplete once we're done deserializing things. SmallVector<Decl *, 16> PendingIncompleteDeclChains; - /// \brief The Decl IDs for the Sema/Lexical DeclContext of a Decl that has + /// The Decl IDs for the Sema/Lexical DeclContext of a Decl that has /// been loaded but its DeclContext was not set yet. struct PendingDeclContextInfo { Decl *D; @@ -1073,14 +1073,14 @@ serialization::GlobalDeclID LexicalDC; }; - /// \brief The set of Decls that have been loaded but their DeclContexts are + /// The set of Decls that have been loaded but their DeclContexts are /// not set yet. /// /// The DeclContexts for these Decls will be set once recursive loading has /// been completed. std::deque<PendingDeclContextInfo> PendingDeclContextInfos; - /// \brief The set of NamedDecls that have been loaded, but are members of a + /// The set of NamedDecls that have been loaded, but are members of a /// context that has been merged into another context where the corresponding /// declaration is either missing or has not yet been loaded. /// @@ -1091,22 +1091,22 @@ using DataPointers = std::pair<CXXRecordDecl *, struct CXXRecordDecl::DefinitionData *>; - /// \brief Record definitions in which we found an ODR violation. + /// Record definitions in which we found an ODR violation. llvm::SmallDenseMap<CXXRecordDecl *, llvm::SmallVector<DataPointers, 2>, 2> PendingOdrMergeFailures; - /// \brief Function definitions in which we found an ODR violation. + /// Function definitions in which we found an ODR violation. llvm::SmallDenseMap<FunctionDecl *, llvm::SmallVector<FunctionDecl *, 2>, 2> PendingFunctionOdrMergeFailures; - /// \brief DeclContexts in which we have diagnosed an ODR violation. + /// DeclContexts in which we have diagnosed an ODR violation. llvm::SmallPtrSet<DeclContext*, 2> DiagnosedOdrMergeFailures; - /// \brief The set of Objective-C categories that have been deserialized + /// The set of Objective-C categories that have been deserialized /// since the last time the declaration chains were linked. llvm::SmallPtrSet<ObjCCategoryDecl *, 16> CategoriesDeserialized; - /// \brief The set of Objective-C class definitions that have already been + /// The set of Objective-C class definitions that have already been /// loaded, for which we will need to check for categories whenever a new /// module is loaded. SmallVector<ObjCInterfaceDecl *, 16> ObjCClassesLoaded; @@ -1114,34 +1114,34 @@ using KeyDeclsMap = llvm::DenseMap<Decl *, SmallVector<serialization::DeclID, 2>>; - /// \brief A mapping from canonical declarations to the set of global + /// A mapping from canonical declarations to the set of global /// declaration IDs for key declaration that have been merged with that /// canonical declaration. A key declaration is a formerly-canonical /// declaration whose module did not import any other key declaration for that /// entity. These are the IDs that we use as keys when finding redecl chains. KeyDeclsMap KeyDecls; - /// \brief A mapping from DeclContexts to the semantic DeclContext that we + /// A mapping from DeclContexts to the semantic DeclContext that we /// are treating as the definition of the entity. This is used, for instance, /// when merging implicit instantiations of class templates across modules. llvm::DenseMap<DeclContext *, DeclContext *> MergedDeclContexts; - /// \brief A mapping from canonical declarations of enums to their canonical + /// A mapping from canonical declarations of enums to their canonical /// definitions. Only populated when using modules in C++. llvm::DenseMap<EnumDecl *, EnumDecl *> EnumDefinitions; - /// \brief When reading a Stmt tree, Stmt operands are placed in this stack. + /// When reading a Stmt tree, Stmt operands are placed in this stack. SmallVector<Stmt *, 16> StmtStack; - /// \brief What kind of records we are reading. + /// What kind of records we are reading. enum ReadingKind { Read_None, Read_Decl, Read_Type, Read_Stmt }; - /// \brief What kind of records we are reading. + /// What kind of records we are reading. ReadingKind ReadingKind = Read_None; - /// \brief RAII object to change the reading kind. + /// RAII object to change the reading kind. class ReadingKindTracker { ASTReader &Reader; enum ReadingKind PrevKind; @@ -1157,7 +1157,7 @@ ~ReadingKindTracker() { Reader.ReadingKind = PrevKind; } }; - /// \brief RAII object to mark the start of processing updates. + /// RAII object to mark the start of processing updates. class ProcessingUpdatesRAIIObj { ASTReader &Reader; bool PrevState; @@ -1174,7 +1174,7 @@ ~ProcessingUpdatesRAIIObj() { Reader.ProcessingUpdateRecords = PrevState; } }; - /// \brief Suggested contents of the predefines buffer, after this + /// Suggested contents of the predefines buffer, after this /// PCH file has been processed. /// /// In most cases, this string will be empty, because the predefines @@ -1186,7 +1186,7 @@ llvm::DenseMap<const Decl *, bool> DefinitionSource; - /// \brief Reads a statement from the specified cursor. + /// Reads a statement from the specified cursor. Stmt *ReadStmtFromStream(ModuleFile &F); struct InputFileInfo { @@ -1198,10 +1198,10 @@ bool TopLevelModuleMap; }; - /// \brief Reads the stored information about an input file. + /// Reads the stored information about an input file. InputFileInfo readInputFileInfo(ModuleFile &F, unsigned ID); - /// \brief Retrieve the file entry and 'overridden' bit for an input + /// Retrieve the file entry and 'overridden' bit for an input /// file in the given module file. serialization::InputFile getInputFile(ModuleFile &F, unsigned ID, bool Complain = true); @@ -1210,7 +1210,7 @@ void ResolveImportedPath(ModuleFile &M, std::string &Filename); static void ResolveImportedPath(std::string &Filename, StringRef Prefix); - /// \brief Returns the first key declaration for the given declaration. This + /// Returns the first key declaration for the given declaration. This /// is one that is formerly-canonical (or still canonical) and whose module /// did not import any other key declaration of the entity. Decl *getKeyDeclaration(Decl *D) { @@ -1227,7 +1227,7 @@ return getKeyDeclaration(const_cast<Decl*>(D)); } - /// \brief Run a callback on each imported key declaration of \p D. + /// Run a callback on each imported key declaration of \p D. template <typename Fn> void forEachImportedKeyDecl(const Decl *D, Fn Visit) { D = D->getCanonicalDecl(); @@ -1240,7 +1240,7 @@ Visit(GetExistingDecl(ID)); } - /// \brief Get the loaded lookup tables for \p Primary, if any. + /// Get the loaded lookup tables for \p Primary, if any. const serialization::reader::DeclContextLookupTable * getLoadedLookupTables(DeclContext *Primary) const; @@ -1330,7 +1330,7 @@ Decl *ReadDeclRecord(serialization::DeclID ID); void markIncompleteDeclChain(Decl *Canon); - /// \brief Returns the most recent declaration of a declaration (which must be + /// Returns the most recent declaration of a declaration (which must be /// of a redeclarable kind) that is either local or has already been loaded /// merged into its redecl chain. Decl *getMostRecentExistingDecl(Decl *D); @@ -1345,12 +1345,12 @@ RecordLocation getLocalBitOffset(uint64_t GlobalOffset); uint64_t getGlobalBitOffset(ModuleFile &M, uint32_t LocalOffset); - /// \brief Returns the first preprocessed entity ID that begins or ends after + /// Returns the first preprocessed entity ID that begins or ends after /// \arg Loc. serialization::PreprocessedEntityID findPreprocessedEntity(SourceLocation Loc, bool EndsAfter) const; - /// \brief Find the next module that contains entities and return the ID + /// Find the next module that contains entities and return the ID /// of the first entry. /// /// \param SLocMapI points at a chunk of a module that contains no @@ -1360,12 +1360,12 @@ findNextPreprocessedEntity( GlobalSLocOffsetMapType::const_iterator SLocMapI) const; - /// \brief Returns (ModuleFile, Local index) pair for \p GlobalIndex of a + /// Returns (ModuleFile, Local index) pair for \p GlobalIndex of a /// preprocessed entity. std::pair<ModuleFile *, unsigned> getModulePreprocessedEntity(unsigned GlobalIndex); - /// \brief Returns (begin, end) pair for the preprocessed entities of a + /// Returns (begin, end) pair for the preprocessed entities of a /// particular module. llvm::iterator_range<PreprocessingRecord::iterator> getModulePreprocessedEntities(ModuleFile &Mod) const; @@ -1418,7 +1418,7 @@ PendingDeclContextInfos.push_back(Info); } - /// \brief Produce an error diagnostic and return true. + /// Produce an error diagnostic and return true. /// /// This routine should only be used for fatal errors that have to /// do with non-routine failures (e.g., corrupted AST file). @@ -1427,7 +1427,7 @@ StringRef Arg2 = StringRef()) const; public: - /// \brief Load the AST file and validate its contents against the given + /// Load the AST file and validate its contents against the given /// Preprocessor. /// /// \param PP the preprocessor associated with the context in which this @@ -1482,34 +1482,34 @@ FileManager &getFileManager() const { return FileMgr; } DiagnosticsEngine &getDiags() const { return Diags; } - /// \brief Flags that indicate what kind of AST loading failures the client + /// Flags that indicate what kind of AST loading failures the client /// of the AST reader can directly handle. /// /// When a client states that it can handle a particular kind of failure, /// the AST reader will not emit errors when producing that kind of failure. enum LoadFailureCapabilities { - /// \brief The client can't handle any AST loading failures. + /// The client can't handle any AST loading failures. ARR_None = 0, - /// \brief The client can handle an AST file that cannot load because it + /// The client can handle an AST file that cannot load because it /// is missing. ARR_Missing = 0x1, - /// \brief The client can handle an AST file that cannot load because it + /// The client can handle an AST file that cannot load because it /// is out-of-date relative to its input files. ARR_OutOfDate = 0x2, - /// \brief The client can handle an AST file that cannot load because it + /// The client can handle an AST file that cannot load because it /// was built with a different version of Clang. ARR_VersionMismatch = 0x4, - /// \brief The client can handle an AST file that cannot load because it's + /// The client can handle an AST file that cannot load because it's /// compiled configuration doesn't match that of the context it was /// loaded into. ARR_ConfigurationMismatch = 0x8 }; - /// \brief Load the AST file designated by the given file name. + /// Load the AST file designated by the given file name. /// /// \param FileName The name of the AST file to load. /// @@ -1530,7 +1530,7 @@ unsigned ClientLoadCapabilities, SmallVectorImpl<ImportedSubmodule> *Imported = nullptr); - /// \brief Make the entities in the given module and any of its (non-explicit) + /// Make the entities in the given module and any of its (non-explicit) /// submodules visible to name lookup. /// /// \param Mod The module whose names should be made visible. @@ -1543,24 +1543,24 @@ Module::NameVisibilityKind NameVisibility, SourceLocation ImportLoc); - /// \brief Make the names within this set of hidden names visible. + /// Make the names within this set of hidden names visible. void makeNamesVisible(const HiddenNames &Names, Module *Owner); - /// \brief Note that MergedDef is a redefinition of the canonical definition + /// Note that MergedDef is a redefinition of the canonical definition /// Def, so Def should be visible whenever MergedDef is. void mergeDefinitionVisibility(NamedDecl *Def, NamedDecl *MergedDef); - /// \brief Take the AST callbacks listener. + /// Take the AST callbacks listener. std::unique_ptr<ASTReaderListener> takeListener() { return std::move(Listener); } - /// \brief Set the AST callbacks listener. + /// Set the AST callbacks listener. void setListener(std::unique_ptr<ASTReaderListener> Listener) { this->Listener = std::move(Listener); } - /// \brief Add an AST callback listener. + /// Add an AST callback listener. /// /// Takes ownership of \p L. void addListener(std::unique_ptr<ASTReaderListener> L) { @@ -1595,72 +1595,72 @@ } }; - /// \brief Set the AST deserialization listener. + /// Set the AST deserialization listener. void setDeserializationListener(ASTDeserializationListener *Listener, bool TakeOwnership = false); - /// \brief Get the AST deserialization listener. + /// Get the AST deserialization listener. ASTDeserializationListener *getDeserializationListener() { return DeserializationListener; } - /// \brief Determine whether this AST reader has a global index. + /// Determine whether this AST reader has a global index. bool hasGlobalIndex() const { return (bool)GlobalIndex; } - /// \brief Return global module index. + /// Return global module index. GlobalModuleIndex *getGlobalIndex() { return GlobalIndex.get(); } - /// \brief Reset reader for a reload try. + /// Reset reader for a reload try. void resetForReload() { TriedLoadingGlobalIndex = false; } - /// \brief Attempts to load the global index. + /// Attempts to load the global index. /// /// \returns true if loading the global index has failed for any reason. bool loadGlobalIndex(); - /// \brief Determine whether we tried to load the global index, but failed, + /// Determine whether we tried to load the global index, but failed, /// e.g., because it is out-of-date or does not exist. bool isGlobalIndexUnavailable() const; - /// \brief Initializes the ASTContext + /// Initializes the ASTContext void InitializeContext(); - /// \brief Update the state of Sema after loading some additional modules. + /// Update the state of Sema after loading some additional modules. void UpdateSema(); - /// \brief Add in-memory (virtual file) buffer. + /// Add in-memory (virtual file) buffer. void addInMemoryBuffer(StringRef &FileName, std::unique_ptr<llvm::MemoryBuffer> Buffer) { ModuleMgr.addInMemoryBuffer(FileName, std::move(Buffer)); } - /// \brief Finalizes the AST reader's state before writing an AST file to + /// Finalizes the AST reader's state before writing an AST file to /// disk. /// /// This operation may undo temporary state in the AST that should not be /// emitted. void finalizeForWriting(); - /// \brief Retrieve the module manager. + /// Retrieve the module manager. ModuleManager &getModuleManager() { return ModuleMgr; } - /// \brief Retrieve the preprocessor. + /// Retrieve the preprocessor. Preprocessor &getPreprocessor() const { return PP; } - /// \brief Retrieve the name of the original source file name for the primary + /// Retrieve the name of the original source file name for the primary /// module file. StringRef getOriginalSourceFile() { return ModuleMgr.getPrimaryModule().OriginalSourceFileName; } - /// \brief Retrieve the name of the original source file name directly from + /// Retrieve the name of the original source file name directly from /// the AST file, without actually loading the AST file. static std::string getOriginalSourceFile(const std::string &ASTFileName, FileManager &FileMgr, const PCHContainerReader &PCHContainerRdr, DiagnosticsEngine &Diags); - /// \brief Read the control block for the named AST file. + /// Read the control block for the named AST file. /// /// \returns true if an error occurred, false otherwise. static bool @@ -1670,7 +1670,7 @@ ASTReaderListener &Listener, bool ValidateDiagnosticOptions); - /// \brief Determine whether the given AST file is acceptable to load into a + /// Determine whether the given AST file is acceptable to load into a /// translation unit with the given language and target options. static bool isAcceptableASTFile(StringRef Filename, FileManager &FileMgr, const PCHContainerReader &PCHContainerRdr, @@ -1679,71 +1679,71 @@ const PreprocessorOptions &PPOpts, StringRef ExistingModuleCachePath); - /// \brief Returns the suggested contents of the predefines buffer, + /// Returns the suggested contents of the predefines buffer, /// which contains a (typically-empty) subset of the predefines /// build prior to including the precompiled header. const std::string &getSuggestedPredefines() { return SuggestedPredefines; } - /// \brief Read a preallocated preprocessed entity from the external source. + /// Read a preallocated preprocessed entity from the external source. /// /// \returns null if an error occurred that prevented the preprocessed /// entity from being loaded. PreprocessedEntity *ReadPreprocessedEntity(unsigned Index) override; - /// \brief Returns a pair of [Begin, End) indices of preallocated + /// Returns a pair of [Begin, End) indices of preallocated /// preprocessed entities that \p Range encompasses. std::pair<unsigned, unsigned> findPreprocessedEntitiesInRange(SourceRange Range) override; - /// \brief Optionally returns true or false if the preallocated preprocessed + /// Optionally returns true or false if the preallocated preprocessed /// entity with index \p Index came from file \p FID. Optional<bool> isPreprocessedEntityInFileID(unsigned Index, FileID FID) override; - /// \brief Read a preallocated skipped range from the external source. + /// Read a preallocated skipped range from the external source. SourceRange ReadSkippedRange(unsigned Index) override; - /// \brief Read the header file information for the given file entry. + /// Read the header file information for the given file entry. HeaderFileInfo GetHeaderFileInfo(const FileEntry *FE) override; void ReadPragmaDiagnosticMappings(DiagnosticsEngine &Diag); - /// \brief Returns the number of source locations found in the chain. + /// Returns the number of source locations found in the chain. unsigned getTotalNumSLocs() const { return TotalNumSLocEntries; } - /// \brief Returns the number of identifiers found in the chain. + /// Returns the number of identifiers found in the chain. unsigned getTotalNumIdentifiers() const { return static_cast<unsigned>(IdentifiersLoaded.size()); } - /// \brief Returns the number of macros found in the chain. + /// Returns the number of macros found in the chain. unsigned getTotalNumMacros() const { return static_cast<unsigned>(MacrosLoaded.size()); } - /// \brief Returns the number of types found in the chain. + /// Returns the number of types found in the chain. unsigned getTotalNumTypes() const { return static_cast<unsigned>(TypesLoaded.size()); } - /// \brief Returns the number of declarations found in the chain. + /// Returns the number of declarations found in the chain. unsigned getTotalNumDecls() const { return static_cast<unsigned>(DeclsLoaded.size()); } - /// \brief Returns the number of submodules known. + /// Returns the number of submodules known. unsigned getTotalNumSubmodules() const { return static_cast<unsigned>(SubmodulesLoaded.size()); } - /// \brief Returns the number of selectors found in the chain. + /// Returns the number of selectors found in the chain. unsigned getTotalNumSelectors() const { return static_cast<unsigned>(SelectorsLoaded.size()); } - /// \brief Returns the number of preprocessed entities known to the AST + /// Returns the number of preprocessed entities known to the AST /// reader. unsigned getTotalNumPreprocessedEntities() const { unsigned Result = 0; @@ -1752,13 +1752,13 @@ return Result; } - /// \brief Reads a TemplateArgumentLocInfo appropriate for the + /// Reads a TemplateArgumentLocInfo appropriate for the /// given TemplateArgument kind. TemplateArgumentLocInfo GetTemplateArgumentLocInfo(ModuleFile &F, TemplateArgument::ArgKind Kind, const RecordData &Record, unsigned &Idx); - /// \brief Reads a TemplateArgumentLoc. + /// Reads a TemplateArgumentLoc. TemplateArgumentLoc ReadTemplateArgumentLoc(ModuleFile &F, const RecordData &Record, unsigned &Idx); @@ -1767,21 +1767,21 @@ ReadASTTemplateArgumentListInfo(ModuleFile &F, const RecordData &Record, unsigned &Index); - /// \brief Reads a declarator info from the given record. + /// Reads a declarator info from the given record. TypeSourceInfo *GetTypeSourceInfo(ModuleFile &F, const RecordData &Record, unsigned &Idx); - /// \brief Resolve a type ID into a type, potentially building a new + /// Resolve a type ID into a type, potentially building a new /// type. QualType GetType(serialization::TypeID ID); - /// \brief Resolve a local type ID within a given AST file into a type. + /// Resolve a local type ID within a given AST file into a type. QualType getLocalType(ModuleFile &F, unsigned LocalID); - /// \brief Map a local type ID within a given AST file into a global type ID. + /// Map a local type ID within a given AST file into a global type ID. serialization::TypeID getGlobalTypeID(ModuleFile &F, unsigned LocalID) const; - /// \brief Read a type from the current position in the given record, which + /// Read a type from the current position in the given record, which /// was read from the given AST file. QualType readType(ModuleFile &F, const RecordData &Record, unsigned &Idx) { if (Idx >= Record.size()) @@ -1790,40 +1790,40 @@ return getLocalType(F, Record[Idx++]); } - /// \brief Map from a local declaration ID within a given module to a + /// Map from a local declaration ID within a given module to a /// global declaration ID. serialization::DeclID getGlobalDeclID(ModuleFile &F, serialization::LocalDeclID LocalID) const; - /// \brief Returns true if global DeclID \p ID originated from module \p M. + /// Returns true if global DeclID \p ID originated from module \p M. bool isDeclIDFromModule(serialization::GlobalDeclID ID, ModuleFile &M) const; - /// \brief Retrieve the module file that owns the given declaration, or NULL + /// Retrieve the module file that owns the given declaration, or NULL /// if the declaration is not from a module file. ModuleFile *getOwningModuleFile(const Decl *D); - /// \brief Get the best name we know for the module that owns the given + /// Get the best name we know for the module that owns the given /// declaration, or an empty string if the declaration is not from a module. std::string getOwningModuleNameForDiagnostic(const Decl *D); - /// \brief Returns the source location for the decl \p ID. + /// Returns the source location for the decl \p ID. SourceLocation getSourceLocationForDeclID(serialization::GlobalDeclID ID); - /// \brief Resolve a declaration ID into a declaration, potentially + /// Resolve a declaration ID into a declaration, potentially /// building a new declaration. Decl *GetDecl(serialization::DeclID ID); Decl *GetExternalDecl(uint32_t ID) override; - /// \brief Resolve a declaration ID into a declaration. Return 0 if it's not + /// Resolve a declaration ID into a declaration. Return 0 if it's not /// been loaded yet. Decl *GetExistingDecl(serialization::DeclID ID); - /// \brief Reads a declaration with the given local ID in the given module. + /// Reads a declaration with the given local ID in the given module. Decl *GetLocalDecl(ModuleFile &F, uint32_t LocalID) { return GetDecl(getGlobalDeclID(F, LocalID)); } - /// \brief Reads a declaration with the given local ID in the given module. + /// Reads a declaration with the given local ID in the given module. /// /// \returns The requested declaration, casted to the given return type. template<typename T> @@ -1831,7 +1831,7 @@ return cast_or_null<T>(GetLocalDecl(F, LocalID)); } - /// \brief Map a global declaration ID into the declaration ID used to + /// Map a global declaration ID into the declaration ID used to /// refer to this declaration within the given module fule. /// /// \returns the global ID of the given declaration as known in the given @@ -1840,20 +1840,20 @@ mapGlobalIDToModuleFileGlobalID(ModuleFile &M, serialization::DeclID GlobalID); - /// \brief Reads a declaration ID from the given position in a record in the + /// Reads a declaration ID from the given position in a record in the /// given module. /// /// \returns The declaration ID read from the record, adjusted to a global ID. serialization::DeclID ReadDeclID(ModuleFile &F, const RecordData &Record, unsigned &Idx); - /// \brief Reads a declaration from the given position in a record in the + /// Reads a declaration from the given position in a record in the /// given module. Decl *ReadDecl(ModuleFile &F, const RecordData &R, unsigned &I) { return GetDecl(ReadDeclID(F, R, I)); } - /// \brief Reads a declaration from the given position in a record in the + /// Reads a declaration from the given position in a record in the /// given module. /// /// \returns The declaration read from this location, casted to the given @@ -1863,14 +1863,14 @@ return cast_or_null<T>(GetDecl(ReadDeclID(F, R, I))); } - /// \brief If any redeclarations of \p D have been imported since it was + /// If any redeclarations of \p D have been imported since it was /// last checked, this digs out those redeclarations and adds them to the /// redeclaration chain for \p D. void CompleteRedeclChain(const Decl *D) override; CXXBaseSpecifier *GetExternalCXXBaseSpecifiers(uint64_t Offset) override; - /// \brief Resolve the offset of a statement into a statement. + /// Resolve the offset of a statement into a statement. /// /// This operation will read a new statement from the external /// source each time it is called, and is meant to be used via a @@ -1882,13 +1882,13 @@ /// and then leave the cursor pointing into the block. static bool ReadBlockAbbrevs(llvm::BitstreamCursor &Cursor, unsigned BlockID); - /// \brief Finds all the visible declarations with a given name. + /// Finds all the visible declarations with a given name. /// The current implementation of this method just loads the entire /// lookup table as unmaterialized references. bool FindExternalVisibleDeclsByName(const DeclContext *DC, DeclarationName Name) override; - /// \brief Read all of the declarations lexically stored in a + /// Read all of the declarations lexically stored in a /// declaration context. /// /// \param DC The declaration context whose declarations will be @@ -1906,47 +1906,47 @@ llvm::function_ref<bool(Decl::Kind)> IsKindWeWant, SmallVectorImpl<Decl *> &Decls) override; - /// \brief Get the decls that are contained in a file in the Offset/Length + /// Get the decls that are contained in a file in the Offset/Length /// range. \p Length can be 0 to indicate a point at \p Offset instead of /// a range. void FindFileRegionDecls(FileID File, unsigned Offset, unsigned Length, SmallVectorImpl<Decl *> &Decls) override; - /// \brief Notify ASTReader that we started deserialization of + /// Notify ASTReader that we started deserialization of /// a decl or type so until FinishedDeserializing is called there may be /// decls that are initializing. Must be paired with FinishedDeserializing. void StartedDeserializing() override; - /// \brief Notify ASTReader that we finished the deserialization of + /// Notify ASTReader that we finished the deserialization of /// a decl or type. Must be paired with StartedDeserializing. void FinishedDeserializing() override; - /// \brief Function that will be invoked when we begin parsing a new + /// Function that will be invoked when we begin parsing a new /// translation unit involving this external AST source. /// /// This function will provide all of the external definitions to /// the ASTConsumer. void StartTranslationUnit(ASTConsumer *Consumer) override; - /// \brief Print some statistics about AST usage. + /// Print some statistics about AST usage. void PrintStats() override; - /// \brief Dump information about the AST reader to standard error. + /// Dump information about the AST reader to standard error. void dump(); /// Return the amount of memory used by memory buffers, breaking down /// by heap-backed versus mmap'ed memory. void getMemoryBufferSizes(MemoryBufferSizes &sizes) const override; - /// \brief Initialize the semantic source with the Sema instance + /// Initialize the semantic source with the Sema instance /// being used to perform semantic analysis on the abstract syntax /// tree. void InitializeSema(Sema &S) override; - /// \brief Inform the semantic consumer that Sema is no longer available. + /// Inform the semantic consumer that Sema is no longer available. void ForgetSema() override { SemaObj = nullptr; } - /// \brief Retrieve the IdentifierInfo for the named identifier. + /// Retrieve the IdentifierInfo for the named identifier. /// /// This routine builds a new IdentifierInfo for the given identifier. If any /// declarations with this name are visible from translation unit scope, their @@ -1954,11 +1954,11 @@ /// chain of the identifier. IdentifierInfo *get(StringRef Name) override; - /// \brief Retrieve an iterator into the set of all identifiers + /// Retrieve an iterator into the set of all identifiers /// in all loaded AST files. IdentifierIterator *getIdentifiers() override; - /// \brief Load the contents of the global method pool for a given + /// Load the contents of the global method pool for a given /// selector. void ReadMethodPool(Selector Sel) override; @@ -1966,7 +1966,7 @@ /// selector if necessary. void updateOutOfDateSelector(Selector Sel) override; - /// \brief Load the set of namespaces that are known to the external source, + /// Load the set of namespaces that are known to the external source, /// which will be used during typo correction. void ReadKnownNamespaces( SmallVectorImpl<NamespaceDecl *> &Namespaces) override; @@ -2008,7 +2008,7 @@ llvm::MapVector<const FunctionDecl *, std::unique_ptr<LateParsedTemplate>> &LPTMap) override; - /// \brief Load a selector from disk, registering its ID if it exists. + /// Load a selector from disk, registering its ID if it exists. void LoadSelector(Selector Sel); void SetIdentifierInfo(unsigned ID, IdentifierInfo *II); @@ -2016,10 +2016,10 @@ const SmallVectorImpl<uint32_t> &DeclIDs, SmallVectorImpl<Decl *> *Decls = nullptr); - /// \brief Report a diagnostic. + /// Report a diagnostic. DiagnosticBuilder Diag(unsigned DiagID) const; - /// \brief Report a diagnostic. + /// Report a diagnostic. DiagnosticBuilder Diag(SourceLocation Loc, unsigned DiagID) const; IdentifierInfo *DecodeIdentifierInfo(serialization::IdentifierID ID); @@ -2043,47 +2043,47 @@ void resolvePendingMacro(IdentifierInfo *II, const PendingMacroInfo &PMInfo); - /// \brief Retrieve the macro with the given ID. + /// Retrieve the macro with the given ID. MacroInfo *getMacro(serialization::MacroID ID); - /// \brief Retrieve the global macro ID corresponding to the given local + /// Retrieve the global macro ID corresponding to the given local /// ID within the given module file. serialization::MacroID getGlobalMacroID(ModuleFile &M, unsigned LocalID); - /// \brief Read the source location entry with index ID. + /// Read the source location entry with index ID. bool ReadSLocEntry(int ID) override; - /// \brief Retrieve the module import location and module name for the + /// Retrieve the module import location and module name for the /// given source manager entry ID. std::pair<SourceLocation, StringRef> getModuleImportLoc(int ID) override; - /// \brief Retrieve the global submodule ID given a module and its local ID + /// Retrieve the global submodule ID given a module and its local ID /// number. serialization::SubmoduleID getGlobalSubmoduleID(ModuleFile &M, unsigned LocalID); - /// \brief Retrieve the submodule that corresponds to a global submodule ID. + /// Retrieve the submodule that corresponds to a global submodule ID. /// Module *getSubmodule(serialization::SubmoduleID GlobalID); - /// \brief Retrieve the module that corresponds to the given module ID. + /// Retrieve the module that corresponds to the given module ID. /// /// Note: overrides method in ExternalASTSource Module *getModule(unsigned ID) override; - /// \brief Retrieve the module file with a given local ID within the specified + /// Retrieve the module file with a given local ID within the specified /// ModuleFile. ModuleFile *getLocalModuleFile(ModuleFile &M, unsigned ID); - /// \brief Get an ID for the given module file. + /// Get an ID for the given module file. unsigned getModuleFileID(ModuleFile *M); - /// \brief Return a descriptor for the corresponding module. + /// Return a descriptor for the corresponding module. llvm::Optional<ASTSourceDescriptor> getSourceDescriptor(unsigned ID) override; ExtKind hasExternalDefinitions(const Decl *D) override; - /// \brief Retrieve a selector from the given module with its local ID + /// Retrieve a selector from the given module with its local ID /// number. Selector getLocalSelector(ModuleFile &M, unsigned LocalID); @@ -2096,12 +2096,12 @@ return getLocalSelector(M, Record[Idx++]); } - /// \brief Retrieve the global selector ID that corresponds to this + /// Retrieve the global selector ID that corresponds to this /// the local selector ID in a given module. serialization::SelectorID getGlobalSelectorID(ModuleFile &F, unsigned LocalID) const; - /// \brief Read a declaration name. + /// Read a declaration name. DeclarationName ReadDeclarationName(ModuleFile &F, const RecordData &Record, unsigned &Idx); void ReadDeclarationNameLoc(ModuleFile &F, @@ -2121,54 +2121,54 @@ const RecordData &Record, unsigned &Idx); - /// \brief Read a template name. + /// Read a template name. TemplateName ReadTemplateName(ModuleFile &F, const RecordData &Record, unsigned &Idx); - /// \brief Read a template argument. + /// Read a template argument. TemplateArgument ReadTemplateArgument(ModuleFile &F, const RecordData &Record, unsigned &Idx, bool Canonicalize = false); - /// \brief Read a template parameter list. + /// Read a template parameter list. TemplateParameterList *ReadTemplateParameterList(ModuleFile &F, const RecordData &Record, unsigned &Idx); - /// \brief Read a template argument array. + /// Read a template argument array. void ReadTemplateArgumentList(SmallVectorImpl<TemplateArgument> &TemplArgs, ModuleFile &F, const RecordData &Record, unsigned &Idx, bool Canonicalize = false); - /// \brief Read a UnresolvedSet structure. + /// Read a UnresolvedSet structure. void ReadUnresolvedSet(ModuleFile &F, LazyASTUnresolvedSet &Set, const RecordData &Record, unsigned &Idx); - /// \brief Read a C++ base specifier. + /// Read a C++ base specifier. CXXBaseSpecifier ReadCXXBaseSpecifier(ModuleFile &F, const RecordData &Record,unsigned &Idx); - /// \brief Read a CXXCtorInitializer array. + /// Read a CXXCtorInitializer array. CXXCtorInitializer ** ReadCXXCtorInitializers(ModuleFile &F, const RecordData &Record, unsigned &Idx); - /// \brief Read the contents of a CXXCtorInitializer array. + /// Read the contents of a CXXCtorInitializer array. CXXCtorInitializer **GetExternalCXXCtorInitializers(uint64_t Offset) override; - /// \brief Read a source location from raw form and return it in its + /// Read a source location from raw form and return it in its /// originating module file's source location space. SourceLocation ReadUntranslatedSourceLocation(uint32_t Raw) const { return SourceLocation::getFromRawEncoding((Raw >> 1) | (Raw << 31)); } - /// \brief Read a source location from raw form. + /// Read a source location from raw form. SourceLocation ReadSourceLocation(ModuleFile &ModuleFile, uint32_t Raw) const { SourceLocation Loc = ReadUntranslatedSourceLocation(Raw); return TranslateSourceLocation(ModuleFile, Loc); } - /// \brief Translate a source location from another module file's source + /// Translate a source location from another module file's source /// location space into ours. SourceLocation TranslateSourceLocation(ModuleFile &ModuleFile, SourceLocation Loc) const { @@ -2181,59 +2181,59 @@ return Loc.getLocWithOffset(Remap); } - /// \brief Read a source location. + /// Read a source location. SourceLocation ReadSourceLocation(ModuleFile &ModuleFile, const RecordDataImpl &Record, unsigned &Idx) { return ReadSourceLocation(ModuleFile, Record[Idx++]); } - /// \brief Read a source range. + /// Read a source range. SourceRange ReadSourceRange(ModuleFile &F, const RecordData &Record, unsigned &Idx); - /// \brief Read an integral value + /// Read an integral value llvm::APInt ReadAPInt(const RecordData &Record, unsigned &Idx); - /// \brief Read a signed integral value + /// Read a signed integral value llvm::APSInt ReadAPSInt(const RecordData &Record, unsigned &Idx); - /// \brief Read a floating-point value + /// Read a floating-point value llvm::APFloat ReadAPFloat(const RecordData &Record, const llvm::fltSemantics &Sem, unsigned &Idx); - // \brief Read a string + // Read a string static std::string ReadString(const RecordData &Record, unsigned &Idx); - // \brief Skip a string + // Skip a string static void SkipString(const RecordData &Record, unsigned &Idx) { Idx += Record[Idx] + 1; } - // \brief Read a path + // Read a path std::string ReadPath(ModuleFile &F, const RecordData &Record, unsigned &Idx); - // \brief Skip a path + // Skip a path static void SkipPath(const RecordData &Record, unsigned &Idx) { SkipString(Record, Idx); } - /// \brief Read a version tuple. + /// Read a version tuple. static VersionTuple ReadVersionTuple(const RecordData &Record, unsigned &Idx); CXXTemporary *ReadCXXTemporary(ModuleFile &F, const RecordData &Record, unsigned &Idx); - /// \brief Reads attributes from the current stream position. + /// Reads attributes from the current stream position. void ReadAttributes(ASTRecordReader &Record, AttrVec &Attrs); - /// \brief Reads a statement. + /// Reads a statement. Stmt *ReadStmt(ModuleFile &F); - /// \brief Reads an expression. + /// Reads an expression. Expr *ReadExpr(ModuleFile &F); - /// \brief Reads a sub-statement operand during statement reading. + /// Reads a sub-statement operand during statement reading. Stmt *ReadSubStmt() { assert(ReadingKind == Read_Stmt && "Should be called only during statement reading!"); @@ -2243,21 +2243,21 @@ return StmtStack.pop_back_val(); } - /// \brief Reads a sub-expression operand during statement reading. + /// Reads a sub-expression operand during statement reading. Expr *ReadSubExpr(); - /// \brief Reads a token out of a record. + /// Reads a token out of a record. Token ReadToken(ModuleFile &M, const RecordDataImpl &Record, unsigned &Idx); - /// \brief Reads the macro record located at the given offset. + /// Reads the macro record located at the given offset. MacroInfo *ReadMacroRecord(ModuleFile &F, uint64_t Offset); - /// \brief Determine the global preprocessed entity ID that corresponds to + /// Determine the global preprocessed entity ID that corresponds to /// the given local ID within the given module. serialization::PreprocessedEntityID getGlobalPreprocessedEntityID(ModuleFile &M, unsigned LocalID) const; - /// \brief Add a macro to deserialize its macro directive history. + /// Add a macro to deserialize its macro directive history. /// /// \param II The name of the macro. /// \param M The module file. @@ -2266,56 +2266,56 @@ void addPendingMacro(IdentifierInfo *II, ModuleFile *M, uint64_t MacroDirectivesOffset); - /// \brief Read the set of macros defined by this external macro source. + /// Read the set of macros defined by this external macro source. void ReadDefinedMacros() override; - /// \brief Update an out-of-date identifier. + /// Update an out-of-date identifier. void updateOutOfDateIdentifier(IdentifierInfo &II) override; - /// \brief Note that this identifier is up-to-date. + /// Note that this identifier is up-to-date. void markIdentifierUpToDate(IdentifierInfo *II); - /// \brief Load all external visible decls in the given DeclContext. + /// Load all external visible decls in the given DeclContext. void completeVisibleDeclsMap(const DeclContext *DC) override; - /// \brief Retrieve the AST context that this AST reader supplements. + /// Retrieve the AST context that this AST reader supplements. ASTContext &getContext() { assert(ContextObj && "requested AST context when not loading AST"); return *ContextObj; } - // \brief Contains the IDs for declarations that were requested before we have + // Contains the IDs for declarations that were requested before we have // access to a Sema object. SmallVector<uint64_t, 16> PreloadedDeclIDs; - /// \brief Retrieve the semantic analysis object used to analyze the + /// Retrieve the semantic analysis object used to analyze the /// translation unit in which the precompiled header is being /// imported. Sema *getSema() { return SemaObj; } - /// \brief Get the identifier resolver used for name lookup / updates + /// Get the identifier resolver used for name lookup / updates /// in the translation unit scope. We have one of these even if we don't /// have a Sema object. IdentifierResolver &getIdResolver(); - /// \brief Retrieve the identifier table associated with the + /// Retrieve the identifier table associated with the /// preprocessor. IdentifierTable &getIdentifierTable(); - /// \brief Record that the given ID maps to the given switch-case + /// Record that the given ID maps to the given switch-case /// statement. void RecordSwitchCaseID(SwitchCase *SC, unsigned ID); - /// \brief Retrieve the switch-case statement with the given ID. + /// Retrieve the switch-case statement with the given ID. SwitchCase *getSwitchCaseWithID(unsigned ID); void ClearSwitchCaseIDs(); - /// \brief Cursors for comments blocks. + /// Cursors for comments blocks. SmallVector<std::pair<llvm::BitstreamCursor, serialization::ModuleFile *>, 8> CommentsCursors; - /// \brief Loads comments ranges. + /// Loads comments ranges. void ReadComments() override; /// Visit all the input files of the given module file. @@ -2333,7 +2333,7 @@ bool isProcessingUpdateRecords() { return ProcessingUpdateRecords; } }; -/// \brief An object for streaming information from a record. +/// An object for streaming information from a record. class ASTRecordReader { using ModuleFile = serialization::ModuleFile; @@ -2349,56 +2349,56 @@ /// Construct an ASTRecordReader that uses the default encoding scheme. ASTRecordReader(ASTReader &Reader, ModuleFile &F) : Reader(&Reader), F(&F) {} - /// \brief Reads a record with id AbbrevID from Cursor, resetting the + /// Reads a record with id AbbrevID from Cursor, resetting the /// internal state. unsigned readRecord(llvm::BitstreamCursor &Cursor, unsigned AbbrevID); - /// \brief Is this a module file for a module (rather than a PCH or similar). + /// Is this a module file for a module (rather than a PCH or similar). bool isModule() const { return F->isModule(); } - /// \brief Retrieve the AST context that this AST reader supplements. + /// Retrieve the AST context that this AST reader supplements. ASTContext &getContext() { return Reader->getContext(); } - /// \brief The current position in this record. + /// The current position in this record. unsigned getIdx() const { return Idx; } - /// \brief The length of this record. + /// The length of this record. size_t size() const { return Record.size(); } - /// \brief An arbitrary index in this record. + /// An arbitrary index in this record. const uint64_t &operator[](size_t N) { return Record[N]; } - /// \brief The last element in this record. + /// The last element in this record. const uint64_t &back() const { return Record.back(); } - /// \brief Returns the current value in this record, and advances to the + /// Returns the current value in this record, and advances to the /// next value. const uint64_t &readInt() { return Record[Idx++]; } - /// \brief Returns the current value in this record, without advancing. + /// Returns the current value in this record, without advancing. const uint64_t &peekInt() { return Record[Idx]; } - /// \brief Skips the specified number of values. + /// Skips the specified number of values. void skipInts(unsigned N) { Idx += N; } - /// \brief Retrieve the global submodule ID its local ID number. + /// Retrieve the global submodule ID its local ID number. serialization::SubmoduleID getGlobalSubmoduleID(unsigned LocalID) { return Reader->getGlobalSubmoduleID(*F, LocalID); } - /// \brief Retrieve the submodule that corresponds to a global submodule ID. + /// Retrieve the submodule that corresponds to a global submodule ID. Module *getSubmodule(serialization::SubmoduleID GlobalID) { return Reader->getSubmodule(GlobalID); } - /// \brief Read the record that describes the lexical contents of a DC. + /// Read the record that describes the lexical contents of a DC. bool readLexicalDeclContextStorage(uint64_t Offset, DeclContext *DC) { return Reader->ReadLexicalDeclContextStorage(*F, F->DeclsCursor, Offset, DC); } - /// \brief Read the record that describes the visible contents of a DC. + /// Read the record that describes the visible contents of a DC. bool readVisibleDeclContextStorage(uint64_t Offset, serialization::DeclID ID) { return Reader->ReadVisibleDeclContextStorage(*F, F->DeclsCursor, Offset, @@ -2410,24 +2410,24 @@ return Reader->readExceptionSpec(*F, ExceptionStorage, ESI, Record, Idx); } - /// \brief Get the global offset corresponding to a local offset. + /// Get the global offset corresponding to a local offset. uint64_t getGlobalBitOffset(uint32_t LocalOffset) { return Reader->getGlobalBitOffset(*F, LocalOffset); } - /// \brief Reads a statement. + /// Reads a statement. Stmt *readStmt() { return Reader->ReadStmt(*F); } - /// \brief Reads an expression. + /// Reads an expression. Expr *readExpr() { return Reader->ReadExpr(*F); } - /// \brief Reads a sub-statement operand during statement reading. + /// Reads a sub-statement operand during statement reading. Stmt *readSubStmt() { return Reader->ReadSubStmt(); } - /// \brief Reads a sub-expression operand during statement reading. + /// Reads a sub-expression operand during statement reading. Expr *readSubExpr() { return Reader->ReadSubExpr(); } - /// \brief Reads a declaration with the given local ID in the given module. + /// Reads a declaration with the given local ID in the given module. /// /// \returns The requested declaration, casted to the given return type. template<typename T> @@ -2435,14 +2435,14 @@ return cast_or_null<T>(Reader->GetLocalDecl(*F, LocalID)); } - /// \brief Reads a TemplateArgumentLocInfo appropriate for the + /// Reads a TemplateArgumentLocInfo appropriate for the /// given TemplateArgument kind, advancing Idx. TemplateArgumentLocInfo getTemplateArgumentLocInfo(TemplateArgument::ArgKind Kind) { return Reader->GetTemplateArgumentLocInfo(*F, Kind, Record, Idx); } - /// \brief Reads a TemplateArgumentLoc, advancing Idx. + /// Reads a TemplateArgumentLoc, advancing Idx. TemplateArgumentLoc readTemplateArgumentLoc() { return Reader->ReadTemplateArgumentLoc(*F, Record, Idx); @@ -2453,35 +2453,35 @@ return Reader->ReadASTTemplateArgumentListInfo(*F, Record, Idx); } - /// \brief Reads a declarator info from the given record, advancing Idx. + /// Reads a declarator info from the given record, advancing Idx. TypeSourceInfo *getTypeSourceInfo() { return Reader->GetTypeSourceInfo(*F, Record, Idx); } - /// \brief Map a local type ID within a given AST file to a global type ID. + /// Map a local type ID within a given AST file to a global type ID. serialization::TypeID getGlobalTypeID(unsigned LocalID) const { return Reader->getGlobalTypeID(*F, LocalID); } - /// \brief Read a type from the current position in the record. + /// Read a type from the current position in the record. QualType readType() { return Reader->readType(*F, Record, Idx); } - /// \brief Reads a declaration ID from the given position in this record. + /// Reads a declaration ID from the given position in this record. /// /// \returns The declaration ID read from the record, adjusted to a global ID. serialization::DeclID readDeclID() { return Reader->ReadDeclID(*F, Record, Idx); } - /// \brief Reads a declaration from the given position in a record in the + /// Reads a declaration from the given position in a record in the /// given module, advancing Idx. Decl *readDecl() { return Reader->ReadDecl(*F, Record, Idx); } - /// \brief Reads a declaration from the given position in the record, + /// Reads a declaration from the given position in the record, /// advancing Idx. /// /// \returns The declaration read from this location, casted to the given @@ -2495,12 +2495,12 @@ return Reader->GetIdentifierInfo(*F, Record, Idx); } - /// \brief Read a selector from the Record, advancing Idx. + /// Read a selector from the Record, advancing Idx. Selector readSelector() { return Reader->ReadSelector(*F, Record, Idx); } - /// \brief Read a declaration name, advancing Idx. + /// Read a declaration name, advancing Idx. DeclarationName readDeclarationName() { return Reader->ReadDeclarationName(*F, Record, Idx); } @@ -2523,39 +2523,39 @@ return Reader->ReadNestedNameSpecifierLoc(*F, Record, Idx); } - /// \brief Read a template name, advancing Idx. + /// Read a template name, advancing Idx. TemplateName readTemplateName() { return Reader->ReadTemplateName(*F, Record, Idx); } - /// \brief Read a template argument, advancing Idx. + /// Read a template argument, advancing Idx. TemplateArgument readTemplateArgument(bool Canonicalize = false) { return Reader->ReadTemplateArgument(*F, Record, Idx, Canonicalize); } - /// \brief Read a template parameter list, advancing Idx. + /// Read a template parameter list, advancing Idx. TemplateParameterList *readTemplateParameterList() { return Reader->ReadTemplateParameterList(*F, Record, Idx); } - /// \brief Read a template argument array, advancing Idx. + /// Read a template argument array, advancing Idx. void readTemplateArgumentList(SmallVectorImpl<TemplateArgument> &TemplArgs, bool Canonicalize = false) { return Reader->ReadTemplateArgumentList(TemplArgs, *F, Record, Idx, Canonicalize); } - /// \brief Read a UnresolvedSet structure, advancing Idx. + /// Read a UnresolvedSet structure, advancing Idx. void readUnresolvedSet(LazyASTUnresolvedSet &Set) { return Reader->ReadUnresolvedSet(*F, Set, Record, Idx); } - /// \brief Read a C++ base specifier, advancing Idx. + /// Read a C++ base specifier, advancing Idx. CXXBaseSpecifier readCXXBaseSpecifier() { return Reader->ReadCXXBaseSpecifier(*F, Record, Idx); } - /// \brief Read a CXXCtorInitializer array, advancing Idx. + /// Read a CXXCtorInitializer array, advancing Idx. CXXCtorInitializer **readCXXCtorInitializers() { return Reader->ReadCXXCtorInitializers(*F, Record, Idx); } @@ -2564,52 +2564,52 @@ return Reader->ReadCXXTemporary(*F, Record, Idx); } - /// \brief Read a source location, advancing Idx. + /// Read a source location, advancing Idx. SourceLocation readSourceLocation() { return Reader->ReadSourceLocation(*F, Record, Idx); } - /// \brief Read a source range, advancing Idx. + /// Read a source range, advancing Idx. SourceRange readSourceRange() { return Reader->ReadSourceRange(*F, Record, Idx); } - /// \brief Read an integral value, advancing Idx. + /// Read an integral value, advancing Idx. llvm::APInt readAPInt() { return Reader->ReadAPInt(Record, Idx); } - /// \brief Read a signed integral value, advancing Idx. + /// Read a signed integral value, advancing Idx. llvm::APSInt readAPSInt() { return Reader->ReadAPSInt(Record, Idx); } - /// \brief Read a floating-point value, advancing Idx. + /// Read a floating-point value, advancing Idx. llvm::APFloat readAPFloat(const llvm::fltSemantics &Sem) { return Reader->ReadAPFloat(Record, Sem,Idx); } - /// \brief Read a string, advancing Idx. + /// Read a string, advancing Idx. std::string readString() { return Reader->ReadString(Record, Idx); } - /// \brief Read a path, advancing Idx. + /// Read a path, advancing Idx. std::string readPath() { return Reader->ReadPath(*F, Record, Idx); } - /// \brief Read a version tuple, advancing Idx. + /// Read a version tuple, advancing Idx. VersionTuple readVersionTuple() { return ASTReader::ReadVersionTuple(Record, Idx); } - /// \brief Reads attributes from the current stream position, advancing Idx. + /// Reads attributes from the current stream position, advancing Idx. void readAttributes(AttrVec &Attrs) { return Reader->ReadAttributes(*this, Attrs); } - /// \brief Reads a token out of a record, advancing Idx. + /// Reads a token out of a record, advancing Idx. Token readToken() { return Reader->ReadToken(*F, Record, Idx); } @@ -2618,13 +2618,13 @@ Reader->RecordSwitchCaseID(SC, ID); } - /// \brief Retrieve the switch-case statement with the given ID. + /// Retrieve the switch-case statement with the given ID. SwitchCase *getSwitchCaseWithID(unsigned ID) { return Reader->getSwitchCaseWithID(ID); } }; -/// \brief Helper class that saves the current stream position and +/// Helper class that saves the current stream position and /// then restores it when destroyed. struct SavedStreamPosition { explicit SavedStreamPosition(llvm::BitstreamCursor &Cursor) Index: cfe/trunk/include/clang/Serialization/ASTWriter.h =================================================================== --- cfe/trunk/include/clang/Serialization/ASTWriter.h +++ cfe/trunk/include/clang/Serialization/ASTWriter.h @@ -95,7 +95,7 @@ class TypeSourceInfo; class VersionTuple; -/// \brief Writes an AST file containing the contents of a translation unit. +/// Writes an AST file containing the contents of a translation unit. /// /// The ASTWriter class produces a bitstream containing the serialized /// representation of a given abstract syntax tree and its supporting @@ -114,7 +114,7 @@ using RecordDataRef = ArrayRef<uint64_t>; private: - /// \brief Map that provides the ID numbers of each type within the + /// Map that provides the ID numbers of each type within the /// output stream, plus those deserialized from a chained PCH. /// /// The ID numbers of types are consecutive (in order of discovery) @@ -126,52 +126,52 @@ using TypeIdxMap = llvm::DenseMap<QualType, serialization::TypeIdx, serialization::UnsafeQualTypeDenseMapInfo>; - /// \brief The bitstream writer used to emit this precompiled header. + /// The bitstream writer used to emit this precompiled header. llvm::BitstreamWriter &Stream; /// The buffer associated with the bitstream. const SmallVectorImpl<char> &Buffer; - /// \brief The PCM manager which manages memory buffers for pcm files. + /// The PCM manager which manages memory buffers for pcm files. MemoryBufferCache &PCMCache; - /// \brief The ASTContext we're writing. + /// The ASTContext we're writing. ASTContext *Context = nullptr; - /// \brief The preprocessor we're writing. + /// The preprocessor we're writing. Preprocessor *PP = nullptr; - /// \brief The reader of existing AST files, if we're chaining. + /// The reader of existing AST files, if we're chaining. ASTReader *Chain = nullptr; - /// \brief The module we're currently writing, if any. + /// The module we're currently writing, if any. Module *WritingModule = nullptr; - /// \brief The base directory for any relative paths we emit. + /// The base directory for any relative paths we emit. std::string BaseDirectory; - /// \brief Indicates whether timestamps should be written to the produced + /// Indicates whether timestamps should be written to the produced /// module file. This is the case for files implicitly written to the /// module cache, where we need the timestamps to determine if the module /// file is up to date, but not otherwise. bool IncludeTimestamps; - /// \brief Indicates when the AST writing is actively performing + /// Indicates when the AST writing is actively performing /// serialization, rather than just queueing updates. bool WritingAST = false; - /// \brief Indicates that we are done serializing the collection of decls + /// Indicates that we are done serializing the collection of decls /// and types to emit. bool DoneWritingDeclsAndTypes = false; - /// \brief Indicates that the AST contained compiler errors. + /// Indicates that the AST contained compiler errors. bool ASTHasCompilerErrors = false; - /// \brief Mapping from input file entries to the index into the + /// Mapping from input file entries to the index into the /// offset table where information about that input file is stored. llvm::DenseMap<const FileEntry *, uint32_t> InputFileIDs; - /// \brief Stores a declaration or a type to be written to the AST file. + /// Stores a declaration or a type to be written to the AST file. class DeclOrType { public: DeclOrType(Decl *D) : Stored(D), IsType(false) {} @@ -195,16 +195,16 @@ bool IsType; }; - /// \brief The declarations and types to emit. + /// The declarations and types to emit. std::queue<DeclOrType> DeclTypesToEmit; - /// \brief The first ID number we can use for our own declarations. + /// The first ID number we can use for our own declarations. serialization::DeclID FirstDeclID = serialization::NUM_PREDEF_DECL_IDS; - /// \brief The decl ID that will be assigned to the next new decl. + /// The decl ID that will be assigned to the next new decl. serialization::DeclID NextDeclID = FirstDeclID; - /// \brief Map that provides the ID numbers of each declaration within + /// Map that provides the ID numbers of each declaration within /// the output stream, as well as those deserialized from a chained PCH. /// /// The ID numbers of declarations are consecutive (in order of @@ -212,35 +212,35 @@ /// unit, while 0 is reserved for NULL. llvm::DenseMap<const Decl *, serialization::DeclID> DeclIDs; - /// \brief Offset of each declaration in the bitstream, indexed by + /// Offset of each declaration in the bitstream, indexed by /// the declaration's ID. std::vector<serialization::DeclOffset> DeclOffsets; - /// \brief Sorted (by file offset) vector of pairs of file offset/DeclID. + /// Sorted (by file offset) vector of pairs of file offset/DeclID. using LocDeclIDsTy = SmallVector<std::pair<unsigned, serialization::DeclID>, 64>; struct DeclIDInFileInfo { LocDeclIDsTy DeclIDs; - /// \brief Set when the DeclIDs vectors from all files are joined, this + /// Set when the DeclIDs vectors from all files are joined, this /// indicates the index that this particular vector has in the global one. unsigned FirstDeclIndex; }; using FileDeclIDsTy = llvm::DenseMap<FileID, DeclIDInFileInfo *>; - /// \brief Map from file SLocEntries to info about the file-level declarations + /// Map from file SLocEntries to info about the file-level declarations /// that it contains. FileDeclIDsTy FileDeclIDs; void associateDeclWithFile(const Decl *D, serialization::DeclID); - /// \brief The first ID number we can use for our own types. + /// The first ID number we can use for our own types. serialization::TypeID FirstTypeID = serialization::NUM_PREDEF_TYPE_IDS; - /// \brief The type ID that will be assigned to the next new type. + /// The type ID that will be assigned to the next new type. serialization::TypeID NextTypeID = FirstTypeID; - /// \brief Map that provides the ID numbers of each type within the + /// Map that provides the ID numbers of each type within the /// output stream, plus those deserialized from a chained PCH. /// /// The ID numbers of types are consecutive (in order of discovery) @@ -251,17 +251,17 @@ /// Keys in the map never have const/volatile qualifiers. TypeIdxMap TypeIdxs; - /// \brief Offset of each type in the bitstream, indexed by + /// Offset of each type in the bitstream, indexed by /// the type's ID. std::vector<uint32_t> TypeOffsets; - /// \brief The first ID number we can use for our own identifiers. + /// The first ID number we can use for our own identifiers. serialization::IdentID FirstIdentID = serialization::NUM_PREDEF_IDENT_IDS; - /// \brief The identifier ID that will be assigned to the next new identifier. + /// The identifier ID that will be assigned to the next new identifier. serialization::IdentID NextIdentID = FirstIdentID; - /// \brief Map that provides the ID numbers of each identifier in + /// Map that provides the ID numbers of each identifier in /// the output stream. /// /// The ID numbers for identifiers are consecutive (in order of @@ -269,13 +269,13 @@ /// IdentifierInfo. llvm::MapVector<const IdentifierInfo *, serialization::IdentID> IdentifierIDs; - /// \brief The first ID number we can use for our own macros. + /// The first ID number we can use for our own macros. serialization::MacroID FirstMacroID = serialization::NUM_PREDEF_MACRO_IDS; - /// \brief The identifier ID that will be assigned to the next new identifier. + /// The identifier ID that will be assigned to the next new identifier. serialization::MacroID NextMacroID = FirstMacroID; - /// \brief Map that provides the ID numbers of each macro. + /// Map that provides the ID numbers of each macro. llvm::DenseMap<MacroInfo *, serialization::MacroID> MacroIDs; struct MacroInfoToEmitData { @@ -284,7 +284,7 @@ serialization::MacroID ID; }; - /// \brief The macro infos to emit. + /// The macro infos to emit. std::vector<MacroInfoToEmitData> MacroInfosToEmit; llvm::DenseMap<const IdentifierInfo *, uint64_t> IdentMacroDirectivesOffsetMap; @@ -292,46 +292,46 @@ /// @name FlushStmt Caches /// @{ - /// \brief Set of parent Stmts for the currently serializing sub-stmt. + /// Set of parent Stmts for the currently serializing sub-stmt. llvm::DenseSet<Stmt *> ParentStmts; - /// \brief Offsets of sub-stmts already serialized. The offset points + /// Offsets of sub-stmts already serialized. The offset points /// just after the stmt record. llvm::DenseMap<Stmt *, uint64_t> SubStmtEntries; /// @} - /// \brief Offsets of each of the identifier IDs into the identifier + /// Offsets of each of the identifier IDs into the identifier /// table. std::vector<uint32_t> IdentifierOffsets; - /// \brief The first ID number we can use for our own submodules. + /// The first ID number we can use for our own submodules. serialization::SubmoduleID FirstSubmoduleID = serialization::NUM_PREDEF_SUBMODULE_IDS; - /// \brief The submodule ID that will be assigned to the next new submodule. + /// The submodule ID that will be assigned to the next new submodule. serialization::SubmoduleID NextSubmoduleID = FirstSubmoduleID; - /// \brief The first ID number we can use for our own selectors. + /// The first ID number we can use for our own selectors. serialization::SelectorID FirstSelectorID = serialization::NUM_PREDEF_SELECTOR_IDS; - /// \brief The selector ID that will be assigned to the next new selector. + /// The selector ID that will be assigned to the next new selector. serialization::SelectorID NextSelectorID = FirstSelectorID; - /// \brief Map that provides the ID numbers of each Selector. + /// Map that provides the ID numbers of each Selector. llvm::MapVector<Selector, serialization::SelectorID> SelectorIDs; - /// \brief Offset of each selector within the method pool/selector + /// Offset of each selector within the method pool/selector /// table, indexed by the Selector ID (-1). std::vector<uint32_t> SelectorOffsets; - /// \brief Mapping from macro definitions (as they occur in the preprocessing + /// Mapping from macro definitions (as they occur in the preprocessing /// record) to the macro IDs. llvm::DenseMap<const MacroDefinitionRecord *, serialization::PreprocessedEntityID> MacroDefinitions; - /// \brief Cache of indices of anonymous declarations within their lexical + /// Cache of indices of anonymous declarations within their lexical /// contexts. llvm::DenseMap<const Decl *, unsigned> AnonymousDeclarationNumbers; @@ -376,17 +376,17 @@ using UpdateRecord = SmallVector<DeclUpdate, 1>; using DeclUpdateMap = llvm::MapVector<const Decl *, UpdateRecord>; - /// \brief Mapping from declarations that came from a chained PCH to the + /// Mapping from declarations that came from a chained PCH to the /// record containing modifications to them. DeclUpdateMap DeclUpdates; using FirstLatestDeclMap = llvm::DenseMap<Decl *, Decl *>; - /// \brief Map of first declarations from a chained PCH that point to the + /// Map of first declarations from a chained PCH that point to the /// most recent declarations in another PCH. FirstLatestDeclMap FirstLatestDecls; - /// \brief Declarations encountered that might be external + /// Declarations encountered that might be external /// definitions. /// /// We keep track of external definitions and other 'interesting' declarations @@ -400,7 +400,7 @@ SmallVector<uint64_t, 16> EagerlyDeserializedDecls; SmallVector<uint64_t, 16> ModularCodegenDecls; - /// \brief DeclContexts that have received extensions since their serialized + /// DeclContexts that have received extensions since their serialized /// form. /// /// For namespaces, when we're chaining and encountering a namespace, we check @@ -409,52 +409,52 @@ /// it. llvm::SmallSetVector<const DeclContext *, 16> UpdatedDeclContexts; - /// \brief Keeps track of declarations that we must emit, even though we're + /// Keeps track of declarations that we must emit, even though we're /// not guaranteed to be able to find them by walking the AST starting at the /// translation unit. SmallVector<const Decl *, 16> DeclsToEmitEvenIfUnreferenced; - /// \brief The set of Objective-C class that have categories we + /// The set of Objective-C class that have categories we /// should serialize. llvm::SetVector<ObjCInterfaceDecl *> ObjCClassesWithCategories; - /// \brief The set of declarations that may have redeclaration chains that + /// The set of declarations that may have redeclaration chains that /// need to be serialized. llvm::SmallVector<const Decl *, 16> Redeclarations; - /// \brief A cache of the first local declaration for "interesting" + /// A cache of the first local declaration for "interesting" /// redeclaration chains. llvm::DenseMap<const Decl *, const Decl *> FirstLocalDeclCache; - /// \brief Mapping from SwitchCase statements to IDs. + /// Mapping from SwitchCase statements to IDs. llvm::DenseMap<SwitchCase *, unsigned> SwitchCaseIDs; - /// \brief The number of statements written to the AST file. + /// The number of statements written to the AST file. unsigned NumStatements = 0; - /// \brief The number of macros written to the AST file. + /// The number of macros written to the AST file. unsigned NumMacros = 0; - /// \brief The number of lexical declcontexts written to the AST + /// The number of lexical declcontexts written to the AST /// file. unsigned NumLexicalDeclContexts = 0; - /// \brief The number of visible declcontexts written to the AST + /// The number of visible declcontexts written to the AST /// file. unsigned NumVisibleDeclContexts = 0; - /// \brief A mapping from each known submodule to its ID number, which will + /// A mapping from each known submodule to its ID number, which will /// be a positive integer. llvm::DenseMap<Module *, unsigned> SubmoduleIDs; - /// \brief A list of the module file extension writers. + /// A list of the module file extension writers. std::vector<std::unique_ptr<ModuleFileExtensionWriter>> ModuleFileExtensionWriters; - /// \brief Retrieve or create a submodule ID for this module. + /// Retrieve or create a submodule ID for this module. unsigned getSubmoduleID(Module *Mod); - /// \brief Write the given subexpression to the bitstream. + /// Write the given subexpression to the bitstream. void WriteSubStmt(Stmt *S); void WriteBlockInfoBlock(); @@ -540,7 +540,7 @@ Module *WritingModule); public: - /// \brief Create a new precompiled header writer that outputs to + /// Create a new precompiled header writer that outputs to /// the given bitstream. ASTWriter(llvm::BitstreamWriter &Stream, SmallVectorImpl<char> &Buffer, MemoryBufferCache &PCMCache, @@ -550,12 +550,12 @@ const LangOptions &getLangOpts() const; - /// \brief Get a timestamp for output into the AST file. The actual timestamp + /// Get a timestamp for output into the AST file. The actual timestamp /// of the specified file may be ignored if we have been instructed to not /// include timestamps in the output file. time_t getTimestampForOutput(const FileEntry *E) const; - /// \brief Write a precompiled header for the given semantic analysis. + /// Write a precompiled header for the given semantic analysis. /// /// \param SemaRef a reference to the semantic analysis object that processed /// the AST to be written into the precompiled header. @@ -573,46 +573,46 @@ Module *WritingModule, StringRef isysroot, bool hasErrors = false); - /// \brief Emit a token. + /// Emit a token. void AddToken(const Token &Tok, RecordDataImpl &Record); - /// \brief Emit a source location. + /// Emit a source location. void AddSourceLocation(SourceLocation Loc, RecordDataImpl &Record); - /// \brief Emit a source range. + /// Emit a source range. void AddSourceRange(SourceRange Range, RecordDataImpl &Record); - /// \brief Emit a reference to an identifier. + /// Emit a reference to an identifier. void AddIdentifierRef(const IdentifierInfo *II, RecordDataImpl &Record); - /// \brief Get the unique number used to refer to the given selector. + /// Get the unique number used to refer to the given selector. serialization::SelectorID getSelectorRef(Selector Sel); - /// \brief Get the unique number used to refer to the given identifier. + /// Get the unique number used to refer to the given identifier. serialization::IdentID getIdentifierRef(const IdentifierInfo *II); - /// \brief Get the unique number used to refer to the given macro. + /// Get the unique number used to refer to the given macro. serialization::MacroID getMacroRef(MacroInfo *MI, const IdentifierInfo *Name); - /// \brief Determine the ID of an already-emitted macro. + /// Determine the ID of an already-emitted macro. serialization::MacroID getMacroID(MacroInfo *MI); uint64_t getMacroDirectivesOffset(const IdentifierInfo *Name); - /// \brief Emit a reference to a type. + /// Emit a reference to a type. void AddTypeRef(QualType T, RecordDataImpl &Record); - /// \brief Force a type to be emitted and get its ID. + /// Force a type to be emitted and get its ID. serialization::TypeID GetOrCreateTypeID(QualType T); - /// \brief Determine the type ID of an already-emitted type. + /// Determine the type ID of an already-emitted type. serialization::TypeID getTypeID(QualType T) const; - /// \brief Find the first local declaration of a given local redeclarable + /// Find the first local declaration of a given local redeclarable /// decl. const Decl *getFirstLocalDecl(const Decl *D); - /// \brief Is this a local declaration (that is, one that will be written to + /// Is this a local declaration (that is, one that will be written to /// our AST file)? This is the case for declarations that are neither imported /// from another AST file nor predefined. bool IsLocalDecl(const Decl *D) { @@ -623,52 +623,52 @@ I->second >= serialization::NUM_PREDEF_DECL_IDS); }; - /// \brief Emit a reference to a declaration. + /// Emit a reference to a declaration. void AddDeclRef(const Decl *D, RecordDataImpl &Record); - /// \brief Force a declaration to be emitted and get its ID. + /// Force a declaration to be emitted and get its ID. serialization::DeclID GetDeclRef(const Decl *D); - /// \brief Determine the declaration ID of an already-emitted + /// Determine the declaration ID of an already-emitted /// declaration. serialization::DeclID getDeclID(const Decl *D); unsigned getAnonymousDeclarationNumber(const NamedDecl *D); - /// \brief Add a string to the given record. + /// Add a string to the given record. void AddString(StringRef Str, RecordDataImpl &Record); - /// \brief Convert a path from this build process into one that is appropriate + /// Convert a path from this build process into one that is appropriate /// for emission in the module file. bool PreparePathForOutput(SmallVectorImpl<char> &Path); - /// \brief Add a path to the given record. + /// Add a path to the given record. void AddPath(StringRef Path, RecordDataImpl &Record); - /// \brief Emit the current record with the given path as a blob. + /// Emit the current record with the given path as a blob. void EmitRecordWithPath(unsigned Abbrev, RecordDataRef Record, StringRef Path); - /// \brief Add a version tuple to the given record + /// Add a version tuple to the given record void AddVersionTuple(const VersionTuple &Version, RecordDataImpl &Record); - /// \brief Retrieve or create a submodule ID for this module, or return 0 if + /// Retrieve or create a submodule ID for this module, or return 0 if /// the submodule is neither local (a submodle of the currently-written module) /// nor from an imported module. unsigned getLocalOrImportedSubmoduleID(Module *Mod); - /// \brief Note that the identifier II occurs at the given offset + /// Note that the identifier II occurs at the given offset /// within the identifier table. void SetIdentifierOffset(const IdentifierInfo *II, uint32_t Offset); - /// \brief Note that the selector Sel occurs at the given offset + /// Note that the selector Sel occurs at the given offset /// within the method pool/selector table. void SetSelectorOffset(Selector Sel, uint32_t Offset); - /// \brief Record an ID for the given switch-case statement. + /// Record an ID for the given switch-case statement. unsigned RecordSwitchCaseID(SwitchCase *S); - /// \brief Retrieve the ID for the given switch-case statement. + /// Retrieve the ID for the given switch-case statement. unsigned getSwitchCaseID(SwitchCase *S); void ClearSwitchCaseIDs(); @@ -743,21 +743,21 @@ const RecordDecl *Record) override; }; -/// \brief An object for streaming information to a record. +/// An object for streaming information to a record. class ASTRecordWriter { ASTWriter *Writer; ASTWriter::RecordDataImpl *Record; - /// \brief Statements that we've encountered while serializing a + /// Statements that we've encountered while serializing a /// declaration or type. SmallVector<Stmt *, 16> StmtsToEmit; - /// \brief Indices of record elements that describe offsets within the + /// Indices of record elements that describe offsets within the /// bitcode. These will be converted to offsets relative to the current /// record when emitted. SmallVector<unsigned, 8> OffsetIndices; - /// \brief Flush all of the statements and expressions that have + /// Flush all of the statements and expressions that have /// been added to the queue via AddStmt(). void FlushStmts(); void FlushSubStmts(); @@ -787,10 +787,10 @@ ASTRecordWriter(const ASTRecordWriter &) = delete; ASTRecordWriter &operator=(const ASTRecordWriter &) = delete; - /// \brief Extract the underlying record storage. + /// Extract the underlying record storage. ASTWriter::RecordDataImpl &getRecordData() const { return *Record; } - /// \brief Minimal vector-like interface. + /// Minimal vector-like interface. /// @{ void push_back(uint64_t N) { Record->push_back(N); } template<typename InputIterator> @@ -802,7 +802,7 @@ uint64_t &operator[](size_t N) { return (*Record)[N]; } /// @} - /// \brief Emit the record to the stream, followed by its substatements, and + /// Emit the record to the stream, followed by its substatements, and /// return its offset. // FIXME: Allow record producers to suggest Abbrevs. uint64_t Emit(unsigned Code, unsigned Abbrev = 0) { @@ -813,7 +813,7 @@ return Offset; } - /// \brief Emit the record to the stream, preceded by its substatements. + /// Emit the record to the stream, preceded by its substatements. uint64_t EmitStmt(unsigned Code, unsigned Abbrev = 0) { FlushSubStmts(); PrepareToEmit(Writer->Stream.GetCurrentBitNo()); @@ -821,14 +821,14 @@ return Writer->Stream.GetCurrentBitNo(); } - /// \brief Add a bit offset into the record. This will be converted into an + /// Add a bit offset into the record. This will be converted into an /// offset relative to the current record when emitted. void AddOffset(uint64_t BitOffset) { OffsetIndices.push_back(Record->size()); Record->push_back(BitOffset); } - /// \brief Add the given statement or expression to the queue of + /// Add the given statement or expression to the queue of /// statements to emit. /// /// This routine should be used when emitting types and declarations @@ -839,74 +839,74 @@ StmtsToEmit.push_back(S); } - /// \brief Add a definition for the given function to the queue of statements + /// Add a definition for the given function to the queue of statements /// to emit. void AddFunctionDefinition(const FunctionDecl *FD); - /// \brief Emit a source location. + /// Emit a source location. void AddSourceLocation(SourceLocation Loc) { return Writer->AddSourceLocation(Loc, *Record); } - /// \brief Emit a source range. + /// Emit a source range. void AddSourceRange(SourceRange Range) { return Writer->AddSourceRange(Range, *Record); } - /// \brief Emit an integral value. + /// Emit an integral value. void AddAPInt(const llvm::APInt &Value); - /// \brief Emit a signed integral value. + /// Emit a signed integral value. void AddAPSInt(const llvm::APSInt &Value); - /// \brief Emit a floating-point value. + /// Emit a floating-point value. void AddAPFloat(const llvm::APFloat &Value); - /// \brief Emit a reference to an identifier. + /// Emit a reference to an identifier. void AddIdentifierRef(const IdentifierInfo *II) { return Writer->AddIdentifierRef(II, *Record); } - /// \brief Emit a Selector (which is a smart pointer reference). + /// Emit a Selector (which is a smart pointer reference). void AddSelectorRef(Selector S); - /// \brief Emit a CXXTemporary. + /// Emit a CXXTemporary. void AddCXXTemporary(const CXXTemporary *Temp); - /// \brief Emit a C++ base specifier. + /// Emit a C++ base specifier. void AddCXXBaseSpecifier(const CXXBaseSpecifier &Base); - /// \brief Emit a set of C++ base specifiers. + /// Emit a set of C++ base specifiers. void AddCXXBaseSpecifiers(ArrayRef<CXXBaseSpecifier> Bases); - /// \brief Emit a reference to a type. + /// Emit a reference to a type. void AddTypeRef(QualType T) { return Writer->AddTypeRef(T, *Record); } - /// \brief Emits a reference to a declarator info. + /// Emits a reference to a declarator info. void AddTypeSourceInfo(TypeSourceInfo *TInfo); - /// \brief Emits a type with source-location information. + /// Emits a type with source-location information. void AddTypeLoc(TypeLoc TL); - /// \brief Emits a template argument location info. + /// Emits a template argument location info. void AddTemplateArgumentLocInfo(TemplateArgument::ArgKind Kind, const TemplateArgumentLocInfo &Arg); - /// \brief Emits a template argument location. + /// Emits a template argument location. void AddTemplateArgumentLoc(const TemplateArgumentLoc &Arg); - /// \brief Emits an AST template argument list info. + /// Emits an AST template argument list info. void AddASTTemplateArgumentListInfo( const ASTTemplateArgumentListInfo *ASTTemplArgList); - /// \brief Emit a reference to a declaration. + /// Emit a reference to a declaration. void AddDeclRef(const Decl *D) { return Writer->AddDeclRef(D, *Record); } - /// \brief Emit a declaration name. + /// Emit a declaration name. void AddDeclarationName(DeclarationName Name); void AddDeclarationNameLoc(const DeclarationNameLoc &DNLoc, @@ -915,52 +915,52 @@ void AddQualifierInfo(const QualifierInfo &Info); - /// \brief Emit a nested name specifier. + /// Emit a nested name specifier. void AddNestedNameSpecifier(NestedNameSpecifier *NNS); - /// \brief Emit a nested name specifier with source-location information. + /// Emit a nested name specifier with source-location information. void AddNestedNameSpecifierLoc(NestedNameSpecifierLoc NNS); - /// \brief Emit a template name. + /// Emit a template name. void AddTemplateName(TemplateName Name); - /// \brief Emit a template argument. + /// Emit a template argument. void AddTemplateArgument(const TemplateArgument &Arg); - /// \brief Emit a template parameter list. + /// Emit a template parameter list. void AddTemplateParameterList(const TemplateParameterList *TemplateParams); - /// \brief Emit a template argument list. + /// Emit a template argument list. void AddTemplateArgumentList(const TemplateArgumentList *TemplateArgs); - /// \brief Emit a UnresolvedSet structure. + /// Emit a UnresolvedSet structure. void AddUnresolvedSet(const ASTUnresolvedSet &Set); - /// \brief Emit a CXXCtorInitializer array. + /// Emit a CXXCtorInitializer array. void AddCXXCtorInitializers(ArrayRef<CXXCtorInitializer *> CtorInits); void AddCXXDefinitionData(const CXXRecordDecl *D); - /// \brief Emit a string. + /// Emit a string. void AddString(StringRef Str) { return Writer->AddString(Str, *Record); } - /// \brief Emit a path. + /// Emit a path. void AddPath(StringRef Path) { return Writer->AddPath(Path, *Record); } - /// \brief Emit a version tuple. + /// Emit a version tuple. void AddVersionTuple(const VersionTuple &Version) { return Writer->AddVersionTuple(Version, *Record); } - /// \brief Emit a list of attributes. + /// Emit a list of attributes. void AddAttributes(ArrayRef<const Attr*> Attrs); }; -/// \brief AST and semantic-analysis consumer that generates a +/// AST and semantic-analysis consumer that generates a /// precompiled header from the parsed source code. class PCHGenerator : public SemaConsumer { const Preprocessor &PP; Index: cfe/trunk/include/clang/Serialization/ContinuousRangeMap.h =================================================================== --- cfe/trunk/include/clang/Serialization/ContinuousRangeMap.h +++ cfe/trunk/include/clang/Serialization/ContinuousRangeMap.h @@ -24,7 +24,7 @@ namespace clang { -/// \brief A map from continuous integer ranges to some value, with a very +/// A map from continuous integer ranges to some value, with a very /// specialized interface. /// /// CRM maps from integer ranges to values. The ranges are continuous, i.e. @@ -107,7 +107,7 @@ reference back() { return Rep.back(); } const_reference back() const { return Rep.back(); } - /// \brief An object that helps properly build a continuous range map + /// An object that helps properly build a continuous range map /// from a set of values. class Builder { ContinuousRangeMap &Self; Index: cfe/trunk/include/clang/Serialization/GlobalModuleIndex.h =================================================================== --- cfe/trunk/include/clang/Serialization/GlobalModuleIndex.h +++ cfe/trunk/include/clang/Serialization/GlobalModuleIndex.h @@ -47,7 +47,7 @@ using llvm::StringRef; using serialization::ModuleFile; -/// \brief A global index for a set of module files, providing information about +/// A global index for a set of module files, providing information about /// the identifiers within those module files. /// /// The global index is an aid for name lookup into modules, offering a central @@ -59,64 +59,64 @@ /// imported, and can be queried to determine which modules the current /// translation could or should load to fix a problem. class GlobalModuleIndex { - /// \brief Buffer containing the index file, which is lazily accessed so long + /// Buffer containing the index file, which is lazily accessed so long /// as the global module index is live. std::unique_ptr<llvm::MemoryBuffer> Buffer; - /// \brief The hash table. + /// The hash table. /// /// This pointer actually points to a IdentifierIndexTable object, /// but that type is only accessible within the implementation of /// GlobalModuleIndex. void *IdentifierIndex; - /// \brief Information about a given module file. + /// Information about a given module file. struct ModuleInfo { ModuleInfo() : File(), Size(), ModTime() { } - /// \brief The module file, once it has been resolved. + /// The module file, once it has been resolved. ModuleFile *File; - /// \brief The module file name. + /// The module file name. std::string FileName; - /// \brief Size of the module file at the time the global index was built. + /// Size of the module file at the time the global index was built. off_t Size; - /// \brief Modification time of the module file at the time the global + /// Modification time of the module file at the time the global /// index was built. time_t ModTime; - /// \brief The module IDs on which this module directly depends. + /// The module IDs on which this module directly depends. /// FIXME: We don't really need a vector here. llvm::SmallVector<unsigned, 4> Dependencies; }; - /// \brief A mapping from module IDs to information about each module. + /// A mapping from module IDs to information about each module. /// /// This vector may have gaps, if module files have been removed or have /// been updated since the index was built. A gap is indicated by an empty /// file name. llvm::SmallVector<ModuleInfo, 16> Modules; - /// \brief Lazily-populated mapping from module files to their + /// Lazily-populated mapping from module files to their /// corresponding index into the \c Modules vector. llvm::DenseMap<ModuleFile *, unsigned> ModulesByFile; - /// \brief The set of modules that have not yet been resolved. + /// The set of modules that have not yet been resolved. /// /// The string is just the name of the module itself, which maps to the /// module ID. llvm::StringMap<unsigned> UnresolvedModules; - /// \brief The number of identifier lookups we performed. + /// The number of identifier lookups we performed. unsigned NumIdentifierLookups; - /// \brief The number of identifier lookup hits, where we recognize the + /// The number of identifier lookup hits, where we recognize the /// identifier. unsigned NumIdentifierLookupHits; - /// \brief Internal constructor. Use \c readIndex() to read an index. + /// Internal constructor. Use \c readIndex() to read an index. explicit GlobalModuleIndex(std::unique_ptr<llvm::MemoryBuffer> Buffer, llvm::BitstreamCursor Cursor); @@ -126,20 +126,20 @@ public: ~GlobalModuleIndex(); - /// \brief An error code returned when trying to read an index. + /// An error code returned when trying to read an index. enum ErrorCode { - /// \brief No error occurred. + /// No error occurred. EC_None, - /// \brief No index was found. + /// No index was found. EC_NotFound, - /// \brief Some other process is currently building the index; it is not + /// Some other process is currently building the index; it is not /// available yet. EC_Building, - /// \brief There was an unspecified I/O error reading or writing the index. + /// There was an unspecified I/O error reading or writing the index. EC_IOError }; - /// \brief Read a global index file for the given directory. + /// Read a global index file for the given directory. /// /// \param Path The path to the specific module cache where the module files /// for the intended configuration reside. @@ -149,26 +149,26 @@ static std::pair<GlobalModuleIndex *, ErrorCode> readIndex(StringRef Path); - /// \brief Returns an iterator for identifiers stored in the index table. + /// Returns an iterator for identifiers stored in the index table. /// /// The caller accepts ownership of the returned object. IdentifierIterator *createIdentifierIterator() const; - /// \brief Retrieve the set of modules that have up-to-date indexes. + /// Retrieve the set of modules that have up-to-date indexes. /// /// \param ModuleFiles Will be populated with the set of module files that /// have been indexed. void getKnownModules(SmallVectorImpl<ModuleFile *> &ModuleFiles); - /// \brief Retrieve the set of module files on which the given module file + /// Retrieve the set of module files on which the given module file /// directly depends. void getModuleDependencies(ModuleFile *File, SmallVectorImpl<ModuleFile *> &Dependencies); - /// \brief A set of module files in which we found a result. + /// A set of module files in which we found a result. typedef llvm::SmallPtrSet<ModuleFile *, 4> HitSet; - /// \brief Look for all of the module files with information about the given + /// Look for all of the module files with information about the given /// identifier, e.g., a global function, variable, or type with that name. /// /// \param Name The identifier to look for. @@ -179,19 +179,19 @@ /// \returns true if the identifier is known to the index, false otherwise. bool lookupIdentifier(StringRef Name, HitSet &Hits); - /// \brief Note that the given module file has been loaded. + /// Note that the given module file has been loaded. /// /// \returns false if the global module index has information about this /// module file, and true otherwise. bool loadedModuleFile(ModuleFile *File); - /// \brief Print statistics to standard error. + /// Print statistics to standard error. void printStats(); - /// \brief Print debugging view to standard error. + /// Print debugging view to standard error. void dump(); - /// \brief Write a global index into the given + /// Write a global index into the given /// /// \param FileMgr The file manager to use to load module files. /// \param PCHContainerRdr - The PCHContainerOperations to use for loading and Index: cfe/trunk/include/clang/Serialization/Module.h =================================================================== --- cfe/trunk/include/clang/Serialization/Module.h +++ cfe/trunk/include/clang/Serialization/Module.h @@ -39,7 +39,7 @@ namespace serialization { -/// \brief Specifies the kind of module that has been loaded. +/// Specifies the kind of module that has been loaded. enum ModuleKind { /// File is an implicitly-loaded module. MK_ImplicitModule, @@ -60,7 +60,7 @@ MK_PrebuiltModule }; -/// \brief The input file that has been loaded from this AST file, along with +/// The input file that has been loaded from this AST file, along with /// bools indicating whether this was an overridden buffer or if it was /// out-of-date or not-found. class InputFile { @@ -98,7 +98,7 @@ bool isNotFound() const { return Val.getInt() == NotFound; } }; -/// \brief Information about a module that has been loaded by the ASTReader. +/// Information about a module that has been loaded by the ASTReader. /// /// Each instance of the Module class corresponds to a single AST file, which /// may be a precompiled header, precompiled preamble, a module, or an AST file @@ -113,81 +113,81 @@ // === General information === - /// \brief The index of this module in the list of modules. + /// The index of this module in the list of modules. unsigned Index = 0; - /// \brief The type of this module. + /// The type of this module. ModuleKind Kind; - /// \brief The file name of the module file. + /// The file name of the module file. std::string FileName; - /// \brief The name of the module. + /// The name of the module. std::string ModuleName; - /// \brief The base directory of the module. + /// The base directory of the module. std::string BaseDirectory; std::string getTimestampFilename() const { return FileName + ".timestamp"; } - /// \brief The original source file name that was used to build the + /// The original source file name that was used to build the /// primary AST file, which may have been modified for /// relocatable-pch support. std::string OriginalSourceFileName; - /// \brief The actual original source file name that was used to + /// The actual original source file name that was used to /// build this AST file. std::string ActualOriginalSourceFileName; - /// \brief The file ID for the original source file that was used to + /// The file ID for the original source file that was used to /// build this AST file. FileID OriginalSourceFileID; - /// \brief The directory that the PCH was originally created in. Used to + /// The directory that the PCH was originally created in. Used to /// allow resolving headers even after headers+PCH was moved to a new path. std::string OriginalDir; std::string ModuleMapPath; - /// \brief Whether this precompiled header is a relocatable PCH file. + /// Whether this precompiled header is a relocatable PCH file. bool RelocatablePCH = false; - /// \brief Whether timestamps are included in this module file. + /// Whether timestamps are included in this module file. bool HasTimestamps = false; - /// \brief The file entry for the module file. + /// The file entry for the module file. const FileEntry *File = nullptr; /// The signature of the module file, which may be used instead of the size /// and modification time to identify this particular file. ASTFileSignature Signature; - /// \brief Whether this module has been directly imported by the + /// Whether this module has been directly imported by the /// user. bool DirectlyImported = false; - /// \brief The generation of which this module file is a part. + /// The generation of which this module file is a part. unsigned Generation; /// The memory buffer that stores the data associated with /// this AST file, owned by the PCMCache in the ModuleManager. llvm::MemoryBuffer *Buffer; - /// \brief The size of this file, in bits. + /// The size of this file, in bits. uint64_t SizeInBits = 0; - /// \brief The global bit offset (or base) of this module + /// The global bit offset (or base) of this module uint64_t GlobalBitOffset = 0; - /// \brief The serialized bitstream data for this file. + /// The serialized bitstream data for this file. StringRef Data; - /// \brief The main bitstream cursor for the main block. + /// The main bitstream cursor for the main block. llvm::BitstreamCursor Stream; - /// \brief The source location where the module was explicitly or implicitly + /// The source location where the module was explicitly or implicitly /// imported in the local translation unit. /// /// If module A depends on and imports module B, both modules will have the @@ -198,10 +198,10 @@ /// made visible, just when the first submodule of that module was imported. SourceLocation DirectImportLoc; - /// \brief The source location where this module was first imported. + /// The source location where this module was first imported. SourceLocation ImportLoc; - /// \brief The first source location in this module. + /// The first source location in this module. SourceLocation FirstLoc; /// The list of extension readers that are attached to this module @@ -214,20 +214,20 @@ // === Input Files === - /// \brief The cursor to the start of the input-files block. + /// The cursor to the start of the input-files block. llvm::BitstreamCursor InputFilesCursor; - /// \brief Offsets for all of the input file entries in the AST file. + /// Offsets for all of the input file entries in the AST file. const llvm::support::unaligned_uint64_t *InputFileOffsets = nullptr; - /// \brief The input files that have been loaded from this AST file. + /// The input files that have been loaded from this AST file. std::vector<InputFile> InputFilesLoaded; // All user input files reside at the index range [0, NumUserInputFiles), and // system input files reside at [NumUserInputFiles, InputFilesLoaded.size()). unsigned NumUserInputFiles = 0; - /// \brief If non-zero, specifies the time when we last validated input + /// If non-zero, specifies the time when we last validated input /// files. Zero means we never validated them. /// /// The time is specified in seconds since the start of the Epoch. @@ -235,105 +235,105 @@ // === Source Locations === - /// \brief Cursor used to read source location entries. + /// Cursor used to read source location entries. llvm::BitstreamCursor SLocEntryCursor; - /// \brief The number of source location entries in this AST file. + /// The number of source location entries in this AST file. unsigned LocalNumSLocEntries = 0; - /// \brief The base ID in the source manager's view of this module. + /// The base ID in the source manager's view of this module. int SLocEntryBaseID = 0; - /// \brief The base offset in the source manager's view of this module. + /// The base offset in the source manager's view of this module. unsigned SLocEntryBaseOffset = 0; - /// \brief Offsets for all of the source location entries in the + /// Offsets for all of the source location entries in the /// AST file. const uint32_t *SLocEntryOffsets = nullptr; - /// \brief SLocEntries that we're going to preload. + /// SLocEntries that we're going to preload. SmallVector<uint64_t, 4> PreloadSLocEntries; - /// \brief Remapping table for source locations in this module. + /// Remapping table for source locations in this module. ContinuousRangeMap<uint32_t, int, 2> SLocRemap; // === Identifiers === - /// \brief The number of identifiers in this AST file. + /// The number of identifiers in this AST file. unsigned LocalNumIdentifiers = 0; - /// \brief Offsets into the identifier table data. + /// Offsets into the identifier table data. /// /// This array is indexed by the identifier ID (-1), and provides /// the offset into IdentifierTableData where the string data is /// stored. const uint32_t *IdentifierOffsets = nullptr; - /// \brief Base identifier ID for identifiers local to this module. + /// Base identifier ID for identifiers local to this module. serialization::IdentID BaseIdentifierID = 0; - /// \brief Remapping table for identifier IDs in this module. + /// Remapping table for identifier IDs in this module. ContinuousRangeMap<uint32_t, int, 2> IdentifierRemap; - /// \brief Actual data for the on-disk hash table of identifiers. + /// Actual data for the on-disk hash table of identifiers. /// /// This pointer points into a memory buffer, where the on-disk hash /// table for identifiers actually lives. const char *IdentifierTableData = nullptr; - /// \brief A pointer to an on-disk hash table of opaque type + /// A pointer to an on-disk hash table of opaque type /// IdentifierHashTable. void *IdentifierLookupTable = nullptr; - /// \brief Offsets of identifiers that we're going to preload within + /// Offsets of identifiers that we're going to preload within /// IdentifierTableData. std::vector<unsigned> PreloadIdentifierOffsets; // === Macros === - /// \brief The cursor to the start of the preprocessor block, which stores + /// The cursor to the start of the preprocessor block, which stores /// all of the macro definitions. llvm::BitstreamCursor MacroCursor; - /// \brief The number of macros in this AST file. + /// The number of macros in this AST file. unsigned LocalNumMacros = 0; - /// \brief Offsets of macros in the preprocessor block. + /// Offsets of macros in the preprocessor block. /// /// This array is indexed by the macro ID (-1), and provides /// the offset into the preprocessor block where macro definitions are /// stored. const uint32_t *MacroOffsets = nullptr; - /// \brief Base macro ID for macros local to this module. + /// Base macro ID for macros local to this module. serialization::MacroID BaseMacroID = 0; - /// \brief Remapping table for macro IDs in this module. + /// Remapping table for macro IDs in this module. ContinuousRangeMap<uint32_t, int, 2> MacroRemap; - /// \brief The offset of the start of the set of defined macros. + /// The offset of the start of the set of defined macros. uint64_t MacroStartOffset = 0; // === Detailed PreprocessingRecord === - /// \brief The cursor to the start of the (optional) detailed preprocessing + /// The cursor to the start of the (optional) detailed preprocessing /// record block. llvm::BitstreamCursor PreprocessorDetailCursor; - /// \brief The offset of the start of the preprocessor detail cursor. + /// The offset of the start of the preprocessor detail cursor. uint64_t PreprocessorDetailStartOffset = 0; - /// \brief Base preprocessed entity ID for preprocessed entities local to + /// Base preprocessed entity ID for preprocessed entities local to /// this module. serialization::PreprocessedEntityID BasePreprocessedEntityID = 0; - /// \brief Remapping table for preprocessed entity IDs in this module. + /// Remapping table for preprocessed entity IDs in this module. ContinuousRangeMap<uint32_t, int, 2> PreprocessedEntityRemap; const PPEntityOffset *PreprocessedEntityOffsets = nullptr; unsigned NumPreprocessedEntities = 0; - /// \brief Base ID for preprocessed skipped ranges local to this module. + /// Base ID for preprocessed skipped ranges local to this module. unsigned BasePreprocessedSkippedRangeID = 0; const PPSkippedRange *PreprocessedSkippedRangeOffsets = nullptr; @@ -341,54 +341,54 @@ // === Header search information === - /// \brief The number of local HeaderFileInfo structures. + /// The number of local HeaderFileInfo structures. unsigned LocalNumHeaderFileInfos = 0; - /// \brief Actual data for the on-disk hash table of header file + /// Actual data for the on-disk hash table of header file /// information. /// /// This pointer points into a memory buffer, where the on-disk hash /// table for header file information actually lives. const char *HeaderFileInfoTableData = nullptr; - /// \brief The on-disk hash table that contains information about each of + /// The on-disk hash table that contains information about each of /// the header files. void *HeaderFileInfoTable = nullptr; // === Submodule information === - /// \brief The number of submodules in this module. + /// The number of submodules in this module. unsigned LocalNumSubmodules = 0; - /// \brief Base submodule ID for submodules local to this module. + /// Base submodule ID for submodules local to this module. serialization::SubmoduleID BaseSubmoduleID = 0; - /// \brief Remapping table for submodule IDs in this module. + /// Remapping table for submodule IDs in this module. ContinuousRangeMap<uint32_t, int, 2> SubmoduleRemap; // === Selectors === - /// \brief The number of selectors new to this file. + /// The number of selectors new to this file. /// /// This is the number of entries in SelectorOffsets. unsigned LocalNumSelectors = 0; - /// \brief Offsets into the selector lookup table's data array + /// Offsets into the selector lookup table's data array /// where each selector resides. const uint32_t *SelectorOffsets = nullptr; - /// \brief Base selector ID for selectors local to this module. + /// Base selector ID for selectors local to this module. serialization::SelectorID BaseSelectorID = 0; - /// \brief Remapping table for selector IDs in this module. + /// Remapping table for selector IDs in this module. ContinuousRangeMap<uint32_t, int, 2> SelectorRemap; - /// \brief A pointer to the character data that comprises the selector table + /// A pointer to the character data that comprises the selector table /// /// The SelectorOffsets table refers into this memory. const unsigned char *SelectorLookupTableData = nullptr; - /// \brief A pointer to an on-disk hash table of opaque type + /// A pointer to an on-disk hash table of opaque type /// ASTSelectorLookupTable. /// /// This hash table provides the IDs of all selectors, and the associated @@ -402,20 +402,20 @@ /// jump around with these in context. llvm::BitstreamCursor DeclsCursor; - /// \brief The number of declarations in this AST file. + /// The number of declarations in this AST file. unsigned LocalNumDecls = 0; - /// \brief Offset of each declaration within the bitstream, indexed + /// Offset of each declaration within the bitstream, indexed /// by the declaration ID (-1). const DeclOffset *DeclOffsets = nullptr; - /// \brief Base declaration ID for declarations local to this module. + /// Base declaration ID for declarations local to this module. serialization::DeclID BaseDeclID = 0; - /// \brief Remapping table for declaration IDs in this module. + /// Remapping table for declaration IDs in this module. ContinuousRangeMap<uint32_t, int, 2> DeclRemap; - /// \brief Mapping from the module files that this module file depends on + /// Mapping from the module files that this module file depends on /// to the base declaration ID for that module as it is understood within this /// module. /// @@ -424,59 +424,59 @@ /// as a local ID (for this module file). llvm::DenseMap<ModuleFile *, serialization::DeclID> GlobalToLocalDeclIDs; - /// \brief Array of file-level DeclIDs sorted by file. + /// Array of file-level DeclIDs sorted by file. const serialization::DeclID *FileSortedDecls = nullptr; unsigned NumFileSortedDecls = 0; - /// \brief Array of category list location information within this + /// Array of category list location information within this /// module file, sorted by the definition ID. const serialization::ObjCCategoriesInfo *ObjCCategoriesMap = nullptr; - /// \brief The number of redeclaration info entries in ObjCCategoriesMap. + /// The number of redeclaration info entries in ObjCCategoriesMap. unsigned LocalNumObjCCategoriesInMap = 0; - /// \brief The Objective-C category lists for categories known to this + /// The Objective-C category lists for categories known to this /// module. SmallVector<uint64_t, 1> ObjCCategories; // === Types === - /// \brief The number of types in this AST file. + /// The number of types in this AST file. unsigned LocalNumTypes = 0; - /// \brief Offset of each type within the bitstream, indexed by the + /// Offset of each type within the bitstream, indexed by the /// type ID, or the representation of a Type*. const uint32_t *TypeOffsets = nullptr; - /// \brief Base type ID for types local to this module as represented in + /// Base type ID for types local to this module as represented in /// the global type ID space. serialization::TypeID BaseTypeIndex = 0; - /// \brief Remapping table for type IDs in this module. + /// Remapping table for type IDs in this module. ContinuousRangeMap<uint32_t, int, 2> TypeRemap; // === Miscellaneous === - /// \brief Diagnostic IDs and their mappings that the user changed. + /// Diagnostic IDs and their mappings that the user changed. SmallVector<uint64_t, 8> PragmaDiagMappings; - /// \brief List of modules which depend on this module + /// List of modules which depend on this module llvm::SetVector<ModuleFile *> ImportedBy; - /// \brief List of modules which this module depends on + /// List of modules which this module depends on llvm::SetVector<ModuleFile *> Imports; - /// \brief Determine whether this module was directly imported at + /// Determine whether this module was directly imported at /// any point during translation. bool isDirectlyImported() const { return DirectlyImported; } - /// \brief Is this a module file for a module (rather than a PCH or similar). + /// Is this a module file for a module (rather than a PCH or similar). bool isModule() const { return Kind == MK_ImplicitModule || Kind == MK_ExplicitModule || Kind == MK_PrebuiltModule; } - /// \brief Dump debugging output for this module. + /// Dump debugging output for this module. void dump(); }; Index: cfe/trunk/include/clang/Serialization/ModuleManager.h =================================================================== --- cfe/trunk/include/clang/Serialization/ModuleManager.h +++ cfe/trunk/include/clang/Serialization/ModuleManager.h @@ -45,45 +45,45 @@ namespace serialization { -/// \brief Manages the set of modules loaded by an AST reader. +/// Manages the set of modules loaded by an AST reader. class ModuleManager { - /// \brief The chain of AST files, in the order in which we started to load + /// The chain of AST files, in the order in which we started to load /// them (this order isn't really useful for anything). SmallVector<std::unique_ptr<ModuleFile>, 2> Chain; - /// \brief The chain of non-module PCH files. The first entry is the one named + /// The chain of non-module PCH files. The first entry is the one named /// by the user, the last one is the one that doesn't depend on anything /// further. SmallVector<ModuleFile *, 2> PCHChain; - // \brief The roots of the dependency DAG of AST files. This is used + // The roots of the dependency DAG of AST files. This is used // to implement short-circuiting logic when running DFS over the dependencies. SmallVector<ModuleFile *, 2> Roots; - /// \brief All loaded modules, indexed by name. + /// All loaded modules, indexed by name. llvm::DenseMap<const FileEntry *, ModuleFile *> Modules; - /// \brief FileManager that handles translating between filenames and + /// FileManager that handles translating between filenames and /// FileEntry *. FileManager &FileMgr; /// Cache of PCM files. IntrusiveRefCntPtr<MemoryBufferCache> PCMCache; - /// \brief Knows how to unwrap module containers. + /// Knows how to unwrap module containers. const PCHContainerReader &PCHContainerRdr; - /// \brief Preprocessor's HeaderSearchInfo containing the module map. + /// Preprocessor's HeaderSearchInfo containing the module map. const HeaderSearch &HeaderSearchInfo; - /// \brief A lookup of in-memory (virtual file) buffers + /// A lookup of in-memory (virtual file) buffers llvm::DenseMap<const FileEntry *, std::unique_ptr<llvm::MemoryBuffer>> InMemoryBuffers; - /// \brief The visitation order. + /// The visitation order. SmallVector<ModuleFile *, 4> VisitOrder; - /// \brief The list of module files that both we and the global module index + /// The list of module files that both we and the global module index /// know about. /// /// Either the global index or the module manager may have modules that the @@ -93,13 +93,13 @@ /// known to the global index. SmallVector<ModuleFile *, 4> ModulesInCommonWithGlobalIndex; - /// \brief The global module index, if one is attached. + /// The global module index, if one is attached. /// /// The global module index will actually be owned by the ASTReader; this is /// just an non-owning pointer. GlobalModuleIndex *GlobalIndex = nullptr; - /// \brief State used by the "visit" operation to avoid malloc traffic in + /// State used by the "visit" operation to avoid malloc traffic in /// calls to visit(). struct VisitState { explicit VisitState(unsigned N) : VisitNumber(N, 0) { @@ -110,22 +110,22 @@ delete NextState; } - /// \brief The stack used when marking the imports of a particular module + /// The stack used when marking the imports of a particular module /// as not-to-be-visited. SmallVector<ModuleFile *, 4> Stack; - /// \brief The visit number of each module file, which indicates when + /// The visit number of each module file, which indicates when /// this module file was last visited. SmallVector<unsigned, 4> VisitNumber; - /// \brief The next visit number to use to mark visited module files. + /// The next visit number to use to mark visited module files. unsigned NextVisitNumber = 1; - /// \brief The next visit state. + /// The next visit state. VisitState *NextState = nullptr; }; - /// \brief The first visit() state in the chain. + /// The first visit() state in the chain. VisitState *FirstVisitState = nullptr; VisitState *allocateVisitState(); @@ -145,74 +145,74 @@ const HeaderSearch &HeaderSearchInfo); ~ModuleManager(); - /// \brief Forward iterator to traverse all loaded modules. + /// Forward iterator to traverse all loaded modules. ModuleIterator begin() { return Chain.begin(); } - /// \brief Forward iterator end-point to traverse all loaded modules + /// Forward iterator end-point to traverse all loaded modules ModuleIterator end() { return Chain.end(); } - /// \brief Const forward iterator to traverse all loaded modules. + /// Const forward iterator to traverse all loaded modules. ModuleConstIterator begin() const { return Chain.begin(); } - /// \brief Const forward iterator end-point to traverse all loaded modules + /// Const forward iterator end-point to traverse all loaded modules ModuleConstIterator end() const { return Chain.end(); } - /// \brief Reverse iterator to traverse all loaded modules. + /// Reverse iterator to traverse all loaded modules. ModuleReverseIterator rbegin() { return Chain.rbegin(); } - /// \brief Reverse iterator end-point to traverse all loaded modules. + /// Reverse iterator end-point to traverse all loaded modules. ModuleReverseIterator rend() { return Chain.rend(); } - /// \brief A range covering the PCH and preamble module files loaded. + /// A range covering the PCH and preamble module files loaded. llvm::iterator_range<SmallVectorImpl<ModuleFile *>::const_iterator> pch_modules() const { return llvm::make_range(PCHChain.begin(), PCHChain.end()); } - /// \brief Returns the primary module associated with the manager, that is, + /// Returns the primary module associated with the manager, that is, /// the first module loaded ModuleFile &getPrimaryModule() { return *Chain[0]; } - /// \brief Returns the primary module associated with the manager, that is, + /// Returns the primary module associated with the manager, that is, /// the first module loaded. ModuleFile &getPrimaryModule() const { return *Chain[0]; } - /// \brief Returns the module associated with the given index + /// Returns the module associated with the given index ModuleFile &operator[](unsigned Index) const { return *Chain[Index]; } - /// \brief Returns the module associated with the given file name. + /// Returns the module associated with the given file name. ModuleFile *lookupByFileName(StringRef FileName) const; - /// \brief Returns the module associated with the given module name. + /// Returns the module associated with the given module name. ModuleFile *lookupByModuleName(StringRef ModName) const; - /// \brief Returns the module associated with the given module file. + /// Returns the module associated with the given module file. ModuleFile *lookup(const FileEntry *File) const; - /// \brief Returns the in-memory (virtual file) buffer with the given name + /// Returns the in-memory (virtual file) buffer with the given name std::unique_ptr<llvm::MemoryBuffer> lookupBuffer(StringRef Name); - /// \brief Number of modules loaded + /// Number of modules loaded unsigned size() const { return Chain.size(); } - /// \brief The result of attempting to add a new module. + /// The result of attempting to add a new module. enum AddModuleResult { - /// \brief The module file had already been loaded. + /// The module file had already been loaded. AlreadyLoaded, - /// \brief The module file was just loaded in response to this call. + /// The module file was just loaded in response to this call. NewlyLoaded, - /// \brief The module file is missing. + /// The module file is missing. Missing, - /// \brief The module file is out-of-date. + /// The module file is out-of-date. OutOfDate }; using ASTFileSignatureReader = ASTFileSignature (*)(StringRef); - /// \brief Attempts to create a new module and add it to the list of known + /// Attempts to create a new module and add it to the list of known /// modules. /// /// \param FileName The file name of the module to be loaded. @@ -255,23 +255,23 @@ ModuleFile *&Module, std::string &ErrorStr); - /// \brief Remove the modules starting from First (to the end). + /// Remove the modules starting from First (to the end). void removeModules(ModuleIterator First, llvm::SmallPtrSetImpl<ModuleFile *> &LoadedSuccessfully, ModuleMap *modMap); - /// \brief Add an in-memory buffer the list of known buffers + /// Add an in-memory buffer the list of known buffers void addInMemoryBuffer(StringRef FileName, std::unique_ptr<llvm::MemoryBuffer> Buffer); - /// \brief Set the global module index. + /// Set the global module index. void setGlobalIndex(GlobalModuleIndex *Index); - /// \brief Notification from the AST reader that the given module file + /// Notification from the AST reader that the given module file /// has been "accepted", and will not (can not) be unloaded. void moduleFileAccepted(ModuleFile *MF); - /// \brief Visit each of the modules. + /// Visit each of the modules. /// /// This routine visits each of the modules, starting with the /// "root" modules that no other loaded modules depend on, and @@ -293,7 +293,7 @@ void visit(llvm::function_ref<bool(ModuleFile &M)> Visitor, llvm::SmallPtrSetImpl<ModuleFile *> *ModuleFilesHit = nullptr); - /// \brief Attempt to resolve the given module file name to a file entry. + /// Attempt to resolve the given module file name to a file entry. /// /// \param FileName The name of the module file. /// @@ -315,7 +315,7 @@ time_t ExpectedModTime, const FileEntry *&File); - /// \brief View the graphviz representation of the module graph. + /// View the graphviz representation of the module graph. void viewGraph(); MemoryBufferCache &getPCMCache() const { return *PCMCache; } Index: cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h @@ -76,7 +76,7 @@ NumInliningModes }; -/// \brief Describes the different kinds of C++ member functions which can be +/// Describes the different kinds of C++ member functions which can be /// considered for inlining by the analyzer. /// /// These options are cumulative; enabling one kind of member function will @@ -100,7 +100,7 @@ CIMK_Destructors }; -/// \brief Describes the different modes of inter-procedural analysis. +/// Describes the different modes of inter-procedural analysis. enum IPAKind { IPAK_NotSet = 0, @@ -128,10 +128,10 @@ static std::vector<StringRef> getRegisteredCheckers(bool IncludeExperimental = false); - /// \brief Pair of checker name and enable/disable. + /// Pair of checker name and enable/disable. std::vector<std::pair<std::string, bool>> CheckersControlList; - /// \brief A key-value table of use-specified configuration values. + /// A key-value table of use-specified configuration values. ConfigTable Config; AnalysisStores AnalysisStoreOpt = RegionStoreModel; AnalysisConstraints AnalysisConstraintsOpt = RangeConstraintsModel; @@ -144,10 +144,10 @@ /// generated report. std::string FullCompilerInvocation; - /// \brief The maximum number of times the analyzer visits a block. + /// The maximum number of times the analyzer visits a block. unsigned maxBlockVisitOnPath; - /// \brief Disable all analyzer checks. + /// Disable all analyzer checks. /// /// This flag allows one to disable analyzer checks on the code processed by /// the given analysis consumer. Note, the code will get parsed and the @@ -160,7 +160,7 @@ unsigned AnalyzerDisplayProgress : 1; unsigned AnalyzeNestedBlocks : 1; - /// \brief The flag regulates if we should eagerly assume evaluations of + /// The flag regulates if we should eagerly assume evaluations of /// conditionals, thus, bifurcating the path. /// /// This flag indicates how the engine should handle expressions such as: 'x = @@ -177,15 +177,15 @@ unsigned UnoptimizedCFG : 1; unsigned PrintStats : 1; - /// \brief Do not re-analyze paths leading to exhausted nodes with a different + /// Do not re-analyze paths leading to exhausted nodes with a different /// strategy. We get better code coverage when retry is enabled. unsigned NoRetryExhausted : 1; - /// \brief The inlining stack depth limit. + /// The inlining stack depth limit. // Cap the stack depth at 4 calls (5 stack frames, base + 4 calls). unsigned InlineMaxStackDepth = 5; - /// \brief The mode of function selection used during inlining. + /// The mode of function selection used during inlining. AnalysisInliningMode InliningMode = NoRedundancy; enum class ExplorationStrategyKind { @@ -200,7 +200,7 @@ private: ExplorationStrategyKind ExplorationStrategy = ExplorationStrategyKind::NotSet; - /// \brief Describes the kinds for high-level analyzer mode. + /// Describes the kinds for high-level analyzer mode. enum UserModeKind { UMK_NotSet = 0, @@ -431,14 +431,14 @@ const ento::CheckerBase *C = nullptr, bool SearchInParents = false); - /// \brief Retrieves and sets the UserMode. This is a high-level option, + /// Retrieves and sets the UserMode. This is a high-level option, /// which is used to set other low-level options. It is not accessible /// outside of AnalyzerOptions. UserModeKind getUserMode(); ExplorationStrategyKind getExplorationStrategy(); - /// \brief Returns the inter-procedural analysis mode. + /// Returns the inter-procedural analysis mode. IPAKind getIPAMode(); /// Returns the option controlling which C++ member functions will be Index: cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h @@ -173,7 +173,7 @@ BugReport(BugType &bt, StringRef desc, PathDiagnosticLocation l) : BT(bt), Description(desc), Location(l) {} - /// \brief Create a BugReport with a custom uniqueing location. + /// Create a BugReport with a custom uniqueing location. /// /// The reports that have the same report location, description, bug type, and /// ranges are uniqued - only one of the equivalent reports will be presented @@ -190,7 +190,7 @@ const BugType& getBugType() const { return BT; } BugType& getBugType() { return BT; } - /// \brief True when the report has an execution path associated with it. + /// True when the report has an execution path associated with it. /// /// A report is said to be path-sensitive if it was thrown against a /// particular exploded node in the path-sensitive analysis graph. @@ -297,7 +297,7 @@ return Notes; } - /// \brief This allows for addition of meta data to the diagnostic. + /// This allows for addition of meta data to the diagnostic. /// /// Currently, only the HTMLDiagnosticClient knows how to display it. void addExtraText(StringRef S) { @@ -308,26 +308,26 @@ return ExtraText; } - /// \brief Return the "definitive" location of the reported bug. + /// Return the "definitive" location of the reported bug. /// /// While a bug can span an entire path, usually there is a specific /// location that can be used to identify where the key issue occurred. /// This location is used by clients rendering diagnostics. virtual PathDiagnosticLocation getLocation(const SourceManager &SM) const; - /// \brief Get the location on which the report should be uniqued. + /// Get the location on which the report should be uniqued. PathDiagnosticLocation getUniqueingLocation() const { return UniqueingLocation; } - /// \brief Get the declaration containing the uniqueing location. + /// Get the declaration containing the uniqueing location. const Decl *getUniqueingDecl() const { return UniqueingDecl; } const Stmt *getStmt() const; - /// \brief Add a range to a bug report. + /// Add a range to a bug report. /// /// Ranges are used to highlight regions of interest in the source code. /// They should be at the same source code line as the BugReport location. @@ -340,10 +340,10 @@ Ranges.push_back(R); } - /// \brief Get the SourceRanges associated with the report. + /// Get the SourceRanges associated with the report. virtual llvm::iterator_range<ranges_iterator> getRanges(); - /// \brief Add custom or predefined bug report visitors to this report. + /// Add custom or predefined bug report visitors to this report. /// /// The visitors should be used when the default trace is not sufficient. /// For example, they allow constructing a more elaborate trace. @@ -450,7 +450,7 @@ : BugTypes(F.getEmptySet()), kind(BaseBRKind), D(d) {} virtual ~BugReporter(); - /// \brief Generate and flush diagnostics for all bug reports. + /// Generate and flush diagnostics for all bug reports. void FlushReports(); Kind getKind() const { return kind; } @@ -463,12 +463,12 @@ return D.getPathDiagnosticConsumers(); } - /// \brief Iterator over the set of BugTypes tracked by the BugReporter. + /// Iterator over the set of BugTypes tracked by the BugReporter. using iterator = BugTypesTy::iterator; iterator begin() { return BugTypes.begin(); } iterator end() { return BugTypes.end(); } - /// \brief Iterator over the set of BugReports tracked by the BugReporter. + /// Iterator over the set of BugReports tracked by the BugReporter. using EQClasses_iterator = llvm::FoldingSet<BugReportEquivClass>::iterator; EQClasses_iterator EQClasses_begin() { return EQClasses.begin(); } EQClasses_iterator EQClasses_end() { return EQClasses.end(); } @@ -487,7 +487,7 @@ void Register(BugType *BT); - /// \brief Add the given report to the set of reports tracked by BugReporter. + /// Add the given report to the set of reports tracked by BugReporter. /// /// The reports are usually generated by the checkers. Further, they are /// folded based on the profile value, which is done to coalesce similar @@ -507,7 +507,7 @@ private: llvm::StringMap<BugType *> StrBugTypes; - /// \brief Returns a BugType that is associated with the given name and + /// Returns a BugType that is associated with the given name and /// category. BugType *getBugTypeForName(CheckName CheckName, StringRef name, StringRef category); Index: cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h @@ -38,7 +38,7 @@ class MemRegion; class PathDiagnosticPiece; -/// \brief BugReporterVisitors are used to add custom diagnostics along a path. +/// BugReporterVisitors are used to add custom diagnostics along a path. /// /// Custom visitors should subclass the BugReporterVisitorImpl class for a /// default implementation of the clone() method. @@ -52,7 +52,7 @@ BugReporterVisitor(BugReporterVisitor &&) {} virtual ~BugReporterVisitor(); - /// \brief Returns a copy of this BugReporter. + /// Returns a copy of this BugReporter. /// /// Custom BugReporterVisitors should not override this method directly. /// Instead, they should inherit from BugReporterVisitorImpl and provide @@ -63,7 +63,7 @@ /// will have to provide your own implementation.) virtual std::unique_ptr<BugReporterVisitor> clone() const = 0; - /// \brief Return a diagnostic piece which should be associated with the + /// Return a diagnostic piece which should be associated with the /// given node. /// /// The last parameter can be used to register a new visitor with the given @@ -72,7 +72,7 @@ VisitNode(const ExplodedNode *Succ, const ExplodedNode *Pred, BugReporterContext &BRC, BugReport &BR) = 0; - /// \brief Provide custom definition for the final diagnostic piece on the + /// Provide custom definition for the final diagnostic piece on the /// path - the piece, which is displayed before the path is expanded. /// /// If returns NULL the default implementation will be used. @@ -83,7 +83,7 @@ virtual void Profile(llvm::FoldingSetNodeID &ID) const = 0; - /// \brief Generates the default final diagnostic piece. + /// Generates the default final diagnostic piece. static std::unique_ptr<PathDiagnosticPiece> getDefaultEndPath(BugReporterContext &BRC, const ExplodedNode *N, BugReport &BR); @@ -165,7 +165,7 @@ }; /// \class NilReceiverBRVisitor -/// \brief Prints path notes when a message is sent to a nil receiver. +/// Prints path notes when a message is sent to a nil receiver. class NilReceiverBRVisitor final : public BugReporterVisitorImpl<NilReceiverBRVisitor> { public: @@ -245,7 +245,7 @@ static bool isPieceMessageGeneric(const PathDiagnosticPiece *Piece); }; -/// \brief Suppress reports that might lead to known false positives. +/// Suppress reports that might lead to known false positives. /// /// Currently this suppresses reports based on locations of bugs. class LikelyFalsePositiveSuppressionBRVisitor final @@ -272,7 +272,7 @@ BugReport &BR) override; }; -/// \brief When a region containing undefined value or '0' value is passed +/// When a region containing undefined value or '0' value is passed /// as an argument in a call, marks the call as interesting. /// /// As a result, BugReporter will not prune the path through the function even Index: cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h @@ -72,13 +72,13 @@ using ConsumerFiles = std::vector<std::pair<StringRef, StringRef>>; - /// \brief A vector of <consumer,file> pairs. + /// A vector of <consumer,file> pairs. ConsumerFiles files; - /// \brief A precomputed hash tag used for uniquing PDFileEntry objects. + /// A precomputed hash tag used for uniquing PDFileEntry objects. const llvm::FoldingSetNodeID NodeID; - /// \brief Used for profiling in the FoldingSet. + /// Used for profiling in the FoldingSet. void Profile(llvm::FoldingSetNodeID &ID) { ID = NodeID; } }; @@ -303,11 +303,11 @@ void dump() const; - /// \brief Given an exploded node, retrieve the statement that should be used + /// Given an exploded node, retrieve the statement that should be used /// for the diagnostic location. static const Stmt *getStmt(const ExplodedNode *N); - /// \brief Retrieve the statement corresponding to the successor node. + /// Retrieve the statement corresponding to the successor node. static const Stmt *getNextStmt(const ExplodedNode *N); }; @@ -351,7 +351,7 @@ const Kind kind; const DisplayHint Hint; - /// \brief In the containing bug report, this piece is the last piece from + /// In the containing bug report, this piece is the last piece from /// the main source file. bool LastInMainSourceFile = false; @@ -462,7 +462,7 @@ } }; -/// \brief Interface for classes constructing Stack hints. +/// Interface for classes constructing Stack hints. /// /// If a PathDiagnosticEvent occurs in a different frame than the final /// diagnostic the hints can be used to summarize the effect of the call. @@ -470,11 +470,11 @@ public: virtual ~StackHintGenerator() = 0; - /// \brief Construct the Diagnostic message for the given ExplodedNode. + /// Construct the Diagnostic message for the given ExplodedNode. virtual std::string getMessage(const ExplodedNode *N) = 0; }; -/// \brief Constructs a Stack hint for the given symbol. +/// Constructs a Stack hint for the given symbol. /// /// The class knows how to construct the stack hint message based on /// traversing the CallExpr associated with the call and checking if the given @@ -489,7 +489,7 @@ StackHintGeneratorForSymbol(SymbolRef S, StringRef M) : Sym(S), Msg(M) {} ~StackHintGeneratorForSymbol() override = default; - /// \brief Search the call expression for the symbol Sym and dispatch the + /// Search the call expression for the symbol Sym and dispatch the /// 'getMessageForX()' methods to construct a specific message. std::string getMessage(const ExplodedNode *N) override; @@ -750,13 +750,13 @@ std::string Category; std::deque<std::string> OtherDesc; - /// \brief Loc The location of the path diagnostic report. + /// Loc The location of the path diagnostic report. PathDiagnosticLocation Loc; PathPieces pathImpl; SmallVector<PathPieces *, 3> pathStack; - /// \brief Important bug uniqueing location. + /// Important bug uniqueing location. /// The location info is useful to differentiate between bugs. PathDiagnosticLocation UniqueingLoc; const Decl *UniqueingDecl; @@ -815,7 +815,7 @@ Loc = PathDiagnosticLocation(); } - /// \brief If the last piece of the report point to the header file, resets + /// If the last piece of the report point to the header file, resets /// the location of the report to be the last location in the main source /// file. void resetDiagnosticLocationToMainFile(); @@ -854,12 +854,12 @@ return Loc; } - /// \brief Get the location on which the report should be uniqued. + /// Get the location on which the report should be uniqued. PathDiagnosticLocation getUniqueingLoc() const { return UniqueingLoc; } - /// \brief Get the declaration containing the uniqueing location. + /// Get the declaration containing the uniqueing location. const Decl *getUniqueingDecl() const { return UniqueingDecl; } Index: cfe/trunk/include/clang/StaticAnalyzer/Core/Checker.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/Checker.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/Checker.h @@ -548,7 +548,7 @@ } }; -/// \brief We dereferenced a location that may be null. +/// We dereferenced a location that may be null. struct ImplicitNullDerefEvent { SVal Location; bool IsLoad; @@ -560,7 +560,7 @@ bool IsDirectDereference; }; -/// \brief A helper class which wraps a boolean value set to false by default. +/// A helper class which wraps a boolean value set to false by default. /// /// This class should behave exactly like 'bool' except that it doesn't need to /// be explicitly initialized. Index: cfe/trunk/include/clang/StaticAnalyzer/Core/CheckerManager.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/CheckerManager.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/CheckerManager.h @@ -71,7 +71,7 @@ } }; -/// \brief Describes the different reasons a pointer escapes +/// Describes the different reasons a pointer escapes /// during analysis. enum PointerEscapeKind { /// A pointer escapes due to binding its value to a location @@ -143,7 +143,7 @@ // registerChecker //===----------------------------------------------------------------------===// - /// \brief Used to register checkers. + /// Used to register checkers. /// /// \returns a pointer to the checker object. template <typename CHECKER> @@ -180,11 +180,11 @@ // Functions for running checkers for AST traversing.. //===----------------------------------------------------------------------===// - /// \brief Run checkers handling Decls. + /// Run checkers handling Decls. void runCheckersOnASTDecl(const Decl *D, AnalysisManager& mgr, BugReporter &BR); - /// \brief Run checkers handling Decls containing a Stmt body. + /// Run checkers handling Decls containing a Stmt body. void runCheckersOnASTBody(const Decl *D, AnalysisManager& mgr, BugReporter &BR); @@ -192,7 +192,7 @@ // Functions for running checkers for path-sensitive checking. //===----------------------------------------------------------------------===// - /// \brief Run checkers for pre-visiting Stmts. + /// Run checkers for pre-visiting Stmts. /// /// The notification is performed for every explored CFGElement, which does /// not include the control flow statements such as IfStmt. @@ -205,7 +205,7 @@ runCheckersForStmt(/*isPreVisit=*/true, Dst, Src, S, Eng); } - /// \brief Run checkers for post-visiting Stmts. + /// Run checkers for post-visiting Stmts. /// /// The notification is performed for every explored CFGElement, which does /// not include the control flow statements such as IfStmt. @@ -219,13 +219,13 @@ runCheckersForStmt(/*isPreVisit=*/false, Dst, Src, S, Eng, wasInlined); } - /// \brief Run checkers for visiting Stmts. + /// Run checkers for visiting Stmts. void runCheckersForStmt(bool isPreVisit, ExplodedNodeSet &Dst, const ExplodedNodeSet &Src, const Stmt *S, ExprEngine &Eng, bool wasInlined = false); - /// \brief Run checkers for pre-visiting obj-c messages. + /// Run checkers for pre-visiting obj-c messages. void runCheckersForPreObjCMessage(ExplodedNodeSet &Dst, const ExplodedNodeSet &Src, const ObjCMethodCall &msg, @@ -233,7 +233,7 @@ runCheckersForObjCMessage(ObjCMessageVisitKind::Pre, Dst, Src, msg, Eng); } - /// \brief Run checkers for post-visiting obj-c messages. + /// Run checkers for post-visiting obj-c messages. void runCheckersForPostObjCMessage(ExplodedNodeSet &Dst, const ExplodedNodeSet &Src, const ObjCMethodCall &msg, @@ -243,7 +243,7 @@ wasInlined); } - /// \brief Run checkers for visiting an obj-c message to nil. + /// Run checkers for visiting an obj-c message to nil. void runCheckersForObjCMessageNil(ExplodedNodeSet &Dst, const ExplodedNodeSet &Src, const ObjCMethodCall &msg, @@ -252,20 +252,20 @@ Eng); } - /// \brief Run checkers for visiting obj-c messages. + /// Run checkers for visiting obj-c messages. void runCheckersForObjCMessage(ObjCMessageVisitKind visitKind, ExplodedNodeSet &Dst, const ExplodedNodeSet &Src, const ObjCMethodCall &msg, ExprEngine &Eng, bool wasInlined = false); - /// \brief Run checkers for pre-visiting obj-c messages. + /// Run checkers for pre-visiting obj-c messages. void runCheckersForPreCall(ExplodedNodeSet &Dst, const ExplodedNodeSet &Src, const CallEvent &Call, ExprEngine &Eng) { runCheckersForCallEvent(/*isPreVisit=*/true, Dst, Src, Call, Eng); } - /// \brief Run checkers for post-visiting obj-c messages. + /// Run checkers for post-visiting obj-c messages. void runCheckersForPostCall(ExplodedNodeSet &Dst, const ExplodedNodeSet &Src, const CallEvent &Call, ExprEngine &Eng, bool wasInlined = false) { @@ -273,13 +273,13 @@ wasInlined); } - /// \brief Run checkers for visiting obj-c messages. + /// Run checkers for visiting obj-c messages. void runCheckersForCallEvent(bool isPreVisit, ExplodedNodeSet &Dst, const ExplodedNodeSet &Src, const CallEvent &Call, ExprEngine &Eng, bool wasInlined = false); - /// \brief Run checkers for load/store of a location. + /// Run checkers for load/store of a location. void runCheckersForLocation(ExplodedNodeSet &Dst, const ExplodedNodeSet &Src, SVal location, @@ -288,42 +288,42 @@ const Stmt *BoundEx, ExprEngine &Eng); - /// \brief Run checkers for binding of a value to a location. + /// Run checkers for binding of a value to a location. void runCheckersForBind(ExplodedNodeSet &Dst, const ExplodedNodeSet &Src, SVal location, SVal val, const Stmt *S, ExprEngine &Eng, const ProgramPoint &PP); - /// \brief Run checkers for end of analysis. + /// Run checkers for end of analysis. void runCheckersForEndAnalysis(ExplodedGraph &G, BugReporter &BR, ExprEngine &Eng); - /// \brief Run checkers on beginning of function. + /// Run checkers on beginning of function. void runCheckersForBeginFunction(ExplodedNodeSet &Dst, const BlockEdge &L, ExplodedNode *Pred, ExprEngine &Eng); - /// \brief Run checkers on end of function. + /// Run checkers on end of function. void runCheckersForEndFunction(NodeBuilderContext &BC, ExplodedNodeSet &Dst, ExplodedNode *Pred, ExprEngine &Eng); - /// \brief Run checkers for branch condition. + /// Run checkers for branch condition. void runCheckersForBranchCondition(const Stmt *condition, ExplodedNodeSet &Dst, ExplodedNode *Pred, ExprEngine &Eng); - /// \brief Run checkers between C++ operator new and constructor calls. + /// Run checkers between C++ operator new and constructor calls. void runCheckersForNewAllocator(const CXXNewExpr *NE, SVal Target, ExplodedNodeSet &Dst, ExplodedNode *Pred, ExprEngine &Eng, bool wasInlined = false); - /// \brief Run checkers for live symbols. + /// Run checkers for live symbols. /// /// Allows modifying SymbolReaper object. For example, checkers can explicitly /// register symbols of interest as live. These symbols will not be marked @@ -331,7 +331,7 @@ void runCheckersForLiveSymbols(ProgramStateRef state, SymbolReaper &SymReaper); - /// \brief Run checkers for dead symbols. + /// Run checkers for dead symbols. /// /// Notifies checkers when symbols become dead. For example, this allows /// checkers to aggressively clean up/reduce the checker state and produce @@ -342,7 +342,7 @@ ExprEngine &Eng, ProgramPoint::Kind K); - /// \brief Run checkers for region changes. + /// Run checkers for region changes. /// /// This corresponds to the check::RegionChanges callback. /// \param state The current program state. @@ -361,7 +361,7 @@ const LocationContext *LCtx, const CallEvent *Call); - /// \brief Run checkers when pointers escape. + /// Run checkers when pointers escape. /// /// This notifies the checkers about pointer escape, which occurs whenever /// the analyzer cannot track the symbol any more. For example, as a @@ -383,23 +383,23 @@ PointerEscapeKind Kind, RegionAndSymbolInvalidationTraits *ITraits); - /// \brief Run checkers for handling assumptions on symbolic values. + /// Run checkers for handling assumptions on symbolic values. ProgramStateRef runCheckersForEvalAssume(ProgramStateRef state, SVal Cond, bool Assumption); - /// \brief Run checkers for evaluating a call. + /// Run checkers for evaluating a call. /// /// Warning: Currently, the CallEvent MUST come from a CallExpr! void runCheckersForEvalCall(ExplodedNodeSet &Dst, const ExplodedNodeSet &Src, const CallEvent &CE, ExprEngine &Eng); - /// \brief Run checkers for the entire Translation Unit. + /// Run checkers for the entire Translation Unit. void runCheckersOnEndOfTranslationUnit(const TranslationUnitDecl *TU, AnalysisManager &mgr, BugReporter &BR); - /// \brief Run checkers for debug-printing a ProgramState. + /// Run checkers for debug-printing a ProgramState. /// /// Unlike most other callbacks, any checker can simply implement the virtual /// method CheckerBase::printState if it has custom data to print. Index: cfe/trunk/include/clang/StaticAnalyzer/Core/IssueHash.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/IssueHash.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/IssueHash.h @@ -17,7 +17,7 @@ class FullSourceLoc; class LangOptions; -/// \brief Get an MD5 hash to help identify bugs. +/// Get an MD5 hash to help identify bugs. /// /// This function returns a hash that helps identify bugs within a source file. /// This identification can be utilized to diff diagnostic results on different @@ -41,7 +41,7 @@ llvm::StringRef BugType, const Decl *D, const LangOptions &LangOpts); -/// \brief Get the string representation of issue hash. See GetIssueHash() for +/// Get the string representation of issue hash. See GetIssueHash() for /// more information. std::string GetIssueString(const SourceManager &SM, FullSourceLoc &IssueLoc, llvm::StringRef CheckerName, llvm::StringRef BugType, Index: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h @@ -16,7 +16,7 @@ namespace clang { namespace ento { -/// \brief A record of the "type" of an APSInt, used for conversions. +/// A record of the "type" of an APSInt, used for conversions. class APSIntType { uint32_t BitWidth; bool IsUnsigned; @@ -31,7 +31,7 @@ uint32_t getBitWidth() const { return BitWidth; } bool isUnsigned() const { return IsUnsigned; } - /// \brief Convert a given APSInt, in place, to match this type. + /// Convert a given APSInt, in place, to match this type. /// /// This behaves like a C cast: converting 255u8 (0xFF) to s16 gives /// 255 (0x00FF), and converting -1s8 (0xFF) to u16 gives 65535 (0xFFFF). @@ -93,7 +93,7 @@ return BitWidth == Other.BitWidth && IsUnsigned == Other.IsUnsigned; } - /// \brief Provide an ordering for finding a common conversion type. + /// Provide an ordering for finding a common conversion type. /// /// Unsigned integers are considered to be better conversion types than /// signed integers of the same width. Index: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h @@ -25,7 +25,7 @@ namespace ento { /// \class BlockCounter -/// \brief An abstract data type used to count the number of times a given +/// An abstract data type used to count the number of times a given /// block has been visited along a path analyzed by CoreEngine. class BlockCounter { void *Data; Index: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h @@ -85,7 +85,7 @@ public: const static unsigned NoArgRequirement = std::numeric_limits<unsigned>::max(); - /// \brief Constructs a CallDescription object. + /// Constructs a CallDescription object. /// /// @param FuncName The name of the function that will be matched. /// @@ -95,7 +95,7 @@ CallDescription(StringRef FuncName, unsigned RequiredArgs = NoArgRequirement) : FuncName(FuncName), RequiredArgs(RequiredArgs) {} - /// \brief Get the name of the function that this object matches. + /// Get the name of the function that this object matches. StringRef getFunctionName() const { return FuncName; } }; @@ -118,7 +118,7 @@ }; /// \class RuntimeDefinition -/// \brief Defines the runtime definition of the called function. +/// Defines the runtime definition of the called function. /// /// Encapsulates the information we have about which Decl will be used /// when the call is executed on the given path. When dealing with dynamic @@ -142,7 +142,7 @@ const Decl *getDecl() { return D; } - /// \brief Check if the definition we have is precise. + /// Check if the definition we have is precise. /// If not, it is possible that the call dispatches to another definition at /// execution time. bool mayHaveOtherDefinitions() { return R != nullptr; } @@ -152,7 +152,7 @@ const MemRegion *getDispatchRegion() { return R; } }; -/// \brief Represents an abstract call to a function or method along a +/// Represents an abstract call to a function or method along a /// particular path. /// /// CallEvents are created through the factory methods of CallEventManager. @@ -204,14 +204,14 @@ /// Copies this CallEvent, with vtable intact, into a new block of memory. virtual void cloneTo(void *Dest) const = 0; - /// \brief Get the value of arbitrary expressions at this point in the path. + /// Get the value of arbitrary expressions at this point in the path. SVal getSVal(const Stmt *S) const { return getState()->getSVal(S, getLocationContext()); } using ValueList = SmallVectorImpl<SVal>; - /// \brief Used to specify non-argument regions that will be invalidated as a + /// Used to specify non-argument regions that will be invalidated as a /// result of this call. virtual void getExtraInvalidatedValues(ValueList &Values, RegionAndSymbolInvalidationTraits *ETraits) const {} @@ -220,43 +220,43 @@ CallEvent &operator=(const CallEvent &) = delete; virtual ~CallEvent() = default; - /// \brief Returns the kind of call this is. + /// Returns the kind of call this is. virtual Kind getKind() const = 0; - /// \brief Returns the declaration of the function or method that will be + /// Returns the declaration of the function or method that will be /// called. May be null. virtual const Decl *getDecl() const { return Origin.dyn_cast<const Decl *>(); } - /// \brief The state in which the call is being evaluated. + /// The state in which the call is being evaluated. const ProgramStateRef &getState() const { return State; } - /// \brief The context in which the call is being evaluated. + /// The context in which the call is being evaluated. const LocationContext *getLocationContext() const { return LCtx; } - /// \brief Returns the definition of the function or method that will be + /// Returns the definition of the function or method that will be /// called. virtual RuntimeDefinition getRuntimeDefinition() const = 0; - /// \brief Returns the expression whose value will be the result of this call. + /// Returns the expression whose value will be the result of this call. /// May be null. const Expr *getOriginExpr() const { return Origin.dyn_cast<const Expr *>(); } - /// \brief Returns the number of arguments (explicit and implicit). + /// Returns the number of arguments (explicit and implicit). /// /// Note that this may be greater than the number of parameters in the /// callee's declaration, and that it may include arguments not written in /// the source. virtual unsigned getNumArgs() const = 0; - /// \brief Returns true if the callee is known to be from a system header. + /// Returns true if the callee is known to be from a system header. bool isInSystemHeader() const { const Decl *D = getDecl(); if (!D) @@ -277,51 +277,51 @@ return false; } - /// \brief Returns true if the CallEvent is a call to a function that matches + /// Returns true if the CallEvent is a call to a function that matches /// the CallDescription. /// /// Note that this function is not intended to be used to match Obj-C method /// calls. bool isCalled(const CallDescription &CD) const; - /// \brief Returns a source range for the entire call, suitable for + /// Returns a source range for the entire call, suitable for /// outputting in diagnostics. virtual SourceRange getSourceRange() const { return getOriginExpr()->getSourceRange(); } - /// \brief Returns the value of a given argument at the time of the call. + /// Returns the value of a given argument at the time of the call. virtual SVal getArgSVal(unsigned Index) const; - /// \brief Returns the expression associated with a given argument. + /// Returns the expression associated with a given argument. /// May be null if this expression does not appear in the source. virtual const Expr *getArgExpr(unsigned Index) const { return nullptr; } - /// \brief Returns the source range for errors associated with this argument. + /// Returns the source range for errors associated with this argument. /// /// May be invalid if the argument is not written in the source. virtual SourceRange getArgSourceRange(unsigned Index) const; - /// \brief Returns the result type, adjusted for references. + /// Returns the result type, adjusted for references. QualType getResultType() const; - /// \brief Returns the return value of the call. + /// Returns the return value of the call. /// /// This should only be called if the CallEvent was created using a state in /// which the return value has already been bound to the origin expression. SVal getReturnValue() const; - /// \brief Returns true if the type of any of the non-null arguments satisfies + /// Returns true if the type of any of the non-null arguments satisfies /// the condition. bool hasNonNullArgumentsWithType(bool (*Condition)(QualType)) const; - /// \brief Returns true if any of the arguments appear to represent callbacks. + /// Returns true if any of the arguments appear to represent callbacks. bool hasNonZeroCallbackArg() const; - /// \brief Returns true if any of the arguments is void*. + /// Returns true if any of the arguments is void*. bool hasVoidPointerToNonConstArg() const; - /// \brief Returns true if any of the arguments are known to escape to long- + /// Returns true if any of the arguments are known to escape to long- /// term storage, even if this method will not modify them. // NOTE: The exact semantics of this are still being defined! // We don't really want a list of hardcoded exceptions in the long run, @@ -330,7 +330,7 @@ return hasNonZeroCallbackArg(); } - /// \brief Returns true if the callee is an externally-visible function in the + /// Returns true if the callee is an externally-visible function in the /// top-level namespace, such as \c malloc. /// /// You can use this call to determine that a particular function really is @@ -348,7 +348,7 @@ // precise callbacks. bool isGlobalCFunction(StringRef SpecificName = StringRef()) const; - /// \brief Returns the name of the callee, if its name is a simple identifier. + /// Returns the name of the callee, if its name is a simple identifier. /// /// Note that this will fail for Objective-C methods, blocks, and C++ /// overloaded operators. The former is named by a Selector rather than a @@ -362,11 +362,11 @@ return ND->getIdentifier(); } - /// \brief Returns an appropriate ProgramPoint for this call. + /// Returns an appropriate ProgramPoint for this call. ProgramPoint getProgramPoint(bool IsPreVisit = false, const ProgramPointTag *Tag = nullptr) const; - /// \brief Returns a new state with all argument regions invalidated. + /// Returns a new state with all argument regions invalidated. /// /// This accepts an alternate state in case some processing has already /// occurred. @@ -390,16 +390,16 @@ return cloneWithState<CallEvent>(NewState); } - /// \brief Returns true if this is a statement is a function or method call + /// Returns true if this is a statement is a function or method call /// of some kind. static bool isCallStmt(const Stmt *S); - /// \brief Returns the result type of a function or method declaration. + /// Returns the result type of a function or method declaration. /// /// This will return a null QualType if the result type cannot be determined. static QualType getDeclaredResultType(const Decl *D); - /// \brief Returns true if the given decl is known to be variadic. + /// Returns true if the given decl is known to be variadic. /// /// \p D must not be null. static bool isVariadic(const Decl *D); @@ -439,7 +439,7 @@ void dump() const; }; -/// \brief Represents a call to any sort of function that might have a +/// Represents a call to any sort of function that might have a /// FunctionDecl. class AnyFunctionCall : public CallEvent { protected: @@ -473,7 +473,7 @@ } }; -/// \brief Represents a C function or static C++ member function call. +/// Represents a C function or static C++ member function call. /// /// Example: \c fun() class SimpleFunctionCall : public AnyFunctionCall { @@ -509,7 +509,7 @@ } }; -/// \brief Represents a call to a block. +/// Represents a call to a block. /// /// Example: <tt>^{ /* ... */ }()</tt> class BlockCall : public CallEvent { @@ -537,7 +537,7 @@ return getOriginExpr()->getArg(Index); } - /// \brief Returns the region associated with this instance of the block. + /// Returns the region associated with this instance of the block. /// /// This may be NULL if the block's origin is unknown. const BlockDataRegion *getBlockRegion() const; @@ -557,7 +557,7 @@ return BD->isConversionFromLambda(); } - /// \brief For a block converted from a C++ lambda, returns the block + /// For a block converted from a C++ lambda, returns the block /// VarRegion for the variable holding the captured C++ lambda record. const VarRegion *getRegionStoringCapturedLambda() const { assert(isConversionFromLambda()); @@ -616,7 +616,7 @@ } }; -/// \brief Represents a non-static C++ member function call, no matter how +/// Represents a non-static C++ member function call, no matter how /// it is written. class CXXInstanceCall : public AnyFunctionCall { protected: @@ -632,10 +632,10 @@ RegionAndSymbolInvalidationTraits *ETraits) const override; public: - /// \brief Returns the expression representing the implicit 'this' object. + /// Returns the expression representing the implicit 'this' object. virtual const Expr *getCXXThisExpr() const { return nullptr; } - /// \brief Returns the value of the implicit 'this' object. + /// Returns the value of the implicit 'this' object. virtual SVal getCXXThisVal() const; const FunctionDecl *getDecl() const override; @@ -651,7 +651,7 @@ } }; -/// \brief Represents a non-static C++ member function call. +/// Represents a non-static C++ member function call. /// /// Example: \c obj.fun() class CXXMemberCall : public CXXInstanceCall { @@ -691,7 +691,7 @@ } }; -/// \brief Represents a C++ overloaded operator call where the operator is +/// Represents a C++ overloaded operator call where the operator is /// implemented as a non-static member function. /// /// Example: <tt>iter + 1</tt> @@ -730,7 +730,7 @@ } }; -/// \brief Represents an implicit call to a C++ destructor. +/// Represents an implicit call to a C++ destructor. /// /// This can occur at the end of a scope (for automatic objects), at the end /// of a full-expression (for temporaries), or as part of a delete. @@ -765,7 +765,7 @@ RuntimeDefinition getRuntimeDefinition() const override; - /// \brief Returns the value of the implicit 'this' object. + /// Returns the value of the implicit 'this' object. SVal getCXXThisVal() const override; /// Returns true if this is a call to a base class destructor. @@ -780,7 +780,7 @@ } }; -/// \brief Represents a call to a C++ constructor. +/// Represents a call to a C++ constructor. /// /// Example: \c T(1) class CXXConstructorCall : public AnyFunctionCall { @@ -822,7 +822,7 @@ return getOriginExpr()->getArg(Index); } - /// \brief Returns the value of the implicit 'this' object. + /// Returns the value of the implicit 'this' object. SVal getCXXThisVal() const; void getInitialStackFrameContents(const StackFrameContext *CalleeCtx, @@ -835,7 +835,7 @@ } }; -/// \brief Represents the memory allocation call in a C++ new-expression. +/// Represents the memory allocation call in a C++ new-expression. /// /// This is a call to "operator new". class CXXAllocatorCall : public AnyFunctionCall { @@ -876,7 +876,7 @@ } }; -/// \brief Represents the ways an Objective-C message send can occur. +/// Represents the ways an Objective-C message send can occur. // // Note to maintainers: OCM_Message should always be last, since it does not // need to fit in the Data field's low bits. @@ -886,7 +886,7 @@ OCM_Message }; -/// \brief Represents any expression that calls an Objective-C method. +/// Represents any expression that calls an Objective-C method. /// /// This includes all of the kinds listed in ObjCMessageKind. class ObjCMethodCall : public CallEvent { @@ -943,13 +943,13 @@ SourceRange getSourceRange() const override; - /// \brief Returns the value of the receiver at the time of this call. + /// Returns the value of the receiver at the time of this call. SVal getReceiverSVal() const; - /// \brief Return the value of 'self' if available. + /// Return the value of 'self' if available. SVal getSelfSVal() const; - /// \brief Get the interface for the receiver. + /// Get the interface for the receiver. /// /// This works whether this is an instance message or a class message. /// However, it currently just uses the static type of the receiver. @@ -957,7 +957,7 @@ return getOriginExpr()->getReceiverInterface(); } - /// \brief Checks if the receiver refers to 'self' or 'super'. + /// Checks if the receiver refers to 'self' or 'super'. bool isReceiverSelfOrSuper() const; /// Returns how the message was written in the source (property access, @@ -999,7 +999,7 @@ } }; -/// \brief Manages the lifetime of CallEvent objects. +/// Manages the lifetime of CallEvent objects. /// /// CallEventManager provides a way to create arbitrary CallEvents "on the /// stack" as if they were value objects by keeping a cache of CallEvent-sized Index: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h @@ -111,17 +111,17 @@ return Eng.getStoreManager(); } - /// \brief Returns the previous node in the exploded graph, which includes + /// Returns the previous node in the exploded graph, which includes /// the state of the program before the checker ran. Note, checkers should /// not retain the node in their state since the nodes might get invalidated. ExplodedNode *getPredecessor() { return Pred; } const ProgramStateRef &getState() const { return Pred->getState(); } - /// \brief Check if the checker changed the state of the execution; ex: added + /// Check if the checker changed the state of the execution; ex: added /// a new transition or a bug report. bool isDifferent() { return Changed; } - /// \brief Returns the number of times the current block has been visited + /// Returns the number of times the current block has been visited /// along the analyzed path. unsigned blockCount() const { return NB.getContext().blockCount(); @@ -174,12 +174,12 @@ return Pred->getLocationContext()->getAnalysisDeclContext(); } - /// \brief Get the blockID. + /// Get the blockID. unsigned getBlockID() const { return NB.getContext().getBlock()->getBlockID(); } - /// \brief If the given node corresponds to a PostStore program point, + /// If the given node corresponds to a PostStore program point, /// retrieve the location region as it was uttered in the code. /// /// This utility can be useful for generating extensive diagnostics, for @@ -191,19 +191,19 @@ return nullptr; } - /// \brief Get the value of arbitrary expressions at this point in the path. + /// Get the value of arbitrary expressions at this point in the path. SVal getSVal(const Stmt *S) const { return Pred->getSVal(S); } - /// \brief Returns true if the value of \p E is greater than or equal to \p + /// Returns true if the value of \p E is greater than or equal to \p /// Val under unsigned comparison bool isGreaterOrEqual(const Expr *E, unsigned long long Val); /// Returns true if the value of \p E is negative. bool isNegative(const Expr *E); - /// \brief Generates a new transition in the program state graph + /// Generates a new transition in the program state graph /// (ExplodedGraph). Uses the default CheckerContext predecessor node. /// /// @param State The state of the generated node. If not specified, the state @@ -217,7 +217,7 @@ return addTransitionImpl(State ? State : getState(), false, nullptr, Tag); } - /// \brief Generates a new transition with the given predecessor. + /// Generates a new transition with the given predecessor. /// Allows checkers to generate a chain of nodes. /// /// @param State The state of the generated node. @@ -230,7 +230,7 @@ return addTransitionImpl(State, false, Pred, Tag); } - /// \brief Generate a sink node. Generating a sink stops exploration of the + /// Generate a sink node. Generating a sink stops exploration of the /// given path. To create a sink node for the purpose of reporting an error, /// checkers should use generateErrorNode() instead. ExplodedNode *generateSink(ProgramStateRef State, ExplodedNode *Pred, @@ -238,7 +238,7 @@ return addTransitionImpl(State ? State : getState(), true, Pred, Tag); } - /// \brief Generate a transition to a node that will be used to report + /// Generate a transition to a node that will be used to report /// an error. This node will be a sink. That is, it will stop exploration of /// the given path. /// @@ -251,7 +251,7 @@ (Tag ? Tag : Location.getTag())); } - /// \brief Generate a transition to a node that will be used to report + /// Generate a transition to a node that will be used to report /// an error. This node will not be a sink. That is, exploration will /// continue along this path. /// @@ -264,23 +264,23 @@ return addTransition(State, (Tag ? Tag : Location.getTag())); } - /// \brief Emit the diagnostics report. + /// Emit the diagnostics report. void emitReport(std::unique_ptr<BugReport> R) { Changed = true; Eng.getBugReporter().emitReport(std::move(R)); } - /// \brief Returns the word that should be used to refer to the declaration + /// Returns the word that should be used to refer to the declaration /// in the report. StringRef getDeclDescription(const Decl *D); - /// \brief Get the declaration of the called function (path-sensitive). + /// Get the declaration of the called function (path-sensitive). const FunctionDecl *getCalleeDecl(const CallExpr *CE) const; - /// \brief Get the name of the called function (path-sensitive). + /// Get the name of the called function (path-sensitive). StringRef getCalleeName(const FunctionDecl *FunDecl) const; - /// \brief Get the identifier of the called function (path-sensitive). + /// Get the identifier of the called function (path-sensitive). const IdentifierInfo *getCalleeIdentifier(const CallExpr *CE) const { const FunctionDecl *FunDecl = getCalleeDecl(CE); if (FunDecl) @@ -289,13 +289,13 @@ return nullptr; } - /// \brief Get the name of the called function (path-sensitive). + /// Get the name of the called function (path-sensitive). StringRef getCalleeName(const CallExpr *CE) const { const FunctionDecl *FunDecl = getCalleeDecl(CE); return getCalleeName(FunDecl); } - /// \brief Returns true if the callee is an externally-visible function in the + /// Returns true if the callee is an externally-visible function in the /// top-level namespace, such as \c malloc. /// /// If a name is provided, the function must additionally match the given @@ -308,7 +308,7 @@ static bool isCLibraryFunction(const FunctionDecl *FD, StringRef Name = StringRef()); - /// \brief Depending on wither the location corresponds to a macro, return + /// Depending on wither the location corresponds to a macro, return /// either the macro name or the token spelling. /// /// This could be useful when checkers' logic depends on whether a function Index: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h @@ -145,7 +145,7 @@ return ProgramStatePair(StInRange, StOutOfRange); } - /// \brief If a symbol is perfectly constrained to a constant, attempt + /// If a symbol is perfectly constrained to a constant, attempt /// to return the concrete value. /// /// Note that a ConstraintManager is not obligated to return a concretized Index: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h @@ -180,18 +180,18 @@ return blocksAborted.end(); } - /// \brief Enqueue the given set of nodes onto the work list. + /// Enqueue the given set of nodes onto the work list. void enqueue(ExplodedNodeSet &Set); - /// \brief Enqueue nodes that were created as a result of processing + /// Enqueue nodes that were created as a result of processing /// a statement onto the work list. void enqueue(ExplodedNodeSet &Set, const CFGBlock *Block, unsigned Idx); - /// \brief enqueue the nodes corresponding to the end of function onto the + /// enqueue the nodes corresponding to the end of function onto the /// end of path / work list. void enqueueEndOfFunction(ExplodedNodeSet &Set, const ReturnStmt *RS); - /// \brief Enqueue a single node created as a result of statement processing. + /// Enqueue a single node created as a result of statement processing. void enqueueStmtNode(ExplodedNode *N, const CFGBlock *Block, unsigned Idx); }; @@ -204,10 +204,10 @@ NodeBuilderContext(const CoreEngine &E, const CFGBlock *B, ExplodedNode *N) : Eng(E), Block(B), LC(N->getLocationContext()) { assert(B); } - /// \brief Return the CFGBlock associated with this builder. + /// Return the CFGBlock associated with this builder. const CFGBlock *getBlock() const { return Block; } - /// \brief Returns the number of times the current basic block has been + /// Returns the number of times the current basic block has been /// visited on the exploded graph path. unsigned blockCount() const { return Eng.WList->getBlockCounter().getNumVisited( @@ -217,7 +217,7 @@ }; /// \class NodeBuilder -/// \brief This is the simplest builder which generates nodes in the +/// This is the simplest builder which generates nodes in the /// ExplodedGraph. /// /// The main benefit of the builder is that it automatically tracks the @@ -237,7 +237,7 @@ bool HasGeneratedNodes = false; - /// \brief The frontier set - a set of nodes which need to be propagated after + /// The frontier set - a set of nodes which need to be propagated after /// the builder dies. ExplodedNodeSet &Frontier; @@ -277,14 +277,14 @@ virtual ~NodeBuilder() = default; - /// \brief Generates a node in the ExplodedGraph. + /// Generates a node in the ExplodedGraph. ExplodedNode *generateNode(const ProgramPoint &PP, ProgramStateRef State, ExplodedNode *Pred) { return generateNodeImpl(PP, State, Pred, false); } - /// \brief Generates a sink in the ExplodedGraph. + /// Generates a sink in the ExplodedGraph. /// /// When a node is marked as sink, the exploration from the node is stopped - /// the node becomes the last node on the path and certain kinds of bugs are @@ -303,7 +303,7 @@ using iterator = ExplodedNodeSet::iterator; - /// \brief Iterators through the results frontier. + /// Iterators through the results frontier. iterator begin() { finalizeResults(); assert(checkResults()); @@ -329,7 +329,7 @@ }; /// \class NodeBuilderWithSinks -/// \brief This node builder keeps track of the generated sink nodes. +/// This node builder keeps track of the generated sink nodes. class NodeBuilderWithSinks: public NodeBuilder { void anchor() override; @@ -364,14 +364,14 @@ }; /// \class StmtNodeBuilder -/// \brief This builder class is useful for generating nodes that resulted from +/// This builder class is useful for generating nodes that resulted from /// visiting a statement. The main difference from its parent NodeBuilder is /// that it creates a statement specific ProgramPoint. class StmtNodeBuilder: public NodeBuilder { NodeBuilder *EnclosingBldr; public: - /// \brief Constructs a StmtNodeBuilder. If the builder is going to process + /// Constructs a StmtNodeBuilder. If the builder is going to process /// nodes currently owned by another builder(with larger scope), use /// Enclosing builder to transfer ownership. StmtNodeBuilder(ExplodedNode *SrcNode, ExplodedNodeSet &DstSet, @@ -417,7 +417,7 @@ } }; -/// \brief BranchNodeBuilder is responsible for constructing the nodes +/// BranchNodeBuilder is responsible for constructing the nodes /// corresponding to the two branches of the if statement - true and false. class BranchNodeBuilder: public NodeBuilder { const CFGBlock *DstT; Index: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeInfo.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeInfo.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeInfo.h @@ -14,7 +14,7 @@ namespace clang { namespace ento { -/// \brief Stores the currently inferred strictest bound on the runtime type +/// Stores the currently inferred strictest bound on the runtime type /// of a region in a given state along the analysis path. class DynamicTypeInfo { private: @@ -27,13 +27,13 @@ DynamicTypeInfo(QualType WithType, bool CanBeSub = true) : T(WithType), CanBeASubClass(CanBeSub) {} - /// \brief Return false if no dynamic type info is available. + /// Return false if no dynamic type info is available. bool isValid() const { return !T.isNull(); } - /// \brief Returns the currently inferred upper bound on the runtime type. + /// Returns the currently inferred upper bound on the runtime type. QualType getType() const { return T; } - /// \brief Returns false if the type information is precise (the type T is + /// Returns false if the type information is precise (the type T is /// the only type in the lattice), true otherwise. bool canBeASubClass() const { return CanBeASubClass; } Index: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeMap.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeMap.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeMap.h @@ -42,15 +42,15 @@ } }; -/// \brief Get dynamic type information for a region. +/// Get dynamic type information for a region. DynamicTypeInfo getDynamicTypeInfo(ProgramStateRef State, const MemRegion *Reg); -/// \brief Set dynamic type information of the region; return the new state. +/// Set dynamic type information of the region; return the new state. ProgramStateRef setDynamicTypeInfo(ProgramStateRef State, const MemRegion *Reg, DynamicTypeInfo NewTy); -/// \brief Set dynamic type information of the region; return the new state. +/// Set dynamic type information of the region; return the new state. inline ProgramStateRef setDynamicTypeInfo(ProgramStateRef State, const MemRegion *Reg, QualType NewTy, bool CanBeSubClassed = true) { Index: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h @@ -305,7 +305,7 @@ ExplodedGraph(); ~ExplodedGraph(); - /// \brief Retrieve the node associated with a (Location,State) pair, + /// Retrieve the node associated with a (Location,State) pair, /// where the 'Location' is a ProgramPoint in the CFG. If no node for /// this pair exists, it is created. IsNew is set to true if /// the node was freshly created. @@ -313,7 +313,7 @@ bool IsSink = false, bool* IsNew = nullptr); - /// \brief Create a node for a (Location, State) pair, + /// Create a node for a (Location, State) pair, /// but don't store it for deduplication later. This /// is useful when copying an already completed /// ExplodedGraph for further processing. @@ -409,7 +409,7 @@ /// was called. void reclaimRecentlyAllocatedNodes(); - /// \brief Returns true if nodes for the given expression kind are always + /// Returns true if nodes for the given expression kind are always /// kept around. static bool isInterestingLValueExpr(const Expr *Ex); Index: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h @@ -228,7 +228,7 @@ ExplodedGraph &getGraph() { return G; } const ExplodedGraph &getGraph() const { return G; } - /// \brief Run the analyzer's garbage collection - remove dead symbols and + /// Run the analyzer's garbage collection - remove dead symbols and /// bindings from the state. /// /// Checkers can participate in this process with two callbacks: @@ -642,7 +642,7 @@ return (*currBldrCtx->getBlock())[currStmtIdx]; } - /// \brief Create a new state in which the call return value is binded to the + /// Create a new state in which the call return value is binded to the /// call origin expression. ProgramStateRef bindReturnValue(const CallEvent &Call, const LocationContext *LCtx, @@ -653,7 +653,7 @@ void evalCall(ExplodedNodeSet &Dst, ExplodedNode *Pred, const CallEvent &Call); - /// \brief Default implementation of call evaluation. + /// Default implementation of call evaluation. void defaultEvalCall(NodeBuilder &B, ExplodedNode *Pred, const CallEvent &Call, const EvalCallOptions &CallOpts = {}); @@ -687,7 +687,7 @@ CIP_DisallowedAlways }; - /// \brief See if a particular call should be inlined, by only looking + /// See if a particular call should be inlined, by only looking /// at the call event and the current state of analysis. CallInlinePolicy mayInlineCallKind(const CallEvent &Call, const ExplodedNode *Pred, @@ -702,12 +702,12 @@ bool inlineCall(const CallEvent &Call, const Decl *D, NodeBuilder &Bldr, ExplodedNode *Pred, ProgramStateRef State); - /// \brief Conservatively evaluate call by invalidating regions and binding + /// Conservatively evaluate call by invalidating regions and binding /// a conjured return value. void conservativeEvalCall(const CallEvent &Call, NodeBuilder &Bldr, ExplodedNode *Pred, ProgramStateRef State); - /// \brief Either inline or process the call conservatively (or both), based + /// Either inline or process the call conservatively (or both), based /// on DynamicDispatchBifurcation data. void BifurcateCall(const MemRegion *BifurReg, const CallEvent &Call, const Decl *D, NodeBuilder &Bldr, Index: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/LoopWidening.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/LoopWidening.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/LoopWidening.h @@ -22,7 +22,7 @@ namespace clang { namespace ento { -/// \brief Get the states that result from widening the loop. +/// Get the states that result from widening the loop. /// /// Widen the loop by invalidating anything that might be modified /// by the loop body in any iteration. Index: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h @@ -124,7 +124,7 @@ const MemRegion *StripCasts(bool StripBaseCasts = true) const; - /// \brief If this is a symbolic region, returns the region. Otherwise, + /// If this is a symbolic region, returns the region. Otherwise, /// goes up the base chain looking for the first symbolic base region. const SymbolicRegion *getSymbolicBase() const; @@ -139,24 +139,24 @@ /// Compute the offset within the top level memory object. RegionOffset getAsOffset() const; - /// \brief Get a string representation of a region for debug use. + /// Get a string representation of a region for debug use. std::string getString() const; virtual void dumpToStream(raw_ostream &os) const; void dump() const; - /// \brief Returns true if this region can be printed in a user-friendly way. + /// Returns true if this region can be printed in a user-friendly way. virtual bool canPrintPretty() const; - /// \brief Print the region for use in diagnostics. + /// Print the region for use in diagnostics. virtual void printPretty(raw_ostream &os) const; - /// \brief Returns true if this region's textual representation can be used + /// Returns true if this region's textual representation can be used /// as part of a larger expression. virtual bool canPrintPrettyAsExpr() const; - /// \brief Print the region as expression. + /// Print the region as expression. /// /// When this region represents a subexpression, the method is for printing /// an expression containing it. @@ -244,7 +244,7 @@ } }; -/// \brief The region of the static variables within the current CodeTextRegion +/// The region of the static variables within the current CodeTextRegion /// scope. /// /// Currently, only the static locals are placed there, so we know that these @@ -271,7 +271,7 @@ } }; -/// \brief The region for all the non-static global variables. +/// The region for all the non-static global variables. /// /// This class is further split into subclasses for efficient implementation of /// invalidating a set of related global values as is done in @@ -294,7 +294,7 @@ } }; -/// \brief The region containing globals which are defined in system/external +/// The region containing globals which are defined in system/external /// headers and are considered modifiable by system calls (ex: errno). class GlobalSystemSpaceRegion : public NonStaticGlobalSpaceRegion { friend class MemRegionManager; @@ -310,7 +310,7 @@ } }; -/// \brief The region containing globals which are considered not to be modified +/// The region containing globals which are considered not to be modified /// or point to data which could be modified as a result of a function call /// (system or internal). Ex: Const global scalars would be modeled as part of /// this region. This region also includes most system globals since they have @@ -329,7 +329,7 @@ } }; -/// \brief The region containing globals which can be modified by calls to +/// The region containing globals which can be modified by calls to /// "internally" defined functions - (for now just) functions other then system /// calls. class GlobalInternalSpaceRegion : public NonStaticGlobalSpaceRegion { @@ -1072,7 +1072,7 @@ void dump() const; }; -/// \brief ElementRegin is used to represent both array elements and casts. +/// ElementRegin is used to represent both array elements and casts. class ElementRegion : public TypedValueRegion { friend class MemRegionManager; @@ -1257,10 +1257,10 @@ const CXXThisRegion *getCXXThisRegion(QualType thisPointerTy, const LocationContext *LC); - /// \brief Retrieve or create a "symbolic" memory region. + /// Retrieve or create a "symbolic" memory region. const SymbolicRegion* getSymbolicRegion(SymbolRef Sym); - /// \brief Return a unique symbolic region belonging to heap memory space. + /// Return a unique symbolic region belonging to heap memory space. const SymbolicRegion *getSymbolicHeapRegion(SymbolRef sym); const StringRegion *getStringRegion(const StringLiteral *Str); @@ -1393,7 +1393,7 @@ llvm::DenseMap<SymbolRef, StorageTypeForKinds>::const_iterator; public: - /// \brief Describes different invalidation traits. + /// Describes different invalidation traits. enum InvalidationKinds { /// Tells that a region's contents is not changed. TK_PreserveContents = 0x1, Index: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h @@ -212,11 +212,11 @@ assumeInclusiveRange(DefinedOrUnknownSVal Val, const llvm::APSInt &From, const llvm::APSInt &To) const; - /// \brief Check if the given SVal is not constrained to zero and is not + /// Check if the given SVal is not constrained to zero and is not /// a zero constant. ConditionTruthVal isNonNull(SVal V) const; - /// \brief Check if the given SVal is constrained to zero or is a zero + /// Check if the given SVal is constrained to zero or is a zero /// constant. ConditionTruthVal isNull(SVal V) const; @@ -257,7 +257,7 @@ ProgramStateRef killBinding(Loc LV) const; - /// \brief Returns the state with bindings for the given regions + /// Returns the state with bindings for the given regions /// cleared from the store. /// /// Optionally invalidates global regions as well. @@ -317,24 +317,24 @@ SVal getSValAsScalarOrLoc(const Stmt *Ex, const LocationContext *LCtx) const; - /// \brief Return the value bound to the specified location. + /// Return the value bound to the specified location. /// Returns UnknownVal() if none found. SVal getSVal(Loc LV, QualType T = QualType()) const; /// Returns the "raw" SVal bound to LV before any value simplfication. SVal getRawSVal(Loc LV, QualType T= QualType()) const; - /// \brief Return the value bound to the specified location. + /// Return the value bound to the specified location. /// Returns UnknownVal() if none found. SVal getSVal(const MemRegion* R, QualType T = QualType()) const; - /// \brief Return the value bound to the specified location, assuming + /// Return the value bound to the specified location, assuming /// that the value is a scalar integer or an enumeration or a pointer. /// Returns UnknownVal() if none found or the region is not known to hold /// a value of such type. SVal getSValAsScalarOrLoc(const MemRegion *R) const; - /// \brief Visits the symbols reachable from the given SVal using the provided + /// Visits the symbols reachable from the given SVal using the provided /// SymbolVisitor. /// /// This is a convenience API. Consider using ScanReachableSymbols class @@ -343,12 +343,12 @@ /// \sa ScanReachableSymbols bool scanReachableSymbols(SVal val, SymbolVisitor& visitor) const; - /// \brief Visits the symbols reachable from the SVals in the given range + /// Visits the symbols reachable from the SVals in the given range /// using the provided SymbolVisitor. bool scanReachableSymbols(const SVal *I, const SVal *E, SymbolVisitor &visitor) const; - /// \brief Visits the symbols reachable from the regions in the given + /// Visits the symbols reachable from the regions in the given /// MemRegions range using the provided SymbolVisitor. bool scanReachableSymbols(const MemRegion * const *I, const MemRegion * const *E, Index: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h @@ -198,7 +198,7 @@ /// Make a unique symbol for value of region. DefinedOrUnknownSVal getRegionValueSymbolVal(const TypedValueRegion *region); - /// \brief Create a new symbol with a unique 'name'. + /// Create a new symbol with a unique 'name'. /// /// We resort to conjured symbols when we cannot construct a derived symbol. /// The advantage of symbols derived/built from other symbols is that we @@ -218,7 +218,7 @@ QualType type, unsigned visitCount); - /// \brief Conjure a symbol representing heap allocated memory region. + /// Conjure a symbol representing heap allocated memory region. /// /// Note, the expression should represent a location. DefinedOrUnknownSVal getConjuredHeapSymbolVal(const Expr *E, @@ -329,7 +329,7 @@ NonLoc makeNonLoc(const SymExpr *lhs, BinaryOperator::Opcode op, const SymExpr *rhs, QualType type); - /// \brief Create a NonLoc value for cast. + /// Create a NonLoc value for cast. NonLoc makeNonLoc(const SymExpr *operand, QualType fromTy, QualType toTy); nonloc::ConcreteInt makeTruthVal(bool b, QualType type) { Index: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h @@ -98,7 +98,7 @@ public: explicit SVal() = default; - /// \brief Convert to the specified SVal type, asserting that this SVal is of + /// Convert to the specified SVal type, asserting that this SVal is of /// the desired type. template<typename T> T castAs() const { @@ -106,7 +106,7 @@ return *static_cast<const T *>(this); } - /// \brief Convert to the specified SVal type, returning None if this SVal is + /// Convert to the specified SVal type, returning None if this SVal is /// not of the desired type. template<typename T> Optional<T> getAs() const { @@ -164,7 +164,7 @@ /// Otherwise return 0. const FunctionDecl *getAsFunctionDecl() const; - /// \brief If this SVal is a location and wraps a symbol, return that + /// If this SVal is a location and wraps a symbol, return that /// SymbolRef. Otherwise return 0. /// /// Casts are ignored during lookup. @@ -175,7 +175,7 @@ /// Get the symbol in the SVal or its base region. SymbolRef getLocSymbolInBase() const; - /// \brief If this SVal wraps a symbol return that SymbolRef. + /// If this SVal wraps a symbol return that SymbolRef. /// Otherwise, return 0. /// /// Casts are ignored during lookup. @@ -278,7 +278,7 @@ } }; -/// \brief Represents an SVal that is guaranteed to not be UnknownVal. +/// Represents an SVal that is guaranteed to not be UnknownVal. class KnownSVal : public SVal { friend class SVal; @@ -343,7 +343,7 @@ namespace nonloc { -/// \brief Represents symbolic expression. +/// Represents symbolic expression. class SymbolVal : public NonLoc { public: SymbolVal() = delete; @@ -370,7 +370,7 @@ } }; -/// \brief Value representing integer constant. +/// Value representing integer constant. class ConcreteInt : public NonLoc { public: explicit ConcreteInt(const llvm::APSInt& V) : NonLoc(ConcreteIntKind, &V) {} @@ -507,7 +507,7 @@ } }; -/// \brief Value representing pointer-to-member. +/// Value representing pointer-to-member. /// /// This value is qualified as NonLoc because neither loading nor storing /// operations are applied to it. Instead, the analyzer uses the L-value coming @@ -598,12 +598,12 @@ assert(r); } - /// \brief Get the underlining region. + /// Get the underlining region. const MemRegion *getRegion() const { return static_cast<const MemRegion *>(Data); } - /// \brief Get the underlining region and strip casts. + /// Get the underlining region and strip casts. const MemRegion* stripCasts(bool StripBaseCasts = true) const; template <typename REGION> Index: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h @@ -117,7 +117,7 @@ /// reset to zero. This method is allowed to overwrite previous bindings. virtual StoreRef BindDefaultZero(Store store, const MemRegion *R) = 0; - /// \brief Create a new store with the specified binding removed. + /// Create a new store with the specified binding removed. /// \param ST the original store, that is the basis for the new store. /// \param L the location whose binding should be removed. virtual StoreRef killBinding(Store ST, Loc L) = 0; @@ -170,7 +170,7 @@ SVal evalDerivedToBase(SVal Derived, QualType DerivedPtrType, bool IsVirtual); - /// \brief Attempts to do a down cast. Used to model BaseToDerived and C++ + /// Attempts to do a down cast. Used to model BaseToDerived and C++ /// dynamic_cast. /// The callback may result in the following 3 scenarios: /// - Successful cast (ex: derived is subclass of base). Index: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h @@ -25,7 +25,7 @@ class MemRegion; -/// \brief Symbolic value. These values used to capture symbolic execution of +/// Symbolic value. These values used to capture symbolic execution of /// the program. class SymExpr : public llvm::FoldingSetNode { virtual void anchor(); @@ -61,7 +61,7 @@ virtual QualType getType() const = 0; virtual void Profile(llvm::FoldingSetNodeID &profile) = 0; - /// \brief Iterator over symbols that the current symbol depends on. + /// Iterator over symbols that the current symbol depends on. /// /// For SymbolData, it's the symbol itself; for expressions, it's the /// expression symbol and all the operands in it. Note, SymbolDerived is @@ -87,7 +87,7 @@ unsigned computeComplexity() const; - /// \brief Find the region from which this symbol originates. + /// Find the region from which this symbol originates. /// /// Whenever the symbol was constructed to denote an unknown value of /// a certain memory region, return this region. This method @@ -110,7 +110,7 @@ using SymbolRefSmallVectorTy = SmallVector<SymbolRef, 2>; using SymbolID = unsigned; -/// \brief A symbol representing data which can be stored in a memory location +/// A symbol representing data which can be stored in a memory location /// (region). class SymbolData : public SymExpr { const SymbolID Sym; Index: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h +++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h @@ -38,7 +38,7 @@ class BasicValueFactory; class StoreManager; -///\brief A symbol representing the value stored at a MemRegion. +///A symbol representing the value stored at a MemRegion. class SymbolRegionValue : public SymbolData { const TypedValueRegion *R; @@ -251,7 +251,7 @@ } }; -/// \brief Represents a cast expression. +/// Represents a cast expression. class SymbolCast : public SymExpr { const SymExpr *Operand; @@ -294,7 +294,7 @@ } }; -/// \brief Represents a symbolic expression involving a binary operator +/// Represents a symbolic expression involving a binary operator class BinarySymExpr : public SymExpr { BinaryOperator::Opcode Op; QualType T; @@ -320,7 +320,7 @@ } }; -/// \brief Represents a symbolic expression like 'x' + 3. +/// Represents a symbolic expression like 'x' + 3. class SymIntExpr : public BinarySymExpr { const SymExpr *LHS; const llvm::APSInt& RHS; @@ -357,7 +357,7 @@ } }; -/// \brief Represents a symbolic expression like 3 - 'x'. +/// Represents a symbolic expression like 3 - 'x'. class IntSymExpr : public BinarySymExpr { const llvm::APSInt& LHS; const SymExpr *RHS; @@ -394,7 +394,7 @@ } }; -/// \brief Represents a symbolic expression like 'x' + 'y'. +/// Represents a symbolic expression like 'x' + 'y'. class SymSymExpr : public BinarySymExpr { const SymExpr *LHS; const SymExpr *RHS; @@ -454,7 +454,7 @@ static bool canSymbolicate(QualType T); - /// \brief Make a unique symbol for MemRegion R according to its kind. + /// Make a unique symbol for MemRegion R according to its kind. const SymbolRegionValue* getRegionValueSymbol(const TypedValueRegion* R); const SymbolConjured* conjureSymbol(const Stmt *E, @@ -475,7 +475,7 @@ const SymbolExtent *getExtentSymbol(const SubRegion *R); - /// \brief Creates a metadata symbol associated with a specific region. + /// Creates a metadata symbol associated with a specific region. /// /// VisitCount can be used to differentiate regions corresponding to /// different loop iterations, thus, making the symbol path-dependent. @@ -507,7 +507,7 @@ return SE->getType(); } - /// \brief Add artificial symbol dependency. + /// Add artificial symbol dependency. /// /// The dependent symbol should stay alive as long as the primary is alive. void addSymbolDependency(const SymbolRef Primary, const SymbolRef Dependent); @@ -518,7 +518,7 @@ BasicValueFactory &getBasicVals() { return BV; } }; -/// \brief A class responsible for cleaning up unused symbols. +/// A class responsible for cleaning up unused symbols. class SymbolReaper { enum SymbolStatus { NotProcessed, @@ -542,7 +542,7 @@ llvm::DenseMap<const MemRegion *, unsigned> includedRegionCache; public: - /// \brief Construct a reaper object, which removes everything which is not + /// Construct a reaper object, which removes everything which is not /// live before we execute statement s in the given location context. /// /// If the statement is NULL, everything is this and parent contexts is @@ -560,14 +560,14 @@ bool isLive(const Stmt *ExprVal, const LocationContext *LCtx) const; bool isLive(const VarRegion *VR, bool includeStoreBindings = false) const; - /// \brief Unconditionally marks a symbol as live. + /// Unconditionally marks a symbol as live. /// /// This should never be /// used by checkers, only by the state infrastructure such as the store and /// environment. Checkers should instead use metadata symbols and markInUse. void markLive(SymbolRef sym); - /// \brief Marks a symbol as important to a checker. + /// Marks a symbol as important to a checker. /// /// For metadata symbols, /// this will keep the symbol alive as long as its associated region is also @@ -576,7 +576,7 @@ /// symbol marking has occurred, i.e. in the MarkLiveSymbols callback. void markInUse(SymbolRef sym); - /// \brief If a symbol is known to be live, marks the symbol as live. + /// If a symbol is known to be live, marks the symbol as live. /// /// Otherwise, if the symbol cannot be proven live, it is marked as dead. /// Returns true if the symbol is dead, false if live. @@ -596,7 +596,7 @@ region_iterator region_begin() const { return RegionRoots.begin(); } region_iterator region_end() const { return RegionRoots.end(); } - /// \brief Returns whether or not a symbol has been confirmed dead. + /// Returns whether or not a symbol has been confirmed dead. /// /// This should only be called once all marking of dead symbols has completed. /// (For checkers, this means only in the evalDeadSymbols callback.) @@ -607,7 +607,7 @@ void markLive(const MemRegion *region); void markElementIndicesLive(const MemRegion *region); - /// \brief Set to the value of the symbolic store after + /// Set to the value of the symbolic store after /// StoreManager::removeDeadBindings has been called. void setReapedStore(StoreRef st) { reapedStore = st; } @@ -625,7 +625,7 @@ SymbolVisitor(const SymbolVisitor &) = default; SymbolVisitor(SymbolVisitor &&) {} - /// \brief A visitor method invoked by ProgramStateManager::scanReachableSymbols. + /// A visitor method invoked by ProgramStateManager::scanReachableSymbols. /// /// The method returns \c true if symbols should continue be scanned and \c /// false otherwise. Index: cfe/trunk/include/clang/StaticAnalyzer/Frontend/FrontendActions.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Frontend/FrontendActions.h +++ cfe/trunk/include/clang/StaticAnalyzer/Frontend/FrontendActions.h @@ -31,7 +31,7 @@ StringRef InFile) override; }; -/// \brief Frontend action to parse model files. +/// Frontend action to parse model files. /// /// This frontend action is responsible for parsing model files. Model files can /// not be parsed on their own, they rely on type information that is available Index: cfe/trunk/include/clang/StaticAnalyzer/Frontend/ModelConsumer.h =================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Frontend/ModelConsumer.h +++ cfe/trunk/include/clang/StaticAnalyzer/Frontend/ModelConsumer.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file implements clang::ento::ModelConsumer which is an +/// This file implements clang::ento::ModelConsumer which is an /// ASTConsumer for model files. /// //===----------------------------------------------------------------------===// @@ -25,7 +25,7 @@ namespace ento { -/// \brief ASTConsumer to consume model files' AST. +/// ASTConsumer to consume model files' AST. /// /// This consumer collects the bodies of function definitions into a StringMap /// from a model file. Index: cfe/trunk/include/clang/Tooling/AllTUsExecution.h =================================================================== --- cfe/trunk/include/clang/Tooling/AllTUsExecution.h +++ cfe/trunk/include/clang/Tooling/AllTUsExecution.h @@ -21,13 +21,13 @@ namespace clang { namespace tooling { -/// \brief Executes given frontend actions on all files/TUs in the compilation +/// Executes given frontend actions on all files/TUs in the compilation /// database. class AllTUsToolExecutor : public ToolExecutor { public: static const char *ExecutorName; - /// \brief Init with \p CompilationDatabase. + /// Init with \p CompilationDatabase. /// This uses \p ThreadCount threads to exececute the actions on all files in /// parallel. If \p ThreadCount is 0, this uses `llvm::hardware_concurrency`. AllTUsToolExecutor(const CompilationDatabase &Compilations, @@ -35,7 +35,7 @@ std::shared_ptr<PCHContainerOperations> PCHContainerOps = std::make_shared<PCHContainerOperations>()); - /// \brief Init with \p CommonOptionsParser. This is expected to be used by + /// Init with \p CommonOptionsParser. This is expected to be used by /// `createExecutorFromCommandLineArgs` based on commandline options. /// /// The executor takes ownership of \p Options. Index: cfe/trunk/include/clang/Tooling/ArgumentsAdjusters.h =================================================================== --- cfe/trunk/include/clang/Tooling/ArgumentsAdjusters.h +++ cfe/trunk/include/clang/Tooling/ArgumentsAdjusters.h @@ -26,42 +26,42 @@ namespace clang { namespace tooling { -/// \brief A sequence of command line arguments. +/// A sequence of command line arguments. using CommandLineArguments = std::vector<std::string>; -/// \brief A prototype of a command line adjuster. +/// A prototype of a command line adjuster. /// /// Command line argument adjuster is responsible for command line arguments /// modification before the arguments are used to run a frontend action. using ArgumentsAdjuster = std::function<CommandLineArguments( const CommandLineArguments &, StringRef Filename)>; -/// \brief Gets an argument adjuster that converts input command line arguments +/// Gets an argument adjuster that converts input command line arguments /// to the "syntax check only" variant. ArgumentsAdjuster getClangSyntaxOnlyAdjuster(); -/// \brief Gets an argument adjuster which removes output-related command line +/// Gets an argument adjuster which removes output-related command line /// arguments. ArgumentsAdjuster getClangStripOutputAdjuster(); -/// \brief Gets an argument adjuster which removes dependency-file +/// Gets an argument adjuster which removes dependency-file /// related command line arguments. ArgumentsAdjuster getClangStripDependencyFileAdjuster(); enum class ArgumentInsertPosition { BEGIN, END }; -/// \brief Gets an argument adjuster which inserts \p Extra arguments in the +/// Gets an argument adjuster which inserts \p Extra arguments in the /// specified position. ArgumentsAdjuster getInsertArgumentAdjuster(const CommandLineArguments &Extra, ArgumentInsertPosition Pos); -/// \brief Gets an argument adjuster which inserts an \p Extra argument in the +/// Gets an argument adjuster which inserts an \p Extra argument in the /// specified position. ArgumentsAdjuster getInsertArgumentAdjuster( const char *Extra, ArgumentInsertPosition Pos = ArgumentInsertPosition::END); -/// \brief Gets an argument adjuster which adjusts the arguments in sequence +/// Gets an argument adjuster which adjusts the arguments in sequence /// with the \p First adjuster and then with the \p Second one. ArgumentsAdjuster combineAdjusters(ArgumentsAdjuster First, ArgumentsAdjuster Second); Index: cfe/trunk/include/clang/Tooling/CommonOptionsParser.h =================================================================== --- cfe/trunk/include/clang/Tooling/CommonOptionsParser.h +++ cfe/trunk/include/clang/Tooling/CommonOptionsParser.h @@ -34,7 +34,7 @@ namespace clang { namespace tooling { -/// \brief A parser for options common to all command-line Clang tools. +/// A parser for options common to all command-line Clang tools. /// /// Parses a common subset of command-line arguments, locates and loads a /// compilation commands database and runs a tool with user-specified action. It @@ -65,7 +65,7 @@ /// \endcode class CommonOptionsParser { public: - /// \brief Parses command-line, initializes a compilation database. + /// Parses command-line, initializes a compilation database. /// /// This constructor can change argc and argv contents, e.g. consume /// command-line options used for creating FixedCompilationDatabase. @@ -79,7 +79,7 @@ : CommonOptionsParser(argc, argv, Category, llvm::cl::OneOrMore, Overview) {} - /// \brief Parses command-line, initializes a compilation database. + /// Parses command-line, initializes a compilation database. /// /// This constructor can change argc and argv contents, e.g. consume /// command-line options used for creating FixedCompilationDatabase. @@ -92,7 +92,7 @@ llvm::cl::NumOccurrencesFlag OccurrencesFlag, const char *Overview = nullptr); - /// \brief A factory method that is similar to the above constructor, except + /// A factory method that is similar to the above constructor, except /// this returns an error instead exiting the program on error. static llvm::Expected<CommonOptionsParser> create(int &argc, const char **argv, llvm::cl::OptionCategory &Category, Index: cfe/trunk/include/clang/Tooling/CompilationDatabase.h =================================================================== --- cfe/trunk/include/clang/Tooling/CompilationDatabase.h +++ cfe/trunk/include/clang/Tooling/CompilationDatabase.h @@ -40,7 +40,7 @@ namespace clang { namespace tooling { -/// \brief Specifies the working directory and command of a compilation. +/// Specifies the working directory and command of a compilation. struct CompileCommand { CompileCommand() = default; CompileCommand(Twine Directory, Twine Filename, @@ -48,20 +48,20 @@ : Directory(Directory.str()), Filename(Filename.str()), CommandLine(std::move(CommandLine)), Output(Output.str()){} - /// \brief The working directory the command was executed from. + /// The working directory the command was executed from. std::string Directory; /// The source file associated with the command. std::string Filename; - /// \brief The command line that was executed. + /// The command line that was executed. std::vector<std::string> CommandLine; /// The output file associated with the command. std::string Output; }; -/// \brief Interface for compilation databases. +/// Interface for compilation databases. /// /// A compilation database allows the user to retrieve compile command lines /// for the files in a project. @@ -73,7 +73,7 @@ public: virtual ~CompilationDatabase(); - /// \brief Loads a compilation database from a build directory. + /// Loads a compilation database from a build directory. /// /// Looks at the specified 'BuildDirectory' and creates a compilation database /// that allows to query compile commands for source files in the @@ -88,21 +88,21 @@ static std::unique_ptr<CompilationDatabase> loadFromDirectory(StringRef BuildDirectory, std::string &ErrorMessage); - /// \brief Tries to detect a compilation database location and load it. + /// Tries to detect a compilation database location and load it. /// /// Looks for a compilation database in all parent paths of file 'SourceFile' /// by calling loadFromDirectory. static std::unique_ptr<CompilationDatabase> autoDetectFromSource(StringRef SourceFile, std::string &ErrorMessage); - /// \brief Tries to detect a compilation database location and load it. + /// Tries to detect a compilation database location and load it. /// /// Looks for a compilation database in directory 'SourceDir' and all /// its parent paths by calling loadFromDirectory. static std::unique_ptr<CompilationDatabase> autoDetectFromDirectory(StringRef SourceDir, std::string &ErrorMessage); - /// \brief Returns all compile commands in which the specified file was + /// Returns all compile commands in which the specified file was /// compiled. /// /// This includes compile commands that span multiple source files. @@ -114,13 +114,13 @@ virtual std::vector<CompileCommand> getCompileCommands( StringRef FilePath) const = 0; - /// \brief Returns the list of all files available in the compilation database. + /// Returns the list of all files available in the compilation database. /// /// By default, returns nothing. Implementations should override this if they /// can enumerate their source files. virtual std::vector<std::string> getAllFiles() const { return {}; } - /// \brief Returns all compile commands for all the files in the compilation + /// Returns all compile commands for all the files in the compilation /// database. /// /// FIXME: Add a layer in Tooling that provides an interface to run a tool @@ -132,7 +132,7 @@ virtual std::vector<CompileCommand> getAllCompileCommands() const; }; -/// \brief Interface for compilation database plugins. +/// Interface for compilation database plugins. /// /// A compilation database plugin allows the user to register custom compilation /// databases that are picked up as compilation database if the corresponding @@ -146,20 +146,20 @@ public: virtual ~CompilationDatabasePlugin(); - /// \brief Loads a compilation database from a build directory. + /// Loads a compilation database from a build directory. /// /// \see CompilationDatabase::loadFromDirectory(). virtual std::unique_ptr<CompilationDatabase> loadFromDirectory(StringRef Directory, std::string &ErrorMessage) = 0; }; -/// \brief A compilation database that returns a single compile command line. +/// A compilation database that returns a single compile command line. /// /// Useful when we want a tool to behave more like a compiler invocation. /// This compilation database is not enumerable: getAllFiles() returns {}. class FixedCompilationDatabase : public CompilationDatabase { public: - /// \brief Creates a FixedCompilationDatabase from the arguments after "--". + /// Creates a FixedCompilationDatabase from the arguments after "--". /// /// Parses the given command line for "--". If "--" is found, the rest of /// the arguments will make up the command line in the returned @@ -195,11 +195,11 @@ static std::unique_ptr<FixedCompilationDatabase> loadFromFile(StringRef Path, std::string &ErrorMsg); - /// \brief Constructs a compilation data base from a specified directory + /// Constructs a compilation data base from a specified directory /// and command line. FixedCompilationDatabase(Twine Directory, ArrayRef<std::string> CommandLine); - /// \brief Returns the given compile command. + /// Returns the given compile command. /// /// Will always return a vector with one entry that contains the directory /// and command line specified at construction with "clang-tool" as argv[0] Index: cfe/trunk/include/clang/Tooling/Core/Diagnostic.h =================================================================== --- cfe/trunk/include/clang/Tooling/Core/Diagnostic.h +++ cfe/trunk/include/clang/Tooling/Core/Diagnostic.h @@ -27,12 +27,12 @@ namespace clang { namespace tooling { -/// \brief Represents the diagnostic message with the error message associated +/// Represents the diagnostic message with the error message associated /// and the information on the location of the problem. struct DiagnosticMessage { DiagnosticMessage(llvm::StringRef Message = ""); - /// \brief Constructs a diagnostic message with anoffset to the diagnostic + /// Constructs a diagnostic message with anoffset to the diagnostic /// within the file where the problem occurred. /// /// \param Loc Should be a file location, it is not meaningful for a macro @@ -45,7 +45,7 @@ unsigned FileOffset; }; -/// \brief Represents the diagnostic with the level of severity and possible +/// Represents the diagnostic with the level of severity and possible /// fixes to be applied. struct Diagnostic { enum Level { @@ -63,22 +63,22 @@ const SmallVector<DiagnosticMessage, 1> &Notes, Level DiagLevel, llvm::StringRef BuildDirectory); - /// \brief Name identifying the Diagnostic. + /// Name identifying the Diagnostic. std::string DiagnosticName; - /// \brief Message associated to the diagnostic. + /// Message associated to the diagnostic. DiagnosticMessage Message; - /// \brief Fixes to apply, grouped by file path. + /// Fixes to apply, grouped by file path. llvm::StringMap<Replacements> Fix; - /// \brief Potential notes about the diagnostic. + /// Potential notes about the diagnostic. SmallVector<DiagnosticMessage, 1> Notes; - /// \brief Diagnostic level. Can indicate either an error or a warning. + /// Diagnostic level. Can indicate either an error or a warning. Level DiagLevel; - /// \brief A build directory of the diagnostic source file. + /// A build directory of the diagnostic source file. /// /// It's an absolute path which is `directory` field of the source file in /// compilation database. If users don't specify the compilation database @@ -88,7 +88,7 @@ std::string BuildDirectory; }; -/// \brief Collection of Diagnostics generated from a single translation unit. +/// Collection of Diagnostics generated from a single translation unit. struct TranslationUnitDiagnostics { /// Name of the main source for the translation unit. std::string MainSourceFile; Index: cfe/trunk/include/clang/Tooling/Core/Replacement.h =================================================================== --- cfe/trunk/include/clang/Tooling/Core/Replacement.h +++ cfe/trunk/include/clang/Tooling/Core/Replacement.h @@ -41,13 +41,13 @@ namespace tooling { -/// \brief A source range independent of the \c SourceManager. +/// A source range independent of the \c SourceManager. class Range { public: Range() = default; Range(unsigned Offset, unsigned Length) : Offset(Offset), Length(Length) {} - /// \brief Accessors. + /// Accessors. /// @{ unsigned getOffset() const { return Offset; } unsigned getLength() const { return Length; } @@ -55,18 +55,18 @@ /// \name Range Predicates /// @{ - /// \brief Whether this range overlaps with \p RHS or not. + /// Whether this range overlaps with \p RHS or not. bool overlapsWith(Range RHS) const { return Offset + Length > RHS.Offset && Offset < RHS.Offset + RHS.Length; } - /// \brief Whether this range contains \p RHS or not. + /// Whether this range contains \p RHS or not. bool contains(Range RHS) const { return RHS.Offset >= Offset && (RHS.Offset + RHS.Length) <= (Offset + Length); } - /// \brief Whether this range equals to \p RHS or not. + /// Whether this range equals to \p RHS or not. bool operator==(const Range &RHS) const { return Offset == RHS.getOffset() && Length == RHS.getLength(); } @@ -77,16 +77,16 @@ unsigned Length = 0; }; -/// \brief A text replacement. +/// A text replacement. /// /// Represents a SourceManager independent replacement of a range of text in a /// specific file. class Replacement { public: - /// \brief Creates an invalid (not applicable) replacement. + /// Creates an invalid (not applicable) replacement. Replacement(); - /// \brief Creates a replacement of the range [Offset, Offset+Length) in + /// Creates a replacement of the range [Offset, Offset+Length) in /// FilePath with ReplacementText. /// /// \param FilePath A source file accessible via a SourceManager. @@ -95,28 +95,28 @@ Replacement(StringRef FilePath, unsigned Offset, unsigned Length, StringRef ReplacementText); - /// \brief Creates a Replacement of the range [Start, Start+Length) with + /// Creates a Replacement of the range [Start, Start+Length) with /// ReplacementText. Replacement(const SourceManager &Sources, SourceLocation Start, unsigned Length, StringRef ReplacementText); - /// \brief Creates a Replacement of the given range with ReplacementText. + /// Creates a Replacement of the given range with ReplacementText. Replacement(const SourceManager &Sources, const CharSourceRange &Range, StringRef ReplacementText, const LangOptions &LangOpts = LangOptions()); - /// \brief Creates a Replacement of the node with ReplacementText. + /// Creates a Replacement of the node with ReplacementText. template <typename Node> Replacement(const SourceManager &Sources, const Node &NodeToReplace, StringRef ReplacementText, const LangOptions &LangOpts = LangOptions()); - /// \brief Returns whether this replacement can be applied to a file. + /// Returns whether this replacement can be applied to a file. /// /// Only replacements that are in a valid file can be applied. bool isApplicable() const; - /// \brief Accessors. + /// Accessors. /// @{ StringRef getFilePath() const { return FilePath; } unsigned getOffset() const { return ReplacementRange.getOffset(); } @@ -124,10 +124,10 @@ StringRef getReplacementText() const { return ReplacementText; } /// @} - /// \brief Applies the replacement on the Rewriter. + /// Applies the replacement on the Rewriter. bool apply(Rewriter &Rewrite) const; - /// \brief Returns a human readable string representation. + /// Returns a human readable string representation. std::string toString() const; private: @@ -150,17 +150,17 @@ insert_conflict, }; -/// \brief Carries extra error information in replacement-related llvm::Error, +/// Carries extra error information in replacement-related llvm::Error, /// e.g. fail applying replacements and replacements conflict. class ReplacementError : public llvm::ErrorInfo<ReplacementError> { public: ReplacementError(replacement_error Err) : Err(Err) {} - /// \brief Constructs an error related to an existing replacement. + /// Constructs an error related to an existing replacement. ReplacementError(replacement_error Err, Replacement Existing) : Err(Err), ExistingReplacement(std::move(Existing)) {} - /// \brief Constructs an error related to a new replacement and an existing + /// Constructs an error related to a new replacement and an existing /// replacement in a set of replacements. ReplacementError(replacement_error Err, Replacement New, Replacement Existing) : Err(Err), NewReplacement(std::move(New)), @@ -198,13 +198,13 @@ llvm::Optional<Replacement> ExistingReplacement; }; -/// \brief Less-than operator between two Replacements. +/// Less-than operator between two Replacements. bool operator<(const Replacement &LHS, const Replacement &RHS); -/// \brief Equal-to operator between two Replacements. +/// Equal-to operator between two Replacements. bool operator==(const Replacement &LHS, const Replacement &RHS); -/// \brief Maintains a set of replacements that are conflict-free. +/// Maintains a set of replacements that are conflict-free. /// Two replacements are considered conflicts if they overlap or have the same /// offset (i.e. order-dependent). class Replacements { @@ -219,7 +219,7 @@ explicit Replacements(const Replacement &R) { Replaces.insert(R); } - /// \brief Adds a new replacement \p R to the current set of replacements. + /// Adds a new replacement \p R to the current set of replacements. /// \p R must have the same file path as all existing replacements. /// Returns `success` if the replacement is successfully inserted; otherwise, /// it returns an llvm::Error, i.e. there is a conflict between R and the @@ -258,7 +258,7 @@ /// category of replacements. llvm::Error add(const Replacement &R); - /// \brief Merges \p Replaces into the current replacements. \p Replaces + /// Merges \p Replaces into the current replacements. \p Replaces /// refers to code after applying the current replacements. LLVM_NODISCARD Replacements merge(const Replacements &Replaces) const; @@ -311,7 +311,7 @@ ReplacementsImpl Replaces; }; -/// \brief Apply all replacements in \p Replaces to the Rewriter \p Rewrite. +/// Apply all replacements in \p Replaces to the Rewriter \p Rewrite. /// /// Replacement applications happen independently of the success of /// other applications. @@ -319,7 +319,7 @@ /// \returns true if all replacements apply. false otherwise. bool applyAllReplacements(const Replacements &Replaces, Rewriter &Rewrite); -/// \brief Applies all replacements in \p Replaces to \p Code. +/// Applies all replacements in \p Replaces to \p Code. /// /// This completely ignores the path stored in each replacement. If all /// replacements are applied successfully, this returns the code with @@ -329,7 +329,7 @@ llvm::Expected<std::string> applyAllReplacements(StringRef Code, const Replacements &Replaces); -/// \brief Collection of Replacements generated from a single translation unit. +/// Collection of Replacements generated from a single translation unit. struct TranslationUnitReplacements { /// Name of the main source for the translation unit. std::string MainSourceFile; @@ -337,7 +337,7 @@ std::vector<Replacement> Replacements; }; -/// \brief Calculates the new ranges after \p Replaces are applied. These +/// Calculates the new ranges after \p Replaces are applied. These /// include both the original \p Ranges and the affected ranges of \p Replaces /// in the new code. /// @@ -349,7 +349,7 @@ calculateRangesAfterReplacements(const Replacements &Replaces, const std::vector<Range> &Ranges); -/// \brief If there are multiple <File, Replacements> pairs with the same file +/// If there are multiple <File, Replacements> pairs with the same file /// entry, we only keep one pair and discard the rest. /// If a file does not exist, its corresponding replacements will be ignored. std::map<std::string, Replacements> groupReplacementsByFile( Index: cfe/trunk/include/clang/Tooling/DiagnosticsYaml.h =================================================================== --- cfe/trunk/include/clang/Tooling/DiagnosticsYaml.h +++ cfe/trunk/include/clang/Tooling/DiagnosticsYaml.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file defines the structure of a YAML document for serializing +/// This file defines the structure of a YAML document for serializing /// diagnostics. /// //===----------------------------------------------------------------------===// @@ -27,7 +27,7 @@ namespace yaml { template <> struct MappingTraits<clang::tooling::Diagnostic> { - /// \brief Helper to (de)serialize a Diagnostic since we don't have direct + /// Helper to (de)serialize a Diagnostic since we don't have direct /// access to its data members. class NormalizedDiagnostic { public: @@ -80,7 +80,7 @@ } }; -/// \brief Specialized MappingTraits to describe how a +/// Specialized MappingTraits to describe how a /// TranslationUnitDiagnostics is (de)serialized. template <> struct MappingTraits<clang::tooling::TranslationUnitDiagnostics> { static void mapping(IO &Io, clang::tooling::TranslationUnitDiagnostics &Doc) { Index: cfe/trunk/include/clang/Tooling/Execution.h =================================================================== --- cfe/trunk/include/clang/Tooling/Execution.h +++ cfe/trunk/include/clang/Tooling/Execution.h @@ -37,7 +37,7 @@ namespace clang { namespace tooling { -/// \brief An abstraction for the result of a tool execution. For example, the +/// An abstraction for the result of a tool execution. For example, the /// underlying result can be in-memory or on-disk. /// /// Results should be string key-value pairs. For example, a refactoring tool @@ -52,7 +52,7 @@ llvm::function_ref<void(StringRef Key, StringRef Value)> Callback) = 0; }; -/// \brief Stores the key-value results in memory. It maintains the lifetime of +/// Stores the key-value results in memory. It maintains the lifetime of /// the result. Clang tools using this class are expected to generate a small /// set of different results, or a large set of duplicated results. class InMemoryToolResults : public ToolResults { @@ -72,16 +72,16 @@ std::vector<std::pair<llvm::StringRef, llvm::StringRef>> KVResults; }; -/// \brief The context of an execution, including the information about +/// The context of an execution, including the information about /// compilation and results. class ExecutionContext { public: virtual ~ExecutionContext() {} - /// \brief Initializes a context. This does not take ownership of `Results`. + /// Initializes a context. This does not take ownership of `Results`. explicit ExecutionContext(ToolResults *Results) : Results(Results) {} - /// \brief Adds a KV pair to the result container of this execution. + /// Adds a KV pair to the result container of this execution. void reportResult(StringRef Key, StringRef Value); // Returns the source control system's revision number if applicable. @@ -99,7 +99,7 @@ ToolResults *Results; }; -/// \brief Interface for executing clang frontend actions. +/// Interface for executing clang frontend actions. /// /// This can be extended to support running tool actions in different /// execution mode, e.g. on a specific set of TUs or many TUs in parallel. @@ -112,54 +112,54 @@ public: virtual ~ToolExecutor() {} - /// \brief Returns the name of a specific executor. + /// Returns the name of a specific executor. virtual StringRef getExecutorName() const = 0; - /// \brief Executes each action with a corresponding arguments adjuster. + /// Executes each action with a corresponding arguments adjuster. virtual llvm::Error execute(llvm::ArrayRef< std::pair<std::unique_ptr<FrontendActionFactory>, ArgumentsAdjuster>> Actions) = 0; - /// \brief Convenient functions for the above `execute`. + /// Convenient functions for the above `execute`. llvm::Error execute(std::unique_ptr<FrontendActionFactory> Action); /// Executes an action with an argument adjuster. llvm::Error execute(std::unique_ptr<FrontendActionFactory> Action, ArgumentsAdjuster Adjuster); - /// \brief Returns a reference to the execution context. + /// Returns a reference to the execution context. /// /// This should be passed to tool callbacks, and tool callbacks should report /// results via the returned context. virtual ExecutionContext *getExecutionContext() = 0; - /// \brief Returns a reference to the result container. + /// Returns a reference to the result container. /// /// NOTE: This should only be used after the execution finishes. Tool /// callbacks should report results via `ExecutionContext` instead. virtual ToolResults *getToolResults() = 0; - /// \brief Map a virtual file to be used while running the tool. + /// Map a virtual file to be used while running the tool. /// /// \param FilePath The path at which the content will be mapped. /// \param Content A buffer of the file's content. virtual void mapVirtualFile(StringRef FilePath, StringRef Content) = 0; }; -/// \brief Interface for factories that create specific executors. This is also +/// Interface for factories that create specific executors. This is also /// used as a plugin to be registered into ToolExecutorPluginRegistry. class ToolExecutorPlugin { public: virtual ~ToolExecutorPlugin() {} - /// \brief Create an `ToolExecutor`. + /// Create an `ToolExecutor`. /// /// `OptionsParser` can be consumed (e.g. moved) if the creation succeeds. virtual llvm::Expected<std::unique_ptr<ToolExecutor>> create(CommonOptionsParser &OptionsParser) = 0; }; -/// \brief This creates a ToolExecutor that is in the global registry based on +/// This creates a ToolExecutor that is in the global registry based on /// commandline arguments. /// /// This picks the right executor based on the `--executor` option. This parses Index: cfe/trunk/include/clang/Tooling/FileMatchTrie.h =================================================================== --- cfe/trunk/include/clang/Tooling/FileMatchTrie.h +++ cfe/trunk/include/clang/Tooling/FileMatchTrie.h @@ -30,7 +30,7 @@ virtual bool equivalent(StringRef FileA, StringRef FileB) const = 0; }; -/// \brief A trie to efficiently match against the entries of the compilation +/// A trie to efficiently match against the entries of the compilation /// database in order of matching suffix length. /// /// When a clang tool is supposed to operate on a specific file, we have to @@ -58,17 +58,17 @@ public: FileMatchTrie(); - /// \brief Construct a new \c FileMatchTrie with the given \c PathComparator. + /// Construct a new \c FileMatchTrie with the given \c PathComparator. /// /// The \c FileMatchTrie takes ownership of 'Comparator'. Used for testing. FileMatchTrie(PathComparator* Comparator); ~FileMatchTrie(); - /// \brief Insert a new absolute path. Relative paths are ignored. + /// Insert a new absolute path. Relative paths are ignored. void insert(StringRef NewPath); - /// \brief Finds the corresponding file in this trie. + /// Finds the corresponding file in this trie. /// /// Returns file name stored in this trie that is equivalent to 'FileName' /// according to 'Comparator', if it can be uniquely identified. If there Index: cfe/trunk/include/clang/Tooling/FixIt.h =================================================================== --- cfe/trunk/include/clang/Tooling/FixIt.h +++ cfe/trunk/include/clang/Tooling/FixIt.h @@ -29,35 +29,35 @@ namespace internal { StringRef getText(SourceRange Range, const ASTContext &Context); -/// \brief Returns the SourceRange of a SourceRange. This identity function is +/// Returns the SourceRange of a SourceRange. This identity function is /// used by the following template abstractions. inline SourceRange getSourceRange(const SourceRange &Range) { return Range; } -/// \brief Returns the SourceRange of the token at Location \p Loc. +/// Returns the SourceRange of the token at Location \p Loc. inline SourceRange getSourceRange(const SourceLocation &Loc) { return SourceRange(Loc); } -/// \brief Returns the SourceRange of an given Node. \p Node is typically a +/// Returns the SourceRange of an given Node. \p Node is typically a /// 'Stmt', 'Expr' or a 'Decl'. template <typename T> SourceRange getSourceRange(const T &Node) { return Node.getSourceRange(); } } // end namespace internal -// \brief Returns a textual representation of \p Node. +// Returns a textual representation of \p Node. template <typename T> StringRef getText(const T &Node, const ASTContext &Context) { return internal::getText(internal::getSourceRange(Node), Context); } -// \brief Returns a FixItHint to remove \p Node. +// Returns a FixItHint to remove \p Node. // TODO: Add support for related syntactical elements (i.e. comments, ...). template <typename T> FixItHint createRemoval(const T &Node) { return FixItHint::CreateRemoval(internal::getSourceRange(Node)); } -// \brief Returns a FixItHint to replace \p Destination by \p Source. +// Returns a FixItHint to replace \p Destination by \p Source. template <typename D, typename S> FixItHint createReplacement(const D &Destination, const S &Source, const ASTContext &Context) { @@ -65,7 +65,7 @@ getText(Source, Context)); } -// \brief Returns a FixItHint to replace \p Destination by \p Source. +// Returns a FixItHint to replace \p Destination by \p Source. template <typename D> FixItHint createReplacement(const D &Destination, StringRef Source) { return FixItHint::CreateReplacement(internal::getSourceRange(Destination), Index: cfe/trunk/include/clang/Tooling/JSONCompilationDatabase.h =================================================================== --- cfe/trunk/include/clang/Tooling/JSONCompilationDatabase.h +++ cfe/trunk/include/clang/Tooling/JSONCompilationDatabase.h @@ -33,7 +33,7 @@ namespace clang { namespace tooling { -/// \brief A JSON based compilation database. +/// A JSON based compilation database. /// /// JSON compilation database files must contain a list of JSON objects which /// provide the command lines in the attributes 'directory', 'command', @@ -61,7 +61,7 @@ enum class JSONCommandLineSyntax { Windows, Gnu, AutoDetect }; class JSONCompilationDatabase : public CompilationDatabase { public: - /// \brief Loads a JSON compilation database from the specified file. + /// Loads a JSON compilation database from the specified file. /// /// Returns NULL and sets ErrorMessage if the database could not be /// loaded from the given file. @@ -69,14 +69,14 @@ loadFromFile(StringRef FilePath, std::string &ErrorMessage, JSONCommandLineSyntax Syntax); - /// \brief Loads a JSON compilation database from a data buffer. + /// Loads a JSON compilation database from a data buffer. /// /// Returns NULL and sets ErrorMessage if the database could not be loaded. static std::unique_ptr<JSONCompilationDatabase> loadFromBuffer(StringRef DatabaseString, std::string &ErrorMessage, JSONCommandLineSyntax Syntax); - /// \brief Returns all compile commands in which the specified file was + /// Returns all compile commands in which the specified file was /// compiled. /// /// FIXME: Currently FilePath must be an absolute path inside the @@ -84,23 +84,23 @@ std::vector<CompileCommand> getCompileCommands(StringRef FilePath) const override; - /// \brief Returns the list of all files available in the compilation database. + /// Returns the list of all files available in the compilation database. /// /// These are the 'file' entries of the JSON objects. std::vector<std::string> getAllFiles() const override; - /// \brief Returns all compile commands for all the files in the compilation + /// Returns all compile commands for all the files in the compilation /// database. std::vector<CompileCommand> getAllCompileCommands() const override; private: - /// \brief Constructs a JSON compilation database on a memory buffer. + /// Constructs a JSON compilation database on a memory buffer. JSONCompilationDatabase(std::unique_ptr<llvm::MemoryBuffer> Database, JSONCommandLineSyntax Syntax) : Database(std::move(Database)), Syntax(Syntax), YAMLStream(this->Database->getBuffer(), SM) {} - /// \brief Parses the database file and creates the index. + /// Parses the database file and creates the index. /// /// Returns whether parsing succeeded. Sets ErrorMessage if parsing /// failed. @@ -118,7 +118,7 @@ std::vector<llvm::yaml::ScalarNode *>, llvm::yaml::ScalarNode *>; - /// \brief Converts the given array of CompileCommandRefs to CompileCommands. + /// Converts the given array of CompileCommandRefs to CompileCommands. void getCommands(ArrayRef<CompileCommandRef> CommandsRef, std::vector<CompileCommand> &Commands) const; Index: cfe/trunk/include/clang/Tooling/Refactoring.h =================================================================== --- cfe/trunk/include/clang/Tooling/Refactoring.h +++ cfe/trunk/include/clang/Tooling/Refactoring.h @@ -30,7 +30,7 @@ namespace tooling { -/// \brief A tool to run refactorings. +/// A tool to run refactorings. /// /// This is a refactoring specific version of \see ClangTool. FrontendActions /// passed to run() and runAndSave() should add replacements to @@ -43,17 +43,17 @@ std::shared_ptr<PCHContainerOperations> PCHContainerOps = std::make_shared<PCHContainerOperations>()); - /// \brief Returns the file path to replacements map to which replacements + /// Returns the file path to replacements map to which replacements /// should be added during the run of the tool. std::map<std::string, Replacements> &getReplacements(); - /// \brief Call run(), apply all generated replacements, and immediately save + /// Call run(), apply all generated replacements, and immediately save /// the results to disk. /// /// \returns 0 upon success. Non-zero upon failure. int runAndSave(FrontendActionFactory *ActionFactory); - /// \brief Apply all stored replacements to the given Rewriter. + /// Apply all stored replacements to the given Rewriter. /// /// FileToReplaces will be deduplicated with `groupReplacementsByFile` before /// application. @@ -65,14 +65,14 @@ bool applyAllReplacements(Rewriter &Rewrite); private: - /// \brief Write all refactored files to disk. + /// Write all refactored files to disk. int saveRewrittenFiles(Rewriter &Rewrite); private: std::map<std::string, Replacements> FileToReplaces; }; -/// \brief Groups \p Replaces by the file path and applies each group of +/// Groups \p Replaces by the file path and applies each group of /// Replacements on the related file in \p Rewriter. In addition to applying /// given Replacements, this function also formats the changed code. /// Index: cfe/trunk/include/clang/Tooling/Refactoring/AtomicChange.h =================================================================== --- cfe/trunk/include/clang/Tooling/Refactoring/AtomicChange.h +++ cfe/trunk/include/clang/Tooling/Refactoring/AtomicChange.h @@ -24,7 +24,7 @@ namespace clang { namespace tooling { -/// \brief An atomic change is used to create and group a set of source edits, +/// An atomic change is used to create and group a set of source edits, /// e.g. replacements or header insertions. Edits in an AtomicChange should be /// related, e.g. replacements for the same type reference and the corresponding /// header insertion/deletion. @@ -36,13 +36,13 @@ /// bad, i.e. none of its source edits will be applied. class AtomicChange { public: - /// \brief Creates an atomic change around \p KeyPosition with the key being a + /// Creates an atomic change around \p KeyPosition with the key being a /// concatenation of the file name and the offset of \p KeyPosition. /// \p KeyPosition should be the location of the key syntactical element that /// is being changed, e.g. the call to a refactored method. AtomicChange(const SourceManager &SM, SourceLocation KeyPosition); - /// \brief Creates an atomic change for \p FilePath with a customized key. + /// Creates an atomic change for \p FilePath with a customized key. AtomicChange(llvm::StringRef FilePath, llvm::StringRef Key) : Key(Key), FilePath(FilePath) {} @@ -54,44 +54,44 @@ bool operator==(const AtomicChange &Other) const; - /// \brief Returns the atomic change as a YAML string. + /// Returns the atomic change as a YAML string. std::string toYAMLString(); - /// \brief Converts a YAML-encoded automic change to AtomicChange. + /// Converts a YAML-encoded automic change to AtomicChange. static AtomicChange convertFromYAML(llvm::StringRef YAMLContent); - /// \brief Returns the key of this change, which is a concatenation of the + /// Returns the key of this change, which is a concatenation of the /// file name and offset of the key position. const std::string &getKey() const { return Key; } - /// \brief Returns the path of the file containing this atomic change. + /// Returns the path of the file containing this atomic change. const std::string &getFilePath() const { return FilePath; } - /// \brief If this change could not be created successfully, e.g. because of + /// If this change could not be created successfully, e.g. because of /// conflicts among replacements, use this to set an error description. /// Thereby, places that cannot be fixed automatically can be gathered when /// applying changes. void setError(llvm::StringRef Error) { this->Error = Error; } - /// \brief Returns whether an error has been set on this list. + /// Returns whether an error has been set on this list. bool hasError() const { return !Error.empty(); } - /// \brief Returns the error message or an empty string if it does not exist. + /// Returns the error message or an empty string if it does not exist. const std::string &getError() const { return Error; } - /// \brief Adds a replacement that replaces the given Range with + /// Adds a replacement that replaces the given Range with /// ReplacementText. /// \returns An llvm::Error carrying ReplacementError on error. llvm::Error replace(const SourceManager &SM, const CharSourceRange &Range, llvm::StringRef ReplacementText); - /// \brief Adds a replacement that replaces range [Loc, Loc+Length) with + /// Adds a replacement that replaces range [Loc, Loc+Length) with /// \p Text. /// \returns An llvm::Error carrying ReplacementError on error. llvm::Error replace(const SourceManager &SM, SourceLocation Loc, unsigned Length, llvm::StringRef Text); - /// \brief Adds a replacement that inserts \p Text at \p Loc. If this + /// Adds a replacement that inserts \p Text at \p Loc. If this /// insertion conflicts with an existing insertion (at the same position), /// this will be inserted before/after the existing insertion depending on /// \p InsertAfter. Users should use `replace` with `Length=0` instead if they @@ -102,15 +102,15 @@ llvm::Error insert(const SourceManager &SM, SourceLocation Loc, llvm::StringRef Text, bool InsertAfter = true); - /// \brief Adds a header into the file that contains the key position. + /// Adds a header into the file that contains the key position. /// Header can be in angle brackets or double quotation marks. By default /// (header is not quoted), header will be surrounded with double quotes. void addHeader(llvm::StringRef Header); - /// \brief Removes a header from the file that contains the key position. + /// Removes a header from the file that contains the key position. void removeHeader(llvm::StringRef Header); - /// \brief Returns a const reference to existing replacements. + /// Returns a const reference to existing replacements. const Replacements &getReplacements() const { return Replaces; } llvm::ArrayRef<std::string> getInsertedHeaders() const { @@ -158,7 +158,7 @@ FormatOption Format = kNone; }; -/// \brief Applies all AtomicChanges in \p Changes to the \p Code. +/// Applies all AtomicChanges in \p Changes to the \p Code. /// /// This completely ignores the file path in each change and replaces them with /// \p FilePath, i.e. callers are responsible for ensuring all changes are for Index: cfe/trunk/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h =================================================================== --- cfe/trunk/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h +++ cfe/trunk/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief A wrapper class around \c RecursiveASTVisitor that visits each +/// A wrapper class around \c RecursiveASTVisitor that visits each /// occurrences of a named symbol. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/include/clang/Tooling/Refactoring/Rename/RenamingAction.h =================================================================== --- cfe/trunk/include/clang/Tooling/Refactoring/Rename/RenamingAction.h +++ cfe/trunk/include/clang/Tooling/Refactoring/Rename/RenamingAction.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Provides an action to rename every symbol at a point. +/// Provides an action to rename every symbol at a point. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/include/clang/Tooling/Refactoring/Rename/USRFinder.h =================================================================== --- cfe/trunk/include/clang/Tooling/Refactoring/Rename/USRFinder.h +++ cfe/trunk/include/clang/Tooling/Refactoring/Rename/USRFinder.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Methods for determining the USR of a symbol at a location in source +/// Methods for determining the USR of a symbol at a location in source /// code. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/include/clang/Tooling/Refactoring/Rename/USRFindingAction.h =================================================================== --- cfe/trunk/include/clang/Tooling/Refactoring/Rename/USRFindingAction.h +++ cfe/trunk/include/clang/Tooling/Refactoring/Rename/USRFindingAction.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Provides an action to find all relevant USRs at a point. +/// Provides an action to find all relevant USRs at a point. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/include/clang/Tooling/Refactoring/Rename/USRLocFinder.h =================================================================== --- cfe/trunk/include/clang/Tooling/Refactoring/Rename/USRLocFinder.h +++ cfe/trunk/include/clang/Tooling/Refactoring/Rename/USRLocFinder.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Provides functionality for finding all instances of a USR in a given +/// Provides functionality for finding all instances of a USR in a given /// AST. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/include/clang/Tooling/RefactoringCallbacks.h =================================================================== --- cfe/trunk/include/clang/Tooling/RefactoringCallbacks.h +++ cfe/trunk/include/clang/Tooling/RefactoringCallbacks.h @@ -35,7 +35,7 @@ namespace clang { namespace tooling { -/// \brief Base class for RefactoringCallbacks. +/// Base class for RefactoringCallbacks. /// /// Collects \c tooling::Replacements while running. class RefactoringCallback : public ast_matchers::MatchFinder::MatchCallback { @@ -47,7 +47,7 @@ Replacements Replace; }; -/// \brief Adaptor between \c ast_matchers::MatchFinder and \c +/// Adaptor between \c ast_matchers::MatchFinder and \c /// tooling::RefactoringTool. /// /// Runs AST matchers and stores the \c tooling::Replacements in a map. @@ -74,7 +74,7 @@ std::map<std::string, Replacements> &FileToReplaces; }; -/// \brief Replace the text of the statement bound to \c FromId with the text in +/// Replace the text of the statement bound to \c FromId with the text in /// \c ToText. class ReplaceStmtWithText : public RefactoringCallback { public: @@ -86,7 +86,7 @@ std::string ToText; }; -/// \brief Replace the text of an AST node bound to \c FromId with the result of +/// Replace the text of an AST node bound to \c FromId with the result of /// evaluating the template in \c ToTemplate. /// /// Expressions of the form ${NodeName} in \c ToTemplate will be @@ -109,7 +109,7 @@ std::vector<TemplateElement> Template; }; -/// \brief Replace the text of the statement bound to \c FromId with the text of +/// Replace the text of the statement bound to \c FromId with the text of /// the statement bound to \c ToId. class ReplaceStmtWithStmt : public RefactoringCallback { public: @@ -121,7 +121,7 @@ std::string ToId; }; -/// \brief Replace an if-statement bound to \c Id with the outdented text of its +/// Replace an if-statement bound to \c Id with the outdented text of its /// body, choosing the consequent or the alternative based on whether /// \c PickTrueBranch is true. class ReplaceIfStmtWithItsBody : public RefactoringCallback { Index: cfe/trunk/include/clang/Tooling/ReplacementsYaml.h =================================================================== --- cfe/trunk/include/clang/Tooling/ReplacementsYaml.h +++ cfe/trunk/include/clang/Tooling/ReplacementsYaml.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file defines the structure of a YAML document for serializing +/// This file defines the structure of a YAML document for serializing /// replacements. /// //===----------------------------------------------------------------------===// @@ -25,10 +25,10 @@ namespace llvm { namespace yaml { -/// \brief Specialized MappingTraits to describe how a Replacement is +/// Specialized MappingTraits to describe how a Replacement is /// (de)serialized. template <> struct MappingTraits<clang::tooling::Replacement> { - /// \brief Helper to (de)serialize a Replacement since we don't have direct + /// Helper to (de)serialize a Replacement since we don't have direct /// access to its data members. struct NormalizedReplacement { NormalizedReplacement(const IO &) @@ -59,7 +59,7 @@ } }; -/// \brief Specialized MappingTraits to describe how a +/// Specialized MappingTraits to describe how a /// TranslationUnitReplacements is (de)serialized. template <> struct MappingTraits<clang::tooling::TranslationUnitReplacements> { static void mapping(IO &Io, Index: cfe/trunk/include/clang/Tooling/StandaloneExecution.h =================================================================== --- cfe/trunk/include/clang/Tooling/StandaloneExecution.h +++ cfe/trunk/include/clang/Tooling/StandaloneExecution.h @@ -20,7 +20,7 @@ namespace clang { namespace tooling { -/// \brief A standalone executor that runs FrontendActions on a given set of +/// A standalone executor that runs FrontendActions on a given set of /// TUs in sequence. /// /// By default, this executor uses the following arguments adjusters (as defined @@ -32,7 +32,7 @@ public: static const char *ExecutorName; - /// \brief Init with \p CompilationDatabase and the paths of all files to be + /// Init with \p CompilationDatabase and the paths of all files to be /// proccessed. StandaloneToolExecutor( const CompilationDatabase &Compilations, @@ -40,7 +40,7 @@ std::shared_ptr<PCHContainerOperations> PCHContainerOps = std::make_shared<PCHContainerOperations>()); - /// \brief Init with \p CommonOptionsParser. This is expected to be used by + /// Init with \p CommonOptionsParser. This is expected to be used by /// `createExecutorFromCommandLineArgs` based on commandline options. /// /// The executor takes ownership of \p Options. @@ -58,7 +58,7 @@ std::pair<std::unique_ptr<FrontendActionFactory>, ArgumentsAdjuster>> Actions) override; - /// \brief Set a \c DiagnosticConsumer to use during parsing. + /// Set a \c DiagnosticConsumer to use during parsing. void setDiagnosticConsumer(DiagnosticConsumer *DiagConsumer) { Tool.setDiagnosticConsumer(DiagConsumer); } @@ -75,7 +75,7 @@ Tool.mapVirtualFile(FilePath, Content); } - /// \brief Returns the file manager used in the tool. + /// Returns the file manager used in the tool. /// /// The file manager is shared between all translation units. FileManager &getFiles() { return Tool.getFiles(); } Index: cfe/trunk/include/clang/Tooling/Tooling.h =================================================================== --- cfe/trunk/include/clang/Tooling/Tooling.h +++ cfe/trunk/include/clang/Tooling/Tooling.h @@ -67,7 +67,7 @@ class CompilationDatabase; -/// \brief Interface to process a clang::CompilerInvocation. +/// Interface to process a clang::CompilerInvocation. /// /// If your tool is based on FrontendAction, you should be deriving from /// FrontendActionFactory instead. @@ -75,7 +75,7 @@ public: virtual ~ToolAction(); - /// \brief Perform an action for an invocation. + /// Perform an action for an invocation. virtual bool runInvocation(std::shared_ptr<CompilerInvocation> Invocation, FileManager *Files, @@ -83,7 +83,7 @@ DiagnosticConsumer *DiagConsumer) = 0; }; -/// \brief Interface to generate clang::FrontendActions. +/// Interface to generate clang::FrontendActions. /// /// Having a factory interface allows, for example, a new FrontendAction to be /// created for each translation unit processed by ClangTool. This class is @@ -93,19 +93,19 @@ public: ~FrontendActionFactory() override; - /// \brief Invokes the compiler with a FrontendAction created by create(). + /// Invokes the compiler with a FrontendAction created by create(). bool runInvocation(std::shared_ptr<CompilerInvocation> Invocation, FileManager *Files, std::shared_ptr<PCHContainerOperations> PCHContainerOps, DiagnosticConsumer *DiagConsumer) override; - /// \brief Returns a new clang::FrontendAction. + /// Returns a new clang::FrontendAction. /// /// The caller takes ownership of the returned action. virtual FrontendAction *create() = 0; }; -/// \brief Returns a new FrontendActionFactory for a given type. +/// Returns a new FrontendActionFactory for a given type. /// /// T must derive from clang::FrontendAction. /// @@ -115,25 +115,25 @@ template <typename T> std::unique_ptr<FrontendActionFactory> newFrontendActionFactory(); -/// \brief Callbacks called before and after each source file processed by a +/// Callbacks called before and after each source file processed by a /// FrontendAction created by the FrontedActionFactory returned by \c /// newFrontendActionFactory. class SourceFileCallbacks { public: virtual ~SourceFileCallbacks() = default; - /// \brief Called before a source file is processed by a FrontEndAction. + /// Called before a source file is processed by a FrontEndAction. /// \see clang::FrontendAction::BeginSourceFileAction virtual bool handleBeginSource(CompilerInstance &CI) { return true; } - /// \brief Called after a source file is processed by a FrontendAction. + /// Called after a source file is processed by a FrontendAction. /// \see clang::FrontendAction::EndSourceFileAction virtual void handleEndSource() {} }; -/// \brief Returns a new FrontendActionFactory for any type that provides an +/// Returns a new FrontendActionFactory for any type that provides an /// implementation of newASTConsumer(). /// /// FactoryT must implement: ASTConsumer *newASTConsumer(). @@ -148,7 +148,7 @@ inline std::unique_ptr<FrontendActionFactory> newFrontendActionFactory( FactoryT *ConsumerFactory, SourceFileCallbacks *Callbacks = nullptr); -/// \brief Runs (and deletes) the tool on 'Code' with the -fsyntax-only flag. +/// Runs (and deletes) the tool on 'Code' with the -fsyntax-only flag. /// /// \param ToolAction The action to run over the code. /// \param Code C++ code. @@ -166,7 +166,7 @@ /// file-content. using FileContentMappings = std::vector<std::pair<std::string, std::string>>; -/// \brief Runs (and deletes) the tool on 'Code' with the -fsyntax-only flag and +/// Runs (and deletes) the tool on 'Code' with the -fsyntax-only flag and /// with additional other flags. /// /// \param ToolAction The action to run over the code. @@ -187,7 +187,7 @@ std::make_shared<PCHContainerOperations>(), const FileContentMappings &VirtualMappedFiles = FileContentMappings()); -/// \brief Builds an AST for 'Code'. +/// Builds an AST for 'Code'. /// /// \param Code C++ code. /// \param FileName The file name which 'Code' will be mapped as. @@ -200,7 +200,7 @@ std::shared_ptr<PCHContainerOperations> PCHContainerOps = std::make_shared<PCHContainerOperations>()); -/// \brief Builds an AST for 'Code' with additional flags. +/// Builds an AST for 'Code' with additional flags. /// /// \param Code C++ code. /// \param Args Additional flags to pass on. @@ -220,10 +220,10 @@ std::make_shared<PCHContainerOperations>(), ArgumentsAdjuster Adjuster = getClangStripDependencyFileAdjuster()); -/// \brief Utility to run a FrontendAction in a single clang invocation. +/// Utility to run a FrontendAction in a single clang invocation. class ToolInvocation { public: - /// \brief Create a tool invocation. + /// Create a tool invocation. /// /// \param CommandLine The command line arguments to clang. Note that clang /// uses its binary name (CommandLine[0]) to locate its builtin headers. @@ -239,7 +239,7 @@ std::shared_ptr<PCHContainerOperations> PCHContainerOps = std::make_shared<PCHContainerOperations>()); - /// \brief Create a tool invocation. + /// Create a tool invocation. /// /// \param CommandLine The command line arguments to clang. /// \param Action The action to be executed. @@ -252,19 +252,19 @@ ~ToolInvocation(); - /// \brief Set a \c DiagnosticConsumer to use during parsing. + /// Set a \c DiagnosticConsumer to use during parsing. void setDiagnosticConsumer(DiagnosticConsumer *DiagConsumer) { this->DiagConsumer = DiagConsumer; } - /// \brief Map a virtual file to be used while running the tool. + /// Map a virtual file to be used while running the tool. /// /// \param FilePath The path at which the content will be mapped. /// \param Content A null terminated buffer of the file's content. // FIXME: remove this when all users have migrated! void mapVirtualFile(StringRef FilePath, StringRef Content); - /// \brief Run the clang invocation. + /// Run the clang invocation. /// /// \returns True if there were no errors during execution. bool run(); @@ -287,7 +287,7 @@ DiagnosticConsumer *DiagConsumer = nullptr; }; -/// \brief Utility to run a FrontendAction over a set of files. +/// Utility to run a FrontendAction over a set of files. /// /// This class is written to be usable for command line utilities. /// By default the class uses ClangSyntaxOnlyAdjuster to modify @@ -296,7 +296,7 @@ /// arguments adjuster by calling the appendArgumentsAdjuster() method. class ClangTool { public: - /// \brief Constructs a clang tool to run over a list of files. + /// Constructs a clang tool to run over a list of files. /// /// \param Compilations The CompilationDatabase which contains the compile /// command lines for the given source paths. @@ -315,24 +315,24 @@ ~ClangTool(); - /// \brief Set a \c DiagnosticConsumer to use during parsing. + /// Set a \c DiagnosticConsumer to use during parsing. void setDiagnosticConsumer(DiagnosticConsumer *DiagConsumer) { this->DiagConsumer = DiagConsumer; } - /// \brief Map a virtual file to be used while running the tool. + /// Map a virtual file to be used while running the tool. /// /// \param FilePath The path at which the content will be mapped. /// \param Content A null terminated buffer of the file's content. void mapVirtualFile(StringRef FilePath, StringRef Content); - /// \brief Append a command line arguments adjuster to the adjuster chain. + /// Append a command line arguments adjuster to the adjuster chain. /// /// \param Adjuster An argument adjuster, which will be run on the output of /// previous argument adjusters. void appendArgumentsAdjuster(ArgumentsAdjuster Adjuster); - /// \brief Clear the command line arguments adjuster chain. + /// Clear the command line arguments adjuster chain. void clearArgumentsAdjusters(); /// Runs an action over all files specified in the command line. @@ -343,11 +343,11 @@ /// some files are skipped due to missing compile commands. int run(ToolAction *Action); - /// \brief Create an AST for each file specified in the command line and + /// Create an AST for each file specified in the command line and /// append them to ASTs. int buildASTs(std::vector<std::unique_ptr<ASTUnit>> &ASTs); - /// \brief Returns the file manager used in the tool. + /// Returns the file manager used in the tool. /// /// The file manager is shared between all translation units. FileManager &getFiles() { return *Files; } @@ -436,7 +436,7 @@ new FrontendActionFactoryAdapter(ConsumerFactory, Callbacks)); } -/// \brief Returns the absolute path of \c File, by prepending it with +/// Returns the absolute path of \c File, by prepending it with /// the current directory if \c File is not absolute. /// /// Otherwise returns \c File. @@ -450,7 +450,7 @@ /// \param File Either an absolute or relative path. std::string getAbsolutePath(StringRef File); -/// \brief Changes CommandLine to contain implicit flags that would have been +/// Changes CommandLine to contain implicit flags that would have been /// defined had the compiler driver been invoked through the path InvokedAs. /// /// For example, when called with \c InvokedAs set to `i686-linux-android-g++`, @@ -473,7 +473,7 @@ void addTargetAndModeForProgramName(std::vector<std::string> &CommandLine, StringRef InvokedAs); -/// \brief Creates a \c CompilerInvocation. +/// Creates a \c CompilerInvocation. CompilerInvocation *newInvocation(DiagnosticsEngine *Diagnostics, const llvm::opt::ArgStringList &CC1Args); Index: cfe/trunk/lib/ARCMigrate/ARCMT.cpp =================================================================== --- cfe/trunk/lib/ARCMigrate/ARCMT.cpp +++ cfe/trunk/lib/ARCMigrate/ARCMT.cpp @@ -503,7 +503,7 @@ } // end anonymous namespace. -/// \brief Anchor for VTable. +/// Anchor for VTable. MigrationProcess::RewriteListener::~RewriteListener() { } MigrationProcess::MigrationProcess( Index: cfe/trunk/lib/ARCMigrate/ObjCMT.cpp =================================================================== --- cfe/trunk/lib/ARCMigrate/ObjCMT.cpp +++ cfe/trunk/lib/ARCMigrate/ObjCMT.cpp @@ -226,7 +226,7 @@ isa<ParenListExpr>(Expr) || isa<SizeOfPackExpr>(Expr)); } - /// \brief - Rewrite message expression for Objective-C setter and getters into + /// - Rewrite message expression for Objective-C setter and getters into /// property-dot syntax. bool rewriteToPropertyDotSyntax(const ObjCMessageExpr *Msg, Preprocessor &PP, @@ -1065,7 +1065,7 @@ return true; } -/// \brief Check whether the two versions match. +/// Check whether the two versions match. static bool versionsMatch(const VersionTuple &X, const VersionTuple &Y) { return (X == Y); } Index: cfe/trunk/lib/ARCMigrate/TransEmptyStatementsAndDealloc.cpp =================================================================== --- cfe/trunk/lib/ARCMigrate/TransEmptyStatementsAndDealloc.cpp +++ cfe/trunk/lib/ARCMigrate/TransEmptyStatementsAndDealloc.cpp @@ -73,7 +73,7 @@ namespace { -/// \brief Returns true if the statement became empty due to previous +/// Returns true if the statement became empty due to previous /// transformations. class EmptyChecker : public StmtVisitor<EmptyChecker, bool> { ASTContext &Ctx; Index: cfe/trunk/lib/ARCMigrate/TransGCAttrs.cpp =================================================================== --- cfe/trunk/lib/ARCMigrate/TransGCAttrs.cpp +++ cfe/trunk/lib/ARCMigrate/TransGCAttrs.cpp @@ -23,7 +23,7 @@ namespace { -/// \brief Collects all the places where GC attributes __strong/__weak occur. +/// Collects all the places where GC attributes __strong/__weak occur. class GCAttrsCollector : public RecursiveASTVisitor<GCAttrsCollector> { MigrationContext &MigrateCtx; bool FullyMigratable; Index: cfe/trunk/lib/ARCMigrate/TransProperties.cpp =================================================================== --- cfe/trunk/lib/ARCMigrate/TransProperties.cpp +++ cfe/trunk/lib/ARCMigrate/TransProperties.cpp @@ -330,7 +330,7 @@ return false; } - // \brief Returns true if all declarations in the @property have GC __weak. + // Returns true if all declarations in the @property have GC __weak. bool hasGCWeak(PropsTy &props, SourceLocation atLoc) const { if (!Pass.isGCMigration()) return false; Index: cfe/trunk/lib/ARCMigrate/TransRetainReleaseDealloc.cpp =================================================================== --- cfe/trunk/lib/ARCMigrate/TransRetainReleaseDealloc.cpp +++ cfe/trunk/lib/ARCMigrate/TransRetainReleaseDealloc.cpp @@ -158,7 +158,7 @@ } private: - /// \brief Checks for idioms where an unused -autorelease is common. + /// Checks for idioms where an unused -autorelease is common. /// /// Returns true for this idiom which is common in property /// setters: @@ -309,7 +309,7 @@ return nullptr; } - /// \brief Check if the retain/release is due to a GCD/XPC macro that are + /// Check if the retain/release is due to a GCD/XPC macro that are /// defined as: /// /// #define dispatch_retain(object) ({ dispatch_object_t _o = (object); _dispatch_object_validate(_o); (void)[_o retain]; }) Index: cfe/trunk/lib/ARCMigrate/TransformActions.cpp =================================================================== --- cfe/trunk/lib/ARCMigrate/TransformActions.cpp +++ cfe/trunk/lib/ARCMigrate/TransformActions.cpp @@ -19,7 +19,7 @@ namespace { -/// \brief Collects transformations and merges them before applying them with +/// Collects transformations and merges them before applying them with /// with applyRewrites(). E.g. if the same source range /// is requested to be removed twice, only one rewriter remove will be invoked. /// Rewrites happen in "transactions"; if one rewrite in the transaction cannot @@ -61,7 +61,7 @@ Range_ExtendsEnd }; - /// \brief A range to remove. It is a character range. + /// A range to remove. It is a character range. struct CharRange { FullSourceLoc Begin, End; @@ -107,7 +107,7 @@ typedef std::map<FullSourceLoc, TextsVec, FullSourceLoc::BeforeThanCompare> InsertsMap; InsertsMap Inserts; - /// \brief A list of ranges to remove. They are always sorted and they never + /// A list of ranges to remove. They are always sorted and they never /// intersect with each other. std::list<CharRange> Removals; @@ -115,7 +115,7 @@ std::vector<std::pair<CharRange, SourceLocation> > IndentationRanges; - /// \brief Keeps text passed to transformation methods. + /// Keeps text passed to transformation methods. llvm::StringMap<bool> UniqueText; public: @@ -167,12 +167,12 @@ void addRemoval(CharSourceRange range); void addInsertion(SourceLocation loc, StringRef text); - /// \brief Stores text passed to the transformation methods to keep the string + /// Stores text passed to the transformation methods to keep the string /// "alive". Since the vast majority of text will be the same, we also unique /// the strings using a StringMap. StringRef getUniqueText(StringRef text); - /// \brief Computes the source location just past the end of the token at + /// Computes the source location just past the end of the token at /// the given source location. If the location points at a macro, the whole /// macro expansion is skipped. static SourceLocation getLocForEndOfToken(SourceLocation loc, @@ -577,14 +577,14 @@ } } -/// \brief Stores text passed to the transformation methods to keep the string +/// Stores text passed to the transformation methods to keep the string /// "alive". Since the vast majority of text will be the same, we also unique /// the strings using a StringMap. StringRef TransformActionsImpl::getUniqueText(StringRef text) { return UniqueText.insert(std::make_pair(text, false)).first->first(); } -/// \brief Computes the source location just past the end of the token at +/// Computes the source location just past the end of the token at /// the given source location. If the location points at a macro, the whole /// macro expansion is skipped. SourceLocation TransformActionsImpl::getLocForEndOfToken(SourceLocation loc, Index: cfe/trunk/lib/ARCMigrate/Transforms.h =================================================================== --- cfe/trunk/lib/ARCMigrate/Transforms.h +++ cfe/trunk/lib/ARCMigrate/Transforms.h @@ -89,7 +89,7 @@ SourceLocation Loc; QualType ModifiedType; Decl *Dcl; - /// \brief true if the attribute is owned, e.g. it is in a body and not just + /// true if the attribute is owned, e.g. it is in a body and not just /// in an interface. bool FullyMigratable; }; @@ -97,7 +97,7 @@ llvm::DenseSet<unsigned> AttrSet; llvm::DenseSet<unsigned> RemovedAttrSet; - /// \brief Set of raw '@' locations for 'assign' properties group that contain + /// Set of raw '@' locations for 'assign' properties group that contain /// GC __weak. llvm::DenseSet<unsigned> AtPropsWeak; @@ -156,21 +156,21 @@ // Helpers. //===----------------------------------------------------------------------===// -/// \brief Determine whether we can add weak to the given type. +/// Determine whether we can add weak to the given type. bool canApplyWeak(ASTContext &Ctx, QualType type, bool AllowOnUnknownClass = false); bool isPlusOneAssign(const BinaryOperator *E); bool isPlusOne(const Expr *E); -/// \brief 'Loc' is the end of a statement range. This returns the location +/// 'Loc' is the end of a statement range. This returns the location /// immediately after the semicolon following the statement. /// If no semicolon is found or the location is inside a macro, the returned /// source location will be invalid. SourceLocation findLocationAfterSemi(SourceLocation loc, ASTContext &Ctx, bool IsDecl = false); -/// \brief 'Loc' is the end of a statement range. This returns the location +/// 'Loc' is the end of a statement range. This returns the location /// of the semicolon following the statement. /// If no semicolon is found or the location is inside a macro, the returned /// source location will be invalid. @@ -179,7 +179,7 @@ bool hasSideEffects(Expr *E, ASTContext &Ctx); bool isGlobalVar(Expr *E); -/// \brief Returns "nil" or "0" if 'nil' macro is not actually defined. +/// Returns "nil" or "0" if 'nil' macro is not actually defined. StringRef getNilString(MigrationPass &Pass); template <typename BODY_TRANS> Index: cfe/trunk/lib/ARCMigrate/Transforms.cpp =================================================================== --- cfe/trunk/lib/ARCMigrate/Transforms.cpp +++ cfe/trunk/lib/ARCMigrate/Transforms.cpp @@ -111,7 +111,7 @@ return implCE && implCE->getCastKind() == CK_ARCConsumeObject; } -/// \brief 'Loc' is the end of a statement range. This returns the location +/// 'Loc' is the end of a statement range. This returns the location /// immediately after the semicolon following the statement. /// If no semicolon is found or the location is inside a macro, the returned /// source location will be invalid. @@ -123,7 +123,7 @@ return SemiLoc.getLocWithOffset(1); } -/// \brief \arg Loc is the end of a statement range. This returns the location +/// \arg Loc is the end of a statement range. This returns the location /// of the semicolon following the statement. /// If no semicolon is found or the location is inside a macro, the returned /// source location will be invalid. Index: cfe/trunk/lib/AST/ASTContext.cpp =================================================================== --- cfe/trunk/lib/AST/ASTContext.cpp +++ cfe/trunk/lib/AST/ASTContext.cpp @@ -1259,7 +1259,7 @@ return *Result; } -/// \brief Erase the attributes corresponding to the given declaration. +/// Erase the attributes corresponding to the given declaration. void ASTContext::eraseDeclAttrs(const Decl *D) { llvm::DenseMap<const Decl*, AttrVec*>::iterator Pos = DeclAttrs.find(D); if (Pos != DeclAttrs.end()) { @@ -2336,7 +2336,7 @@ return false; } -/// \brief Get the implementation of ObjCInterfaceDecl, or nullptr if none +/// Get the implementation of ObjCInterfaceDecl, or nullptr if none /// exists. ObjCImplementationDecl *ASTContext::getObjCImplementation(ObjCInterfaceDecl *D) { llvm::DenseMap<ObjCContainerDecl*, ObjCImplDecl*>::iterator @@ -2346,7 +2346,7 @@ return nullptr; } -/// \brief Get the implementation of ObjCCategoryDecl, or nullptr if none +/// Get the implementation of ObjCCategoryDecl, or nullptr if none /// exists. ObjCCategoryImplDecl *ASTContext::getObjCImplementation(ObjCCategoryDecl *D) { llvm::DenseMap<ObjCContainerDecl*, ObjCImplDecl*>::iterator @@ -2356,14 +2356,14 @@ return nullptr; } -/// \brief Set the implementation of ObjCInterfaceDecl. +/// Set the implementation of ObjCInterfaceDecl. void ASTContext::setObjCImplementation(ObjCInterfaceDecl *IFaceD, ObjCImplementationDecl *ImplD) { assert(IFaceD && ImplD && "Passed null params"); ObjCImpls[IFaceD] = ImplD; } -/// \brief Set the implementation of ObjCCategoryDecl. +/// Set the implementation of ObjCCategoryDecl. void ASTContext::setObjCImplementation(ObjCCategoryDecl *CatD, ObjCCategoryImplDecl *ImplD) { assert(CatD && ImplD && "Passed null params"); @@ -2393,7 +2393,7 @@ return nullptr; } -/// \brief Get the copy initialization expression of VarDecl, or nullptr if +/// Get the copy initialization expression of VarDecl, or nullptr if /// none exists. Expr *ASTContext::getBlockVarCopyInits(const VarDecl*VD) { assert(VD && "Passed null params"); @@ -2404,7 +2404,7 @@ return (I != BlockVarCopyInits.end()) ? I->second : nullptr; } -/// \brief Set the copy inialization expression of a block var decl. +/// Set the copy inialization expression of a block var decl. void ASTContext::setBlockVarCopyInits(VarDecl*VD, Expr* Init) { assert(VD && Init && "Passed null params"); assert(VD->hasAttr<BlocksAttr>() && @@ -3355,7 +3355,7 @@ return QualType(sugaredType, 0); } -/// \brief Determine whether \p T is canonical as the result type of a function. +/// Determine whether \p T is canonical as the result type of a function. static bool isCanonicalResultType(QualType T) { return T.isCanonical() && (T.getObjCLifetime() == Qualifiers::OCL_None || @@ -3747,7 +3747,7 @@ return QualType(type, 0); } -/// \brief Retrieve a substitution-result type. +/// Retrieve a substitution-result type. QualType ASTContext::getSubstTemplateTypeParmType(const TemplateTypeParmType *Parm, QualType Replacement) const { @@ -3770,7 +3770,7 @@ return QualType(SubstParm, 0); } -/// \brief Retrieve a +/// Retrieve a QualType ASTContext::getSubstTemplateTypeParmPackType( const TemplateTypeParmType *Parm, const TemplateArgument &ArgPack) { @@ -3804,7 +3804,7 @@ return QualType(SubstParm, 0); } -/// \brief Retrieve the template type parameter type for a template +/// Retrieve the template type parameter type for a template /// parameter or parameter pack with the given depth, index, and (optionally) /// name. QualType ASTContext::getTemplateTypeParmType(unsigned Depth, unsigned Index, @@ -4580,7 +4580,7 @@ return QualType(tot, 0); } -/// \brief Unlike many "get<Type>" functions, we don't unique DecltypeType +/// Unlike many "get<Type>" functions, we don't unique DecltypeType /// nodes. This would never be helpful, since each such type has its own /// expression, and would not give a significant memory saving, since there /// is an Expr tree under each such type. @@ -4801,14 +4801,14 @@ return getFromTargetType(Target->getPtrDiffType(0)); } -/// \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 ASTContext::getUnsignedPointerDiffType() const { return getFromTargetType(Target->getUnsignedPtrDiffType(0)); } -/// \brief Return the unique type for "pid_t" defined in +/// Return the unique type for "pid_t" defined in /// <sys/types.h>. We need this to compute the correct type for vfork(). QualType ASTContext::getProcessIDType() const { return getFromTargetType(Target->getProcessIDType()); @@ -5374,7 +5374,7 @@ } } -/// \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 @@ -5468,7 +5468,7 @@ return (PromotableSize != IntSize) ? IntTy : UnsignedIntTy; } -/// \brief Recurses in pointer/array types until it finds an objc retainable +/// Recurses in pointer/array types until it finds an objc retainable /// type and returns its ownership. Qualifiers::ObjCLifetime ASTContext::getInnerObjCOwnership(QualType T) const { while (!T.isNull()) { @@ -7242,7 +7242,7 @@ ObjCConstantStringType = getObjCInterfaceType(Decl); } -/// \brief Retrieve the template name that corresponds to a non-empty +/// Retrieve the template name that corresponds to a non-empty /// lookup. TemplateName ASTContext::getOverloadedTemplateName(UnresolvedSetIterator Begin, @@ -7266,7 +7266,7 @@ return TemplateName(OT); } -/// \brief Retrieve the template name that represents a qualified +/// Retrieve the template name that represents a qualified /// template name such as \c std::vector. TemplateName ASTContext::getQualifiedTemplateName(NestedNameSpecifier *NNS, @@ -7290,7 +7290,7 @@ return TemplateName(QTN); } -/// \brief Retrieve the template name that represents a dependent +/// Retrieve the template name that represents a dependent /// template name such as \c MetaFun::template apply. TemplateName ASTContext::getDependentTemplateName(NestedNameSpecifier *NNS, @@ -7326,7 +7326,7 @@ return TemplateName(QTN); } -/// \brief Retrieve the template name that represents a dependent +/// Retrieve the template name that represents a dependent /// template name such as \c MetaFun::template operator+. TemplateName ASTContext::getDependentTemplateName(NestedNameSpecifier *NNS, @@ -9760,7 +9760,7 @@ } /// @} - /// \brief A \c RecursiveASTVisitor that builds a map from nodes to their + /// A \c RecursiveASTVisitor that builds a map from nodes to their /// parents as defined by the \c RecursiveASTVisitor. /// /// Note that the relationship described here is purely in terms of AST @@ -9770,7 +9770,7 @@ /// FIXME: Currently only builds up the map using \c Stmt and \c Decl nodes. class ParentMapASTVisitor : public RecursiveASTVisitor<ParentMapASTVisitor> { public: - /// \brief Builds and returns the translation unit's parent map. + /// Builds and returns the translation unit's parent map. /// /// The caller takes ownership of the returned \c ParentMap. static std::pair<ASTContext::ParentMapPointers *, Index: cfe/trunk/lib/AST/ASTDiagnostic.cpp =================================================================== --- cfe/trunk/lib/AST/ASTDiagnostic.cpp +++ cfe/trunk/lib/AST/ASTDiagnostic.cpp @@ -200,7 +200,7 @@ return QC.apply(Context, QT); } -/// \brief Convert the given type to a string suitable for printing as part of +/// Convert the given type to a string suitable for printing as part of /// a diagnostic. /// /// There are four main criteria when determining whether we should have an Index: cfe/trunk/lib/AST/ASTImporter.cpp =================================================================== --- cfe/trunk/lib/AST/ASTImporter.cpp +++ cfe/trunk/lib/AST/ASTImporter.cpp @@ -146,17 +146,17 @@ Optional<LambdaCapture> ImportLambdaCapture(const LambdaCapture &From); - /// \brief What we should import from the definition. + /// What we should import from the definition. enum ImportDefinitionKind { - /// \brief Import the default subset of the definition, which might be + /// Import the default subset of the definition, which might be /// nothing (if minimal import is set) or might be everything (if minimal /// import is not set). IDK_Default, - /// \brief Import everything. + /// Import everything. IDK_Everything, - /// \brief Import only the bare bones needed to establish a valid + /// Import only the bare bones needed to establish a valid /// DeclContext. IDK_Basic }; Index: cfe/trunk/lib/AST/CXXInheritance.cpp =================================================================== --- cfe/trunk/lib/AST/CXXInheritance.cpp +++ cfe/trunk/lib/AST/CXXInheritance.cpp @@ -34,7 +34,7 @@ using namespace clang; -/// \brief Computes the set of declarations referenced by these base +/// Computes the set of declarations referenced by these base /// paths. void CXXBasePaths::ComputeDeclsFound() { assert(NumDeclsFound == 0 && !DeclsFound && @@ -76,7 +76,7 @@ DetectedVirtual = nullptr; } -/// @brief Swaps the contents of this CXXBasePaths structure with the +/// Swaps the contents of this CXXBasePaths structure with the /// contents of Other. void CXXBasePaths::swap(CXXBasePaths &Other) { std::swap(Origin, Other.Origin); @@ -567,11 +567,11 @@ namespace { class FinalOverriderCollector { - /// \brief The number of subobjects of a given class type that + /// The number of subobjects of a given class type that /// occur within the class hierarchy. llvm::DenseMap<const CXXRecordDecl *, unsigned> SubobjectCount; - /// \brief Overriders for each virtual base subobject. + /// Overriders for each virtual base subobject. llvm::DenseMap<const CXXRecordDecl *, CXXFinalOverriderMap *> VirtualOverriders; CXXFinalOverriderMap FinalOverriders; Index: cfe/trunk/lib/AST/CommentBriefParser.cpp =================================================================== --- cfe/trunk/lib/AST/CommentBriefParser.cpp +++ cfe/trunk/lib/AST/CommentBriefParser.cpp @@ -122,8 +122,8 @@ if (Tok.is(tok::newline)) { ConsumeToken(); // We found a paragraph end. This ends the brief description if - // \\brief command or its equivalent was explicitly used. - // Stop scanning text because an explicit \\brief paragraph is the + // \command or its equivalent was explicitly used. + // Stop scanning text because an explicit \paragraph is the // preffered one. if (InBrief) break; Index: cfe/trunk/lib/AST/CommentSema.cpp =================================================================== --- cfe/trunk/lib/AST/CommentSema.cpp +++ cfe/trunk/lib/AST/CommentSema.cpp @@ -215,7 +215,7 @@ << Comment->getSourceRange(); } -/// \brief Turn a string into the corresponding PassDirection or -1 if it's not +/// Turn a string into the corresponding PassDirection or -1 if it's not /// valid. static int getParamPassDirection(StringRef Arg) { return llvm::StringSwitch<int>(Arg) Index: cfe/trunk/lib/AST/Decl.cpp =================================================================== --- cfe/trunk/lib/AST/Decl.cpp +++ cfe/trunk/lib/AST/Decl.cpp @@ -243,7 +243,7 @@ return getTypeLinkageAndVisibility(&T); } -/// \brief Get the most restrictive linkage for the types in the given +/// Get the most restrictive linkage for the types in the given /// template parameter list. For visibility purposes, template /// parameters are part of the signature of a template. LinkageInfo LinkageComputer::getLVForTemplateParameterList( @@ -310,7 +310,7 @@ return Ret; } -/// \brief Get the most restrictive linkage for the types and +/// Get the most restrictive linkage for the types and /// declarations in the given template argument list. /// /// Note that we don't take an LVComputationKind because we always @@ -2873,7 +2873,7 @@ FunctionDecl *FunctionDecl::getCanonicalDecl() { return getFirstDecl(); } -/// \brief Returns a value indicating whether this function +/// Returns a value indicating whether this function /// corresponds to a builtin function. /// /// The function corresponds to a built-in function if it is @@ -2975,7 +2975,7 @@ return NumRequiredArgs; } -/// \brief The combination of the extern and inline keywords under MSVC forces +/// The combination of the extern and inline keywords under MSVC forces /// the function to be required. /// /// Note: This function assumes that we will only get called when isInlined() @@ -3024,7 +3024,7 @@ return false; } -/// \brief For a function declaration in C or C++, determine whether this +/// For a function declaration in C or C++, determine whether this /// declaration causes the definition to be externally visible. /// /// For instance, this determines if adding the current declaration to the set @@ -3139,7 +3139,7 @@ return getAttr<WarnUnusedResultAttr>(); } -/// \brief For an inline function definition in C, or for a gnu_inline function +/// For an inline function definition in C, or for a gnu_inline function /// in C++, determine whether the definition will be externally visible. /// /// Inline function definitions are always available for inlining optimizations. @@ -4481,7 +4481,7 @@ // ImportDecl Implementation //===----------------------------------------------------------------------===// -/// \brief Retrieve the number of module identifiers needed to name the given +/// Retrieve the number of module identifiers needed to name the given /// module. static unsigned getNumModuleIdentifiers(Module *Mod) { unsigned Result = 1; Index: cfe/trunk/lib/AST/DeclBase.cpp =================================================================== --- cfe/trunk/lib/AST/DeclBase.cpp +++ cfe/trunk/lib/AST/DeclBase.cpp @@ -493,7 +493,7 @@ return RealizedPlatform; } -/// \brief Determine the availability of the given declaration based on +/// Determine the availability of the given declaration based on /// the target platform. /// /// When it returns an availability result other than \c AR_Available, @@ -1003,7 +1003,7 @@ DeclContext::~DeclContext() = default; -/// \brief Find the parent context of this context that will be +/// Find the parent context of this context that will be /// used for unqualified name lookup. /// /// Generally, the parent lookup context is the semantic context. However, for @@ -1221,7 +1221,7 @@ return std::make_pair(FirstNewDecl, PrevDecl); } -/// \brief We have just acquired external visible storage, and we already have +/// We have just acquired external visible storage, and we already have /// built a lookup map. For every name in the map, pull in the new names from /// the external storage. void DeclContext::reconcileExternalVisibleStorage() const { @@ -1232,7 +1232,7 @@ Lookup.second.setHasExternalDecls(); } -/// \brief Load the declarations within this lexical storage from an +/// Load the declarations within this lexical storage from an /// external source. /// \return \c true if any declarations were added. bool Index: cfe/trunk/lib/AST/DeclCXX.cpp =================================================================== --- cfe/trunk/lib/AST/DeclCXX.cpp +++ cfe/trunk/lib/AST/DeclCXX.cpp @@ -2305,7 +2305,7 @@ getParamDecl(0)->getType()->isRValueReferenceType(); } -/// \brief Determine whether this is a copy or move constructor. +/// Determine whether this is a copy or move constructor. bool CXXConstructorDecl::isCopyOrMoveConstructor(unsigned &TypeQuals) const { // C++ [class.copy]p2: // A non-template constructor for class X is a copy constructor Index: cfe/trunk/lib/AST/DeclObjC.cpp =================================================================== --- cfe/trunk/lib/AST/DeclObjC.cpp +++ cfe/trunk/lib/AST/DeclObjC.cpp @@ -109,7 +109,7 @@ return nullptr; } -/// \brief This routine returns 'true' if a user declared setter method was +/// This routine returns 'true' if a user declared setter method was /// found in the class, its protocols, its super classes or categories. /// It also returns 'true' if one of its categories has declared a 'readwrite' /// property. This is because, user must provide a setter method for the @@ -854,7 +854,7 @@ setParamsAndSelLocs(C, Params, 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 *ObjCMethodDecl::getNextRedeclarationImpl() { Index: cfe/trunk/lib/AST/DeclOpenMP.cpp =================================================================== --- cfe/trunk/lib/AST/DeclOpenMP.cpp +++ cfe/trunk/lib/AST/DeclOpenMP.cpp @@ -7,7 +7,7 @@ // //===----------------------------------------------------------------------===// /// \file -/// \brief This file implements OMPThreadPrivateDecl, OMPCapturedExprDecl +/// This file implements OMPThreadPrivateDecl, OMPCapturedExprDecl /// classes. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/lib/AST/Expr.cpp =================================================================== --- cfe/trunk/lib/AST/Expr.cpp +++ cfe/trunk/lib/AST/Expr.cpp @@ -230,7 +230,7 @@ // Primary Expressions. //===----------------------------------------------------------------------===// -/// \brief Compute the type-, value-, and instantiation-dependence of a +/// Compute the type-, value-, and instantiation-dependence of a /// declaration reference /// based on the declaration being referenced. static void computeDeclRefDependence(const ASTContext &Ctx, NamedDecl *D, @@ -2632,7 +2632,7 @@ return isa<CXXDefaultArgExpr>(E); } -/// \brief Skip over any no-op casts and any temporary-binding +/// Skip over any no-op casts and any temporary-binding /// expressions. static const Expr *skipTemporaryBindingsNoOpCastsAndParens(const Expr *E) { if (const MaterializeTemporaryExpr *M = dyn_cast<MaterializeTemporaryExpr>(E)) @@ -2934,7 +2934,7 @@ } namespace { - /// \brief Look for any side effects within a Stmt. + /// Look for any side effects within a Stmt. class SideEffectFinder : public ConstEvaluatedExprVisitor<SideEffectFinder> { typedef ConstEvaluatedExprVisitor<SideEffectFinder> Inherited; const bool IncludePossibleEffects; @@ -3230,7 +3230,7 @@ } namespace { - /// \brief Look for a call to a non-trivial function within an expression. + /// Look for a call to a non-trivial function within an expression. class NonTrivialCallFinder : public ConstEvaluatedExprVisitor<NonTrivialCallFinder> { typedef ConstEvaluatedExprVisitor<NonTrivialCallFinder> Inherited; @@ -3406,7 +3406,7 @@ return NPCK_ZeroExpression; } -/// \brief If this expression is an l-value for an Objective C +/// If this expression is an l-value for an Objective C /// property, find the underlying property reference expression. const ObjCPropertyRefExpr *Expr::getObjCProperty() const { const Expr *E = this; @@ -3830,7 +3830,7 @@ return getSubExpr(D.ArrayOrRange.Index + 2); } -/// \brief Replaces the designator at index @p Idx with the series +/// Replaces the designator at index @p Idx with the series /// of designators in [First, Last). void DesignatedInitExpr::ExpandDesignator(const ASTContext &C, unsigned Idx, const Designator *First, Index: cfe/trunk/lib/AST/ExprConstant.cpp =================================================================== --- cfe/trunk/lib/AST/ExprConstant.cpp +++ cfe/trunk/lib/AST/ExprConstant.cpp @@ -686,11 +686,11 @@ /// notes attached to it will also be stored, otherwise they will not be. bool HasActiveDiagnostic; - /// \brief Have we emitted a diagnostic explaining why we couldn't constant + /// Have we emitted a diagnostic explaining why we couldn't constant /// fold (not just why it's not strictly a constant expression)? bool HasFoldFailureDiagnostic; - /// \brief Whether or not we're currently speculatively evaluating. + /// Whether or not we're currently speculatively evaluating. bool IsSpeculativelyEvaluating; enum EvaluationMode { @@ -3271,7 +3271,7 @@ return CompleteObject(BaseVal, BaseType, LifetimeStartedInEvaluation); } -/// \brief Perform an lvalue-to-rvalue conversion on the given glvalue. This +/// Perform an lvalue-to-rvalue conversion on the given glvalue. This /// can also be used for 'lvalue-to-lvalue' conversions for looking up the /// glvalue referred to by an entity of reference type. /// @@ -3834,7 +3834,7 @@ } namespace { -/// \brief A location where the result (returned value) of evaluating a +/// A location where the result (returned value) of evaluating a /// statement should be stored. struct StmtResult { /// The APValue that should be filled in with the returned value. @@ -5553,7 +5553,7 @@ // Pointer Evaluation //===----------------------------------------------------------------------===// -/// \brief Attempts to compute the number of bytes available at the pointer +/// Attempts to compute the number of bytes available at the pointer /// returned by a function with the alloc_size attribute. Returns true if we /// were successful. Places an unsigned number into `Result`. /// @@ -5602,7 +5602,7 @@ return true; } -/// \brief Convenience function. LVal's base must be a call to an alloc_size +/// Convenience function. LVal's base must be a call to an alloc_size /// function. static bool getBytesReturnedByAllocSizeCall(const ASTContext &Ctx, const LValue &LVal, @@ -5614,7 +5614,7 @@ return getBytesReturnedByAllocSizeCall(Ctx, CE, Result); } -/// \brief Attempts to evaluate the given LValueBase as the result of a call to +/// Attempts to evaluate the given LValueBase as the result of a call to /// a function with the alloc_size attribute. If it was possible to do so, this /// function will return true, make Result's Base point to said function call, /// and mark Result's Base as invalid. @@ -7730,7 +7730,7 @@ return true; } -/// \brief Tries to evaluate the __builtin_object_size for @p E. If successful, +/// Tries to evaluate the __builtin_object_size for @p E. If successful, /// returns true and stores the result in @p Size. /// /// If @p WasError is non-null, this will report whether the failure to evaluate @@ -8151,7 +8151,7 @@ A.getLValueVersion() == B.getLValueVersion()); } -/// \brief Determine whether this is a pointer past the end of the complete +/// Determine whether this is a pointer past the end of the complete /// object referred to by the lvalue. static bool isOnePastTheEndOfCompleteObject(const ASTContext &Ctx, const LValue &LV) { @@ -8180,7 +8180,7 @@ namespace { -/// \brief Data recursive integer evaluator of certain binary operators. +/// Data recursive integer evaluator of certain binary operators. /// /// We use a data recursive algorithm for binary operators so that we are able /// to handle extreme cases of chained binary operators without causing stack @@ -8225,7 +8225,7 @@ DataRecursiveIntBinOpEvaluator(IntExprEvaluator &IntEval, APValue &Result) : IntEval(IntEval), Info(IntEval.getEvalInfo()), FinalResult(Result) { } - /// \brief True if \param E is a binary operator that we are going to handle + /// True if \param E is a binary operator that we are going to handle /// data recursively. /// We handle binary operators that are comma, logical, or that have operands /// with integral or enumeration type. @@ -8266,7 +8266,7 @@ return Info.CCEDiag(E, D); } - // \brief Returns true if visiting the RHS is necessary, false otherwise. + // Returns true if visiting the RHS is necessary, false otherwise. bool VisitBinOpLHSOnly(EvalResult &LHSResult, const BinaryOperator *E, bool &SuppressRHSDiags); Index: cfe/trunk/lib/AST/ItaniumCXXABI.cpp =================================================================== --- cfe/trunk/lib/AST/ItaniumCXXABI.cpp +++ cfe/trunk/lib/AST/ItaniumCXXABI.cpp @@ -101,7 +101,7 @@ namespace { -/// \brief Keeps track of the mangled names of lambda expressions and block +/// Keeps track of the mangled names of lambda expressions and block /// literals within a particular context. class ItaniumNumberingContext : public MangleNumberingContext { llvm::DenseMap<const Type *, unsigned> ManglingNumbers; Index: cfe/trunk/lib/AST/MicrosoftCXXABI.cpp =================================================================== --- cfe/trunk/lib/AST/MicrosoftCXXABI.cpp +++ cfe/trunk/lib/AST/MicrosoftCXXABI.cpp @@ -25,7 +25,7 @@ namespace { -/// \brief Numbers things which need to correspond across multiple TUs. +/// Numbers things which need to correspond across multiple TUs. /// Typically these are things like static locals, lambdas, or blocks. class MicrosoftNumberingContext : public MangleNumberingContext { llvm::DenseMap<const Type *, unsigned> ManglingNumbers; Index: cfe/trunk/lib/AST/MicrosoftMangle.cpp =================================================================== --- cfe/trunk/lib/AST/MicrosoftMangle.cpp +++ cfe/trunk/lib/AST/MicrosoftMangle.cpp @@ -76,7 +76,7 @@ return nullptr; } -/// \brief Retrieve the declaration context that should be used when mangling +/// Retrieve the declaration context that should be used when mangling /// the given declaration. static const DeclContext *getEffectiveDeclContext(const Decl *D) { // The ABI assumes that lambda closure types that occur within Index: cfe/trunk/lib/AST/NSAPI.cpp =================================================================== --- cfe/trunk/lib/AST/NSAPI.cpp +++ cfe/trunk/lib/AST/NSAPI.cpp @@ -471,15 +471,15 @@ return None; } -/// \brief Returns true if \param T is a typedef of "BOOL" in objective-c. +/// Returns true if \param T is a typedef of "BOOL" in objective-c. bool NSAPI::isObjCBOOLType(QualType T) const { return isObjCTypedef(T, "BOOL", BOOLId); } -/// \brief Returns true if \param T is a typedef of "NSInteger" in objective-c. +/// Returns true if \param T is a typedef of "NSInteger" in objective-c. bool NSAPI::isObjCNSIntegerType(QualType T) const { return isObjCTypedef(T, "NSInteger", NSIntegerId); } -/// \brief Returns true if \param T is a typedef of "NSUInteger" in objective-c. +/// Returns true if \param T is a typedef of "NSUInteger" in objective-c. bool NSAPI::isObjCNSUIntegerType(QualType T) const { return isObjCTypedef(T, "NSUInteger", NSUIntegerId); } Index: cfe/trunk/lib/AST/NestedNameSpecifier.cpp =================================================================== --- cfe/trunk/lib/AST/NestedNameSpecifier.cpp +++ cfe/trunk/lib/AST/NestedNameSpecifier.cpp @@ -164,7 +164,7 @@ llvm_unreachable("Invalid NNS Kind!"); } -/// \brief Retrieve the namespace stored in this nested name specifier. +/// Retrieve the namespace stored in this nested name specifier. NamespaceDecl *NestedNameSpecifier::getAsNamespace() const { if (Prefix.getInt() == StoredDecl) return dyn_cast<NamespaceDecl>(static_cast<NamedDecl *>(Specifier)); @@ -172,7 +172,7 @@ return nullptr; } -/// \brief Retrieve the namespace alias stored in this nested name specifier. +/// Retrieve the namespace alias stored in this nested name specifier. NamespaceAliasDecl *NestedNameSpecifier::getAsNamespaceAlias() const { if (Prefix.getInt() == StoredDecl) return dyn_cast<NamespaceAliasDecl>(static_cast<NamedDecl *>(Specifier)); @@ -180,7 +180,7 @@ return nullptr; } -/// \brief Retrieve the record declaration stored in this nested name specifier. +/// Retrieve the record declaration stored in this nested name specifier. CXXRecordDecl *NestedNameSpecifier::getAsRecordDecl() const { switch (Prefix.getInt()) { case StoredIdentifier: @@ -197,7 +197,7 @@ llvm_unreachable("Invalid NNS Kind!"); } -/// \brief Whether this nested name specifier refers to a dependent +/// Whether this nested name specifier refers to a dependent /// type or not. bool NestedNameSpecifier::isDependent() const { switch (getKind()) { @@ -227,7 +227,7 @@ llvm_unreachable("Invalid NNS Kind!"); } -/// \brief Whether this nested name specifier refers to a dependent +/// Whether this nested name specifier refers to a dependent /// type or not. bool NestedNameSpecifier::isInstantiationDependent() const { switch (getKind()) { @@ -268,7 +268,7 @@ llvm_unreachable("Invalid NNS Kind!"); } -/// \brief Print this nested name specifier to the given output +/// Print this nested name specifier to the given output /// stream. void NestedNameSpecifier::print(raw_ostream &OS, @@ -387,7 +387,7 @@ return Length; } -/// \brief Load a (possibly unaligned) source location from a given address +/// Load a (possibly unaligned) source location from a given address /// and offset. static SourceLocation LoadSourceLocation(void *Data, unsigned Offset) { unsigned Raw; @@ -395,7 +395,7 @@ return SourceLocation::getFromRawEncoding(Raw); } -/// \brief Load a (possibly unaligned) pointer from a given address and +/// Load a (possibly unaligned) pointer from a given address and /// offset. static void *LoadPointer(void *Data, unsigned Offset) { void *Result; @@ -479,7 +479,7 @@ BufferSize += End-Start; } -/// \brief Save a source location to the given buffer. +/// Save a source location to the given buffer. static void SaveSourceLocation(SourceLocation Loc, char *&Buffer, unsigned &BufferSize, unsigned &BufferCapacity) { unsigned Raw = Loc.getRawEncoding(); @@ -488,7 +488,7 @@ Buffer, BufferSize, BufferCapacity); } -/// \brief Save a pointer to the given buffer. +/// Save a pointer to the given buffer. static void SavePointer(void *Ptr, char *&Buffer, unsigned &BufferSize, unsigned &BufferCapacity) { Append(reinterpret_cast<char *>(&Ptr), Index: cfe/trunk/lib/AST/QualTypeNames.cpp =================================================================== --- cfe/trunk/lib/AST/QualTypeNames.cpp +++ cfe/trunk/lib/AST/QualTypeNames.cpp @@ -22,7 +22,7 @@ namespace TypeName { -/// \brief Create a NestedNameSpecifier for Namesp and its enclosing +/// Create a NestedNameSpecifier for Namesp and its enclosing /// scopes. /// /// \param[in] Ctx - the AST Context to be used. @@ -35,7 +35,7 @@ const NamespaceDecl *Namesp, bool WithGlobalNsPrefix); -/// \brief Create a NestedNameSpecifier for TagDecl and its enclosing +/// Create a NestedNameSpecifier for TagDecl and its enclosing /// scopes. /// /// \param[in] Ctx - the AST Context to be used. @@ -210,7 +210,7 @@ return nullptr; // no starting '::' if |WithGlobalNsPrefix| is false } -/// \brief Return a fully qualified version of this name specifier. +/// Return a fully qualified version of this name specifier. static NestedNameSpecifier *getFullyQualifiedNestedNameSpecifier( const ASTContext &Ctx, NestedNameSpecifier *Scope, bool WithGlobalNsPrefix) { @@ -262,7 +262,7 @@ llvm_unreachable("bad NNS kind"); } -/// \brief Create a nested name specifier for the declaring context of +/// Create a nested name specifier for the declaring context of /// the type. static NestedNameSpecifier *createNestedNameSpecifierForScopeOf( const ASTContext &Ctx, const Decl *Decl, @@ -314,7 +314,7 @@ return nullptr; } -/// \brief Create a nested name specifier for the declaring context of +/// Create a nested name specifier for the declaring context of /// the type. static NestedNameSpecifier *createNestedNameSpecifierForScopeOf( const ASTContext &Ctx, const Type *TypePtr, @@ -366,7 +366,7 @@ TD->getTypeForDecl()); } -/// \brief Return the fully qualified type, including fully-qualified +/// Return the fully qualified type, including fully-qualified /// versions of any template parameters. QualType getFullyQualifiedType(QualType QT, const ASTContext &Ctx, bool WithGlobalNsPrefix) { Index: cfe/trunk/lib/AST/RawCommentList.cpp =================================================================== --- cfe/trunk/lib/AST/RawCommentList.cpp +++ cfe/trunk/lib/AST/RawCommentList.cpp @@ -80,7 +80,7 @@ } } // unnamed namespace -/// \brief Determines whether there is only whitespace in `Buffer` between `P` +/// Determines whether there is only whitespace in `Buffer` between `P` /// and the previous line. /// \param Buffer The buffer to search in. /// \param P The offset from the beginning of `Buffer` to start from. Index: cfe/trunk/lib/AST/RecordLayoutBuilder.cpp =================================================================== --- cfe/trunk/lib/AST/RecordLayoutBuilder.cpp +++ cfe/trunk/lib/AST/RecordLayoutBuilder.cpp @@ -54,25 +54,25 @@ const BaseSubobjectInfo *Derived; }; -/// \brief Externally provided layout. Typically used when the AST source, such +/// Externally provided layout. Typically used when the AST source, such /// as DWARF, lacks all the information that was available at compile time, such /// as alignment attributes on fields and pragmas in effect. struct ExternalLayout { ExternalLayout() : Size(0), Align(0) {} - /// \brief Overall record size in bits. + /// Overall record size in bits. uint64_t Size; - /// \brief Overall record alignment in bits. + /// Overall record alignment in bits. uint64_t Align; - /// \brief Record field offsets in bits. + /// Record field offsets in bits. llvm::DenseMap<const FieldDecl *, uint64_t> FieldOffsets; - /// \brief Direct, non-virtual base offsets. + /// Direct, non-virtual base offsets. llvm::DenseMap<const CXXRecordDecl *, CharUnits> BaseOffsets; - /// \brief Virtual base offsets. + /// Virtual base offsets. llvm::DenseMap<const CXXRecordDecl *, CharUnits> VirtualBaseOffsets; /// Get the offset of the given field. The external source must provide @@ -579,16 +579,16 @@ /// Alignment - The current alignment of the record layout. CharUnits Alignment; - /// \brief The alignment if attribute packed is not used. + /// The alignment if attribute packed is not used. CharUnits UnpackedAlignment; SmallVector<uint64_t, 16> FieldOffsets; - /// \brief Whether the external AST source has provided a layout for this + /// Whether the external AST source has provided a layout for this /// record. unsigned UseExternalLayout : 1; - /// \brief Whether we need to infer alignment, even when we have an + /// Whether we need to infer alignment, even when we have an /// externally-provided layout. unsigned InferAlignment : 1; @@ -632,7 +632,7 @@ /// pointer, as opposed to inheriting one from a primary base class. bool HasOwnVFPtr; - /// \brief the flag of field offset changing due to packed attribute. + /// the flag of field offset changing due to packed attribute. bool HasPackedField; typedef llvm::DenseMap<const CXXRecordDecl *, CharUnits> BaseOffsetsMapTy; @@ -749,7 +749,7 @@ UpdateAlignment(NewAlignment, NewAlignment); } - /// \brief Retrieve the externally-supplied field offset for the given + /// Retrieve the externally-supplied field offset for the given /// field. /// /// \param Field The field whose offset is being queried. @@ -1962,7 +1962,7 @@ return ExternalFieldOffset; } -/// \brief Get diagnostic %select index for tag kind for +/// Get diagnostic %select index for tag kind for /// field padding diagnostic message. /// WARNING: Indexes apply to particular diagnostics only! /// @@ -2253,9 +2253,9 @@ public: void layout(const RecordDecl *RD); void cxxLayout(const CXXRecordDecl *RD); - /// \brief Initializes size and alignment and honors some flags. + /// Initializes size and alignment and honors some flags. void initializeLayout(const RecordDecl *RD); - /// \brief Initialized C++ layout, compute alignment and virtual alignment and + /// Initialized C++ layout, compute alignment and virtual alignment and /// existence of vfptrs and vbptrs. Alignment is needed before the vfptr is /// laid out. void initializeCXXLayout(const CXXRecordDecl *RD); @@ -2266,93 +2266,93 @@ const ASTRecordLayout *&PreviousBaseLayout); void injectVFPtr(const CXXRecordDecl *RD); void injectVBPtr(const CXXRecordDecl *RD); - /// \brief Lays out the fields of the record. Also rounds size up to + /// Lays out the fields of the record. Also rounds size up to /// alignment. void layoutFields(const RecordDecl *RD); void layoutField(const FieldDecl *FD); void layoutBitField(const FieldDecl *FD); - /// \brief Lays out a single zero-width bit-field in the record and handles + /// Lays out a single zero-width bit-field in the record and handles /// special cases associated with zero-width bit-fields. void layoutZeroWidthBitField(const FieldDecl *FD); void layoutVirtualBases(const CXXRecordDecl *RD); void finalizeLayout(const RecordDecl *RD); - /// \brief Gets the size and alignment of a base taking pragma pack and + /// Gets the size and alignment of a base taking pragma pack and /// __declspec(align) into account. ElementInfo getAdjustedElementInfo(const ASTRecordLayout &Layout); - /// \brief Gets the size and alignment of a field taking pragma pack and + /// Gets the size and alignment of a field taking pragma pack and /// __declspec(align) into account. It also updates RequiredAlignment as a /// side effect because it is most convenient to do so here. ElementInfo getAdjustedElementInfo(const FieldDecl *FD); - /// \brief Places a field at an offset in CharUnits. + /// Places a field at an offset in CharUnits. void placeFieldAtOffset(CharUnits FieldOffset) { FieldOffsets.push_back(Context.toBits(FieldOffset)); } - /// \brief Places a bitfield at a bit offset. + /// Places a bitfield at a bit offset. void placeFieldAtBitOffset(uint64_t FieldOffset) { FieldOffsets.push_back(FieldOffset); } - /// \brief Compute the set of virtual bases for which vtordisps are required. + /// Compute the set of virtual bases for which vtordisps are required. void computeVtorDispSet( llvm::SmallPtrSetImpl<const CXXRecordDecl *> &HasVtorDispSet, const CXXRecordDecl *RD) const; const ASTContext &Context; - /// \brief The size of the record being laid out. + /// The size of the record being laid out. CharUnits Size; - /// \brief The non-virtual size of the record layout. + /// The non-virtual size of the record layout. CharUnits NonVirtualSize; - /// \brief The data size of the record layout. + /// The data size of the record layout. CharUnits DataSize; - /// \brief The current alignment of the record layout. + /// The current alignment of the record layout. CharUnits Alignment; - /// \brief The maximum allowed field alignment. This is set by #pragma pack. + /// The maximum allowed field alignment. This is set by #pragma pack. CharUnits MaxFieldAlignment; - /// \brief The alignment that this record must obey. This is imposed by + /// The alignment that this record must obey. This is imposed by /// __declspec(align()) on the record itself or one of its fields or bases. CharUnits RequiredAlignment; - /// \brief The size of the allocation of the currently active bitfield. + /// The size of the allocation of the currently active bitfield. /// This value isn't meaningful unless LastFieldIsNonZeroWidthBitfield /// is true. CharUnits CurrentBitfieldSize; - /// \brief Offset to the virtual base table pointer (if one exists). + /// Offset to the virtual base table pointer (if one exists). CharUnits VBPtrOffset; - /// \brief Minimum record size possible. + /// Minimum record size possible. CharUnits MinEmptyStructSize; - /// \brief The size and alignment info of a pointer. + /// The size and alignment info of a pointer. ElementInfo PointerInfo; - /// \brief The primary base class (if one exists). + /// The primary base class (if one exists). const CXXRecordDecl *PrimaryBase; - /// \brief The class we share our vb-pointer with. + /// The class we share our vb-pointer with. const CXXRecordDecl *SharedVBPtrBase; - /// \brief The collection of field offsets. + /// The collection of field offsets. SmallVector<uint64_t, 16> FieldOffsets; - /// \brief Base classes and their offsets in the record. + /// Base classes and their offsets in the record. BaseOffsetsMapTy Bases; - /// \brief virtual base classes and their offsets in the record. + /// virtual base classes and their offsets in the record. ASTRecordLayout::VBaseOffsetsMapTy VBases; - /// \brief The number of remaining bits in our last bitfield allocation. + /// The number of remaining bits in our last bitfield allocation. /// This value isn't meaningful unless LastFieldIsNonZeroWidthBitfield is /// true. unsigned RemainingBitsInField; bool IsUnion : 1; - /// \brief True if the last field laid out was a bitfield and was not 0 + /// True if the last field laid out was a bitfield and was not 0 /// width. bool LastFieldIsNonZeroWidthBitfield : 1; - /// \brief True if the class has its own vftable pointer. + /// True if the class has its own vftable pointer. bool HasOwnVFPtr : 1; - /// \brief True if the class has a vbtable pointer. + /// True if the class has a vbtable pointer. bool HasVBPtr : 1; - /// \brief True if the last sub-object within the type is zero sized or the + /// True if the last sub-object within the type is zero sized or the /// object itself is zero sized. This *does not* count members that are not /// records. Only used for MS-ABI. bool EndsWithZeroSizedObject : 1; - /// \brief True if this class is zero sized or first base is zero sized or + /// True if this class is zero sized or first base is zero sized or /// has this property. Only used for MS-ABI. bool LeadsWithZeroSizedBase : 1; - /// \brief True if the external AST source provided a layout for this record. + /// True if the external AST source provided a layout for this record. bool UseExternalLayout : 1; - /// \brief The layout provided by the external AST source. Only active if + /// The layout provided by the external AST source. Only active if /// UseExternalLayout is true. ExternalLayout External; }; Index: cfe/trunk/lib/AST/Stmt.cpp =================================================================== --- cfe/trunk/lib/AST/Stmt.cpp +++ cfe/trunk/lib/AST/Stmt.cpp @@ -128,7 +128,7 @@ return s; } -/// \brief Skip no-op (attributed, compound) container stmts and skip captured +/// Skip no-op (attributed, compound) container stmts and skip captured /// stmt at the top, if \a IgnoreCaptured is true. Stmt *Stmt::IgnoreContainers(bool IgnoreCaptured) { Stmt *S = this; @@ -148,7 +148,7 @@ return S; } -/// \brief Strip off all label-like statements. +/// Strip off all label-like statements. /// /// This will strip off label statements, case statements, attributed /// statements and default statements recursively. @@ -1105,18 +1105,18 @@ return CapDeclAndKind.getPointer(); } -/// \brief Set the outlined function declaration. +/// Set the outlined function declaration. void CapturedStmt::setCapturedDecl(CapturedDecl *D) { assert(D && "null CapturedDecl"); CapDeclAndKind.setPointer(D); } -/// \brief Retrieve the captured region kind. +/// Retrieve the captured region kind. CapturedRegionKind CapturedStmt::getCapturedRegionKind() const { return CapDeclAndKind.getInt(); } -/// \brief Set the captured region kind. +/// Set the captured region kind. void CapturedStmt::setCapturedRegionKind(CapturedRegionKind Kind) { CapDeclAndKind.setInt(Kind); } Index: cfe/trunk/lib/AST/StmtPrinter.cpp =================================================================== --- cfe/trunk/lib/AST/StmtPrinter.cpp +++ cfe/trunk/lib/AST/StmtPrinter.cpp @@ -631,7 +631,7 @@ raw_ostream &OS; const PrintingPolicy &Policy; - /// \brief Process clauses with list of variables. + /// Process clauses with list of variables. template <typename T> void VisitOMPClauseList(T *Node, char StartSym); Index: cfe/trunk/lib/AST/StmtProfile.cpp =================================================================== --- cfe/trunk/lib/AST/StmtProfile.cpp +++ cfe/trunk/lib/AST/StmtProfile.cpp @@ -43,34 +43,34 @@ #define STMT(Node, Base) void Visit##Node(const Node *S); #include "clang/AST/StmtNodes.inc" - /// \brief Visit a declaration that is referenced within an expression + /// Visit a declaration that is referenced within an expression /// or statement. virtual void VisitDecl(const Decl *D) = 0; - /// \brief Visit a type that is referenced within an expression or + /// Visit a type that is referenced within an expression or /// statement. virtual void VisitType(QualType T) = 0; - /// \brief Visit a name that occurs within an expression or statement. + /// Visit a name that occurs within an expression or statement. virtual void VisitName(DeclarationName Name, bool TreatAsDecl = false) = 0; - /// \brief Visit identifiers that are not in Decl's or Type's. + /// Visit identifiers that are not in Decl's or Type's. virtual void VisitIdentifierInfo(IdentifierInfo *II) = 0; - /// \brief Visit a nested-name-specifier that occurs within an expression + /// Visit a nested-name-specifier that occurs within an expression /// or statement. virtual void VisitNestedNameSpecifier(NestedNameSpecifier *NNS) = 0; - /// \brief Visit a template name that occurs within an expression or + /// Visit a template name that occurs within an expression or /// statement. virtual void VisitTemplateName(TemplateName Name) = 0; - /// \brief Visit template arguments that occur within an expression or + /// Visit template arguments that occur within an expression or /// statement. void VisitTemplateArguments(const TemplateArgumentLoc *Args, unsigned NumArgs); - /// \brief Visit a single template argument. + /// Visit a single template argument. void VisitTemplateArgument(const TemplateArgument &Arg); }; @@ -405,7 +405,7 @@ namespace { class OMPClauseProfiler : public ConstOMPClauseVisitor<OMPClauseProfiler> { StmtProfiler *Profiler; - /// \brief Process clauses with list of variables. + /// Process clauses with list of variables. template <typename T> void VisitOMPClauseList(T *Node); Index: cfe/trunk/lib/AST/TemplateBase.cpp =================================================================== --- cfe/trunk/lib/AST/TemplateBase.cpp +++ cfe/trunk/lib/AST/TemplateBase.cpp @@ -43,7 +43,7 @@ using namespace clang; -/// \brief Print a template integral argument value. +/// Print a template integral argument value. /// /// \param TemplArg the TemplateArgument instance to print. /// Index: cfe/trunk/lib/AST/Type.cpp =================================================================== --- cfe/trunk/lib/AST/Type.cpp +++ cfe/trunk/lib/AST/Type.cpp @@ -341,7 +341,7 @@ return T; } -/// \brief This will check for a T (which should be a Type which can act as +/// This will check for a T (which should be a Type which can act as /// sugar, such as a TypedefType) by removing any existing sugar until it /// reaches a T or a non-sugared type. template<typename T> static const T *getAsSugar(const Type *Cur) { @@ -1700,7 +1700,7 @@ return isIntegerType(); } -/// \brief Determine whether this type is an integral type. +/// Determine whether this type is an integral type. /// /// This routine determines whether the given type is an integral type per /// C++ [basic.fundamental]p7. Although the C standard does not define the @@ -1781,7 +1781,7 @@ return false; } -/// \brief Determine whether this type is any of the built-in character +/// Determine whether this type is any of the built-in character /// types. bool Type::isAnyCharacterType() const { const auto *BT = dyn_cast<BuiltinType>(CanonicalType); @@ -1957,7 +1957,7 @@ llvm_unreachable("unknown scalar type"); } -/// \brief Determines whether the type is a C++ aggregate type or C +/// Determines whether the type is a C++ aggregate type or C /// aggregate or union type. /// /// An aggregate type is an array or a class type (struct, union, or @@ -3343,7 +3343,7 @@ namespace { -/// \brief The cached properties of a type. +/// The cached properties of a type. class CachedProperties { Linkage L; bool local; @@ -3510,7 +3510,7 @@ llvm_unreachable("unhandled type class"); } -/// \brief Determine the linkage of this type. +/// Determine the linkage of this type. Linkage Type::getLinkage() const { Cache::ensure(this); return TypeBits.getLinkage(); @@ -3870,13 +3870,13 @@ return type->isObjCRetainableType(); } -/// \brief Determine whether the given type T is a "bridgable" Objective-C type, +/// Determine whether the given type T is a "bridgable" Objective-C type, /// which is either an Objective-C object pointer type or an bool Type::isObjCARCBridgableType() const { return isObjCObjectPointerType() || isBlockPointerType(); } -/// \brief Determine whether the given type T is a "bridgeable" C type. +/// Determine whether the given type T is a "bridgeable" C type. bool Type::isCARCBridgableType() const { const auto *Pointer = getAs<PointerType>(); if (!Pointer) Index: cfe/trunk/lib/AST/TypeLoc.cpp =================================================================== --- cfe/trunk/lib/AST/TypeLoc.cpp +++ cfe/trunk/lib/AST/TypeLoc.cpp @@ -68,7 +68,7 @@ } // namespace -/// \brief Returns the alignment of the type source info data block. +/// Returns the alignment of the type source info data block. unsigned TypeLoc::getLocalAlignmentForType(QualType Ty) { if (Ty.isNull()) return 1; return TypeAligner().Visit(TypeLoc(Ty, nullptr)); @@ -88,7 +88,7 @@ } // namespace -/// \brief Returns the size of the type source info data block. +/// Returns the size of the type source info data block. unsigned TypeLoc::getFullDataSizeForType(QualType Ty) { unsigned Total = 0; TypeLoc TyLoc(Ty, nullptr); @@ -118,13 +118,13 @@ } // namespace -/// \brief Get the next TypeLoc pointed by this TypeLoc, e.g for "int*" the +/// Get the next TypeLoc pointed by this TypeLoc, e.g for "int*" the /// TypeLoc is a PointerLoc and next TypeLoc is for "int". TypeLoc TypeLoc::getNextTypeLocImpl(TypeLoc TL) { return NextLoc().Visit(TL); } -/// \brief Initializes a type location, and all of its children +/// Initializes a type location, and all of its children /// recursively, as if the entire tree had been written in the /// given location. void TypeLoc::initializeImpl(ASTContext &Context, TypeLoc TL, @@ -281,7 +281,7 @@ } // namespace -/// \brief Determines if the given type loc corresponds to a +/// Determines if the given type loc corresponds to a /// TypeSpecTypeLoc. Since there is not actually a TypeSpecType in /// the type hierarchy, this is made somewhat complicated. /// Index: cfe/trunk/lib/AST/TypePrinter.cpp =================================================================== --- cfe/trunk/lib/AST/TypePrinter.cpp +++ cfe/trunk/lib/AST/TypePrinter.cpp @@ -47,7 +47,7 @@ namespace { - /// \brief RAII object that enables printing of the ARC __strong lifetime + /// RAII object that enables printing of the ARC __strong lifetime /// qualifier. class IncludeStrongLifetimeRAII { PrintingPolicy &Policy; @@ -270,7 +270,7 @@ printBefore(Split.Ty, Quals, OS); } -/// \brief Prints the part of the type string before an identifier, e.g. for +/// Prints the part of the type string before an identifier, e.g. for /// "int foo[10]" it prints "int ". void TypePrinter::printBefore(const Type *T,Qualifiers Quals, raw_ostream &OS) { if (Policy.SuppressSpecifiers && T->isSpecifierType()) @@ -323,7 +323,7 @@ printAfter(split.Ty, split.Quals, OS); } -/// \brief Prints the part of the type string after an identifier, e.g. for +/// Prints the part of the type string after an identifier, e.g. for /// "int foo[10]" it prints "[10]". void TypePrinter::printAfter(const Type *T, Qualifiers Quals, raw_ostream &OS) { switch (T->getTypeClass()) { Index: cfe/trunk/lib/AST/VTableBuilder.cpp =================================================================== --- cfe/trunk/lib/AST/VTableBuilder.cpp +++ cfe/trunk/lib/AST/VTableBuilder.cpp @@ -2396,7 +2396,7 @@ MethodVFTableLocationsTy MethodVFTableLocations; - /// \brief Does this class have an RTTI component? + /// Does this class have an RTTI component? bool HasRTTIComponent = false; /// MethodInfo - Contains information about a method in a vtable. Index: cfe/trunk/lib/ASTMatchers/ASTMatchFinder.cpp =================================================================== --- cfe/trunk/lib/ASTMatchers/ASTMatchFinder.cpp +++ cfe/trunk/lib/ASTMatchers/ASTMatchFinder.cpp @@ -511,7 +511,7 @@ TimeBucketRegion() : Bucket(nullptr) {} ~TimeBucketRegion() { setBucket(nullptr); } - /// \brief Start timing for \p NewBucket. + /// Start timing for \p NewBucket. /// /// If there was a bucket already set, it will finish the timing for that /// other bucket. @@ -534,7 +534,7 @@ llvm::TimeRecord *Bucket; }; - /// \brief Runs all the \p Matchers on \p Node. + /// Runs all the \p Matchers on \p Node. /// /// Used by \c matchDispatch() below. template <typename T, typename MC> @@ -590,7 +590,7 @@ } /// @{ - /// \brief Overloads to pair the different node types to their matchers. + /// Overloads to pair the different node types to their matchers. void matchDispatch(const Decl *Node) { return matchWithFilter(ast_type_traits::DynTypedNode::create(*Node)); } @@ -752,14 +752,14 @@ return false; } - /// \brief Bucket to record map. + /// Bucket to record map. /// /// Used to get the appropriate bucket for each matcher. llvm::StringMap<llvm::TimeRecord> TimeByBucket; const MatchFinder::MatchersByType *Matchers; - /// \brief Filtered list of matcher indices for each matcher kind. + /// Filtered list of matcher indices for each matcher kind. /// /// \c Decl and \c Stmt toplevel matchers usually apply to a specific node /// kind (and derived kinds) so it is a waste to try every matcher on every Index: cfe/trunk/lib/ASTMatchers/ASTMatchersInternal.cpp =================================================================== --- cfe/trunk/lib/ASTMatchers/ASTMatchersInternal.cpp +++ cfe/trunk/lib/ASTMatchers/ASTMatchersInternal.cpp @@ -118,7 +118,7 @@ const IntrusiveRefCntPtr<DynMatcherInterface> InnerMatcher; }; -/// \brief A matcher that always returns true. +/// A matcher that always returns true. /// /// We only ever need one instance of this matcher, so we create a global one /// and reuse it to reduce the overhead of the matcher and increase the chance Index: cfe/trunk/lib/ASTMatchers/Dynamic/Marshallers.h =================================================================== --- cfe/trunk/lib/ASTMatchers/Dynamic/Marshallers.h +++ cfe/trunk/lib/ASTMatchers/Dynamic/Marshallers.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Functions templates and classes to wrap matcher construct functions. +/// Functions templates and classes to wrap matcher construct functions. /// /// A collection of template function and classes that provide a generic /// marshalling layer on top of matcher construct functions. @@ -47,7 +47,7 @@ namespace dynamic { namespace internal { -/// \brief Helper template class to just from argument type to the right is/get +/// Helper template class to just from argument type to the right is/get /// functions in VariantValue. /// Used to verify and extract the matcher arguments below. template <class T> struct ArgTypeTraits; @@ -166,7 +166,7 @@ } }; -/// \brief Matcher descriptor interface. +/// Matcher descriptor interface. /// /// Provides a \c create() method that constructs the matcher from the provided /// arguments, and various other methods for type introspection. @@ -222,7 +222,7 @@ return false; } -/// \brief Simple callback implementation. Marshaller and function are provided. +/// Simple callback implementation. Marshaller and function are provided. /// /// This class wraps a function of arbitrary signature and a marshaller /// function into a MatcherDescriptor. @@ -279,7 +279,7 @@ const std::vector<ArgKind> ArgKinds; }; -/// \brief Helper methods to extract and merge all possible typed matchers +/// Helper methods to extract and merge all possible typed matchers /// out of the polymorphic object. template <class PolyMatcher> static void mergePolyMatchers(const PolyMatcher &Poly, @@ -293,7 +293,7 @@ mergePolyMatchers(Poly, Out, typename TypeList::tail()); } -/// \brief Convert the return values of the functions into a VariantMatcher. +/// Convert the return values of the functions into a VariantMatcher. /// /// There are 2 cases right now: The return value is a Matcher<T> or is a /// polymorphic matcher. For the former, we just construct the VariantMatcher. @@ -347,7 +347,7 @@ } }; -/// \brief Variadic marshaller function. +/// Variadic marshaller function. template <typename ResultT, typename ArgT, ResultT (*Func)(ArrayRef<const ArgT *>)> VariantMatcher @@ -383,7 +383,7 @@ return Out; } -/// \brief Matcher descriptor for variadic functions. +/// Matcher descriptor for variadic functions. /// /// This class simply wraps a VariadicFunction with the right signature to export /// it as a MatcherDescriptor. @@ -436,7 +436,7 @@ const ArgKind ArgsKind; }; -/// \brief Return CK_Trivial when appropriate for VariadicDynCastAllOfMatchers. +/// Return CK_Trivial when appropriate for VariadicDynCastAllOfMatchers. class DynCastAllOfMatcherDescriptor : public VariadicFuncMatcherDescriptor { public: template <typename BaseT, typename DerivedT> @@ -470,7 +470,7 @@ const ast_type_traits::ASTNodeKind DerivedKind; }; -/// \brief Helper macros to check the arguments on all marshaller functions. +/// Helper macros to check the arguments on all marshaller functions. #define CHECK_ARG_COUNT(count) \ if (Args.size() != count) { \ Error->addError(NameRange, Error->ET_RegistryWrongArgCount) \ @@ -486,7 +486,7 @@ return VariantMatcher(); \ } -/// \brief 0-arg marshaller function. +/// 0-arg marshaller function. template <typename ReturnType> static VariantMatcher matcherMarshall0(void (*Func)(), StringRef MatcherName, SourceRange NameRange, @@ -497,7 +497,7 @@ return outvalueToVariantMatcher(reinterpret_cast<FuncType>(Func)()); } -/// \brief 1-arg marshaller function. +/// 1-arg marshaller function. template <typename ReturnType, typename ArgType1> static VariantMatcher matcherMarshall1(void (*Func)(), StringRef MatcherName, SourceRange NameRange, @@ -510,7 +510,7 @@ ArgTypeTraits<ArgType1>::get(Args[0].Value))); } -/// \brief 2-arg marshaller function. +/// 2-arg marshaller function. template <typename ReturnType, typename ArgType1, typename ArgType2> static VariantMatcher matcherMarshall2(void (*Func)(), StringRef MatcherName, SourceRange NameRange, @@ -528,7 +528,7 @@ #undef CHECK_ARG_COUNT #undef CHECK_ARG_TYPE -/// \brief Helper class used to collect all the possible overloads of an +/// Helper class used to collect all the possible overloads of an /// argument adaptative matcher function. template <template <typename ToArg, typename FromArg> class ArgumentAdapterT, typename FromTypes, typename ToTypes> @@ -544,10 +544,10 @@ using AdaptativeFunc = ast_matchers::internal::ArgumentAdaptingMatcherFunc< ArgumentAdapterT, FromTypes, ToTypes>; - /// \brief End case for the recursion + /// End case for the recursion static void collect(ast_matchers::internal::EmptyTypeList) {} - /// \brief Recursive case. Get the overload for the head of the list, and + /// Recursive case. Get the overload for the head of the list, and /// recurse to the tail. template <typename FromTypeList> inline void collect(FromTypeList); @@ -556,7 +556,7 @@ std::vector<std::unique_ptr<MatcherDescriptor>> &Out; }; -/// \brief MatcherDescriptor that wraps multiple "overloads" of the same +/// MatcherDescriptor that wraps multiple "overloads" of the same /// matcher. /// /// It will try every overload and generate appropriate errors for when none or @@ -635,7 +635,7 @@ std::vector<std::unique_ptr<MatcherDescriptor>> Overloads; }; -/// \brief Variadic operator marshaller function. +/// Variadic operator marshaller function. class VariadicOperatorMatcherDescriptor : public MatcherDescriptor { public: using VarOp = DynTypedMatcher::VariadicOperator; @@ -701,7 +701,7 @@ /// Helper functions to select the appropriate marshaller functions. /// They detect the number of arguments, arguments types and return type. -/// \brief 0-arg overload +/// 0-arg overload template <typename ReturnType> std::unique_ptr<MatcherDescriptor> makeMatcherAutoMarshall(ReturnType (*Func)(), StringRef MatcherName) { @@ -712,7 +712,7 @@ MatcherName, RetTypes, None); } -/// \brief 1-arg overload +/// 1-arg overload template <typename ReturnType, typename ArgType1> std::unique_ptr<MatcherDescriptor> makeMatcherAutoMarshall(ReturnType (*Func)(ArgType1), StringRef MatcherName) { @@ -724,7 +724,7 @@ reinterpret_cast<void (*)()>(Func), MatcherName, RetTypes, AK); } -/// \brief 2-arg overload +/// 2-arg overload template <typename ReturnType, typename ArgType1, typename ArgType2> std::unique_ptr<MatcherDescriptor> makeMatcherAutoMarshall(ReturnType (*Func)(ArgType1, ArgType2), @@ -738,7 +738,7 @@ reinterpret_cast<void (*)()>(Func), MatcherName, RetTypes, AKs); } -/// \brief Variadic overload. +/// Variadic overload. template <typename ResultT, typename ArgT, ResultT (*Func)(ArrayRef<const ArgT *>)> std::unique_ptr<MatcherDescriptor> makeMatcherAutoMarshall( @@ -747,7 +747,7 @@ return llvm::make_unique<VariadicFuncMatcherDescriptor>(VarFunc, MatcherName); } -/// \brief Overload for VariadicDynCastAllOfMatchers. +/// Overload for VariadicDynCastAllOfMatchers. /// /// Not strictly necessary, but DynCastAllOfMatcherDescriptor gives us better /// completion results for that type of matcher. @@ -759,7 +759,7 @@ return llvm::make_unique<DynCastAllOfMatcherDescriptor>(VarFunc, MatcherName); } -/// \brief Argument adaptative overload. +/// Argument adaptative overload. template <template <typename ToArg, typename FromArg> class ArgumentAdapterT, typename FromTypes, typename ToTypes> std::unique_ptr<MatcherDescriptor> makeMatcherAutoMarshall( @@ -782,7 +782,7 @@ collect(typename FromTypeList::tail()); } -/// \brief Variadic operator overload. +/// Variadic operator overload. template <unsigned MinCount, unsigned MaxCount> std::unique_ptr<MatcherDescriptor> makeMatcherAutoMarshall( ast_matchers::internal::VariadicOperatorMatcherFunc<MinCount, MaxCount> Index: cfe/trunk/lib/ASTMatchers/Dynamic/Parser.cpp =================================================================== --- cfe/trunk/lib/ASTMatchers/Dynamic/Parser.cpp +++ cfe/trunk/lib/ASTMatchers/Dynamic/Parser.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Recursive parser implementation for the matcher expression grammar. +/// Recursive parser implementation for the matcher expression grammar. /// //===----------------------------------------------------------------------===// @@ -34,9 +34,9 @@ namespace ast_matchers { namespace dynamic { -/// \brief Simple structure to hold information for one token from the parser. +/// Simple structure to hold information for one token from the parser. struct Parser::TokenInfo { - /// \brief Different possible tokens. + /// Different possible tokens. enum TokenKind { TK_Eof, TK_OpenParen, @@ -50,7 +50,7 @@ TK_CodeCompletion }; - /// \brief Some known identifiers. + /// Some known identifiers. static const char* const ID_Bind; TokenInfo() = default; @@ -63,7 +63,7 @@ const char* const Parser::TokenInfo::ID_Bind = "bind"; -/// \brief Simple tokenizer for the parser. +/// Simple tokenizer for the parser. class Parser::CodeTokenizer { public: explicit CodeTokenizer(StringRef MatcherCode, Diagnostics *Error) @@ -78,10 +78,10 @@ NextToken = getNextToken(); } - /// \brief Returns but doesn't consume the next token. + /// Returns but doesn't consume the next token. const TokenInfo &peekNextToken() const { return NextToken; } - /// \brief Consumes and returns the next token. + /// Consumes and returns the next token. TokenInfo consumeNextToken() { TokenInfo ThisToken = NextToken; NextToken = getNextToken(); @@ -185,7 +185,7 @@ return Result; } - /// \brief Consume an unsigned and float literal. + /// Consume an unsigned and float literal. void consumeNumberLiteral(TokenInfo *Result) { bool isFloatingLiteral = false; unsigned Length = 1; @@ -238,7 +238,7 @@ Result->Kind = TokenInfo::TK_Error; } - /// \brief Consume a string literal. + /// Consume a string literal. /// /// \c Code must be positioned at the start of the literal (the opening /// quote). Consumed until it finds the same closing quote character. @@ -272,7 +272,7 @@ Result->Kind = TokenInfo::TK_Error; } - /// \brief Consume all leading whitespace from \c Code. + /// Consume all leading whitespace from \c Code. void consumeWhitespace() { while (!Code.empty() && isWhitespace(Code[0])) { if (Code[0] == '\n') { @@ -326,7 +326,7 @@ } }; -/// \brief Parse expressions that start with an identifier. +/// Parse expressions that start with an identifier. /// /// This function can parse named values and matchers. /// In case of failure it will try to determine the user's intent to give @@ -359,7 +359,7 @@ return parseMatcherExpressionImpl(NameToken, Value); } -/// \brief Parse and validate a matcher expression. +/// Parse and validate a matcher expression. /// \return \c true on success, in which case \c Value has the matcher parsed. /// If the input is malformed, or some argument has an error, it /// returns \c false. @@ -524,7 +524,7 @@ } } -/// \brief Parse an <Expression> +/// Parse an <Expression> bool Parser::parseExpressionImpl(VariantValue *Value) { switch (Tokenizer->nextTokenKind()) { case TokenInfo::TK_Literal: Index: cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp =================================================================== --- cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp +++ cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // /// \file -/// \brief Registry map populated at static initialization time. +/// Registry map populated at static initialization time. // //===----------------------------------------------------------------------===// @@ -90,7 +90,7 @@ REGISTER_MATCHER_OVERLOAD(name); \ } while (false) -/// \brief Generate a registry map with all the known matchers. +/// Generate a registry map with all the known matchers. RegistryMaps::RegistryMaps() { // TODO: Here is the list of the missing matchers, grouped by reason. // Index: cfe/trunk/lib/ASTMatchers/Dynamic/VariantValue.cpp =================================================================== --- cfe/trunk/lib/ASTMatchers/Dynamic/VariantValue.cpp +++ cfe/trunk/lib/ASTMatchers/Dynamic/VariantValue.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Polymorphic value type. +/// Polymorphic value type. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/lib/Analysis/CFG.cpp =================================================================== --- cfe/trunk/lib/Analysis/CFG.cpp +++ cfe/trunk/lib/Analysis/CFG.cpp @@ -851,7 +851,7 @@ B->prependScopeEnd(VD, S, cfg->getBumpVectorContext()); } - /// \brief Find a relational comparison with an expression evaluating to a + /// Find a relational comparison with an expression evaluating to a /// boolean and a constant other than 0 and 1. /// e.g. if ((x < y) == 10) TryResult checkIncorrectRelationalOperator(const BinaryOperator *B) { @@ -964,7 +964,7 @@ } } - /// \brief Find a pair of comparison expressions with or without parentheses + /// Find a pair of comparison expressions with or without parentheses /// with a shared variable and constants and a logical operator between them /// that always evaluates to either true or false. /// e.g. if (x != 3 || x != 4) @@ -1120,7 +1120,7 @@ return evaluateAsBooleanConditionNoCache(S); } - /// \brief Evaluate as boolean \param E without using the cache. + /// Evaluate as boolean \param E without using the cache. TryResult evaluateAsBooleanConditionNoCache(Expr *E) { if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(E)) { if (Bop->isLogicalOp()) { @@ -1491,7 +1491,7 @@ return Block; } -/// \brief Retrieve the type of the temporary object whose lifetime was +/// Retrieve the type of the temporary object whose lifetime was /// extended by a local reference with the given initializer. static QualType getReferenceInitTemporaryType(ASTContext &Context, const Expr *Init, Index: cfe/trunk/lib/Analysis/ThreadSafety.cpp =================================================================== --- cfe/trunk/lib/Analysis/ThreadSafety.cpp +++ cfe/trunk/lib/Analysis/ThreadSafety.cpp @@ -86,11 +86,11 @@ namespace { -/// \brief A set of CapabilityInfo objects, which are compiled from the +/// A set of CapabilityInfo objects, which are compiled from the /// requires attributes on a function. class CapExprSet : public SmallVector<CapabilityExpr, 4> { public: - /// \brief Push M onto list, but discard duplicates. + /// Push M onto list, but discard duplicates. void push_back_nodup(const CapabilityExpr &CapE) { iterator It = std::find_if(begin(), end(), [=](const CapabilityExpr &CapE2) { @@ -104,7 +104,7 @@ class FactManager; class FactSet; -/// \brief This is a helper class that stores a fact that is known at a +/// This is a helper class that stores a fact that is known at a /// particular point in program execution. Currently, a fact is a capability, /// along with additional information, such as where it was acquired, whether /// it is exclusive or shared, etc. @@ -157,7 +157,7 @@ using FactID = unsigned short; -/// \brief FactManager manages the memory for all facts that are created during +/// FactManager manages the memory for all facts that are created during /// the analysis of a single routine. class FactManager { private: @@ -173,7 +173,7 @@ FactEntry &operator[](FactID F) { return *Facts[F]; } }; -/// \brief A FactSet is the set of facts that are known to be true at a +/// A FactSet is the set of facts that are known to be true at a /// particular program point. FactSets must be small, because they are /// frequently copied, and are thus implemented as a set of indices into a /// table maintained by a FactManager. A typical FactSet only holds 1 or 2 @@ -948,7 +948,7 @@ } }; -/// \brief Class which implements the core thread safety analysis routines. +/// Class which implements the core thread safety analysis routines. class ThreadSafetyAnalyzer { friend class BuildLockset; friend class threadSafety::BeforeSet; @@ -1130,7 +1130,7 @@ Info->Visited = 0; } -/// \brief Gets the value decl pointer from DeclRefExprs or MemberExprs. +/// Gets the value decl pointer from DeclRefExprs or MemberExprs. static const ValueDecl *getValueDecl(const Expr *Exp) { if (const auto *CE = dyn_cast<ImplicitCastExpr>(Exp)) return getValueDecl(CE->getSubExpr()); @@ -1223,7 +1223,7 @@ return false; } -/// \brief Add a new lock to the lockset, warning if the lock is already there. +/// Add a new lock to the lockset, warning if the lock is already there. /// \param ReqAttr -- true if this is part of an initial Requires attribute. void ThreadSafetyAnalyzer::addLock(FactSet &FSet, std::unique_ptr<FactEntry> Entry, @@ -1261,7 +1261,7 @@ } } -/// \brief Remove a lock from the lockset, warning if the lock is not there. +/// Remove a lock from the lockset, warning if the lock is not there. /// \param UnlockLoc The source location of the unlock (only used in error msg) void ThreadSafetyAnalyzer::removeLock(FactSet &FSet, const CapabilityExpr &Cp, SourceLocation UnlockLoc, @@ -1287,7 +1287,7 @@ DiagKind); } -/// \brief Extract the list of mutexIDs from the attribute on an expression, +/// Extract the list of mutexIDs from the attribute on an expression, /// and push them onto Mtxs, discarding any duplicates. template <typename AttrType> void ThreadSafetyAnalyzer::getMutexIDs(CapExprSet &Mtxs, AttrType *Attr, @@ -1318,7 +1318,7 @@ } } -/// \brief Extract the list of mutexIDs from a trylock attribute. If the +/// Extract the list of mutexIDs from a trylock attribute. If the /// trylock applies to the given edge, then push them onto Mtxs, discarding /// any duplicates. template <class AttrType> @@ -1418,7 +1418,7 @@ return nullptr; } -/// \brief Find the lockset that holds on the edge between PredBlock +/// Find the lockset that holds on the edge between PredBlock /// and CurrBlock. The edge set is the exit set of PredBlock (passed /// as the ExitSet parameter) plus any trylocks, which are conditionally held. void ThreadSafetyAnalyzer::getEdgeLockset(FactSet& Result, @@ -1491,7 +1491,7 @@ namespace { -/// \brief We use this class to visit different types of expressions in +/// We use this class to visit different types of expressions in /// CFGBlocks, and build up the lockset. /// An expression may cause us to add or remove locks from the lockset, or else /// output error messages related to missing locks. @@ -1533,7 +1533,7 @@ } // namespace -/// \brief Warn if the LSet does not contain a lock sufficient to protect access +/// Warn if the LSet does not contain a lock sufficient to protect access /// of at least the passed in AccessKind. void BuildLockset::warnIfMutexNotHeld(const NamedDecl *D, const Expr *Exp, AccessKind AK, Expr *MutexExp, @@ -1597,7 +1597,7 @@ } } -/// \brief Warn if the LSet contains the given lock. +/// Warn if the LSet contains the given lock. void BuildLockset::warnIfMutexHeld(const NamedDecl *D, const Expr *Exp, Expr *MutexExp, StringRef DiagKind) { CapabilityExpr Cp = Analyzer->SxBuilder.translateAttrExpr(MutexExp, D, Exp); @@ -1615,7 +1615,7 @@ } } -/// \brief Checks guarded_by and pt_guarded_by attributes. +/// Checks guarded_by and pt_guarded_by attributes. /// Whenever we identify an access (read or write) to a DeclRefExpr that is /// marked with guarded_by, we must ensure the appropriate mutexes are held. /// Similarly, we check if the access is to an expression that dereferences @@ -1671,7 +1671,7 @@ ClassifyDiagnostic(I), Loc); } -/// \brief Checks pt_guarded_by and pt_guarded_var attributes. +/// Checks pt_guarded_by and pt_guarded_var attributes. /// POK is the same operationKind that was passed to checkAccess. void BuildLockset::checkPtAccess(const Expr *Exp, AccessKind AK, ProtectedOperationKind POK) { @@ -1710,7 +1710,7 @@ ClassifyDiagnostic(I), Exp->getExprLoc()); } -/// \brief Process a function call, method call, constructor call, +/// Process a function call, method call, constructor call, /// or destructor call. This involves looking at the attributes on the /// corresponding function/method/constructor/destructor, issuing warnings, /// and updating the locksets accordingly. @@ -1876,7 +1876,7 @@ Analyzer->removeLock(FSet, M, Loc, Dtor, LK_Generic, CapDiagKind); } -/// \brief For unary operations which read and write a variable, we need to +/// For unary operations which read and write a variable, we need to /// check whether we hold any required mutexes. Reads are checked in /// VisitCastExpr. void BuildLockset::VisitUnaryOperator(UnaryOperator *UO) { @@ -2089,7 +2089,7 @@ } } -/// \brief Compute the intersection of two locksets and issue warnings for any +/// Compute the intersection of two locksets and issue warnings for any /// locks in the symmetric difference. /// /// This function is used at a merge point in the CFG when comparing the lockset @@ -2166,7 +2166,7 @@ return false; } -/// \brief Check a function's CFG for thread-safety violations. +/// Check a function's CFG for thread-safety violations. /// /// We traverse the blocks in the CFG, compute the set of mutexes that are held /// at the end of each block, and issue warnings for thread safety violations. @@ -2462,7 +2462,7 @@ Handler.leaveFunction(CurrentFunction); } -/// \brief Check a function's CFG for thread-safety violations. +/// Check a function's CFG for thread-safety violations. /// /// We traverse the blocks in the CFG, compute the set of mutexes that are held /// at the end of each block, and issue warnings for thread safety violations. @@ -2478,7 +2478,7 @@ void threadSafety::threadSafetyCleanup(BeforeSet *Cache) { delete Cache; } -/// \brief Helper function that returns a LockKind required for the given level +/// Helper function that returns a LockKind required for the given level /// of access. LockKind threadSafety::getLockKindFromAccessKind(AccessKind AK) { switch (AK) { Index: cfe/trunk/lib/Analysis/ThreadSafetyCommon.cpp =================================================================== --- cfe/trunk/lib/Analysis/ThreadSafetyCommon.cpp +++ cfe/trunk/lib/Analysis/ThreadSafetyCommon.cpp @@ -86,7 +86,7 @@ return ME ? ME->isArrow() : false; } -/// \brief Translate a clang expression in an attribute to a til::SExpr. +/// Translate a clang expression in an attribute to a til::SExpr. /// Constructs the context from D, DeclExp, and SelfDecl. /// /// \param AttrExp The expression to translate. @@ -146,7 +146,7 @@ return translateAttrExpr(AttrExp, &Ctx); } -/// \brief Translate a clang expression in an attribute to a til::SExpr. +/// Translate a clang expression in an attribute to a til::SExpr. // This assumes a CallingContext has already been created. CapabilityExpr SExprBuilder::translateAttrExpr(const Expr *AttrExp, CallingContext *Ctx) { Index: cfe/trunk/lib/Analysis/UninitializedValues.cpp =================================================================== --- cfe/trunk/lib/Analysis/UninitializedValues.cpp +++ cfe/trunk/lib/Analysis/UninitializedValues.cpp @@ -321,7 +321,7 @@ namespace { -/// \brief Classify each DeclRefExpr as an initialization or a use. Any +/// Classify each DeclRefExpr as an initialization or a use. Any /// DeclRefExpr which isn't explicitly classified will be assumed to have /// escaped the analysis and will be treated as an initialization. class ClassifyRefs : public StmtVisitor<ClassifyRefs> { Index: cfe/trunk/lib/Basic/Diagnostic.cpp =================================================================== --- cfe/trunk/lib/Basic/Diagnostic.cpp +++ cfe/trunk/lib/Basic/Diagnostic.cpp @@ -737,7 +737,7 @@ } } -/// \brief Returns the friendly description for a token kind that will appear +/// Returns the friendly description for a token kind that will appear /// without quotes in diagnostic messages. These strings may be translatable in /// future. static const char *getTokenDescForDiagnostic(tok::TokenKind Kind) { Index: cfe/trunk/lib/Basic/DiagnosticIDs.cpp =================================================================== --- cfe/trunk/lib/Basic/DiagnosticIDs.cpp +++ cfe/trunk/lib/Basic/DiagnosticIDs.cpp @@ -340,7 +340,7 @@ getBuiltinDiagClass(DiagID) != CLASS_ERROR; } -/// \brief Determine whether the given built-in diagnostic ID is a +/// Determine whether the given built-in diagnostic ID is a /// Note. bool DiagnosticIDs::isBuiltinNote(unsigned DiagID) { return DiagID < diag::DIAG_UPPER_LIMIT && @@ -412,7 +412,7 @@ return toLevel(getDiagnosticSeverity(DiagID, Loc, Diag)); } -/// \brief Based on the way the client configured the Diagnostic +/// Based on the way the client configured the Diagnostic /// object, classify the specified diagnostic ID into a Level, consumable by /// the DiagnosticClient. /// Index: cfe/trunk/lib/Basic/FileManager.cpp =================================================================== --- cfe/trunk/lib/Basic/FileManager.cpp +++ cfe/trunk/lib/Basic/FileManager.cpp @@ -102,7 +102,7 @@ StatCache.reset(); } -/// \brief Retrieve the directory that the given file name resides in. +/// Retrieve the directory that the given file name resides in. /// Filename can point to either a real file or a virtual file. static const DirectoryEntry *getDirectoryFromFile(FileManager &FileMgr, StringRef Filename, Index: cfe/trunk/lib/Basic/IdentifierTable.cpp =================================================================== --- cfe/trunk/lib/Basic/IdentifierTable.cpp +++ cfe/trunk/lib/Basic/IdentifierTable.cpp @@ -65,7 +65,7 @@ namespace { -/// \brief A simple identifier lookup iterator that represents an +/// A simple identifier lookup iterator that represents an /// empty sequence of identifiers. class EmptyLookupIterator : public IdentifierIterator { @@ -127,7 +127,7 @@ ~KEYNOOPENCL) // KEYNOMS18 and KEYNOOPENCL are used to exclude. }; - /// \brief How a keyword is treated in the selected standard. + /// How a keyword is treated in the selected standard. enum KeywordStatus { KS_Disabled, // Disabled KS_Extension, // Is an extension @@ -137,7 +137,7 @@ } // namespace -/// \brief Translates flags as specified in TokenKinds.def into keyword status +/// Translates flags as specified in TokenKinds.def into keyword status /// in the given language standard. static KeywordStatus getKeywordStatus(const LangOptions &LangOpts, unsigned Flags) { @@ -244,7 +244,7 @@ get("import").setModulesImport(true); } -/// \brief Checks if the specified token kind represents a keyword in the +/// Checks if the specified token kind represents a keyword in the /// specified language. /// \returns Status of the keyword in the language. static KeywordStatus getTokenKwStatus(const LangOptions &LangOpts, @@ -257,7 +257,7 @@ } } -/// \brief Returns true if the identifier represents a keyword in the +/// Returns true if the identifier represents a keyword in the /// specified language. bool IdentifierInfo::isKeyword(const LangOptions &LangOpts) const { switch (getTokenKwStatus(LangOpts, getTokenID())) { @@ -269,7 +269,7 @@ } } -/// \brief Returns true if the identifier represents a C++ keyword in the +/// Returns true if the identifier represents a C++ keyword in the /// specified language. bool IdentifierInfo::isCPlusPlusKeyword(const LangOptions &LangOpts) const { if (!LangOpts.CPlusPlus || !isKeyword(LangOpts)) Index: cfe/trunk/lib/Basic/Module.cpp =================================================================== --- cfe/trunk/lib/Basic/Module.cpp +++ cfe/trunk/lib/Basic/Module.cpp @@ -71,7 +71,7 @@ } } -/// \brief Determine whether a translation unit built using the current +/// Determine whether a translation unit built using the current /// language options has the given feature. static bool hasFeature(StringRef Feature, const LangOptions &LangOpts, const TargetInfo &Target) { Index: cfe/trunk/lib/Basic/OpenMPKinds.cpp =================================================================== --- cfe/trunk/lib/Basic/OpenMPKinds.cpp +++ cfe/trunk/lib/Basic/OpenMPKinds.cpp @@ -7,7 +7,7 @@ // //===----------------------------------------------------------------------===// /// \file -/// \brief This file implements the OpenMP enum and support functions. +/// This file implements the OpenMP enum and support functions. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/lib/Basic/OperatorPrecedence.cpp =================================================================== --- cfe/trunk/lib/Basic/OperatorPrecedence.cpp +++ cfe/trunk/lib/Basic/OperatorPrecedence.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Defines and computes precedence levels for binary/ternary operators. +/// Defines and computes precedence levels for binary/ternary operators. /// //===----------------------------------------------------------------------===// #include "clang/Basic/OperatorPrecedence.h" Index: cfe/trunk/lib/Basic/SourceManager.cpp =================================================================== --- cfe/trunk/lib/Basic/SourceManager.cpp +++ cfe/trunk/lib/Basic/SourceManager.cpp @@ -260,7 +260,7 @@ return &*--I; } -/// \brief Add a new line entry that has already been encoded into +/// Add a new line entry that has already been encoded into /// the internal representation of the line table. void LineTableInfo::AddEntry(FileID FID, const std::vector<LineEntry> &Entries) { @@ -468,7 +468,7 @@ return std::make_pair(-ID - 1, CurrentLoadedOffset); } -/// \brief As part of recovering from missing or changed content, produce a +/// As part of recovering from missing or changed content, produce a /// fake, non-empty buffer. llvm::MemoryBuffer *SourceManager::getFakeBufferForRecovery() const { if (!FakeBufferForRecovery) @@ -478,7 +478,7 @@ return FakeBufferForRecovery.get(); } -/// \brief As part of recovering from missing or changed content, produce a +/// As part of recovering from missing or changed content, produce a /// fake content cache. const SrcMgr::ContentCache * SourceManager::getFakeContentCacheForRecovery() const { @@ -490,7 +490,7 @@ return FakeContentCacheForRecovery.get(); } -/// \brief Returns the previous in-order FileID or an invalid FileID if there +/// Returns the previous in-order FileID or an invalid FileID if there /// is no previous one. FileID SourceManager::getPreviousFileID(FileID FID) const { if (FID.isInvalid()) @@ -510,7 +510,7 @@ return FileID::get(ID-1); } -/// \brief Returns the next in-order FileID or an invalid FileID if there is +/// Returns the next in-order FileID or an invalid FileID if there is /// no next one. FileID SourceManager::getNextFileID(FileID FID) const { if (FID.isInvalid()) @@ -692,7 +692,7 @@ // SourceLocation manipulation methods. //===----------------------------------------------------------------------===// -/// \brief Return the FileID for a SourceLocation. +/// Return the FileID for a SourceLocation. /// /// This is the cache-miss path of getFileID. Not as hot as that function, but /// still very important. It is responsible for finding the entry in the @@ -708,7 +708,7 @@ return getFileIDLoaded(SLocOffset); } -/// \brief Return the FileID for a SourceLocation with a low offset. +/// Return the FileID for a SourceLocation with a low offset. /// /// This function knows that the SourceLocation is in a local buffer, not a /// loaded one. @@ -799,7 +799,7 @@ } } -/// \brief Return the FileID for a SourceLocation with a high offset. +/// Return the FileID for a SourceLocation with a high offset. /// /// This function knows that the SourceLocation is in a loaded buffer, not a /// local one. @@ -1519,7 +1519,7 @@ return PresumedLoc(Filename.data(), LineNo, ColNo, IncludeLoc); } -/// \brief Returns whether the PresumedLoc for a given SourceLocation is +/// Returns whether the PresumedLoc for a given SourceLocation is /// in the main file. /// /// This computes the "presumed" location for a SourceLocation, then checks @@ -1549,7 +1549,7 @@ return FI.getIncludeLoc().isInvalid(); } -/// \brief The size of the SLocEntry that \p FID represents. +/// The size of the SLocEntry that \p FID represents. unsigned SourceManager::getFileIDSize(FileID FID) const { bool Invalid = false; const SrcMgr::SLocEntry &Entry = getSLocEntry(FID, &Invalid); @@ -1572,7 +1572,7 @@ // Other miscellaneous methods. //===----------------------------------------------------------------------===// -/// \brief Retrieve the inode for the given file entry, if possible. +/// Retrieve the inode for the given file entry, if possible. /// /// This routine involves a system call, and therefore should only be used /// in non-performance-critical code. @@ -1588,7 +1588,7 @@ return ID; } -/// \brief Get the source location for the given file:line:col triplet. +/// Get the source location for the given file:line:col triplet. /// /// If the source file is included multiple times, the source location will /// be based upon an arbitrary inclusion. @@ -1602,7 +1602,7 @@ return translateLineCol(FirstFID, Line, Col); } -/// \brief Get the FileID for the given file. +/// Get the FileID for the given file. /// /// If the source file is included multiple times, the FileID will be the /// first inclusion. @@ -1719,7 +1719,7 @@ return FirstFID; } -/// \brief Get the source location in \arg FID for the given line:col. +/// Get the source location in \arg FID for the given line:col. /// Returns null location if \arg FID is not a file SLocEntry. SourceLocation SourceManager::translateLineCol(FileID FID, unsigned Line, @@ -1780,7 +1780,7 @@ return FileLoc.getLocWithOffset(FilePos + i); } -/// \brief Compute a map of macro argument chunks to their expanded source +/// Compute a map of macro argument chunks to their expanded source /// location. Chunks that are not part of a macro argument will map to an /// invalid source location. e.g. if a file contains one macro argument at /// offset 100 with length 10, this is how the map will be formed: @@ -1919,7 +1919,7 @@ MacroArgsCache[EndOffs] = EndOffsMappedLoc; } -/// \brief If \arg Loc points inside a function macro argument, the returned +/// If \arg Loc points inside a function macro argument, the returned /// location will be the macro location in which the argument was expanded. /// If a macro argument is used multiple times, the expanded location will /// be at the first expansion of the argument. @@ -2028,7 +2028,7 @@ return IBTUCacheOverflow; } -/// \brief Determines the order of 2 source locations in the translation unit. +/// Determines the order of 2 source locations in the translation unit. /// /// \returns true if LHS source location comes before RHS, false otherwise. bool SourceManager::isBeforeInTranslationUnit(SourceLocation LHS, Index: cfe/trunk/lib/Basic/Targets/AMDGPU.h =================================================================== --- cfe/trunk/lib/Basic/Targets/AMDGPU.h +++ cfe/trunk/lib/Basic/Targets/AMDGPU.h @@ -38,7 +38,7 @@ static const LangASMap AMDGPUDefIsGenMap; static const LangASMap AMDGPUDefIsPrivMap; - /// \brief GPU kinds supported by the AMDGPU target. + /// GPU kinds supported by the AMDGPU target. enum GPUKind : uint32_t { // Not specified processor. GK_NONE = 0, Index: cfe/trunk/lib/Basic/Targets/PPC.h =================================================================== --- cfe/trunk/lib/Basic/Targets/PPC.h +++ cfe/trunk/lib/Basic/Targets/PPC.h @@ -57,7 +57,7 @@ LongDoubleFormat = &llvm::APFloat::PPCDoubleDouble(); } - /// \brief Flags for architecture specific defines. + /// Flags for architecture specific defines. typedef enum { ArchDefineNone = 0, ArchDefineName = 1 << 0, // <name> is substituted for arch name. Index: cfe/trunk/lib/Basic/Targets/X86.h =================================================================== --- cfe/trunk/lib/Basic/Targets/X86.h +++ cfe/trunk/lib/Basic/Targets/X86.h @@ -108,7 +108,7 @@ bool HasMOVDIR64B = false; protected: - /// \brief Enumeration of all of the X86 CPUs supported by Clang. + /// Enumeration of all of the X86 CPUs supported by Clang. /// /// Each enumeration represents a particular CPU supported by Clang. These /// loosely correspond to the options passed to '-march' or '-mtune' flags. Index: cfe/trunk/lib/Basic/VirtualFileSystem.cpp =================================================================== --- cfe/trunk/lib/Basic/VirtualFileSystem.cpp +++ cfe/trunk/lib/Basic/VirtualFileSystem.cpp @@ -165,7 +165,7 @@ namespace { -/// \brief Wrapper around a raw file descriptor. +/// Wrapper around a raw file descriptor. class RealFile : public File { friend class RealFileSystem; @@ -227,7 +227,7 @@ namespace { -/// \brief The file system according to your operating system. +/// The file system according to your operating system. class RealFileSystem : public FileSystem { public: ErrorOr<Status> status(const Twine &Path) override; @@ -780,7 +780,7 @@ EK_File }; -/// \brief A single file or directory in the VFS. +/// A single file or directory in the VFS. class Entry { EntryKind Kind; std::string Name; @@ -842,7 +842,7 @@ StringRef getExternalContentsPath() const { return ExternalContentsPath; } - /// \brief whether to use the external path as the name for this file. + /// whether to use the external path as the name for this file. bool useExternalName(bool GlobalUseExternalName) const { return UseName == NK_NotSet ? GlobalUseExternalName : (UseName == NK_External); @@ -869,7 +869,7 @@ std::error_code increment() override; }; -/// \brief A virtual file system parsed from a YAML file. +/// A virtual file system parsed from a YAML file. /// /// Currently, this class allows creating virtual directories and mapping /// virtual file paths to existing external files, available in \c ExternalFS. @@ -930,7 +930,7 @@ /// The root(s) of the virtual file system. std::vector<std::unique_ptr<Entry>> Roots; - /// \brief The file system to use for external references. + /// The file system to use for external references. IntrusiveRefCntPtr<FileSystem> ExternalFS; /// If IsRelativeOverlay is set, this represents the directory @@ -941,7 +941,7 @@ /// @name Configuration /// @{ - /// \brief Whether to perform case-sensitive comparisons. + /// Whether to perform case-sensitive comparisons. /// /// Currently, case-insensitive matching only works correctly with ASCII. bool CaseSensitive = true; @@ -950,11 +950,11 @@ /// be prefixed in every 'external-contents' when reading from YAML files. bool IsRelativeOverlay = false; - /// \brief Whether to use to use the value of 'external-contents' for the + /// Whether to use to use the value of 'external-contents' for the /// names of files. This global value is overridable on a per-file basis. bool UseExternalNames = true; - /// \brief Whether an invalid path obtained via 'external-contents' should + /// Whether an invalid path obtained via 'external-contents' should /// cause iteration on the VFS to stop. If 'true', the VFS should ignore /// the entry and continue with the next. Allows YAML files to be shared /// across multiple compiler invocations regardless of prior existent @@ -977,19 +977,19 @@ RedirectingFileSystem(IntrusiveRefCntPtr<FileSystem> ExternalFS) : ExternalFS(std::move(ExternalFS)) {} - /// \brief Looks up the path <tt>[Start, End)</tt> in \p From, possibly + /// Looks up the path <tt>[Start, End)</tt> in \p From, possibly /// recursing into the contents of \p From if it is a directory. ErrorOr<Entry *> lookupPath(sys::path::const_iterator Start, sys::path::const_iterator End, Entry *From); - /// \brief Get the status of a given an \c Entry. + /// Get the status of a given an \c Entry. ErrorOr<Status> status(const Twine &Path, Entry *E); public: - /// \brief Looks up \p Path in \c Roots. + /// Looks up \p Path in \c Roots. ErrorOr<Entry *> lookupPath(const Twine &Path); - /// \brief Parses \p Buffer, which is expected to be in YAML format and + /// Parses \p Buffer, which is expected to be in YAML format and /// returns a virtual file system representing its contents. static RedirectingFileSystem * create(std::unique_ptr<MemoryBuffer> Buffer, @@ -1065,7 +1065,7 @@ #endif }; -/// \brief A helper class to hold the common YAML parsing state. +/// A helper class to hold the common YAML parsing state. class RedirectingFileSystemParser { yaml::Stream &Stream; Index: cfe/trunk/lib/CodeGen/CGAtomic.cpp =================================================================== --- cfe/trunk/lib/CodeGen/CGAtomic.cpp +++ cfe/trunk/lib/CodeGen/CGAtomic.cpp @@ -187,7 +187,7 @@ RValue convertAtomicTempToRValue(Address addr, AggValueSlot resultSlot, SourceLocation loc, bool AsValue) const; - /// \brief Converts a rvalue to integer value. + /// Converts a rvalue to integer value. llvm::Value *convertRValueToInt(RValue RVal) const; RValue ConvertIntToValueOrAtomic(llvm::Value *IntVal, @@ -208,13 +208,13 @@ LVal.getBaseInfo(), LVal.getTBAAInfo()); } - /// \brief Emits atomic load. + /// Emits atomic load. /// \returns Loaded value. RValue EmitAtomicLoad(AggValueSlot ResultSlot, SourceLocation Loc, bool AsValue, llvm::AtomicOrdering AO, bool IsVolatile); - /// \brief Emits atomic compare-and-exchange sequence. + /// Emits atomic compare-and-exchange sequence. /// \param Expected Expected value. /// \param Desired Desired value. /// \param Success Atomic ordering for success operation. @@ -230,13 +230,13 @@ llvm::AtomicOrdering::SequentiallyConsistent, bool IsWeak = false); - /// \brief Emits atomic update. + /// Emits atomic update. /// \param AO Atomic ordering. /// \param UpdateOp Update operation for the current lvalue. void EmitAtomicUpdate(llvm::AtomicOrdering AO, const llvm::function_ref<RValue(RValue)> &UpdateOp, bool IsVolatile); - /// \brief Emits atomic update. + /// Emits atomic update. /// \param AO Atomic ordering. void EmitAtomicUpdate(llvm::AtomicOrdering AO, RValue UpdateRVal, bool IsVolatile); @@ -244,25 +244,25 @@ /// Materialize an atomic r-value in atomic-layout memory. Address materializeRValue(RValue rvalue) const; - /// \brief Creates temp alloca for intermediate operations on atomic value. + /// Creates temp alloca for intermediate operations on atomic value. Address CreateTempAlloca() const; private: bool requiresMemSetZero(llvm::Type *type) const; - /// \brief Emits atomic load as a libcall. + /// Emits atomic load as a libcall. void EmitAtomicLoadLibcall(llvm::Value *AddForLoaded, llvm::AtomicOrdering AO, bool IsVolatile); - /// \brief Emits atomic load as LLVM instruction. + /// Emits atomic load as LLVM instruction. llvm::Value *EmitAtomicLoadOp(llvm::AtomicOrdering AO, bool IsVolatile); - /// \brief Emits atomic compare-and-exchange op as a libcall. + /// Emits atomic compare-and-exchange op as a libcall. llvm::Value *EmitAtomicCompareExchangeLibcall( llvm::Value *ExpectedAddr, llvm::Value *DesiredAddr, llvm::AtomicOrdering Success = llvm::AtomicOrdering::SequentiallyConsistent, llvm::AtomicOrdering Failure = llvm::AtomicOrdering::SequentiallyConsistent); - /// \brief Emits atomic compare-and-exchange op as LLVM instruction. + /// Emits atomic compare-and-exchange op as LLVM instruction. std::pair<llvm::Value *, llvm::Value *> EmitAtomicCompareExchangeOp( llvm::Value *ExpectedVal, llvm::Value *DesiredVal, llvm::AtomicOrdering Success = @@ -270,19 +270,19 @@ llvm::AtomicOrdering Failure = llvm::AtomicOrdering::SequentiallyConsistent, bool IsWeak = false); - /// \brief Emit atomic update as libcalls. + /// Emit atomic update as libcalls. void EmitAtomicUpdateLibcall(llvm::AtomicOrdering AO, const llvm::function_ref<RValue(RValue)> &UpdateOp, bool IsVolatile); - /// \brief Emit atomic update as LLVM instructions. + /// Emit atomic update as LLVM instructions. void EmitAtomicUpdateOp(llvm::AtomicOrdering AO, const llvm::function_ref<RValue(RValue)> &UpdateOp, bool IsVolatile); - /// \brief Emit atomic update as libcalls. + /// Emit atomic update as libcalls. void EmitAtomicUpdateLibcall(llvm::AtomicOrdering AO, RValue UpdateRVal, bool IsVolatile); - /// \brief Emit atomic update as LLVM instructions. + /// Emit atomic update as LLVM instructions. void EmitAtomicUpdateOp(llvm::AtomicOrdering AO, RValue UpdateRal, bool IsVolatile); }; Index: cfe/trunk/lib/CodeGen/CGBuilder.h =================================================================== --- cfe/trunk/lib/CodeGen/CGBuilder.h +++ cfe/trunk/lib/CodeGen/CGBuilder.h @@ -20,7 +20,7 @@ class CodeGenFunction; -/// \brief This is an IRBuilder insertion helper that forwards to +/// This is an IRBuilder insertion helper that forwards to /// CodeGenFunction::InsertHelper, which adds necessary metadata to /// instructions. class CGBuilderInserter : protected llvm::IRBuilderDefaultInserter { @@ -29,7 +29,7 @@ explicit CGBuilderInserter(CodeGenFunction *CGF) : CGF(CGF) {} protected: - /// \brief This forwards to CodeGenFunction::InsertHelper. + /// This forwards to CodeGenFunction::InsertHelper. void InsertHelper(llvm::Instruction *I, const llvm::Twine &Name, llvm::BasicBlock *BB, llvm::BasicBlock::iterator InsertPt) const; Index: cfe/trunk/lib/CodeGen/CGBuiltin.cpp =================================================================== --- cfe/trunk/lib/CodeGen/CGBuiltin.cpp +++ cfe/trunk/lib/CodeGen/CGBuiltin.cpp @@ -189,7 +189,7 @@ return RValue::get(Result); } -/// @brief Utility to insert an atomic cmpxchg instruction. +/// Utility to insert an atomic cmpxchg instruction. /// /// @param CGF The current codegen function. /// @param E Builtin call expression to convert to cmpxchg. @@ -320,7 +320,7 @@ return CGF.EmitCall(E->getCallee()->getType(), callee, E, ReturnValueSlot()); } -/// \brief Emit a call to llvm.{sadd,uadd,ssub,usub,smul,umul}.with.overflow.* +/// Emit a call to llvm.{sadd,uadd,ssub,usub,smul,umul}.with.overflow.* /// depending on IntrinsicID. /// /// \arg CGF The current codegen function. @@ -3667,7 +3667,7 @@ return ConstantInt::get(Ty, neg ? -SV : SV); } -// \brief Right-shift a vector by a constant. +// Right-shift a vector by a constant. Value *CodeGenFunction::EmitNeonRShiftImm(Value *Vec, Value *Shift, llvm::Type *Ty, bool usgn, const char *name) { Index: cfe/trunk/lib/CodeGen/CGCXXABI.h =================================================================== --- cfe/trunk/lib/CodeGen/CGCXXABI.h +++ cfe/trunk/lib/CodeGen/CGCXXABI.h @@ -40,7 +40,7 @@ class CodeGenModule; struct CatchTypeInfo; -/// \brief Implements C++ ABI-specific code generation functions. +/// Implements C++ ABI-specific code generation functions. class CGCXXABI { protected: CodeGenModule &CGM; @@ -222,7 +222,7 @@ /// is required. llvm::Constant *getMemberPointerAdjustment(const CastExpr *E); - /// \brief Computes the non-virtual adjustment needed for a member pointer + /// Computes the non-virtual adjustment needed for a member pointer /// conversion along an inheritance path stored in an APValue. Unlike /// getMemberPointerAdjustment(), the adjustment can be negative if the path /// is from a derived type to a base type. @@ -237,7 +237,7 @@ virtual void emitThrow(CodeGenFunction &CGF, const CXXThrowExpr *E) = 0; virtual llvm::GlobalVariable *getThrowInfo(QualType T) { return nullptr; } - /// \brief Determine whether it's possible to emit a vtable for \p RD, even + /// Determine whether it's possible to emit a vtable for \p RD, even /// though we do not know that the vtable has been marked as used by semantic /// analysis. virtual bool canSpeculativelyEmitVTable(const CXXRecordDecl *RD) const = 0; Index: cfe/trunk/lib/CodeGen/CGCall.h =================================================================== --- cfe/trunk/lib/CodeGen/CGCall.h +++ cfe/trunk/lib/CodeGen/CGCall.h @@ -43,9 +43,9 @@ /// Abstract information about a function or function prototype. class CGCalleeInfo { - /// \brief The function prototype of the callee. + /// The function prototype of the callee. const FunctionProtoType *CalleeProtoTy; - /// \brief The function declaration of the callee. + /// The function declaration of the callee. const Decl *CalleeDecl; public: @@ -334,7 +334,7 @@ llvm::Instruction *getStackBase() const { return StackBase; } void freeArgumentMemory(CodeGenFunction &CGF) const; - /// \brief Returns if we're using an inalloca struct to pass arguments in + /// Returns if we're using an inalloca struct to pass arguments in /// memory. bool isUsingInAlloca() const { return StackBase; } Index: cfe/trunk/lib/CodeGen/CGClass.cpp =================================================================== --- cfe/trunk/lib/CodeGen/CGClass.cpp +++ cfe/trunk/lib/CodeGen/CGClass.cpp @@ -1739,7 +1739,7 @@ }; } // end anonymous namespace -/// \brief Emit all code that comes at the end of class's +/// Emit all code that comes at the end of class's /// destructor. This is to call destructors on members and base classes /// in reverse order of their construction. /// Index: cfe/trunk/lib/CodeGen/CGDebugInfo.h =================================================================== --- cfe/trunk/lib/CodeGen/CGDebugInfo.h +++ cfe/trunk/lib/CodeGen/CGDebugInfo.h @@ -658,7 +658,7 @@ ~ApplyDebugLocation(); - /// \brief Apply TemporaryLocation if it is valid. Otherwise switch + /// Apply TemporaryLocation if it is valid. Otherwise switch /// to an artificial debug location that has a valid scope, but no /// line information. /// @@ -672,7 +672,7 @@ static ApplyDebugLocation CreateArtificial(CodeGenFunction &CGF) { return ApplyDebugLocation(CGF, false, SourceLocation()); } - /// \brief Apply TemporaryLocation if it is valid. Otherwise switch + /// Apply TemporaryLocation if it is valid. Otherwise switch /// to an artificial debug location that has a valid scope, but no /// line information. static ApplyDebugLocation Index: cfe/trunk/lib/CodeGen/CGDecl.cpp =================================================================== --- cfe/trunk/lib/CodeGen/CGDecl.cpp +++ cfe/trunk/lib/CodeGen/CGDecl.cpp @@ -1283,7 +1283,7 @@ return false; } -/// \brief Determine whether the given initializer is trivial in the sense +/// Determine whether the given initializer is trivial in the sense /// that it requires no code to be generated. bool CodeGenFunction::isTrivialInitializer(const Expr *Init) { if (!Init) Index: cfe/trunk/lib/CodeGen/CGExpr.cpp =================================================================== --- cfe/trunk/lib/CodeGen/CGExpr.cpp +++ cfe/trunk/lib/CodeGen/CGExpr.cpp @@ -1791,7 +1791,7 @@ return RValue::get(Vec); } -/// @brief Generates lvalue for partial ext_vector access. +/// Generates lvalue for partial ext_vector access. Address CodeGenFunction::EmitExtVectorElementLValue(LValue LV) { Address VectorAddress = LV.getExtVectorAddress(); const VectorType *ExprVT = LV.getType()->getAs<VectorType>(); @@ -1813,7 +1813,7 @@ return VectorBasePtrPlusIx; } -/// @brief Load of global gamed gegisters are always calls to intrinsics. +/// Load of global gamed gegisters are always calls to intrinsics. RValue CodeGenFunction::EmitLoadOfGlobalRegLValue(LValue LV) { assert((LV.getType()->isIntegerType() || LV.getType()->isPointerType()) && "Bad type for register variable"); @@ -2073,7 +2073,7 @@ Dst.isVolatileQualified()); } -/// @brief Store of global named registers are always calls to intrinsics. +/// Store of global named registers are always calls to intrinsics. void CodeGenFunction::EmitStoreThroughGlobalRegLValue(RValue Src, LValue Dst) { assert((Dst.getType()->isIntegerType() || Dst.getType()->isPointerType()) && "Bad type for register variable"); @@ -2710,7 +2710,7 @@ return Builder.CreatePtrToInt(V, TargetTy); } -/// \brief Emit a representation of a SourceLocation for passing to a handler +/// Emit a representation of a SourceLocation for passing to a handler /// in a sanitizer runtime library. The format for this data is: /// \code /// struct SourceLocation { @@ -2769,7 +2769,7 @@ } namespace { -/// \brief Specify under what conditions this check can be recovered +/// Specify under what conditions this check can be recovered enum class CheckRecoverableKind { /// Always terminate program execution if this check fails. Unrecoverable, Index: cfe/trunk/lib/CodeGen/CGExprAgg.cpp =================================================================== --- cfe/trunk/lib/CodeGen/CGExprAgg.cpp +++ cfe/trunk/lib/CodeGen/CGExprAgg.cpp @@ -220,7 +220,7 @@ EmitFinalDestCopy(E->getType(), LV); } -/// \brief True if the given aggregate type requires special GC API calls. +/// True if the given aggregate type requires special GC API calls. bool AggExprEmitter::TypeRequiresGCollection(QualType T) { // Only record types have members that might require garbage collection. const RecordType *RecordTy = T->getAs<RecordType>(); @@ -369,7 +369,7 @@ dest.isVolatile() || src.isVolatile()); } -/// \brief Emit the initializer for a std::initializer_list initialized with a +/// Emit the initializer for a std::initializer_list initialized with a /// real initializer list. void AggExprEmitter::VisitCXXStdInitializerListExpr(CXXStdInitializerListExpr *E) { @@ -434,7 +434,7 @@ } } -/// \brief Determine if E is a trivial array filler, that is, one that is +/// Determine if E is a trivial array filler, that is, one that is /// equivalent to zero-initialization. static bool isTrivialFiller(Expr *E) { if (!E) @@ -457,7 +457,7 @@ return false; } -/// \brief Emit initialization of an array from an initializer list. +/// Emit initialization of an array from an initializer list. void AggExprEmitter::EmitArrayInit(Address DestPtr, llvm::ArrayType *AType, QualType ArrayQTy, InitListExpr *E) { uint64_t NumInitElements = E->getNumInits(); Index: cfe/trunk/lib/CodeGen/CGExprComplex.cpp =================================================================== --- cfe/trunk/lib/CodeGen/CGExprComplex.cpp +++ cfe/trunk/lib/CodeGen/CGExprComplex.cpp @@ -595,7 +595,7 @@ return ComplexPairTy(ResR, ResI); } -/// \brief Emit a libcall for a binary operation on complex types. +/// Emit a libcall for a binary operation on complex types. ComplexPairTy ComplexExprEmitter::EmitComplexBinOpLibCall(StringRef LibCallName, const BinOpInfo &Op) { CallArgList Args; @@ -633,7 +633,7 @@ return Res.getComplexVal(); } -/// \brief Lookup the libcall name for a given floating point type complex +/// Lookup the libcall name for a given floating point type complex /// multiply. static StringRef getComplexMultiplyLibCallName(llvm::Type *Ty) { switch (Ty->getTypeID()) { Index: cfe/trunk/lib/CodeGen/CGExprScalar.cpp =================================================================== --- cfe/trunk/lib/CodeGen/CGExprScalar.cpp +++ cfe/trunk/lib/CodeGen/CGExprScalar.cpp @@ -1145,7 +1145,7 @@ return CGF.EmitFromMemory(CGF.CGM.EmitNullConstant(Ty), Ty); } -/// \brief Emit a sanitization check for the given "binary" operation (which +/// Emit a sanitization check for the given "binary" operation (which /// might actually be a unary increment which has been lowered to a binary /// operation). The check passes if all values in \p Checks (which are \c i1), /// are \c true. Index: cfe/trunk/lib/CodeGen/CGLoopInfo.h =================================================================== --- cfe/trunk/lib/CodeGen/CGLoopInfo.h +++ cfe/trunk/lib/CodeGen/CGLoopInfo.h @@ -32,62 +32,62 @@ class ASTContext; namespace CodeGen { -/// \brief Attributes that may be specified on loops. +/// Attributes that may be specified on loops. struct LoopAttributes { explicit LoopAttributes(bool IsParallel = false); void clear(); - /// \brief Generate llvm.loop.parallel metadata for loads and stores. + /// Generate llvm.loop.parallel metadata for loads and stores. bool IsParallel; - /// \brief State of loop vectorization or unrolling. + /// State of loop vectorization or unrolling. enum LVEnableState { Unspecified, Enable, Disable, Full }; - /// \brief Value for llvm.loop.vectorize.enable metadata. + /// Value for llvm.loop.vectorize.enable metadata. LVEnableState VectorizeEnable; - /// \brief Value for llvm.loop.unroll.* metadata (enable, disable, or full). + /// Value for llvm.loop.unroll.* metadata (enable, disable, or full). LVEnableState UnrollEnable; - /// \brief Value for llvm.loop.vectorize.width metadata. + /// Value for llvm.loop.vectorize.width metadata. unsigned VectorizeWidth; - /// \brief Value for llvm.loop.interleave.count metadata. + /// Value for llvm.loop.interleave.count metadata. unsigned InterleaveCount; - /// \brief llvm.unroll. + /// llvm.unroll. unsigned UnrollCount; - /// \brief Value for llvm.loop.distribute.enable metadata. + /// Value for llvm.loop.distribute.enable metadata. LVEnableState DistributeEnable; }; -/// \brief Information used when generating a structured loop. +/// Information used when generating a structured loop. class LoopInfo { public: - /// \brief Construct a new LoopInfo for the loop with entry Header. + /// Construct a new LoopInfo for the loop with entry Header. LoopInfo(llvm::BasicBlock *Header, const LoopAttributes &Attrs, const llvm::DebugLoc &StartLoc, const llvm::DebugLoc &EndLoc); - /// \brief Get the loop id metadata for this loop. + /// Get the loop id metadata for this loop. llvm::MDNode *getLoopID() const { return LoopID; } - /// \brief Get the header block of this loop. + /// Get the header block of this loop. llvm::BasicBlock *getHeader() const { return Header; } - /// \brief Get the set of attributes active for this loop. + /// Get the set of attributes active for this loop. const LoopAttributes &getAttributes() const { return Attrs; } private: - /// \brief Loop ID metadata. + /// Loop ID metadata. llvm::MDNode *LoopID; - /// \brief Header block of this loop. + /// Header block of this loop. llvm::BasicBlock *Header; - /// \brief The attributes for this loop. + /// The attributes for this loop. LoopAttributes Attrs; }; -/// \brief A stack of loop information corresponding to loop nesting levels. +/// A stack of loop information corresponding to loop nesting levels. /// This stack can be used to prepare attributes which are applied when a loop /// is emitted. class LoopInfoStack { @@ -97,70 +97,70 @@ public: LoopInfoStack() {} - /// \brief Begin a new structured loop. The set of staged attributes will be + /// Begin a new structured loop. The set of staged attributes will be /// applied to the loop and then cleared. void push(llvm::BasicBlock *Header, const llvm::DebugLoc &StartLoc, const llvm::DebugLoc &EndLoc); - /// \brief Begin a new structured loop. Stage attributes from the Attrs list. + /// Begin a new structured loop. Stage attributes from the Attrs list. /// The staged attributes are applied to the loop and then cleared. void push(llvm::BasicBlock *Header, clang::ASTContext &Ctx, llvm::ArrayRef<const Attr *> Attrs, const llvm::DebugLoc &StartLoc, const llvm::DebugLoc &EndLoc); - /// \brief End the current loop. + /// End the current loop. void pop(); - /// \brief Return the top loop id metadata. + /// Return the top loop id metadata. llvm::MDNode *getCurLoopID() const { return getInfo().getLoopID(); } - /// \brief Return true if the top loop is parallel. + /// Return true if the top loop is parallel. bool getCurLoopParallel() const { return hasInfo() ? getInfo().getAttributes().IsParallel : false; } - /// \brief Function called by the CodeGenFunction when an instruction is + /// Function called by the CodeGenFunction when an instruction is /// created. void InsertHelper(llvm::Instruction *I) const; - /// \brief Set the next pushed loop as parallel. + /// Set the next pushed loop as parallel. void setParallel(bool Enable = true) { StagedAttrs.IsParallel = Enable; } - /// \brief Set the next pushed loop 'vectorize.enable' + /// Set the next pushed loop 'vectorize.enable' void setVectorizeEnable(bool Enable = true) { StagedAttrs.VectorizeEnable = Enable ? LoopAttributes::Enable : LoopAttributes::Disable; } - /// \brief Set the next pushed loop as a distribution candidate. + /// Set the next pushed loop as a distribution candidate. void setDistributeState(bool Enable = true) { StagedAttrs.DistributeEnable = Enable ? LoopAttributes::Enable : LoopAttributes::Disable; } - /// \brief Set the next pushed loop unroll state. + /// Set the next pushed loop unroll state. void setUnrollState(const LoopAttributes::LVEnableState &State) { StagedAttrs.UnrollEnable = State; } - /// \brief Set the vectorize width for the next loop pushed. + /// Set the vectorize width for the next loop pushed. void setVectorizeWidth(unsigned W) { StagedAttrs.VectorizeWidth = W; } - /// \brief Set the interleave count for the next loop pushed. + /// Set the interleave count for the next loop pushed. void setInterleaveCount(unsigned C) { StagedAttrs.InterleaveCount = C; } - /// \brief Set the unroll count for the next loop pushed. + /// Set the unroll count for the next loop pushed. void setUnrollCount(unsigned C) { StagedAttrs.UnrollCount = C; } private: - /// \brief Returns true if there is LoopInfo on the stack. + /// Returns true if there is LoopInfo on the stack. bool hasInfo() const { return !Active.empty(); } - /// \brief Return the LoopInfo for the current loop. HasInfo should be called + /// Return the LoopInfo for the current loop. HasInfo should be called /// first to ensure LoopInfo is present. const LoopInfo &getInfo() const { return Active.back(); } - /// \brief The set of attributes that will be applied to the next pushed loop. + /// The set of attributes that will be applied to the next pushed loop. LoopAttributes StagedAttrs; - /// \brief Stack of active loops. + /// Stack of active loops. llvm::SmallVector<LoopInfo, 4> Active; }; Index: cfe/trunk/lib/CodeGen/CGObjC.cpp =================================================================== --- cfe/trunk/lib/CodeGen/CGObjC.cpp +++ cfe/trunk/lib/CodeGen/CGObjC.cpp @@ -259,7 +259,7 @@ return CGM.getObjCRuntime().GenerateProtocolRef(*this, E->getProtocol()); } -/// \brief Adjust the type of an Objective-C object that doesn't match up due +/// Adjust the type of an Objective-C object that doesn't match up due /// to type erasure at various points, e.g., related result types or the use /// of parameterized classes. static RValue AdjustObjCObjectType(CodeGenFunction &CGF, QualType ExpT, @@ -803,7 +803,7 @@ Kind = Native; } -/// \brief Generate an Objective-C property getter function. +/// Generate an Objective-C property getter function. /// /// The given Decl must be an ObjCImplementationDecl. \@synthesize /// is illegal within a category. @@ -1336,7 +1336,7 @@ EmitStmt(&assign); } -/// \brief Generate an Objective-C property setter function. +/// Generate an Objective-C property setter function. /// /// The given Decl must be an ObjCImplementationDecl. \@synthesize /// is illegal within a category. Index: cfe/trunk/lib/CodeGen/CGObjCMac.cpp =================================================================== --- cfe/trunk/lib/CodeGen/CGObjCMac.cpp +++ cfe/trunk/lib/CodeGen/CGObjCMac.cpp @@ -888,7 +888,7 @@ /// int * but is actually an Obj-C class pointer. llvm::WeakTrackingVH ConstantStringClassRef; - /// \brief The LLVM type corresponding to NSConstantString. + /// The LLVM type corresponding to NSConstantString. llvm::StructType *NSConstantStringType = nullptr; llvm::StringMap<llvm::GlobalVariable *> NSConstantStringMap; Index: cfe/trunk/lib/CodeGen/CGOpenCLRuntime.h =================================================================== --- cfe/trunk/lib/CodeGen/CGOpenCLRuntime.h +++ cfe/trunk/lib/CodeGen/CGOpenCLRuntime.h @@ -68,11 +68,11 @@ llvm::PointerType *getSamplerType(const Type *T); - // \brief Returns a value which indicates the size in bytes of the pipe + // Returns a value which indicates the size in bytes of the pipe // element. virtual llvm::Value *getPipeElemSize(const Expr *PipeArg); - // \brief Returns a value which indicates the alignment in bytes of the pipe + // Returns a value which indicates the alignment in bytes of the pipe // element. virtual llvm::Value *getPipeElemAlign(const Expr *PipeArg); @@ -83,7 +83,7 @@ EnqueuedBlockInfo emitOpenCLEnqueuedBlock(CodeGenFunction &CGF, const Expr *E); - /// \brief Record invoke function and block literal emitted during normal + /// Record invoke function and block literal emitted during normal /// codegen for a block expression. The information is used by /// emitOpenCLEnqueuedBlock to emit wrapper kernel. /// Index: cfe/trunk/lib/CodeGen/CGOpenMPRuntime.h =================================================================== --- cfe/trunk/lib/CodeGen/CGOpenMPRuntime.h +++ cfe/trunk/lib/CodeGen/CGOpenMPRuntime.h @@ -219,13 +219,13 @@ explicit CGOpenMPRuntime(CodeGenModule &CGM, StringRef FirstSeparator, StringRef Separator); - /// \brief Creates offloading entry for the provided entry ID \a ID, + /// Creates offloading entry for the provided entry ID \a ID, /// address \a Addr, size \a Size, and flags \a Flags. virtual void createOffloadEntry(llvm::Constant *ID, llvm::Constant *Addr, uint64_t Size, int32_t Flags, llvm::GlobalValue::LinkageTypes Linkage); - /// \brief Helper to emit outlined function for 'target' directive. + /// Helper to emit outlined function for 'target' directive. /// \param D Directive to emit. /// \param ParentName Name of the function that encloses the target region. /// \param OutlinedFn Outlined function value to be defined by this call. @@ -241,7 +241,7 @@ bool IsOffloadEntry, const RegionCodeGenTy &CodeGen); - /// \brief Emits code for OpenMP 'if' clause using specified \a CodeGen + /// Emits code for OpenMP 'if' clause using specified \a CodeGen /// function. Here is the logic: /// if (Cond) { /// ThenGen(); @@ -252,20 +252,20 @@ const RegionCodeGenTy &ThenGen, const RegionCodeGenTy &ElseGen); - /// \brief Emits object of ident_t type with info for source location. + /// Emits object of ident_t type with info for source location. /// \param Flags Flags for OpenMP location. /// llvm::Value *emitUpdateLocation(CodeGenFunction &CGF, SourceLocation Loc, unsigned Flags = 0); - /// \brief Returns pointer to ident_t type. + /// Returns pointer to ident_t type. llvm::Type *getIdentTyPointerTy(); - /// \brief Gets thread id value for the current thread. + /// Gets thread id value for the current thread. /// llvm::Value *getThreadID(CodeGenFunction &CGF, SourceLocation Loc); - /// \brief Get the function name of an outlined region. + /// Get the function name of an outlined region. // The name can be customized depending on the target. // virtual StringRef getOutlinedHelperName() const { return ".omp_outlined."; } @@ -274,34 +274,34 @@ void emitCall(CodeGenFunction &CGF, SourceLocation Loc, llvm::Value *Callee, ArrayRef<llvm::Value *> Args = llvm::None) const; - /// \brief Emits address of the word in a memory where current thread id is + /// Emits address of the word in a memory where current thread id is /// stored. virtual Address emitThreadIDAddress(CodeGenFunction &CGF, SourceLocation Loc); private: - /// \brief Default const ident_t object used for initialization of all other + /// Default const ident_t object used for initialization of all other /// ident_t objects. llvm::Constant *DefaultOpenMPPSource = nullptr; - /// \brief Map of flags and corresponding default locations. + /// Map of flags and corresponding default locations. typedef llvm::DenseMap<unsigned, llvm::Value *> OpenMPDefaultLocMapTy; OpenMPDefaultLocMapTy OpenMPDefaultLocMap; Address getOrCreateDefaultLocation(unsigned Flags); QualType IdentQTy; llvm::StructType *IdentTy = nullptr; - /// \brief Map for SourceLocation and OpenMP runtime library debug locations. + /// Map for SourceLocation and OpenMP runtime library debug locations. typedef llvm::DenseMap<unsigned, llvm::Value *> OpenMPDebugLocMapTy; OpenMPDebugLocMapTy OpenMPDebugLocMap; - /// \brief The type for a microtask which gets passed to __kmpc_fork_call(). + /// The type for a microtask which gets passed to __kmpc_fork_call(). /// Original representation is: /// typedef void (kmpc_micro)(kmp_int32 global_tid, kmp_int32 bound_tid,...); llvm::FunctionType *Kmpc_MicroTy = nullptr; - /// \brief Stores debug location and ThreadID for the function. + /// Stores debug location and ThreadID for the function. struct DebugLocThreadIdTy { llvm::Value *DebugLoc; llvm::Value *ThreadID; }; - /// \brief Map of local debug location, ThreadId and functions. + /// Map of local debug location, ThreadId and functions. typedef llvm::DenseMap<llvm::Function *, DebugLocThreadIdTy> OpenMPLocThreadIDMapTy; OpenMPLocThreadIDMapTy OpenMPLocThreadIDMap; @@ -319,20 +319,20 @@ IdentifierInfo *Out = nullptr; IdentifierInfo *Priv = nullptr; IdentifierInfo *Orig = nullptr; - /// \brief Type kmp_critical_name, originally defined as typedef kmp_int32 + /// Type kmp_critical_name, originally defined as typedef kmp_int32 /// kmp_critical_name[8]; llvm::ArrayType *KmpCriticalNameTy; - /// \brief An ordered map of auto-generated variables to their unique names. + /// An ordered map of auto-generated variables to their unique names. /// It stores variables with the following names: 1) ".gomp_critical_user_" + /// <critical_section_name> + ".var" for "omp critical" directives; 2) /// <mangled_name_for_global_var> + ".cache." for cache for threadprivate /// variables. llvm::StringMap<llvm::AssertingVH<llvm::Constant>, llvm::BumpPtrAllocator> InternalVars; - /// \brief Type typedef kmp_int32 (* kmp_routine_entry_t)(kmp_int32, void *); + /// Type typedef kmp_int32 (* kmp_routine_entry_t)(kmp_int32, void *); llvm::Type *KmpRoutineEntryPtrTy = nullptr; QualType KmpRoutineEntryPtrQTy; - /// \brief Type typedef struct kmp_task { + /// Type typedef struct kmp_task { /// void * shareds; /**< pointer to block of pointers to /// shared vars */ /// kmp_routine_entry_t routine; /**< pointer to routine to call for @@ -346,7 +346,7 @@ QualType SavedKmpTaskTQTy; /// Saved kmp_task_t for taskloop-based directive. QualType SavedKmpTaskloopTQTy; - /// \brief Type typedef struct kmp_depend_info { + /// Type typedef struct kmp_depend_info { /// kmp_intptr_t base_addr; /// size_t len; /// struct { @@ -361,7 +361,7 @@ /// kmp_int64 st; // stride /// }; QualType KmpDimTy; - /// \brief Type struct __tgt_offload_entry{ + /// Type struct __tgt_offload_entry{ /// void *addr; // Pointer to the offload entry info. /// // (function or global) /// char *name; // Name of the function or global. @@ -389,12 +389,12 @@ /// // entries (non inclusive). /// }; QualType TgtBinaryDescriptorQTy; - /// \brief Entity that registers the offloading constants that were emitted so + /// Entity that registers the offloading constants that were emitted so /// far. class OffloadEntriesInfoManagerTy { CodeGenModule &CGM; - /// \brief Number of entries registered so far. + /// Number of entries registered so far. unsigned OffloadingEntriesNum = 0; public: @@ -600,68 +600,68 @@ bool ShouldMarkAsGlobal = true; llvm::SmallDenseSet<const FunctionDecl *> AlreadyEmittedTargetFunctions; - /// \brief Creates and registers offloading binary descriptor for the current + /// Creates and registers offloading binary descriptor for the current /// compilation unit. The function that does the registration is returned. llvm::Function *createOffloadingBinaryDescriptorRegistration(); - /// \brief Creates all the offload entries in the current compilation unit + /// Creates all the offload entries in the current compilation unit /// along with the associated metadata. void createOffloadEntriesAndInfoMetadata(); - /// \brief Loads all the offload entries information from the host IR + /// Loads all the offload entries information from the host IR /// metadata. void loadOffloadInfoMetadata(); - /// \brief Returns __tgt_offload_entry type. + /// Returns __tgt_offload_entry type. QualType getTgtOffloadEntryQTy(); - /// \brief Returns __tgt_device_image type. + /// Returns __tgt_device_image type. QualType getTgtDeviceImageQTy(); - /// \brief Returns __tgt_bin_desc type. + /// Returns __tgt_bin_desc type. QualType getTgtBinaryDescriptorQTy(); - /// \brief Start scanning from statement \a S and and emit all target regions + /// Start scanning from statement \a S and and emit all target regions /// found along the way. /// \param S Starting statement. /// \param ParentName Name of the function declaration that is being scanned. void scanForTargetRegionsFunctions(const Stmt *S, StringRef ParentName); - /// \brief Build type kmp_routine_entry_t (if not built yet). + /// Build type kmp_routine_entry_t (if not built yet). void emitKmpRoutineEntryT(QualType KmpInt32Ty); - /// \brief Returns pointer to kmpc_micro type. + /// Returns pointer to kmpc_micro type. llvm::Type *getKmpc_MicroPointerTy(); - /// \brief Returns specified OpenMP runtime function. + /// Returns specified OpenMP runtime function. /// \param Function OpenMP runtime function. /// \return Specified function. llvm::Constant *createRuntimeFunction(unsigned Function); - /// \brief Returns __kmpc_for_static_init_* runtime function for the specified + /// Returns __kmpc_for_static_init_* runtime function for the specified /// size \a IVSize and sign \a IVSigned. llvm::Constant *createForStaticInitFunction(unsigned IVSize, bool IVSigned); - /// \brief Returns __kmpc_dispatch_init_* runtime function for the specified + /// Returns __kmpc_dispatch_init_* runtime function for the specified /// size \a IVSize and sign \a IVSigned. llvm::Constant *createDispatchInitFunction(unsigned IVSize, bool IVSigned); - /// \brief Returns __kmpc_dispatch_next_* runtime function for the specified + /// Returns __kmpc_dispatch_next_* runtime function for the specified /// size \a IVSize and sign \a IVSigned. llvm::Constant *createDispatchNextFunction(unsigned IVSize, bool IVSigned); - /// \brief Returns __kmpc_dispatch_fini_* runtime function for the specified + /// Returns __kmpc_dispatch_fini_* runtime function for the specified /// size \a IVSize and sign \a IVSigned. llvm::Constant *createDispatchFiniFunction(unsigned IVSize, bool IVSigned); - /// \brief If the specified mangled name is not in the module, create and + /// If the specified mangled name is not in the module, create and /// return threadprivate cache object. This object is a pointer's worth of /// storage that's reserved for use by the OpenMP runtime. /// \param VD Threadprivate variable. /// \return Cache variable for the specified threadprivate. llvm::Constant *getOrCreateThreadPrivateCache(const VarDecl *VD); - /// \brief Gets (if variable with the given name already exist) or creates + /// Gets (if variable with the given name already exist) or creates /// internal global variable with the specified Name. The created variable has /// linkage CommonLinkage by default and is initialized by null value. /// \param Ty Type of the global variable. If it is exist already the type @@ -670,13 +670,13 @@ llvm::Constant *getOrCreateInternalVariable(llvm::Type *Ty, const llvm::Twine &Name); - /// \brief Set of threadprivate variables with the generated initializer. + /// Set of threadprivate variables with the generated initializer. llvm::SmallPtrSet<const VarDecl *, 4> ThreadPrivateWithDefinition; /// Set of declare target variables with the generated initializer. llvm::SmallPtrSet<const VarDecl *, 4> DeclareTargetWithDefinition; - /// \brief Emits initialization code for the threadprivate variables. + /// Emits initialization code for the threadprivate variables. /// \param VDAddr Address of the global variable \a VD. /// \param Ctor Pointer to a global init function for \a VD. /// \param CopyCtor Pointer to a global copy function for \a VD. @@ -686,7 +686,7 @@ llvm::Value *Ctor, llvm::Value *CopyCtor, llvm::Value *Dtor, SourceLocation Loc); - /// \brief Returns corresponding lock object for the specified critical region + /// Returns corresponding lock object for the specified critical region /// name. If the lock object does not exist it is created, otherwise the /// reference to the existing copy is returned. /// \param CriticalName Name of the critical region. @@ -744,7 +744,7 @@ virtual std::pair<llvm::Function *, llvm::Function *> getUserDefinedReduction(const OMPDeclareReductionDecl *D); - /// \brief Emits outlined function for the specified OpenMP parallel directive + /// Emits outlined function for the specified OpenMP parallel directive /// \a D. This outlined function has type void(*)(kmp_int32 *ThreadID, /// kmp_int32 BoundID, struct context_vars*). /// \param D OpenMP directive. @@ -756,7 +756,7 @@ const OMPExecutableDirective &D, const VarDecl *ThreadIDVar, OpenMPDirectiveKind InnermostKind, const RegionCodeGenTy &CodeGen); - /// \brief Emits outlined function for the specified OpenMP teams directive + /// Emits outlined function for the specified OpenMP teams directive /// \a D. This outlined function has type void(*)(kmp_int32 *ThreadID, /// kmp_int32 BoundID, struct context_vars*). /// \param D OpenMP directive. @@ -768,7 +768,7 @@ const OMPExecutableDirective &D, const VarDecl *ThreadIDVar, OpenMPDirectiveKind InnermostKind, const RegionCodeGenTy &CodeGen); - /// \brief Emits outlined function for the OpenMP task directive \a D. This + /// Emits outlined function for the OpenMP task directive \a D. This /// outlined function has type void(*)(kmp_int32 ThreadID, struct task_t* /// TaskT). /// \param D OpenMP directive. @@ -789,11 +789,11 @@ OpenMPDirectiveKind InnermostKind, const RegionCodeGenTy &CodeGen, bool Tied, unsigned &NumberOfParts); - /// \brief Cleans up references to the objects in finished function. + /// Cleans up references to the objects in finished function. /// virtual void functionFinished(CodeGenFunction &CGF); - /// \brief Emits code for parallel or serial call of the \a OutlinedFn with + /// Emits code for parallel or serial call of the \a OutlinedFn with /// variables captured in a record which address is stored in \a /// CapturedStruct. /// \param OutlinedFn Outlined function to be run in parallel threads. Type of @@ -808,7 +808,7 @@ ArrayRef<llvm::Value *> CapturedVars, const Expr *IfCond); - /// \brief Emits a critical region. + /// Emits a critical region. /// \param CriticalName Name of the critical region. /// \param CriticalOpGen Generator for the statement associated with the given /// critical region. @@ -818,24 +818,24 @@ SourceLocation Loc, const Expr *Hint = nullptr); - /// \brief Emits a master region. + /// Emits a master region. /// \param MasterOpGen Generator for the statement associated with the given /// master region. virtual void emitMasterRegion(CodeGenFunction &CGF, const RegionCodeGenTy &MasterOpGen, SourceLocation Loc); - /// \brief Emits code for a taskyield directive. + /// Emits code for a taskyield directive. virtual void emitTaskyieldCall(CodeGenFunction &CGF, SourceLocation Loc); - /// \brief Emit a taskgroup region. + /// Emit a taskgroup region. /// \param TaskgroupOpGen Generator for the statement associated with the /// given taskgroup region. virtual void emitTaskgroupRegion(CodeGenFunction &CGF, const RegionCodeGenTy &TaskgroupOpGen, SourceLocation Loc); - /// \brief Emits a single region. + /// Emits a single region. /// \param SingleOpGen Generator for the statement associated with the given /// single region. virtual void emitSingleRegion(CodeGenFunction &CGF, @@ -846,14 +846,14 @@ ArrayRef<const Expr *> SrcExprs, ArrayRef<const Expr *> AssignmentOps); - /// \brief Emit an ordered region. + /// Emit an ordered region. /// \param OrderedOpGen Generator for the statement associated with the given /// ordered region. virtual void emitOrderedRegion(CodeGenFunction &CGF, const RegionCodeGenTy &OrderedOpGen, SourceLocation Loc, bool IsThreads); - /// \brief Emit an implicit/explicit barrier for OpenMP threads. + /// Emit an implicit/explicit barrier for OpenMP threads. /// \param Kind Directive for which this implicit barrier call must be /// generated. Must be OMPD_barrier for explicit barrier generation. /// \param EmitChecks true if need to emit checks for cancellation barriers. @@ -866,7 +866,7 @@ bool EmitChecks = true, bool ForceSimpleCall = false); - /// \brief Check if the specified \a ScheduleKind is static non-chunked. + /// Check if the specified \a ScheduleKind is static non-chunked. /// This kind of worksharing directive is emitted without outer loop. /// \param ScheduleKind Schedule kind specified in the 'schedule' clause. /// \param Chunked True if chunk is specified in the clause. @@ -874,7 +874,7 @@ virtual bool isStaticNonchunked(OpenMPScheduleClauseKind ScheduleKind, bool Chunked) const; - /// \brief Check if the specified \a ScheduleKind is static non-chunked. + /// Check if the specified \a ScheduleKind is static non-chunked. /// This kind of distribute directive is emitted without outer loop. /// \param ScheduleKind Schedule kind specified in the 'dist_schedule' clause. /// \param Chunked True if chunk is specified in the clause. @@ -882,7 +882,7 @@ virtual bool isStaticNonchunked(OpenMPDistScheduleClauseKind ScheduleKind, bool Chunked) const; - /// \brief Check if the specified \a ScheduleKind is dynamic. + /// Check if the specified \a ScheduleKind is dynamic. /// This kind of worksharing directive is emitted without outer loop. /// \param ScheduleKind Schedule Kind specified in the 'schedule' clause. /// @@ -955,7 +955,7 @@ : IVSize(IVSize), IVSigned(IVSigned), Ordered(Ordered), IL(IL), LB(LB), UB(UB), ST(ST), Chunk(Chunk) {} }; - /// \brief Call the appropriate runtime routine to initialize it before start + /// Call the appropriate runtime routine to initialize it before start /// of loop. /// /// This is used only in case of static schedule, when the user did not @@ -986,7 +986,7 @@ OpenMPDistScheduleClauseKind SchedKind, const StaticRTInput &Values); - /// \brief Call the appropriate runtime routine to notify that we finished + /// Call the appropriate runtime routine to notify that we finished /// iteration of the ordered loop with the dynamic scheduling. /// /// \param CGF Reference to current CodeGenFunction. @@ -998,7 +998,7 @@ SourceLocation Loc, unsigned IVSize, bool IVSigned); - /// \brief Call the appropriate runtime routine to notify that we finished + /// Call the appropriate runtime routine to notify that we finished /// all the work with current loop. /// /// \param CGF Reference to current CodeGenFunction. @@ -1027,7 +1027,7 @@ Address IL, Address LB, Address UB, Address ST); - /// \brief Emits call to void __kmpc_push_num_threads(ident_t *loc, kmp_int32 + /// Emits call to void __kmpc_push_num_threads(ident_t *loc, kmp_int32 /// global_tid, kmp_int32 num_threads) to generate code for 'num_threads' /// clause. /// \param NumThreads An integer value of threads. @@ -1035,13 +1035,13 @@ llvm::Value *NumThreads, SourceLocation Loc); - /// \brief Emit call to void __kmpc_push_proc_bind(ident_t *loc, kmp_int32 + /// Emit call to void __kmpc_push_proc_bind(ident_t *loc, kmp_int32 /// global_tid, int proc_bind) to generate code for 'proc_bind' clause. virtual void emitProcBindClause(CodeGenFunction &CGF, OpenMPProcBindClauseKind ProcBind, SourceLocation Loc); - /// \brief Returns address of the threadprivate variable for the current + /// Returns address of the threadprivate variable for the current /// thread. /// \param VD Threadprivate variable. /// \param VDAddr Address of the global variable \a VD. @@ -1056,7 +1056,7 @@ /// clause. virtual Address getAddrOfDeclareTargetLink(const VarDecl *VD); - /// \brief Emit a code for initialization of threadprivate variable. It emits + /// Emit a code for initialization of threadprivate variable. It emits /// a call to runtime library which adds initial value to the newly created /// threadprivate variable (if it is not constant) and registers destructor /// for the variable (if any). @@ -1069,7 +1069,7 @@ SourceLocation Loc, bool PerformInit, CodeGenFunction *CGF = nullptr); - /// \brief Emit a code for initialization of declare target variable. + /// Emit a code for initialization of declare target variable. /// \param VD Declare target variable. /// \param Addr Address of the global variable \a VD. /// \param PerformInit true if initialization expression is not constant. @@ -1085,12 +1085,12 @@ QualType VarType, StringRef Name); - /// \brief Emit flush of the variables specified in 'omp flush' directive. + /// Emit flush of the variables specified in 'omp flush' directive. /// \param Vars List of variables to flush. virtual void emitFlush(CodeGenFunction &CGF, ArrayRef<const Expr *> Vars, SourceLocation Loc); - /// \brief Emit task region for the task directive. The task region is + /// Emit task region for the task directive. The task region is /// emitted in several steps: /// 1. Emit a call to kmp_task_t *__kmpc_omp_task_alloc(ident_t *, kmp_int32 /// gtid, kmp_int32 flags, size_t sizeof_kmp_task_t, size_t sizeof_shareds, @@ -1157,7 +1157,7 @@ llvm::Value *TaskFunction, QualType SharedsTy, Address Shareds, const Expr *IfCond, const OMPTaskDataTy &Data); - /// \brief Emit code for the directive that does not require outlining. + /// Emit code for the directive that does not require outlining. /// /// \param InnermostKind Kind of innermost directive (for simple directives it /// is a directive itself, for combined - its innermost directive). @@ -1195,7 +1195,7 @@ bool SimpleReduction; OpenMPDirectiveKind ReductionKind; }; - /// \brief Emit a code for reduction clause. Next code should be emitted for + /// Emit a code for reduction clause. Next code should be emitted for /// reduction: /// \code /// @@ -1289,10 +1289,10 @@ llvm::Value *ReductionsPtr, LValue SharedLVal); - /// \brief Emit code for 'taskwait' directive. + /// Emit code for 'taskwait' directive. virtual void emitTaskwaitCall(CodeGenFunction &CGF, SourceLocation Loc); - /// \brief Emit code for 'cancellation point' construct. + /// Emit code for 'cancellation point' construct. /// \param CancelRegion Region kind for which the cancellation point must be /// emitted. /// @@ -1300,7 +1300,7 @@ SourceLocation Loc, OpenMPDirectiveKind CancelRegion); - /// \brief Emit code for 'cancel' construct. + /// Emit code for 'cancel' construct. /// \param IfCond Condition in the associated 'if' clause, if it was /// specified, nullptr otherwise. /// \param CancelRegion Region kind for which the cancel must be emitted. @@ -1309,7 +1309,7 @@ const Expr *IfCond, OpenMPDirectiveKind CancelRegion); - /// \brief Emit outilined function for 'target' directive. + /// Emit outilined function for 'target' directive. /// \param D Directive to emit. /// \param ParentName Name of the function that encloses the target region. /// \param OutlinedFn Outlined function value to be defined by this call. @@ -1325,7 +1325,7 @@ bool IsOffloadEntry, const RegionCodeGenTy &CodeGen); - /// \brief Emit the target offloading code associated with \a D. The emitted + /// Emit the target offloading code associated with \a D. The emitted /// code attempts offloading the execution to the device, an the event of /// a failure it executes the host version outlined in \a OutlinedFn. /// \param D Directive to emit. @@ -1341,13 +1341,13 @@ llvm::Value *OutlinedFnID, const Expr *IfCond, const Expr *Device); - /// \brief Emit the target regions enclosed in \a GD function definition or + /// Emit the target regions enclosed in \a GD function definition or /// the function itself in case it is a valid device function. Returns true if /// \a GD was dealt with successfully. /// \param GD Function to scan. virtual bool emitTargetFunctions(GlobalDecl GD); - /// \brief Emit the global variable if it is a valid device global variable. + /// Emit the global variable if it is a valid device global variable. /// Returns true if \a GD was dealt with successfully. /// \param GD Variable declaration to emit. virtual bool emitTargetGlobalVariable(GlobalDecl GD); @@ -1357,17 +1357,17 @@ virtual void registerTargetGlobalVariable(const VarDecl *VD, llvm::Constant *Addr); - /// \brief Emit the global \a GD if it is meaningful for the target. Returns + /// Emit the global \a GD if it is meaningful for the target. Returns /// if it was emitted successfully. /// \param GD Global to scan. virtual bool emitTargetGlobal(GlobalDecl GD); - /// \brief Creates the offloading descriptor in the event any target region + /// Creates the offloading descriptor in the event any target region /// was emitted in the current module and return the function that registers /// it. virtual llvm::Function *emitRegistrationFunction(); - /// \brief Emits code for teams call of the \a OutlinedFn with + /// Emits code for teams call of the \a OutlinedFn with /// variables captured in a record which address is stored in \a /// CapturedStruct. /// \param OutlinedFn Outlined function to be run by team masters. Type of @@ -1380,7 +1380,7 @@ SourceLocation Loc, llvm::Value *OutlinedFn, ArrayRef<llvm::Value *> CapturedVars); - /// \brief Emits call to void __kmpc_push_num_teams(ident_t *loc, kmp_int32 + /// Emits call to void __kmpc_push_num_teams(ident_t *loc, kmp_int32 /// global_tid, kmp_int32 num_teams, kmp_int32 thread_limit) to generate code /// for num_teams clause. /// \param NumTeams An integer expression of teams. @@ -1428,7 +1428,7 @@ bool requiresDevicePointerInfo() { return RequiresDevicePointerInfo; } }; - /// \brief Emit the target data mapping code associated with \a D. + /// Emit the target data mapping code associated with \a D. /// \param D Directive to emit. /// \param IfCond Expression evaluated in if clause associated with the /// target directive, or null if no device clause is used. @@ -1442,7 +1442,7 @@ const RegionCodeGenTy &CodeGen, TargetDataInfo &Info); - /// \brief Emit the data mapping/movement code associated with the directive + /// Emit the data mapping/movement code associated with the directive /// \a D that should be of the form 'target [{enter|exit} data | update]'. /// \param D Directive to emit. /// \param IfCond Expression evaluated in if clause associated with the target @@ -1515,7 +1515,7 @@ explicit CGOpenMPSIMDRuntime(CodeGenModule &CGM) : CGOpenMPRuntime(CGM) {} ~CGOpenMPSIMDRuntime() override {} - /// \brief Emits outlined function for the specified OpenMP parallel directive + /// Emits outlined function for the specified OpenMP parallel directive /// \a D. This outlined function has type void(*)(kmp_int32 *ThreadID, /// kmp_int32 BoundID, struct context_vars*). /// \param D OpenMP directive. @@ -1529,7 +1529,7 @@ OpenMPDirectiveKind InnermostKind, const RegionCodeGenTy &CodeGen) override; - /// \brief Emits outlined function for the specified OpenMP teams directive + /// Emits outlined function for the specified OpenMP teams directive /// \a D. This outlined function has type void(*)(kmp_int32 *ThreadID, /// kmp_int32 BoundID, struct context_vars*). /// \param D OpenMP directive. @@ -1543,7 +1543,7 @@ OpenMPDirectiveKind InnermostKind, const RegionCodeGenTy &CodeGen) override; - /// \brief Emits outlined function for the OpenMP task directive \a D. This + /// Emits outlined function for the OpenMP task directive \a D. This /// outlined function has type void(*)(kmp_int32 ThreadID, struct task_t* /// TaskT). /// \param D OpenMP directive. @@ -1564,7 +1564,7 @@ OpenMPDirectiveKind InnermostKind, const RegionCodeGenTy &CodeGen, bool Tied, unsigned &NumberOfParts) override; - /// \brief Emits code for parallel or serial call of the \a OutlinedFn with + /// Emits code for parallel or serial call of the \a OutlinedFn with /// variables captured in a record which address is stored in \a /// CapturedStruct. /// \param OutlinedFn Outlined function to be run in parallel threads. Type of @@ -1579,7 +1579,7 @@ ArrayRef<llvm::Value *> CapturedVars, const Expr *IfCond) override; - /// \brief Emits a critical region. + /// Emits a critical region. /// \param CriticalName Name of the critical region. /// \param CriticalOpGen Generator for the statement associated with the given /// critical region. @@ -1589,24 +1589,24 @@ SourceLocation Loc, const Expr *Hint = nullptr) override; - /// \brief Emits a master region. + /// Emits a master region. /// \param MasterOpGen Generator for the statement associated with the given /// master region. void emitMasterRegion(CodeGenFunction &CGF, const RegionCodeGenTy &MasterOpGen, SourceLocation Loc) override; - /// \brief Emits code for a taskyield directive. + /// Emits code for a taskyield directive. void emitTaskyieldCall(CodeGenFunction &CGF, SourceLocation Loc) override; - /// \brief Emit a taskgroup region. + /// Emit a taskgroup region. /// \param TaskgroupOpGen Generator for the statement associated with the /// given taskgroup region. void emitTaskgroupRegion(CodeGenFunction &CGF, const RegionCodeGenTy &TaskgroupOpGen, SourceLocation Loc) override; - /// \brief Emits a single region. + /// Emits a single region. /// \param SingleOpGen Generator for the statement associated with the given /// single region. void emitSingleRegion(CodeGenFunction &CGF, @@ -1616,14 +1616,14 @@ ArrayRef<const Expr *> SrcExprs, ArrayRef<const Expr *> AssignmentOps) override; - /// \brief Emit an ordered region. + /// Emit an ordered region. /// \param OrderedOpGen Generator for the statement associated with the given /// ordered region. void emitOrderedRegion(CodeGenFunction &CGF, const RegionCodeGenTy &OrderedOpGen, SourceLocation Loc, bool IsThreads) override; - /// \brief Emit an implicit/explicit barrier for OpenMP threads. + /// Emit an implicit/explicit barrier for OpenMP threads. /// \param Kind Directive for which this implicit barrier call must be /// generated. Must be OMPD_barrier for explicit barrier generation. /// \param EmitChecks true if need to emit checks for cancellation barriers. @@ -1656,7 +1656,7 @@ unsigned IVSize, bool IVSigned, bool Ordered, const DispatchRTInput &DispatchValues) override; - /// \brief Call the appropriate runtime routine to initialize it before start + /// Call the appropriate runtime routine to initialize it before start /// of loop. /// /// This is used only in case of static schedule, when the user did not @@ -1686,7 +1686,7 @@ OpenMPDistScheduleClauseKind SchedKind, const StaticRTInput &Values) override; - /// \brief Call the appropriate runtime routine to notify that we finished + /// Call the appropriate runtime routine to notify that we finished /// iteration of the ordered loop with the dynamic scheduling. /// /// \param CGF Reference to current CodeGenFunction. @@ -1697,7 +1697,7 @@ void emitForOrderedIterationEnd(CodeGenFunction &CGF, SourceLocation Loc, unsigned IVSize, bool IVSigned) override; - /// \brief Call the appropriate runtime routine to notify that we finished + /// Call the appropriate runtime routine to notify that we finished /// all the work with current loop. /// /// \param CGF Reference to current CodeGenFunction. @@ -1725,20 +1725,20 @@ unsigned IVSize, bool IVSigned, Address IL, Address LB, Address UB, Address ST) override; - /// \brief Emits call to void __kmpc_push_num_threads(ident_t *loc, kmp_int32 + /// Emits call to void __kmpc_push_num_threads(ident_t *loc, kmp_int32 /// global_tid, kmp_int32 num_threads) to generate code for 'num_threads' /// clause. /// \param NumThreads An integer value of threads. void emitNumThreadsClause(CodeGenFunction &CGF, llvm::Value *NumThreads, SourceLocation Loc) override; - /// \brief Emit call to void __kmpc_push_proc_bind(ident_t *loc, kmp_int32 + /// Emit call to void __kmpc_push_proc_bind(ident_t *loc, kmp_int32 /// global_tid, int proc_bind) to generate code for 'proc_bind' clause. void emitProcBindClause(CodeGenFunction &CGF, OpenMPProcBindClauseKind ProcBind, SourceLocation Loc) override; - /// \brief Returns address of the threadprivate variable for the current + /// Returns address of the threadprivate variable for the current /// thread. /// \param VD Threadprivate variable. /// \param VDAddr Address of the global variable \a VD. @@ -1747,7 +1747,7 @@ Address getAddrOfThreadPrivate(CodeGenFunction &CGF, const VarDecl *VD, Address VDAddr, SourceLocation Loc) override; - /// \brief Emit a code for initialization of threadprivate variable. It emits + /// Emit a code for initialization of threadprivate variable. It emits /// a call to runtime library which adds initial value to the newly created /// threadprivate variable (if it is not constant) and registers destructor /// for the variable (if any). @@ -1768,12 +1768,12 @@ QualType VarType, StringRef Name) override; - /// \brief Emit flush of the variables specified in 'omp flush' directive. + /// Emit flush of the variables specified in 'omp flush' directive. /// \param Vars List of variables to flush. void emitFlush(CodeGenFunction &CGF, ArrayRef<const Expr *> Vars, SourceLocation Loc) override; - /// \brief Emit task region for the task directive. The task region is + /// Emit task region for the task directive. The task region is /// emitted in several steps: /// 1. Emit a call to kmp_task_t *__kmpc_omp_task_alloc(ident_t *, kmp_int32 /// gtid, kmp_int32 flags, size_t sizeof_kmp_task_t, size_t sizeof_shareds, @@ -1839,7 +1839,7 @@ QualType SharedsTy, Address Shareds, const Expr *IfCond, const OMPTaskDataTy &Data) override; - /// \brief Emit a code for reduction clause. Next code should be emitted for + /// Emit a code for reduction clause. Next code should be emitted for /// reduction: /// \code /// @@ -1932,17 +1932,17 @@ llvm::Value *ReductionsPtr, LValue SharedLVal) override; - /// \brief Emit code for 'taskwait' directive. + /// Emit code for 'taskwait' directive. void emitTaskwaitCall(CodeGenFunction &CGF, SourceLocation Loc) override; - /// \brief Emit code for 'cancellation point' construct. + /// Emit code for 'cancellation point' construct. /// \param CancelRegion Region kind for which the cancellation point must be /// emitted. /// void emitCancellationPointCall(CodeGenFunction &CGF, SourceLocation Loc, OpenMPDirectiveKind CancelRegion) override; - /// \brief Emit code for 'cancel' construct. + /// Emit code for 'cancel' construct. /// \param IfCond Condition in the associated 'if' clause, if it was /// specified, nullptr otherwise. /// \param CancelRegion Region kind for which the cancel must be emitted. @@ -1951,7 +1951,7 @@ const Expr *IfCond, OpenMPDirectiveKind CancelRegion) override; - /// \brief Emit outilined function for 'target' directive. + /// Emit outilined function for 'target' directive. /// \param D Directive to emit. /// \param ParentName Name of the function that encloses the target region. /// \param OutlinedFn Outlined function value to be defined by this call. @@ -1967,7 +1967,7 @@ bool IsOffloadEntry, const RegionCodeGenTy &CodeGen) override; - /// \brief Emit the target offloading code associated with \a D. The emitted + /// Emit the target offloading code associated with \a D. The emitted /// code attempts offloading the execution to the device, an the event of /// a failure it executes the host version outlined in \a OutlinedFn. /// \param D Directive to emit. @@ -1981,28 +1981,28 @@ llvm::Value *OutlinedFn, llvm::Value *OutlinedFnID, const Expr *IfCond, const Expr *Device) override; - /// \brief Emit the target regions enclosed in \a GD function definition or + /// Emit the target regions enclosed in \a GD function definition or /// the function itself in case it is a valid device function. Returns true if /// \a GD was dealt with successfully. /// \param GD Function to scan. bool emitTargetFunctions(GlobalDecl GD) override; - /// \brief Emit the global variable if it is a valid device global variable. + /// Emit the global variable if it is a valid device global variable. /// Returns true if \a GD was dealt with successfully. /// \param GD Variable declaration to emit. bool emitTargetGlobalVariable(GlobalDecl GD) override; - /// \brief Emit the global \a GD if it is meaningful for the target. Returns + /// Emit the global \a GD if it is meaningful for the target. Returns /// if it was emitted successfully. /// \param GD Global to scan. bool emitTargetGlobal(GlobalDecl GD) override; - /// \brief Creates the offloading descriptor in the event any target region + /// Creates the offloading descriptor in the event any target region /// was emitted in the current module and return the function that registers /// it. llvm::Function *emitRegistrationFunction() override; - /// \brief Emits code for teams call of the \a OutlinedFn with + /// Emits code for teams call of the \a OutlinedFn with /// variables captured in a record which address is stored in \a /// CapturedStruct. /// \param OutlinedFn Outlined function to be run by team masters. Type of @@ -2014,7 +2014,7 @@ SourceLocation Loc, llvm::Value *OutlinedFn, ArrayRef<llvm::Value *> CapturedVars) override; - /// \brief Emits call to void __kmpc_push_num_teams(ident_t *loc, kmp_int32 + /// Emits call to void __kmpc_push_num_teams(ident_t *loc, kmp_int32 /// global_tid, kmp_int32 num_teams, kmp_int32 thread_limit) to generate code /// for num_teams clause. /// \param NumTeams An integer expression of teams. @@ -2022,7 +2022,7 @@ void emitNumTeamsClause(CodeGenFunction &CGF, const Expr *NumTeams, const Expr *ThreadLimit, SourceLocation Loc) override; - /// \brief Emit the target data mapping code associated with \a D. + /// Emit the target data mapping code associated with \a D. /// \param D Directive to emit. /// \param IfCond Expression evaluated in if clause associated with the /// target directive, or null if no device clause is used. @@ -2035,7 +2035,7 @@ const Expr *Device, const RegionCodeGenTy &CodeGen, TargetDataInfo &Info) override; - /// \brief Emit the data mapping/movement code associated with the directive + /// Emit the data mapping/movement code associated with the directive /// \a D that should be of the form 'target [{enter|exit} data | update]'. /// \param D Directive to emit. /// \param IfCond Expression evaluated in if clause associated with the target Index: cfe/trunk/lib/CodeGen/CGOpenMPRuntime.cpp =================================================================== --- cfe/trunk/lib/CodeGen/CGOpenMPRuntime.cpp +++ cfe/trunk/lib/CodeGen/CGOpenMPRuntime.cpp @@ -34,20 +34,20 @@ using namespace CodeGen; namespace { -/// \brief Base class for handling code generation inside OpenMP regions. +/// Base class for handling code generation inside OpenMP regions. class CGOpenMPRegionInfo : public CodeGenFunction::CGCapturedStmtInfo { public: - /// \brief Kinds of OpenMP regions used in codegen. + /// Kinds of OpenMP regions used in codegen. enum CGOpenMPRegionKind { - /// \brief Region with outlined function for standalone 'parallel' + /// Region with outlined function for standalone 'parallel' /// directive. ParallelOutlinedRegion, - /// \brief Region with outlined function for standalone 'task' directive. + /// Region with outlined function for standalone 'task' directive. TaskOutlinedRegion, - /// \brief Region for constructs that do not require function outlining, + /// Region for constructs that do not require function outlining, /// like 'for', 'sections', 'atomic' etc. directives. InlinedRegion, - /// \brief Region with outlined function for standalone 'target' directive. + /// Region with outlined function for standalone 'target' directive. TargetRegion, }; @@ -64,14 +64,14 @@ : CGCapturedStmtInfo(CR_OpenMP), RegionKind(RegionKind), CodeGen(CodeGen), Kind(Kind), HasCancel(HasCancel) {} - /// \brief Get a variable or parameter for storing global thread id + /// Get a variable or parameter for storing global thread id /// inside OpenMP construct. virtual const VarDecl *getThreadIDVariable() const = 0; - /// \brief Emit the captured statement body. + /// Emit the captured statement body. void EmitBody(CodeGenFunction &CGF, const Stmt *S) override; - /// \brief Get an LValue for the current ThreadID variable. + /// Get an LValue for the current ThreadID variable. /// \return LValue for thread id variable. This LValue always has type int32*. virtual LValue getThreadIDVariableLValue(CodeGenFunction &CGF); @@ -96,7 +96,7 @@ bool HasCancel; }; -/// \brief API for captured statement code generation in OpenMP constructs. +/// API for captured statement code generation in OpenMP constructs. class CGOpenMPOutlinedRegionInfo final : public CGOpenMPRegionInfo { public: CGOpenMPOutlinedRegionInfo(const CapturedStmt &CS, const VarDecl *ThreadIDVar, @@ -109,11 +109,11 @@ assert(ThreadIDVar != nullptr && "No ThreadID in OpenMP region."); } - /// \brief Get a variable or parameter for storing global thread id + /// Get a variable or parameter for storing global thread id /// inside OpenMP construct. const VarDecl *getThreadIDVariable() const override { return ThreadIDVar; } - /// \brief Get the name of the capture helper. + /// Get the name of the capture helper. StringRef getHelperName() const override { return HelperName; } static bool classof(const CGCapturedStmtInfo *Info) { @@ -123,13 +123,13 @@ } private: - /// \brief A variable or parameter storing global thread id for OpenMP + /// A variable or parameter storing global thread id for OpenMP /// constructs. const VarDecl *ThreadIDVar; StringRef HelperName; }; -/// \brief API for captured statement code generation in OpenMP constructs. +/// API for captured statement code generation in OpenMP constructs. class CGOpenMPTaskOutlinedRegionInfo final : public CGOpenMPRegionInfo { public: class UntiedTaskActionTy final : public PrePostActionTy { @@ -190,14 +190,14 @@ assert(ThreadIDVar != nullptr && "No ThreadID in OpenMP region."); } - /// \brief Get a variable or parameter for storing global thread id + /// Get a variable or parameter for storing global thread id /// inside OpenMP construct. const VarDecl *getThreadIDVariable() const override { return ThreadIDVar; } - /// \brief Get an LValue for the current ThreadID variable. + /// Get an LValue for the current ThreadID variable. LValue getThreadIDVariableLValue(CodeGenFunction &CGF) override; - /// \brief Get the name of the capture helper. + /// Get the name of the capture helper. StringRef getHelperName() const override { return ".omp_outlined."; } void emitUntiedSwitch(CodeGenFunction &CGF) override { @@ -211,14 +211,14 @@ } private: - /// \brief A variable or parameter storing global thread id for OpenMP + /// A variable or parameter storing global thread id for OpenMP /// constructs. const VarDecl *ThreadIDVar; /// Action for emitting code for untied tasks. const UntiedTaskActionTy &Action; }; -/// \brief API for inlined captured statement code generation in OpenMP +/// API for inlined captured statement code generation in OpenMP /// constructs. class CGOpenMPInlinedRegionInfo : public CGOpenMPRegionInfo { public: @@ -229,7 +229,7 @@ OldCSI(OldCSI), OuterRegionInfo(dyn_cast_or_null<CGOpenMPRegionInfo>(OldCSI)) {} - // \brief Retrieve the value of the context parameter. + // Retrieve the value of the context parameter. llvm::Value *getContextValue() const override { if (OuterRegionInfo) return OuterRegionInfo->getContextValue(); @@ -244,7 +244,7 @@ llvm_unreachable("No context value for inlined OpenMP region"); } - /// \brief Lookup the captured field decl for a variable. + /// Lookup the captured field decl for a variable. const FieldDecl *lookup(const VarDecl *VD) const override { if (OuterRegionInfo) return OuterRegionInfo->lookup(VD); @@ -259,7 +259,7 @@ return nullptr; } - /// \brief Get a variable or parameter for storing global thread id + /// Get a variable or parameter for storing global thread id /// inside OpenMP construct. const VarDecl *getThreadIDVariable() const override { if (OuterRegionInfo) @@ -267,14 +267,14 @@ return nullptr; } - /// \brief Get an LValue for the current ThreadID variable. + /// Get an LValue for the current ThreadID variable. LValue getThreadIDVariableLValue(CodeGenFunction &CGF) override { if (OuterRegionInfo) return OuterRegionInfo->getThreadIDVariableLValue(CGF); llvm_unreachable("No LValue for inlined OpenMP construct"); } - /// \brief Get the name of the capture helper. + /// Get the name of the capture helper. StringRef getHelperName() const override { if (auto *OuterRegionInfo = getOldCSI()) return OuterRegionInfo->getHelperName(); @@ -296,12 +296,12 @@ ~CGOpenMPInlinedRegionInfo() override = default; private: - /// \brief CodeGen info about outer OpenMP region. + /// CodeGen info about outer OpenMP region. CodeGenFunction::CGCapturedStmtInfo *OldCSI; CGOpenMPRegionInfo *OuterRegionInfo; }; -/// \brief API for captured statement code generation in OpenMP target +/// API for captured statement code generation in OpenMP target /// constructs. For this captures, implicit parameters are used instead of the /// captured fields. The name of the target region has to be unique in a given /// application so it is provided by the client, because only the client has @@ -314,11 +314,11 @@ /*HasCancel=*/false), HelperName(HelperName) {} - /// \brief This is unused for target regions because each starts executing + /// This is unused for target regions because each starts executing /// with a single thread. const VarDecl *getThreadIDVariable() const override { return nullptr; } - /// \brief Get the name of the capture helper. + /// Get the name of the capture helper. StringRef getHelperName() const override { return HelperName; } static bool classof(const CGCapturedStmtInfo *Info) { @@ -333,7 +333,7 @@ static void EmptyCodeGen(CodeGenFunction &, PrePostActionTy &) { llvm_unreachable("No codegen for expressions"); } -/// \brief API for generation of expressions captured in a innermost OpenMP +/// API for generation of expressions captured in a innermost OpenMP /// region. class CGOpenMPInnerExprInfo final : public CGOpenMPInlinedRegionInfo { public: @@ -363,25 +363,25 @@ (void)PrivScope.Privatize(); } - /// \brief Lookup the captured field decl for a variable. + /// Lookup the captured field decl for a variable. const FieldDecl *lookup(const VarDecl *VD) const override { if (const FieldDecl *FD = CGOpenMPInlinedRegionInfo::lookup(VD)) return FD; return nullptr; } - /// \brief Emit the captured statement body. + /// Emit the captured statement body. void EmitBody(CodeGenFunction &CGF, const Stmt *S) override { llvm_unreachable("No body for expressions"); } - /// \brief Get a variable or parameter for storing global thread id + /// Get a variable or parameter for storing global thread id /// inside OpenMP construct. const VarDecl *getThreadIDVariable() const override { llvm_unreachable("No thread id for expressions"); } - /// \brief Get the name of the capture helper. + /// Get the name of the capture helper. StringRef getHelperName() const override { llvm_unreachable("No helper name for expressions"); } @@ -393,7 +393,7 @@ CodeGenFunction::OMPPrivateScope PrivScope; }; -/// \brief RAII for emitting code of OpenMP constructs. +/// RAII for emitting code of OpenMP constructs. class InlinedOpenMPRegionRAII { CodeGenFunction &CGF; llvm::DenseMap<const VarDecl *, FieldDecl *> LambdaCaptureFields; @@ -401,7 +401,7 @@ const CodeGen::CGBlockInfo *BlockInfo = nullptr; public: - /// \brief Constructs region for combined constructs. + /// Constructs region for combined constructs. /// \param CodeGen Code generation sequence for combined directives. Includes /// a list of functions used for code generation of implicitly inlined /// regions. @@ -430,25 +430,25 @@ } }; -/// \brief Values for bit flags used in the ident_t to describe the fields. +/// Values for bit flags used in the ident_t to describe the fields. /// All enumeric elements are named and described in accordance with the code /// from http://llvm.org/svn/llvm-project/openmp/trunk/runtime/src/kmp.h enum OpenMPLocationFlags : unsigned { - /// \brief Use trampoline for internal microtask. + /// Use trampoline for internal microtask. OMP_IDENT_IMD = 0x01, - /// \brief Use c-style ident structure. + /// Use c-style ident structure. OMP_IDENT_KMPC = 0x02, - /// \brief Atomic reduction option for kmpc_reduce. + /// Atomic reduction option for kmpc_reduce. OMP_ATOMIC_REDUCE = 0x10, - /// \brief Explicit 'barrier' directive. + /// Explicit 'barrier' directive. OMP_IDENT_BARRIER_EXPL = 0x20, - /// \brief Implicit barrier in code. + /// Implicit barrier in code. OMP_IDENT_BARRIER_IMPL = 0x40, - /// \brief Implicit barrier in 'for' directive. + /// Implicit barrier in 'for' directive. OMP_IDENT_BARRIER_IMPL_FOR = 0x40, - /// \brief Implicit barrier in 'sections' directive. + /// Implicit barrier in 'sections' directive. OMP_IDENT_BARRIER_IMPL_SECTIONS = 0xC0, - /// \brief Implicit barrier in 'single' directive. + /// Implicit barrier in 'single' directive. OMP_IDENT_BARRIER_IMPL_SINGLE = 0x140, /// Call of __kmp_for_static_init for static loop. OMP_IDENT_WORK_LOOP = 0x200, @@ -459,7 +459,7 @@ LLVM_MARK_AS_BITMASK_ENUM(/*LargestValue=*/OMP_IDENT_WORK_DISTRIBUTE) }; -/// \brief Describes ident structure that describes a source location. +/// Describes ident structure that describes a source location. /// All descriptions are taken from /// http://llvm.org/svn/llvm-project/openmp/trunk/runtime/src/kmp.h /// Original structure: @@ -486,24 +486,24 @@ /// */ /// } ident_t; enum IdentFieldIndex { - /// \brief might be used in Fortran + /// might be used in Fortran IdentField_Reserved_1, - /// \brief OMP_IDENT_xxx flags; OMP_IDENT_KMPC identifies this union member. + /// OMP_IDENT_xxx flags; OMP_IDENT_KMPC identifies this union member. IdentField_Flags, - /// \brief Not really used in Fortran any more + /// Not really used in Fortran any more IdentField_Reserved_2, - /// \brief Source[4] in Fortran, do not use for C++ + /// Source[4] in Fortran, do not use for C++ IdentField_Reserved_3, - /// \brief String describing the source location. The string is composed of + /// String describing the source location. The string is composed of /// semi-colon separated fields which describe the source file, the function /// and a pair of line numbers that delimit the construct. IdentField_PSource }; -/// \brief Schedule types for 'omp for' loops (these enumerators are taken from +/// Schedule types for 'omp for' loops (these enumerators are taken from /// the enum sched_type in kmp.h). enum OpenMPSchedType { - /// \brief Lower bound for default (unordered) versions. + /// Lower bound for default (unordered) versions. OMP_sch_lower = 32, OMP_sch_static_chunked = 33, OMP_sch_static = 34, @@ -513,7 +513,7 @@ OMP_sch_auto = 38, /// static with chunk adjustment (e.g., simd) OMP_sch_static_balanced_chunked = 45, - /// \brief Lower bound for 'ordered' versions. + /// Lower bound for 'ordered' versions. OMP_ord_lower = 64, OMP_ord_static_chunked = 65, OMP_ord_static = 66, @@ -522,7 +522,7 @@ OMP_ord_runtime = 69, OMP_ord_auto = 70, OMP_sch_default = OMP_sch_static, - /// \brief dist_schedule types + /// dist_schedule types OMP_dist_sch_static_chunked = 91, OMP_dist_sch_static = 92, /// Support for OpenMP 4.5 monotonic and nonmonotonic schedule modifiers. @@ -533,13 +533,13 @@ }; enum OpenMPRTLFunction { - /// \brief Call to void __kmpc_fork_call(ident_t *loc, kmp_int32 argc, + /// Call to void __kmpc_fork_call(ident_t *loc, kmp_int32 argc, /// kmpc_micro microtask, ...); OMPRTL__kmpc_fork_call, - /// \brief Call to void *__kmpc_threadprivate_cached(ident_t *loc, + /// Call to void *__kmpc_threadprivate_cached(ident_t *loc, /// kmp_int32 global_tid, void *data, size_t size, void ***cache); OMPRTL__kmpc_threadprivate_cached, - /// \brief Call to void __kmpc_threadprivate_register( ident_t *, + /// Call to void __kmpc_threadprivate_register( ident_t *, /// void *data, kmpc_ctor ctor, kmpc_cctor cctor, kmpc_dtor dtor); OMPRTL__kmpc_threadprivate_register, // Call to __kmpc_int32 kmpc_global_thread_num(ident_t *loc); @@ -808,7 +808,7 @@ } } -/// \brief Emit initialization of arrays of complex types. +/// Emit initialization of arrays of complex types. /// \param DestAddr Address of the array. /// \param Type Type of array. /// \param Init Initial expression of array. @@ -2608,7 +2608,7 @@ return nullptr; } -/// \brief Obtain information that uniquely identifies a target entry. This +/// Obtain information that uniquely identifies a target entry. This /// consists of the file and device IDs as well as line number associated with /// the relevant entry source location. static void getTargetEntryUniqueInfo(ASTContext &C, SourceLocation Loc, @@ -3242,7 +3242,7 @@ CGF.EmitRuntimeCall(createRuntimeFunction(OMPRTL__kmpc_barrier), Args); } -/// \brief Map the OpenMP loop schedule to the runtime enumeration. +/// Map the OpenMP loop schedule to the runtime enumeration. static OpenMPSchedType getRuntimeSchedule(OpenMPScheduleClauseKind ScheduleKind, bool Chunked, bool Ordered) { switch (ScheduleKind) { @@ -3264,7 +3264,7 @@ llvm_unreachable("Unexpected runtime schedule"); } -/// \brief Map the OpenMP distribute schedule to the runtime enumeration. +/// Map the OpenMP distribute schedule to the runtime enumeration. static OpenMPSchedType getRuntimeSchedule(OpenMPDistScheduleClauseKind ScheduleKind, bool Chunked) { // only static is allowed for dist_schedule @@ -3557,13 +3557,13 @@ } namespace { -/// \brief Indexes of fields for type kmp_task_t. +/// Indexes of fields for type kmp_task_t. enum KmpTaskTFields { - /// \brief List of shared variables. + /// List of shared variables. KmpTaskTShareds, - /// \brief Task routine. + /// Task routine. KmpTaskTRoutine, - /// \brief Partition id for the untied tasks. + /// Partition id for the untied tasks. KmpTaskTPartId, /// Function with call of destructors for private variables. Data1, @@ -3587,7 +3587,7 @@ OffloadEntriesDeviceGlobalVar.empty(); } -/// \brief Initialize target region entry. +/// Initialize target region entry. void CGOpenMPRuntime::OffloadEntriesInfoManagerTy:: initializeTargetRegionEntryInfo(unsigned DeviceID, unsigned FileID, StringRef ParentName, unsigned LineNum, @@ -3994,7 +3994,7 @@ } } -/// \brief Loads all the offload entries information from the host IR +/// Loads all the offload entries information from the host IR /// metadata. void CGOpenMPRuntime::loadOffloadInfoMetadata() { // If we are in target mode, load the metadata from the host IR. This code has @@ -4257,7 +4257,7 @@ return RD; } -/// \brief Emit a proxy function which accepts kmp_task_t as the second +/// Emit a proxy function which accepts kmp_task_t as the second /// argument. /// \code /// kmp_int32 .omp_task_entry.(kmp_int32 gtid, kmp_task_t *tt) { @@ -4421,7 +4421,7 @@ return DestructorFn; } -/// \brief Emit a privates mapping function for correct handling of private and +/// Emit a privates mapping function for correct handling of private and /// firstprivate variables. /// \code /// void .omp_task_privates_map.(const .privates. *noalias privs, <ty1> @@ -5214,7 +5214,7 @@ CGF.EmitRuntimeCall(createRuntimeFunction(OMPRTL__kmpc_taskloop), TaskArgs); } -/// \brief Emit reduction operation for each element of array (required for +/// Emit reduction operation for each element of array (required for /// array sections) LHS op = RHS. /// \param Type Type of array. /// \param LHSVar Variable on the left side of the reduction operation @@ -6477,39 +6477,39 @@ } namespace { -// \brief Utility to handle information from clauses associated with a given +// Utility to handle information from clauses associated with a given // construct that use mappable expressions (e.g. 'map' clause, 'to' clause). // It provides a convenient interface to obtain the information and generate // code for that information. class MappableExprsHandler { public: - /// \brief Values for bit flags used to specify the mapping type for + /// Values for bit flags used to specify the mapping type for /// offloading. enum OpenMPOffloadMappingFlags { - /// \brief Allocate memory on the device and move data from host to device. + /// Allocate memory on the device and move data from host to device. OMP_MAP_TO = 0x01, - /// \brief Allocate memory on the device and move data from device to host. + /// Allocate memory on the device and move data from device to host. OMP_MAP_FROM = 0x02, - /// \brief Always perform the requested mapping action on the element, even + /// Always perform the requested mapping action on the element, even /// if it was already mapped before. OMP_MAP_ALWAYS = 0x04, - /// \brief Delete the element from the device environment, ignoring the + /// Delete the element from the device environment, ignoring the /// current reference count associated with the element. OMP_MAP_DELETE = 0x08, - /// \brief The element being mapped is a pointer-pointee pair; both the + /// The element being mapped is a pointer-pointee pair; both the /// pointer and the pointee should be mapped. OMP_MAP_PTR_AND_OBJ = 0x10, - /// \brief This flags signals that the base address of an entry should be + /// This flags signals that the base address of an entry should be /// passed to the target kernel as an argument. OMP_MAP_TARGET_PARAM = 0x20, - /// \brief Signal that the runtime library has to return the device pointer + /// Signal that the runtime library has to return the device pointer /// in the current position for the data being mapped. Used when we have the /// use_device_ptr clause. OMP_MAP_RETURN_PARAM = 0x40, - /// \brief This flag signals that the reference being passed is a pointer to + /// This flag signals that the reference being passed is a pointer to /// private data. OMP_MAP_PRIVATE = 0x80, - /// \brief Pass the element to the device by value. + /// Pass the element to the device by value. OMP_MAP_LITERAL = 0x100, /// Implicit map OMP_MAP_IMPLICIT = 0x200, @@ -6537,13 +6537,13 @@ typedef SmallVector<uint64_t, 16> MapFlagsArrayTy; private: - /// \brief Directive from where the map clauses were extracted. + /// Directive from where the map clauses were extracted. const OMPExecutableDirective &CurDir; - /// \brief Function the directive is being generated for. + /// Function the directive is being generated for. CodeGenFunction &CGF; - /// \brief Set of all first private variables in the current directive. + /// Set of all first private variables in the current directive. llvm::SmallPtrSet<const VarDecl *, 8> FirstPrivateDecls; /// Set of all reduction variables in the current directive. llvm::SmallPtrSet<const VarDecl *, 8> ReductionDecls; @@ -6597,7 +6597,7 @@ return CGF.getTypeSize(ExprTy); } - /// \brief Return the corresponding bits for a given map clause modifier. Add + /// Return the corresponding bits for a given map clause modifier. Add /// a flag marking the map as a pointer if requested. Add a flag marking the /// map as the first one of a series of maps that relate to the same map /// expression. @@ -6638,7 +6638,7 @@ return Bits; } - /// \brief Return true if the provided expression is a final array section. A + /// Return true if the provided expression is a final array section. A /// final array section, is one whose length can't be proved to be one. bool isFinalArraySectionExpression(const Expr *E) const { const auto *OASE = dyn_cast<OMPArraySectionExpr>(E); @@ -6676,7 +6676,7 @@ return ConstLength.getSExtValue() != 1; } - /// \brief Return the adjusted map modifiers if the declaration a capture + /// Return the adjusted map modifiers if the declaration a capture /// refers to appears in a first-private clause. This is expected to be used /// only with directives that start with 'target'. unsigned adjustMapModifiersForPrivateClauses(const CapturedStmt::Capture &Cap, @@ -6720,7 +6720,7 @@ DevPointersMap[L.first].push_back(L.second); } - /// \brief Generate the base pointers, section pointers, sizes and map type + /// Generate the base pointers, section pointers, sizes and map type /// bits for the provided map type, map modifier, and expression components. /// \a IsFirstComponent should be set to true if the provided set of /// components is the first associated with a capture. @@ -6982,7 +6982,7 @@ } } - /// \brief Generate all the base pointers, section pointers, sizes and map + /// Generate all the base pointers, section pointers, sizes and map /// types for the extracted mappable expressions. Also, for each item that /// relates with a device pointer, a pair of the relevant declaration and /// index where it occurs is appended to the device pointers info array. @@ -7146,7 +7146,7 @@ } } - /// \brief Generate the base pointers, section pointers, sizes and map types + /// Generate the base pointers, section pointers, sizes and map types /// associated to a given capture. void generateInfoForCapture(const CapturedStmt::Capture *Cap, llvm::Value *Arg, @@ -7212,7 +7212,7 @@ return; } - /// \brief Generate the default map information for a given capture \a CI, + /// Generate the default map information for a given capture \a CI, /// record field declaration \a RI and captured value \a CV. void generateDefaultMapInfo(const CapturedStmt::Capture &CI, const FieldDecl &RI, llvm::Value *CV, @@ -7264,13 +7264,13 @@ }; enum OpenMPOffloadingReservedDeviceIDs { - /// \brief Device ID if the device was not defined, runtime should get it + /// Device ID if the device was not defined, runtime should get it /// from environment variables in the spec. OMP_DEVICEID_UNDEF = -1, }; } // anonymous namespace -/// \brief Emit the arrays used to pass the captures and map information to the +/// Emit the arrays used to pass the captures and map information to the /// offloading runtime library. If there is no map or capture information, /// return nullptr by reference. static void @@ -7384,7 +7384,7 @@ } } } -/// \brief Emit the arguments to be passed to the runtime library based on the +/// Emit the arguments to be passed to the runtime library based on the /// arrays of pointers, sizes and map types. static void emitOffloadingArraysArgument( CodeGenFunction &CGF, llvm::Value *&BasePointersArrayArg, Index: cfe/trunk/lib/CodeGen/CGOpenMPRuntimeNVPTX.h =================================================================== --- cfe/trunk/lib/CodeGen/CGOpenMPRuntimeNVPTX.h +++ cfe/trunk/lib/CodeGen/CGOpenMPRuntimeNVPTX.h @@ -46,18 +46,18 @@ bool isInSpmdExecutionMode() const; - /// \brief Emit the worker function for the current target region. + /// Emit the worker function for the current target region. void emitWorkerFunction(WorkerFunctionState &WST); - /// \brief Helper for worker function. Emit body of worker loop. + /// Helper for worker function. Emit body of worker loop. void emitWorkerLoop(CodeGenFunction &CGF, WorkerFunctionState &WST); - /// \brief Helper for non-SPMD target entry function. Guide the master and + /// Helper for non-SPMD target entry function. Guide the master and /// worker threads to their respective locations. void emitNonSPMDEntryHeader(CodeGenFunction &CGF, EntryFunctionState &EST, WorkerFunctionState &WST); - /// \brief Signal termination of OMP execution for non-SPMD target entry + /// Signal termination of OMP execution for non-SPMD target entry /// function. void emitNonSPMDEntryFooter(CodeGenFunction &CGF, EntryFunctionState &EST); @@ -67,24 +67,24 @@ /// Helper for generic variables globalization epilog. void emitGenericVarsEpilog(CodeGenFunction &CGF); - /// \brief Helper for Spmd mode target directive's entry function. + /// Helper for Spmd mode target directive's entry function. void emitSpmdEntryHeader(CodeGenFunction &CGF, EntryFunctionState &EST, const OMPExecutableDirective &D); - /// \brief Signal termination of Spmd mode execution. + /// Signal termination of Spmd mode execution. void emitSpmdEntryFooter(CodeGenFunction &CGF, EntryFunctionState &EST); // // Base class overrides. // - /// \brief Creates offloading entry for the provided entry ID \a ID, + /// Creates offloading entry for the provided entry ID \a ID, /// address \a Addr, size \a Size, and flags \a Flags. void createOffloadEntry(llvm::Constant *ID, llvm::Constant *Addr, uint64_t Size, int32_t Flags, llvm::GlobalValue::LinkageTypes Linkage) override; - /// \brief Emit outlined function specialized for the Fork-Join + /// Emit outlined function specialized for the Fork-Join /// programming model for applicable target directives on the NVPTX device. /// \param D Directive to emit. /// \param ParentName Name of the function that encloses the target region. @@ -98,7 +98,7 @@ llvm::Constant *&OutlinedFnID, bool IsOffloadEntry, const RegionCodeGenTy &CodeGen); - /// \brief Emit outlined function specialized for the Single Program + /// Emit outlined function specialized for the Single Program /// Multiple Data programming model for applicable target directives on the /// NVPTX device. /// \param D Directive to emit. @@ -114,7 +114,7 @@ llvm::Constant *&OutlinedFnID, bool IsOffloadEntry, const RegionCodeGenTy &CodeGen); - /// \brief Emit outlined function for 'target' directive on the NVPTX + /// Emit outlined function for 'target' directive on the NVPTX /// device. /// \param D Directive to emit. /// \param ParentName Name of the function that encloses the target region. @@ -130,7 +130,7 @@ bool IsOffloadEntry, const RegionCodeGenTy &CodeGen) override; - /// \brief Emits code for parallel or serial call of the \a OutlinedFn with + /// Emits code for parallel or serial call of the \a OutlinedFn with /// variables captured in a record which address is stored in \a /// CapturedStruct. /// This call is for the Non-SPMD Execution Mode. @@ -145,7 +145,7 @@ ArrayRef<llvm::Value *> CapturedVars, const Expr *IfCond); - /// \brief Emits code for parallel or serial call of the \a OutlinedFn with + /// Emits code for parallel or serial call of the \a OutlinedFn with /// variables captured in a record which address is stored in \a /// CapturedStruct. /// This call is for a parallel directive within an SPMD target directive. @@ -162,7 +162,7 @@ const Expr *IfCond); protected: - /// \brief Get the function name of an outlined region. + /// Get the function name of an outlined region. // The name can be customized depending on the target. // StringRef getOutlinedHelperName() const override { @@ -172,13 +172,13 @@ public: explicit CGOpenMPRuntimeNVPTX(CodeGenModule &CGM); - /// \brief Emit call to void __kmpc_push_proc_bind(ident_t *loc, kmp_int32 + /// Emit call to void __kmpc_push_proc_bind(ident_t *loc, kmp_int32 /// global_tid, int proc_bind) to generate code for 'proc_bind' clause. virtual void emitProcBindClause(CodeGenFunction &CGF, OpenMPProcBindClauseKind ProcBind, SourceLocation Loc) override; - /// \brief Emits call to void __kmpc_push_num_threads(ident_t *loc, kmp_int32 + /// Emits call to void __kmpc_push_num_threads(ident_t *loc, kmp_int32 /// global_tid, kmp_int32 num_threads) to generate code for 'num_threads' /// clause. /// \param NumThreads An integer value of threads. @@ -186,7 +186,7 @@ llvm::Value *NumThreads, SourceLocation Loc) override; - /// \brief This function ought to emit, in the general case, a call to + /// This function ought to emit, in the general case, a call to // the openmp runtime kmpc_push_num_teams. In NVPTX backend it is not needed // as these numbers are obtained through the PTX grid and block configuration. /// \param NumTeams An integer expression of teams. @@ -194,7 +194,7 @@ void emitNumTeamsClause(CodeGenFunction &CGF, const Expr *NumTeams, const Expr *ThreadLimit, SourceLocation Loc) override; - /// \brief Emits inlined function for the specified OpenMP parallel + /// Emits inlined function for the specified OpenMP parallel // directive. /// \a D. This outlined function has type void(*)(kmp_int32 *ThreadID, /// kmp_int32 BoundID, struct context_vars*). @@ -209,7 +209,7 @@ OpenMPDirectiveKind InnermostKind, const RegionCodeGenTy &CodeGen) override; - /// \brief Emits inlined function for the specified OpenMP teams + /// Emits inlined function for the specified OpenMP teams // directive. /// \a D. This outlined function has type void(*)(kmp_int32 *ThreadID, /// kmp_int32 BoundID, struct context_vars*). @@ -224,7 +224,7 @@ OpenMPDirectiveKind InnermostKind, const RegionCodeGenTy &CodeGen) override; - /// \brief Emits code for teams call of the \a OutlinedFn with + /// Emits code for teams call of the \a OutlinedFn with /// variables captured in a record which address is stored in \a /// CapturedStruct. /// \param OutlinedFn Outlined function to be run by team masters. Type of @@ -236,7 +236,7 @@ SourceLocation Loc, llvm::Value *OutlinedFn, ArrayRef<llvm::Value *> CapturedVars) override; - /// \brief Emits code for parallel or serial call of the \a OutlinedFn with + /// Emits code for parallel or serial call of the \a OutlinedFn with /// variables captured in a record which address is stored in \a /// CapturedStruct. /// \param OutlinedFn Outlined function to be run in parallel threads. Type of Index: cfe/trunk/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp =================================================================== --- cfe/trunk/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp +++ cfe/trunk/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp @@ -24,24 +24,24 @@ namespace { enum OpenMPRTLFunctionNVPTX { - /// \brief Call to void __kmpc_kernel_init(kmp_int32 thread_limit, + /// Call to void __kmpc_kernel_init(kmp_int32 thread_limit, /// int16_t RequiresOMPRuntime); OMPRTL_NVPTX__kmpc_kernel_init, - /// \brief Call to void __kmpc_kernel_deinit(int16_t IsOMPRuntimeInitialized); + /// Call to void __kmpc_kernel_deinit(int16_t IsOMPRuntimeInitialized); OMPRTL_NVPTX__kmpc_kernel_deinit, - /// \brief Call to void __kmpc_spmd_kernel_init(kmp_int32 thread_limit, + /// Call to void __kmpc_spmd_kernel_init(kmp_int32 thread_limit, /// int16_t RequiresOMPRuntime, int16_t RequiresDataSharing); OMPRTL_NVPTX__kmpc_spmd_kernel_init, - /// \brief Call to void __kmpc_spmd_kernel_deinit(); + /// Call to void __kmpc_spmd_kernel_deinit(); OMPRTL_NVPTX__kmpc_spmd_kernel_deinit, - /// \brief Call to void __kmpc_kernel_prepare_parallel(void + /// Call to void __kmpc_kernel_prepare_parallel(void /// *outlined_function, int16_t /// IsOMPRuntimeInitialized); OMPRTL_NVPTX__kmpc_kernel_prepare_parallel, - /// \brief Call to bool __kmpc_kernel_parallel(void **outlined_function, + /// Call to bool __kmpc_kernel_parallel(void **outlined_function, /// int16_t IsOMPRuntimeInitialized); OMPRTL_NVPTX__kmpc_kernel_parallel, - /// \brief Call to void __kmpc_kernel_end_parallel(); + /// Call to void __kmpc_kernel_end_parallel(); OMPRTL_NVPTX__kmpc_kernel_end_parallel, /// Call to void __kmpc_serialized_parallel(ident_t *loc, kmp_int32 /// global_tid); @@ -49,25 +49,25 @@ /// Call to void __kmpc_end_serialized_parallel(ident_t *loc, kmp_int32 /// global_tid); OMPRTL_NVPTX__kmpc_end_serialized_parallel, - /// \brief Call to int32_t __kmpc_shuffle_int32(int32_t element, + /// Call to int32_t __kmpc_shuffle_int32(int32_t element, /// int16_t lane_offset, int16_t warp_size); OMPRTL_NVPTX__kmpc_shuffle_int32, - /// \brief Call to int64_t __kmpc_shuffle_int64(int64_t element, + /// Call to int64_t __kmpc_shuffle_int64(int64_t element, /// int16_t lane_offset, int16_t warp_size); OMPRTL_NVPTX__kmpc_shuffle_int64, - /// \brief Call to __kmpc_nvptx_parallel_reduce_nowait(kmp_int32 + /// Call to __kmpc_nvptx_parallel_reduce_nowait(kmp_int32 /// global_tid, kmp_int32 num_vars, size_t reduce_size, void* reduce_data, /// void (*kmp_ShuffleReductFctPtr)(void *rhsData, int16_t lane_id, int16_t /// lane_offset, int16_t shortCircuit), /// void (*kmp_InterWarpCopyFctPtr)(void* src, int32_t warp_num)); OMPRTL_NVPTX__kmpc_parallel_reduce_nowait, - /// \brief Call to __kmpc_nvptx_simd_reduce_nowait(kmp_int32 + /// Call to __kmpc_nvptx_simd_reduce_nowait(kmp_int32 /// global_tid, kmp_int32 num_vars, size_t reduce_size, void* reduce_data, /// void (*kmp_ShuffleReductFctPtr)(void *rhsData, int16_t lane_id, int16_t /// lane_offset, int16_t shortCircuit), /// void (*kmp_InterWarpCopyFctPtr)(void* src, int32_t warp_num)); OMPRTL_NVPTX__kmpc_simd_reduce_nowait, - /// \brief Call to __kmpc_nvptx_teams_reduce_nowait(int32_t global_tid, + /// Call to __kmpc_nvptx_teams_reduce_nowait(int32_t global_tid, /// int32_t num_vars, size_t reduce_size, void *reduce_data, /// void (*kmp_ShuffleReductFctPtr)(void *rhs, int16_t lane_id, int16_t /// lane_offset, int16_t shortCircuit), @@ -77,21 +77,21 @@ /// void (*kmp_LoadReduceFctPtr)(void *reduce_data, void * scratchpad, int32_t /// index, int32_t width, int32_t reduce)) OMPRTL_NVPTX__kmpc_teams_reduce_nowait, - /// \brief Call to __kmpc_nvptx_end_reduce_nowait(int32_t global_tid); + /// Call to __kmpc_nvptx_end_reduce_nowait(int32_t global_tid); OMPRTL_NVPTX__kmpc_end_reduce_nowait, - /// \brief Call to void __kmpc_data_sharing_init_stack(); + /// Call to void __kmpc_data_sharing_init_stack(); OMPRTL_NVPTX__kmpc_data_sharing_init_stack, - /// \brief Call to void* __kmpc_data_sharing_push_stack(size_t size, + /// Call to void* __kmpc_data_sharing_push_stack(size_t size, /// int16_t UseSharedMemory); OMPRTL_NVPTX__kmpc_data_sharing_push_stack, - /// \brief Call to void __kmpc_data_sharing_pop_stack(void *a); + /// Call to void __kmpc_data_sharing_pop_stack(void *a); OMPRTL_NVPTX__kmpc_data_sharing_pop_stack, - /// \brief Call to void __kmpc_begin_sharing_variables(void ***args, + /// Call to void __kmpc_begin_sharing_variables(void ***args, /// size_t n_args); OMPRTL_NVPTX__kmpc_begin_sharing_variables, - /// \brief Call to void __kmpc_end_sharing_variables(); + /// Call to void __kmpc_end_sharing_variables(); OMPRTL_NVPTX__kmpc_end_sharing_variables, - /// \brief Call to void __kmpc_get_shared_variables(void ***GlobalArgs) + /// Call to void __kmpc_get_shared_variables(void ***GlobalArgs) OMPRTL_NVPTX__kmpc_get_shared_variables, /// Call to uint16_t __kmpc_parallel_level(ident_t *loc, kmp_int32 /// global_tid); @@ -1078,7 +1078,7 @@ CGF.EmitBlock(ExitBB); } -/// \brief Returns specified OpenMP runtime function for the current OpenMP +/// Returns specified OpenMP runtime function for the current OpenMP /// implementation. Specialized for the NVPTX device. /// \param Function OpenMP runtime function. /// \return Specified function. Index: cfe/trunk/lib/CodeGen/CGRecordLayout.h =================================================================== --- cfe/trunk/lib/CodeGen/CGRecordLayout.h +++ cfe/trunk/lib/CodeGen/CGRecordLayout.h @@ -23,7 +23,7 @@ namespace clang { namespace CodeGen { -/// \brief Structure with information about how a bitfield should be accessed. +/// Structure with information about how a bitfield should be accessed. /// /// Often we layout a sequence of bitfields as a contiguous sequence of bits. /// When the AST record layout does this, we represent it in the LLVM IR's type @@ -92,7 +92,7 @@ void print(raw_ostream &OS) const; void dump() const; - /// \brief Given a bit-field decl, build an appropriate helper object for + /// Given a bit-field decl, build an appropriate helper object for /// accessing that field (which is expected to have the given offset and /// size). static CGBitFieldInfo MakeInfo(class CodeGenTypes &Types, @@ -156,31 +156,31 @@ IsZeroInitializable(IsZeroInitializable), IsZeroInitializableAsBase(IsZeroInitializableAsBase) {} - /// \brief Return the "complete object" LLVM type associated with + /// Return the "complete object" LLVM type associated with /// this record. llvm::StructType *getLLVMType() const { return CompleteObjectType; } - /// \brief Return the "base subobject" LLVM type associated with + /// Return the "base subobject" LLVM type associated with /// this record. llvm::StructType *getBaseSubobjectLLVMType() const { return BaseSubobjectType; } - /// \brief Check whether this struct can be C++ zero-initialized + /// Check whether this struct can be C++ zero-initialized /// with a zeroinitializer. bool isZeroInitializable() const { return IsZeroInitializable; } - /// \brief Check whether this struct can be C++ zero-initialized + /// Check whether this struct can be C++ zero-initialized /// with a zeroinitializer when considered as a base subobject. bool isZeroInitializableAsBase() const { return IsZeroInitializableAsBase; } - /// \brief Return llvm::StructType element number that corresponds to the + /// Return llvm::StructType element number that corresponds to the /// field FD. unsigned getLLVMFieldNo(const FieldDecl *FD) const { FD = FD->getCanonicalDecl(); @@ -193,14 +193,14 @@ return NonVirtualBases.lookup(RD); } - /// \brief Return the LLVM field index corresponding to the given + /// Return the LLVM field index corresponding to the given /// virtual base. Only valid when operating on the complete object. unsigned getVirtualBaseIndex(const CXXRecordDecl *base) const { assert(CompleteObjectVirtualBases.count(base) && "Invalid virtual base!"); return CompleteObjectVirtualBases.lookup(base); } - /// \brief Return the BitFieldInfo that corresponds to the field FD. + /// Return the BitFieldInfo that corresponds to the field FD. const CGBitFieldInfo &getBitFieldInfo(const FieldDecl *FD) const { FD = FD->getCanonicalDecl(); assert(FD->isBitField() && "Invalid call for non-bit-field decl!"); Index: cfe/trunk/lib/CodeGen/CGRecordLayoutBuilder.cpp =================================================================== --- cfe/trunk/lib/CodeGen/CGRecordLayoutBuilder.cpp +++ cfe/trunk/lib/CodeGen/CGRecordLayoutBuilder.cpp @@ -95,7 +95,7 @@ // The constructor. CGRecordLowering(CodeGenTypes &Types, const RecordDecl *D, bool Packed); // Short helper routines. - /// \brief Constructs a MemberInfo instance from an offset and llvm::Type *. + /// Constructs a MemberInfo instance from an offset and llvm::Type *. MemberInfo StorageInfo(CharUnits Offset, llvm::Type *Data) { return MemberInfo(Offset, MemberInfo::Field, Data); } @@ -118,19 +118,19 @@ return !Context.getTargetInfo().getCXXABI().isMicrosoft(); } - /// \brief Wraps llvm::Type::getIntNTy with some implicit arguments. + /// Wraps llvm::Type::getIntNTy with some implicit arguments. llvm::Type *getIntNType(uint64_t NumBits) { return llvm::Type::getIntNTy(Types.getLLVMContext(), (unsigned)llvm::alignTo(NumBits, 8)); } - /// \brief Gets an llvm type of size NumBytes and alignment 1. + /// Gets an llvm type of size NumBytes and alignment 1. llvm::Type *getByteArrayType(CharUnits NumBytes) { assert(!NumBytes.isZero() && "Empty byte arrays aren't allowed."); llvm::Type *Type = llvm::Type::getInt8Ty(Types.getLLVMContext()); return NumBytes == CharUnits::One() ? Type : (llvm::Type *)llvm::ArrayType::get(Type, NumBytes.getQuantity()); } - /// \brief Gets the storage type for a field decl and handles storage + /// Gets the storage type for a field decl and handles storage /// for itanium bitfields that are smaller than their declared type. llvm::Type *getStorageType(const FieldDecl *FD) { llvm::Type *Type = Types.ConvertTypeForMem(FD->getType()); @@ -139,7 +139,7 @@ return getIntNType(std::min(FD->getBitWidthValue(Context), (unsigned)Context.toBits(getSize(Type)))); } - /// \brief Gets the llvm Basesubobject type from a CXXRecordDecl. + /// Gets the llvm Basesubobject type from a CXXRecordDecl. llvm::Type *getStorageType(const CXXRecordDecl *RD) { return Types.getCGRecordLayout(RD).getBaseSubobjectLLVMType(); } @@ -168,7 +168,7 @@ // Layout routines. void setBitFieldInfo(const FieldDecl *FD, CharUnits StartOffset, llvm::Type *StorageType); - /// \brief Lowers an ASTRecordLayout to a llvm type. + /// Lowers an ASTRecordLayout to a llvm type. void lower(bool NonVirtualBaseType); void lowerUnion(); void accumulateFields(); @@ -177,18 +177,18 @@ void accumulateBases(); void accumulateVPtrs(); void accumulateVBases(); - /// \brief Recursively searches all of the bases to find out if a vbase is + /// Recursively searches all of the bases to find out if a vbase is /// not the primary vbase of some base class. bool hasOwnStorage(const CXXRecordDecl *Decl, const CXXRecordDecl *Query); void calculateZeroInit(); - /// \brief Lowers bitfield storage types to I8 arrays for bitfields with tail + /// Lowers bitfield storage types to I8 arrays for bitfields with tail /// padding that is or can potentially be used. void clipTailPadding(); - /// \brief Determines if we need a packed llvm struct. + /// Determines if we need a packed llvm struct. void determinePacked(bool NVBaseType); - /// \brief Inserts padding everywhere it's needed. + /// Inserts padding everywhere it's needed. void insertPadding(); - /// \brief Fills out the structures that are ultimately consumed. + /// Fills out the structures that are ultimately consumed. void fillOutputFields(); // Input memoization fields. CodeGenTypes &Types; Index: cfe/trunk/lib/CodeGen/CGValue.h =================================================================== --- cfe/trunk/lib/CodeGen/CGValue.h +++ cfe/trunk/lib/CodeGen/CGValue.h @@ -401,7 +401,7 @@ return R; } - /// \brief Create a new object to represent a bit-field access. + /// Create a new object to represent a bit-field access. /// /// \param Addr - The base address of the bit-field sequence this /// bit-field refers to. Index: cfe/trunk/lib/CodeGen/CodeGenAction.cpp =================================================================== --- cfe/trunk/lib/CodeGen/CodeGenAction.cpp +++ cfe/trunk/lib/CodeGen/CodeGenAction.cpp @@ -341,17 +341,17 @@ SourceLocation LocCookie); void DiagnosticHandlerImpl(const llvm::DiagnosticInfo &DI); - /// \brief Specialized handler for InlineAsm diagnostic. + /// Specialized handler for InlineAsm diagnostic. /// \return True if the diagnostic has been successfully reported, false /// otherwise. bool InlineAsmDiagHandler(const llvm::DiagnosticInfoInlineAsm &D); - /// \brief Specialized handler for StackSize diagnostic. + /// Specialized handler for StackSize diagnostic. /// \return True if the diagnostic has been successfully reported, false /// otherwise. bool StackSizeDiagHandler(const llvm::DiagnosticInfoStackSize &D); - /// \brief Specialized handler for unsupported backend feature diagnostic. + /// Specialized handler for unsupported backend feature diagnostic. void UnsupportedDiagHandler(const llvm::DiagnosticInfoUnsupported &D); - /// \brief Specialized handlers for optimization remarks. + /// Specialized handlers for optimization remarks. /// Note that these handlers only accept remarks and they always handle /// them. void EmitOptimizationMessage(const llvm::DiagnosticInfoOptimizationBase &D, @@ -697,7 +697,7 @@ EmitOptimizationMessage(D, diag::warn_fe_backend_optimization_failure); } -/// \brief This function is invoked when the backend needs +/// This function is invoked when the backend needs /// to report something to the user. void BackendConsumer::DiagnosticHandlerImpl(const DiagnosticInfo &DI) { unsigned DiagID = diag::err_fe_inline_asm; Index: cfe/trunk/lib/CodeGen/CodeGenFunction.h =================================================================== --- cfe/trunk/lib/CodeGen/CodeGenFunction.h +++ cfe/trunk/lib/CodeGen/CodeGenFunction.h @@ -201,7 +201,7 @@ Address UB)> CodeGenDispatchBoundsTy; - /// \brief CGBuilder insert helper. This function is called after an + /// CGBuilder insert helper. This function is called after an /// instruction is created using Builder. void InsertHelper(llvm::Instruction *I, const llvm::Twine &Name, llvm::BasicBlock *BB, @@ -255,7 +255,7 @@ /// we prefer to insert allocas. llvm::AssertingVH<llvm::Instruction> AllocaInsertPt; - /// \brief API for captured statement code generation. + /// API for captured statement code generation. class CGCapturedStmtInfo { public: explicit CGCapturedStmtInfo(CapturedRegionKind K = CR_Default) @@ -283,10 +283,10 @@ CapturedRegionKind getKind() const { return Kind; } virtual void setContextValue(llvm::Value *V) { ThisValue = V; } - // \brief Retrieve the value of the context parameter. + // Retrieve the value of the context parameter. virtual llvm::Value *getContextValue() const { return ThisValue; } - /// \brief Lookup the captured field decl for a variable. + /// Lookup the captured field decl for a variable. virtual const FieldDecl *lookup(const VarDecl *VD) const { return CaptureFields.lookup(VD->getCanonicalDecl()); } @@ -298,32 +298,32 @@ return true; } - /// \brief Emit the captured statement body. + /// Emit the captured statement body. virtual void EmitBody(CodeGenFunction &CGF, const Stmt *S) { CGF.incrementProfileCounter(S); CGF.EmitStmt(S); } - /// \brief Get the name of the capture helper. + /// Get the name of the capture helper. virtual StringRef getHelperName() const { return "__captured_stmt"; } private: - /// \brief The kind of captured statement being generated. + /// The kind of captured statement being generated. CapturedRegionKind Kind; - /// \brief Keep the map between VarDecl and FieldDecl. + /// Keep the map between VarDecl and FieldDecl. llvm::SmallDenseMap<const VarDecl *, FieldDecl *> CaptureFields; - /// \brief The base address of the captured record, passed in as the first + /// The base address of the captured record, passed in as the first /// argument of the parallel region function. llvm::Value *ThisValue; - /// \brief Captured 'this' type. + /// Captured 'this' type. FieldDecl *CXXThisFieldDecl; }; CGCapturedStmtInfo *CapturedStmtInfo; - /// \brief RAII for correct setting/restoring of CapturedStmtInfo. + /// RAII for correct setting/restoring of CapturedStmtInfo. class CGCapturedStmtRAII { private: CodeGenFunction &CGF; @@ -362,13 +362,13 @@ } }; - /// \brief Sanitizers enabled for this function. + /// Sanitizers enabled for this function. SanitizerSet SanOpts; - /// \brief True if CodeGen currently emits code implementing sanitizer checks. + /// True if CodeGen currently emits code implementing sanitizer checks. bool IsSanitizerScope; - /// \brief RAII object to set/unset CodeGenFunction::IsSanitizerScope. + /// RAII object to set/unset CodeGenFunction::IsSanitizerScope. class SanitizerScope { CodeGenFunction *CGF; public: @@ -399,7 +399,7 @@ llvm::DenseMap<const VarDecl *, FieldDecl *> LambdaCaptureFields; FieldDecl *LambdaThisCaptureField; - /// \brief A mapping from NRVO variables to the flags used to indicate + /// A mapping from NRVO variables to the flags used to indicate /// when the NRVO has been applied to this variable. llvm::DenseMap<const VarDecl *, llvm::Value *> NRVOFlags; @@ -525,7 +525,7 @@ initFullExprCleanup(); } - /// \brief Queue a cleanup to be pushed after finishing the current + /// Queue a cleanup to be pushed after finishing the current /// full-expression. template <class T, class... As> void pushCleanupAfterFullExpr(CleanupKind Kind, As... A) { @@ -584,7 +584,7 @@ void ActivateCleanupBlock(EHScopeStack::stable_iterator Cleanup, llvm::Instruction *DominatingIP); - /// \brief Enters a new scope for capturing cleanups, all of which + /// Enters a new scope for capturing cleanups, all of which /// will be executed once the scope is exited. class RunCleanupsScope { EHScopeStack::stable_iterator CleanupStackDepth, OldCleanupScopeDepth; @@ -601,7 +601,7 @@ CodeGenFunction& CGF; public: - /// \brief Enter a new cleanup scope. + /// Enter a new cleanup scope. explicit RunCleanupsScope(CodeGenFunction &CGF) : PerformCleanup(true), CGF(CGF) { @@ -614,18 +614,18 @@ CGF.CurrentCleanupScopeDepth = CleanupStackDepth; } - /// \brief Exit this cleanup scope, emitting any accumulated cleanups. + /// Exit this cleanup scope, emitting any accumulated cleanups. ~RunCleanupsScope() { if (PerformCleanup) ForceCleanup(); } - /// \brief Determine whether this scope requires any cleanups. + /// Determine whether this scope requires any cleanups. bool requiresCleanups() const { return CGF.EHStack.stable_begin() != CleanupStackDepth; } - /// \brief Force the emission of cleanups now, instead of waiting + /// Force the emission of cleanups now, instead of waiting /// until this object is destroyed. /// \param ValuesToReload - A list of values that need to be available at /// the insertion point after cleanup emission. If cleanup emission created @@ -654,7 +654,7 @@ void operator=(const LexicalScope &) = delete; public: - /// \brief Enter a new cleanup scope. + /// Enter a new cleanup scope. explicit LexicalScope(CodeGenFunction &CGF, SourceRange Range) : RunCleanupsScope(CGF), Range(Range), ParentScope(CGF.CurLexicalScope) { CGF.CurLexicalScope = this; @@ -667,7 +667,7 @@ Labels.push_back(label); } - /// \brief Exit this cleanup scope, emitting any accumulated + /// Exit this cleanup scope, emitting any accumulated /// cleanups. ~LexicalScope() { if (CGDebugInfo *DI = CGF.getDebugInfo()) @@ -681,7 +681,7 @@ } } - /// \brief Force the emission of cleanups now, instead of waiting + /// Force the emission of cleanups now, instead of waiting /// until this object is destroyed. void ForceCleanup() { CGF.CurLexicalScope = ParentScope; @@ -828,13 +828,13 @@ } }; - /// \brief Takes the old cleanup stack size and emits the cleanup blocks + /// Takes the old cleanup stack size and emits the cleanup blocks /// that have been added. void PopCleanupBlocks(EHScopeStack::stable_iterator OldCleanupStackSize, std::initializer_list<llvm::Value **> ValuesToReload = {}); - /// \brief Takes the old cleanup stack size and emits the cleanup blocks + /// Takes the old cleanup stack size and emits the cleanup blocks /// that have been added, then adds all lifetime-extended cleanups from /// the given position to the stack. void @@ -1667,7 +1667,7 @@ void GenerateCode(GlobalDecl GD, llvm::Function *Fn, const CGFunctionInfo &FnInfo); - /// \brief Emit code for the start of a function. + /// Emit code for the start of a function. /// \param Loc The location to be associated with the function. /// \param StartLoc The location of the function body. void StartFunction(GlobalDecl GD, @@ -1693,7 +1693,7 @@ void EmitLambdaStaticInvokeBody(const CXXMethodDecl *MD); void EmitAsanPrologueOrEpilogue(bool Prologue); - /// \brief Emit the unified return block, trying to avoid its emission when + /// Emit the unified return block, trying to avoid its emission when /// possible. /// \return The debug location of the user written return statement if the /// return block is is avoided. @@ -1766,7 +1766,7 @@ CFITCK_ICall, }; - /// \brief Derived is the presumed address of an object of type T after a + /// Derived is the presumed address of an object of type T after a /// cast. If T is a polymorphic class type, emit a check that the virtual /// table for Derived belongs to a class derived from T. void EmitVTablePtrCheckForCast(QualType T, llvm::Value *Derived, @@ -2406,7 +2406,7 @@ llvm::Value *EmitDynamicCast(Address V, const CXXDynamicCastExpr *DCE); Address EmitCXXUuidofExpr(const CXXUuidofExpr *E); - /// \brief Situations in which we might emit a check for the suitability of a + /// Situations in which we might emit a check for the suitability of a /// pointer or glvalue. enum TypeCheckKind { /// Checking the operand of a load. Must be suitably sized and aligned. @@ -2450,17 +2450,17 @@ /// Determine whether the pointer type check \p TCK requires a vptr check. static bool isVptrCheckRequired(TypeCheckKind TCK, QualType Ty); - /// \brief Whether any type-checking sanitizers are enabled. If \c false, + /// Whether any type-checking sanitizers are enabled. If \c false, /// calls to EmitTypeCheck can be skipped. bool sanitizePerformTypeCheck() const; - /// \brief Emit a check that \p V is the address of storage of the + /// Emit a check that \p V is the address of storage of the /// appropriate size and alignment for an object of type \p Type. void EmitTypeCheck(TypeCheckKind TCK, SourceLocation Loc, llvm::Value *V, QualType Type, CharUnits Alignment = CharUnits::Zero(), SanitizerSet SkippedChecks = SanitizerSet()); - /// \brief Emit a check that \p Base points into an array object, which + /// Emit a check that \p Base points into an array object, which /// we can access at index \p Index. \p Accessed should be \c false if we /// this expression is used as an lvalue, for instance in "&Arr[Idx]". void EmitBoundsCheck(const Expr *E, const Expr *Base, llvm::Value *Index, @@ -2501,7 +2501,7 @@ typedef void SpecialInitFn(CodeGenFunction &Init, const VarDecl &D, llvm::Value *Address); - /// \brief Determine whether the given initializer is trivial in the sense + /// Determine whether the given initializer is trivial in the sense /// that it requires no code to be generated. bool isTrivialInitializer(const Expr *Init); @@ -2776,7 +2776,7 @@ SmallVectorImpl<llvm::Value *> &CapturedVars); void emitOMPSimpleStore(LValue LVal, RValue RVal, QualType RValTy, SourceLocation Loc); - /// \brief Perform element by element copying of arrays with type \a + /// Perform element by element copying of arrays with type \a /// OriginalType from \a SrcAddr to \a DestAddr using copying procedure /// generated by \a CopyGen. /// @@ -2788,7 +2788,7 @@ void EmitOMPAggregateAssign( Address DestAddr, Address SrcAddr, QualType OriginalType, const llvm::function_ref<void(Address, Address)> CopyGen); - /// \brief Emit proper copying of data from one variable to another. + /// Emit proper copying of data from one variable to another. /// /// \param OriginalType Original type of the copied variables. /// \param DestAddr Destination address. @@ -2803,7 +2803,7 @@ Address DestAddr, Address SrcAddr, const VarDecl *DestVD, const VarDecl *SrcVD, const Expr *Copy); - /// \brief Emit atomic update code for constructs: \a X = \a X \a BO \a E or + /// Emit atomic update code for constructs: \a X = \a X \a BO \a E or /// \a X = \a E \a BO \a E. /// /// \param X Value to be updated. @@ -2827,7 +2827,7 @@ void EmitOMPUseDevicePtrClause( const OMPClause &C, OMPPrivateScope &PrivateScope, const llvm::DenseMap<const ValueDecl *, Address> &CaptureDeviceAddrMap); - /// \brief Emit code for copyin clause in \a D directive. The next code is + /// Emit code for copyin clause in \a D directive. The next code is /// generated at the start of outlined functions for directives: /// \code /// threadprivate_var1 = master_threadprivate_var1; @@ -2839,7 +2839,7 @@ /// \param D OpenMP directive possibly with 'copyin' clause(s). /// \returns true if at least one copyin variable is found, false otherwise. bool EmitOMPCopyinClause(const OMPExecutableDirective &D); - /// \brief Emit initial code for lastprivate variables. If some variable is + /// Emit initial code for lastprivate variables. If some variable is /// not also firstprivate, then the default initialization is used. Otherwise /// initialization of this variable is performed by EmitOMPFirstprivateClause /// method. @@ -2852,7 +2852,7 @@ /// otherwise. bool EmitOMPLastprivateClauseInit(const OMPExecutableDirective &D, OMPPrivateScope &PrivateScope); - /// \brief Emit final copying of lastprivate values to original variables at + /// Emit final copying of lastprivate values to original variables at /// the end of the worksharing or simd directive. /// /// \param D Directive that has at least one 'lastprivate' directives. @@ -2871,7 +2871,7 @@ void EmitOMPLinearClauseFinal( const OMPLoopDirective &D, const llvm::function_ref<llvm::Value *(CodeGenFunction &)> CondGen); - /// \brief Emit initial code for reduction variables. Creates reduction copies + /// Emit initial code for reduction variables. Creates reduction copies /// and initializes them with the values according to OpenMP standard. /// /// \param D Directive (possibly) with the 'reduction' clause. @@ -2880,14 +2880,14 @@ /// void EmitOMPReductionClauseInit(const OMPExecutableDirective &D, OMPPrivateScope &PrivateScope); - /// \brief Emit final update of reduction values to original variables at + /// Emit final update of reduction values to original variables at /// the end of the directive. /// /// \param D Directive that has at least one 'reduction' directives. /// \param ReductionKind The kind of reduction to perform. void EmitOMPReductionClauseFinal(const OMPExecutableDirective &D, const OpenMPDirectiveKind ReductionKind); - /// \brief Emit initial code for linear variables. Creates private copies + /// Emit initial code for linear variables. Creates private copies /// and initializes them with the values according to OpenMP standard. /// /// \param D Directive (possibly) with the 'linear' clause. @@ -3019,7 +3019,7 @@ static void EmitOMPTargetTeamsDistributeParallelForDeviceFunction( CodeGenModule &CGM, StringRef ParentName, const OMPTargetTeamsDistributeParallelForDirective &S); - /// \brief Emit inner loop of the worksharing/simd construct. + /// Emit inner loop of the worksharing/simd construct. /// /// \param S Directive, for which the inner loop must be emitted. /// \param RequiresCleanup true, if directive has some associated private @@ -3043,7 +3043,7 @@ /// Helper for the OpenMP loop directives. void EmitOMPLoopBody(const OMPLoopDirective &D, JumpDest LoopExit); - /// \brief Emit code for the worksharing loop-based directive. + /// Emit code for the worksharing loop-based directive. /// \return true, if this construct has any lastprivate clause, false - /// otherwise. bool EmitOMPWorksharingLoop(const OMPLoopDirective &S, Expr *EUB, @@ -3116,7 +3116,7 @@ OMPPrivateScope &LoopScope, const OMPLoopArguments &LoopArgs, const CodeGenLoopTy &CodeGenLoopContent); - /// \brief Emit code for sections directive. + /// Emit code for sections directive. void EmitSections(const OMPExecutableDirective &S); public: @@ -3157,7 +3157,7 @@ /// LValue EmitLValue(const Expr *E); - /// \brief Same as EmitLValue but additionally we generate checking code to + /// Same as EmitLValue but additionally we generate checking code to /// guard against undefined behavior. This is only suitable when we know /// that the address will be used to access the object. LValue EmitCheckedLValue(const Expr *E, TypeCheckKind TCK); @@ -3634,7 +3634,7 @@ void EmitObjCAutoreleasePoolCleanup(llvm::Value *Ptr); void EmitObjCMRRAutoreleasePoolPop(llvm::Value *Ptr); - /// \brief Emits a reference binding to the passed in expression. + /// Emits a reference binding to the passed in expression. RValue EmitReferenceBindingToExpr(const Expr *E); //===--------------------------------------------------------------------===// @@ -3851,26 +3851,26 @@ /// enabled, a runtime check specified by \p Kind is also emitted. llvm::Value *EmitCheckedArgForBuiltin(const Expr *E, BuiltinCheckKind Kind); - /// \brief Emit a description of a type in a format suitable for passing to + /// Emit a description of a type in a format suitable for passing to /// a runtime sanitizer handler. llvm::Constant *EmitCheckTypeDescriptor(QualType T); - /// \brief Convert a value into a format suitable for passing to a runtime + /// Convert a value into a format suitable for passing to a runtime /// sanitizer handler. llvm::Value *EmitCheckValue(llvm::Value *V); - /// \brief Emit a description of a source location in a format suitable for + /// Emit a description of a source location in a format suitable for /// passing to a runtime sanitizer handler. llvm::Constant *EmitCheckSourceLocation(SourceLocation Loc); - /// \brief Create a basic block that will call a handler function in a + /// Create a basic block that will call a handler function in a /// sanitizer runtime with the provided arguments, and create a conditional /// branch to it. void EmitCheck(ArrayRef<std::pair<llvm::Value *, SanitizerMask>> Checked, SanitizerHandler Check, ArrayRef<llvm::Constant *> StaticArgs, ArrayRef<llvm::Value *> DynamicArgs); - /// \brief Emit a slow path cross-DSO CFI check which calls __cfi_slowpath + /// Emit a slow path cross-DSO CFI check which calls __cfi_slowpath /// if Cond if false. void EmitCfiSlowPathCheck(SanitizerMask Kind, llvm::Value *Cond, llvm::ConstantInt *TypeId, llvm::Value *Ptr, @@ -3880,21 +3880,21 @@ /// checking is enabled. Otherwise, just emit an unreachable instruction. void EmitUnreachable(SourceLocation Loc); - /// \brief Create a basic block that will call the trap intrinsic, and emit a + /// Create a basic block that will call the trap intrinsic, and emit a /// conditional branch to it, for the -ftrapv checks. void EmitTrapCheck(llvm::Value *Checked); - /// \brief Emit a call to trap or debugtrap and attach function attribute + /// Emit a call to trap or debugtrap and attach function attribute /// "trap-func-name" if specified. llvm::CallInst *EmitTrapCall(llvm::Intrinsic::ID IntrID); - /// \brief Emit a stub for the cross-DSO CFI check function. + /// Emit a stub for the cross-DSO CFI check function. void EmitCfiCheckStub(); - /// \brief Emit a cross-DSO CFI failure handling function. + /// Emit a cross-DSO CFI failure handling function. void EmitCfiCheckFail(); - /// \brief Create a check for a function parameter that may potentially be + /// Create a check for a function parameter that may potentially be /// declared as non-null. void EmitNonNullArgCheck(RValue RV, QualType ArgType, SourceLocation ArgLoc, AbstractCallee AC, unsigned ParmNum); @@ -3949,7 +3949,7 @@ std::string &ConstraintStr, SourceLocation Loc); - /// \brief Attempts to statically evaluate the object size of E. If that + /// Attempts to statically evaluate the object size of E. If that /// fails, emits code to figure the size of E out for us. This is /// pass_object_size aware. /// @@ -3958,7 +3958,7 @@ llvm::IntegerType *ResType, llvm::Value *EmittedE); - /// \brief Emits the size of E, as required by __builtin_object_size. This + /// Emits the size of E, as required by __builtin_object_size. This /// function is aware of pass_object_size parameters, and will act accordingly /// if E is a parameter with the pass_object_size attribute. llvm::Value *emitBuiltinObjectSize(const Expr *E, unsigned Type, Index: cfe/trunk/lib/CodeGen/CodeGenModule.h =================================================================== --- cfe/trunk/lib/CodeGen/CodeGenModule.h +++ cfe/trunk/lib/CodeGen/CodeGenModule.h @@ -391,10 +391,10 @@ llvm::GlobalValue *> StaticExternCMap; StaticExternCMap StaticExternCValues; - /// \brief thread_local variables defined or used in this TU. + /// thread_local variables defined or used in this TU. std::vector<const VarDecl *> CXXThreadLocals; - /// \brief thread_local variables with initializers that need to run + /// thread_local variables with initializers that need to run /// before any thread_local variable in this TU is odr-used. std::vector<llvm::Function *> CXXThreadLocalInits; std::vector<const VarDecl *> CXXThreadLocalInitVars; @@ -425,14 +425,14 @@ /// Global destructor functions and arguments that need to run on termination. std::vector<std::pair<llvm::WeakTrackingVH, llvm::Constant *>> CXXGlobalDtors; - /// \brief The complete set of modules that has been imported. + /// The complete set of modules that has been imported. llvm::SetVector<clang::Module *> ImportedModules; - /// \brief The set of modules for which the module initializers + /// The set of modules for which the module initializers /// have been emitted. llvm::SmallPtrSet<clang::Module *, 16> EmittedModuleInitializers; - /// \brief A vector of metadata strings. + /// A vector of metadata strings. SmallVector<llvm::MDNode *, 16> LinkerOptionsMetadata; /// @name Cache for Objective-C runtime types @@ -442,7 +442,7 @@ /// int * but is actually an Obj-C class pointer. llvm::WeakTrackingVH CFConstantStringClassRef; - /// \brief The type used to describe the state of a fast enumeration in + /// The type used to describe the state of a fast enumeration in /// Objective-C's for..in loop. QualType ObjCFastEnumerationStateType; @@ -900,12 +900,12 @@ void setAddrOfConstantCompoundLiteral(const CompoundLiteralExpr *CLE, llvm::GlobalVariable *GV); - /// \brief Returns a pointer to a global variable representing a temporary + /// Returns a pointer to a global variable representing a temporary /// with static or thread storage duration. ConstantAddress GetAddrOfGlobalTemporary(const MaterializeTemporaryExpr *E, const Expr *Inner); - /// \brief Retrieve the record type that describes the state of an + /// Retrieve the record type that describes the state of an /// Objective-C fast enumeration loop (for..in). QualType getObjCFastEnumerationStateType(); @@ -933,22 +933,22 @@ /// Emit code for a single top level declaration. void EmitTopLevelDecl(Decl *D); - /// \brief Stored a deferred empty coverage mapping for an unused + /// Stored a deferred empty coverage mapping for an unused /// and thus uninstrumented top level declaration. void AddDeferredUnusedCoverageMapping(Decl *D); - /// \brief Remove the deferred empty coverage mapping as this + /// Remove the deferred empty coverage mapping as this /// declaration is actually instrumented. void ClearUnusedCoverageMapping(const Decl *D); - /// \brief Emit all the deferred coverage mappings + /// Emit all the deferred coverage mappings /// for the uninstrumented functions. void EmitDeferredUnusedCoverageMappings(); /// Tell the consumer that this variable has been instantiated. void HandleCXXStaticMemberVarInstantiation(VarDecl *VD); - /// \brief If the declaration has internal linkage but is inside an + /// If the declaration has internal linkage but is inside an /// extern "C" linkage specification, prepare to emit an alias for it /// to the expected name. template<typename SomeDecl> @@ -997,7 +997,7 @@ llvm::Constant *getMemberPointerConstant(const UnaryOperator *e); - /// \brief Emit type info if type of an expression is a variably modified + /// Emit type info if type of an expression is a variably modified /// type. Also emit proper debug info for cast types. void EmitExplicitCastExprType(const ExplicitCastExpr *E, CodeGenFunction *CGF = nullptr); @@ -1096,13 +1096,13 @@ void RefreshTypeCacheForClass(const CXXRecordDecl *Class); - /// \brief Appends Opts to the "llvm.linker.options" metadata value. + /// Appends Opts to the "llvm.linker.options" metadata value. void AppendLinkerOptions(StringRef Opts); - /// \brief Appends a detect mismatch command to the linker options. + /// Appends a detect mismatch command to the linker options. void AddDetectMismatch(StringRef Name, StringRef Value); - /// \brief Appends a dependent lib to the "llvm.linker.options" metadata + /// Appends a dependent lib to the "llvm.linker.options" metadata /// value. void AddDependentLib(StringRef Lib); @@ -1197,11 +1197,11 @@ void addGlobalValReplacement(llvm::GlobalValue *GV, llvm::Constant *C); - /// \brief Emit a code for threadprivate directive. + /// Emit a code for threadprivate directive. /// \param D Threadprivate declaration. void EmitOMPThreadPrivateDecl(const OMPThreadPrivateDecl *D); - /// \brief Emit a code for declare reduction construct. + /// Emit a code for declare reduction construct. void EmitOMPDeclareReduction(const OMPDeclareReductionDecl *D, CodeGenFunction *CGF = nullptr); @@ -1237,7 +1237,7 @@ void AddVTableTypeMetadata(llvm::GlobalVariable *VTable, CharUnits Offset, const CXXRecordDecl *RD); - /// \brief Get the declaration of std::terminate for the platform. + /// Get the declaration of std::terminate for the platform. llvm::Constant *getTerminateFn(); llvm::SanitizerStatReport &getSanStats(); @@ -1291,7 +1291,7 @@ void EmitDeclContext(const DeclContext *DC); void EmitLinkageSpec(const LinkageSpecDecl *D); - /// \brief Emit the function that initializes C++ thread_local variables. + /// Emit the function that initializes C++ thread_local variables. void EmitCXXThreadLocalInitFunc(); /// Emit the function that initializes C++ globals. @@ -1354,16 +1354,16 @@ /// Emit the llvm.used and llvm.compiler.used metadata. void emitLLVMUsed(); - /// \brief Emit the link options introduced by imported modules. + /// Emit the link options introduced by imported modules. void EmitModuleLinkOptions(); - /// \brief Emit aliases for internal-linkage declarations inside "C" language + /// Emit aliases for internal-linkage declarations inside "C" language /// linkage specifications, giving them the "expected" name where possible. void EmitStaticExternCAliases(); void EmitDeclMetadata(); - /// \brief Emit the Clang version as llvm.ident metadata. + /// Emit the Clang version as llvm.ident metadata. void EmitVersionIdentMetadata(); /// Emits target specific Metadata for global declarations. Index: cfe/trunk/lib/CodeGen/CodeGenModule.cpp =================================================================== --- cfe/trunk/lib/CodeGen/CodeGenModule.cpp +++ cfe/trunk/lib/CodeGen/CodeGenModule.cpp @@ -1548,7 +1548,7 @@ LinkerOptionsMetadata.push_back(llvm::MDNode::get(getLLVMContext(), MDOpts)); } -/// \brief Add link options implied by the given module, including modules +/// Add link options implied by the given module, including modules /// it depends on, using a postorder walk. static void addLinkOptionsPostorder(CodeGenModule &CGM, Module *Mod, SmallVectorImpl<llvm::MDNode *> &Metadata, Index: cfe/trunk/lib/CodeGen/CodeGenPGO.cpp =================================================================== --- cfe/trunk/lib/CodeGen/CodeGenPGO.cpp +++ cfe/trunk/lib/CodeGen/CodeGenPGO.cpp @@ -58,7 +58,7 @@ }; namespace { -/// \brief Stable hasher for PGO region counters. +/// Stable hasher for PGO region counters. /// /// PGOHash produces a stable hash of a given function's control flow. /// @@ -79,7 +79,7 @@ static const unsigned TooBig = 1u << NumBitsPerType; public: - /// \brief Hash values for AST nodes. + /// Hash values for AST nodes. /// /// Distinct values for AST nodes that have region counters attached. /// @@ -978,7 +978,7 @@ RegionCounts = ProfRecord->Counts; } -/// \brief Calculate what to divide by to scale weights. +/// Calculate what to divide by to scale weights. /// /// Given the maximum weight, calculate a divisor that will scale all the /// weights to strictly less than UINT32_MAX. @@ -986,7 +986,7 @@ return MaxWeight < UINT32_MAX ? 1 : MaxWeight / UINT32_MAX + 1; } -/// \brief Scale an individual branch weight (and add 1). +/// Scale an individual branch weight (and add 1). /// /// Scale a 64-bit weight down to 32-bits using \c Scale. /// Index: cfe/trunk/lib/CodeGen/CodeGenTypes.h =================================================================== --- cfe/trunk/lib/CodeGen/CodeGenTypes.h +++ cfe/trunk/lib/CodeGen/CodeGenTypes.h @@ -184,7 +184,7 @@ /// ConvertType - Convert type T into a llvm::Type. llvm::Type *ConvertType(QualType T); - /// \brief Converts the GlobalDecl into an llvm::Type. This should be used + /// Converts the GlobalDecl into an llvm::Type. This should be used /// when we know the target of the function we want to convert. This is /// because some functions (explicitly, those with pass_object_size /// parameters) may not have the same signature as their type portrays, and @@ -225,7 +225,7 @@ /// replace the 'opaque' type we previously made for it if applicable. void UpdateCompletedType(const TagDecl *TD); - /// \brief Remove stale types from the type cache when an inheritance model + /// Remove stale types from the type cache when an inheritance model /// gets assigned to a class. void RefreshTypeCacheForClass(const CXXRecordDecl *RD); @@ -335,7 +335,7 @@ ArrayRef<FunctionProtoType::ExtParameterInfo> paramInfos, RequiredArgs args); - /// \brief Compute a new LLVM record layout object for the given record. + /// Compute a new LLVM record layout object for the given record. CGRecordLayout *ComputeRecordLayout(const RecordDecl *D, llvm::StructType *Ty); Index: cfe/trunk/lib/CodeGen/CoverageMappingGen.h =================================================================== --- cfe/trunk/lib/CodeGen/CoverageMappingGen.h +++ cfe/trunk/lib/CodeGen/CoverageMappingGen.h @@ -31,7 +31,7 @@ class Decl; class Stmt; -/// \brief Stores additional source code information like skipped ranges which +/// Stores additional source code information like skipped ranges which /// is required by the coverage mapping generator and is obtained from /// the preprocessor. class CoverageSourceInfo : public PPCallbacks { @@ -46,7 +46,7 @@ class CodeGenModule; -/// \brief Organizes the cross-function state that is used while generating +/// Organizes the cross-function state that is used while generating /// code coverage mapping data. class CoverageMappingModuleGen { CodeGenModule &CGM; @@ -65,7 +65,7 @@ return SourceInfo; } - /// \brief Add a function's coverage mapping record to the collection of the + /// Add a function's coverage mapping record to the collection of the /// function mapping records. void addFunctionMappingRecord(llvm::GlobalVariable *FunctionName, StringRef FunctionNameValue, @@ -73,15 +73,15 @@ const std::string &CoverageMapping, bool IsUsed = true); - /// \brief Emit the coverage mapping data for a translation unit. + /// Emit the coverage mapping data for a translation unit. void emit(); - /// \brief Return the coverage mapping translation unit file id + /// Return the coverage mapping translation unit file id /// for the given file. unsigned getFileID(const FileEntry *File); }; -/// \brief Organizes the per-function state that is used while generating +/// Organizes the per-function state that is used while generating /// code coverage mapping data. class CoverageMappingGen { CoverageMappingModuleGen &CVM; @@ -99,12 +99,12 @@ llvm::DenseMap<const Stmt *, unsigned> *CounterMap) : CVM(CVM), SM(SM), LangOpts(LangOpts), CounterMap(CounterMap) {} - /// \brief Emit the coverage mapping data which maps the regions of + /// Emit the coverage mapping data which maps the regions of /// code to counters that will be used to find the execution /// counts for those regions. void emitCounterMapping(const Decl *D, llvm::raw_ostream &OS); - /// \brief Emit the coverage mapping data for an unused function. + /// Emit the coverage mapping data for an unused function. /// It creates mapping regions with the counter of zero. void emitEmptyMapping(const Decl *D, llvm::raw_ostream &OS); }; Index: cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp =================================================================== --- cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp +++ cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp @@ -35,14 +35,14 @@ namespace { -/// \brief A region of source code that can be mapped to a counter. +/// A region of source code that can be mapped to a counter. class SourceMappingRegion { Counter Count; - /// \brief The region's starting location. + /// The region's starting location. Optional<SourceLocation> LocStart; - /// \brief The region's ending location. + /// The region's ending location. Optional<SourceLocation> LocEnd; /// Whether this region should be emitted after its parent is emitted. @@ -126,7 +126,7 @@ } }; -/// \brief Provides the common functionality for the different +/// Provides the common functionality for the different /// coverage mapping region builders. class CoverageMappingBuilder { public: @@ -135,17 +135,17 @@ const LangOptions &LangOpts; private: - /// \brief Map of clang's FileIDs to IDs used for coverage mapping. + /// Map of clang's FileIDs to IDs used for coverage mapping. llvm::SmallDenseMap<FileID, std::pair<unsigned, SourceLocation>, 8> FileIDMapping; public: - /// \brief The coverage mapping regions for this function + /// The coverage mapping regions for this function llvm::SmallVector<CounterMappingRegion, 32> MappingRegions; - /// \brief The source mapping regions for this function. + /// The source mapping regions for this function. std::vector<SourceMappingRegion> SourceRegions; - /// \brief A set of regions which can be used as a filter. + /// A set of regions which can be used as a filter. /// /// It is produced by emitExpansionRegions() and is used in /// emitSourceRegions() to suppress producing code regions if @@ -157,7 +157,7 @@ const LangOptions &LangOpts) : CVM(CVM), SM(SM), LangOpts(LangOpts) {} - /// \brief Return the precise end location for the given token. + /// Return the precise end location for the given token. SourceLocation getPreciseTokenLocEnd(SourceLocation Loc) { // We avoid getLocForEndOfToken here, because it doesn't do what we want for // macro locations, which we just treat as expanded files. @@ -166,14 +166,14 @@ return Loc.getLocWithOffset(TokLen); } - /// \brief Return the start location of an included file or expanded macro. + /// Return the start location of an included file or expanded macro. SourceLocation getStartOfFileOrMacro(SourceLocation Loc) { if (Loc.isMacroID()) return Loc.getLocWithOffset(-SM.getFileOffset(Loc)); return SM.getLocForStartOfFile(SM.getFileID(Loc)); } - /// \brief Return the end location of an included file or expanded macro. + /// Return the end location of an included file or expanded macro. SourceLocation getEndOfFileOrMacro(SourceLocation Loc) { if (Loc.isMacroID()) return Loc.getLocWithOffset(SM.getFileIDSize(SM.getFileID(Loc)) - @@ -181,18 +181,18 @@ return SM.getLocForEndOfFile(SM.getFileID(Loc)); } - /// \brief Find out where the current file is included or macro is expanded. + /// Find out where the current file is included or macro is expanded. SourceLocation getIncludeOrExpansionLoc(SourceLocation Loc) { return Loc.isMacroID() ? SM.getImmediateExpansionRange(Loc).getBegin() : SM.getIncludeLoc(SM.getFileID(Loc)); } - /// \brief Return true if \c Loc is a location in a built-in macro. + /// Return true if \c Loc is a location in a built-in macro. bool isInBuiltin(SourceLocation Loc) { return SM.getBufferName(SM.getSpellingLoc(Loc)) == "<built-in>"; } - /// \brief Check whether \c Loc is included or expanded from \c Parent. + /// Check whether \c Loc is included or expanded from \c Parent. bool isNestedIn(SourceLocation Loc, FileID Parent) { do { Loc = getIncludeOrExpansionLoc(Loc); @@ -202,7 +202,7 @@ return true; } - /// \brief Get the start of \c S ignoring macro arguments and builtin macros. + /// Get the start of \c S ignoring macro arguments and builtin macros. SourceLocation getStart(const Stmt *S) { SourceLocation Loc = S->getLocStart(); while (SM.isMacroArgExpansion(Loc) || isInBuiltin(Loc)) @@ -210,7 +210,7 @@ return Loc; } - /// \brief Get the end of \c S ignoring macro arguments and builtin macros. + /// Get the end of \c S ignoring macro arguments and builtin macros. SourceLocation getEnd(const Stmt *S) { SourceLocation Loc = S->getLocEnd(); while (SM.isMacroArgExpansion(Loc) || isInBuiltin(Loc)) @@ -218,7 +218,7 @@ return getPreciseTokenLocEnd(Loc); } - /// \brief Find the set of files we have regions for and assign IDs + /// Find the set of files we have regions for and assign IDs /// /// Fills \c Mapping with the virtual file mapping needed to write out /// coverage and collects the necessary file information to emit source and @@ -258,7 +258,7 @@ } } - /// \brief Get the coverage mapping file ID for \c Loc. + /// Get the coverage mapping file ID for \c Loc. /// /// If such file id doesn't exist, return None. Optional<unsigned> getCoverageFileID(SourceLocation Loc) { @@ -268,7 +268,7 @@ return None; } - /// \brief Gather all the regions that were skipped by the preprocessor + /// Gather all the regions that were skipped by the preprocessor /// using the constructs like #if. void gatherSkippedRegions() { /// An array of the minimum lineStarts and the maximum lineEnds @@ -305,7 +305,7 @@ } } - /// \brief Generate the coverage counter mapping regions from collected + /// Generate the coverage counter mapping regions from collected /// source regions. void emitSourceRegions(const SourceRegionFilter &Filter) { for (const auto &Region : SourceRegions) { @@ -350,7 +350,7 @@ } } - /// \brief Generate expansion regions for each virtual file we've seen. + /// Generate expansion regions for each virtual file we've seen. SourceRegionFilter emitExpansionRegions() { SourceRegionFilter Filter; for (const auto &FM : FileIDMapping) { @@ -380,7 +380,7 @@ } }; -/// \brief Creates unreachable coverage regions for the functions that +/// Creates unreachable coverage regions for the functions that /// are not emitted. struct EmptyCoverageMappingBuilder : public CoverageMappingBuilder { EmptyCoverageMappingBuilder(CoverageMappingModuleGen &CVM, SourceManager &SM, @@ -414,7 +414,7 @@ SourceRegions.emplace_back(Counter(), Start, End); } - /// \brief Write the mapping data to the output stream + /// Write the mapping data to the output stream void write(llvm::raw_ostream &OS) { SmallVector<unsigned, 16> FileIDMapping; gatherFileIDs(FileIDMapping); @@ -428,15 +428,15 @@ } }; -/// \brief A StmtVisitor that creates coverage mapping regions which map +/// A StmtVisitor that creates coverage mapping regions which map /// from the source code locations to the PGO counters. struct CounterCoverageMappingBuilder : public CoverageMappingBuilder, public ConstStmtVisitor<CounterCoverageMappingBuilder> { - /// \brief The map of statements to count values. + /// The map of statements to count values. llvm::DenseMap<const Stmt *, unsigned> &CounterMap; - /// \brief A stack of currently live regions. + /// A stack of currently live regions. std::vector<SourceMappingRegion> RegionStack; /// The currently deferred region: its end location and count can be set once @@ -445,7 +445,7 @@ CounterExpressionBuilder Builder; - /// \brief A location in the most recently visited file or macro. + /// A location in the most recently visited file or macro. /// /// This is used to adjust the active source regions appropriately when /// expressions cross file or macro boundaries. @@ -454,12 +454,12 @@ /// Location of the last terminated region. Optional<std::pair<SourceLocation, size_t>> LastTerminatedRegion; - /// \brief Return a counter for the subtraction of \c RHS from \c LHS + /// Return a counter for the subtraction of \c RHS from \c LHS Counter subtractCounters(Counter LHS, Counter RHS) { return Builder.subtract(LHS, RHS); } - /// \brief Return a counter for the sum of \c LHS and \c RHS. + /// Return a counter for the sum of \c LHS and \c RHS. Counter addCounters(Counter LHS, Counter RHS) { return Builder.add(LHS, RHS); } @@ -468,14 +468,14 @@ return addCounters(addCounters(C1, C2), C3); } - /// \brief Return the region counter for the given statement. + /// Return the region counter for the given statement. /// /// This should only be called on statements that have a dedicated counter. Counter getRegionCounter(const Stmt *S) { return Counter::getCounter(CounterMap[S]); } - /// \brief Push a region onto the stack. + /// Push a region onto the stack. /// /// Returns the index on the stack where the region was pushed. This can be /// used with popRegions to exit a "scope", ending the region that was pushed. @@ -552,7 +552,7 @@ completeDeferred(Count, DeferredEndLoc); } - /// \brief Pop regions from the stack into the function's list of regions. + /// Pop regions from the stack into the function's list of regions. /// /// Adds all regions from \c ParentIndex to the top of the stack to the /// function's \c SourceRegions. @@ -619,13 +619,13 @@ assert(!ParentOfDeferredRegion && "Deferred region with no parent"); } - /// \brief Return the currently active region. + /// Return the currently active region. SourceMappingRegion &getRegion() { assert(!RegionStack.empty() && "statement has no region"); return RegionStack.back(); } - /// \brief Propagate counts through the children of \c S. + /// Propagate counts through the children of \c S. Counter propagateCounts(Counter TopCount, const Stmt *S) { SourceLocation StartLoc = getStart(S); SourceLocation EndLoc = getEnd(S); @@ -642,7 +642,7 @@ return ExitCount; } - /// \brief Check whether a region with bounds \c StartLoc and \c EndLoc + /// Check whether a region with bounds \c StartLoc and \c EndLoc /// is already added to \c SourceRegions. bool isRegionAlreadyAdded(SourceLocation StartLoc, SourceLocation EndLoc) { return SourceRegions.rend() != @@ -653,7 +653,7 @@ }); } - /// \brief Adjust the most recently visited location to \c EndLoc. + /// Adjust the most recently visited location to \c EndLoc. /// /// This should be used after visiting any statements in non-source order. void adjustForOutOfOrderTraversal(SourceLocation EndLoc) { @@ -670,7 +670,7 @@ MostRecentLocation = getIncludeOrExpansionLoc(MostRecentLocation); } - /// \brief Adjust regions and state when \c NewLoc exits a file. + /// Adjust regions and state when \c NewLoc exits a file. /// /// If moving from our most recently tracked location to \c NewLoc exits any /// files, this adjusts our current region stack and creates the file regions @@ -737,7 +737,7 @@ MostRecentLocation = NewLoc; } - /// \brief Ensure that \c S is included in the current region. + /// Ensure that \c S is included in the current region. void extendRegion(const Stmt *S) { SourceMappingRegion &Region = getRegion(); SourceLocation StartLoc = getStart(S); @@ -749,7 +749,7 @@ completeDeferred(Region.getCounter(), StartLoc); } - /// \brief Mark \c S as a terminator, starting a zero region. + /// Mark \c S as a terminator, starting a zero region. void terminateRegion(const Stmt *S) { extendRegion(S); SourceMappingRegion &Region = getRegion(); @@ -794,7 +794,7 @@ popRegions(Index); } - /// \brief Keep counts of breaks and continues inside loops. + /// Keep counts of breaks and continues inside loops. struct BreakContinue { Counter BreakCount; Counter ContinueCount; @@ -808,7 +808,7 @@ : CoverageMappingBuilder(CVM, SM, LangOpts), CounterMap(CounterMap), DeferredRegion(None) {} - /// \brief Write the mapping data to the output stream + /// Write the mapping data to the output stream void write(llvm::raw_ostream &OS) { llvm::SmallVector<unsigned, 8> VirtualFileMapping; gatherFileIDs(VirtualFileMapping); Index: cfe/trunk/lib/CodeGen/ItaniumCXXABI.cpp =================================================================== --- cfe/trunk/lib/CodeGen/ItaniumCXXABI.cpp +++ cfe/trunk/lib/CodeGen/ItaniumCXXABI.cpp @@ -1171,7 +1171,7 @@ return CGF.CGM.CreateRuntimeFunction(FTy, "__cxa_bad_cast"); } -/// \brief Compute the src2dst_offset hint as described in the +/// Compute the src2dst_offset hint as described in the /// Itanium C++ ABI [2.9.7] static CharUnits computeOffsetHint(ASTContext &Context, const CXXRecordDecl *Src, @@ -3006,7 +3006,7 @@ Fields.push_back(VTable); } -/// \brief Return the linkage that the type info and type info name constants +/// Return the linkage that the type info and type info name constants /// should have for the given type. static llvm::GlobalVariable::LinkageTypes getTypeInfoLinkage(CodeGenModule &CGM, QualType Ty) { Index: cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp =================================================================== --- cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp +++ cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp @@ -567,7 +567,7 @@ GetNullMemberPointerFields(const MemberPointerType *MPT, llvm::SmallVectorImpl<llvm::Constant *> &fields); - /// \brief Shared code for virtual base adjustment. Returns the offset from + /// Shared code for virtual base adjustment. Returns the offset from /// the vbptr to the virtual base. Optionally returns the address of the /// vbptr itself. llvm::Value *GetVBaseOffsetFromVBPtr(CodeGenFunction &CGF, @@ -591,14 +591,14 @@ performBaseAdjustment(CodeGenFunction &CGF, Address Value, QualType SrcRecordTy); - /// \brief Performs a full virtual base adjustment. Used to dereference + /// Performs a full virtual base adjustment. Used to dereference /// pointers to members of virtual bases. llvm::Value *AdjustVirtualBase(CodeGenFunction &CGF, const Expr *E, const CXXRecordDecl *RD, Address Base, llvm::Value *VirtualBaseAdjustmentOffset, llvm::Value *VBPtrOffset /* optional */); - /// \brief Emits a full member pointer with the fields common to data and + /// Emits a full member pointer with the fields common to data and /// function member pointers. llvm::Constant *EmitFullMemberPointer(llvm::Constant *FirstField, bool IsMemberFunction, @@ -609,13 +609,13 @@ bool MemberPointerConstantIsNull(const MemberPointerType *MPT, llvm::Constant *MP); - /// \brief - Initialize all vbptrs of 'this' with RD as the complete type. + /// - Initialize all vbptrs of 'this' with RD as the complete type. void EmitVBPtrStores(CodeGenFunction &CGF, const CXXRecordDecl *RD); - /// \brief Caching wrapper around VBTableBuilder::enumerateVBTables(). + /// Caching wrapper around VBTableBuilder::enumerateVBTables(). const VBTableGlobals &enumerateVBTables(const CXXRecordDecl *RD); - /// \brief Generate a thunk for calling a virtual member function MD. + /// Generate a thunk for calling a virtual member function MD. llvm::Function *EmitVirtualMemPtrThunk(const CXXMethodDecl *MD, const MethodVFTableLocation &ML); @@ -761,15 +761,15 @@ typedef std::pair<const CXXRecordDecl *, CharUnits> VFTableIdTy; typedef llvm::DenseMap<VFTableIdTy, llvm::GlobalVariable *> VTablesMapTy; typedef llvm::DenseMap<VFTableIdTy, llvm::GlobalValue *> VFTablesMapTy; - /// \brief All the vftables that have been referenced. + /// All the vftables that have been referenced. VFTablesMapTy VFTablesMap; VTablesMapTy VTablesMap; - /// \brief This set holds the record decls we've deferred vtable emission for. + /// This set holds the record decls we've deferred vtable emission for. llvm::SmallPtrSet<const CXXRecordDecl *, 4> DeferredVFTables; - /// \brief All the vbtables which have been referenced. + /// All the vbtables which have been referenced. llvm::DenseMap<const CXXRecordDecl *, VBTableGlobals> VBTablesMap; /// Info on the global variable used to guard initialization of static locals. @@ -3387,7 +3387,7 @@ namespace { -/// \brief A Helper struct that stores information about a class in a class +/// A Helper struct that stores information about a class in a class /// hierarchy. The information stored in these structs struct is used during /// the generation of ClassHierarchyDescriptors and BaseClassDescriptors. // During RTTI creation, MSRTTIClasses are stored in a contiguous array with @@ -3414,7 +3414,7 @@ uint32_t Flags, NumBases, OffsetInVBase; }; -/// \brief Recursively initialize the base class array. +/// Recursively initialize the base class array. uint32_t MSRTTIClass::initialize(const MSRTTIClass *Parent, const CXXBaseSpecifier *Specifier) { Flags = HasHierarchyDescriptor; @@ -3461,7 +3461,7 @@ llvm_unreachable("Invalid linkage!"); } -/// \brief An ephemeral helper class for building MS RTTI types. It caches some +/// An ephemeral helper class for building MS RTTI types. It caches some /// calls to the module and information about the most derived class in a /// hierarchy. struct MSRTTIBuilder { @@ -3494,7 +3494,7 @@ } // namespace -/// \brief Recursively serializes a class hierarchy in pre-order depth first +/// Recursively serializes a class hierarchy in pre-order depth first /// order. static void serializeClassHierarchy(SmallVectorImpl<MSRTTIClass> &Classes, const CXXRecordDecl *RD) { @@ -3503,7 +3503,7 @@ serializeClassHierarchy(Classes, Base.getType()->getAsCXXRecordDecl()); } -/// \brief Find ambiguity among base classes. +/// Find ambiguity among base classes. static void detectAmbiguousBases(SmallVectorImpl<MSRTTIClass> &Classes) { llvm::SmallPtrSet<const CXXRecordDecl *, 8> VirtualBases; @@ -3769,7 +3769,7 @@ Flags}; } -/// \brief Gets a TypeDescriptor. Returns a llvm::Constant * rather than a +/// Gets a TypeDescriptor. Returns a llvm::Constant * rather than a /// llvm::GlobalVariable * because different type descriptors have different /// types, and need to be abstracted. They are abstracting by casting the /// address to an Int8PtrTy. @@ -3811,7 +3811,7 @@ return llvm::ConstantExpr::getBitCast(Var, CGM.Int8PtrTy); } -/// \brief Gets or a creates a Microsoft CompleteObjectLocator. +/// Gets or a creates a Microsoft CompleteObjectLocator. llvm::GlobalVariable * MicrosoftCXXABI::getMSCompleteObjectLocator(const CXXRecordDecl *RD, const VPtrInfo &Info) { Index: cfe/trunk/lib/CodeGen/TargetInfo.cpp =================================================================== --- cfe/trunk/lib/CodeGen/TargetInfo.cpp +++ cfe/trunk/lib/CodeGen/TargetInfo.cpp @@ -749,7 +749,7 @@ : TargetCodeGenInfo(new WebAssemblyABIInfo(CGT)) {} }; -/// \brief Classify argument of given type \p Ty. +/// Classify argument of given type \p Ty. ABIArgInfo WebAssemblyABIInfo::classifyArgumentType(QualType Ty) const { Ty = useFirstFieldIfTransparentUnion(Ty); @@ -844,7 +844,7 @@ return EmitVAArgInstr(CGF, VAListAddr, Ty, ABIArgInfo::getDirect()); } -/// \brief Classify argument of given type \p Ty. +/// Classify argument of given type \p Ty. ABIArgInfo PNaClABIInfo::classifyArgumentType(QualType Ty) const { if (isAggregateTypeForABI(Ty)) { if (CGCXXABI::RecordArgABI RAA = getRecordArgABI(Ty, getCXXABI())) @@ -945,7 +945,7 @@ // X86-32 ABI Implementation //===----------------------------------------------------------------------===// -/// \brief Similar to llvm::CCState, but for Clang. +/// Similar to llvm::CCState, but for Clang. struct CCState { CCState(unsigned CC) : CC(CC), FreeRegs(0), FreeSSERegs(0) {} @@ -998,14 +998,14 @@ ABIArgInfo getIndirectReturnResult(QualType Ty, CCState &State) const; - /// \brief Return the alignment to use for the given type on the stack. + /// Return the alignment to use for the given type on the stack. unsigned getTypeStackAlignInBytes(QualType Ty, unsigned Align) const; Class classify(QualType Ty) const; ABIArgInfo classifyReturnType(QualType RetTy, CCState &State) const; ABIArgInfo classifyArgumentType(QualType RetTy, CCState &State) const; - /// \brief Updates the number of available free registers, returns + /// Updates the number of available free registers, returns /// true if any registers were allocated. bool updateFreeRegs(QualType Ty, CCState &State) const; @@ -1015,7 +1015,7 @@ bool canExpandIndirectArgument(QualType Ty) const; - /// \brief Rewrite the function info so that all memory arguments use + /// Rewrite the function info so that all memory arguments use /// inalloca. void rewriteWithInAlloca(CGFunctionInfo &FI) const; Index: cfe/trunk/lib/Driver/Driver.cpp =================================================================== --- cfe/trunk/lib/Driver/Driver.cpp +++ cfe/trunk/lib/Driver/Driver.cpp @@ -383,7 +383,7 @@ return DAL; } -/// \brief Compute target triple from args. +/// Compute target triple from args. /// /// This routine provides the logic to compute a target triple from various /// args passed to the driver and the default triple string. @@ -482,7 +482,7 @@ return Target; } -// \brief Parse the LTO options and record the type of LTO compilation +// Parse the LTO options and record the type of LTO compilation // based on which -f(no-)?lto(=.*)? option occurs last. void Driver::setLTOMode(const llvm::opt::ArgList &Args) { LTOMode = LTOK_None; @@ -1733,7 +1733,7 @@ PrintActions1(C, A, Ids); } -/// \brief Check whether the given input tree contains any compilation or +/// Check whether the given input tree contains any compilation or /// assembly actions. static bool ContainsCompileOrAssembleAction(const Action *A) { if (isa<CompileJobAction>(A) || isa<BackendJobAction>(A) || @@ -1834,7 +1834,7 @@ } } -/// \brief Check that the file referenced by Value exists. If it doesn't, +/// Check that the file referenced by Value exists. If it doesn't, /// issue a diagnostic and return false. static bool DiagnoseInputExistence(const Driver &D, const DerivedArgList &Args, StringRef Value, types::ID Ty) { @@ -2129,7 +2129,7 @@ } }; - /// \brief CUDA action builder. It injects device code in the host backend + /// CUDA action builder. It injects device code in the host backend /// action. class CudaActionBuilder final : public DeviceActionBuilder { /// Flags to signal if the user requested host-only or device-only @@ -3811,7 +3811,7 @@ return Target.isOSWindows() ? "a.exe" : "a.out"; } -/// \brief Create output filename based on ArgValue, which could either be a +/// Create output filename based on ArgValue, which could either be a /// full filename, filename without extension, or a directory. If ArgValue /// does not provide a filename, then use BaseName, and use the extension /// suitable for FileType. Index: cfe/trunk/lib/Driver/Job.cpp =================================================================== --- cfe/trunk/lib/Driver/Job.cpp +++ cfe/trunk/lib/Driver/Job.cpp @@ -44,7 +44,7 @@ InputFilenames.push_back(II.getFilename()); } -/// @brief Check if the compiler flag in question should be skipped when +/// Check if the compiler flag in question should be skipped when /// emitting a reproducer. Also track how many arguments it has and if the /// option is some kind of include path. static bool skipArgs(const char *Flag, bool HaveCrashVFS, int &SkipNum, @@ -171,7 +171,7 @@ } } -/// @brief Rewrite relative include-like flag paths to absolute ones. +/// Rewrite relative include-like flag paths to absolute ones. static void rewriteIncludes(const llvm::ArrayRef<const char *> &Args, size_t Idx, size_t NumArgs, Index: cfe/trunk/lib/Driver/ToolChain.cpp =================================================================== --- cfe/trunk/lib/Driver/ToolChain.cpp +++ cfe/trunk/lib/Driver/ToolChain.cpp @@ -685,7 +685,7 @@ return GetDefaultCXXStdlibType(); } -/// \brief Utility function to add a system include directory to CC1 arguments. +/// Utility function to add a system include directory to CC1 arguments. /*static*/ void ToolChain::addSystemInclude(const ArgList &DriverArgs, ArgStringList &CC1Args, const Twine &Path) { @@ -693,7 +693,7 @@ CC1Args.push_back(DriverArgs.MakeArgString(Path)); } -/// \brief Utility function to add a system include directory with extern "C" +/// Utility function to add a system include directory with extern "C" /// semantics to CC1 arguments. /// /// Note that this should be used rarely, and only for directories that @@ -715,7 +715,7 @@ addExternCSystemInclude(DriverArgs, CC1Args, Path); } -/// \brief Utility function to add a list of system include directories to CC1. +/// Utility function to add a list of system include directories to CC1. /*static*/ void ToolChain::addSystemIncludes(const ArgList &DriverArgs, ArgStringList &CC1Args, ArrayRef<StringRef> Paths) { Index: cfe/trunk/lib/Driver/ToolChains/Clang.h =================================================================== --- cfe/trunk/lib/Driver/ToolChains/Clang.h +++ cfe/trunk/lib/Driver/ToolChains/Clang.h @@ -25,7 +25,7 @@ namespace tools { -/// \brief Clang compiler tool. +/// Clang compiler tool. class LLVM_LIBRARY_VISIBILITY Clang : public Tool { public: static const char *getBaseInputName(const llvm::opt::ArgList &Args, @@ -111,7 +111,7 @@ const char *LinkingOutput) const override; }; -/// \brief Clang integrated assembler tool. +/// Clang integrated assembler tool. class LLVM_LIBRARY_VISIBILITY ClangAs : public Tool { public: ClangAs(const ToolChain &TC) Index: cfe/trunk/lib/Driver/ToolChains/Clang.cpp =================================================================== --- cfe/trunk/lib/Driver/ToolChains/Clang.cpp +++ cfe/trunk/lib/Driver/ToolChains/Clang.cpp @@ -616,7 +616,7 @@ } } -/// \brief Vectorize at all optimization levels greater than 1 except for -Oz. +/// Vectorize at all optimization levels greater than 1 except for -Oz. /// For -Oz the loop vectorizer is disable, while the slp vectorizer is enabled. static bool shouldEnableVectorizerAtOLevel(const ArgList &Args, bool isSlpVec) { if (Arg *A = Args.getLastArg(options::OPT_O_Group)) { @@ -838,7 +838,7 @@ } } -/// \brief Check whether the given input tree contains any compilation actions. +/// Check whether the given input tree contains any compilation actions. static bool ContainsCompileAction(const Action *A) { if (isa<CompileJobAction>(A) || isa<BackendJobAction>(A)) return true; @@ -850,7 +850,7 @@ return false; } -/// \brief Check if -relax-all should be passed to the internal assembler. +/// Check if -relax-all should be passed to the internal assembler. /// This is done by default when compiling non-assembler source with -O0. static bool UseRelaxAll(Compilation &C, const ArgList &Args) { bool RelaxDefault = true; Index: cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp =================================================================== --- cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp +++ cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp @@ -1093,7 +1093,7 @@ CmdArgs.push_back("-KPIC"); } -/// \brief Determine whether Objective-C automated reference counting is +/// Determine whether Objective-C automated reference counting is /// enabled. bool tools::isObjCAutoRefCount(const ArgList &Args) { return Args.hasFlag(options::OPT_fobjc_arc, options::OPT_fno_objc_arc, false); Index: cfe/trunk/lib/Driver/ToolChains/Cuda.h =================================================================== --- cfe/trunk/lib/Driver/ToolChains/Cuda.h +++ cfe/trunk/lib/Driver/ToolChains/Cuda.h @@ -49,30 +49,30 @@ void AddCudaIncludeArgs(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const; - /// \brief Emit an error if Version does not support the given Arch. + /// Emit an error if Version does not support the given Arch. /// /// If either Version or Arch is unknown, does not emit an error. Emits at /// most one error per Arch. void CheckCudaVersionSupportsArch(CudaArch Arch) const; - /// \brief Check whether we detected a valid Cuda install. + /// Check whether we detected a valid Cuda install. bool isValid() const { return IsValid; } - /// \brief Print information about the detected CUDA installation. + /// Print information about the detected CUDA installation. void print(raw_ostream &OS) const; - /// \brief Get the detected Cuda install's version. + /// Get the detected Cuda install's version. CudaVersion version() const { return Version; } - /// \brief Get the detected Cuda installation path. + /// Get the detected Cuda installation path. StringRef getInstallPath() const { return InstallPath; } - /// \brief Get the detected path to Cuda's bin directory. + /// Get the detected path to Cuda's bin directory. StringRef getBinPath() const { return BinPath; } - /// \brief Get the detected Cuda Include path. + /// Get the detected Cuda Include path. StringRef getIncludePath() const { return IncludePath; } - /// \brief Get the detected Cuda library path. + /// Get the detected Cuda library path. StringRef getLibPath() const { return LibPath; } - /// \brief Get the detected Cuda device library path. + /// Get the detected Cuda device library path. StringRef getLibDevicePath() const { return LibDevicePath; } - /// \brief Get libdevice file for given architecture + /// Get libdevice file for given architecture std::string getLibDeviceFile(StringRef Gpu) const { return LibDeviceMap.lookup(Gpu); } Index: cfe/trunk/lib/Driver/ToolChains/Darwin.cpp =================================================================== --- cfe/trunk/lib/Driver/ToolChains/Darwin.cpp +++ cfe/trunk/lib/Driver/ToolChains/Darwin.cpp @@ -175,7 +175,7 @@ return false; } -/// \brief Pass -no_deduplicate to ld64 under certain conditions: +/// Pass -no_deduplicate to ld64 under certain conditions: /// /// - Either -O0 or -O1 is explicitly specified /// - No -O option is specified *and* this is a compile+link (implicit -O0) @@ -409,7 +409,7 @@ Args.AddLastArg(CmdArgs, options::OPT_Mach); } -/// \brief Determine whether we are linking the ObjC runtime. +/// Determine whether we are linking the ObjC runtime. static bool isObjCRuntimeLinked(const ArgList &Args) { if (isObjCAutoRefCount(Args)) { Args.ClaimAllArgs(options::OPT_fobjc_link_runtime); Index: cfe/trunk/lib/Driver/ToolChains/Gnu.h =================================================================== --- cfe/trunk/lib/Driver/ToolChains/Gnu.h +++ cfe/trunk/lib/Driver/ToolChains/Gnu.h @@ -36,7 +36,7 @@ namespace tools { -/// \brief Base class for all GNU tools that provide the same behavior when +/// Base class for all GNU tools that provide the same behavior when /// it comes to response files support class LLVM_LIBRARY_VISIBILITY GnuTool : public Tool { virtual void anchor(); @@ -139,7 +139,7 @@ /// command line options. class LLVM_LIBRARY_VISIBILITY Generic_GCC : public ToolChain { public: - /// \brief Struct to store and manipulate GCC versions. + /// Struct to store and manipulate GCC versions. /// /// We rely on assumptions about the form and structure of GCC version /// numbers: they consist of at most three '.'-separated components, and each @@ -155,16 +155,16 @@ /// in the way that (for example) Debian's version format does. If that ever /// becomes necessary, it can be added. struct GCCVersion { - /// \brief The unparsed text of the version. + /// The unparsed text of the version. std::string Text; - /// \brief The parsed major, minor, and patch numbers. + /// The parsed major, minor, and patch numbers. int Major, Minor, Patch; - /// \brief The text of the parsed major, and major+minor versions. + /// The text of the parsed major, and major+minor versions. std::string MajorStr, MinorStr; - /// \brief Any textual suffix on the patch number. + /// Any textual suffix on the patch number. std::string PatchSuffix; static GCCVersion Parse(StringRef VersionText); @@ -178,7 +178,7 @@ bool operator>=(const GCCVersion &RHS) const { return !(*this < RHS); } }; - /// \brief This is a class to find a viable GCC installation for Clang to + /// This is a class to find a viable GCC installation for Clang to /// use. /// /// This class tries to find a GCC installation on the system, and report @@ -213,32 +213,32 @@ void init(const llvm::Triple &TargetTriple, const llvm::opt::ArgList &Args, ArrayRef<std::string> ExtraTripleAliases = None); - /// \brief Check whether we detected a valid GCC install. + /// Check whether we detected a valid GCC install. bool isValid() const { return IsValid; } - /// \brief Get the GCC triple for the detected install. + /// Get the GCC triple for the detected install. const llvm::Triple &getTriple() const { return GCCTriple; } - /// \brief Get the detected GCC installation path. + /// Get the detected GCC installation path. StringRef getInstallPath() const { return GCCInstallPath; } - /// \brief Get the detected GCC parent lib path. + /// Get the detected GCC parent lib path. StringRef getParentLibPath() const { return GCCParentLibPath; } - /// \brief Get the detected Multilib + /// Get the detected Multilib const Multilib &getMultilib() const { return SelectedMultilib; } - /// \brief Get the whole MultilibSet + /// Get the whole MultilibSet const MultilibSet &getMultilibs() const { return Multilibs; } /// Get the biarch sibling multilib (if it exists). /// \return true iff such a sibling exists bool getBiarchSibling(Multilib &M) const; - /// \brief Get the detected GCC version string. + /// Get the detected GCC version string. const GCCVersion &getVersion() const { return Version; } - /// \brief Print information about the detected GCC installation. + /// Print information about the detected GCC installation. void print(raw_ostream &OS) const; private: @@ -304,10 +304,10 @@ /// \name ToolChain Implementation Helper Functions /// @{ - /// \brief Check whether the target triple's architecture is 64-bits. + /// Check whether the target triple's architecture is 64-bits. bool isTarget64Bit() const { return getTriple().isArch64Bit(); } - /// \brief Check whether the target triple's architecture is 32-bits. + /// Check whether the target triple's architecture is 32-bits. bool isTarget32Bit() const { return getTriple().isArch32Bit(); } // FIXME: This should be final, but the CrossWindows toolchain does weird Index: cfe/trunk/lib/Driver/ToolChains/Gnu.cpp =================================================================== --- cfe/trunk/lib/Driver/ToolChains/Gnu.cpp +++ cfe/trunk/lib/Driver/ToolChains/Gnu.cpp @@ -1545,7 +1545,7 @@ /// all subcommands; this relies on gcc translating the majority of /// command line options. -/// \brief Less-than for GCCVersion, implementing a Strict Weak Ordering. +/// Less-than for GCCVersion, implementing a Strict Weak Ordering. bool Generic_GCC::GCCVersion::isOlderThan(int RHSMajor, int RHSMinor, int RHSPatch, StringRef RHSPatchSuffix) const { @@ -1579,7 +1579,7 @@ return false; } -/// \brief Parse a GCCVersion object out of a string of text. +/// Parse a GCCVersion object out of a string of text. /// /// This is the primary means of forming GCCVersion objects. /*static*/ @@ -1637,7 +1637,7 @@ return GCC_INSTALL_PREFIX; } -/// \brief Initialize a GCCInstallationDetector from the driver. +/// Initialize a GCCInstallationDetector from the driver. /// /// This performs all of the autodetection and sets up the various paths. /// Once constructed, a GCCInstallationDetector is essentially immutable. @@ -2461,7 +2461,7 @@ // FIXME: If we have a valid GCCInstallation, use it. } -/// \brief Helper to add the variant paths of a libstdc++ installation. +/// Helper to add the variant paths of a libstdc++ installation. bool Generic_GCC::addLibStdCXXIncludePaths( Twine Base, Twine Suffix, StringRef GCCTriple, StringRef GCCMultiarchTriple, StringRef TargetMultiarchTriple, Twine IncludeSuffix, Index: cfe/trunk/lib/Driver/ToolChains/Linux.cpp =================================================================== --- cfe/trunk/lib/Driver/ToolChains/Linux.cpp +++ cfe/trunk/lib/Driver/ToolChains/Linux.cpp @@ -32,7 +32,7 @@ using tools::addPathIfExists; -/// \brief Get our best guess at the multiarch triple for a target. +/// Get our best guess at the multiarch triple for a target. /// /// Debian-based systems are starting to use a multiarch setup where they use /// a target-triple directory in the library and header search paths. Index: cfe/trunk/lib/Driver/ToolChains/MSVC.h =================================================================== --- cfe/trunk/lib/Driver/ToolChains/MSVC.h +++ cfe/trunk/lib/Driver/ToolChains/MSVC.h @@ -110,7 +110,7 @@ llvm::opt::ArgStringList &CC1Args) const override; bool getWindowsSDKLibraryPath(std::string &path) const; - /// \brief Check if Universal CRT should be used if available + /// Check if Universal CRT should be used if available bool getUniversalCRTLibraryPath(std::string &path) const; bool useUniversalCRT() const; VersionTuple Index: cfe/trunk/lib/Driver/ToolChains/MSVC.cpp =================================================================== --- cfe/trunk/lib/Driver/ToolChains/MSVC.cpp +++ cfe/trunk/lib/Driver/ToolChains/MSVC.cpp @@ -868,7 +868,7 @@ } #endif -/// \brief Read registry string. +/// Read registry string. /// This also supports a means to look for high-versioned keys by use /// of a $VERSION placeholder in the key path. /// $VERSION in the key path is a placeholder for the version number, @@ -991,7 +991,7 @@ return !SDKVersion.empty(); } -/// \brief Get Windows SDK installation directory. +/// Get Windows SDK installation directory. static bool getWindowsSDKDir(std::string &Path, int &Major, std::string &WindowsSDKIncludeVersion, std::string &WindowsSDKLibVersion) { Index: cfe/trunk/lib/Edit/EditedSource.cpp =================================================================== --- cfe/trunk/lib/Edit/EditedSource.cpp +++ cfe/trunk/lib/Edit/EditedSource.cpp @@ -311,7 +311,7 @@ return true; } -// \brief Returns true if it is ok to make the two given characters adjacent. +// Returns true if it is ok to make the two given characters adjacent. static bool canBeJoined(char left, char right, const LangOptions &LangOpts) { // FIXME: Should use TokenConcatenation to make sure we don't allow stuff like // making two '<' adjacent. @@ -319,7 +319,7 @@ Lexer::isIdentifierBodyChar(right, LangOpts)); } -/// \brief Returns true if it is ok to eliminate the trailing whitespace between +/// Returns true if it is ok to eliminate the trailing whitespace between /// the given characters. static bool canRemoveWhitespace(char left, char beforeWSpace, char right, const LangOptions &LangOpts) { @@ -332,7 +332,7 @@ return true; } -/// \brief Check the range that we are going to remove and: +/// Check the range that we are going to remove and: /// -Remove any trailing whitespace if possible. /// -Insert a space if removing the range is going to mess up the source tokens. static void adjustRemoval(const SourceManager &SM, const LangOptions &LangOpts, Index: cfe/trunk/lib/Edit/RewriteObjCFoundationAPI.cpp =================================================================== --- cfe/trunk/lib/Edit/RewriteObjCFoundationAPI.cpp +++ cfe/trunk/lib/Edit/RewriteObjCFoundationAPI.cpp @@ -95,7 +95,7 @@ // rewriteToObjCSubscriptSyntax. //===----------------------------------------------------------------------===// -/// \brief Check for classes that accept 'objectForKey:' (or the other selectors +/// Check for classes that accept 'objectForKey:' (or the other selectors /// that the migrator handles) but return their instances as 'id', resulting /// in the compiler resolving 'objectForKey:' as the method from NSDictionary. /// @@ -355,7 +355,7 @@ return false; } -/// \brief Returns true if the immediate message arguments of \c Msg should not +/// Returns true if the immediate message arguments of \c Msg should not /// be rewritten because it will interfere with the rewrite of the parent /// message expression. e.g. /// \code @@ -372,7 +372,7 @@ // rewriteToArrayLiteral. //===----------------------------------------------------------------------===// -/// \brief Adds an explicit cast to 'id' if the type is not objc object. +/// Adds an explicit cast to 'id' if the type is not objc object. static void objectifyExpr(const Expr *E, Commit &commit); static bool rewriteToArrayLiteral(const ObjCMessageExpr *Msg, @@ -434,7 +434,7 @@ // rewriteToDictionaryLiteral. //===----------------------------------------------------------------------===// -/// \brief If \c Msg is an NSArray creation message or literal, this gets the +/// If \c Msg is an NSArray creation message or literal, this gets the /// objects that were used to create it. /// \returns true if it is an NSArray and we got objects, or false otherwise. static bool getNSArrayObjects(const Expr *E, const NSAPI &NS, Index: cfe/trunk/lib/Format/AffectedRangeManager.h =================================================================== --- cfe/trunk/lib/Format/AffectedRangeManager.h +++ cfe/trunk/lib/Format/AffectedRangeManager.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief AffectedRangeManager class manages affected ranges in the code. +/// AffectedRangeManager class manages affected ranges in the code. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/lib/Format/AffectedRangeManager.cpp =================================================================== --- cfe/trunk/lib/Format/AffectedRangeManager.cpp +++ cfe/trunk/lib/Format/AffectedRangeManager.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file implements AffectRangeManager class. +/// This file implements AffectRangeManager class. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/lib/Format/BreakableToken.h =================================================================== --- cfe/trunk/lib/Format/BreakableToken.h +++ cfe/trunk/lib/Format/BreakableToken.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Declares BreakableToken, BreakableStringLiteral, BreakableComment, +/// Declares BreakableToken, BreakableStringLiteral, BreakableComment, /// BreakableBlockComment and BreakableLineCommentSection classes, that contain /// token type-specific logic to break long lines in tokens and reflow content /// between tokens. @@ -27,13 +27,13 @@ namespace clang { namespace format { -/// \brief Checks if \p Token switches formatting, like /* clang-format off */. +/// Checks if \p Token switches formatting, like /* clang-format off */. /// \p Token must be a comment. bool switchesFormatting(const FormatToken &Token); struct FormatStyle; -/// \brief Base class for tokens / ranges of tokens that can allow breaking +/// Base class for tokens / ranges of tokens that can allow breaking /// within the tokens - for example, to avoid whitespace beyond the column /// limit, or to reflow text. /// @@ -88,15 +88,15 @@ /// class BreakableToken { public: - /// \brief Contains starting character index and length of split. + /// Contains starting character index and length of split. typedef std::pair<StringRef::size_type, unsigned> Split; virtual ~BreakableToken() {} - /// \brief Returns the number of lines in this token in the original code. + /// Returns the number of lines in this token in the original code. virtual unsigned getLineCount() const = 0; - /// \brief Returns the number of columns required to format the text in the + /// Returns the number of columns required to format the text in the /// byte range [\p Offset, \p Offset \c + \p Length). /// /// \p Offset is the byte offset from the start of the content of the line @@ -108,7 +108,7 @@ StringRef::size_type Length, unsigned StartColumn) const = 0; - /// \brief Returns the number of columns required to format the text following + /// Returns the number of columns required to format the text following /// the byte \p Offset in the line \p LineIndex, including potentially /// unbreakable sequences of tokens following after the end of the token. /// @@ -125,7 +125,7 @@ return getRangeLength(LineIndex, Offset, StringRef::npos, StartColumn); } - /// \brief Returns the column at which content in line \p LineIndex starts, + /// Returns the column at which content in line \p LineIndex starts, /// assuming no reflow. /// /// If \p Break is true, returns the column at which the line should start @@ -135,7 +135,7 @@ virtual unsigned getContentStartColumn(unsigned LineIndex, bool Break) const = 0; - /// \brief Returns a range (offset, length) at which to break the line at + /// Returns a range (offset, length) at which to break the line at /// \p LineIndex, if previously broken at \p TailOffset. If possible, do not /// violate \p ColumnLimit, assuming the text starting at \p TailOffset in /// the token is formatted starting at ContentStartColumn in the reformatted @@ -144,27 +144,27 @@ unsigned ColumnLimit, unsigned ContentStartColumn, llvm::Regex &CommentPragmasRegex) const = 0; - /// \brief Emits the previously retrieved \p Split via \p Whitespaces. + /// Emits the previously retrieved \p Split via \p Whitespaces. virtual void insertBreak(unsigned LineIndex, unsigned TailOffset, Split Split, WhitespaceManager &Whitespaces) const = 0; - /// \brief Returns the number of columns needed to format + /// Returns the number of columns needed to format /// \p RemainingTokenColumns, assuming that Split is within the range measured /// by \p RemainingTokenColumns, and that the whitespace in Split is reduced /// to a single space. unsigned getLengthAfterCompression(unsigned RemainingTokenColumns, Split Split) const; - /// \brief Replaces the whitespace range described by \p Split with a single + /// Replaces the whitespace range described by \p Split with a single /// space. virtual void compressWhitespace(unsigned LineIndex, unsigned TailOffset, Split Split, WhitespaceManager &Whitespaces) const = 0; - /// \brief Returns whether the token supports reflowing text. + /// Returns whether the token supports reflowing text. virtual bool supportsReflow() const { return false; } - /// \brief Returns a whitespace range (offset, length) of the content at \p + /// Returns a whitespace range (offset, length) of the content at \p /// LineIndex such that the content of that line is reflown to the end of the /// previous one. /// @@ -180,21 +180,21 @@ return Split(StringRef::npos, 0); } - /// \brief Reflows the current line into the end of the previous one. + /// Reflows the current line into the end of the previous one. virtual void reflow(unsigned LineIndex, WhitespaceManager &Whitespaces) const {} - /// \brief Returns whether there will be a line break at the start of the + /// Returns whether there will be a line break at the start of the /// token. virtual bool introducesBreakBeforeToken() const { return false; } - /// \brief Replaces the whitespace between \p LineIndex-1 and \p LineIndex. + /// Replaces the whitespace between \p LineIndex-1 and \p LineIndex. virtual void adaptStartOfLine(unsigned LineIndex, WhitespaceManager &Whitespaces) const {} - /// \brief Returns a whitespace range (offset, length) of the content at + /// Returns a whitespace range (offset, length) of the content at /// the last line that needs to be reformatted after the last line has been /// reformatted. /// @@ -204,7 +204,7 @@ return Split(StringRef::npos, 0); } - /// \brief Replaces the whitespace from \p SplitAfterLastLine on the last line + /// Replaces the whitespace from \p SplitAfterLastLine on the last line /// after the last line has been formatted by performing a reformatting. void replaceWhitespaceAfterLastLine(unsigned TailOffset, Split SplitAfterLastLine, @@ -213,7 +213,7 @@ Whitespaces); } - /// \brief Updates the next token of \p State to the next token after this + /// Updates the next token of \p State to the next token after this /// one. This can be used when this token manages a set of underlying tokens /// as a unit and is responsible for the formatting of the them. virtual void updateNextToken(LineState &State) const {} @@ -232,7 +232,7 @@ class BreakableStringLiteral : public BreakableToken { public: - /// \brief Creates a breakable token for a single line string literal. + /// Creates a breakable token for a single line string literal. /// /// \p StartColumn specifies the column in which the token will start /// after formatting. @@ -272,7 +272,7 @@ class BreakableComment : public BreakableToken { protected: - /// \brief Creates a breakable token for a comment. + /// Creates a breakable token for a comment. /// /// \p StartColumn specifies the column in which the comment will start after /// formatting. @@ -453,7 +453,7 @@ SmallVector<unsigned, 16> OriginalContentColumn; - /// \brief The token to which the last line of this breakable token belongs + /// The token to which the last line of this breakable token belongs /// to; nullptr if that token is the initial token. /// /// The distinction is because if the token of the last line of this breakable Index: cfe/trunk/lib/Format/BreakableToken.cpp =================================================================== --- cfe/trunk/lib/Format/BreakableToken.cpp +++ cfe/trunk/lib/Format/BreakableToken.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Contains implementation of BreakableToken class and classes derived +/// Contains implementation of BreakableToken class and classes derived /// from it. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/lib/Format/ContinuationIndenter.h =================================================================== --- cfe/trunk/lib/Format/ContinuationIndenter.h +++ cfe/trunk/lib/Format/ContinuationIndenter.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file implements an indenter that manages the indentation of +/// This file implements an indenter that manages the indentation of /// continuations. /// //===----------------------------------------------------------------------===// @@ -50,7 +50,7 @@ class ContinuationIndenter { public: - /// \brief Constructs a \c ContinuationIndenter to format \p Line starting in + /// Constructs a \c ContinuationIndenter to format \p Line starting in /// column \p FirstIndent. ContinuationIndenter(const FormatStyle &Style, const AdditionalKeywords &Keywords, @@ -59,7 +59,7 @@ encoding::Encoding Encoding, bool BinPackInconclusiveFunctions); - /// \brief Get the initial state, i.e. the state after placing \p Line's + /// Get the initial state, i.e. the state after placing \p Line's /// first token at \p FirstIndent. When reformatting a fragment of code, as in /// the case of formatting inside raw string literals, \p FirstStartColumn is /// the column at which the state of the parent formatter is. @@ -68,13 +68,13 @@ // FIXME: canBreak and mustBreak aren't strictly indentation-related. Find a // better home. - /// \brief Returns \c true, if a line break after \p State is allowed. + /// Returns \c true, if a line break after \p State is allowed. bool canBreak(const LineState &State); - /// \brief Returns \c true, if a line break after \p State is mandatory. + /// Returns \c true, if a line break after \p State is mandatory. bool mustBreak(const LineState &State); - /// \brief Appends the next token to \p State and updates information + /// Appends the next token to \p State and updates information /// necessary for indentation. /// /// Puts the token on the current line if \p Newline is \c false and adds a @@ -85,28 +85,28 @@ unsigned addTokenToState(LineState &State, bool Newline, bool DryRun, unsigned ExtraSpaces = 0); - /// \brief Get the column limit for this line. This is the style's column + /// Get the column limit for this line. This is the style's column /// limit, potentially reduced for preprocessor definitions. unsigned getColumnLimit(const LineState &State) const; private: - /// \brief Mark the next token as consumed in \p State and modify its stacks + /// Mark the next token as consumed in \p State and modify its stacks /// accordingly. unsigned moveStateToNextToken(LineState &State, bool DryRun, bool Newline); - /// \brief Update 'State' according to the next token's fake left parentheses. + /// Update 'State' according to the next token's fake left parentheses. void moveStatePastFakeLParens(LineState &State, bool Newline); - /// \brief Update 'State' according to the next token's fake r_parens. + /// Update 'State' according to the next token's fake r_parens. void moveStatePastFakeRParens(LineState &State); - /// \brief Update 'State' according to the next token being one of "(<{[". + /// Update 'State' according to the next token being one of "(<{[". void moveStatePastScopeOpener(LineState &State, bool Newline); - /// \brief Update 'State' according to the next token being one of ")>}]". + /// Update 'State' according to the next token being one of ")>}]". void moveStatePastScopeCloser(LineState &State); - /// \brief Update 'State' with the next token opening a nested block. + /// Update 'State' with the next token opening a nested block. void moveStateToNewBlock(LineState &State); - /// \brief Reformats a raw string literal. + /// Reformats a raw string literal. /// /// \returns An extra penalty induced by reformatting the token. unsigned reformatRawStringLiteral(const FormatToken &Current, @@ -114,17 +114,17 @@ const FormatStyle &RawStringStyle, bool DryRun); - /// \brief If the current token is at the end of the current line, handle + /// If the current token is at the end of the current line, handle /// the transition to the next line. unsigned handleEndOfLine(const FormatToken &Current, LineState &State, bool DryRun, bool AllowBreak); - /// \brief If \p Current is a raw string that is configured to be reformatted, + /// If \p Current is a raw string that is configured to be reformatted, /// return the style to be used. llvm::Optional<FormatStyle> getRawStringStyle(const FormatToken &Current, const LineState &State); - /// \brief If the current token sticks out over the end of the line, break + /// If the current token sticks out over the end of the line, break /// it if possible. /// /// \returns A pair (penalty, exceeded), where penalty is the extra penalty @@ -147,13 +147,13 @@ bool AllowBreak, bool DryRun, bool Strict); - /// \brief Returns the \c BreakableToken starting at \p Current, or nullptr + /// Returns the \c BreakableToken starting at \p Current, or nullptr /// if the current token cannot be broken. std::unique_ptr<BreakableToken> createBreakableToken(const FormatToken &Current, LineState &State, bool AllowBreak); - /// \brief Appends the next token to \p State and updates information + /// Appends the next token to \p State and updates information /// necessary for indentation. /// /// Puts the token on the current line. @@ -163,7 +163,7 @@ void addTokenOnCurrentLine(LineState &State, bool DryRun, unsigned ExtraSpaces); - /// \brief Appends the next token to \p State and updates information + /// Appends the next token to \p State and updates information /// necessary for indentation. /// /// Adds a line break and necessary indentation. @@ -172,17 +172,17 @@ /// \c Replacement. unsigned addTokenOnNewLine(LineState &State, bool DryRun); - /// \brief Calculate the new column for a line wrap before the next token. + /// Calculate the new column for a line wrap before the next token. unsigned getNewLineColumn(const LineState &State); - /// \brief Adds a multiline token to the \p State. + /// Adds a multiline token to the \p State. /// /// \returns Extra penalty for the first line of the literal: last line is /// handled in \c addNextStateToQueue, and the penalty for other lines doesn't /// matter, as we don't change them. unsigned addMultilineToken(const FormatToken &Current, LineState &State); - /// \brief Returns \c true if the next token starts a multiline string + /// Returns \c true if the next token starts a multiline string /// literal. /// /// This includes implicitly concatenated strings, strings that will be broken @@ -211,115 +211,115 @@ HasMultipleNestedBlocks(false), NestedBlockInlined(false), IsInsideObjCArrayLiteral(false) {} - /// \brief The position to which a specific parenthesis level needs to be + /// The position to which a specific parenthesis level needs to be /// indented. unsigned Indent; - /// \brief The position of the last space on each level. + /// The position of the last space on each level. /// /// Used e.g. to break like: /// functionCall(Parameter, otherCall( /// OtherParameter)); unsigned LastSpace; - /// \brief If a block relative to this parenthesis level gets wrapped, indent + /// If a block relative to this parenthesis level gets wrapped, indent /// it this much. unsigned NestedBlockIndent; - /// \brief The position the first "<<" operator encountered on each level. + /// The position the first "<<" operator encountered on each level. /// /// Used to align "<<" operators. 0 if no such operator has been encountered /// on a level. unsigned FirstLessLess = 0; - /// \brief The column of a \c ? in a conditional expression; + /// The column of a \c ? in a conditional expression; unsigned QuestionColumn = 0; - /// \brief The position of the colon in an ObjC method declaration/call. + /// The position of the colon in an ObjC method declaration/call. unsigned ColonPos = 0; - /// \brief The start of the most recent function in a builder-type call. + /// The start of the most recent function in a builder-type call. unsigned StartOfFunctionCall = 0; - /// \brief Contains the start of array subscript expressions, so that they + /// Contains the start of array subscript expressions, so that they /// can be aligned. unsigned StartOfArraySubscripts = 0; - /// \brief If a nested name specifier was broken over multiple lines, this + /// If a nested name specifier was broken over multiple lines, this /// contains the start column of the second line. Otherwise 0. unsigned NestedNameSpecifierContinuation = 0; - /// \brief If a call expression was broken over multiple lines, this + /// If a call expression was broken over multiple lines, this /// contains the start column of the second line. Otherwise 0. unsigned CallContinuation = 0; - /// \brief The column of the first variable name in a variable declaration. + /// The column of the first variable name in a variable declaration. /// /// Used to align further variables if necessary. unsigned VariablePos = 0; - /// \brief Whether a newline needs to be inserted before the block's closing + /// Whether a newline needs to be inserted before the block's closing /// brace. /// /// We only want to insert a newline before the closing brace if there also /// was a newline after the beginning left brace. bool BreakBeforeClosingBrace : 1; - /// \brief Avoid bin packing, i.e. multiple parameters/elements on multiple + /// Avoid bin packing, i.e. multiple parameters/elements on multiple /// lines, in this context. bool AvoidBinPacking : 1; - /// \brief Break after the next comma (or all the commas in this context if + /// Break after the next comma (or all the commas in this context if /// \c AvoidBinPacking is \c true). bool BreakBeforeParameter : 1; - /// \brief Line breaking in this context would break a formatting rule. + /// Line breaking in this context would break a formatting rule. bool NoLineBreak : 1; - /// \brief Same as \c NoLineBreak, but is restricted until the end of the + /// Same as \c NoLineBreak, but is restricted until the end of the /// operand (including the next ","). bool NoLineBreakInOperand : 1; - /// \brief True if the last binary operator on this level was wrapped to the + /// True if the last binary operator on this level was wrapped to the /// next line. bool LastOperatorWrapped : 1; - /// \brief \c true if this \c ParenState already contains a line-break. + /// \c true if this \c ParenState already contains a line-break. /// /// The first line break in a certain \c ParenState causes extra penalty so /// that clang-format prefers similar breaks, i.e. breaks in the same /// parenthesis. bool ContainsLineBreak : 1; - /// \brief \c true if this \c ParenState contains multiple segments of a + /// \c true if this \c ParenState contains multiple segments of a /// builder-type call on one line. bool ContainsUnwrappedBuilder : 1; - /// \brief \c true if the colons of the curren ObjC method expression should + /// \c true if the colons of the curren ObjC method expression should /// be aligned. /// /// Not considered for memoization as it will always have the same value at /// the same token. bool AlignColons : 1; - /// \brief \c true if at least one selector name was found in the current + /// \c true if at least one selector name was found in the current /// ObjC method expression. /// /// Not considered for memoization as it will always have the same value at /// the same token. bool ObjCSelectorNameFound : 1; - /// \brief \c true if there are multiple nested blocks inside these parens. + /// \c true if there are multiple nested blocks inside these parens. /// /// Not considered for memoization as it will always have the same value at /// the same token. bool HasMultipleNestedBlocks : 1; - /// \brief The start of a nested block (e.g. lambda introducer in C++ or + /// The start of a nested block (e.g. lambda introducer in C++ or /// "function" in JavaScript) is not wrapped to a new line. bool NestedBlockInlined : 1; - /// \brief \c true if the current \c ParenState represents an Objective-C + /// \c true if the current \c ParenState represents an Objective-C /// array literal. bool IsInsideObjCArrayLiteral : 1; @@ -364,37 +364,37 @@ } }; -/// \brief The current state when indenting a unwrapped line. +/// The current state when indenting a unwrapped line. /// /// As the indenting tries different combinations this is copied by value. struct LineState { - /// \brief The number of used columns in the current line. + /// The number of used columns in the current line. unsigned Column; - /// \brief The token that needs to be next formatted. + /// The token that needs to be next formatted. FormatToken *NextToken; - /// \brief \c true if this line contains a continued for-loop section. + /// \c true if this line contains a continued for-loop section. bool LineContainsContinuedForLoopSection; - /// \brief \c true if \p NextToken should not continue this line. + /// \c true if \p NextToken should not continue this line. bool NoContinuation; - /// \brief The \c NestingLevel at the start of this line. + /// The \c NestingLevel at the start of this line. unsigned StartOfLineLevel; - /// \brief The lowest \c NestingLevel on the current line. + /// The lowest \c NestingLevel on the current line. unsigned LowestLevelOnLine; - /// \brief The start column of the string literal, if we're in a string + /// The start column of the string literal, if we're in a string /// literal sequence, 0 otherwise. unsigned StartOfStringLiteral; - /// \brief A stack keeping track of properties applying to parenthesis + /// A stack keeping track of properties applying to parenthesis /// levels. std::vector<ParenState> Stack; - /// \brief Ignore the stack of \c ParenStates for state comparison. + /// Ignore the stack of \c ParenStates for state comparison. /// /// In long and deeply nested unwrapped lines, the current algorithm can /// be insufficient for finding the best formatting with a reasonable amount @@ -409,15 +409,15 @@ /// FIXME: Come up with a better algorithm instead. bool IgnoreStackForComparison; - /// \brief The indent of the first token. + /// The indent of the first token. unsigned FirstIndent; - /// \brief The line that is being formatted. + /// The line that is being formatted. /// /// Does not need to be considered for memoization because it doesn't change. const AnnotatedLine *Line; - /// \brief Comparison operator to be able to used \c LineState in \c map. + /// Comparison operator to be able to used \c LineState in \c map. bool operator<(const LineState &Other) const { if (NextToken != Other.NextToken) return NextToken < Other.NextToken; Index: cfe/trunk/lib/Format/ContinuationIndenter.cpp =================================================================== --- cfe/trunk/lib/Format/ContinuationIndenter.cpp +++ cfe/trunk/lib/Format/ContinuationIndenter.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file implements the continuation indenter. +/// This file implements the continuation indenter. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/lib/Format/Encoding.h =================================================================== --- cfe/trunk/lib/Format/Encoding.h +++ cfe/trunk/lib/Format/Encoding.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Contains functions for text encoding manipulation. Supports UTF-8, +/// Contains functions for text encoding manipulation. Supports UTF-8, /// 8-bit encodings and escape sequences in C++ string literals. /// //===----------------------------------------------------------------------===// @@ -30,7 +30,7 @@ Encoding_Unknown // We treat all other encodings as 8-bit encodings. }; -/// \brief Detects encoding of the Text. If the Text can be decoded using UTF-8, +/// Detects encoding of the Text. If the Text can be decoded using UTF-8, /// it is considered UTF8, otherwise we treat it as some 8-bit encoding. inline Encoding detectEncoding(StringRef Text) { const llvm::UTF8 *Ptr = reinterpret_cast<const llvm::UTF8 *>(Text.begin()); @@ -40,7 +40,7 @@ return Encoding_Unknown; } -/// \brief Returns the number of columns required to display the \p Text on a +/// Returns the number of columns required to display the \p Text on a /// generic Unicode-capable terminal. Text is assumed to use the specified /// \p Encoding. inline unsigned columnWidth(StringRef Text, Encoding Encoding) { @@ -56,7 +56,7 @@ return Text.size(); } -/// \brief Returns the number of columns required to display the \p Text, +/// Returns the number of columns required to display the \p Text, /// starting from the \p StartColumn on a terminal with the \p TabWidth. The /// text is assumed to use the specified \p Encoding. inline unsigned columnWidthWithTabs(StringRef Text, unsigned StartColumn, @@ -73,7 +73,7 @@ } } -/// \brief Gets the number of bytes in a sequence representing a single +/// Gets the number of bytes in a sequence representing a single /// codepoint and starting with FirstChar in the specified Encoding. inline unsigned getCodePointNumBytes(char FirstChar, Encoding Encoding) { switch (Encoding) { @@ -91,7 +91,7 @@ ('A' <= c && c <= 'F'); } -/// \brief Gets the length of an escape sequence inside a C++ string literal. +/// Gets the length of an escape sequence inside a C++ string literal. /// Text should span from the beginning of the escape sequence (starting with a /// backslash) to the end of the string literal. inline unsigned getEscapeSequenceLength(StringRef Text) { Index: cfe/trunk/lib/Format/Format.cpp =================================================================== --- cfe/trunk/lib/Format/Format.cpp +++ cfe/trunk/lib/Format/Format.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file implements functions declared in Format.h. This will be +/// This file implements functions declared in Format.h. This will be /// split into separate files as we go. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/lib/Format/FormatInternal.h =================================================================== --- cfe/trunk/lib/Format/FormatInternal.h +++ cfe/trunk/lib/Format/FormatInternal.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file declares Format APIs to be used internally by the +/// This file declares Format APIs to be used internally by the /// formatting library implementation. /// //===----------------------------------------------------------------------===// @@ -24,7 +24,7 @@ namespace format { namespace internal { -/// \brief Reformats the given \p Ranges in the code fragment \p Code. +/// Reformats the given \p Ranges in the code fragment \p Code. /// /// A fragment of code could conceptually be surrounded by other code that might /// constrain how that fragment is laid out. Index: cfe/trunk/lib/Format/FormatToken.h =================================================================== --- cfe/trunk/lib/Format/FormatToken.h +++ cfe/trunk/lib/Format/FormatToken.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file contains the declaration of the FormatToken, a wrapper +/// This file contains the declaration of the FormatToken, a wrapper /// around Token with additional information related to formatting. /// //===----------------------------------------------------------------------===// @@ -104,7 +104,7 @@ NUM_TOKEN_TYPES }; -/// \brief Determines the name of a token type. +/// Determines the name of a token type. const char *getTokenTypeName(TokenType Type); // Represents what type of block a set of braces open. @@ -118,185 +118,185 @@ class TokenRole; class AnnotatedLine; -/// \brief A wrapper around a \c Token storing information about the +/// A wrapper around a \c Token storing information about the /// whitespace characters preceding it. struct FormatToken { FormatToken() {} - /// \brief The \c Token. + /// The \c Token. Token Tok; - /// \brief The number of newlines immediately before the \c Token. + /// The number of newlines immediately before the \c Token. /// /// This can be used to determine what the user wrote in the original code /// and thereby e.g. leave an empty line between two function definitions. unsigned NewlinesBefore = 0; - /// \brief Whether there is at least one unescaped newline before the \c + /// Whether there is at least one unescaped newline before the \c /// Token. bool HasUnescapedNewline = false; - /// \brief The range of the whitespace immediately preceding the \c Token. + /// The range of the whitespace immediately preceding the \c Token. SourceRange WhitespaceRange; - /// \brief The offset just past the last '\n' in this token's leading + /// The offset just past the last '\n' in this token's leading /// whitespace (relative to \c WhiteSpaceStart). 0 if there is no '\n'. unsigned LastNewlineOffset = 0; - /// \brief The width of the non-whitespace parts of the token (or its first + /// The width of the non-whitespace parts of the token (or its first /// line for multi-line tokens) in columns. /// We need this to correctly measure number of columns a token spans. unsigned ColumnWidth = 0; - /// \brief Contains the width in columns of the last line of a multi-line + /// Contains the width in columns of the last line of a multi-line /// token. unsigned LastLineColumnWidth = 0; - /// \brief Whether the token text contains newlines (escaped or not). + /// Whether the token text contains newlines (escaped or not). bool IsMultiline = false; - /// \brief Indicates that this is the first token of the file. + /// Indicates that this is the first token of the file. bool IsFirst = false; - /// \brief Whether there must be a line break before this token. + /// Whether there must be a line break before this token. /// /// This happens for example when a preprocessor directive ended directly /// before the token. bool MustBreakBefore = false; - /// \brief The raw text of the token. + /// The raw text of the token. /// /// Contains the raw token text without leading whitespace and without leading /// escaped newlines. StringRef TokenText; - /// \brief Set to \c true if this token is an unterminated literal. + /// Set to \c true if this token is an unterminated literal. bool IsUnterminatedLiteral = 0; - /// \brief Contains the kind of block if this token is a brace. + /// Contains the kind of block if this token is a brace. BraceBlockKind BlockKind = BK_Unknown; TokenType Type = TT_Unknown; - /// \brief The number of spaces that should be inserted before this token. + /// The number of spaces that should be inserted before this token. unsigned SpacesRequiredBefore = 0; - /// \brief \c true if it is allowed to break before this token. + /// \c true if it is allowed to break before this token. bool CanBreakBefore = false; - /// \brief \c true if this is the ">" of "template<..>". + /// \c true if this is the ">" of "template<..>". bool ClosesTemplateDeclaration = false; - /// \brief Number of parameters, if this is "(", "[" or "<". + /// Number of parameters, if this is "(", "[" or "<". /// /// This is initialized to 1 as we don't need to distinguish functions with /// 0 parameters from functions with 1 parameter. Thus, we can simply count /// the number of commas. unsigned ParameterCount = 0; - /// \brief Number of parameters that are nested blocks, + /// Number of parameters that are nested blocks, /// if this is "(", "[" or "<". unsigned BlockParameterCount = 0; - /// \brief If this is a bracket ("<", "(", "[" or "{"), contains the kind of + /// If this is a bracket ("<", "(", "[" or "{"), contains the kind of /// the surrounding bracket. tok::TokenKind ParentBracket = tok::unknown; - /// \brief A token can have a special role that can carry extra information + /// A token can have a special role that can carry extra information /// about the token's formatting. std::unique_ptr<TokenRole> Role; - /// \brief If this is an opening parenthesis, how are the parameters packed? + /// If this is an opening parenthesis, how are the parameters packed? ParameterPackingKind PackingKind = PPK_Inconclusive; - /// \brief The total length of the unwrapped line up to and including this + /// The total length of the unwrapped line up to and including this /// token. unsigned TotalLength = 0; - /// \brief The original 0-based column of this token, including expanded tabs. + /// The original 0-based column of this token, including expanded tabs. /// The configured TabWidth is used as tab width. unsigned OriginalColumn = 0; - /// \brief The length of following tokens until the next natural split point, + /// The length of following tokens until the next natural split point, /// or the next token that can be broken. unsigned UnbreakableTailLength = 0; // FIXME: Come up with a 'cleaner' concept. - /// \brief The binding strength of a token. This is a combined value of + /// The binding strength of a token. This is a combined value of /// operator precedence, parenthesis nesting, etc. unsigned BindingStrength = 0; - /// \brief The nesting level of this token, i.e. the number of surrounding (), + /// The nesting level of this token, i.e. the number of surrounding (), /// [], {} or <>. unsigned NestingLevel = 0; - /// \brief The indent level of this token. Copied from the surrounding line. + /// The indent level of this token. Copied from the surrounding line. unsigned IndentLevel = 0; - /// \brief Penalty for inserting a line break before this token. + /// Penalty for inserting a line break before this token. unsigned SplitPenalty = 0; - /// \brief If this is the first ObjC selector name in an ObjC method + /// If this is the first ObjC selector name in an ObjC method /// definition or call, this contains the length of the longest name. /// /// This being set to 0 means that the selectors should not be colon-aligned, /// e.g. because several of them are block-type. unsigned LongestObjCSelectorName = 0; - /// \brief How many parts ObjC selector have (i.e. how many parameters method + /// How many parts ObjC selector have (i.e. how many parameters method /// has). unsigned ObjCSelectorNameParts = 0; - /// \brief Stores the number of required fake parentheses and the + /// Stores the number of required fake parentheses and the /// corresponding operator precedence. /// /// If multiple fake parentheses start at a token, this vector stores them in /// reverse order, i.e. inner fake parenthesis first. SmallVector<prec::Level, 4> FakeLParens; - /// \brief Insert this many fake ) after this token for correct indentation. + /// Insert this many fake ) after this token for correct indentation. unsigned FakeRParens = 0; - /// \brief \c true if this token starts a binary expression, i.e. has at least + /// \c true if this token starts a binary expression, i.e. has at least /// one fake l_paren with a precedence greater than prec::Unknown. bool StartsBinaryExpression = false; - /// \brief \c true if this token ends a binary expression. + /// \c true if this token ends a binary expression. bool EndsBinaryExpression = false; - /// \brief Is this is an operator (or "."/"->") in a sequence of operators + /// Is this is an operator (or "."/"->") in a sequence of operators /// with the same precedence, contains the 0-based operator index. unsigned OperatorIndex = 0; - /// \brief If this is an operator (or "."/"->") in a sequence of operators + /// If this is an operator (or "."/"->") in a sequence of operators /// with the same precedence, points to the next operator. FormatToken *NextOperator = nullptr; - /// \brief Is this token part of a \c DeclStmt defining multiple variables? + /// Is this token part of a \c DeclStmt defining multiple variables? /// /// Only set if \c Type == \c TT_StartOfName. bool PartOfMultiVariableDeclStmt = false; - /// \brief Does this line comment continue a line comment section? + /// Does this line comment continue a line comment section? /// /// Only set to true if \c Type == \c TT_LineComment. bool ContinuesLineCommentSection = false; - /// \brief If this is a bracket, this points to the matching one. + /// If this is a bracket, this points to the matching one. FormatToken *MatchingParen = nullptr; - /// \brief The previous token in the unwrapped line. + /// The previous token in the unwrapped line. FormatToken *Previous = nullptr; - /// \brief The next token in the unwrapped line. + /// The next token in the unwrapped line. FormatToken *Next = nullptr; - /// \brief If this token starts a block, this contains all the unwrapped lines + /// If this token starts a block, this contains all the unwrapped lines /// in it. SmallVector<AnnotatedLine *, 1> Children; - /// \brief Stores the formatting decision for the token once it was made. + /// Stores the formatting decision for the token once it was made. FormatDecision Decision = FD_Unformatted; - /// \brief If \c true, this token has been fully formatted (indented and + /// If \c true, this token has been fully formatted (indented and /// potentially re-formatted inside), and we do not allow further formatting /// changes. bool Finalized = false; @@ -344,7 +344,7 @@ (!ColonRequired || (Next && Next->is(tok::colon))); } - /// \brief Determine whether the token is a simple-type-specifier. + /// Determine whether the token is a simple-type-specifier. bool isSimpleTypeSpecifier() const; bool isObjCAccessSpecifier() const { @@ -355,7 +355,7 @@ Next->isObjCAtKeyword(tok::objc_private)); } - /// \brief Returns whether \p Tok is ([{ or an opening < of a template or in + /// Returns whether \p Tok is ([{ or an opening < of a template or in /// protos. bool opensScope() const { if (is(TT_TemplateString) && TokenText.endswith("${")) @@ -365,7 +365,7 @@ return isOneOf(tok::l_paren, tok::l_brace, tok::l_square, TT_TemplateOpener); } - /// \brief Returns whether \p Tok is )]} or a closing > of a template or in + /// Returns whether \p Tok is )]} or a closing > of a template or in /// protos. bool closesScope() const { if (is(TT_TemplateString) && TokenText.startswith("}")) @@ -376,7 +376,7 @@ TT_TemplateCloser); } - /// \brief Returns \c true if this is a "." or "->" accessing a member. + /// Returns \c true if this is a "." or "->" accessing a member. bool isMemberAccess() const { return isOneOf(tok::arrow, tok::period, tok::arrowstar) && !isOneOf(TT_DesignatedInitializerPeriod, TT_TrailingReturnArrow, @@ -409,7 +409,7 @@ (is(TT_LineComment) || !Next || Next->NewlinesBefore > 0); } - /// \brief Returns \c true if this is a keyword that can be used + /// Returns \c true if this is a keyword that can be used /// like a function call (e.g. sizeof, typeid, ...). bool isFunctionLikeKeyword() const { switch (Tok.getKind()) { @@ -429,7 +429,7 @@ } } - /// \brief Returns \c true if this is a string literal that's like a label, + /// Returns \c true if this is a string literal that's like a label, /// e.g. ends with "=" or ":". bool isLabelString() const { if (!is(tok::string_literal)) @@ -444,7 +444,7 @@ (Content.back() == ':' || Content.back() == '='); } - /// \brief Returns actual token start location without leading escaped + /// Returns actual token start location without leading escaped /// newlines and whitespace. /// /// This can be different to Tok.getLocation(), which includes leading escaped @@ -458,7 +458,7 @@ /*CPlusPlus11=*/true); } - /// \brief Returns the previous token ignoring comments. + /// Returns the previous token ignoring comments. FormatToken *getPreviousNonComment() const { FormatToken *Tok = Previous; while (Tok && Tok->is(tok::comment)) @@ -466,7 +466,7 @@ return Tok; } - /// \brief Returns the next token ignoring comments. + /// Returns the next token ignoring comments. const FormatToken *getNextNonComment() const { const FormatToken *Tok = Next; while (Tok && Tok->is(tok::comment)) @@ -474,7 +474,7 @@ return Tok; } - /// \brief Returns \c true if this tokens starts a block-type list, i.e. a + /// Returns \c true if this tokens starts a block-type list, i.e. a /// list that should be indented with a block indent. bool opensBlockOrBlockTypeList(const FormatStyle &Style) const { if (is(TT_TemplateString) && opensScope()) @@ -488,7 +488,7 @@ Style.Language == FormatStyle::LK_TextProto)); } - /// \brief Returns whether the token is the left square bracket of a C++ + /// Returns whether the token is the left square bracket of a C++ /// structured binding declaration. bool isCppStructuredBinding(const FormatStyle &Style) const { if (!Style.isCpp() || isNot(tok::l_square)) @@ -501,14 +501,14 @@ return T && T->is(tok::kw_auto); } - /// \brief Same as opensBlockOrBlockTypeList, but for the closing token. + /// Same as opensBlockOrBlockTypeList, but for the closing token. bool closesBlockOrBlockTypeList(const FormatStyle &Style) const { if (is(TT_TemplateString) && closesScope()) return true; return MatchingParen && MatchingParen->opensBlockOrBlockTypeList(Style); } - /// \brief Return the actual namespace token, if this token starts a namespace + /// Return the actual namespace token, if this token starts a namespace /// block. const FormatToken *getNamespaceToken() const { const FormatToken *NamespaceTok = this; @@ -561,11 +561,11 @@ TokenRole(const FormatStyle &Style) : Style(Style) {} virtual ~TokenRole(); - /// \brief After the \c TokenAnnotator has finished annotating all the tokens, + /// After the \c TokenAnnotator has finished annotating all the tokens, /// this function precomputes required information for formatting. virtual void precomputeFormattingInfos(const FormatToken *Token); - /// \brief Apply the special formatting that the given role demands. + /// Apply the special formatting that the given role demands. /// /// Assumes that the token having this role is already formatted. /// @@ -577,7 +577,7 @@ return 0; } - /// \brief Same as \c formatFromToken, but assumes that the first token has + /// Same as \c formatFromToken, but assumes that the first token has /// already been set thereby deciding on the first line break. virtual unsigned formatAfterToken(LineState &State, ContinuationIndenter *Indenter, @@ -585,7 +585,7 @@ return 0; } - /// \brief Notifies the \c Role that a comma was found. + /// Notifies the \c Role that a comma was found. virtual void CommaFound(const FormatToken *Token) {} protected: @@ -605,46 +605,46 @@ unsigned formatFromToken(LineState &State, ContinuationIndenter *Indenter, bool DryRun) override; - /// \brief Adds \p Token as the next comma to the \c CommaSeparated list. + /// Adds \p Token as the next comma to the \c CommaSeparated list. void CommaFound(const FormatToken *Token) override { Commas.push_back(Token); } private: - /// \brief A struct that holds information on how to format a given list with + /// A struct that holds information on how to format a given list with /// a specific number of columns. struct ColumnFormat { - /// \brief The number of columns to use. + /// The number of columns to use. unsigned Columns; - /// \brief The total width in characters. + /// The total width in characters. unsigned TotalWidth; - /// \brief The number of lines required for this format. + /// The number of lines required for this format. unsigned LineCount; - /// \brief The size of each column in characters. + /// The size of each column in characters. SmallVector<unsigned, 8> ColumnSizes; }; - /// \brief Calculate which \c ColumnFormat fits best into + /// Calculate which \c ColumnFormat fits best into /// \p RemainingCharacters. const ColumnFormat *getColumnFormat(unsigned RemainingCharacters) const; - /// \brief The ordered \c FormatTokens making up the commas of this list. + /// The ordered \c FormatTokens making up the commas of this list. SmallVector<const FormatToken *, 8> Commas; - /// \brief The length of each of the list's items in characters including the + /// The length of each of the list's items in characters including the /// trailing comma. SmallVector<unsigned, 8> ItemLengths; - /// \brief Precomputed formats that can be used for this list. + /// Precomputed formats that can be used for this list. SmallVector<ColumnFormat, 4> Formats; bool HasNestedBracedList; }; -/// \brief Encapsulates keywords that are context sensitive or for languages not +/// Encapsulates keywords that are context sensitive or for languages not /// properly supported by Clang's lexer. struct AdditionalKeywords { AdditionalKeywords(IdentifierTable &IdentTable) { @@ -776,7 +776,7 @@ IdentifierInfo *kw_slots; IdentifierInfo *kw_qslots; - /// \brief Returns \c true if \p Tok is a true JavaScript identifier, returns + /// Returns \c true if \p Tok is a true JavaScript identifier, returns /// \c false if it is a keyword or a pseudo keyword. bool IsJavaScriptIdentifier(const FormatToken &Tok) const { return Tok.is(tok::identifier) && @@ -785,7 +785,7 @@ } private: - /// \brief The JavaScript keywords beyond the C++ keyword set. + /// The JavaScript keywords beyond the C++ keyword set. std::unordered_set<IdentifierInfo *> JsExtraKeywords; }; Index: cfe/trunk/lib/Format/FormatToken.cpp =================================================================== --- cfe/trunk/lib/Format/FormatToken.cpp +++ cfe/trunk/lib/Format/FormatToken.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file implements specific functions of \c FormatTokens and their +/// This file implements specific functions of \c FormatTokens and their /// roles. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/lib/Format/FormatTokenLexer.h =================================================================== --- cfe/trunk/lib/Format/FormatTokenLexer.h +++ cfe/trunk/lib/Format/FormatTokenLexer.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file contains FormatTokenLexer, which tokenizes a source file +/// This file contains FormatTokenLexer, which tokenizes a source file /// into a token stream suitable for ClangFormat. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/lib/Format/FormatTokenLexer.cpp =================================================================== --- cfe/trunk/lib/Format/FormatTokenLexer.cpp +++ cfe/trunk/lib/Format/FormatTokenLexer.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file implements FormatTokenLexer, which tokenizes a source file +/// This file implements FormatTokenLexer, which tokenizes a source file /// into a FormatToken stream suitable for ClangFormat. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/lib/Format/NamespaceEndCommentsFixer.h =================================================================== --- cfe/trunk/lib/Format/NamespaceEndCommentsFixer.h +++ cfe/trunk/lib/Format/NamespaceEndCommentsFixer.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file declares NamespaceEndCommentsFixer, a TokenAnalyzer that +/// This file declares NamespaceEndCommentsFixer, a TokenAnalyzer that /// fixes namespace end comments. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/lib/Format/NamespaceEndCommentsFixer.cpp =================================================================== --- cfe/trunk/lib/Format/NamespaceEndCommentsFixer.cpp +++ cfe/trunk/lib/Format/NamespaceEndCommentsFixer.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file implements NamespaceEndCommentsFixer, a TokenAnalyzer that +/// This file implements NamespaceEndCommentsFixer, a TokenAnalyzer that /// fixes namespace end comments. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/lib/Format/SortJavaScriptImports.h =================================================================== --- cfe/trunk/lib/Format/SortJavaScriptImports.h +++ cfe/trunk/lib/Format/SortJavaScriptImports.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file implements a sorter for JavaScript ES6 imports. +/// This file implements a sorter for JavaScript ES6 imports. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/lib/Format/SortJavaScriptImports.cpp =================================================================== --- cfe/trunk/lib/Format/SortJavaScriptImports.cpp +++ cfe/trunk/lib/Format/SortJavaScriptImports.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file implements a sort operation for JavaScript ES6 imports. +/// This file implements a sort operation for JavaScript ES6 imports. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/lib/Format/TokenAnalyzer.h =================================================================== --- cfe/trunk/lib/Format/TokenAnalyzer.h +++ cfe/trunk/lib/Format/TokenAnalyzer.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file declares an abstract TokenAnalyzer, and associated helper +/// This file declares an abstract TokenAnalyzer, and associated helper /// classes. TokenAnalyzer can be extended to generate replacements based on /// an annotated and pre-processed token stream. /// Index: cfe/trunk/lib/Format/TokenAnalyzer.cpp =================================================================== --- cfe/trunk/lib/Format/TokenAnalyzer.cpp +++ cfe/trunk/lib/Format/TokenAnalyzer.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file implements an abstract TokenAnalyzer and associated helper +/// This file implements an abstract TokenAnalyzer and associated helper /// classes. TokenAnalyzer can be extended to generate replacements based on /// an annotated and pre-processed token stream. /// Index: cfe/trunk/lib/Format/TokenAnnotator.h =================================================================== --- cfe/trunk/lib/Format/TokenAnnotator.h +++ cfe/trunk/lib/Format/TokenAnnotator.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file implements a token annotator, i.e. creates +/// This file implements a token annotator, i.e. creates /// \c AnnotatedTokens out of \c FormatTokens with required extra information. /// //===----------------------------------------------------------------------===// @@ -138,14 +138,14 @@ void operator=(const AnnotatedLine &) = delete; }; -/// \brief Determines extra information about the tokens comprising an +/// Determines extra information about the tokens comprising an /// \c UnwrappedLine. class TokenAnnotator { public: TokenAnnotator(const FormatStyle &Style, const AdditionalKeywords &Keywords) : Style(Style), Keywords(Keywords) {} - /// \brief Adapts the indent levels of comment lines to the indent of the + /// Adapts the indent levels of comment lines to the indent of the /// subsequent line. // FIXME: Can/should this be done in the UnwrappedLineParser? void setCommentLineLevels(SmallVectorImpl<AnnotatedLine *> &Lines); @@ -154,7 +154,7 @@ void calculateFormattingInformation(AnnotatedLine &Line); private: - /// \brief Calculate the penalty for splitting before \c Tok. + /// Calculate the penalty for splitting before \c Tok. unsigned splitPenalty(const AnnotatedLine &Line, const FormatToken &Tok, bool InFunctionDecl); Index: cfe/trunk/lib/Format/TokenAnnotator.cpp =================================================================== --- cfe/trunk/lib/Format/TokenAnnotator.cpp +++ cfe/trunk/lib/Format/TokenAnnotator.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file implements a token annotator, i.e. creates +/// This file implements a token annotator, i.e. creates /// \c AnnotatedTokens out of \c FormatTokens with required extra information. /// //===----------------------------------------------------------------------===// @@ -25,7 +25,7 @@ namespace { -/// \brief Returns \c true if the token can be used as an identifier in +/// Returns \c true if the token can be used as an identifier in /// an Objective-C \c @selector, \c false otherwise. /// /// Because getFormattingLangOpts() always lexes source code as @@ -40,7 +40,7 @@ return Tok.Tok.getIdentifierInfo() != nullptr; } -/// \brief A parser that gathers additional information about tokens. +/// A parser that gathers additional information about tokens. /// /// The \c TokenAnnotator tries to match parenthesis and square brakets and /// store a parenthesis levels. It also tries to resolve matching "<" and ">" @@ -1132,7 +1132,7 @@ resetTokenMetadata(CurrentToken); } - /// \brief A struct to hold information valid in a specific context, e.g. + /// A struct to hold information valid in a specific context, e.g. /// a pair of parenthesis. struct Context { Context(tok::TokenKind ContextKind, unsigned BindingStrength, @@ -1158,7 +1158,7 @@ bool InCpp11AttributeSpecifier = false; }; - /// \brief Puts a new \c Context onto the stack \c Contexts for the lifetime + /// Puts a new \c Context onto the stack \c Contexts for the lifetime /// of each instance. struct ScopedContextCreator { AnnotatingParser &P; @@ -1399,7 +1399,7 @@ } } - /// \brief Take a guess at whether \p Tok starts a name of a function or + /// Take a guess at whether \p Tok starts a name of a function or /// variable declaration. /// /// This is a heuristic based on whether \p Tok is an identifier following @@ -1444,7 +1444,7 @@ PreviousNotConst->isSimpleTypeSpecifier(); } - /// \brief Determine whether ')' is ending a cast. + /// Determine whether ')' is ending a cast. bool rParenEndsCast(const FormatToken &Tok) { // C-style casts are only used in C++ and Java. if (!Style.isCpp() && Style.Language != FormatStyle::LK_Java) @@ -1541,7 +1541,7 @@ return true; } - /// \brief Return the type of the given token assuming it is * or &. + /// Return the type of the given token assuming it is * or &. TokenType determineStarAmpUsage(const FormatToken &Tok, bool IsExpression, bool InTemplateArgument) { if (Style.Language == FormatStyle::LK_JavaScript) @@ -1636,7 +1636,7 @@ return TT_BinaryOperator; } - /// \brief Determine whether ++/-- are pre- or post-increments/-decrements. + /// Determine whether ++/-- are pre- or post-increments/-decrements. TokenType determineIncrementUsage(const FormatToken &Tok) { const FormatToken *PrevToken = Tok.getPreviousNonComment(); if (!PrevToken || PrevToken->is(TT_CastRParen)) @@ -1665,7 +1665,7 @@ static const int PrecedenceUnaryOperator = prec::PointerToMember + 1; static const int PrecedenceArrowAndPeriod = prec::PointerToMember + 2; -/// \brief Parses binary expressions by inserting fake parenthesis based on +/// Parses binary expressions by inserting fake parenthesis based on /// operator precedence. class ExpressionParser { public: @@ -1673,7 +1673,7 @@ AnnotatedLine &Line) : Style(Style), Keywords(Keywords), Current(Line.First) {} - /// \brief Parse expressions with the given operator precedence. + /// Parse expressions with the given operator precedence. void parse(int Precedence = 0) { // Skip 'return' and ObjC selector colons as they are not part of a binary // expression. @@ -1760,7 +1760,7 @@ } private: - /// \brief Gets the precedence (+1) of the given token for binary operators + /// Gets the precedence (+1) of the given token for binary operators /// and other tokens that we treat like binary operators. int getCurrentPrecedence() { if (Current) { @@ -1819,7 +1819,7 @@ } } - /// \brief Parse unary operator expressions and surround them with fake + /// Parse unary operator expressions and surround them with fake /// parentheses if appropriate. void parseUnaryOperator() { llvm::SmallVector<FormatToken *, 2> Tokens; Index: cfe/trunk/lib/Format/UnwrappedLineFormatter.h =================================================================== --- cfe/trunk/lib/Format/UnwrappedLineFormatter.h +++ cfe/trunk/lib/Format/UnwrappedLineFormatter.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Implements a combinartorial exploration of all the different +/// Implements a combinartorial exploration of all the different /// linebreaks unwrapped lines can be formatted in. /// //===----------------------------------------------------------------------===// @@ -37,7 +37,7 @@ : Indenter(Indenter), Whitespaces(Whitespaces), Style(Style), Keywords(Keywords), SourceMgr(SourceMgr), Status(Status) {} - /// \brief Format the current block and return the penalty. + /// Format the current block and return the penalty. unsigned format(const SmallVectorImpl<AnnotatedLine *> &Lines, bool DryRun = false, int AdditionalIndent = 0, bool FixBadIndentation = false, @@ -46,14 +46,14 @@ unsigned LastStartColumn = 0); private: - /// \brief Add a new line and the required indent before the first Token + /// Add a new line and the required indent before the first Token /// of the \c UnwrappedLine if there was no structural parsing error. void formatFirstToken(const AnnotatedLine &Line, const AnnotatedLine *PreviousLine, const SmallVectorImpl<AnnotatedLine *> &Lines, unsigned Indent, unsigned NewlineIndent); - /// \brief Returns the column limit for a line, taking into account whether we + /// Returns the column limit for a line, taking into account whether we /// need an escaped newline due to a continued preprocessor directive. unsigned getColumnLimit(bool InPPDirective, const AnnotatedLine *NextLine) const; Index: cfe/trunk/lib/Format/UnwrappedLineFormatter.cpp =================================================================== --- cfe/trunk/lib/Format/UnwrappedLineFormatter.cpp +++ cfe/trunk/lib/Format/UnwrappedLineFormatter.cpp @@ -27,7 +27,7 @@ NextNext && NextNext->is(tok::l_brace); } -/// \brief Tracks the indent level of \c AnnotatedLines across levels. +/// Tracks the indent level of \c AnnotatedLines across levels. /// /// \c nextLine must be called for each \c AnnotatedLine, after which \c /// getIndent() will return the indent for the last line \c nextLine was called @@ -46,10 +46,10 @@ IndentForLevel.push_back(Style.IndentWidth * i + AdditionalIndent); } - /// \brief Returns the indent for the current line. + /// Returns the indent for the current line. unsigned getIndent() const { return Indent; } - /// \brief Update the indent state given that \p Line is going to be formatted + /// Update the indent state given that \p Line is going to be formatted /// next. void nextLine(const AnnotatedLine &Line) { Offset = getIndentOffset(*Line.First); @@ -67,14 +67,14 @@ Indent += Offset; } - /// \brief Update the indent state given that \p Line indent should be + /// Update the indent state given that \p Line indent should be /// skipped. void skipLine(const AnnotatedLine &Line) { while (IndentForLevel.size() <= Line.Level) IndentForLevel.push_back(Indent); } - /// \brief Update the level indent to adapt to the given \p Line. + /// Update the level indent to adapt to the given \p Line. /// /// When a line is not formatted, we move the subsequent lines on the same /// level to the same indent. @@ -89,7 +89,7 @@ } private: - /// \brief Get the offset of the line relatively to the level. + /// Get the offset of the line relatively to the level. /// /// For example, 'public:' labels in classes are offset by 1 or 2 /// characters to the left from their level. @@ -105,7 +105,7 @@ return 0; } - /// \brief Get the indent of \p Level from \p IndentForLevel. + /// Get the indent of \p Level from \p IndentForLevel. /// /// \p IndentForLevel must contain the indent for the level \c l /// at \p IndentForLevel[l], or a value < 0 if the indent for @@ -122,16 +122,16 @@ const AdditionalKeywords &Keywords; const unsigned AdditionalIndent; - /// \brief The indent in characters for each level. + /// The indent in characters for each level. std::vector<int> IndentForLevel; - /// \brief Offset of the current line relative to the indent level. + /// Offset of the current line relative to the indent level. /// /// For example, the 'public' keywords is often indented with a negative /// offset. int Offset = 0; - /// \brief The current line's indent. + /// The current line's indent. unsigned Indent = 0; }; @@ -158,7 +158,7 @@ : Style(Style), Keywords(Keywords), End(Lines.end()), Next(Lines.begin()), AnnotatedLines(Lines) {} - /// \brief Returns the next line, merging multiple lines into one if possible. + /// Returns the next line, merging multiple lines into one if possible. const AnnotatedLine *getNextMergedLine(bool DryRun, LevelIndentTracker &IndentTracker) { if (Next == End) @@ -180,7 +180,7 @@ } private: - /// \brief Calculates how many lines can be merged into 1 starting at \p I. + /// Calculates how many lines can be merged into 1 starting at \p I. unsigned tryFitMultipleLinesInOne(LevelIndentTracker &IndentTracker, SmallVectorImpl<AnnotatedLine *>::const_iterator I, @@ -666,7 +666,7 @@ } #endif -/// \brief Base class for classes that format one \c AnnotatedLine. +/// Base class for classes that format one \c AnnotatedLine. class LineFormatter { public: LineFormatter(ContinuationIndenter *Indenter, WhitespaceManager *Whitespaces, @@ -676,7 +676,7 @@ BlockFormatter(BlockFormatter) {} virtual ~LineFormatter() {} - /// \brief Formats an \c AnnotatedLine and returns the penalty. + /// Formats an \c AnnotatedLine and returns the penalty. /// /// If \p DryRun is \c false, directly applies the changes. virtual unsigned formatLine(const AnnotatedLine &Line, @@ -685,7 +685,7 @@ bool DryRun) = 0; protected: - /// \brief If the \p State's next token is an r_brace closing a nested block, + /// If the \p State's next token is an r_brace closing a nested block, /// format the nested block before it. /// /// Returns \c true if all children could be placed successfully and adapts @@ -767,7 +767,7 @@ UnwrappedLineFormatter *BlockFormatter; }; -/// \brief Formatter that keeps the existing line breaks. +/// Formatter that keeps the existing line breaks. class NoColumnLimitLineFormatter : public LineFormatter { public: NoColumnLimitLineFormatter(ContinuationIndenter *Indenter, @@ -776,7 +776,7 @@ UnwrappedLineFormatter *BlockFormatter) : LineFormatter(Indenter, Whitespaces, Style, BlockFormatter) {} - /// \brief Formats the line, simply keeping all of the input's line breaking + /// Formats the line, simply keeping all of the input's line breaking /// decisions. unsigned formatLine(const AnnotatedLine &Line, unsigned FirstIndent, unsigned FirstStartColumn, bool DryRun) override { @@ -795,7 +795,7 @@ } }; -/// \brief Formatter that puts all tokens into a single line without breaks. +/// Formatter that puts all tokens into a single line without breaks. class NoLineBreakFormatter : public LineFormatter { public: NoLineBreakFormatter(ContinuationIndenter *Indenter, @@ -803,7 +803,7 @@ UnwrappedLineFormatter *BlockFormatter) : LineFormatter(Indenter, Whitespaces, Style, BlockFormatter) {} - /// \brief Puts all tokens into a single line. + /// Puts all tokens into a single line. unsigned formatLine(const AnnotatedLine &Line, unsigned FirstIndent, unsigned FirstStartColumn, bool DryRun) override { unsigned Penalty = 0; @@ -818,7 +818,7 @@ } }; -/// \brief Finds the best way to break lines. +/// Finds the best way to break lines. class OptimizingLineFormatter : public LineFormatter { public: OptimizingLineFormatter(ContinuationIndenter *Indenter, @@ -827,7 +827,7 @@ UnwrappedLineFormatter *BlockFormatter) : LineFormatter(Indenter, Whitespaces, Style, BlockFormatter) {} - /// \brief Formats the line by finding the best line breaks with line lengths + /// Formats the line by finding the best line breaks with line lengths /// below the column limit. unsigned formatLine(const AnnotatedLine &Line, unsigned FirstIndent, unsigned FirstStartColumn, bool DryRun) override { @@ -850,14 +850,14 @@ } }; - /// \brief A pair of <penalty, count> that is used to prioritize the BFS on. + /// A pair of <penalty, count> that is used to prioritize the BFS on. /// /// In case of equal penalties, we want to prefer states that were inserted /// first. During state generation we make sure that we insert states first /// that break the line as late as possible. typedef std::pair<unsigned, unsigned> OrderedPenalty; - /// \brief An edge in the solution space from \c Previous->State to \c State, + /// An edge in the solution space from \c Previous->State to \c State, /// inserting a newline dependent on the \c NewLine. struct StateNode { StateNode(const LineState &State, bool NewLine, StateNode *Previous) @@ -867,16 +867,16 @@ StateNode *Previous; }; - /// \brief An item in the prioritized BFS search queue. The \c StateNode's + /// An item in the prioritized BFS search queue. The \c StateNode's /// \c State has the given \c OrderedPenalty. typedef std::pair<OrderedPenalty, StateNode *> QueueItem; - /// \brief The BFS queue type. + /// The BFS queue type. typedef std::priority_queue<QueueItem, std::vector<QueueItem>, std::greater<QueueItem>> QueueType; - /// \brief Analyze the entire solution space starting from \p InitialState. + /// Analyze the entire solution space starting from \p InitialState. /// /// This implements a variant of Dijkstra's algorithm on the graph that spans /// the solution space (\c LineStates are the nodes). The algorithm tries to @@ -943,7 +943,7 @@ return Penalty; } - /// \brief Add the following state to the analysis queue \c Queue. + /// Add the following state to the analysis queue \c Queue. /// /// Assume the current state is \p PreviousNode and has been reached with a /// penalty of \p Penalty. Insert a line break if \p NewLine is \c true. @@ -965,7 +965,7 @@ ++(*Count); } - /// \brief Applies the best formatting by reconstructing the path in the + /// Applies the best formatting by reconstructing the path in the /// solution space that leads to \c Best. void reconstructPath(LineState &State, StateNode *Best) { std::deque<StateNode *> Path; Index: cfe/trunk/lib/Format/UnwrappedLineParser.h =================================================================== --- cfe/trunk/lib/Format/UnwrappedLineParser.h +++ cfe/trunk/lib/Format/UnwrappedLineParser.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file contains the declaration of the UnwrappedLineParser, +/// This file contains the declaration of the UnwrappedLineParser, /// which turns a stream of tokens into UnwrappedLines. /// //===----------------------------------------------------------------------===// @@ -28,7 +28,7 @@ struct UnwrappedLineNode; -/// \brief An unwrapped line is a sequence of \c Token, that we would like to +/// An unwrapped line is a sequence of \c Token, that we would like to /// put on a single line if there was no column limit. /// /// This is used as a main interface between the \c UnwrappedLineParser and the @@ -38,24 +38,24 @@ UnwrappedLine(); // FIXME: Don't use std::list here. - /// \brief The \c Tokens comprising this \c UnwrappedLine. + /// The \c Tokens comprising this \c UnwrappedLine. std::list<UnwrappedLineNode> Tokens; - /// \brief The indent level of the \c UnwrappedLine. + /// The indent level of the \c UnwrappedLine. unsigned Level; - /// \brief Whether this \c UnwrappedLine is part of a preprocessor directive. + /// Whether this \c UnwrappedLine is part of a preprocessor directive. bool InPPDirective; bool MustBeDeclaration; - /// \brief If this \c UnwrappedLine closes a block in a sequence of lines, + /// If this \c UnwrappedLine closes a block in a sequence of lines, /// \c MatchingOpeningBlockLineIndex stores the index of the corresponding /// opening line. Otherwise, \c MatchingOpeningBlockLineIndex must be /// \c kInvalidIndex. size_t MatchingOpeningBlockLineIndex = kInvalidIndex; - /// \brief If this \c UnwrappedLine opens a block, stores the index of the + /// If this \c UnwrappedLine opens a block, stores the index of the /// line with the corresponding closing brace. size_t MatchingClosingBlockLineIndex = kInvalidIndex; Index: cfe/trunk/lib/Format/UnwrappedLineParser.cpp =================================================================== --- cfe/trunk/lib/Format/UnwrappedLineParser.cpp +++ cfe/trunk/lib/Format/UnwrappedLineParser.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file contains the implementation of the UnwrappedLineParser, +/// This file contains the implementation of the UnwrappedLineParser, /// which turns a stream of tokens into UnwrappedLines. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/lib/Format/UsingDeclarationsSorter.h =================================================================== --- cfe/trunk/lib/Format/UsingDeclarationsSorter.h +++ cfe/trunk/lib/Format/UsingDeclarationsSorter.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file declares UsingDeclarationsSorter, a TokenAnalyzer that +/// This file declares UsingDeclarationsSorter, a TokenAnalyzer that /// sorts consecutive using declarations. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/lib/Format/UsingDeclarationsSorter.cpp =================================================================== --- cfe/trunk/lib/Format/UsingDeclarationsSorter.cpp +++ cfe/trunk/lib/Format/UsingDeclarationsSorter.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file implements UsingDeclarationsSorter, a TokenAnalyzer that +/// This file implements UsingDeclarationsSorter, a TokenAnalyzer that /// sorts consecutive using declarations. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/lib/Format/WhitespaceManager.h =================================================================== --- cfe/trunk/lib/Format/WhitespaceManager.h +++ cfe/trunk/lib/Format/WhitespaceManager.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief WhitespaceManager class manages whitespace around tokens and their +/// WhitespaceManager class manages whitespace around tokens and their /// replacements. /// //===----------------------------------------------------------------------===// @@ -24,7 +24,7 @@ namespace clang { namespace format { -/// \brief Manages the whitespaces around tokens and their replacements. +/// Manages the whitespaces around tokens and their replacements. /// /// This includes special handling for certain constructs, e.g. the alignment of /// trailing line comments. @@ -41,7 +41,7 @@ bool UseCRLF) : SourceMgr(SourceMgr), Style(Style), UseCRLF(UseCRLF) {} - /// \brief Replaces the whitespace in front of \p Tok. Only call once for + /// Replaces the whitespace in front of \p Tok. Only call once for /// each \c AnnotatedToken. /// /// \p StartOfTokenColumn is the column at which the token will start after @@ -51,7 +51,7 @@ unsigned StartOfTokenColumn, bool InPPDirective = false); - /// \brief Adds information about an unchangeable token's whitespace. + /// Adds information about an unchangeable token's whitespace. /// /// Needs to be called for every token for which \c replaceWhitespace /// was not called. @@ -59,7 +59,7 @@ llvm::Error addReplacement(const tooling::Replacement &Replacement); - /// \brief Inserts or replaces whitespace in the middle of a token. + /// Inserts or replaces whitespace in the middle of a token. /// /// Inserts \p PreviousPostfix, \p Newlines, \p Spaces and \p CurrentPrefix /// (in this order) at \p Offset inside \p Tok, replacing \p ReplaceChars @@ -79,13 +79,13 @@ StringRef CurrentPrefix, bool InPPDirective, unsigned Newlines, int Spaces); - /// \brief Returns all the \c Replacements created during formatting. + /// Returns all the \c Replacements created during formatting. const tooling::Replacements &generateReplacements(); - /// \brief Represents a change before a token, a break inside a token, + /// Represents a change before a token, a break inside a token, /// or the layout of an unchanged token (or whitespace within). struct Change { - /// \brief Functor to sort changes in original source order. + /// Functor to sort changes in original source order. class IsBeforeInFile { public: IsBeforeInFile(const SourceManager &SourceMgr) : SourceMgr(SourceMgr) {} @@ -95,7 +95,7 @@ const SourceManager &SourceMgr; }; - /// \brief Creates a \c Change. + /// Creates a \c Change. /// /// The generated \c Change will replace the characters at /// \p OriginalWhitespaceRange with a concatenation of @@ -165,35 +165,35 @@ }; private: - /// \brief Calculate \c IsTrailingComment, \c TokenLength for the last tokens + /// Calculate \c IsTrailingComment, \c TokenLength for the last tokens /// or token parts in a line and \c PreviousEndOfTokenColumn and /// \c EscapedNewlineColumn for the first tokens or token parts in a line. void calculateLineBreakInformation(); - /// \brief Align consecutive assignments over all \c Changes. + /// Align consecutive assignments over all \c Changes. void alignConsecutiveAssignments(); - /// \brief Align consecutive declarations over all \c Changes. + /// Align consecutive declarations over all \c Changes. void alignConsecutiveDeclarations(); - /// \brief Align trailing comments over all \c Changes. + /// Align trailing comments over all \c Changes. void alignTrailingComments(); - /// \brief Align trailing comments from change \p Start to change \p End at + /// Align trailing comments from change \p Start to change \p End at /// the specified \p Column. void alignTrailingComments(unsigned Start, unsigned End, unsigned Column); - /// \brief Align escaped newlines over all \c Changes. + /// Align escaped newlines over all \c Changes. void alignEscapedNewlines(); - /// \brief Align escaped newlines from change \p Start to change \p End at + /// Align escaped newlines from change \p Start to change \p End at /// the specified \p Column. void alignEscapedNewlines(unsigned Start, unsigned End, unsigned Column); - /// \brief Fill \c Replaces with the replacements for all effective changes. + /// Fill \c Replaces with the replacements for all effective changes. void generateChanges(); - /// \brief Stores \p Text as the replacement for the whitespace in \p Range. + /// Stores \p Text as the replacement for the whitespace in \p Range. void storeReplacement(SourceRange Range, StringRef Text); void appendNewlineText(std::string &Text, unsigned Newlines); void appendEscapedNewlineText(std::string &Text, unsigned Newlines, Index: cfe/trunk/lib/Format/WhitespaceManager.cpp =================================================================== --- cfe/trunk/lib/Format/WhitespaceManager.cpp +++ cfe/trunk/lib/Format/WhitespaceManager.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file implements WhitespaceManager class. +/// This file implements WhitespaceManager class. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/lib/Frontend/ASTUnit.cpp =================================================================== --- cfe/trunk/lib/Frontend/ASTUnit.cpp +++ cfe/trunk/lib/Frontend/ASTUnit.cpp @@ -151,7 +151,7 @@ return true; } -/// \brief Get a source buffer for \p MainFilePath, handling all file-to-file +/// Get a source buffer for \p MainFilePath, handling all file-to-file /// and file-to-buffer remappings inside \p Invocation. static std::unique_ptr<llvm::MemoryBuffer> getBufferForFileHandlingRemapping(const CompilerInvocation &Invocation, @@ -226,13 +226,13 @@ llvm::DeleteContainerSeconds(FileDecls); } -/// \brief After failing to build a precompiled preamble (due to +/// After failing to build a precompiled preamble (due to /// errors in the source that occurs in the preamble), the number of /// reparses during which we'll skip even trying to precompile the /// preamble. const unsigned DefaultPreambleRebuildInterval = 5; -/// \brief Tracks the number of ASTUnit objects that are currently active. +/// Tracks the number of ASTUnit objects that are currently active. /// /// Used for debugging purposes only. static std::atomic<unsigned> ActiveASTUnitObjects; @@ -274,7 +274,7 @@ this->PP = std::move(PP); } -/// \brief Determine the set of code-completion contexts in which this +/// Determine the set of code-completion contexts in which this /// declaration should be shown. static unsigned getDeclShowContexts(const NamedDecl *ND, const LangOptions &LangOpts, @@ -504,7 +504,7 @@ namespace { -/// \brief Gathers information from ASTReader that will be used to initialize +/// Gathers information from ASTReader that will be used to initialize /// a Preprocessor. class ASTInfoCollector : public ASTReaderListener { Preprocessor &PP; @@ -601,7 +601,7 @@ } }; -/// \brief Diagnostic consumer that saves each diagnostic it is given. +/// Diagnostic consumer that saves each diagnostic it is given. class StoredDiagnosticConsumer : public DiagnosticConsumer { SmallVectorImpl<StoredDiagnostic> *StoredDiags; SmallVectorImpl<ASTUnit::StandaloneDiagnostic> *StandaloneDiags; @@ -628,7 +628,7 @@ const Diagnostic &Info) override; }; -/// \brief RAII object that optionally captures diagnostics, if +/// RAII object that optionally captures diagnostics, if /// there is no diagnostic client to capture them already. class CaptureDroppedDiagnostics { DiagnosticsEngine &Diags; @@ -715,7 +715,7 @@ return nullptr; } -/// \brief Configure the diagnostics object for use with ASTUnit. +/// Configure the diagnostics object for use with ASTUnit. void ASTUnit::ConfigureDiags(IntrusiveRefCntPtr<DiagnosticsEngine> Diags, ASTUnit &AST, bool CaptureDiagnostics) { assert(Diags.get() && "no DiagnosticsEngine was provided"); @@ -837,14 +837,14 @@ return AST; } -/// \brief Add the given macro to the hash of all top-level entities. +/// Add the given macro to the hash of all top-level entities. static void AddDefinedMacroToHash(const Token &MacroNameTok, unsigned &Hash) { Hash = llvm::djbHash(MacroNameTok.getIdentifierInfo()->getName(), Hash); } namespace { -/// \brief Preprocessor callback class that updates a hash value with the names +/// Preprocessor callback class that updates a hash value with the names /// of all macros that have been defined by the translation unit. class MacroDefinitionTrackerPPCallbacks : public PPCallbacks { unsigned &Hash; @@ -860,7 +860,7 @@ } // namespace -/// \brief Add the given declaration to the hash of all top-level entities. +/// Add the given declaration to the hash of all top-level entities. static void AddTopLevelDeclarationToHash(Decl *D, unsigned &Hash) { if (!D) return; @@ -1248,7 +1248,7 @@ return OutDiag; } -/// \brief Attempt to build or re-use a precompiled preamble when (re-)parsing +/// Attempt to build or re-use a precompiled preamble when (re-)parsing /// the source file. /// /// This routine will compute the preamble of the main source file. If a @@ -1852,7 +1852,7 @@ namespace { - /// \brief Code completion consumer that combines the cached code-completion + /// Code completion consumer that combines the cached code-completion /// results from an ASTUnit with the code-completion results provided to it, /// then passes the result on to class AugmentedCodeCompleteConsumer : public CodeCompleteConsumer { @@ -1909,7 +1909,7 @@ } // namespace -/// \brief Helper function that computes which global names are hidden by the +/// Helper function that computes which global names are hidden by the /// local code-completion results. static void CalculateHiddenNames(const CodeCompletionContext &Context, CodeCompletionResult *Results, @@ -2459,7 +2459,7 @@ return SM.getMacroArgExpandedLocation(FileLoc.getLocWithOffset(Offset)); } -/// \brief If \arg Loc is a loaded location from the preamble, returns +/// If \arg Loc is a loaded location from the preamble, returns /// the corresponding local location of the main file, otherwise it returns /// \arg Loc. SourceLocation ASTUnit::mapLocationFromPreamble(SourceLocation Loc) const { @@ -2480,7 +2480,7 @@ return Loc; } -/// \brief If \arg Loc is a local location of the main file but inside the +/// If \arg Loc is a local location of the main file but inside the /// preamble chunk, returns the corresponding loaded location from the /// preamble, otherwise it returns \arg Loc. SourceLocation ASTUnit::mapLocationToPreamble(SourceLocation Loc) const { Index: cfe/trunk/lib/Frontend/CompilerInstance.cpp =================================================================== --- cfe/trunk/lib/Frontend/CompilerInstance.cpp +++ cfe/trunk/lib/Frontend/CompilerInstance.cpp @@ -1042,7 +1042,7 @@ return !getDiagnostics().getClient()->getNumErrors(); } -/// \brief Determine the appropriate source input kind based on language +/// Determine the appropriate source input kind based on language /// options. static InputKind::Language getLanguageFromOptions(const LangOptions &LangOpts) { if (LangOpts.OpenCL) @@ -1054,7 +1054,7 @@ return LangOpts.CPlusPlus ? InputKind::CXX : InputKind::C; } -/// \brief Compile a module file for the given module, using the options +/// Compile a module file for the given module, using the options /// provided by the importing compiler instance. Returns true if the module /// was built without errors. static bool @@ -1201,7 +1201,7 @@ return FileMgr.getFile(PublicFilename); } -/// \brief Compile a module file for the given module, using the options +/// Compile a module file for the given module, using the options /// provided by the importing compiler instance. Returns true if the module /// was built without errors. static bool compileModuleImpl(CompilerInstance &ImportingInstance, @@ -1350,7 +1350,7 @@ } } -/// \brief Diagnose differences between the current definition of the given +/// Diagnose differences between the current definition of the given /// configuration macro and the definition provided on the command line. static void checkConfigMacro(Preprocessor &PP, StringRef ConfigMacro, Module *Mod, SourceLocation ImportLoc) { @@ -1408,13 +1408,13 @@ } } -/// \brief Write a new timestamp file with the given path. +/// Write a new timestamp file with the given path. static void writeTimestampFile(StringRef TimestampFile) { std::error_code EC; llvm::raw_fd_ostream Out(TimestampFile.str(), EC, llvm::sys::fs::F_None); } -/// \brief Prune the module cache of modules that haven't been accessed in +/// Prune the module cache of modules that haven't been accessed in /// a long time. static void pruneModuleCache(const HeaderSearchOptions &HSOpts) { struct stat StatBuf; Index: cfe/trunk/lib/Frontend/CompilerInvocation.cpp =================================================================== --- cfe/trunk/lib/Frontend/CompilerInvocation.cpp +++ cfe/trunk/lib/Frontend/CompilerInvocation.cpp @@ -395,7 +395,7 @@ return llvm::Reloc::PIC_; } -/// \brief Create a new Regex instance out of the string value in \p RpassArg. +/// Create a new Regex instance out of the string value in \p RpassArg. /// It returns a pointer to the newly generated Regex instance. static std::shared_ptr<llvm::Regex> GenerateOptimizationRemarkRegex(DiagnosticsEngine &Diags, ArgList &Args, Index: cfe/trunk/lib/Frontend/DiagnosticRenderer.cpp =================================================================== --- cfe/trunk/lib/Frontend/DiagnosticRenderer.cpp +++ cfe/trunk/lib/Frontend/DiagnosticRenderer.cpp @@ -152,7 +152,7 @@ Message, None, DiagOrStoredDiag()); } -/// \brief Prints an include stack when appropriate for a particular +/// Prints an include stack when appropriate for a particular /// diagnostic level and location. /// /// This routine handles all the logic of suppressing particular include @@ -186,7 +186,7 @@ } } -/// \brief Helper to recursively walk up the include stack and print each layer +/// Helper to recursively walk up the include stack and print each layer /// on the way back down. void DiagnosticRenderer::emitIncludeStackRecursively(FullSourceLoc Loc) { if (Loc.isInvalid()) { @@ -216,7 +216,7 @@ emitIncludeLocation(Loc, PLoc); } -/// \brief Emit the module import stack associated with the current location. +/// Emit the module import stack associated with the current location. void DiagnosticRenderer::emitImportStack(FullSourceLoc Loc) { if (Loc.isInvalid()) { emitModuleBuildStack(Loc.getManager()); @@ -227,7 +227,7 @@ emitImportStackRecursively(NextImportLoc.first, NextImportLoc.second); } -/// \brief Helper to recursively walk up the import stack and print each layer +/// Helper to recursively walk up the import stack and print each layer /// on the way back down. void DiagnosticRenderer::emitImportStackRecursively(FullSourceLoc Loc, StringRef ModuleName) { @@ -245,7 +245,7 @@ emitImportLocation(Loc, PLoc, ModuleName); } -/// \brief Emit the module build stack, for cases where a module is (re-)built +/// Emit the module build stack, for cases where a module is (re-)built /// on demand. void DiagnosticRenderer::emitModuleBuildStack(const SourceManager &SM) { ModuleBuildStack Stack = SM.getModuleBuildStack(); @@ -424,7 +424,7 @@ emitCodeContext(Loc, Level, SpellingRanges, Hints); } -/// \brief A helper function for emitMacroExpansion to print the +/// A helper function for emitMacroExpansion to print the /// macro expansion message void DiagnosticRenderer::emitSingleMacroExpansion( FullSourceLoc Loc, DiagnosticsEngine::Level Level, @@ -512,7 +512,7 @@ return true; } -/// \brief Recursively emit notes for each macro expansion and caret +/// Recursively emit notes for each macro expansion and caret /// diagnostics where appropriate. /// /// Walks up the macro expansion stack printing expansion notes, the code Index: cfe/trunk/lib/Frontend/FrontendAction.cpp =================================================================== --- cfe/trunk/lib/Frontend/FrontendAction.cpp +++ cfe/trunk/lib/Frontend/FrontendAction.cpp @@ -79,7 +79,7 @@ } }; -/// \brief Dumps deserialized declarations. +/// Dumps deserialized declarations. class DeserializedDeclsDumper : public DelegatingDeserializationListener { public: explicit DeserializedDeclsDumper(ASTDeserializationListener *Previous, @@ -96,7 +96,7 @@ } }; -/// \brief Checks deserialized declarations and emits error if a name +/// Checks deserialized declarations and emits error if a name /// matches one given in command-line using -error-on-deserialized-decl. class DeserializedDeclsChecker : public DelegatingDeserializationListener { ASTContext &Ctx; @@ -282,7 +282,7 @@ Includes += "}\n"; } -/// \brief Collect the set of header includes needed to construct the given +/// Collect the set of header includes needed to construct the given /// module and update the TopHeaders file set of the module. /// /// \param Module The module we're collecting includes from. Index: cfe/trunk/lib/Frontend/FrontendActions.cpp =================================================================== --- cfe/trunk/lib/Frontend/FrontendActions.cpp +++ cfe/trunk/lib/Frontend/FrontendActions.cpp @@ -416,7 +416,7 @@ } namespace { - /// \brief AST reader listener that dumps module information for a module + /// AST reader listener that dumps module information for a module /// file. class DumpModuleInfoListener : public ASTReaderListener { llvm::raw_ostream &Out; Index: cfe/trunk/lib/Frontend/InitPreprocessor.cpp =================================================================== --- cfe/trunk/lib/Frontend/InitPreprocessor.cpp +++ cfe/trunk/lib/Frontend/InitPreprocessor.cpp @@ -93,7 +93,7 @@ AddImplicitInclude(Builder, OriginalFile); } -/// \brief Add an implicit \#include using the original file used to generate +/// Add an implicit \#include using the original file used to generate /// a PCH file. static void AddImplicitIncludePCH(MacroBuilder &Builder, Preprocessor &PP, const PCHContainerReader &PCHContainerRdr, @@ -301,7 +301,7 @@ return "1"; // "sometimes lock free" } -/// \brief Add definitions required for a smooth interaction between +/// Add definitions required for a smooth interaction between /// Objective-C++ automated reference counting and libstdc++ (4.2). static void AddObjCXXARCLibstdcxxDefines(const LangOptions &LangOpts, MacroBuilder &Builder) { Index: cfe/trunk/lib/Frontend/LayoutOverrideSource.cpp =================================================================== --- cfe/trunk/lib/Frontend/LayoutOverrideSource.cpp +++ cfe/trunk/lib/Frontend/LayoutOverrideSource.cpp @@ -15,7 +15,7 @@ using namespace clang; -/// \brief Parse a simple identifier. +/// Parse a simple identifier. static std::string parseName(StringRef S) { if (S.empty() || !isIdentifierHead(S[0])) return ""; Index: cfe/trunk/lib/Frontend/PCHContainerOperations.cpp =================================================================== --- cfe/trunk/lib/Frontend/PCHContainerOperations.cpp +++ cfe/trunk/lib/Frontend/PCHContainerOperations.cpp @@ -25,7 +25,7 @@ namespace { -/// \brief A PCHContainerGenerator that writes out the PCH to a flat file. +/// A PCHContainerGenerator that writes out the PCH to a flat file. class RawPCHContainerGenerator : public ASTConsumer { std::shared_ptr<PCHBuffer> Buffer; std::unique_ptr<raw_pwrite_stream> OS; Index: cfe/trunk/lib/Frontend/Rewrite/FixItRewriter.cpp =================================================================== --- cfe/trunk/lib/Frontend/Rewrite/FixItRewriter.cpp +++ cfe/trunk/lib/Frontend/Rewrite/FixItRewriter.cpp @@ -194,7 +194,7 @@ Diag(Info.getLocation(), diag::note_fixit_applied); } -/// \brief Emit a diagnostic via the adapted diagnostic client. +/// Emit a diagnostic via the adapted diagnostic client. void FixItRewriter::Diag(SourceLocation Loc, unsigned DiagID) { // When producing this diagnostic, we temporarily bypass ourselves, // clear out any current diagnostic, and let the downstream client Index: cfe/trunk/lib/Frontend/SerializedDiagnosticPrinter.cpp =================================================================== --- cfe/trunk/lib/Frontend/SerializedDiagnosticPrinter.cpp +++ cfe/trunk/lib/Frontend/SerializedDiagnosticPrinter.cpp @@ -162,131 +162,131 @@ void finish() override; private: - /// \brief Build a DiagnosticsEngine to emit diagnostics about the diagnostics + /// Build a DiagnosticsEngine to emit diagnostics about the diagnostics DiagnosticsEngine *getMetaDiags(); - /// \brief Remove old copies of the serialized diagnostics. This is necessary + /// Remove old copies of the serialized diagnostics. This is necessary /// so that we can detect when subprocesses write diagnostics that we should /// merge into our own. void RemoveOldDiagnostics(); - /// \brief Emit the preamble for the serialized diagnostics. + /// Emit the preamble for the serialized diagnostics. void EmitPreamble(); - /// \brief Emit the BLOCKINFO block. + /// Emit the BLOCKINFO block. void EmitBlockInfoBlock(); - /// \brief Emit the META data block. + /// Emit the META data block. void EmitMetaBlock(); - /// \brief Start a DIAG block. + /// Start a DIAG block. void EnterDiagBlock(); - /// \brief End a DIAG block. + /// End a DIAG block. void ExitDiagBlock(); - /// \brief Emit a DIAG record. + /// Emit a DIAG record. void EmitDiagnosticMessage(FullSourceLoc Loc, PresumedLoc PLoc, DiagnosticsEngine::Level Level, StringRef Message, DiagOrStoredDiag D); - /// \brief Emit FIXIT and SOURCE_RANGE records for a diagnostic. + /// Emit FIXIT and SOURCE_RANGE records for a diagnostic. void EmitCodeContext(SmallVectorImpl<CharSourceRange> &Ranges, ArrayRef<FixItHint> Hints, const SourceManager &SM); - /// \brief Emit a record for a CharSourceRange. + /// Emit a record for a CharSourceRange. void EmitCharSourceRange(CharSourceRange R, const SourceManager &SM); - /// \brief Emit the string information for the category. + /// Emit the string information for the category. unsigned getEmitCategory(unsigned category = 0); - /// \brief Emit the string information for diagnostic flags. + /// Emit the string information for diagnostic flags. unsigned getEmitDiagnosticFlag(DiagnosticsEngine::Level DiagLevel, unsigned DiagID = 0); unsigned getEmitDiagnosticFlag(StringRef DiagName); - /// \brief Emit (lazily) the file string and retrieved the file identifier. + /// Emit (lazily) the file string and retrieved the file identifier. unsigned getEmitFile(const char *Filename); - /// \brief Add SourceLocation information the specified record. + /// Add SourceLocation information the specified record. void AddLocToRecord(FullSourceLoc Loc, PresumedLoc PLoc, RecordDataImpl &Record, unsigned TokSize = 0); - /// \brief Add SourceLocation information the specified record. + /// Add SourceLocation information the specified record. void AddLocToRecord(FullSourceLoc Loc, RecordDataImpl &Record, unsigned TokSize = 0) { AddLocToRecord(Loc, Loc.hasManager() ? Loc.getPresumedLoc() : PresumedLoc(), Record, TokSize); } - /// \brief Add CharSourceRange information the specified record. + /// Add CharSourceRange information the specified record. void AddCharSourceRangeToRecord(CharSourceRange R, RecordDataImpl &Record, const SourceManager &SM); - /// \brief Language options, which can differ from one clone of this client + /// Language options, which can differ from one clone of this client /// to another. const LangOptions *LangOpts; - /// \brief Whether this is the original instance (rather than one of its + /// Whether this is the original instance (rather than one of its /// clones), responsible for writing the file at the end. bool OriginalInstance; - /// \brief Whether this instance should aggregate diagnostics that are + /// Whether this instance should aggregate diagnostics that are /// generated from child processes. bool MergeChildRecords; - /// \brief State that is shared among the various clones of this diagnostic + /// State that is shared among the various clones of this diagnostic /// consumer. struct SharedState { SharedState(StringRef File, DiagnosticOptions *Diags) : DiagOpts(Diags), Stream(Buffer), OutputFile(File.str()), EmittedAnyDiagBlocks(false) {} - /// \brief Diagnostic options. + /// Diagnostic options. IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts; - /// \brief The byte buffer for the serialized content. + /// The byte buffer for the serialized content. SmallString<1024> Buffer; - /// \brief The BitStreamWriter for the serialized diagnostics. + /// The BitStreamWriter for the serialized diagnostics. llvm::BitstreamWriter Stream; - /// \brief The name of the diagnostics file. + /// The name of the diagnostics file. std::string OutputFile; - /// \brief The set of constructed record abbreviations. + /// The set of constructed record abbreviations. AbbreviationMap Abbrevs; - /// \brief A utility buffer for constructing record content. + /// A utility buffer for constructing record content. RecordData Record; - /// \brief A text buffer for rendering diagnostic text. + /// A text buffer for rendering diagnostic text. SmallString<256> diagBuf; - /// \brief The collection of diagnostic categories used. + /// The collection of diagnostic categories used. llvm::DenseSet<unsigned> Categories; - /// \brief The collection of files used. + /// The collection of files used. llvm::DenseMap<const char *, unsigned> Files; typedef llvm::DenseMap<const void *, std::pair<unsigned, StringRef> > DiagFlagsTy; - /// \brief Map for uniquing strings. + /// Map for uniquing strings. DiagFlagsTy DiagFlags; - /// \brief Whether we have already started emission of any DIAG blocks. Once + /// Whether we have already started emission of any DIAG blocks. Once /// this becomes \c true, we never close a DIAG block until we know that we're /// starting another one or we're done. bool EmittedAnyDiagBlocks; - /// \brief Engine for emitting diagnostics about the diagnostics. + /// Engine for emitting diagnostics about the diagnostics. std::unique_ptr<DiagnosticsEngine> MetaDiagnostics; }; - /// \brief State shared among the various clones of this diagnostic consumer. + /// State shared among the various clones of this diagnostic consumer. std::shared_ptr<SharedState> State; }; } // end anonymous namespace @@ -305,7 +305,7 @@ // Serialization methods. //===----------------------------------------------------------------------===// -/// \brief Emits a block ID in the BLOCKINFO block. +/// Emits a block ID in the BLOCKINFO block. static void EmitBlockID(unsigned ID, const char *Name, llvm::BitstreamWriter &Stream, RecordDataImpl &Record) { @@ -325,7 +325,7 @@ Stream.EmitRecord(llvm::bitc::BLOCKINFO_CODE_BLOCKNAME, Record); } -/// \brief Emits a record ID in the BLOCKINFO block. +/// Emits a record ID in the BLOCKINFO block. static void EmitRecordID(unsigned ID, const char *Name, llvm::BitstreamWriter &Stream, RecordDataImpl &Record){ @@ -395,7 +395,7 @@ State->Record); } -/// \brief Emits the preamble of the diagnostics file. +/// Emits the preamble of the diagnostics file. void SDiagsWriter::EmitPreamble() { // Emit the file header. State->Stream.Emit((unsigned)'D', 8); Index: cfe/trunk/lib/Frontend/TextDiagnostic.cpp =================================================================== --- cfe/trunk/lib/Frontend/TextDiagnostic.cpp +++ cfe/trunk/lib/Frontend/TextDiagnostic.cpp @@ -42,7 +42,7 @@ static const enum raw_ostream::Colors savedColor = raw_ostream::SAVEDCOLOR; -/// \brief Add highlights to differences in template strings. +/// Add highlights to differences in template strings. static void applyTemplateHighlighting(raw_ostream &OS, StringRef Str, bool &Normal, bool Bold) { while (1) { @@ -63,7 +63,7 @@ } } -/// \brief Number of spaces to indent when word-wrapping. +/// Number of spaces to indent when word-wrapping. const unsigned WordWrapIndentation = 6; static int bytesSincePreviousTabOrLineBegin(StringRef SourceLine, size_t i) { @@ -76,7 +76,7 @@ return bytes; } -/// \brief returns a printable representation of first item from input range +/// returns a printable representation of first item from input range /// /// This function returns a printable representation of the next item in a line /// of source. If the next byte begins a valid and printable character, that @@ -269,14 +269,14 @@ int columns() const { return m_byteToColumn.back(); } int bytes() const { return m_columnToByte.back(); } - /// \brief Map a byte to the column which it is at the start of, or return -1 + /// Map a byte to the column which it is at the start of, or return -1 /// if it is not at the start of a column (for a UTF-8 trailing byte). int byteToColumn(int n) const { assert(0<=n && n<static_cast<int>(m_byteToColumn.size())); return m_byteToColumn[n]; } - /// \brief Map a byte to the first column which contains it. + /// Map a byte to the first column which contains it. int byteToContainingColumn(int N) const { assert(0 <= N && N < static_cast<int>(m_byteToColumn.size())); while (m_byteToColumn[N] == -1) @@ -284,7 +284,7 @@ return m_byteToColumn[N]; } - /// \brief Map a column to the byte which starts the column, or return -1 if + /// Map a column to the byte which starts the column, or return -1 if /// the column the second or subsequent column of an expanded tab or similar /// multi-column entity. int columnToByte(int n) const { @@ -292,14 +292,14 @@ return m_columnToByte[n]; } - /// \brief Map from a byte index to the next byte which starts a column. + /// Map from a byte index to the next byte which starts a column. int startOfNextColumn(int N) const { assert(0 <= N && N < static_cast<int>(m_byteToColumn.size() - 1)); while (byteToColumn(++N) == -1) {} return N; } - /// \brief Map from a byte index to the previous byte which starts a column. + /// Map from a byte index to the previous byte which starts a column. int startOfPreviousColumn(int N) const { assert(0 < N && N < static_cast<int>(m_byteToColumn.size())); while (byteToColumn(--N) == -1) {} @@ -317,7 +317,7 @@ }; } // end anonymous namespace -/// \brief When the source code line we want to print is too long for +/// When the source code line we want to print is too long for /// the terminal, select the "interesting" region. static void selectInterestingSourceRegion(std::string &SourceLine, std::string &CaretLine, @@ -507,7 +507,7 @@ } } -/// \brief Skip over whitespace in the string, starting at the given +/// Skip over whitespace in the string, starting at the given /// index. /// /// \returns The index of the first non-whitespace character that is @@ -519,7 +519,7 @@ return Idx; } -/// \brief If the given character is the start of some kind of +/// If the given character is the start of some kind of /// balanced punctuation (e.g., quotes or parentheses), return the /// character that will terminate the punctuation. /// @@ -539,7 +539,7 @@ return 0; } -/// \brief Find the end of the word starting at the given offset +/// Find the end of the word starting at the given offset /// within a string. /// /// \returns the index pointing one character past the end of the @@ -596,7 +596,7 @@ return findEndOfWord(Start + 1, Str, Length, Column + 1, Columns); } -/// \brief Print the given string to a stream, word-wrapping it to +/// Print the given string to a stream, word-wrapping it to /// some number of columns in the process. /// /// \param OS the stream to which the word-wrapping string will be @@ -777,7 +777,7 @@ OS << Filename; } -/// \brief Print out the file/line/column information and include trace. +/// Print out the file/line/column information and include trace. /// /// This method handlen the emission of the diagnostic location information. /// This includes extracting as much location information as is present for @@ -913,7 +913,7 @@ OS << "While building module '" << ModuleName << "':\n"; } -/// \brief Find the suitable set of lines to show to include a set of ranges. +/// Find the suitable set of lines to show to include a set of ranges. static llvm::Optional<std::pair<unsigned, unsigned>> findLinesForRange(const CharSourceRange &R, FileID FID, const SourceManager &SM) { @@ -963,7 +963,7 @@ return A; } -/// \brief Highlight a SourceRange (with ~'s) for any characters on LineNo. +/// Highlight a SourceRange (with ~'s) for any characters on LineNo. static void highlightRange(const CharSourceRange &R, unsigned LineNo, FileID FID, const SourceColumnMap &map, @@ -1110,7 +1110,7 @@ return FixItInsertionLine; } -/// \brief Emit a code snippet and caret line. +/// Emit a code snippet and caret line. /// /// This routine emits a single line's code snippet and caret line.. /// Index: cfe/trunk/lib/Frontend/TextDiagnosticPrinter.cpp =================================================================== --- cfe/trunk/lib/Frontend/TextDiagnosticPrinter.cpp +++ cfe/trunk/lib/Frontend/TextDiagnosticPrinter.cpp @@ -44,7 +44,7 @@ TextDiag.reset(); } -/// \brief Print any diagnostic option information to a raw_ostream. +/// Print any diagnostic option information to a raw_ostream. /// /// This implements all of the logic for adding diagnostic options to a message /// (via OS). Each relevant option is comma separated and all are enclosed in Index: cfe/trunk/lib/Frontend/VerifyDiagnosticConsumer.cpp =================================================================== --- cfe/trunk/lib/Frontend/VerifyDiagnosticConsumer.cpp +++ cfe/trunk/lib/Frontend/VerifyDiagnosticConsumer.cpp @@ -80,7 +80,7 @@ VerifyFileTracker(VerifyDiagnosticConsumer &Verify, SourceManager &SM) : Verify(Verify), SM(SM) {} - /// \brief Hook into the preprocessor and update the list of parsed + /// Hook into the preprocessor and update the list of parsed /// files when the preprocessor indicates a new file is entered. void FileChanged(SourceLocation Loc, FileChangeReason Reason, SrcMgr::CharacteristicKind FileType, @@ -656,7 +656,7 @@ } #ifndef NDEBUG -/// \brief Lex the specified source file to determine whether it contains +/// Lex the specified source file to determine whether it contains /// any expected-* directives. As a Lexer is used rather than a full-blown /// Preprocessor, directives inside skipped #if blocks will still be found. /// @@ -694,7 +694,7 @@ } #endif // !NDEBUG -/// \brief Takes a list of diagnostics that have been generated but not matched +/// Takes a list of diagnostics that have been generated but not matched /// by an expected-* directive and produces a diagnostic to the user from this. static unsigned PrintUnexpected(DiagnosticsEngine &Diags, SourceManager *SourceMgr, const_diag_iterator diag_begin, @@ -722,7 +722,7 @@ return std::distance(diag_begin, diag_end); } -/// \brief Takes a list of diagnostics that were expected to have been generated +/// Takes a list of diagnostics that were expected to have been generated /// but were not and produces a diagnostic to the user from this. static unsigned PrintExpected(DiagnosticsEngine &Diags, SourceManager &SourceMgr, @@ -753,7 +753,7 @@ return DL.size(); } -/// \brief Determine whether two source locations come from the same file. +/// Determine whether two source locations come from the same file. static bool IsFromSameFile(SourceManager &SM, SourceLocation DirectiveLoc, SourceLocation DiagnosticLoc) { while (DiagnosticLoc.isMacroID()) Index: cfe/trunk/lib/Headers/__wmmintrin_aes.h =================================================================== --- cfe/trunk/lib/Headers/__wmmintrin_aes.h +++ cfe/trunk/lib/Headers/__wmmintrin_aes.h @@ -28,7 +28,7 @@ /* Define the default attributes for the functions in this file. */ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("aes"))) -/// \brief Performs a single round of AES encryption using the Equivalent +/// Performs a single round of AES encryption using the Equivalent /// Inverse Cipher, transforming the state value from the first source /// operand using a 128-bit round key value contained in the second source /// operand, and writes the result to the destination. @@ -48,7 +48,7 @@ return (__m128i)__builtin_ia32_aesenc128((__v2di)__V, (__v2di)__R); } -/// \brief Performs the final round of AES encryption using the Equivalent +/// Performs the final round of AES encryption using the Equivalent /// Inverse Cipher, transforming the state value from the first source /// operand using a 128-bit round key value contained in the second source /// operand, and writes the result to the destination. @@ -68,7 +68,7 @@ return (__m128i)__builtin_ia32_aesenclast128((__v2di)__V, (__v2di)__R); } -/// \brief Performs a single round of AES decryption using the Equivalent +/// Performs a single round of AES decryption using the Equivalent /// Inverse Cipher, transforming the state value from the first source /// operand using a 128-bit round key value contained in the second source /// operand, and writes the result to the destination. @@ -88,7 +88,7 @@ return (__m128i)__builtin_ia32_aesdec128((__v2di)__V, (__v2di)__R); } -/// \brief Performs the final round of AES decryption using the Equivalent +/// Performs the final round of AES decryption using the Equivalent /// Inverse Cipher, transforming the state value from the first source /// operand using a 128-bit round key value contained in the second source /// operand, and writes the result to the destination. @@ -108,7 +108,7 @@ return (__m128i)__builtin_ia32_aesdeclast128((__v2di)__V, (__v2di)__R); } -/// \brief Applies the AES InvMixColumns() transformation to an expanded key +/// Applies the AES InvMixColumns() transformation to an expanded key /// contained in the source operand, and writes the result to the /// destination. /// @@ -125,7 +125,7 @@ return (__m128i)__builtin_ia32_aesimc128((__v2di)__V); } -/// \brief Generates a round key for AES encryption, operating on 128-bit data +/// Generates a round key for AES encryption, operating on 128-bit data /// specified in the first source operand and using an 8-bit round constant /// specified by the second source operand, and writes the result to the /// destination. Index: cfe/trunk/lib/Headers/__wmmintrin_pclmul.h =================================================================== --- cfe/trunk/lib/Headers/__wmmintrin_pclmul.h +++ cfe/trunk/lib/Headers/__wmmintrin_pclmul.h @@ -23,7 +23,7 @@ #ifndef __WMMINTRIN_PCLMUL_H #define __WMMINTRIN_PCLMUL_H -/// \brief Multiplies two 64-bit integer values, which are selected from source +/// Multiplies two 64-bit integer values, which are selected from source /// operands using the immediate-value operand. The multiplication is a /// carry-less multiplication, and the 128-bit integer product is stored in /// the destination. Index: cfe/trunk/lib/Headers/ammintrin.h =================================================================== --- cfe/trunk/lib/Headers/ammintrin.h +++ cfe/trunk/lib/Headers/ammintrin.h @@ -29,7 +29,7 @@ /* Define the default attributes for the functions in this file. */ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("sse4a"))) -/// \brief Extracts the specified bits from the lower 64 bits of the 128-bit +/// Extracts the specified bits from the lower 64 bits of the 128-bit /// integer vector operand at the index \a idx and of the length \a len. /// /// \headerfile <x86intrin.h> @@ -57,7 +57,7 @@ ((__m128i)__builtin_ia32_extrqi((__v2di)(__m128i)(x), \ (char)(len), (char)(idx))) -/// \brief Extracts the specified bits from the lower 64 bits of the 128-bit +/// Extracts the specified bits from the lower 64 bits of the 128-bit /// integer vector operand at the index and of the length specified by /// \a __y. /// @@ -82,7 +82,7 @@ return (__m128i)__builtin_ia32_extrq((__v2di)__x, (__v16qi)__y); } -/// \brief Inserts bits of a specified length from the source integer vector +/// Inserts bits of a specified length from the source integer vector /// \a y into the lower 64 bits of the destination integer vector \a x at /// the index \a idx and of the length \a len. /// @@ -120,7 +120,7 @@ (__v2di)(__m128i)(y), \ (char)(len), (char)(idx))) -/// \brief Inserts bits of a specified length from the source integer vector +/// Inserts bits of a specified length from the source integer vector /// \a __y into the lower 64 bits of the destination integer vector \a __x /// at the index and of the length specified by \a __y. /// @@ -152,7 +152,7 @@ return (__m128i)__builtin_ia32_insertq((__v2di)__x, (__v2di)__y); } -/// \brief Stores a 64-bit double-precision value in a 64-bit memory location. +/// Stores a 64-bit double-precision value in a 64-bit memory location. /// To minimize caching, the data is flagged as non-temporal (unlikely to be /// used again soon). /// @@ -170,7 +170,7 @@ __builtin_ia32_movntsd(__p, (__v2df)__a); } -/// \brief Stores a 32-bit single-precision floating-point value in a 32-bit +/// Stores a 32-bit single-precision floating-point value in a 32-bit /// memory location. To minimize caching, the data is flagged as /// non-temporal (unlikely to be used again soon). /// Index: cfe/trunk/lib/Headers/avx512fintrin.h =================================================================== --- cfe/trunk/lib/Headers/avx512fintrin.h +++ cfe/trunk/lib/Headers/avx512fintrin.h @@ -520,7 +520,7 @@ return (int)__a; } -/// \brief Constructs a 512-bit floating-point vector of [8 x double] from a +/// Constructs a 512-bit floating-point vector of [8 x double] from a /// 128-bit floating-point vector of [2 x double]. The lower 128 bits /// contain the value of the source vector. The upper 384 bits are set /// to zero. @@ -539,7 +539,7 @@ return __builtin_shufflevector((__v2df)__a, (__v2df)_mm_setzero_pd(), 0, 1, 2, 3, 2, 3, 2, 3); } -/// \brief Constructs a 512-bit floating-point vector of [8 x double] from a +/// Constructs a 512-bit floating-point vector of [8 x double] from a /// 256-bit floating-point vector of [4 x double]. The lower 256 bits /// contain the value of the source vector. The upper 256 bits are set /// to zero. @@ -558,7 +558,7 @@ return __builtin_shufflevector((__v4df)__a, (__v4df)_mm256_setzero_pd(), 0, 1, 2, 3, 4, 5, 6, 7); } -/// \brief Constructs a 512-bit floating-point vector of [16 x float] from a +/// Constructs a 512-bit floating-point vector of [16 x float] from a /// 128-bit floating-point vector of [4 x float]. The lower 128 bits contain /// the value of the source vector. The upper 384 bits are set to zero. /// @@ -576,7 +576,7 @@ return __builtin_shufflevector((__v4sf)__a, (__v4sf)_mm_setzero_ps(), 0, 1, 2, 3, 4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, 7); } -/// \brief Constructs a 512-bit floating-point vector of [16 x float] from a +/// Constructs a 512-bit floating-point vector of [16 x float] from a /// 256-bit floating-point vector of [8 x float]. The lower 256 bits contain /// the value of the source vector. The upper 256 bits are set to zero. /// @@ -594,7 +594,7 @@ return __builtin_shufflevector((__v8sf)__a, (__v8sf)_mm256_setzero_ps(), 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); } -/// \brief Constructs a 512-bit integer vector from a 128-bit integer vector. +/// Constructs a 512-bit integer vector from a 128-bit integer vector. /// The lower 128 bits contain the value of the source vector. The upper /// 384 bits are set to zero. /// @@ -612,7 +612,7 @@ return __builtin_shufflevector((__v2di)__a, (__v2di)_mm_setzero_si128(), 0, 1, 2, 3, 2, 3, 2, 3); } -/// \brief Constructs a 512-bit integer vector from a 256-bit integer vector. +/// Constructs a 512-bit integer vector from a 256-bit integer vector. /// The lower 256 bits contain the value of the source vector. The upper /// 256 bits are set to zero. /// Index: cfe/trunk/lib/Headers/avxintrin.h =================================================================== --- cfe/trunk/lib/Headers/avxintrin.h +++ cfe/trunk/lib/Headers/avxintrin.h @@ -53,7 +53,7 @@ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx"))) /* Arithmetic */ -/// \brief Adds two 256-bit vectors of [4 x double]. +/// Adds two 256-bit vectors of [4 x double]. /// /// \headerfile <x86intrin.h> /// @@ -71,7 +71,7 @@ return (__m256d)((__v4df)__a+(__v4df)__b); } -/// \brief Adds two 256-bit vectors of [8 x float]. +/// Adds two 256-bit vectors of [8 x float]. /// /// \headerfile <x86intrin.h> /// @@ -89,7 +89,7 @@ return (__m256)((__v8sf)__a+(__v8sf)__b); } -/// \brief Subtracts two 256-bit vectors of [4 x double]. +/// Subtracts two 256-bit vectors of [4 x double]. /// /// \headerfile <x86intrin.h> /// @@ -107,7 +107,7 @@ return (__m256d)((__v4df)__a-(__v4df)__b); } -/// \brief Subtracts two 256-bit vectors of [8 x float]. +/// Subtracts two 256-bit vectors of [8 x float]. /// /// \headerfile <x86intrin.h> /// @@ -125,7 +125,7 @@ return (__m256)((__v8sf)__a-(__v8sf)__b); } -/// \brief Adds the even-indexed values and subtracts the odd-indexed values of +/// Adds the even-indexed values and subtracts the odd-indexed values of /// two 256-bit vectors of [4 x double]. /// /// \headerfile <x86intrin.h> @@ -144,7 +144,7 @@ return (__m256d)__builtin_ia32_addsubpd256((__v4df)__a, (__v4df)__b); } -/// \brief Adds the even-indexed values and subtracts the odd-indexed values of +/// Adds the even-indexed values and subtracts the odd-indexed values of /// two 256-bit vectors of [8 x float]. /// /// \headerfile <x86intrin.h> @@ -163,7 +163,7 @@ return (__m256)__builtin_ia32_addsubps256((__v8sf)__a, (__v8sf)__b); } -/// \brief Divides two 256-bit vectors of [4 x double]. +/// Divides two 256-bit vectors of [4 x double]. /// /// \headerfile <x86intrin.h> /// @@ -181,7 +181,7 @@ return (__m256d)((__v4df)__a/(__v4df)__b); } -/// \brief Divides two 256-bit vectors of [8 x float]. +/// Divides two 256-bit vectors of [8 x float]. /// /// \headerfile <x86intrin.h> /// @@ -199,7 +199,7 @@ return (__m256)((__v8sf)__a/(__v8sf)__b); } -/// \brief Compares two 256-bit vectors of [4 x double] and returns the greater +/// Compares two 256-bit vectors of [4 x double] and returns the greater /// of each pair of values. /// /// \headerfile <x86intrin.h> @@ -218,7 +218,7 @@ return (__m256d)__builtin_ia32_maxpd256((__v4df)__a, (__v4df)__b); } -/// \brief Compares two 256-bit vectors of [8 x float] and returns the greater +/// Compares two 256-bit vectors of [8 x float] and returns the greater /// of each pair of values. /// /// \headerfile <x86intrin.h> @@ -237,7 +237,7 @@ return (__m256)__builtin_ia32_maxps256((__v8sf)__a, (__v8sf)__b); } -/// \brief Compares two 256-bit vectors of [4 x double] and returns the lesser +/// Compares two 256-bit vectors of [4 x double] and returns the lesser /// of each pair of values. /// /// \headerfile <x86intrin.h> @@ -256,7 +256,7 @@ return (__m256d)__builtin_ia32_minpd256((__v4df)__a, (__v4df)__b); } -/// \brief Compares two 256-bit vectors of [8 x float] and returns the lesser +/// Compares two 256-bit vectors of [8 x float] and returns the lesser /// of each pair of values. /// /// \headerfile <x86intrin.h> @@ -275,7 +275,7 @@ return (__m256)__builtin_ia32_minps256((__v8sf)__a, (__v8sf)__b); } -/// \brief Multiplies two 256-bit vectors of [4 x double]. +/// Multiplies two 256-bit vectors of [4 x double]. /// /// \headerfile <x86intrin.h> /// @@ -293,7 +293,7 @@ return (__m256d)((__v4df)__a * (__v4df)__b); } -/// \brief Multiplies two 256-bit vectors of [8 x float]. +/// Multiplies two 256-bit vectors of [8 x float]. /// /// \headerfile <x86intrin.h> /// @@ -311,7 +311,7 @@ return (__m256)((__v8sf)__a * (__v8sf)__b); } -/// \brief Calculates the square roots of the values in a 256-bit vector of +/// Calculates the square roots of the values in a 256-bit vector of /// [4 x double]. /// /// \headerfile <x86intrin.h> @@ -328,7 +328,7 @@ return (__m256d)__builtin_ia32_sqrtpd256((__v4df)__a); } -/// \brief Calculates the square roots of the values in a 256-bit vector of +/// Calculates the square roots of the values in a 256-bit vector of /// [8 x float]. /// /// \headerfile <x86intrin.h> @@ -345,7 +345,7 @@ return (__m256)__builtin_ia32_sqrtps256((__v8sf)__a); } -/// \brief Calculates the reciprocal square roots of the values in a 256-bit +/// Calculates the reciprocal square roots of the values in a 256-bit /// vector of [8 x float]. /// /// \headerfile <x86intrin.h> @@ -362,7 +362,7 @@ return (__m256)__builtin_ia32_rsqrtps256((__v8sf)__a); } -/// \brief Calculates the reciprocals of the values in a 256-bit vector of +/// Calculates the reciprocals of the values in a 256-bit vector of /// [8 x float]. /// /// \headerfile <x86intrin.h> @@ -379,7 +379,7 @@ return (__m256)__builtin_ia32_rcpps256((__v8sf)__a); } -/// \brief Rounds the values in a 256-bit vector of [4 x double] as specified +/// Rounds the values in a 256-bit vector of [4 x double] as specified /// by the byte operand. The source values are rounded to integer values and /// returned as 64-bit double-precision floating-point values. /// @@ -411,7 +411,7 @@ #define _mm256_round_pd(V, M) __extension__ ({ \ (__m256d)__builtin_ia32_roundpd256((__v4df)(__m256d)(V), (M)); }) -/// \brief Rounds the values stored in a 256-bit vector of [8 x float] as +/// Rounds the values stored in a 256-bit vector of [8 x float] as /// specified by the byte operand. The source values are rounded to integer /// values and returned as floating-point values. /// @@ -443,7 +443,7 @@ #define _mm256_round_ps(V, M) __extension__ ({ \ (__m256)__builtin_ia32_roundps256((__v8sf)(__m256)(V), (M)); }) -/// \brief Rounds up the values stored in a 256-bit vector of [4 x double]. The +/// Rounds up the values stored in a 256-bit vector of [4 x double]. The /// source values are rounded up to integer values and returned as 64-bit /// double-precision floating-point values. /// @@ -460,7 +460,7 @@ /// \returns A 256-bit vector of [4 x double] containing the rounded up values. #define _mm256_ceil_pd(V) _mm256_round_pd((V), _MM_FROUND_CEIL) -/// \brief Rounds down the values stored in a 256-bit vector of [4 x double]. +/// Rounds down the values stored in a 256-bit vector of [4 x double]. /// The source values are rounded down to integer values and returned as /// 64-bit double-precision floating-point values. /// @@ -478,7 +478,7 @@ /// values. #define _mm256_floor_pd(V) _mm256_round_pd((V), _MM_FROUND_FLOOR) -/// \brief Rounds up the values stored in a 256-bit vector of [8 x float]. The +/// Rounds up the values stored in a 256-bit vector of [8 x float]. The /// source values are rounded up to integer values and returned as /// floating-point values. /// @@ -495,7 +495,7 @@ /// \returns A 256-bit vector of [8 x float] containing the rounded up values. #define _mm256_ceil_ps(V) _mm256_round_ps((V), _MM_FROUND_CEIL) -/// \brief Rounds down the values stored in a 256-bit vector of [8 x float]. The +/// Rounds down the values stored in a 256-bit vector of [8 x float]. The /// source values are rounded down to integer values and returned as /// floating-point values. /// @@ -513,7 +513,7 @@ #define _mm256_floor_ps(V) _mm256_round_ps((V), _MM_FROUND_FLOOR) /* Logical */ -/// \brief Performs a bitwise AND of two 256-bit vectors of [4 x double]. +/// Performs a bitwise AND of two 256-bit vectors of [4 x double]. /// /// \headerfile <x86intrin.h> /// @@ -531,7 +531,7 @@ return (__m256d)((__v4du)__a & (__v4du)__b); } -/// \brief Performs a bitwise AND of two 256-bit vectors of [8 x float]. +/// Performs a bitwise AND of two 256-bit vectors of [8 x float]. /// /// \headerfile <x86intrin.h> /// @@ -549,7 +549,7 @@ return (__m256)((__v8su)__a & (__v8su)__b); } -/// \brief Performs a bitwise AND of two 256-bit vectors of [4 x double], using +/// Performs a bitwise AND of two 256-bit vectors of [4 x double], using /// the one's complement of the values contained in the first source operand. /// /// \headerfile <x86intrin.h> @@ -570,7 +570,7 @@ return (__m256d)(~(__v4du)__a & (__v4du)__b); } -/// \brief Performs a bitwise AND of two 256-bit vectors of [8 x float], using +/// Performs a bitwise AND of two 256-bit vectors of [8 x float], using /// the one's complement of the values contained in the first source operand. /// /// \headerfile <x86intrin.h> @@ -591,7 +591,7 @@ return (__m256)(~(__v8su)__a & (__v8su)__b); } -/// \brief Performs a bitwise OR of two 256-bit vectors of [4 x double]. +/// Performs a bitwise OR of two 256-bit vectors of [4 x double]. /// /// \headerfile <x86intrin.h> /// @@ -609,7 +609,7 @@ return (__m256d)((__v4du)__a | (__v4du)__b); } -/// \brief Performs a bitwise OR of two 256-bit vectors of [8 x float]. +/// Performs a bitwise OR of two 256-bit vectors of [8 x float]. /// /// \headerfile <x86intrin.h> /// @@ -627,7 +627,7 @@ return (__m256)((__v8su)__a | (__v8su)__b); } -/// \brief Performs a bitwise XOR of two 256-bit vectors of [4 x double]. +/// Performs a bitwise XOR of two 256-bit vectors of [4 x double]. /// /// \headerfile <x86intrin.h> /// @@ -645,7 +645,7 @@ return (__m256d)((__v4du)__a ^ (__v4du)__b); } -/// \brief Performs a bitwise XOR of two 256-bit vectors of [8 x float]. +/// Performs a bitwise XOR of two 256-bit vectors of [8 x float]. /// /// \headerfile <x86intrin.h> /// @@ -664,7 +664,7 @@ } /* Horizontal arithmetic */ -/// \brief Horizontally adds the adjacent pairs of values contained in two +/// Horizontally adds the adjacent pairs of values contained in two /// 256-bit vectors of [4 x double]. /// /// \headerfile <x86intrin.h> @@ -687,7 +687,7 @@ return (__m256d)__builtin_ia32_haddpd256((__v4df)__a, (__v4df)__b); } -/// \brief Horizontally adds the adjacent pairs of values contained in two +/// Horizontally adds the adjacent pairs of values contained in two /// 256-bit vectors of [8 x float]. /// /// \headerfile <x86intrin.h> @@ -710,7 +710,7 @@ return (__m256)__builtin_ia32_haddps256((__v8sf)__a, (__v8sf)__b); } -/// \brief Horizontally subtracts the adjacent pairs of values contained in two +/// Horizontally subtracts the adjacent pairs of values contained in two /// 256-bit vectors of [4 x double]. /// /// \headerfile <x86intrin.h> @@ -733,7 +733,7 @@ return (__m256d)__builtin_ia32_hsubpd256((__v4df)__a, (__v4df)__b); } -/// \brief Horizontally subtracts the adjacent pairs of values contained in two +/// Horizontally subtracts the adjacent pairs of values contained in two /// 256-bit vectors of [8 x float]. /// /// \headerfile <x86intrin.h> @@ -757,7 +757,7 @@ } /* Vector permutations */ -/// \brief Copies the values in a 128-bit vector of [2 x double] as specified +/// Copies the values in a 128-bit vector of [2 x double] as specified /// by the 128-bit integer vector operand. /// /// \headerfile <x86intrin.h> @@ -786,7 +786,7 @@ return (__m128d)__builtin_ia32_vpermilvarpd((__v2df)__a, (__v2di)__c); } -/// \brief Copies the values in a 256-bit vector of [4 x double] as specified +/// Copies the values in a 256-bit vector of [4 x double] as specified /// by the 256-bit integer vector operand. /// /// \headerfile <x86intrin.h> @@ -825,7 +825,7 @@ return (__m256d)__builtin_ia32_vpermilvarpd256((__v4df)__a, (__v4di)__c); } -/// \brief Copies the values stored in a 128-bit vector of [4 x float] as +/// Copies the values stored in a 128-bit vector of [4 x float] as /// specified by the 128-bit integer vector operand. /// \headerfile <x86intrin.h> /// @@ -879,7 +879,7 @@ return (__m128)__builtin_ia32_vpermilvarps((__v4sf)__a, (__v4si)__c); } -/// \brief Copies the values stored in a 256-bit vector of [8 x float] as +/// Copies the values stored in a 256-bit vector of [8 x float] as /// specified by the 256-bit integer vector operand. /// /// \headerfile <x86intrin.h> @@ -970,7 +970,7 @@ return (__m256)__builtin_ia32_vpermilvarps256((__v8sf)__a, (__v8si)__c); } -/// \brief Copies the values in a 128-bit vector of [2 x double] as specified +/// Copies the values in a 128-bit vector of [2 x double] as specified /// by the immediate integer operand. /// /// \headerfile <x86intrin.h> @@ -1002,7 +1002,7 @@ (__v2df)_mm_undefined_pd(), \ ((C) >> 0) & 0x1, ((C) >> 1) & 0x1); }) -/// \brief Copies the values in a 256-bit vector of [4 x double] as specified by +/// Copies the values in a 256-bit vector of [4 x double] as specified by /// the immediate integer operand. /// /// \headerfile <x86intrin.h> @@ -1047,7 +1047,7 @@ 2 + (((C) >> 2) & 0x1), \ 2 + (((C) >> 3) & 0x1)); }) -/// \brief Copies the values in a 128-bit vector of [4 x float] as specified by +/// Copies the values in a 128-bit vector of [4 x float] as specified by /// the immediate integer operand. /// /// \headerfile <x86intrin.h> @@ -1106,7 +1106,7 @@ ((C) >> 0) & 0x3, ((C) >> 2) & 0x3, \ ((C) >> 4) & 0x3, ((C) >> 6) & 0x3); }) -/// \brief Copies the values in a 256-bit vector of [8 x float] as specified by +/// Copies the values in a 256-bit vector of [8 x float] as specified by /// the immediate integer operand. /// /// \headerfile <x86intrin.h> @@ -1207,7 +1207,7 @@ 4 + (((C) >> 4) & 0x3), \ 4 + (((C) >> 6) & 0x3)); }) -/// \brief Permutes 128-bit data values stored in two 256-bit vectors of +/// Permutes 128-bit data values stored in two 256-bit vectors of /// [4 x double], as specified by the immediate integer operand. /// /// \headerfile <x86intrin.h> @@ -1248,7 +1248,7 @@ (__m256d)__builtin_ia32_vperm2f128_pd256((__v4df)(__m256d)(V1), \ (__v4df)(__m256d)(V2), (M)); }) -/// \brief Permutes 128-bit data values stored in two 256-bit vectors of +/// Permutes 128-bit data values stored in two 256-bit vectors of /// [8 x float], as specified by the immediate integer operand. /// /// \headerfile <x86intrin.h> @@ -1289,7 +1289,7 @@ (__m256)__builtin_ia32_vperm2f128_ps256((__v8sf)(__m256)(V1), \ (__v8sf)(__m256)(V2), (M)); }) -/// \brief Permutes 128-bit data values stored in two 256-bit integer vectors, +/// Permutes 128-bit data values stored in two 256-bit integer vectors, /// as specified by the immediate integer operand. /// /// \headerfile <x86intrin.h> @@ -1330,7 +1330,7 @@ (__v8si)(__m256i)(V2), (M)); }) /* Vector Blend */ -/// \brief Merges 64-bit double-precision data values stored in either of the +/// Merges 64-bit double-precision data values stored in either of the /// two 256-bit vectors of [4 x double], as specified by the immediate /// integer operand. /// @@ -1362,7 +1362,7 @@ (((M) & 0x04) ? 6 : 2), \ (((M) & 0x08) ? 7 : 3)); }) -/// \brief Merges 32-bit single-precision data values stored in either of the +/// Merges 32-bit single-precision data values stored in either of the /// two 256-bit vectors of [8 x float], as specified by the immediate /// integer operand. /// @@ -1398,7 +1398,7 @@ (((M) & 0x40) ? 14 : 6), \ (((M) & 0x80) ? 15 : 7)); }) -/// \brief Merges 64-bit double-precision data values stored in either of the +/// Merges 64-bit double-precision data values stored in either of the /// two 256-bit vectors of [4 x double], as specified by the 256-bit vector /// operand. /// @@ -1426,7 +1426,7 @@ (__v4df)__a, (__v4df)__b, (__v4df)__c); } -/// \brief Merges 32-bit single-precision data values stored in either of the +/// Merges 32-bit single-precision data values stored in either of the /// two 256-bit vectors of [8 x float], as specified by the 256-bit vector /// operand. /// @@ -1455,7 +1455,7 @@ } /* Vector Dot Product */ -/// \brief Computes two dot products in parallel, using the lower and upper +/// Computes two dot products in parallel, using the lower and upper /// halves of two [8 x float] vectors as input to the two computations, and /// returning the two dot products in the lower and upper halves of the /// [8 x float] result. @@ -1497,7 +1497,7 @@ (__v8sf)(__m256)(V2), (M)); }) /* Vector shuffle */ -/// \brief Selects 8 float values from the 256-bit operands of [8 x float], as +/// Selects 8 float values from the 256-bit operands of [8 x float], as /// specified by the immediate value operand. /// /// The four selected elements in each operand are copied to the destination @@ -1558,7 +1558,7 @@ 12 + (((mask) >> 4) & 0x3), \ 12 + (((mask) >> 6) & 0x3)); }) -/// \brief Selects four double-precision values from the 256-bit operands of +/// Selects four double-precision values from the 256-bit operands of /// [4 x double], as specified by the immediate value operand. /// /// The selected elements from the first 256-bit operand are copied to bits @@ -1642,7 +1642,7 @@ #define _CMP_GT_OQ 0x1e /* Greater-than (ordered, non-signaling) */ #define _CMP_TRUE_US 0x1f /* True (unordered, signaling) */ -/// \brief Compares each of the corresponding double-precision values of two +/// Compares each of the corresponding double-precision values of two /// 128-bit vectors of [2 x double], using the operation specified by the /// immediate integer operand. /// @@ -1702,7 +1702,7 @@ (__m128d)__builtin_ia32_cmppd((__v2df)(__m128d)(a), \ (__v2df)(__m128d)(b), (c)); }) -/// \brief Compares each of the corresponding values of two 128-bit vectors of +/// Compares each of the corresponding values of two 128-bit vectors of /// [4 x float], using the operation specified by the immediate integer /// operand. /// @@ -1762,7 +1762,7 @@ (__m128)__builtin_ia32_cmpps((__v4sf)(__m128)(a), \ (__v4sf)(__m128)(b), (c)); }) -/// \brief Compares each of the corresponding double-precision values of two +/// Compares each of the corresponding double-precision values of two /// 256-bit vectors of [4 x double], using the operation specified by the /// immediate integer operand. /// @@ -1822,7 +1822,7 @@ (__m256d)__builtin_ia32_cmppd256((__v4df)(__m256d)(a), \ (__v4df)(__m256d)(b), (c)); }) -/// \brief Compares each of the corresponding values of two 256-bit vectors of +/// Compares each of the corresponding values of two 256-bit vectors of /// [8 x float], using the operation specified by the immediate integer /// operand. /// @@ -1882,7 +1882,7 @@ (__m256)__builtin_ia32_cmpps256((__v8sf)(__m256)(a), \ (__v8sf)(__m256)(b), (c)); }) -/// \brief Compares each of the corresponding scalar double-precision values of +/// Compares each of the corresponding scalar double-precision values of /// two 128-bit vectors of [2 x double], using the operation specified by the /// immediate integer operand. /// @@ -1941,7 +1941,7 @@ (__m128d)__builtin_ia32_cmpsd((__v2df)(__m128d)(a), \ (__v2df)(__m128d)(b), (c)); }) -/// \brief Compares each of the corresponding scalar values of two 128-bit +/// Compares each of the corresponding scalar values of two 128-bit /// vectors of [4 x float], using the operation specified by the immediate /// integer operand. /// @@ -2000,7 +2000,7 @@ (__m128)__builtin_ia32_cmpss((__v4sf)(__m128)(a), \ (__v4sf)(__m128)(b), (c)); }) -/// \brief Takes a [8 x i32] vector and returns the vector element value +/// Takes a [8 x i32] vector and returns the vector element value /// indexed by the immediate constant operand. /// /// \headerfile <x86intrin.h> @@ -2022,7 +2022,7 @@ return __b[__imm & 7]; } -/// \brief Takes a [16 x i16] vector and returns the vector element value +/// Takes a [16 x i16] vector and returns the vector element value /// indexed by the immediate constant operand. /// /// \headerfile <x86intrin.h> @@ -2044,7 +2044,7 @@ return (unsigned short)__b[__imm & 15]; } -/// \brief Takes a [32 x i8] vector and returns the vector element value +/// Takes a [32 x i8] vector and returns the vector element value /// indexed by the immediate constant operand. /// /// \headerfile <x86intrin.h> @@ -2067,7 +2067,7 @@ } #ifdef __x86_64__ -/// \brief Takes a [4 x i64] vector and returns the vector element value +/// Takes a [4 x i64] vector and returns the vector element value /// indexed by the immediate constant operand. /// /// \headerfile <x86intrin.h> @@ -2090,7 +2090,7 @@ } #endif -/// \brief Takes a [8 x i32] vector and replaces the vector element value +/// Takes a [8 x i32] vector and replaces the vector element value /// indexed by the immediate constant operand by a new value. Returns the /// modified vector. /// @@ -2117,7 +2117,7 @@ } -/// \brief Takes a [16 x i16] vector and replaces the vector element value +/// Takes a [16 x i16] vector and replaces the vector element value /// indexed by the immediate constant operand with a new value. Returns the /// modified vector. /// @@ -2143,7 +2143,7 @@ return (__m256i)__c; } -/// \brief Takes a [32 x i8] vector and replaces the vector element value +/// Takes a [32 x i8] vector and replaces the vector element value /// indexed by the immediate constant operand with a new value. Returns the /// modified vector. /// @@ -2170,7 +2170,7 @@ } #ifdef __x86_64__ -/// \brief Takes a [4 x i64] vector and replaces the vector element value +/// Takes a [4 x i64] vector and replaces the vector element value /// indexed by the immediate constant operand with a new value. Returns the /// modified vector. /// @@ -2198,7 +2198,7 @@ #endif /* Conversion */ -/// \brief Converts a vector of [4 x i32] into a vector of [4 x double]. +/// Converts a vector of [4 x i32] into a vector of [4 x double]. /// /// \headerfile <x86intrin.h> /// @@ -2213,7 +2213,7 @@ return (__m256d)__builtin_convertvector((__v4si)__a, __v4df); } -/// \brief Converts a vector of [8 x i32] into a vector of [8 x float]. +/// Converts a vector of [8 x i32] into a vector of [8 x float]. /// /// \headerfile <x86intrin.h> /// @@ -2228,7 +2228,7 @@ return (__m256)__builtin_ia32_cvtdq2ps256((__v8si) __a); } -/// \brief Converts a 256-bit vector of [4 x double] into a 128-bit vector of +/// Converts a 256-bit vector of [4 x double] into a 128-bit vector of /// [4 x float]. /// /// \headerfile <x86intrin.h> @@ -2244,7 +2244,7 @@ return (__m128)__builtin_ia32_cvtpd2ps256((__v4df) __a); } -/// \brief Converts a vector of [8 x float] into a vector of [8 x i32]. +/// Converts a vector of [8 x float] into a vector of [8 x i32]. /// /// \headerfile <x86intrin.h> /// @@ -2259,7 +2259,7 @@ return (__m256i)__builtin_ia32_cvtps2dq256((__v8sf) __a); } -/// \brief Converts a 128-bit vector of [4 x float] into a 256-bit vector of [4 +/// Converts a 128-bit vector of [4 x float] into a 256-bit vector of [4 /// x double]. /// /// \headerfile <x86intrin.h> @@ -2275,7 +2275,7 @@ return (__m256d)__builtin_convertvector((__v4sf)__a, __v4df); } -/// \brief Converts a 256-bit vector of [4 x double] into a 128-bit vector of [4 +/// Converts a 256-bit vector of [4 x double] into a 128-bit vector of [4 /// x i32], truncating the result by rounding towards zero when it is /// inexact. /// @@ -2292,7 +2292,7 @@ return (__m128i)__builtin_ia32_cvttpd2dq256((__v4df) __a); } -/// \brief Converts a 256-bit vector of [4 x double] into a 128-bit vector of [4 +/// Converts a 256-bit vector of [4 x double] into a 128-bit vector of [4 /// x i32]. When a conversion is inexact, the value returned is rounded /// according to the rounding control bits in the MXCSR register. /// @@ -2309,7 +2309,7 @@ return (__m128i)__builtin_ia32_cvtpd2dq256((__v4df) __a); } -/// \brief Converts a vector of [8 x float] into a vector of [8 x i32], +/// Converts a vector of [8 x float] into a vector of [8 x i32], /// truncating the result by rounding towards zero when it is inexact. /// /// \headerfile <x86intrin.h> @@ -2325,7 +2325,7 @@ return (__m256i)__builtin_ia32_cvttps2dq256((__v8sf) __a); } -/// \brief Returns the first element of the input vector of [4 x double]. +/// Returns the first element of the input vector of [4 x double]. /// /// \headerfile <avxintrin.h> /// @@ -2341,7 +2341,7 @@ return __a[0]; } -/// \brief Returns the first element of the input vector of [8 x i32]. +/// Returns the first element of the input vector of [8 x i32]. /// /// \headerfile <avxintrin.h> /// @@ -2358,7 +2358,7 @@ return __b[0]; } -/// \brief Returns the first element of the input vector of [8 x float]. +/// Returns the first element of the input vector of [8 x float]. /// /// \headerfile <avxintrin.h> /// @@ -2375,7 +2375,7 @@ } /* Vector replicate */ -/// \brief Moves and duplicates odd-indexed values from a 256-bit vector of +/// Moves and duplicates odd-indexed values from a 256-bit vector of /// [8 x float] to float values in a 256-bit vector of [8 x float]. /// /// \headerfile <x86intrin.h> @@ -2400,7 +2400,7 @@ return __builtin_shufflevector((__v8sf)__a, (__v8sf)__a, 1, 1, 3, 3, 5, 5, 7, 7); } -/// \brief Moves and duplicates even-indexed values from a 256-bit vector of +/// Moves and duplicates even-indexed values from a 256-bit vector of /// [8 x float] to float values in a 256-bit vector of [8 x float]. /// /// \headerfile <x86intrin.h> @@ -2425,7 +2425,7 @@ return __builtin_shufflevector((__v8sf)__a, (__v8sf)__a, 0, 0, 2, 2, 4, 4, 6, 6); } -/// \brief Moves and duplicates double-precision floating point values from a +/// Moves and duplicates double-precision floating point values from a /// 256-bit vector of [4 x double] to double-precision values in a 256-bit /// vector of [4 x double]. /// @@ -2448,7 +2448,7 @@ } /* Unpack and Interleave */ -/// \brief Unpacks the odd-indexed vector elements from two 256-bit vectors of +/// Unpacks the odd-indexed vector elements from two 256-bit vectors of /// [4 x double] and interleaves them into a 256-bit vector of [4 x double]. /// /// \headerfile <x86intrin.h> @@ -2470,7 +2470,7 @@ return __builtin_shufflevector((__v4df)__a, (__v4df)__b, 1, 5, 1+2, 5+2); } -/// \brief Unpacks the even-indexed vector elements from two 256-bit vectors of +/// Unpacks the even-indexed vector elements from two 256-bit vectors of /// [4 x double] and interleaves them into a 256-bit vector of [4 x double]. /// /// \headerfile <x86intrin.h> @@ -2492,7 +2492,7 @@ return __builtin_shufflevector((__v4df)__a, (__v4df)__b, 0, 4, 0+2, 4+2); } -/// \brief Unpacks the 32-bit vector elements 2, 3, 6 and 7 from each of the +/// Unpacks the 32-bit vector elements 2, 3, 6 and 7 from each of the /// two 256-bit vectors of [8 x float] and interleaves them into a 256-bit /// vector of [8 x float]. /// @@ -2519,7 +2519,7 @@ return __builtin_shufflevector((__v8sf)__a, (__v8sf)__b, 2, 10, 2+1, 10+1, 6, 14, 6+1, 14+1); } -/// \brief Unpacks the 32-bit vector elements 0, 1, 4 and 5 from each of the +/// Unpacks the 32-bit vector elements 0, 1, 4 and 5 from each of the /// two 256-bit vectors of [8 x float] and interleaves them into a 256-bit /// vector of [8 x float]. /// @@ -2547,7 +2547,7 @@ } /* Bit Test */ -/// \brief Given two 128-bit floating-point vectors of [2 x double], perform an +/// Given two 128-bit floating-point vectors of [2 x double], perform an /// element-by-element comparison of the double-precision element in the /// first source vector and the corresponding element in the second source /// vector. @@ -2576,7 +2576,7 @@ return __builtin_ia32_vtestzpd((__v2df)__a, (__v2df)__b); } -/// \brief Given two 128-bit floating-point vectors of [2 x double], perform an +/// Given two 128-bit floating-point vectors of [2 x double], perform an /// element-by-element comparison of the double-precision element in the /// first source vector and the corresponding element in the second source /// vector. @@ -2605,7 +2605,7 @@ return __builtin_ia32_vtestcpd((__v2df)__a, (__v2df)__b); } -/// \brief Given two 128-bit floating-point vectors of [2 x double], perform an +/// Given two 128-bit floating-point vectors of [2 x double], perform an /// element-by-element comparison of the double-precision element in the /// first source vector and the corresponding element in the second source /// vector. @@ -2635,7 +2635,7 @@ return __builtin_ia32_vtestnzcpd((__v2df)__a, (__v2df)__b); } -/// \brief Given two 128-bit floating-point vectors of [4 x float], perform an +/// Given two 128-bit floating-point vectors of [4 x float], perform an /// element-by-element comparison of the single-precision element in the /// first source vector and the corresponding element in the second source /// vector. @@ -2664,7 +2664,7 @@ return __builtin_ia32_vtestzps((__v4sf)__a, (__v4sf)__b); } -/// \brief Given two 128-bit floating-point vectors of [4 x float], perform an +/// Given two 128-bit floating-point vectors of [4 x float], perform an /// element-by-element comparison of the single-precision element in the /// first source vector and the corresponding element in the second source /// vector. @@ -2693,7 +2693,7 @@ return __builtin_ia32_vtestcps((__v4sf)__a, (__v4sf)__b); } -/// \brief Given two 128-bit floating-point vectors of [4 x float], perform an +/// Given two 128-bit floating-point vectors of [4 x float], perform an /// element-by-element comparison of the single-precision element in the /// first source vector and the corresponding element in the second source /// vector. @@ -2723,7 +2723,7 @@ return __builtin_ia32_vtestnzcps((__v4sf)__a, (__v4sf)__b); } -/// \brief Given two 256-bit floating-point vectors of [4 x double], perform an +/// Given two 256-bit floating-point vectors of [4 x double], perform an /// element-by-element comparison of the double-precision elements in the /// first source vector and the corresponding elements in the second source /// vector. @@ -2752,7 +2752,7 @@ return __builtin_ia32_vtestzpd256((__v4df)__a, (__v4df)__b); } -/// \brief Given two 256-bit floating-point vectors of [4 x double], perform an +/// Given two 256-bit floating-point vectors of [4 x double], perform an /// element-by-element comparison of the double-precision elements in the /// first source vector and the corresponding elements in the second source /// vector. @@ -2781,7 +2781,7 @@ return __builtin_ia32_vtestcpd256((__v4df)__a, (__v4df)__b); } -/// \brief Given two 256-bit floating-point vectors of [4 x double], perform an +/// Given two 256-bit floating-point vectors of [4 x double], perform an /// element-by-element comparison of the double-precision elements in the /// first source vector and the corresponding elements in the second source /// vector. @@ -2811,7 +2811,7 @@ return __builtin_ia32_vtestnzcpd256((__v4df)__a, (__v4df)__b); } -/// \brief Given two 256-bit floating-point vectors of [8 x float], perform an +/// Given two 256-bit floating-point vectors of [8 x float], perform an /// element-by-element comparison of the single-precision element in the /// first source vector and the corresponding element in the second source /// vector. @@ -2840,7 +2840,7 @@ return __builtin_ia32_vtestzps256((__v8sf)__a, (__v8sf)__b); } -/// \brief Given two 256-bit floating-point vectors of [8 x float], perform an +/// Given two 256-bit floating-point vectors of [8 x float], perform an /// element-by-element comparison of the single-precision element in the /// first source vector and the corresponding element in the second source /// vector. @@ -2869,7 +2869,7 @@ return __builtin_ia32_vtestcps256((__v8sf)__a, (__v8sf)__b); } -/// \brief Given two 256-bit floating-point vectors of [8 x float], perform an +/// Given two 256-bit floating-point vectors of [8 x float], perform an /// element-by-element comparison of the single-precision elements in the /// first source vector and the corresponding elements in the second source /// vector. @@ -2899,7 +2899,7 @@ return __builtin_ia32_vtestnzcps256((__v8sf)__a, (__v8sf)__b); } -/// \brief Given two 256-bit integer vectors, perform a bit-by-bit comparison +/// Given two 256-bit integer vectors, perform a bit-by-bit comparison /// of the two source vectors. /// /// The EFLAGS register is updated as follows: \n @@ -2925,7 +2925,7 @@ return __builtin_ia32_ptestz256((__v4di)__a, (__v4di)__b); } -/// \brief Given two 256-bit integer vectors, perform a bit-by-bit comparison +/// Given two 256-bit integer vectors, perform a bit-by-bit comparison /// of the two source vectors. /// /// The EFLAGS register is updated as follows: \n @@ -2951,7 +2951,7 @@ return __builtin_ia32_ptestc256((__v4di)__a, (__v4di)__b); } -/// \brief Given two 256-bit integer vectors, perform a bit-by-bit comparison +/// Given two 256-bit integer vectors, perform a bit-by-bit comparison /// of the two source vectors. /// /// The EFLAGS register is updated as follows: \n @@ -2979,7 +2979,7 @@ } /* Vector extract sign mask */ -/// \brief Extracts the sign bits of double-precision floating point elements +/// Extracts the sign bits of double-precision floating point elements /// in a 256-bit vector of [4 x double] and writes them to the lower order /// bits of the return value. /// @@ -2997,7 +2997,7 @@ return __builtin_ia32_movmskpd256((__v4df)__a); } -/// \brief Extracts the sign bits of single-precision floating point elements +/// Extracts the sign bits of single-precision floating point elements /// in a 256-bit vector of [8 x float] and writes them to the lower order /// bits of the return value. /// @@ -3016,7 +3016,7 @@ } /* Vector __zero */ -/// \brief Zeroes the contents of all XMM or YMM registers. +/// Zeroes the contents of all XMM or YMM registers. /// /// \headerfile <x86intrin.h> /// @@ -3027,7 +3027,7 @@ __builtin_ia32_vzeroall(); } -/// \brief Zeroes the upper 128 bits (bits 255:128) of all YMM registers. +/// Zeroes the upper 128 bits (bits 255:128) of all YMM registers. /// /// \headerfile <x86intrin.h> /// @@ -3039,7 +3039,7 @@ } /* Vector load with broadcast */ -/// \brief Loads a scalar single-precision floating point value from the +/// Loads a scalar single-precision floating point value from the /// specified address pointed to by \a __a and broadcasts it to the elements /// of a [4 x float] vector. /// @@ -3058,7 +3058,7 @@ return (__m128)(__v4sf){ __f, __f, __f, __f }; } -/// \brief Loads a scalar double-precision floating point value from the +/// Loads a scalar double-precision floating point value from the /// specified address pointed to by \a __a and broadcasts it to the elements /// of a [4 x double] vector. /// @@ -3077,7 +3077,7 @@ return (__m256d)(__v4df){ __d, __d, __d, __d }; } -/// \brief Loads a scalar single-precision floating point value from the +/// Loads a scalar single-precision floating point value from the /// specified address pointed to by \a __a and broadcasts it to the elements /// of a [8 x float] vector. /// @@ -3096,7 +3096,7 @@ return (__m256)(__v8sf){ __f, __f, __f, __f, __f, __f, __f, __f }; } -/// \brief Loads the data from a 128-bit vector of [2 x double] from the +/// Loads the data from a 128-bit vector of [2 x double] from the /// specified address pointed to by \a __a and broadcasts it to 128-bit /// elements in a 256-bit vector of [4 x double]. /// @@ -3114,7 +3114,7 @@ return (__m256d)__builtin_ia32_vbroadcastf128_pd256((__v2df const *)__a); } -/// \brief Loads the data from a 128-bit vector of [4 x float] from the +/// Loads the data from a 128-bit vector of [4 x float] from the /// specified address pointed to by \a __a and broadcasts it to 128-bit /// elements in a 256-bit vector of [8 x float]. /// @@ -3133,7 +3133,7 @@ } /* SIMD load ops */ -/// \brief Loads 4 double-precision floating point values from a 32-byte aligned +/// Loads 4 double-precision floating point values from a 32-byte aligned /// memory location pointed to by \a __p into a vector of [4 x double]. /// /// \headerfile <x86intrin.h> @@ -3150,7 +3150,7 @@ return *(__m256d *)__p; } -/// \brief Loads 8 single-precision floating point values from a 32-byte aligned +/// Loads 8 single-precision floating point values from a 32-byte aligned /// memory location pointed to by \a __p into a vector of [8 x float]. /// /// \headerfile <x86intrin.h> @@ -3166,7 +3166,7 @@ return *(__m256 *)__p; } -/// \brief Loads 4 double-precision floating point values from an unaligned +/// Loads 4 double-precision floating point values from an unaligned /// memory location pointed to by \a __p into a vector of [4 x double]. /// /// \headerfile <x86intrin.h> @@ -3186,7 +3186,7 @@ return ((struct __loadu_pd*)__p)->__v; } -/// \brief Loads 8 single-precision floating point values from an unaligned +/// Loads 8 single-precision floating point values from an unaligned /// memory location pointed to by \a __p into a vector of [8 x float]. /// /// \headerfile <x86intrin.h> @@ -3206,7 +3206,7 @@ return ((struct __loadu_ps*)__p)->__v; } -/// \brief Loads 256 bits of integer data from a 32-byte aligned memory +/// Loads 256 bits of integer data from a 32-byte aligned memory /// location pointed to by \a __p into elements of a 256-bit integer vector. /// /// \headerfile <x86intrin.h> @@ -3223,7 +3223,7 @@ return *__p; } -/// \brief Loads 256 bits of integer data from an unaligned memory location +/// Loads 256 bits of integer data from an unaligned memory location /// pointed to by \a __p into a 256-bit integer vector. /// /// \headerfile <x86intrin.h> @@ -3242,7 +3242,7 @@ return ((struct __loadu_si256*)__p)->__v; } -/// \brief Loads 256 bits of integer data from an unaligned memory location +/// Loads 256 bits of integer data from an unaligned memory location /// pointed to by \a __p into a 256-bit integer vector. This intrinsic may /// perform better than \c _mm256_loadu_si256 when the data crosses a cache /// line boundary. @@ -3261,7 +3261,7 @@ } /* SIMD store ops */ -/// \brief Stores double-precision floating point values from a 256-bit vector +/// Stores double-precision floating point values from a 256-bit vector /// of [4 x double] to a 32-byte aligned memory location pointed to by /// \a __p. /// @@ -3280,7 +3280,7 @@ *(__m256d *)__p = __a; } -/// \brief Stores single-precision floating point values from a 256-bit vector +/// Stores single-precision floating point values from a 256-bit vector /// of [8 x float] to a 32-byte aligned memory location pointed to by \a __p. /// /// \headerfile <x86intrin.h> @@ -3298,7 +3298,7 @@ *(__m256 *)__p = __a; } -/// \brief Stores double-precision floating point values from a 256-bit vector +/// Stores double-precision floating point values from a 256-bit vector /// of [4 x double] to an unaligned memory location pointed to by \a __p. /// /// \headerfile <x86intrin.h> @@ -3319,7 +3319,7 @@ ((struct __storeu_pd*)__p)->__v = __a; } -/// \brief Stores single-precision floating point values from a 256-bit vector +/// Stores single-precision floating point values from a 256-bit vector /// of [8 x float] to an unaligned memory location pointed to by \a __p. /// /// \headerfile <x86intrin.h> @@ -3339,7 +3339,7 @@ ((struct __storeu_ps*)__p)->__v = __a; } -/// \brief Stores integer values from a 256-bit integer vector to a 32-byte +/// Stores integer values from a 256-bit integer vector to a 32-byte /// aligned memory location pointed to by \a __p. /// /// \headerfile <x86intrin.h> @@ -3357,7 +3357,7 @@ *__p = __a; } -/// \brief Stores integer values from a 256-bit integer vector to an unaligned +/// Stores integer values from a 256-bit integer vector to an unaligned /// memory location pointed to by \a __p. /// /// \headerfile <x86intrin.h> @@ -3378,7 +3378,7 @@ } /* Conditional load ops */ -/// \brief Conditionally loads double-precision floating point elements from a +/// Conditionally loads double-precision floating point elements from a /// memory location pointed to by \a __p into a 128-bit vector of /// [2 x double], depending on the mask bits associated with each data /// element. @@ -3402,7 +3402,7 @@ return (__m128d)__builtin_ia32_maskloadpd((const __v2df *)__p, (__v2di)__m); } -/// \brief Conditionally loads double-precision floating point elements from a +/// Conditionally loads double-precision floating point elements from a /// memory location pointed to by \a __p into a 256-bit vector of /// [4 x double], depending on the mask bits associated with each data /// element. @@ -3427,7 +3427,7 @@ (__v4di)__m); } -/// \brief Conditionally loads single-precision floating point elements from a +/// Conditionally loads single-precision floating point elements from a /// memory location pointed to by \a __p into a 128-bit vector of /// [4 x float], depending on the mask bits associated with each data /// element. @@ -3451,7 +3451,7 @@ return (__m128)__builtin_ia32_maskloadps((const __v4sf *)__p, (__v4si)__m); } -/// \brief Conditionally loads single-precision floating point elements from a +/// Conditionally loads single-precision floating point elements from a /// memory location pointed to by \a __p into a 256-bit vector of /// [8 x float], depending on the mask bits associated with each data /// element. @@ -3476,7 +3476,7 @@ } /* Conditional store ops */ -/// \brief Moves single-precision floating point values from a 256-bit vector +/// Moves single-precision floating point values from a 256-bit vector /// of [8 x float] to a memory location pointed to by \a __p, according to /// the specified mask. /// @@ -3500,7 +3500,7 @@ __builtin_ia32_maskstoreps256((__v8sf *)__p, (__v8si)__m, (__v8sf)__a); } -/// \brief Moves double-precision values from a 128-bit vector of [2 x double] +/// Moves double-precision values from a 128-bit vector of [2 x double] /// to a memory location pointed to by \a __p, according to the specified /// mask. /// @@ -3524,7 +3524,7 @@ __builtin_ia32_maskstorepd((__v2df *)__p, (__v2di)__m, (__v2df)__a); } -/// \brief Moves double-precision values from a 256-bit vector of [4 x double] +/// Moves double-precision values from a 256-bit vector of [4 x double] /// to a memory location pointed to by \a __p, according to the specified /// mask. /// @@ -3548,7 +3548,7 @@ __builtin_ia32_maskstorepd256((__v4df *)__p, (__v4di)__m, (__v4df)__a); } -/// \brief Moves single-precision floating point values from a 128-bit vector +/// Moves single-precision floating point values from a 128-bit vector /// of [4 x float] to a memory location pointed to by \a __p, according to /// the specified mask. /// @@ -3573,7 +3573,7 @@ } /* Cacheability support ops */ -/// \brief Moves integer data from a 256-bit integer vector to a 32-byte +/// Moves integer data from a 256-bit integer vector to a 32-byte /// aligned memory location. To minimize caching, the data is flagged as /// non-temporal (unlikely to be used again soon). /// @@ -3593,7 +3593,7 @@ __builtin_nontemporal_store((__v4di_aligned)__b, (__v4di_aligned*)__a); } -/// \brief Moves double-precision values from a 256-bit vector of [4 x double] +/// Moves double-precision values from a 256-bit vector of [4 x double] /// to a 32-byte aligned memory location. To minimize caching, the data is /// flagged as non-temporal (unlikely to be used again soon). /// @@ -3613,7 +3613,7 @@ __builtin_nontemporal_store((__v4df_aligned)__b, (__v4df_aligned*)__a); } -/// \brief Moves single-precision floating point values from a 256-bit vector +/// Moves single-precision floating point values from a 256-bit vector /// of [8 x float] to a 32-byte aligned memory location. To minimize /// caching, the data is flagged as non-temporal (unlikely to be used again /// soon). @@ -3635,7 +3635,7 @@ } /* Create vectors */ -/// \brief Create a 256-bit vector of [4 x double] with undefined values. +/// Create a 256-bit vector of [4 x double] with undefined values. /// /// \headerfile <x86intrin.h> /// @@ -3648,7 +3648,7 @@ return (__m256d)__builtin_ia32_undef256(); } -/// \brief Create a 256-bit vector of [8 x float] with undefined values. +/// Create a 256-bit vector of [8 x float] with undefined values. /// /// \headerfile <x86intrin.h> /// @@ -3661,7 +3661,7 @@ return (__m256)__builtin_ia32_undef256(); } -/// \brief Create a 256-bit integer vector with undefined values. +/// Create a 256-bit integer vector with undefined values. /// /// \headerfile <x86intrin.h> /// @@ -3674,7 +3674,7 @@ return (__m256i)__builtin_ia32_undef256(); } -/// \brief Constructs a 256-bit floating-point vector of [4 x double] +/// Constructs a 256-bit floating-point vector of [4 x double] /// initialized with the specified double-precision floating-point values. /// /// \headerfile <x86intrin.h> @@ -3701,7 +3701,7 @@ return (__m256d){ __d, __c, __b, __a }; } -/// \brief Constructs a 256-bit floating-point vector of [8 x float] initialized +/// Constructs a 256-bit floating-point vector of [8 x float] initialized /// with the specified single-precision floating-point values. /// /// \headerfile <x86intrin.h> @@ -3741,7 +3741,7 @@ return (__m256){ __h, __g, __f, __e, __d, __c, __b, __a }; } -/// \brief Constructs a 256-bit integer vector initialized with the specified +/// Constructs a 256-bit integer vector initialized with the specified /// 32-bit integral values. /// /// \headerfile <x86intrin.h> @@ -3773,7 +3773,7 @@ return (__m256i)(__v8si){ __i7, __i6, __i5, __i4, __i3, __i2, __i1, __i0 }; } -/// \brief Constructs a 256-bit integer vector initialized with the specified +/// Constructs a 256-bit integer vector initialized with the specified /// 16-bit integral values. /// /// \headerfile <x86intrin.h> @@ -3824,7 +3824,7 @@ __w07, __w08, __w09, __w10, __w11, __w12, __w13, __w14, __w15 }; } -/// \brief Constructs a 256-bit integer vector initialized with the specified +/// Constructs a 256-bit integer vector initialized with the specified /// 8-bit integral values. /// /// \headerfile <x86intrin.h> @@ -3915,7 +3915,7 @@ }; } -/// \brief Constructs a 256-bit integer vector initialized with the specified +/// Constructs a 256-bit integer vector initialized with the specified /// 64-bit integral values. /// /// \headerfile <x86intrin.h> @@ -3939,7 +3939,7 @@ } /* Create vectors with elements in reverse order */ -/// \brief Constructs a 256-bit floating-point vector of [4 x double], +/// Constructs a 256-bit floating-point vector of [4 x double], /// initialized in reverse order with the specified double-precision /// floating-point values. /// @@ -3967,7 +3967,7 @@ return (__m256d){ __a, __b, __c, __d }; } -/// \brief Constructs a 256-bit floating-point vector of [8 x float], +/// Constructs a 256-bit floating-point vector of [8 x float], /// initialized in reverse order with the specified single-precision /// float-point values. /// @@ -4008,7 +4008,7 @@ return (__m256){ __a, __b, __c, __d, __e, __f, __g, __h }; } -/// \brief Constructs a 256-bit integer vector, initialized in reverse order +/// Constructs a 256-bit integer vector, initialized in reverse order /// with the specified 32-bit integral values. /// /// \headerfile <x86intrin.h> @@ -4040,7 +4040,7 @@ return (__m256i)(__v8si){ __i0, __i1, __i2, __i3, __i4, __i5, __i6, __i7 }; } -/// \brief Constructs a 256-bit integer vector, initialized in reverse order +/// Constructs a 256-bit integer vector, initialized in reverse order /// with the specified 16-bit integral values. /// /// \headerfile <x86intrin.h> @@ -4091,7 +4091,7 @@ __w08, __w07, __w06, __w05, __w04, __w03, __w02, __w01, __w00 }; } -/// \brief Constructs a 256-bit integer vector, initialized in reverse order +/// Constructs a 256-bit integer vector, initialized in reverse order /// with the specified 8-bit integral values. /// /// \headerfile <x86intrin.h> @@ -4181,7 +4181,7 @@ __b07, __b06, __b05, __b04, __b03, __b02, __b01, __b00 }; } -/// \brief Constructs a 256-bit integer vector, initialized in reverse order +/// Constructs a 256-bit integer vector, initialized in reverse order /// with the specified 64-bit integral values. /// /// \headerfile <x86intrin.h> @@ -4205,7 +4205,7 @@ } /* Create vectors with repeated elements */ -/// \brief Constructs a 256-bit floating-point vector of [4 x double], with each +/// Constructs a 256-bit floating-point vector of [4 x double], with each /// of the four double-precision floating-point vector elements set to the /// specified double-precision floating-point value. /// @@ -4223,7 +4223,7 @@ return (__m256d){ __w, __w, __w, __w }; } -/// \brief Constructs a 256-bit floating-point vector of [8 x float], with each +/// Constructs a 256-bit floating-point vector of [8 x float], with each /// of the eight single-precision floating-point vector elements set to the /// specified single-precision floating-point value. /// @@ -4242,7 +4242,7 @@ return (__m256){ __w, __w, __w, __w, __w, __w, __w, __w }; } -/// \brief Constructs a 256-bit integer vector of [8 x i32], with each of the +/// Constructs a 256-bit integer vector of [8 x i32], with each of the /// 32-bit integral vector elements set to the specified 32-bit integral /// value. /// @@ -4261,7 +4261,7 @@ return (__m256i)(__v8si){ __i, __i, __i, __i, __i, __i, __i, __i }; } -/// \brief Constructs a 256-bit integer vector of [16 x i16], with each of the +/// Constructs a 256-bit integer vector of [16 x i16], with each of the /// 16-bit integral vector elements set to the specified 16-bit integral /// value. /// @@ -4280,7 +4280,7 @@ __w, __w, __w, __w, __w, __w }; } -/// \brief Constructs a 256-bit integer vector of [32 x i8], with each of the +/// Constructs a 256-bit integer vector of [32 x i8], with each of the /// 8-bit integral vector elements set to the specified 8-bit integral value. /// /// \headerfile <x86intrin.h> @@ -4299,7 +4299,7 @@ __b, __b, __b, __b, __b, __b, __b }; } -/// \brief Constructs a 256-bit integer vector of [4 x i64], with each of the +/// Constructs a 256-bit integer vector of [4 x i64], with each of the /// 64-bit integral vector elements set to the specified 64-bit integral /// value. /// @@ -4318,7 +4318,7 @@ } /* Create __zeroed vectors */ -/// \brief Constructs a 256-bit floating-point vector of [4 x double] with all +/// Constructs a 256-bit floating-point vector of [4 x double] with all /// vector elements initialized to zero. /// /// \headerfile <x86intrin.h> @@ -4332,7 +4332,7 @@ return (__m256d){ 0, 0, 0, 0 }; } -/// \brief Constructs a 256-bit floating-point vector of [8 x float] with all +/// Constructs a 256-bit floating-point vector of [8 x float] with all /// vector elements initialized to zero. /// /// \headerfile <x86intrin.h> @@ -4346,7 +4346,7 @@ return (__m256){ 0, 0, 0, 0, 0, 0, 0, 0 }; } -/// \brief Constructs a 256-bit integer vector initialized to zero. +/// Constructs a 256-bit integer vector initialized to zero. /// /// \headerfile <x86intrin.h> /// @@ -4360,7 +4360,7 @@ } /* Cast between vector types */ -/// \brief Casts a 256-bit floating-point vector of [4 x double] into a 256-bit +/// Casts a 256-bit floating-point vector of [4 x double] into a 256-bit /// floating-point vector of [8 x float]. /// /// \headerfile <x86intrin.h> @@ -4377,7 +4377,7 @@ return (__m256)__a; } -/// \brief Casts a 256-bit floating-point vector of [4 x double] into a 256-bit +/// Casts a 256-bit floating-point vector of [4 x double] into a 256-bit /// integer vector. /// /// \headerfile <x86intrin.h> @@ -4394,7 +4394,7 @@ return (__m256i)__a; } -/// \brief Casts a 256-bit floating-point vector of [8 x float] into a 256-bit +/// Casts a 256-bit floating-point vector of [8 x float] into a 256-bit /// floating-point vector of [4 x double]. /// /// \headerfile <x86intrin.h> @@ -4411,7 +4411,7 @@ return (__m256d)__a; } -/// \brief Casts a 256-bit floating-point vector of [8 x float] into a 256-bit +/// Casts a 256-bit floating-point vector of [8 x float] into a 256-bit /// integer vector. /// /// \headerfile <x86intrin.h> @@ -4428,7 +4428,7 @@ return (__m256i)__a; } -/// \brief Casts a 256-bit integer vector into a 256-bit floating-point vector +/// Casts a 256-bit integer vector into a 256-bit floating-point vector /// of [8 x float]. /// /// \headerfile <x86intrin.h> @@ -4445,7 +4445,7 @@ return (__m256)__a; } -/// \brief Casts a 256-bit integer vector into a 256-bit floating-point vector +/// Casts a 256-bit integer vector into a 256-bit floating-point vector /// of [4 x double]. /// /// \headerfile <x86intrin.h> @@ -4462,7 +4462,7 @@ return (__m256d)__a; } -/// \brief Returns the lower 128 bits of a 256-bit floating-point vector of +/// Returns the lower 128 bits of a 256-bit floating-point vector of /// [4 x double] as a 128-bit floating-point vector of [2 x double]. /// /// \headerfile <x86intrin.h> @@ -4479,7 +4479,7 @@ return __builtin_shufflevector((__v4df)__a, (__v4df)__a, 0, 1); } -/// \brief Returns the lower 128 bits of a 256-bit floating-point vector of +/// Returns the lower 128 bits of a 256-bit floating-point vector of /// [8 x float] as a 128-bit floating-point vector of [4 x float]. /// /// \headerfile <x86intrin.h> @@ -4496,7 +4496,7 @@ return __builtin_shufflevector((__v8sf)__a, (__v8sf)__a, 0, 1, 2, 3); } -/// \brief Truncates a 256-bit integer vector into a 128-bit integer vector. +/// Truncates a 256-bit integer vector into a 128-bit integer vector. /// /// \headerfile <x86intrin.h> /// @@ -4512,7 +4512,7 @@ return __builtin_shufflevector((__v4di)__a, (__v4di)__a, 0, 1); } -/// \brief Constructs a 256-bit floating-point vector of [4 x double] from a +/// Constructs a 256-bit floating-point vector of [4 x double] from a /// 128-bit floating-point vector of [2 x double]. /// /// The lower 128 bits contain the value of the source vector. The contents @@ -4533,7 +4533,7 @@ return __builtin_shufflevector((__v2df)__a, (__v2df)__a, 0, 1, -1, -1); } -/// \brief Constructs a 256-bit floating-point vector of [8 x float] from a +/// Constructs a 256-bit floating-point vector of [8 x float] from a /// 128-bit floating-point vector of [4 x float]. /// /// The lower 128 bits contain the value of the source vector. The contents @@ -4554,7 +4554,7 @@ return __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 0, 1, 2, 3, -1, -1, -1, -1); } -/// \brief Constructs a 256-bit integer vector from a 128-bit integer vector. +/// Constructs a 256-bit integer vector from a 128-bit integer vector. /// /// The lower 128 bits contain the value of the source vector. The contents /// of the upper 128 bits are undefined. @@ -4573,7 +4573,7 @@ return __builtin_shufflevector((__v2di)__a, (__v2di)__a, 0, 1, -1, -1); } -/// \brief Constructs a 256-bit floating-point vector of [4 x double] from a +/// Constructs a 256-bit floating-point vector of [4 x double] from a /// 128-bit floating-point vector of [2 x double]. The lower 128 bits /// contain the value of the source vector. The upper 128 bits are set /// to zero. @@ -4592,7 +4592,7 @@ return __builtin_shufflevector((__v2df)__a, (__v2df)_mm_setzero_pd(), 0, 1, 2, 3); } -/// \brief Constructs a 256-bit floating-point vector of [8 x float] from a +/// Constructs a 256-bit floating-point vector of [8 x float] from a /// 128-bit floating-point vector of [4 x float]. The lower 128 bits contain /// the value of the source vector. The upper 128 bits are set to zero. /// @@ -4610,7 +4610,7 @@ return __builtin_shufflevector((__v4sf)__a, (__v4sf)_mm_setzero_ps(), 0, 1, 2, 3, 4, 5, 6, 7); } -/// \brief Constructs a 256-bit integer vector from a 128-bit integer vector. +/// Constructs a 256-bit integer vector from a 128-bit integer vector. /// The lower 128 bits contain the value of the source vector. The upper /// 128 bits are set to zero. /// @@ -4633,7 +4633,7 @@ We use macros rather than inlines because we only want to accept invocations where the immediate M is a constant expression. */ -/// \brief Constructs a new 256-bit vector of [8 x float] by first duplicating +/// Constructs a new 256-bit vector of [8 x float] by first duplicating /// a 256-bit vector of [8 x float] given in the first parameter, and then /// replacing either the upper or the lower 128 bits with the contents of a /// 128-bit vector of [4 x float] in the second parameter. @@ -4680,7 +4680,7 @@ (((M) & 1) ? 10 : 6), \ (((M) & 1) ? 11 : 7) );}) -/// \brief Constructs a new 256-bit vector of [4 x double] by first duplicating +/// Constructs a new 256-bit vector of [4 x double] by first duplicating /// a 256-bit vector of [4 x double] given in the first parameter, and then /// replacing either the upper or the lower 128 bits with the contents of a /// 128-bit vector of [2 x double] in the second parameter. @@ -4723,7 +4723,7 @@ (((M) & 1) ? 4 : 2), \ (((M) & 1) ? 5 : 3) );}) -/// \brief Constructs a new 256-bit integer vector by first duplicating a +/// Constructs a new 256-bit integer vector by first duplicating a /// 256-bit integer vector given in the first parameter, and then replacing /// either the upper or the lower 128 bits with the contents of a 128-bit /// integer vector in the second parameter. @@ -4771,7 +4771,7 @@ We use macros rather than inlines because we only want to accept invocations where the immediate M is a constant expression. */ -/// \brief Extracts either the upper or the lower 128 bits from a 256-bit vector +/// Extracts either the upper or the lower 128 bits from a 256-bit vector /// of [8 x float], as determined by the immediate integer parameter, and /// returns the extracted bits as a 128-bit vector of [4 x float]. /// @@ -4801,7 +4801,7 @@ (((M) & 1) ? 6 : 2), \ (((M) & 1) ? 7 : 3) );}) -/// \brief Extracts either the upper or the lower 128 bits from a 256-bit vector +/// Extracts either the upper or the lower 128 bits from a 256-bit vector /// of [4 x double], as determined by the immediate integer parameter, and /// returns the extracted bits as a 128-bit vector of [2 x double]. /// @@ -4829,7 +4829,7 @@ (((M) & 1) ? 2 : 0), \ (((M) & 1) ? 3 : 1) );}) -/// \brief Extracts either the upper or the lower 128 bits from a 256-bit +/// Extracts either the upper or the lower 128 bits from a 256-bit /// integer vector, as determined by the immediate integer parameter, and /// returns the extracted bits as a 128-bit integer vector. /// @@ -4858,7 +4858,7 @@ (((M) & 1) ? 3 : 1) );}) /* SIMD load ops (unaligned) */ -/// \brief Loads two 128-bit floating-point vectors of [4 x float] from +/// Loads two 128-bit floating-point vectors of [4 x float] from /// unaligned memory locations and constructs a 256-bit floating-point vector /// of [8 x float] by concatenating the two 128-bit vectors. /// @@ -4886,7 +4886,7 @@ return _mm256_insertf128_ps(__v256, _mm_loadu_ps(__addr_hi), 1); } -/// \brief Loads two 128-bit floating-point vectors of [2 x double] from +/// Loads two 128-bit floating-point vectors of [2 x double] from /// unaligned memory locations and constructs a 256-bit floating-point vector /// of [4 x double] by concatenating the two 128-bit vectors. /// @@ -4914,7 +4914,7 @@ return _mm256_insertf128_pd(__v256, _mm_loadu_pd(__addr_hi), 1); } -/// \brief Loads two 128-bit integer vectors from unaligned memory locations and +/// Loads two 128-bit integer vectors from unaligned memory locations and /// constructs a 256-bit integer vector by concatenating the two 128-bit /// vectors. /// @@ -4940,7 +4940,7 @@ } /* SIMD store ops (unaligned) */ -/// \brief Stores the upper and lower 128 bits of a 256-bit floating-point +/// Stores the upper and lower 128 bits of a 256-bit floating-point /// vector of [8 x float] into two different unaligned memory locations. /// /// \headerfile <x86intrin.h> @@ -4969,7 +4969,7 @@ _mm_storeu_ps(__addr_hi, __v128); } -/// \brief Stores the upper and lower 128 bits of a 256-bit floating-point +/// Stores the upper and lower 128 bits of a 256-bit floating-point /// vector of [4 x double] into two different unaligned memory locations. /// /// \headerfile <x86intrin.h> @@ -4998,7 +4998,7 @@ _mm_storeu_pd(__addr_hi, __v128); } -/// \brief Stores the upper and lower 128 bits of a 256-bit integer vector into +/// Stores the upper and lower 128 bits of a 256-bit integer vector into /// two different unaligned memory locations. /// /// \headerfile <x86intrin.h> @@ -5027,7 +5027,7 @@ _mm_storeu_si128(__addr_hi, __v128); } -/// \brief Constructs a 256-bit floating-point vector of [8 x float] by +/// Constructs a 256-bit floating-point vector of [8 x float] by /// concatenating two 128-bit floating-point vectors of [4 x float]. /// /// \headerfile <x86intrin.h> @@ -5048,7 +5048,7 @@ return (__m256) __builtin_shufflevector((__v4sf)__lo, (__v4sf)__hi, 0, 1, 2, 3, 4, 5, 6, 7); } -/// \brief Constructs a 256-bit floating-point vector of [4 x double] by +/// Constructs a 256-bit floating-point vector of [4 x double] by /// concatenating two 128-bit floating-point vectors of [2 x double]. /// /// \headerfile <x86intrin.h> @@ -5069,7 +5069,7 @@ return (__m256d)_mm256_set_m128((__m128)__hi, (__m128)__lo); } -/// \brief Constructs a 256-bit integer vector by concatenating two 128-bit +/// Constructs a 256-bit integer vector by concatenating two 128-bit /// integer vectors. /// /// \headerfile <x86intrin.h> @@ -5089,7 +5089,7 @@ return (__m256i)_mm256_set_m128((__m128)__hi, (__m128)__lo); } -/// \brief Constructs a 256-bit floating-point vector of [8 x float] by +/// Constructs a 256-bit floating-point vector of [8 x float] by /// concatenating two 128-bit floating-point vectors of [4 x float]. This is /// similar to _mm256_set_m128, but the order of the input parameters is /// swapped. @@ -5112,7 +5112,7 @@ return _mm256_set_m128(__hi, __lo); } -/// \brief Constructs a 256-bit floating-point vector of [4 x double] by +/// Constructs a 256-bit floating-point vector of [4 x double] by /// concatenating two 128-bit floating-point vectors of [2 x double]. This is /// similar to _mm256_set_m128d, but the order of the input parameters is /// swapped. @@ -5135,7 +5135,7 @@ return (__m256d)_mm256_set_m128((__m128)__hi, (__m128)__lo); } -/// \brief Constructs a 256-bit integer vector by concatenating two 128-bit +/// Constructs a 256-bit integer vector by concatenating two 128-bit /// integer vectors. This is similar to _mm256_set_m128i, but the order of /// the input parameters is swapped. /// Index: cfe/trunk/lib/Headers/bmiintrin.h =================================================================== --- cfe/trunk/lib/Headers/bmiintrin.h +++ cfe/trunk/lib/Headers/bmiintrin.h @@ -49,7 +49,7 @@ to use it as a potentially faster version of BSF. */ #define __RELAXED_FN_ATTRS __attribute__((__always_inline__, __nodebug__)) -/// \brief Counts the number of trailing zero bits in the operand. +/// Counts the number of trailing zero bits in the operand. /// /// \headerfile <x86intrin.h> /// @@ -65,7 +65,7 @@ return __X ? __builtin_ctzs(__X) : 16; } -/// \brief Performs a bitwise AND of the second operand with the one's +/// Performs a bitwise AND of the second operand with the one's /// complement of the first operand. /// /// \headerfile <x86intrin.h> @@ -85,7 +85,7 @@ } /* AMD-specified, double-leading-underscore version of BEXTR */ -/// \brief Extracts the specified bits from the first operand and returns them +/// Extracts the specified bits from the first operand and returns them /// in the least significant bits of the result. /// /// \headerfile <x86intrin.h> @@ -107,7 +107,7 @@ } /* Intel-specified, single-leading-underscore version of BEXTR */ -/// \brief Extracts the specified bits from the first operand and returns them +/// Extracts the specified bits from the first operand and returns them /// in the least significant bits of the result. /// /// \headerfile <x86intrin.h> @@ -130,7 +130,7 @@ return __builtin_ia32_bextr_u32 (__X, ((__Y & 0xff) | ((__Z & 0xff) << 8))); } -/// \brief Clears all bits in the source except for the least significant bit +/// Clears all bits in the source except for the least significant bit /// containing a value of 1 and returns the result. /// /// \headerfile <x86intrin.h> @@ -147,7 +147,7 @@ return __X & -__X; } -/// \brief Creates a mask whose bits are set to 1, using bit 0 up to and +/// Creates a mask whose bits are set to 1, using bit 0 up to and /// including the least significant bit that is set to 1 in the source /// operand and returns the result. /// @@ -164,7 +164,7 @@ return __X ^ (__X - 1); } -/// \brief Clears the least significant bit that is set to 1 in the source +/// Clears the least significant bit that is set to 1 in the source /// operand and returns the result. /// /// \headerfile <x86intrin.h> @@ -181,7 +181,7 @@ return __X & (__X - 1); } -/// \brief Counts the number of trailing zero bits in the operand. +/// Counts the number of trailing zero bits in the operand. /// /// \headerfile <x86intrin.h> /// @@ -197,7 +197,7 @@ return __X ? __builtin_ctz(__X) : 32; } -/// \brief Counts the number of trailing zero bits in the operand. +/// Counts the number of trailing zero bits in the operand. /// /// \headerfile <x86intrin.h> /// @@ -226,7 +226,7 @@ #define _tzcnt_u64(a) (__tzcnt_u64((a))) -/// \brief Performs a bitwise AND of the second operand with the one's +/// Performs a bitwise AND of the second operand with the one's /// complement of the first operand. /// /// \headerfile <x86intrin.h> @@ -246,7 +246,7 @@ } /* AMD-specified, double-leading-underscore version of BEXTR */ -/// \brief Extracts the specified bits from the first operand and returns them +/// Extracts the specified bits from the first operand and returns them /// in the least significant bits of the result. /// /// \headerfile <x86intrin.h> @@ -268,7 +268,7 @@ } /* Intel-specified, single-leading-underscore version of BEXTR */ -/// \brief Extracts the specified bits from the first operand and returns them +/// Extracts the specified bits from the first operand and returns them /// in the least significant bits of the result. /// /// \headerfile <x86intrin.h> @@ -291,7 +291,7 @@ return __builtin_ia32_bextr_u64 (__X, ((__Y & 0xff) | ((__Z & 0xff) << 8))); } -/// \brief Clears all bits in the source except for the least significant bit +/// Clears all bits in the source except for the least significant bit /// containing a value of 1 and returns the result. /// /// \headerfile <x86intrin.h> @@ -308,7 +308,7 @@ return __X & -__X; } -/// \brief Creates a mask whose bits are set to 1, using bit 0 up to and +/// Creates a mask whose bits are set to 1, using bit 0 up to and /// including the least significant bit that is set to 1 in the source /// operand and returns the result. /// @@ -325,7 +325,7 @@ return __X ^ (__X - 1); } -/// \brief Clears the least significant bit that is set to 1 in the source +/// Clears the least significant bit that is set to 1 in the source /// operand and returns the result. /// /// \headerfile <x86intrin.h> @@ -342,7 +342,7 @@ return __X & (__X - 1); } -/// \brief Counts the number of trailing zero bits in the operand. +/// Counts the number of trailing zero bits in the operand. /// /// \headerfile <x86intrin.h> /// @@ -358,7 +358,7 @@ return __X ? __builtin_ctzll(__X) : 64; } -/// \brief Counts the number of trailing zero bits in the operand. +/// Counts the number of trailing zero bits in the operand. /// /// \headerfile <x86intrin.h> /// Index: cfe/trunk/lib/Headers/clwbintrin.h =================================================================== --- cfe/trunk/lib/Headers/clwbintrin.h +++ cfe/trunk/lib/Headers/clwbintrin.h @@ -31,7 +31,7 @@ /* Define the default attributes for the functions in this file. */ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("clwb"))) -/// \brief Writes back to memory the cache line (if modified) that contains the +/// Writes back to memory the cache line (if modified) that contains the /// linear address specified in \a __p from any level of the cache hierarchy in /// the cache coherence domain /// Index: cfe/trunk/lib/Headers/clzerointrin.h =================================================================== --- cfe/trunk/lib/Headers/clzerointrin.h +++ cfe/trunk/lib/Headers/clzerointrin.h @@ -31,7 +31,7 @@ #define __DEFAULT_FN_ATTRS \ __attribute__((__always_inline__, __nodebug__, __target__("clzero"))) -/// \brief Loads the cache line address and zero's out the cacheline +/// Loads the cache line address and zero's out the cacheline /// /// \headerfile <clzerointrin.h> /// Index: cfe/trunk/lib/Headers/emmintrin.h =================================================================== --- cfe/trunk/lib/Headers/emmintrin.h +++ cfe/trunk/lib/Headers/emmintrin.h @@ -49,7 +49,7 @@ /* Define the default attributes for the functions in this file. */ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("sse2"))) -/// \brief Adds lower double-precision values in both operands and returns the +/// Adds lower double-precision values in both operands and returns the /// sum in the lower 64 bits of the result. The upper 64 bits of the result /// are copied from the upper double-precision value of the first operand. /// @@ -71,7 +71,7 @@ return __a; } -/// \brief Adds two 128-bit vectors of [2 x double]. +/// Adds two 128-bit vectors of [2 x double]. /// /// \headerfile <x86intrin.h> /// @@ -89,7 +89,7 @@ return (__m128d)((__v2df)__a + (__v2df)__b); } -/// \brief Subtracts the lower double-precision value of the second operand +/// Subtracts the lower double-precision value of the second operand /// from the lower double-precision value of the first operand and returns /// the difference in the lower 64 bits of the result. The upper 64 bits of /// the result are copied from the upper double-precision value of the first @@ -113,7 +113,7 @@ return __a; } -/// \brief Subtracts two 128-bit vectors of [2 x double]. +/// Subtracts two 128-bit vectors of [2 x double]. /// /// \headerfile <x86intrin.h> /// @@ -131,7 +131,7 @@ return (__m128d)((__v2df)__a - (__v2df)__b); } -/// \brief Multiplies lower double-precision values in both operands and returns +/// Multiplies lower double-precision values in both operands and returns /// the product in the lower 64 bits of the result. The upper 64 bits of the /// result are copied from the upper double-precision value of the first /// operand. @@ -154,7 +154,7 @@ return __a; } -/// \brief Multiplies two 128-bit vectors of [2 x double]. +/// Multiplies two 128-bit vectors of [2 x double]. /// /// \headerfile <x86intrin.h> /// @@ -172,7 +172,7 @@ return (__m128d)((__v2df)__a * (__v2df)__b); } -/// \brief Divides the lower double-precision value of the first operand by the +/// Divides the lower double-precision value of the first operand by the /// lower double-precision value of the second operand and returns the /// quotient in the lower 64 bits of the result. The upper 64 bits of the /// result are copied from the upper double-precision value of the first @@ -196,7 +196,7 @@ return __a; } -/// \brief Performs an element-by-element division of two 128-bit vectors of +/// Performs an element-by-element division of two 128-bit vectors of /// [2 x double]. /// /// \headerfile <x86intrin.h> @@ -215,7 +215,7 @@ return (__m128d)((__v2df)__a / (__v2df)__b); } -/// \brief Calculates the square root of the lower double-precision value of +/// Calculates the square root of the lower double-precision value of /// the second operand and returns it in the lower 64 bits of the result. /// The upper 64 bits of the result are copied from the upper /// double-precision value of the first operand. @@ -241,7 +241,7 @@ return (__m128d) { __c[0], __a[1] }; } -/// \brief Calculates the square root of the each of two values stored in a +/// Calculates the square root of the each of two values stored in a /// 128-bit vector of [2 x double]. /// /// \headerfile <x86intrin.h> @@ -258,7 +258,7 @@ return __builtin_ia32_sqrtpd((__v2df)__a); } -/// \brief Compares lower 64-bit double-precision values of both operands, and +/// Compares lower 64-bit double-precision values of both operands, and /// returns the lesser of the pair of values in the lower 64-bits of the /// result. The upper 64 bits of the result are copied from the upper /// double-precision value of the first operand. @@ -282,7 +282,7 @@ return __builtin_ia32_minsd((__v2df)__a, (__v2df)__b); } -/// \brief Performs element-by-element comparison of the two 128-bit vectors of +/// Performs element-by-element comparison of the two 128-bit vectors of /// [2 x double] and returns the vector containing the lesser of each pair of /// values. /// @@ -302,7 +302,7 @@ return __builtin_ia32_minpd((__v2df)__a, (__v2df)__b); } -/// \brief Compares lower 64-bit double-precision values of both operands, and +/// Compares lower 64-bit double-precision values of both operands, and /// returns the greater of the pair of values in the lower 64-bits of the /// result. The upper 64 bits of the result are copied from the upper /// double-precision value of the first operand. @@ -326,7 +326,7 @@ return __builtin_ia32_maxsd((__v2df)__a, (__v2df)__b); } -/// \brief Performs element-by-element comparison of the two 128-bit vectors of +/// Performs element-by-element comparison of the two 128-bit vectors of /// [2 x double] and returns the vector containing the greater of each pair /// of values. /// @@ -346,7 +346,7 @@ return __builtin_ia32_maxpd((__v2df)__a, (__v2df)__b); } -/// \brief Performs a bitwise AND of two 128-bit vectors of [2 x double]. +/// Performs a bitwise AND of two 128-bit vectors of [2 x double]. /// /// \headerfile <x86intrin.h> /// @@ -364,7 +364,7 @@ return (__m128d)((__v2du)__a & (__v2du)__b); } -/// \brief Performs a bitwise AND of two 128-bit vectors of [2 x double], using +/// Performs a bitwise AND of two 128-bit vectors of [2 x double], using /// the one's complement of the values contained in the first source operand. /// /// \headerfile <x86intrin.h> @@ -385,7 +385,7 @@ return (__m128d)(~(__v2du)__a & (__v2du)__b); } -/// \brief Performs a bitwise OR of two 128-bit vectors of [2 x double]. +/// Performs a bitwise OR of two 128-bit vectors of [2 x double]. /// /// \headerfile <x86intrin.h> /// @@ -403,7 +403,7 @@ return (__m128d)((__v2du)__a | (__v2du)__b); } -/// \brief Performs a bitwise XOR of two 128-bit vectors of [2 x double]. +/// Performs a bitwise XOR of two 128-bit vectors of [2 x double]. /// /// \headerfile <x86intrin.h> /// @@ -421,7 +421,7 @@ return (__m128d)((__v2du)__a ^ (__v2du)__b); } -/// \brief Compares each of the corresponding double-precision values of the +/// Compares each of the corresponding double-precision values of the /// 128-bit vectors of [2 x double] for equality. Each comparison yields 0x0 /// for false, 0xFFFFFFFFFFFFFFFF for true. /// @@ -440,7 +440,7 @@ return (__m128d)__builtin_ia32_cmpeqpd((__v2df)__a, (__v2df)__b); } -/// \brief Compares each of the corresponding double-precision values of the +/// Compares each of the corresponding double-precision values of the /// 128-bit vectors of [2 x double] to determine if the values in the first /// operand are less than those in the second operand. Each comparison /// yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. @@ -460,7 +460,7 @@ return (__m128d)__builtin_ia32_cmpltpd((__v2df)__a, (__v2df)__b); } -/// \brief Compares each of the corresponding double-precision values of the +/// Compares each of the corresponding double-precision values of the /// 128-bit vectors of [2 x double] to determine if the values in the first /// operand are less than or equal to those in the second operand. /// @@ -481,7 +481,7 @@ return (__m128d)__builtin_ia32_cmplepd((__v2df)__a, (__v2df)__b); } -/// \brief Compares each of the corresponding double-precision values of the +/// Compares each of the corresponding double-precision values of the /// 128-bit vectors of [2 x double] to determine if the values in the first /// operand are greater than those in the second operand. /// @@ -502,7 +502,7 @@ return (__m128d)__builtin_ia32_cmpltpd((__v2df)__b, (__v2df)__a); } -/// \brief Compares each of the corresponding double-precision values of the +/// Compares each of the corresponding double-precision values of the /// 128-bit vectors of [2 x double] to determine if the values in the first /// operand are greater than or equal to those in the second operand. /// @@ -523,7 +523,7 @@ return (__m128d)__builtin_ia32_cmplepd((__v2df)__b, (__v2df)__a); } -/// \brief Compares each of the corresponding double-precision values of the +/// Compares each of the corresponding double-precision values of the /// 128-bit vectors of [2 x double] to determine if the values in the first /// operand are ordered with respect to those in the second operand. /// @@ -546,7 +546,7 @@ return (__m128d)__builtin_ia32_cmpordpd((__v2df)__a, (__v2df)__b); } -/// \brief Compares each of the corresponding double-precision values of the +/// Compares each of the corresponding double-precision values of the /// 128-bit vectors of [2 x double] to determine if the values in the first /// operand are unordered with respect to those in the second operand. /// @@ -570,7 +570,7 @@ return (__m128d)__builtin_ia32_cmpunordpd((__v2df)__a, (__v2df)__b); } -/// \brief Compares each of the corresponding double-precision values of the +/// Compares each of the corresponding double-precision values of the /// 128-bit vectors of [2 x double] to determine if the values in the first /// operand are unequal to those in the second operand. /// @@ -591,7 +591,7 @@ return (__m128d)__builtin_ia32_cmpneqpd((__v2df)__a, (__v2df)__b); } -/// \brief Compares each of the corresponding double-precision values of the +/// Compares each of the corresponding double-precision values of the /// 128-bit vectors of [2 x double] to determine if the values in the first /// operand are not less than those in the second operand. /// @@ -612,7 +612,7 @@ return (__m128d)__builtin_ia32_cmpnltpd((__v2df)__a, (__v2df)__b); } -/// \brief Compares each of the corresponding double-precision values of the +/// Compares each of the corresponding double-precision values of the /// 128-bit vectors of [2 x double] to determine if the values in the first /// operand are not less than or equal to those in the second operand. /// @@ -633,7 +633,7 @@ return (__m128d)__builtin_ia32_cmpnlepd((__v2df)__a, (__v2df)__b); } -/// \brief Compares each of the corresponding double-precision values of the +/// Compares each of the corresponding double-precision values of the /// 128-bit vectors of [2 x double] to determine if the values in the first /// operand are not greater than those in the second operand. /// @@ -654,7 +654,7 @@ return (__m128d)__builtin_ia32_cmpnltpd((__v2df)__b, (__v2df)__a); } -/// \brief Compares each of the corresponding double-precision values of the +/// Compares each of the corresponding double-precision values of the /// 128-bit vectors of [2 x double] to determine if the values in the first /// operand are not greater than or equal to those in the second operand. /// @@ -675,7 +675,7 @@ return (__m128d)__builtin_ia32_cmpnlepd((__v2df)__b, (__v2df)__a); } -/// \brief Compares the lower double-precision floating-point values in each of +/// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] for equality. /// /// The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. @@ -698,7 +698,7 @@ return (__m128d)__builtin_ia32_cmpeqsd((__v2df)__a, (__v2df)__b); } -/// \brief Compares the lower double-precision floating-point values in each of +/// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is less than the corresponding value in /// the second parameter. @@ -723,7 +723,7 @@ return (__m128d)__builtin_ia32_cmpltsd((__v2df)__a, (__v2df)__b); } -/// \brief Compares the lower double-precision floating-point values in each of +/// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is less than or equal to the /// corresponding value in the second parameter. @@ -748,7 +748,7 @@ return (__m128d)__builtin_ia32_cmplesd((__v2df)__a, (__v2df)__b); } -/// \brief Compares the lower double-precision floating-point values in each of +/// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is greater than the corresponding value /// in the second parameter. @@ -774,7 +774,7 @@ return (__m128d) { __c[0], __a[1] }; } -/// \brief Compares the lower double-precision floating-point values in each of +/// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is greater than or equal to the /// corresponding value in the second parameter. @@ -800,7 +800,7 @@ return (__m128d) { __c[0], __a[1] }; } -/// \brief Compares the lower double-precision floating-point values in each of +/// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is "ordered" with respect to the /// corresponding value in the second parameter. @@ -827,7 +827,7 @@ return (__m128d)__builtin_ia32_cmpordsd((__v2df)__a, (__v2df)__b); } -/// \brief Compares the lower double-precision floating-point values in each of +/// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is "unordered" with respect to the /// corresponding value in the second parameter. @@ -855,7 +855,7 @@ return (__m128d)__builtin_ia32_cmpunordsd((__v2df)__a, (__v2df)__b); } -/// \brief Compares the lower double-precision floating-point values in each of +/// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is unequal to the corresponding value in /// the second parameter. @@ -880,7 +880,7 @@ return (__m128d)__builtin_ia32_cmpneqsd((__v2df)__a, (__v2df)__b); } -/// \brief Compares the lower double-precision floating-point values in each of +/// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is not less than the corresponding /// value in the second parameter. @@ -905,7 +905,7 @@ return (__m128d)__builtin_ia32_cmpnltsd((__v2df)__a, (__v2df)__b); } -/// \brief Compares the lower double-precision floating-point values in each of +/// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is not less than or equal to the /// corresponding value in the second parameter. @@ -930,7 +930,7 @@ return (__m128d)__builtin_ia32_cmpnlesd((__v2df)__a, (__v2df)__b); } -/// \brief Compares the lower double-precision floating-point values in each of +/// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is not greater than the corresponding /// value in the second parameter. @@ -956,7 +956,7 @@ return (__m128d) { __c[0], __a[1] }; } -/// \brief Compares the lower double-precision floating-point values in each of +/// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is not greater than or equal to the /// corresponding value in the second parameter. @@ -982,7 +982,7 @@ return (__m128d) { __c[0], __a[1] }; } -/// \brief Compares the lower double-precision floating-point values in each of +/// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] for equality. /// /// The comparison yields 0 for false, 1 for true. If either of the two @@ -1006,7 +1006,7 @@ return __builtin_ia32_comisdeq((__v2df)__a, (__v2df)__b); } -/// \brief Compares the lower double-precision floating-point values in each of +/// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is less than the corresponding value in /// the second parameter. @@ -1032,7 +1032,7 @@ return __builtin_ia32_comisdlt((__v2df)__a, (__v2df)__b); } -/// \brief Compares the lower double-precision floating-point values in each of +/// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is less than or equal to the /// corresponding value in the second parameter. @@ -1058,7 +1058,7 @@ return __builtin_ia32_comisdle((__v2df)__a, (__v2df)__b); } -/// \brief Compares the lower double-precision floating-point values in each of +/// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is greater than the corresponding value /// in the second parameter. @@ -1084,7 +1084,7 @@ return __builtin_ia32_comisdgt((__v2df)__a, (__v2df)__b); } -/// \brief Compares the lower double-precision floating-point values in each of +/// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is greater than or equal to the /// corresponding value in the second parameter. @@ -1110,7 +1110,7 @@ return __builtin_ia32_comisdge((__v2df)__a, (__v2df)__b); } -/// \brief Compares the lower double-precision floating-point values in each of +/// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is unequal to the corresponding value in /// the second parameter. @@ -1136,7 +1136,7 @@ return __builtin_ia32_comisdneq((__v2df)__a, (__v2df)__b); } -/// \brief Compares the lower double-precision floating-point values in each of +/// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] for equality. The /// comparison yields 0 for false, 1 for true. /// @@ -1160,7 +1160,7 @@ return __builtin_ia32_ucomisdeq((__v2df)__a, (__v2df)__b); } -/// \brief Compares the lower double-precision floating-point values in each of +/// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is less than the corresponding value in /// the second parameter. @@ -1186,7 +1186,7 @@ return __builtin_ia32_ucomisdlt((__v2df)__a, (__v2df)__b); } -/// \brief Compares the lower double-precision floating-point values in each of +/// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is less than or equal to the /// corresponding value in the second parameter. @@ -1212,7 +1212,7 @@ return __builtin_ia32_ucomisdle((__v2df)__a, (__v2df)__b); } -/// \brief Compares the lower double-precision floating-point values in each of +/// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is greater than the corresponding value /// in the second parameter. @@ -1238,7 +1238,7 @@ return __builtin_ia32_ucomisdgt((__v2df)__a, (__v2df)__b); } -/// \brief Compares the lower double-precision floating-point values in each of +/// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is greater than or equal to the /// corresponding value in the second parameter. @@ -1264,7 +1264,7 @@ return __builtin_ia32_ucomisdge((__v2df)__a, (__v2df)__b); } -/// \brief Compares the lower double-precision floating-point values in each of +/// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is unequal to the corresponding value in /// the second parameter. @@ -1290,7 +1290,7 @@ return __builtin_ia32_ucomisdneq((__v2df)__a, (__v2df)__b); } -/// \brief Converts the two double-precision floating-point elements of a +/// Converts the two double-precision floating-point elements of a /// 128-bit vector of [2 x double] into two single-precision floating-point /// values, returned in the lower 64 bits of a 128-bit vector of [4 x float]. /// The upper 64 bits of the result vector are set to zero. @@ -1309,7 +1309,7 @@ return __builtin_ia32_cvtpd2ps((__v2df)__a); } -/// \brief Converts the lower two single-precision floating-point elements of a +/// Converts the lower two single-precision floating-point elements of a /// 128-bit vector of [4 x float] into two double-precision floating-point /// values, returned in a 128-bit vector of [2 x double]. The upper two /// elements of the input vector are unused. @@ -1330,7 +1330,7 @@ __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 0, 1), __v2df); } -/// \brief Converts the lower two integer elements of a 128-bit vector of +/// Converts the lower two integer elements of a 128-bit vector of /// [4 x i32] into two double-precision floating-point values, returned in a /// 128-bit vector of [2 x double]. /// @@ -1353,7 +1353,7 @@ __builtin_shufflevector((__v4si)__a, (__v4si)__a, 0, 1), __v2df); } -/// \brief Converts the two double-precision floating-point elements of a +/// Converts the two double-precision floating-point elements of a /// 128-bit vector of [2 x double] into two signed 32-bit integer values, /// returned in the lower 64 bits of a 128-bit vector of [4 x i32]. The upper /// 64 bits of the result vector are set to zero. @@ -1372,7 +1372,7 @@ return __builtin_ia32_cvtpd2dq((__v2df)__a); } -/// \brief Converts the low-order element of a 128-bit vector of [2 x double] +/// Converts the low-order element of a 128-bit vector of [2 x double] /// into a 32-bit signed integer value. /// /// \headerfile <x86intrin.h> @@ -1389,7 +1389,7 @@ return __builtin_ia32_cvtsd2si((__v2df)__a); } -/// \brief Converts the lower double-precision floating-point element of a +/// Converts the lower double-precision floating-point element of a /// 128-bit vector of [2 x double], in the second parameter, into a /// single-precision floating-point value, returned in the lower 32 bits of a /// 128-bit vector of [4 x float]. The upper 96 bits of the result vector are @@ -1414,7 +1414,7 @@ return (__m128)__builtin_ia32_cvtsd2ss((__v4sf)__a, (__v2df)__b); } -/// \brief Converts a 32-bit signed integer value, in the second parameter, into +/// Converts a 32-bit signed integer value, in the second parameter, into /// a double-precision floating-point value, returned in the lower 64 bits of /// a 128-bit vector of [2 x double]. The upper 64 bits of the result vector /// are copied from the upper 64 bits of the first parameter. @@ -1438,7 +1438,7 @@ return __a; } -/// \brief Converts the lower single-precision floating-point element of a +/// Converts the lower single-precision floating-point element of a /// 128-bit vector of [4 x float], in the second parameter, into a /// double-precision floating-point value, returned in the lower 64 bits of /// a 128-bit vector of [2 x double]. The upper 64 bits of the result vector @@ -1464,7 +1464,7 @@ return __a; } -/// \brief Converts the two double-precision floating-point elements of a +/// Converts the two double-precision floating-point elements of a /// 128-bit vector of [2 x double] into two signed 32-bit integer values, /// returned in the lower 64 bits of a 128-bit vector of [4 x i32]. /// @@ -1487,7 +1487,7 @@ return (__m128i)__builtin_ia32_cvttpd2dq((__v2df)__a); } -/// \brief Converts the low-order element of a [2 x double] vector into a 32-bit +/// Converts the low-order element of a [2 x double] vector into a 32-bit /// signed integer value, truncating the result when it is inexact. /// /// \headerfile <x86intrin.h> @@ -1505,7 +1505,7 @@ return __builtin_ia32_cvttsd2si((__v2df)__a); } -/// \brief Converts the two double-precision floating-point elements of a +/// Converts the two double-precision floating-point elements of a /// 128-bit vector of [2 x double] into two signed 32-bit integer values, /// returned in a 64-bit vector of [2 x i32]. /// @@ -1522,7 +1522,7 @@ return (__m64)__builtin_ia32_cvtpd2pi((__v2df)__a); } -/// \brief Converts the two double-precision floating-point elements of a +/// Converts the two double-precision floating-point elements of a /// 128-bit vector of [2 x double] into two signed 32-bit integer values, /// returned in a 64-bit vector of [2 x i32]. /// @@ -1542,7 +1542,7 @@ return (__m64)__builtin_ia32_cvttpd2pi((__v2df)__a); } -/// \brief Converts the two signed 32-bit integer elements of a 64-bit vector of +/// Converts the two signed 32-bit integer elements of a 64-bit vector of /// [2 x i32] into two double-precision floating-point values, returned in a /// 128-bit vector of [2 x double]. /// @@ -1559,7 +1559,7 @@ return __builtin_ia32_cvtpi2pd((__v2si)__a); } -/// \brief Returns the low-order element of a 128-bit vector of [2 x double] as +/// Returns the low-order element of a 128-bit vector of [2 x double] as /// a double-precision floating-point value. /// /// \headerfile <x86intrin.h> @@ -1576,7 +1576,7 @@ return __a[0]; } -/// \brief Loads a 128-bit floating-point vector of [2 x double] from an aligned +/// Loads a 128-bit floating-point vector of [2 x double] from an aligned /// memory location. /// /// \headerfile <x86intrin.h> @@ -1593,7 +1593,7 @@ return *(__m128d*)__dp; } -/// \brief Loads a double-precision floating-point value from a specified memory +/// Loads a double-precision floating-point value from a specified memory /// location and duplicates it to both vector elements of a 128-bit vector of /// [2 x double]. /// @@ -1617,7 +1617,7 @@ #define _mm_load_pd1(dp) _mm_load1_pd(dp) -/// \brief Loads two double-precision values, in reverse order, from an aligned +/// Loads two double-precision values, in reverse order, from an aligned /// memory location into a 128-bit vector of [2 x double]. /// /// \headerfile <x86intrin.h> @@ -1638,7 +1638,7 @@ return __builtin_shufflevector((__v2df)__u, (__v2df)__u, 1, 0); } -/// \brief Loads a 128-bit floating-point vector of [2 x double] from an +/// Loads a 128-bit floating-point vector of [2 x double] from an /// unaligned memory location. /// /// \headerfile <x86intrin.h> @@ -1658,7 +1658,7 @@ return ((struct __loadu_pd*)__dp)->__v; } -/// \brief Loads a 64-bit integer value to the low element of a 128-bit integer +/// Loads a 64-bit integer value to the low element of a 128-bit integer /// vector and clears the upper element. /// /// \headerfile <x86intrin.h> @@ -1679,7 +1679,7 @@ return (__m128i){__u, 0L}; } -/// \brief Loads a 64-bit double-precision value to the low element of a +/// Loads a 64-bit double-precision value to the low element of a /// 128-bit integer vector and clears the upper element. /// /// \headerfile <x86intrin.h> @@ -1700,7 +1700,7 @@ return (__m128d){ __u, 0 }; } -/// \brief Loads a double-precision value into the high-order bits of a 128-bit +/// Loads a double-precision value into the high-order bits of a 128-bit /// vector of [2 x double]. The low-order bits are copied from the low-order /// bits of the first operand. /// @@ -1727,7 +1727,7 @@ return (__m128d){ __a[0], __u }; } -/// \brief Loads a double-precision value into the low-order bits of a 128-bit +/// Loads a double-precision value into the low-order bits of a 128-bit /// vector of [2 x double]. The high-order bits are copied from the /// high-order bits of the first operand. /// @@ -1754,7 +1754,7 @@ return (__m128d){ __u, __a[1] }; } -/// \brief Constructs a 128-bit floating-point vector of [2 x double] with +/// Constructs a 128-bit floating-point vector of [2 x double] with /// unspecified content. This could be used as an argument to another /// intrinsic function where the argument is required but the value is not /// actually used. @@ -1771,7 +1771,7 @@ return (__m128d)__builtin_ia32_undef128(); } -/// \brief Constructs a 128-bit floating-point vector of [2 x double]. The lower +/// Constructs a 128-bit floating-point vector of [2 x double]. The lower /// 64 bits of the vector are initialized with the specified double-precision /// floating-point value. The upper 64 bits are set to zero. /// @@ -1791,7 +1791,7 @@ return (__m128d){ __w, 0 }; } -/// \brief Constructs a 128-bit floating-point vector of [2 x double], with each +/// Constructs a 128-bit floating-point vector of [2 x double], with each /// of the two double-precision floating-point vector elements set to the /// specified double-precision floating-point value. /// @@ -1809,7 +1809,7 @@ return (__m128d){ __w, __w }; } -/// \brief Constructs a 128-bit floating-point vector of [2 x double], with each +/// Constructs a 128-bit floating-point vector of [2 x double], with each /// of the two double-precision floating-point vector elements set to the /// specified double-precision floating-point value. /// @@ -1827,7 +1827,7 @@ return _mm_set1_pd(__w); } -/// \brief Constructs a 128-bit floating-point vector of [2 x double] +/// Constructs a 128-bit floating-point vector of [2 x double] /// initialized with the specified double-precision floating-point values. /// /// \headerfile <x86intrin.h> @@ -1847,7 +1847,7 @@ return (__m128d){ __x, __w }; } -/// \brief Constructs a 128-bit floating-point vector of [2 x double], +/// Constructs a 128-bit floating-point vector of [2 x double], /// initialized in reverse order with the specified double-precision /// floating-point values. /// @@ -1868,7 +1868,7 @@ return (__m128d){ __w, __x }; } -/// \brief Constructs a 128-bit floating-point vector of [2 x double] +/// Constructs a 128-bit floating-point vector of [2 x double] /// initialized to zero. /// /// \headerfile <x86intrin.h> @@ -1883,7 +1883,7 @@ return (__m128d){ 0, 0 }; } -/// \brief Constructs a 128-bit floating-point vector of [2 x double]. The lower +/// Constructs a 128-bit floating-point vector of [2 x double]. The lower /// 64 bits are set to the lower 64 bits of the second parameter. The upper /// 64 bits are set to the upper 64 bits of the first parameter. /// @@ -1904,7 +1904,7 @@ return (__m128d){ __b[0], __a[1] }; } -/// \brief Stores the lower 64 bits of a 128-bit vector of [2 x double] to a +/// Stores the lower 64 bits of a 128-bit vector of [2 x double] to a /// memory location. /// /// \headerfile <x86intrin.h> @@ -1924,7 +1924,7 @@ ((struct __mm_store_sd_struct*)__dp)->__u = __a[0]; } -/// \brief Moves packed double-precision values from a 128-bit vector of +/// Moves packed double-precision values from a 128-bit vector of /// [2 x double] to a memory location. /// /// \headerfile <x86intrin.h> @@ -1943,7 +1943,7 @@ *(__m128d*)__dp = __a; } -/// \brief Moves the lower 64 bits of a 128-bit vector of [2 x double] twice to +/// Moves the lower 64 bits of a 128-bit vector of [2 x double] twice to /// the upper and lower 64 bits of a memory location. /// /// \headerfile <x86intrin.h> @@ -1964,7 +1964,7 @@ _mm_store_pd(__dp, __a); } -/// \brief Moves the lower 64 bits of a 128-bit vector of [2 x double] twice to +/// Moves the lower 64 bits of a 128-bit vector of [2 x double] twice to /// the upper and lower 64 bits of a memory location. /// /// \headerfile <x86intrin.h> @@ -1984,7 +1984,7 @@ return _mm_store1_pd(__dp, __a); } -/// \brief Stores a 128-bit vector of [2 x double] into an unaligned memory +/// Stores a 128-bit vector of [2 x double] into an unaligned memory /// location. /// /// \headerfile <x86intrin.h> @@ -2005,7 +2005,7 @@ ((struct __storeu_pd*)__dp)->__v = __a; } -/// \brief Stores two double-precision values, in reverse order, from a 128-bit +/// Stores two double-precision values, in reverse order, from a 128-bit /// vector of [2 x double] to a 16-byte aligned memory location. /// /// \headerfile <x86intrin.h> @@ -2026,7 +2026,7 @@ *(__m128d *)__dp = __a; } -/// \brief Stores the upper 64 bits of a 128-bit vector of [2 x double] to a +/// Stores the upper 64 bits of a 128-bit vector of [2 x double] to a /// memory location. /// /// \headerfile <x86intrin.h> @@ -2046,7 +2046,7 @@ ((struct __mm_storeh_pd_struct*)__dp)->__u = __a[1]; } -/// \brief Stores the lower 64 bits of a 128-bit vector of [2 x double] to a +/// Stores the lower 64 bits of a 128-bit vector of [2 x double] to a /// memory location. /// /// \headerfile <x86intrin.h> @@ -2066,7 +2066,7 @@ ((struct __mm_storeh_pd_struct*)__dp)->__u = __a[0]; } -/// \brief Adds the corresponding elements of two 128-bit vectors of [16 x i8], +/// Adds the corresponding elements of two 128-bit vectors of [16 x i8], /// saving the lower 8 bits of each sum in the corresponding element of a /// 128-bit result vector of [16 x i8]. /// @@ -2088,7 +2088,7 @@ return (__m128i)((__v16qu)__a + (__v16qu)__b); } -/// \brief Adds the corresponding elements of two 128-bit vectors of [8 x i16], +/// Adds the corresponding elements of two 128-bit vectors of [8 x i16], /// saving the lower 16 bits of each sum in the corresponding element of a /// 128-bit result vector of [8 x i16]. /// @@ -2110,7 +2110,7 @@ return (__m128i)((__v8hu)__a + (__v8hu)__b); } -/// \brief Adds the corresponding elements of two 128-bit vectors of [4 x i32], +/// Adds the corresponding elements of two 128-bit vectors of [4 x i32], /// saving the lower 32 bits of each sum in the corresponding element of a /// 128-bit result vector of [4 x i32]. /// @@ -2132,7 +2132,7 @@ return (__m128i)((__v4su)__a + (__v4su)__b); } -/// \brief Adds two signed or unsigned 64-bit integer values, returning the +/// Adds two signed or unsigned 64-bit integer values, returning the /// lower 64 bits of the sum. /// /// \headerfile <x86intrin.h> @@ -2150,7 +2150,7 @@ return (__m64)__builtin_ia32_paddq((__v1di)__a, (__v1di)__b); } -/// \brief Adds the corresponding elements of two 128-bit vectors of [2 x i64], +/// Adds the corresponding elements of two 128-bit vectors of [2 x i64], /// saving the lower 64 bits of each sum in the corresponding element of a /// 128-bit result vector of [2 x i64]. /// @@ -2172,7 +2172,7 @@ return (__m128i)((__v2du)__a + (__v2du)__b); } -/// \brief Adds, with saturation, the corresponding elements of two 128-bit +/// Adds, with saturation, the corresponding elements of two 128-bit /// signed [16 x i8] vectors, saving each sum in the corresponding element of /// a 128-bit result vector of [16 x i8]. Positive sums greater than 0x7F are /// saturated to 0x7F. Negative sums less than 0x80 are saturated to 0x80. @@ -2193,7 +2193,7 @@ return (__m128i)__builtin_ia32_paddsb128((__v16qi)__a, (__v16qi)__b); } -/// \brief Adds, with saturation, the corresponding elements of two 128-bit +/// Adds, with saturation, the corresponding elements of two 128-bit /// signed [8 x i16] vectors, saving each sum in the corresponding element of /// a 128-bit result vector of [8 x i16]. Positive sums greater than 0x7FFF /// are saturated to 0x7FFF. Negative sums less than 0x8000 are saturated to @@ -2215,7 +2215,7 @@ return (__m128i)__builtin_ia32_paddsw128((__v8hi)__a, (__v8hi)__b); } -/// \brief Adds, with saturation, the corresponding elements of two 128-bit +/// Adds, with saturation, the corresponding elements of two 128-bit /// unsigned [16 x i8] vectors, saving each sum in the corresponding element /// of a 128-bit result vector of [16 x i8]. Positive sums greater than 0xFF /// are saturated to 0xFF. Negative sums are saturated to 0x00. @@ -2236,7 +2236,7 @@ return (__m128i)__builtin_ia32_paddusb128((__v16qi)__a, (__v16qi)__b); } -/// \brief Adds, with saturation, the corresponding elements of two 128-bit +/// Adds, with saturation, the corresponding elements of two 128-bit /// unsigned [8 x i16] vectors, saving each sum in the corresponding element /// of a 128-bit result vector of [8 x i16]. Positive sums greater than /// 0xFFFF are saturated to 0xFFFF. Negative sums are saturated to 0x0000. @@ -2257,7 +2257,7 @@ return (__m128i)__builtin_ia32_paddusw128((__v8hi)__a, (__v8hi)__b); } -/// \brief Computes the rounded avarages of corresponding elements of two +/// Computes the rounded avarages of corresponding elements of two /// 128-bit unsigned [16 x i8] vectors, saving each result in the /// corresponding element of a 128-bit result vector of [16 x i8]. /// @@ -2281,7 +2281,7 @@ >> 1, __v16qu); } -/// \brief Computes the rounded avarages of corresponding elements of two +/// Computes the rounded avarages of corresponding elements of two /// 128-bit unsigned [8 x i16] vectors, saving each result in the /// corresponding element of a 128-bit result vector of [8 x i16]. /// @@ -2305,7 +2305,7 @@ >> 1, __v8hu); } -/// \brief Multiplies the corresponding elements of two 128-bit signed [8 x i16] +/// Multiplies the corresponding elements of two 128-bit signed [8 x i16] /// vectors, producing eight intermediate 32-bit signed integer products, and /// adds the consecutive pairs of 32-bit products to form a 128-bit signed /// [4 x i32] vector. @@ -2331,7 +2331,7 @@ return (__m128i)__builtin_ia32_pmaddwd128((__v8hi)__a, (__v8hi)__b); } -/// \brief Compares corresponding elements of two 128-bit signed [8 x i16] +/// Compares corresponding elements of two 128-bit signed [8 x i16] /// vectors, saving the greater value from each comparison in the /// corresponding element of a 128-bit result vector of [8 x i16]. /// @@ -2351,7 +2351,7 @@ return (__m128i)__builtin_ia32_pmaxsw128((__v8hi)__a, (__v8hi)__b); } -/// \brief Compares corresponding elements of two 128-bit unsigned [16 x i8] +/// Compares corresponding elements of two 128-bit unsigned [16 x i8] /// vectors, saving the greater value from each comparison in the /// corresponding element of a 128-bit result vector of [16 x i8]. /// @@ -2371,7 +2371,7 @@ return (__m128i)__builtin_ia32_pmaxub128((__v16qi)__a, (__v16qi)__b); } -/// \brief Compares corresponding elements of two 128-bit signed [8 x i16] +/// Compares corresponding elements of two 128-bit signed [8 x i16] /// vectors, saving the smaller value from each comparison in the /// corresponding element of a 128-bit result vector of [8 x i16]. /// @@ -2391,7 +2391,7 @@ return (__m128i)__builtin_ia32_pminsw128((__v8hi)__a, (__v8hi)__b); } -/// \brief Compares corresponding elements of two 128-bit unsigned [16 x i8] +/// Compares corresponding elements of two 128-bit unsigned [16 x i8] /// vectors, saving the smaller value from each comparison in the /// corresponding element of a 128-bit result vector of [16 x i8]. /// @@ -2411,7 +2411,7 @@ return (__m128i)__builtin_ia32_pminub128((__v16qi)__a, (__v16qi)__b); } -/// \brief Multiplies the corresponding elements of two signed [8 x i16] +/// Multiplies the corresponding elements of two signed [8 x i16] /// vectors, saving the upper 16 bits of each 32-bit product in the /// corresponding element of a 128-bit signed [8 x i16] result vector. /// @@ -2431,7 +2431,7 @@ return (__m128i)__builtin_ia32_pmulhw128((__v8hi)__a, (__v8hi)__b); } -/// \brief Multiplies the corresponding elements of two unsigned [8 x i16] +/// Multiplies the corresponding elements of two unsigned [8 x i16] /// vectors, saving the upper 16 bits of each 32-bit product in the /// corresponding element of a 128-bit unsigned [8 x i16] result vector. /// @@ -2451,7 +2451,7 @@ return (__m128i)__builtin_ia32_pmulhuw128((__v8hi)__a, (__v8hi)__b); } -/// \brief Multiplies the corresponding elements of two signed [8 x i16] +/// Multiplies the corresponding elements of two signed [8 x i16] /// vectors, saving the lower 16 bits of each 32-bit product in the /// corresponding element of a 128-bit signed [8 x i16] result vector. /// @@ -2471,7 +2471,7 @@ return (__m128i)((__v8hu)__a * (__v8hu)__b); } -/// \brief Multiplies 32-bit unsigned integer values contained in the lower bits +/// Multiplies 32-bit unsigned integer values contained in the lower bits /// of the two 64-bit integer vectors and returns the 64-bit unsigned /// product. /// @@ -2490,7 +2490,7 @@ return __builtin_ia32_pmuludq((__v2si)__a, (__v2si)__b); } -/// \brief Multiplies 32-bit unsigned integer values contained in the lower +/// Multiplies 32-bit unsigned integer values contained in the lower /// bits of the corresponding elements of two [2 x i64] vectors, and returns /// the 64-bit products in the corresponding elements of a [2 x i64] vector. /// @@ -2509,7 +2509,7 @@ return __builtin_ia32_pmuludq128((__v4si)__a, (__v4si)__b); } -/// \brief Computes the absolute differences of corresponding 8-bit integer +/// Computes the absolute differences of corresponding 8-bit integer /// values in two 128-bit vectors. Sums the first 8 absolute differences, and /// separately sums the second 8 absolute differences. Packs these two /// unsigned 16-bit integer sums into the upper and lower elements of a @@ -2531,7 +2531,7 @@ return __builtin_ia32_psadbw128((__v16qi)__a, (__v16qi)__b); } -/// \brief Subtracts the corresponding 8-bit integer values in the operands. +/// Subtracts the corresponding 8-bit integer values in the operands. /// /// \headerfile <x86intrin.h> /// @@ -2549,7 +2549,7 @@ return (__m128i)((__v16qu)__a - (__v16qu)__b); } -/// \brief Subtracts the corresponding 16-bit integer values in the operands. +/// Subtracts the corresponding 16-bit integer values in the operands. /// /// \headerfile <x86intrin.h> /// @@ -2567,7 +2567,7 @@ return (__m128i)((__v8hu)__a - (__v8hu)__b); } -/// \brief Subtracts the corresponding 32-bit integer values in the operands. +/// Subtracts the corresponding 32-bit integer values in the operands. /// /// \headerfile <x86intrin.h> /// @@ -2585,7 +2585,7 @@ return (__m128i)((__v4su)__a - (__v4su)__b); } -/// \brief Subtracts signed or unsigned 64-bit integer values and writes the +/// Subtracts signed or unsigned 64-bit integer values and writes the /// difference to the corresponding bits in the destination. /// /// \headerfile <x86intrin.h> @@ -2604,7 +2604,7 @@ return (__m64)__builtin_ia32_psubq((__v1di)__a, (__v1di)__b); } -/// \brief Subtracts the corresponding elements of two [2 x i64] vectors. +/// Subtracts the corresponding elements of two [2 x i64] vectors. /// /// \headerfile <x86intrin.h> /// @@ -2622,7 +2622,7 @@ return (__m128i)((__v2du)__a - (__v2du)__b); } -/// \brief Subtracts corresponding 8-bit signed integer values in the input and +/// Subtracts corresponding 8-bit signed integer values in the input and /// returns the differences in the corresponding bytes in the destination. /// Differences greater than 0x7F are saturated to 0x7F, and differences less /// than 0x80 are saturated to 0x80. @@ -2643,7 +2643,7 @@ return (__m128i)__builtin_ia32_psubsb128((__v16qi)__a, (__v16qi)__b); } -/// \brief Subtracts corresponding 16-bit signed integer values in the input and +/// Subtracts corresponding 16-bit signed integer values in the input and /// returns the differences in the corresponding bytes in the destination. /// Differences greater than 0x7FFF are saturated to 0x7FFF, and values less /// than 0x8000 are saturated to 0x8000. @@ -2664,7 +2664,7 @@ return (__m128i)__builtin_ia32_psubsw128((__v8hi)__a, (__v8hi)__b); } -/// \brief Subtracts corresponding 8-bit unsigned integer values in the input +/// Subtracts corresponding 8-bit unsigned integer values in the input /// and returns the differences in the corresponding bytes in the /// destination. Differences less than 0x00 are saturated to 0x00. /// @@ -2684,7 +2684,7 @@ return (__m128i)__builtin_ia32_psubusb128((__v16qi)__a, (__v16qi)__b); } -/// \brief Subtracts corresponding 16-bit unsigned integer values in the input +/// Subtracts corresponding 16-bit unsigned integer values in the input /// and returns the differences in the corresponding bytes in the /// destination. Differences less than 0x0000 are saturated to 0x0000. /// @@ -2704,7 +2704,7 @@ return (__m128i)__builtin_ia32_psubusw128((__v8hi)__a, (__v8hi)__b); } -/// \brief Performs a bitwise AND of two 128-bit integer vectors. +/// Performs a bitwise AND of two 128-bit integer vectors. /// /// \headerfile <x86intrin.h> /// @@ -2722,7 +2722,7 @@ return (__m128i)((__v2du)__a & (__v2du)__b); } -/// \brief Performs a bitwise AND of two 128-bit integer vectors, using the +/// Performs a bitwise AND of two 128-bit integer vectors, using the /// one's complement of the values contained in the first source operand. /// /// \headerfile <x86intrin.h> @@ -2741,7 +2741,7 @@ { return (__m128i)(~(__v2du)__a & (__v2du)__b); } -/// \brief Performs a bitwise OR of two 128-bit integer vectors. +/// Performs a bitwise OR of two 128-bit integer vectors. /// /// \headerfile <x86intrin.h> /// @@ -2759,7 +2759,7 @@ return (__m128i)((__v2du)__a | (__v2du)__b); } -/// \brief Performs a bitwise exclusive OR of two 128-bit integer vectors. +/// Performs a bitwise exclusive OR of two 128-bit integer vectors. /// /// \headerfile <x86intrin.h> /// @@ -2777,7 +2777,7 @@ return (__m128i)((__v2du)__a ^ (__v2du)__b); } -/// \brief Left-shifts the 128-bit integer vector operand by the specified +/// Left-shifts the 128-bit integer vector operand by the specified /// number of bytes. Low-order bits are cleared. /// /// \headerfile <x86intrin.h> @@ -2818,7 +2818,7 @@ #define _mm_bslli_si128(a, imm) \ _mm_slli_si128((a), (imm)) -/// \brief Left-shifts each 16-bit value in the 128-bit integer vector operand +/// Left-shifts each 16-bit value in the 128-bit integer vector operand /// by the specified number of bits. Low-order bits are cleared. /// /// \headerfile <x86intrin.h> @@ -2837,7 +2837,7 @@ return (__m128i)__builtin_ia32_psllwi128((__v8hi)__a, __count); } -/// \brief Left-shifts each 16-bit value in the 128-bit integer vector operand +/// Left-shifts each 16-bit value in the 128-bit integer vector operand /// by the specified number of bits. Low-order bits are cleared. /// /// \headerfile <x86intrin.h> @@ -2856,7 +2856,7 @@ return (__m128i)__builtin_ia32_psllw128((__v8hi)__a, (__v8hi)__count); } -/// \brief Left-shifts each 32-bit value in the 128-bit integer vector operand +/// Left-shifts each 32-bit value in the 128-bit integer vector operand /// by the specified number of bits. Low-order bits are cleared. /// /// \headerfile <x86intrin.h> @@ -2875,7 +2875,7 @@ return (__m128i)__builtin_ia32_pslldi128((__v4si)__a, __count); } -/// \brief Left-shifts each 32-bit value in the 128-bit integer vector operand +/// Left-shifts each 32-bit value in the 128-bit integer vector operand /// by the specified number of bits. Low-order bits are cleared. /// /// \headerfile <x86intrin.h> @@ -2894,7 +2894,7 @@ return (__m128i)__builtin_ia32_pslld128((__v4si)__a, (__v4si)__count); } -/// \brief Left-shifts each 64-bit value in the 128-bit integer vector operand +/// Left-shifts each 64-bit value in the 128-bit integer vector operand /// by the specified number of bits. Low-order bits are cleared. /// /// \headerfile <x86intrin.h> @@ -2913,7 +2913,7 @@ return __builtin_ia32_psllqi128((__v2di)__a, __count); } -/// \brief Left-shifts each 64-bit value in the 128-bit integer vector operand +/// Left-shifts each 64-bit value in the 128-bit integer vector operand /// by the specified number of bits. Low-order bits are cleared. /// /// \headerfile <x86intrin.h> @@ -2932,7 +2932,7 @@ return __builtin_ia32_psllq128((__v2di)__a, (__v2di)__count); } -/// \brief Right-shifts each 16-bit value in the 128-bit integer vector operand +/// Right-shifts each 16-bit value in the 128-bit integer vector operand /// by the specified number of bits. High-order bits are filled with the sign /// bit of the initial value. /// @@ -2952,7 +2952,7 @@ return (__m128i)__builtin_ia32_psrawi128((__v8hi)__a, __count); } -/// \brief Right-shifts each 16-bit value in the 128-bit integer vector operand +/// Right-shifts each 16-bit value in the 128-bit integer vector operand /// by the specified number of bits. High-order bits are filled with the sign /// bit of the initial value. /// @@ -2972,7 +2972,7 @@ return (__m128i)__builtin_ia32_psraw128((__v8hi)__a, (__v8hi)__count); } -/// \brief Right-shifts each 32-bit value in the 128-bit integer vector operand +/// Right-shifts each 32-bit value in the 128-bit integer vector operand /// by the specified number of bits. High-order bits are filled with the sign /// bit of the initial value. /// @@ -2992,7 +2992,7 @@ return (__m128i)__builtin_ia32_psradi128((__v4si)__a, __count); } -/// \brief Right-shifts each 32-bit value in the 128-bit integer vector operand +/// Right-shifts each 32-bit value in the 128-bit integer vector operand /// by the specified number of bits. High-order bits are filled with the sign /// bit of the initial value. /// @@ -3012,7 +3012,7 @@ return (__m128i)__builtin_ia32_psrad128((__v4si)__a, (__v4si)__count); } -/// \brief Right-shifts the 128-bit integer vector operand by the specified +/// Right-shifts the 128-bit integer vector operand by the specified /// number of bytes. High-order bits are cleared. /// /// \headerfile <x86intrin.h> @@ -3053,7 +3053,7 @@ #define _mm_bsrli_si128(a, imm) \ _mm_srli_si128((a), (imm)) -/// \brief Right-shifts each of 16-bit values in the 128-bit integer vector +/// Right-shifts each of 16-bit values in the 128-bit integer vector /// operand by the specified number of bits. High-order bits are cleared. /// /// \headerfile <x86intrin.h> @@ -3072,7 +3072,7 @@ return (__m128i)__builtin_ia32_psrlwi128((__v8hi)__a, __count); } -/// \brief Right-shifts each of 16-bit values in the 128-bit integer vector +/// Right-shifts each of 16-bit values in the 128-bit integer vector /// operand by the specified number of bits. High-order bits are cleared. /// /// \headerfile <x86intrin.h> @@ -3091,7 +3091,7 @@ return (__m128i)__builtin_ia32_psrlw128((__v8hi)__a, (__v8hi)__count); } -/// \brief Right-shifts each of 32-bit values in the 128-bit integer vector +/// Right-shifts each of 32-bit values in the 128-bit integer vector /// operand by the specified number of bits. High-order bits are cleared. /// /// \headerfile <x86intrin.h> @@ -3110,7 +3110,7 @@ return (__m128i)__builtin_ia32_psrldi128((__v4si)__a, __count); } -/// \brief Right-shifts each of 32-bit values in the 128-bit integer vector +/// Right-shifts each of 32-bit values in the 128-bit integer vector /// operand by the specified number of bits. High-order bits are cleared. /// /// \headerfile <x86intrin.h> @@ -3129,7 +3129,7 @@ return (__m128i)__builtin_ia32_psrld128((__v4si)__a, (__v4si)__count); } -/// \brief Right-shifts each of 64-bit values in the 128-bit integer vector +/// Right-shifts each of 64-bit values in the 128-bit integer vector /// operand by the specified number of bits. High-order bits are cleared. /// /// \headerfile <x86intrin.h> @@ -3148,7 +3148,7 @@ return __builtin_ia32_psrlqi128((__v2di)__a, __count); } -/// \brief Right-shifts each of 64-bit values in the 128-bit integer vector +/// Right-shifts each of 64-bit values in the 128-bit integer vector /// operand by the specified number of bits. High-order bits are cleared. /// /// \headerfile <x86intrin.h> @@ -3167,7 +3167,7 @@ return __builtin_ia32_psrlq128((__v2di)__a, (__v2di)__count); } -/// \brief Compares each of the corresponding 8-bit values of the 128-bit +/// Compares each of the corresponding 8-bit values of the 128-bit /// integer vectors for equality. Each comparison yields 0x0 for false, 0xFF /// for true. /// @@ -3186,7 +3186,7 @@ return (__m128i)((__v16qi)__a == (__v16qi)__b); } -/// \brief Compares each of the corresponding 16-bit values of the 128-bit +/// Compares each of the corresponding 16-bit values of the 128-bit /// integer vectors for equality. Each comparison yields 0x0 for false, /// 0xFFFF for true. /// @@ -3205,7 +3205,7 @@ return (__m128i)((__v8hi)__a == (__v8hi)__b); } -/// \brief Compares each of the corresponding 32-bit values of the 128-bit +/// Compares each of the corresponding 32-bit values of the 128-bit /// integer vectors for equality. Each comparison yields 0x0 for false, /// 0xFFFFFFFF for true. /// @@ -3224,7 +3224,7 @@ return (__m128i)((__v4si)__a == (__v4si)__b); } -/// \brief Compares each of the corresponding signed 8-bit values of the 128-bit +/// Compares each of the corresponding signed 8-bit values of the 128-bit /// integer vectors to determine if the values in the first operand are /// greater than those in the second operand. Each comparison yields 0x0 for /// false, 0xFF for true. @@ -3246,7 +3246,7 @@ return (__m128i)((__v16qs)__a > (__v16qs)__b); } -/// \brief Compares each of the corresponding signed 16-bit values of the +/// Compares each of the corresponding signed 16-bit values of the /// 128-bit integer vectors to determine if the values in the first operand /// are greater than those in the second operand. /// @@ -3267,7 +3267,7 @@ return (__m128i)((__v8hi)__a > (__v8hi)__b); } -/// \brief Compares each of the corresponding signed 32-bit values of the +/// Compares each of the corresponding signed 32-bit values of the /// 128-bit integer vectors to determine if the values in the first operand /// are greater than those in the second operand. /// @@ -3288,7 +3288,7 @@ return (__m128i)((__v4si)__a > (__v4si)__b); } -/// \brief Compares each of the corresponding signed 8-bit values of the 128-bit +/// Compares each of the corresponding signed 8-bit values of the 128-bit /// integer vectors to determine if the values in the first operand are less /// than those in the second operand. /// @@ -3309,7 +3309,7 @@ return _mm_cmpgt_epi8(__b, __a); } -/// \brief Compares each of the corresponding signed 16-bit values of the +/// Compares each of the corresponding signed 16-bit values of the /// 128-bit integer vectors to determine if the values in the first operand /// are less than those in the second operand. /// @@ -3330,7 +3330,7 @@ return _mm_cmpgt_epi16(__b, __a); } -/// \brief Compares each of the corresponding signed 32-bit values of the +/// Compares each of the corresponding signed 32-bit values of the /// 128-bit integer vectors to determine if the values in the first operand /// are less than those in the second operand. /// @@ -3352,7 +3352,7 @@ } #ifdef __x86_64__ -/// \brief Converts a 64-bit signed integer value from the second operand into a +/// Converts a 64-bit signed integer value from the second operand into a /// double-precision value and returns it in the lower element of a [2 x /// double] vector; the upper element of the returned vector is copied from /// the upper element of the first operand. @@ -3376,7 +3376,7 @@ return __a; } -/// \brief Converts the first (lower) element of a vector of [2 x double] into a +/// Converts the first (lower) element of a vector of [2 x double] into a /// 64-bit signed integer value, according to the current rounding mode. /// /// \headerfile <x86intrin.h> @@ -3393,7 +3393,7 @@ return __builtin_ia32_cvtsd2si64((__v2df)__a); } -/// \brief Converts the first (lower) element of a vector of [2 x double] into a +/// Converts the first (lower) element of a vector of [2 x double] into a /// 64-bit signed integer value, truncating the result when it is inexact. /// /// \headerfile <x86intrin.h> @@ -3412,7 +3412,7 @@ } #endif -/// \brief Converts a vector of [4 x i32] into a vector of [4 x float]. +/// Converts a vector of [4 x i32] into a vector of [4 x float]. /// /// \headerfile <x86intrin.h> /// @@ -3427,7 +3427,7 @@ return __builtin_ia32_cvtdq2ps((__v4si)__a); } -/// \brief Converts a vector of [4 x float] into a vector of [4 x i32]. +/// Converts a vector of [4 x float] into a vector of [4 x i32]. /// /// \headerfile <x86intrin.h> /// @@ -3443,7 +3443,7 @@ return (__m128i)__builtin_ia32_cvtps2dq((__v4sf)__a); } -/// \brief Converts a vector of [4 x float] into a vector of [4 x i32], +/// Converts a vector of [4 x float] into a vector of [4 x i32], /// truncating the result when it is inexact. /// /// \headerfile <x86intrin.h> @@ -3460,7 +3460,7 @@ return (__m128i)__builtin_ia32_cvttps2dq((__v4sf)__a); } -/// \brief Returns a vector of [4 x i32] where the lowest element is the input +/// Returns a vector of [4 x i32] where the lowest element is the input /// operand and the remaining elements are zero. /// /// \headerfile <x86intrin.h> @@ -3477,7 +3477,7 @@ } #ifdef __x86_64__ -/// \brief Returns a vector of [2 x i64] where the lower element is the input +/// Returns a vector of [2 x i64] where the lower element is the input /// operand and the upper element is zero. /// /// \headerfile <x86intrin.h> @@ -3494,7 +3494,7 @@ } #endif -/// \brief Moves the least significant 32 bits of a vector of [4 x i32] to a +/// Moves the least significant 32 bits of a vector of [4 x i32] to a /// 32-bit signed integer value. /// /// \headerfile <x86intrin.h> @@ -3513,7 +3513,7 @@ } #ifdef __x86_64__ -/// \brief Moves the least significant 64 bits of a vector of [2 x i64] to a +/// Moves the least significant 64 bits of a vector of [2 x i64] to a /// 64-bit signed integer value. /// /// \headerfile <x86intrin.h> @@ -3531,7 +3531,7 @@ } #endif -/// \brief Moves packed integer values from an aligned 128-bit memory location +/// Moves packed integer values from an aligned 128-bit memory location /// to elements in a 128-bit integer vector. /// /// \headerfile <x86intrin.h> @@ -3547,7 +3547,7 @@ return *__p; } -/// \brief Moves packed integer values from an unaligned 128-bit memory location +/// Moves packed integer values from an unaligned 128-bit memory location /// to elements in a 128-bit integer vector. /// /// \headerfile <x86intrin.h> @@ -3566,7 +3566,7 @@ return ((struct __loadu_si128*)__p)->__v; } -/// \brief Returns a vector of [2 x i64] where the lower element is taken from +/// Returns a vector of [2 x i64] where the lower element is taken from /// the lower element of the operand, and the upper element is zero. /// /// \headerfile <x86intrin.h> @@ -3587,7 +3587,7 @@ return (__m128i) { ((struct __mm_loadl_epi64_struct*)__p)->__u, 0}; } -/// \brief Generates a 128-bit vector of [4 x i32] with unspecified content. +/// Generates a 128-bit vector of [4 x i32] with unspecified content. /// This could be used as an argument to another intrinsic function where the /// argument is required but the value is not actually used. /// @@ -3602,7 +3602,7 @@ return (__m128i)__builtin_ia32_undef128(); } -/// \brief Initializes both 64-bit values in a 128-bit vector of [2 x i64] with +/// Initializes both 64-bit values in a 128-bit vector of [2 x i64] with /// the specified 64-bit integer values. /// /// \headerfile <x86intrin.h> @@ -3624,7 +3624,7 @@ return (__m128i){ __q0, __q1 }; } -/// \brief Initializes both 64-bit values in a 128-bit vector of [2 x i64] with +/// Initializes both 64-bit values in a 128-bit vector of [2 x i64] with /// the specified 64-bit integer values. /// /// \headerfile <x86intrin.h> @@ -3646,7 +3646,7 @@ return (__m128i){ (long long)__q0, (long long)__q1 }; } -/// \brief Initializes the 32-bit values in a 128-bit vector of [4 x i32] with +/// Initializes the 32-bit values in a 128-bit vector of [4 x i32] with /// the specified 32-bit integer values. /// /// \headerfile <x86intrin.h> @@ -3674,7 +3674,7 @@ return (__m128i)(__v4si){ __i0, __i1, __i2, __i3}; } -/// \brief Initializes the 16-bit values in a 128-bit vector of [8 x i16] with +/// Initializes the 16-bit values in a 128-bit vector of [8 x i16] with /// the specified 16-bit integer values. /// /// \headerfile <x86intrin.h> @@ -3714,7 +3714,7 @@ return (__m128i)(__v8hi){ __w0, __w1, __w2, __w3, __w4, __w5, __w6, __w7 }; } -/// \brief Initializes the 8-bit values in a 128-bit vector of [16 x i8] with +/// Initializes the 8-bit values in a 128-bit vector of [16 x i8] with /// the specified 8-bit integer values. /// /// \headerfile <x86intrin.h> @@ -3762,7 +3762,7 @@ return (__m128i)(__v16qi){ __b0, __b1, __b2, __b3, __b4, __b5, __b6, __b7, __b8, __b9, __b10, __b11, __b12, __b13, __b14, __b15 }; } -/// \brief Initializes both values in a 128-bit integer vector with the +/// Initializes both values in a 128-bit integer vector with the /// specified 64-bit integer value. /// /// \headerfile <x86intrin.h> @@ -3781,7 +3781,7 @@ return (__m128i){ __q, __q }; } -/// \brief Initializes both values in a 128-bit vector of [2 x i64] with the +/// Initializes both values in a 128-bit vector of [2 x i64] with the /// specified 64-bit value. /// /// \headerfile <x86intrin.h> @@ -3800,7 +3800,7 @@ return (__m128i){ (long long)__q, (long long)__q }; } -/// \brief Initializes all values in a 128-bit vector of [4 x i32] with the +/// Initializes all values in a 128-bit vector of [4 x i32] with the /// specified 32-bit value. /// /// \headerfile <x86intrin.h> @@ -3819,7 +3819,7 @@ return (__m128i)(__v4si){ __i, __i, __i, __i }; } -/// \brief Initializes all values in a 128-bit vector of [8 x i16] with the +/// Initializes all values in a 128-bit vector of [8 x i16] with the /// specified 16-bit value. /// /// \headerfile <x86intrin.h> @@ -3838,7 +3838,7 @@ return (__m128i)(__v8hi){ __w, __w, __w, __w, __w, __w, __w, __w }; } -/// \brief Initializes all values in a 128-bit vector of [16 x i8] with the +/// Initializes all values in a 128-bit vector of [16 x i8] with the /// specified 8-bit value. /// /// \headerfile <x86intrin.h> @@ -3857,7 +3857,7 @@ return (__m128i)(__v16qi){ __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b }; } -/// \brief Constructs a 128-bit integer vector, initialized in reverse order +/// Constructs a 128-bit integer vector, initialized in reverse order /// with the specified 64-bit integral values. /// /// \headerfile <x86intrin.h> @@ -3877,7 +3877,7 @@ return (__m128i){ (long long)__q0, (long long)__q1 }; } -/// \brief Constructs a 128-bit integer vector, initialized in reverse order +/// Constructs a 128-bit integer vector, initialized in reverse order /// with the specified 32-bit integral values. /// /// \headerfile <x86intrin.h> @@ -3900,7 +3900,7 @@ return (__m128i)(__v4si){ __i0, __i1, __i2, __i3}; } -/// \brief Constructs a 128-bit integer vector, initialized in reverse order +/// Constructs a 128-bit integer vector, initialized in reverse order /// with the specified 16-bit integral values. /// /// \headerfile <x86intrin.h> @@ -3931,7 +3931,7 @@ return (__m128i)(__v8hi){ __w0, __w1, __w2, __w3, __w4, __w5, __w6, __w7 }; } -/// \brief Constructs a 128-bit integer vector, initialized in reverse order +/// Constructs a 128-bit integer vector, initialized in reverse order /// with the specified 8-bit integral values. /// /// \headerfile <x86intrin.h> @@ -3978,7 +3978,7 @@ return (__m128i)(__v16qi){ __b0, __b1, __b2, __b3, __b4, __b5, __b6, __b7, __b8, __b9, __b10, __b11, __b12, __b13, __b14, __b15 }; } -/// \brief Creates a 128-bit integer vector initialized to zero. +/// Creates a 128-bit integer vector initialized to zero. /// /// \headerfile <x86intrin.h> /// @@ -3992,7 +3992,7 @@ return (__m128i){ 0LL, 0LL }; } -/// \brief Stores a 128-bit integer vector to a memory location aligned on a +/// Stores a 128-bit integer vector to a memory location aligned on a /// 128-bit boundary. /// /// \headerfile <x86intrin.h> @@ -4010,7 +4010,7 @@ *__p = __b; } -/// \brief Stores a 128-bit integer vector to an unaligned memory location. +/// Stores a 128-bit integer vector to an unaligned memory location. /// /// \headerfile <x86intrin.h> /// @@ -4029,7 +4029,7 @@ ((struct __storeu_si128*)__p)->__v = __b; } -/// \brief Moves bytes selected by the mask from the first operand to the +/// Moves bytes selected by the mask from the first operand to the /// specified unaligned memory location. When a mask bit is 1, the /// corresponding byte is written, otherwise it is not written. /// @@ -4056,7 +4056,7 @@ __builtin_ia32_maskmovdqu((__v16qi)__d, (__v16qi)__n, __p); } -/// \brief Stores the lower 64 bits of a 128-bit integer vector of [2 x i64] to +/// Stores the lower 64 bits of a 128-bit integer vector of [2 x i64] to /// a memory location. /// /// \headerfile <x86intrin.h> @@ -4078,7 +4078,7 @@ ((struct __mm_storel_epi64_struct*)__p)->__u = __a[0]; } -/// \brief Stores a 128-bit floating point vector of [2 x double] to a 128-bit +/// Stores a 128-bit floating point vector of [2 x double] to a 128-bit /// aligned memory location. /// /// To minimize caching, the data is flagged as non-temporal (unlikely to be @@ -4098,7 +4098,7 @@ __builtin_nontemporal_store((__v2df)__a, (__v2df*)__p); } -/// \brief Stores a 128-bit integer vector to a 128-bit aligned memory location. +/// Stores a 128-bit integer vector to a 128-bit aligned memory location. /// /// To minimize caching, the data is flagged as non-temporal (unlikely to be /// used again soon). @@ -4117,7 +4117,7 @@ __builtin_nontemporal_store((__v2di)__a, (__v2di*)__p); } -/// \brief Stores a 32-bit integer value in the specified memory location. +/// Stores a 32-bit integer value in the specified memory location. /// /// To minimize caching, the data is flagged as non-temporal (unlikely to be /// used again soon). @@ -4137,7 +4137,7 @@ } #ifdef __x86_64__ -/// \brief Stores a 64-bit integer value in the specified memory location. +/// Stores a 64-bit integer value in the specified memory location. /// /// To minimize caching, the data is flagged as non-temporal (unlikely to be /// used again soon). @@ -4161,7 +4161,7 @@ extern "C" { #endif -/// \brief The cache line containing \a __p is flushed and invalidated from all +/// The cache line containing \a __p is flushed and invalidated from all /// caches in the coherency domain. /// /// \headerfile <x86intrin.h> @@ -4173,7 +4173,7 @@ /// flushed. void _mm_clflush(void const * __p); -/// \brief Forces strong memory ordering (serialization) between load +/// Forces strong memory ordering (serialization) between load /// instructions preceding this instruction and load instructions following /// this instruction, ensuring the system completes all previous loads before /// executing subsequent loads. @@ -4184,7 +4184,7 @@ /// void _mm_lfence(void); -/// \brief Forces strong memory ordering (serialization) between load and store +/// Forces strong memory ordering (serialization) between load and store /// instructions preceding this instruction and load and store instructions /// following this instruction, ensuring that the system completes all /// previous memory accesses before executing subsequent memory accesses. @@ -4199,7 +4199,7 @@ } // extern "C" #endif -/// \brief Converts 16-bit signed integers from both 128-bit integer vector +/// Converts 16-bit signed integers from both 128-bit integer vector /// operands into 8-bit signed integers, and packs the results into the /// destination. Positive values greater than 0x7F are saturated to 0x7F. /// Negative values less than 0x80 are saturated to 0x80. @@ -4227,7 +4227,7 @@ return (__m128i)__builtin_ia32_packsswb128((__v8hi)__a, (__v8hi)__b); } -/// \brief Converts 32-bit signed integers from both 128-bit integer vector +/// Converts 32-bit signed integers from both 128-bit integer vector /// operands into 16-bit signed integers, and packs the results into the /// destination. Positive values greater than 0x7FFF are saturated to 0x7FFF. /// Negative values less than 0x8000 are saturated to 0x8000. @@ -4255,7 +4255,7 @@ return (__m128i)__builtin_ia32_packssdw128((__v4si)__a, (__v4si)__b); } -/// \brief Converts 16-bit signed integers from both 128-bit integer vector +/// Converts 16-bit signed integers from both 128-bit integer vector /// operands into 8-bit unsigned integers, and packs the results into the /// destination. Values greater than 0xFF are saturated to 0xFF. Values less /// than 0x00 are saturated to 0x00. @@ -4283,7 +4283,7 @@ return (__m128i)__builtin_ia32_packuswb128((__v8hi)__a, (__v8hi)__b); } -/// \brief Extracts 16 bits from a 128-bit integer vector of [8 x i16], using +/// Extracts 16 bits from a 128-bit integer vector of [8 x i16], using /// the immediate-value parameter as a selector. /// /// \headerfile <x86intrin.h> @@ -4312,7 +4312,7 @@ return (unsigned short)__b[__imm & 7]; } -/// \brief Constructs a 128-bit integer vector by first making a copy of the +/// Constructs a 128-bit integer vector by first making a copy of the /// 128-bit integer vector parameter, and then inserting the lower 16 bits /// of an integer parameter into an offset specified by the immediate-value /// parameter. @@ -4340,7 +4340,7 @@ return (__m128i)__c; } -/// \brief Copies the values of the most significant bits from each 8-bit +/// Copies the values of the most significant bits from each 8-bit /// element in a 128-bit integer vector of [16 x i8] to create a 16-bit mask /// value, zero-extends the value, and writes it to the destination. /// @@ -4358,7 +4358,7 @@ return __builtin_ia32_pmovmskb128((__v16qi)__a); } -/// \brief Constructs a 128-bit integer vector by shuffling four 32-bit +/// Constructs a 128-bit integer vector by shuffling four 32-bit /// elements of a 128-bit integer vector parameter, using the immediate-value /// parameter as a specifier. /// @@ -4392,7 +4392,7 @@ ((imm) >> 0) & 0x3, ((imm) >> 2) & 0x3, \ ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3); }) -/// \brief Constructs a 128-bit integer vector by shuffling four lower 16-bit +/// Constructs a 128-bit integer vector by shuffling four lower 16-bit /// elements of a 128-bit integer vector of [8 x i16], using the immediate /// value parameter as a specifier. /// @@ -4426,7 +4426,7 @@ ((imm) >> 4) & 0x3, ((imm) >> 6) & 0x3, \ 4, 5, 6, 7); }) -/// \brief Constructs a 128-bit integer vector by shuffling four upper 16-bit +/// Constructs a 128-bit integer vector by shuffling four upper 16-bit /// elements of a 128-bit integer vector of [8 x i16], using the immediate /// value parameter as a specifier. /// @@ -4462,7 +4462,7 @@ 4 + (((imm) >> 4) & 0x3), \ 4 + (((imm) >> 6) & 0x3)); }) -/// \brief Unpacks the high-order (index 8-15) values from two 128-bit vectors +/// Unpacks the high-order (index 8-15) values from two 128-bit vectors /// of [16 x i8] and interleaves them into a 128-bit vector of [16 x i8]. /// /// \headerfile <x86intrin.h> @@ -4497,7 +4497,7 @@ return (__m128i)__builtin_shufflevector((__v16qi)__a, (__v16qi)__b, 8, 16+8, 9, 16+9, 10, 16+10, 11, 16+11, 12, 16+12, 13, 16+13, 14, 16+14, 15, 16+15); } -/// \brief Unpacks the high-order (index 4-7) values from two 128-bit vectors of +/// Unpacks the high-order (index 4-7) values from two 128-bit vectors of /// [8 x i16] and interleaves them into a 128-bit vector of [8 x i16]. /// /// \headerfile <x86intrin.h> @@ -4524,7 +4524,7 @@ return (__m128i)__builtin_shufflevector((__v8hi)__a, (__v8hi)__b, 4, 8+4, 5, 8+5, 6, 8+6, 7, 8+7); } -/// \brief Unpacks the high-order (index 2,3) values from two 128-bit vectors of +/// Unpacks the high-order (index 2,3) values from two 128-bit vectors of /// [4 x i32] and interleaves them into a 128-bit vector of [4 x i32]. /// /// \headerfile <x86intrin.h> @@ -4547,7 +4547,7 @@ return (__m128i)__builtin_shufflevector((__v4si)__a, (__v4si)__b, 2, 4+2, 3, 4+3); } -/// \brief Unpacks the high-order 64-bit elements from two 128-bit vectors of +/// Unpacks the high-order 64-bit elements from two 128-bit vectors of /// [2 x i64] and interleaves them into a 128-bit vector of [2 x i64]. /// /// \headerfile <x86intrin.h> @@ -4568,7 +4568,7 @@ return (__m128i)__builtin_shufflevector((__v2di)__a, (__v2di)__b, 1, 2+1); } -/// \brief Unpacks the low-order (index 0-7) values from two 128-bit vectors of +/// Unpacks the low-order (index 0-7) values from two 128-bit vectors of /// [16 x i8] and interleaves them into a 128-bit vector of [16 x i8]. /// /// \headerfile <x86intrin.h> @@ -4603,7 +4603,7 @@ return (__m128i)__builtin_shufflevector((__v16qi)__a, (__v16qi)__b, 0, 16+0, 1, 16+1, 2, 16+2, 3, 16+3, 4, 16+4, 5, 16+5, 6, 16+6, 7, 16+7); } -/// \brief Unpacks the low-order (index 0-3) values from each of the two 128-bit +/// Unpacks the low-order (index 0-3) values from each of the two 128-bit /// vectors of [8 x i16] and interleaves them into a 128-bit vector of /// [8 x i16]. /// @@ -4631,7 +4631,7 @@ return (__m128i)__builtin_shufflevector((__v8hi)__a, (__v8hi)__b, 0, 8+0, 1, 8+1, 2, 8+2, 3, 8+3); } -/// \brief Unpacks the low-order (index 0,1) values from two 128-bit vectors of +/// Unpacks the low-order (index 0,1) values from two 128-bit vectors of /// [4 x i32] and interleaves them into a 128-bit vector of [4 x i32]. /// /// \headerfile <x86intrin.h> @@ -4654,7 +4654,7 @@ return (__m128i)__builtin_shufflevector((__v4si)__a, (__v4si)__b, 0, 4+0, 1, 4+1); } -/// \brief Unpacks the low-order 64-bit elements from two 128-bit vectors of +/// Unpacks the low-order 64-bit elements from two 128-bit vectors of /// [2 x i64] and interleaves them into a 128-bit vector of [2 x i64]. /// /// \headerfile <x86intrin.h> @@ -4675,7 +4675,7 @@ return (__m128i)__builtin_shufflevector((__v2di)__a, (__v2di)__b, 0, 2+0); } -/// \brief Returns the lower 64 bits of a 128-bit integer vector as a 64-bit +/// Returns the lower 64 bits of a 128-bit integer vector as a 64-bit /// integer. /// /// \headerfile <x86intrin.h> @@ -4692,7 +4692,7 @@ return (__m64)__a[0]; } -/// \brief Moves the 64-bit operand to a 128-bit integer vector, zeroing the +/// Moves the 64-bit operand to a 128-bit integer vector, zeroing the /// upper bits. /// /// \headerfile <x86intrin.h> @@ -4709,7 +4709,7 @@ return (__m128i){ (long long)__a, 0 }; } -/// \brief Moves the lower 64 bits of a 128-bit integer vector to a 128-bit +/// Moves the lower 64 bits of a 128-bit integer vector to a 128-bit /// integer vector, zeroing the upper bits. /// /// \headerfile <x86intrin.h> @@ -4727,7 +4727,7 @@ return __builtin_shufflevector((__v2di)__a, (__m128i){ 0 }, 0, 2); } -/// \brief Unpacks the high-order 64-bit elements from two 128-bit vectors of +/// Unpacks the high-order 64-bit elements from two 128-bit vectors of /// [2 x double] and interleaves them into a 128-bit vector of [2 x /// double]. /// @@ -4748,7 +4748,7 @@ return __builtin_shufflevector((__v2df)__a, (__v2df)__b, 1, 2+1); } -/// \brief Unpacks the low-order 64-bit elements from two 128-bit vectors +/// Unpacks the low-order 64-bit elements from two 128-bit vectors /// of [2 x double] and interleaves them into a 128-bit vector of [2 x /// double]. /// @@ -4769,7 +4769,7 @@ return __builtin_shufflevector((__v2df)__a, (__v2df)__b, 0, 2+0); } -/// \brief Extracts the sign bits of the double-precision values in the 128-bit +/// Extracts the sign bits of the double-precision values in the 128-bit /// vector of [2 x double], zero-extends the value, and writes it to the /// low-order bits of the destination. /// @@ -4789,7 +4789,7 @@ } -/// \brief Constructs a 128-bit floating-point vector of [2 x double] from two +/// Constructs a 128-bit floating-point vector of [2 x double] from two /// 128-bit vector parameters of [2 x double], using the immediate-value /// parameter as a specifier. /// @@ -4818,7 +4818,7 @@ 0 + (((i) >> 0) & 0x1), \ 2 + (((i) >> 1) & 0x1)); }) -/// \brief Casts a 128-bit floating-point vector of [2 x double] into a 128-bit +/// Casts a 128-bit floating-point vector of [2 x double] into a 128-bit /// floating-point vector of [4 x float]. /// /// \headerfile <x86intrin.h> @@ -4835,7 +4835,7 @@ return (__m128)__a; } -/// \brief Casts a 128-bit floating-point vector of [2 x double] into a 128-bit +/// Casts a 128-bit floating-point vector of [2 x double] into a 128-bit /// integer vector. /// /// \headerfile <x86intrin.h> @@ -4852,7 +4852,7 @@ return (__m128i)__a; } -/// \brief Casts a 128-bit floating-point vector of [4 x float] into a 128-bit +/// Casts a 128-bit floating-point vector of [4 x float] into a 128-bit /// floating-point vector of [2 x double]. /// /// \headerfile <x86intrin.h> @@ -4869,7 +4869,7 @@ return (__m128d)__a; } -/// \brief Casts a 128-bit floating-point vector of [4 x float] into a 128-bit +/// Casts a 128-bit floating-point vector of [4 x float] into a 128-bit /// integer vector. /// /// \headerfile <x86intrin.h> @@ -4886,7 +4886,7 @@ return (__m128i)__a; } -/// \brief Casts a 128-bit integer vector into a 128-bit floating-point vector +/// Casts a 128-bit integer vector into a 128-bit floating-point vector /// of [4 x float]. /// /// \headerfile <x86intrin.h> @@ -4903,7 +4903,7 @@ return (__m128)__a; } -/// \brief Casts a 128-bit integer vector into a 128-bit floating-point vector +/// Casts a 128-bit integer vector into a 128-bit floating-point vector /// of [2 x double]. /// /// \headerfile <x86intrin.h> @@ -4924,7 +4924,7 @@ extern "C" { #endif -/// \brief Indicates that a spin loop is being executed for the purposes of +/// Indicates that a spin loop is being executed for the purposes of /// optimizing power consumption during the loop. /// /// \headerfile <x86intrin.h> Index: cfe/trunk/lib/Headers/f16cintrin.h =================================================================== --- cfe/trunk/lib/Headers/f16cintrin.h +++ cfe/trunk/lib/Headers/f16cintrin.h @@ -32,7 +32,7 @@ #define __DEFAULT_FN_ATTRS \ __attribute__((__always_inline__, __nodebug__, __target__("f16c"))) -/// \brief Converts a 16-bit half-precision float value into a 32-bit float +/// Converts a 16-bit half-precision float value into a 32-bit float /// value. /// /// \headerfile <x86intrin.h> @@ -50,7 +50,7 @@ return r[0]; } -/// \brief Converts a 32-bit single-precision float value to a 16-bit +/// Converts a 32-bit single-precision float value to a 16-bit /// half-precision float value. /// /// \headerfile <x86intrin.h> @@ -76,7 +76,7 @@ (unsigned short)(((__v8hi)__builtin_ia32_vcvtps2ph((__v4sf){a, 0, 0, 0}, \ (imm)))[0]); }) -/// \brief Converts a 128-bit vector containing 32-bit float values into a +/// Converts a 128-bit vector containing 32-bit float values into a /// 128-bit vector containing 16-bit half-precision float values. /// /// \headerfile <x86intrin.h> @@ -102,7 +102,7 @@ #define _mm_cvtps_ph(a, imm) __extension__ ({ \ (__m128i)__builtin_ia32_vcvtps2ph((__v4sf)(__m128)(a), (imm)); }) -/// \brief Converts a 128-bit vector containing 16-bit half-precision float +/// Converts a 128-bit vector containing 16-bit half-precision float /// values into a 128-bit vector containing 32-bit float values. /// /// \headerfile <x86intrin.h> Index: cfe/trunk/lib/Headers/fxsrintrin.h =================================================================== --- cfe/trunk/lib/Headers/fxsrintrin.h +++ cfe/trunk/lib/Headers/fxsrintrin.h @@ -30,7 +30,7 @@ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("fxsr"))) -/// \brief Saves the XMM, MMX, MXCSR and x87 FPU registers into a 512-byte +/// Saves the XMM, MMX, MXCSR and x87 FPU registers into a 512-byte /// memory region pointed to by the input parameter \a __p. /// /// \headerfile <x86intrin.h> @@ -46,7 +46,7 @@ return __builtin_ia32_fxsave(__p); } -/// \brief Restores the XMM, MMX, MXCSR and x87 FPU registers from the 512-byte +/// Restores the XMM, MMX, MXCSR and x87 FPU registers from the 512-byte /// memory region pointed to by the input parameter \a __p. The contents of /// this memory region should have been written to by a previous \c _fxsave /// or \c _fxsave64 intrinsic. @@ -65,7 +65,7 @@ } #ifdef __x86_64__ -/// \brief Saves the XMM, MMX, MXCSR and x87 FPU registers into a 512-byte +/// Saves the XMM, MMX, MXCSR and x87 FPU registers into a 512-byte /// memory region pointed to by the input parameter \a __p. /// /// \headerfile <x86intrin.h> @@ -81,7 +81,7 @@ return __builtin_ia32_fxsave64(__p); } -/// \brief Restores the XMM, MMX, MXCSR and x87 FPU registers from the 512-byte +/// Restores the XMM, MMX, MXCSR and x87 FPU registers from the 512-byte /// memory region pointed to by the input parameter \a __p. The contents of /// this memory region should have been written to by a previous \c _fxsave /// or \c _fxsave64 intrinsic. Index: cfe/trunk/lib/Headers/immintrin.h =================================================================== --- cfe/trunk/lib/Headers/immintrin.h +++ cfe/trunk/lib/Headers/immintrin.h @@ -73,7 +73,7 @@ Intel documents these as being in immintrin.h, and they depend on typedefs from avxintrin.h. */ -/// \brief Converts a 256-bit vector of [8 x float] into a 128-bit vector +/// Converts a 256-bit vector of [8 x float] into a 128-bit vector /// containing 16-bit half-precision float values. /// /// \headerfile <x86intrin.h> @@ -99,7 +99,7 @@ #define _mm256_cvtps_ph(a, imm) __extension__ ({ \ (__m128i)__builtin_ia32_vcvtps2ph256((__v8sf)(__m256)(a), (imm)); }) -/// \brief Converts a 128-bit vector containing 16-bit half-precision float +/// Converts a 128-bit vector containing 16-bit half-precision float /// values into a 256-bit vector of [8 x float]. /// /// \headerfile <x86intrin.h> @@ -248,7 +248,7 @@ #endif #if !defined(_MSC_VER) || __has_feature(modules) || defined(__RDPID__) -/// \brief Returns the value of the IA32_TSC_AUX MSR (0xc0000103). +/// Returns the value of the IA32_TSC_AUX MSR (0xc0000103). /// /// \headerfile <immintrin.h> /// Index: cfe/trunk/lib/Headers/lwpintrin.h =================================================================== --- cfe/trunk/lib/Headers/lwpintrin.h +++ cfe/trunk/lib/Headers/lwpintrin.h @@ -31,7 +31,7 @@ /* Define the default attributes for the functions in this file. */ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("lwp"))) -/// \brief Parses the LWPCB at the specified address and enables +/// Parses the LWPCB at the specified address and enables /// profiling if valid. /// /// \headerfile <x86intrin.h> @@ -48,7 +48,7 @@ __builtin_ia32_llwpcb(__addr); } -/// \brief Flushes the LWP state to memory and returns the address of the LWPCB. +/// Flushes the LWP state to memory and returns the address of the LWPCB. /// /// \headerfile <x86intrin.h> /// @@ -63,7 +63,7 @@ return __builtin_ia32_slwpcb(); } -/// \brief Inserts programmed event record into the LWP event ring buffer +/// Inserts programmed event record into the LWP event ring buffer /// and advances the ring buffer pointer. /// /// \headerfile <x86intrin.h> @@ -84,7 +84,7 @@ (__builtin_ia32_lwpins32((unsigned int) (DATA2), (unsigned int) (DATA1), \ (unsigned int) (FLAGS))) -/// \brief Decrements the LWP programmed value sample event counter. If the result is +/// Decrements the LWP programmed value sample event counter. If the result is /// negative, inserts an event record into the LWP event ring buffer in memory /// and advances the ring buffer pointer. /// @@ -104,7 +104,7 @@ #ifdef __x86_64__ -/// \brief Inserts programmed event record into the LWP event ring buffer +/// Inserts programmed event record into the LWP event ring buffer /// and advances the ring buffer pointer. /// /// \headerfile <x86intrin.h> @@ -125,7 +125,7 @@ (__builtin_ia32_lwpins64((unsigned long long) (DATA2), (unsigned int) (DATA1), \ (unsigned int) (FLAGS))) -/// \brief Decrements the LWP programmed value sample event counter. If the result is +/// Decrements the LWP programmed value sample event counter. If the result is /// negative, inserts an event record into the LWP event ring buffer in memory /// and advances the ring buffer pointer. /// Index: cfe/trunk/lib/Headers/lzcntintrin.h =================================================================== --- cfe/trunk/lib/Headers/lzcntintrin.h +++ cfe/trunk/lib/Headers/lzcntintrin.h @@ -31,7 +31,7 @@ /* Define the default attributes for the functions in this file. */ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("lzcnt"))) -/// \brief Counts the number of leading zero bits in the operand. +/// Counts the number of leading zero bits in the operand. /// /// \headerfile <x86intrin.h> /// @@ -47,7 +47,7 @@ return __X ? __builtin_clzs(__X) : 16; } -/// \brief Counts the number of leading zero bits in the operand. +/// Counts the number of leading zero bits in the operand. /// /// \headerfile <x86intrin.h> /// @@ -63,7 +63,7 @@ return __X ? __builtin_clz(__X) : 32; } -/// \brief Counts the number of leading zero bits in the operand. +/// Counts the number of leading zero bits in the operand. /// /// \headerfile <x86intrin.h> /// @@ -80,7 +80,7 @@ } #ifdef __x86_64__ -/// \brief Counts the number of leading zero bits in the operand. +/// Counts the number of leading zero bits in the operand. /// /// \headerfile <x86intrin.h> /// @@ -96,7 +96,7 @@ return __X ? __builtin_clzll(__X) : 64; } -/// \brief Counts the number of leading zero bits in the operand. +/// Counts the number of leading zero bits in the operand. /// /// \headerfile <x86intrin.h> /// Index: cfe/trunk/lib/Headers/mmintrin.h =================================================================== --- cfe/trunk/lib/Headers/mmintrin.h +++ cfe/trunk/lib/Headers/mmintrin.h @@ -34,7 +34,7 @@ /* Define the default attributes for the functions in this file. */ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("mmx"))) -/// \brief Clears the MMX state by setting the state of the x87 stack registers +/// Clears the MMX state by setting the state of the x87 stack registers /// to empty. /// /// \headerfile <x86intrin.h> @@ -47,7 +47,7 @@ __builtin_ia32_emms(); } -/// \brief Constructs a 64-bit integer vector, setting the lower 32 bits to the +/// Constructs a 64-bit integer vector, setting the lower 32 bits to the /// value of the 32-bit integer parameter and setting the upper 32 bits to 0. /// /// \headerfile <x86intrin.h> @@ -64,7 +64,7 @@ return (__m64)__builtin_ia32_vec_init_v2si(__i, 0); } -/// \brief Returns the lower 32 bits of a 64-bit integer vector as a 32-bit +/// Returns the lower 32 bits of a 64-bit integer vector as a 32-bit /// signed integer. /// /// \headerfile <x86intrin.h> @@ -81,7 +81,7 @@ return __builtin_ia32_vec_ext_v2si((__v2si)__m, 0); } -/// \brief Casts a 64-bit signed integer value into a 64-bit integer vector. +/// Casts a 64-bit signed integer value into a 64-bit integer vector. /// /// \headerfile <x86intrin.h> /// @@ -97,7 +97,7 @@ return (__m64)__i; } -/// \brief Casts a 64-bit integer vector into a 64-bit signed integer value. +/// Casts a 64-bit integer vector into a 64-bit signed integer value. /// /// \headerfile <x86intrin.h> /// @@ -113,7 +113,7 @@ return (long long)__m; } -/// \brief Converts 16-bit signed integers from both 64-bit integer vector +/// Converts 16-bit signed integers from both 64-bit integer vector /// parameters of [4 x i16] into 8-bit signed integer values, and constructs /// a 64-bit integer vector of [8 x i8] as the result. Positive values /// greater than 0x7F are saturated to 0x7F. Negative values less than 0x80 @@ -143,7 +143,7 @@ return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2); } -/// \brief Converts 32-bit signed integers from both 64-bit integer vector +/// Converts 32-bit signed integers from both 64-bit integer vector /// parameters of [2 x i32] into 16-bit signed integer values, and constructs /// a 64-bit integer vector of [4 x i16] as the result. Positive values /// greater than 0x7FFF are saturated to 0x7FFF. Negative values less than @@ -173,7 +173,7 @@ return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2); } -/// \brief Converts 16-bit signed integers from both 64-bit integer vector +/// Converts 16-bit signed integers from both 64-bit integer vector /// parameters of [4 x i16] into 8-bit unsigned integer values, and /// constructs a 64-bit integer vector of [8 x i8] as the result. Values /// greater than 0xFF are saturated to 0xFF. Values less than 0 are saturated @@ -203,7 +203,7 @@ return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2); } -/// \brief Unpacks the upper 32 bits from two 64-bit integer vectors of [8 x i8] +/// Unpacks the upper 32 bits from two 64-bit integer vectors of [8 x i8] /// and interleaves them into a 64-bit integer vector of [8 x i8]. /// /// \headerfile <x86intrin.h> @@ -230,7 +230,7 @@ return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2); } -/// \brief Unpacks the upper 32 bits from two 64-bit integer vectors of +/// Unpacks the upper 32 bits from two 64-bit integer vectors of /// [4 x i16] and interleaves them into a 64-bit integer vector of [4 x i16]. /// /// \headerfile <x86intrin.h> @@ -253,7 +253,7 @@ return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2); } -/// \brief Unpacks the upper 32 bits from two 64-bit integer vectors of +/// Unpacks the upper 32 bits from two 64-bit integer vectors of /// [2 x i32] and interleaves them into a 64-bit integer vector of [2 x i32]. /// /// \headerfile <x86intrin.h> @@ -274,7 +274,7 @@ return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2); } -/// \brief Unpacks the lower 32 bits from two 64-bit integer vectors of [8 x i8] +/// Unpacks the lower 32 bits from two 64-bit integer vectors of [8 x i8] /// and interleaves them into a 64-bit integer vector of [8 x i8]. /// /// \headerfile <x86intrin.h> @@ -301,7 +301,7 @@ return (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2); } -/// \brief Unpacks the lower 32 bits from two 64-bit integer vectors of +/// Unpacks the lower 32 bits from two 64-bit integer vectors of /// [4 x i16] and interleaves them into a 64-bit integer vector of [4 x i16]. /// /// \headerfile <x86intrin.h> @@ -324,7 +324,7 @@ return (__m64)__builtin_ia32_punpcklwd((__v4hi)__m1, (__v4hi)__m2); } -/// \brief Unpacks the lower 32 bits from two 64-bit integer vectors of +/// Unpacks the lower 32 bits from two 64-bit integer vectors of /// [2 x i32] and interleaves them into a 64-bit integer vector of [2 x i32]. /// /// \headerfile <x86intrin.h> @@ -345,7 +345,7 @@ return (__m64)__builtin_ia32_punpckldq((__v2si)__m1, (__v2si)__m2); } -/// \brief Adds each 8-bit integer element of the first 64-bit integer vector +/// Adds each 8-bit integer element of the first 64-bit integer vector /// of [8 x i8] to the corresponding 8-bit integer element of the second /// 64-bit integer vector of [8 x i8]. The lower 8 bits of the results are /// packed into a 64-bit integer vector of [8 x i8]. @@ -366,7 +366,7 @@ return (__m64)__builtin_ia32_paddb((__v8qi)__m1, (__v8qi)__m2); } -/// \brief Adds each 16-bit integer element of the first 64-bit integer vector +/// Adds each 16-bit integer element of the first 64-bit integer vector /// of [4 x i16] to the corresponding 16-bit integer element of the second /// 64-bit integer vector of [4 x i16]. The lower 16 bits of the results are /// packed into a 64-bit integer vector of [4 x i16]. @@ -387,7 +387,7 @@ return (__m64)__builtin_ia32_paddw((__v4hi)__m1, (__v4hi)__m2); } -/// \brief Adds each 32-bit integer element of the first 64-bit integer vector +/// Adds each 32-bit integer element of the first 64-bit integer vector /// of [2 x i32] to the corresponding 32-bit integer element of the second /// 64-bit integer vector of [2 x i32]. The lower 32 bits of the results are /// packed into a 64-bit integer vector of [2 x i32]. @@ -408,7 +408,7 @@ return (__m64)__builtin_ia32_paddd((__v2si)__m1, (__v2si)__m2); } -/// \brief Adds each 8-bit signed integer element of the first 64-bit integer +/// Adds each 8-bit signed integer element of the first 64-bit integer /// vector of [8 x i8] to the corresponding 8-bit signed integer element of /// the second 64-bit integer vector of [8 x i8]. Positive sums greater than /// 0x7F are saturated to 0x7F. Negative sums less than 0x80 are saturated to @@ -430,7 +430,7 @@ return (__m64)__builtin_ia32_paddsb((__v8qi)__m1, (__v8qi)__m2); } -/// \brief Adds each 16-bit signed integer element of the first 64-bit integer +/// Adds each 16-bit signed integer element of the first 64-bit integer /// vector of [4 x i16] to the corresponding 16-bit signed integer element of /// the second 64-bit integer vector of [4 x i16]. Positive sums greater than /// 0x7FFF are saturated to 0x7FFF. Negative sums less than 0x8000 are @@ -453,7 +453,7 @@ return (__m64)__builtin_ia32_paddsw((__v4hi)__m1, (__v4hi)__m2); } -/// \brief Adds each 8-bit unsigned integer element of the first 64-bit integer +/// Adds each 8-bit unsigned integer element of the first 64-bit integer /// vector of [8 x i8] to the corresponding 8-bit unsigned integer element of /// the second 64-bit integer vector of [8 x i8]. Sums greater than 0xFF are /// saturated to 0xFF. The results are packed into a 64-bit integer vector of @@ -475,7 +475,7 @@ return (__m64)__builtin_ia32_paddusb((__v8qi)__m1, (__v8qi)__m2); } -/// \brief Adds each 16-bit unsigned integer element of the first 64-bit integer +/// Adds each 16-bit unsigned integer element of the first 64-bit integer /// vector of [4 x i16] to the corresponding 16-bit unsigned integer element /// of the second 64-bit integer vector of [4 x i16]. Sums greater than /// 0xFFFF are saturated to 0xFFFF. The results are packed into a 64-bit @@ -497,7 +497,7 @@ return (__m64)__builtin_ia32_paddusw((__v4hi)__m1, (__v4hi)__m2); } -/// \brief Subtracts each 8-bit integer element of the second 64-bit integer +/// Subtracts each 8-bit integer element of the second 64-bit integer /// vector of [8 x i8] from the corresponding 8-bit integer element of the /// first 64-bit integer vector of [8 x i8]. The lower 8 bits of the results /// are packed into a 64-bit integer vector of [8 x i8]. @@ -518,7 +518,7 @@ return (__m64)__builtin_ia32_psubb((__v8qi)__m1, (__v8qi)__m2); } -/// \brief Subtracts each 16-bit integer element of the second 64-bit integer +/// Subtracts each 16-bit integer element of the second 64-bit integer /// vector of [4 x i16] from the corresponding 16-bit integer element of the /// first 64-bit integer vector of [4 x i16]. The lower 16 bits of the /// results are packed into a 64-bit integer vector of [4 x i16]. @@ -539,7 +539,7 @@ return (__m64)__builtin_ia32_psubw((__v4hi)__m1, (__v4hi)__m2); } -/// \brief Subtracts each 32-bit integer element of the second 64-bit integer +/// Subtracts each 32-bit integer element of the second 64-bit integer /// vector of [2 x i32] from the corresponding 32-bit integer element of the /// first 64-bit integer vector of [2 x i32]. The lower 32 bits of the /// results are packed into a 64-bit integer vector of [2 x i32]. @@ -560,7 +560,7 @@ return (__m64)__builtin_ia32_psubd((__v2si)__m1, (__v2si)__m2); } -/// \brief Subtracts each 8-bit signed integer element of the second 64-bit +/// Subtracts each 8-bit signed integer element of the second 64-bit /// integer vector of [8 x i8] from the corresponding 8-bit signed integer /// element of the first 64-bit integer vector of [8 x i8]. Positive results /// greater than 0x7F are saturated to 0x7F. Negative results less than 0x80 @@ -583,7 +583,7 @@ return (__m64)__builtin_ia32_psubsb((__v8qi)__m1, (__v8qi)__m2); } -/// \brief Subtracts each 16-bit signed integer element of the second 64-bit +/// Subtracts each 16-bit signed integer element of the second 64-bit /// integer vector of [4 x i16] from the corresponding 16-bit signed integer /// element of the first 64-bit integer vector of [4 x i16]. Positive results /// greater than 0x7FFF are saturated to 0x7FFF. Negative results less than @@ -606,7 +606,7 @@ return (__m64)__builtin_ia32_psubsw((__v4hi)__m1, (__v4hi)__m2); } -/// \brief Subtracts each 8-bit unsigned integer element of the second 64-bit +/// Subtracts each 8-bit unsigned integer element of the second 64-bit /// integer vector of [8 x i8] from the corresponding 8-bit unsigned integer /// element of the first 64-bit integer vector of [8 x i8]. /// @@ -630,7 +630,7 @@ return (__m64)__builtin_ia32_psubusb((__v8qi)__m1, (__v8qi)__m2); } -/// \brief Subtracts each 16-bit unsigned integer element of the second 64-bit +/// Subtracts each 16-bit unsigned integer element of the second 64-bit /// integer vector of [4 x i16] from the corresponding 16-bit unsigned /// integer element of the first 64-bit integer vector of [4 x i16]. /// @@ -654,7 +654,7 @@ return (__m64)__builtin_ia32_psubusw((__v4hi)__m1, (__v4hi)__m2); } -/// \brief Multiplies each 16-bit signed integer element of the first 64-bit +/// Multiplies each 16-bit signed integer element of the first 64-bit /// integer vector of [4 x i16] by the corresponding 16-bit signed integer /// element of the second 64-bit integer vector of [4 x i16] and get four /// 32-bit products. Adds adjacent pairs of products to get two 32-bit sums. @@ -681,7 +681,7 @@ return (__m64)__builtin_ia32_pmaddwd((__v4hi)__m1, (__v4hi)__m2); } -/// \brief Multiplies each 16-bit signed integer element of the first 64-bit +/// Multiplies each 16-bit signed integer element of the first 64-bit /// integer vector of [4 x i16] by the corresponding 16-bit signed integer /// element of the second 64-bit integer vector of [4 x i16]. Packs the upper /// 16 bits of the 32-bit products into a 64-bit integer vector of [4 x i16]. @@ -702,7 +702,7 @@ return (__m64)__builtin_ia32_pmulhw((__v4hi)__m1, (__v4hi)__m2); } -/// \brief Multiplies each 16-bit signed integer element of the first 64-bit +/// Multiplies each 16-bit signed integer element of the first 64-bit /// integer vector of [4 x i16] by the corresponding 16-bit signed integer /// element of the second 64-bit integer vector of [4 x i16]. Packs the lower /// 16 bits of the 32-bit products into a 64-bit integer vector of [4 x i16]. @@ -723,7 +723,7 @@ return (__m64)__builtin_ia32_pmullw((__v4hi)__m1, (__v4hi)__m2); } -/// \brief Left-shifts each 16-bit signed integer element of the first +/// Left-shifts each 16-bit signed integer element of the first /// parameter, which is a 64-bit integer vector of [4 x i16], by the number /// of bits specified by the second parameter, which is a 64-bit integer. The /// lower 16 bits of the results are packed into a 64-bit integer vector of @@ -746,7 +746,7 @@ return (__m64)__builtin_ia32_psllw((__v4hi)__m, __count); } -/// \brief Left-shifts each 16-bit signed integer element of a 64-bit integer +/// Left-shifts each 16-bit signed integer element of a 64-bit integer /// vector of [4 x i16] by the number of bits specified by a 32-bit integer. /// The lower 16 bits of the results are packed into a 64-bit integer vector /// of [4 x i16]. @@ -768,7 +768,7 @@ return (__m64)__builtin_ia32_psllwi((__v4hi)__m, __count); } -/// \brief Left-shifts each 32-bit signed integer element of the first +/// Left-shifts each 32-bit signed integer element of the first /// parameter, which is a 64-bit integer vector of [2 x i32], by the number /// of bits specified by the second parameter, which is a 64-bit integer. The /// lower 32 bits of the results are packed into a 64-bit integer vector of @@ -791,7 +791,7 @@ return (__m64)__builtin_ia32_pslld((__v2si)__m, __count); } -/// \brief Left-shifts each 32-bit signed integer element of a 64-bit integer +/// Left-shifts each 32-bit signed integer element of a 64-bit integer /// vector of [2 x i32] by the number of bits specified by a 32-bit integer. /// The lower 32 bits of the results are packed into a 64-bit integer vector /// of [2 x i32]. @@ -813,7 +813,7 @@ return (__m64)__builtin_ia32_pslldi((__v2si)__m, __count); } -/// \brief Left-shifts the first 64-bit integer parameter by the number of bits +/// Left-shifts the first 64-bit integer parameter by the number of bits /// specified by the second 64-bit integer parameter. The lower 64 bits of /// result are returned. /// @@ -833,7 +833,7 @@ return (__m64)__builtin_ia32_psllq((__v1di)__m, __count); } -/// \brief Left-shifts the first parameter, which is a 64-bit integer, by the +/// Left-shifts the first parameter, which is a 64-bit integer, by the /// number of bits specified by the second parameter, which is a 32-bit /// integer. The lower 64 bits of result are returned. /// @@ -853,7 +853,7 @@ return (__m64)__builtin_ia32_psllqi((__v1di)__m, __count); } -/// \brief Right-shifts each 16-bit integer element of the first parameter, +/// Right-shifts each 16-bit integer element of the first parameter, /// which is a 64-bit integer vector of [4 x i16], by the number of bits /// specified by the second parameter, which is a 64-bit integer. /// @@ -877,7 +877,7 @@ return (__m64)__builtin_ia32_psraw((__v4hi)__m, __count); } -/// \brief Right-shifts each 16-bit integer element of a 64-bit integer vector +/// Right-shifts each 16-bit integer element of a 64-bit integer vector /// of [4 x i16] by the number of bits specified by a 32-bit integer. /// /// High-order bits are filled with the sign bit of the initial value of each @@ -900,7 +900,7 @@ return (__m64)__builtin_ia32_psrawi((__v4hi)__m, __count); } -/// \brief Right-shifts each 32-bit integer element of the first parameter, +/// Right-shifts each 32-bit integer element of the first parameter, /// which is a 64-bit integer vector of [2 x i32], by the number of bits /// specified by the second parameter, which is a 64-bit integer. /// @@ -924,7 +924,7 @@ return (__m64)__builtin_ia32_psrad((__v2si)__m, __count); } -/// \brief Right-shifts each 32-bit integer element of a 64-bit integer vector +/// Right-shifts each 32-bit integer element of a 64-bit integer vector /// of [2 x i32] by the number of bits specified by a 32-bit integer. /// /// High-order bits are filled with the sign bit of the initial value of each @@ -947,7 +947,7 @@ return (__m64)__builtin_ia32_psradi((__v2si)__m, __count); } -/// \brief Right-shifts each 16-bit integer element of the first parameter, +/// Right-shifts each 16-bit integer element of the first parameter, /// which is a 64-bit integer vector of [4 x i16], by the number of bits /// specified by the second parameter, which is a 64-bit integer. /// @@ -970,7 +970,7 @@ return (__m64)__builtin_ia32_psrlw((__v4hi)__m, __count); } -/// \brief Right-shifts each 16-bit integer element of a 64-bit integer vector +/// Right-shifts each 16-bit integer element of a 64-bit integer vector /// of [4 x i16] by the number of bits specified by a 32-bit integer. /// /// High-order bits are cleared. The 16-bit results are packed into a 64-bit @@ -992,7 +992,7 @@ return (__m64)__builtin_ia32_psrlwi((__v4hi)__m, __count); } -/// \brief Right-shifts each 32-bit integer element of the first parameter, +/// Right-shifts each 32-bit integer element of the first parameter, /// which is a 64-bit integer vector of [2 x i32], by the number of bits /// specified by the second parameter, which is a 64-bit integer. /// @@ -1015,7 +1015,7 @@ return (__m64)__builtin_ia32_psrld((__v2si)__m, __count); } -/// \brief Right-shifts each 32-bit integer element of a 64-bit integer vector +/// Right-shifts each 32-bit integer element of a 64-bit integer vector /// of [2 x i32] by the number of bits specified by a 32-bit integer. /// /// High-order bits are cleared. The 32-bit results are packed into a 64-bit @@ -1037,7 +1037,7 @@ return (__m64)__builtin_ia32_psrldi((__v2si)__m, __count); } -/// \brief Right-shifts the first 64-bit integer parameter by the number of bits +/// Right-shifts the first 64-bit integer parameter by the number of bits /// specified by the second 64-bit integer parameter. /// /// High-order bits are cleared. @@ -1057,7 +1057,7 @@ return (__m64)__builtin_ia32_psrlq((__v1di)__m, __count); } -/// \brief Right-shifts the first parameter, which is a 64-bit integer, by the +/// Right-shifts the first parameter, which is a 64-bit integer, by the /// number of bits specified by the second parameter, which is a 32-bit /// integer. /// @@ -1078,7 +1078,7 @@ return (__m64)__builtin_ia32_psrlqi((__v1di)__m, __count); } -/// \brief Performs a bitwise AND of two 64-bit integer vectors. +/// Performs a bitwise AND of two 64-bit integer vectors. /// /// \headerfile <x86intrin.h> /// @@ -1096,7 +1096,7 @@ return __builtin_ia32_pand((__v1di)__m1, (__v1di)__m2); } -/// \brief Performs a bitwise NOT of the first 64-bit integer vector, and then +/// Performs a bitwise NOT of the first 64-bit integer vector, and then /// performs a bitwise AND of the intermediate result and the second 64-bit /// integer vector. /// @@ -1117,7 +1117,7 @@ return __builtin_ia32_pandn((__v1di)__m1, (__v1di)__m2); } -/// \brief Performs a bitwise OR of two 64-bit integer vectors. +/// Performs a bitwise OR of two 64-bit integer vectors. /// /// \headerfile <x86intrin.h> /// @@ -1135,7 +1135,7 @@ return __builtin_ia32_por((__v1di)__m1, (__v1di)__m2); } -/// \brief Performs a bitwise exclusive OR of two 64-bit integer vectors. +/// Performs a bitwise exclusive OR of two 64-bit integer vectors. /// /// \headerfile <x86intrin.h> /// @@ -1153,7 +1153,7 @@ return __builtin_ia32_pxor((__v1di)__m1, (__v1di)__m2); } -/// \brief Compares the 8-bit integer elements of two 64-bit integer vectors of +/// Compares the 8-bit integer elements of two 64-bit integer vectors of /// [8 x i8] to determine if the element of the first vector is equal to the /// corresponding element of the second vector. /// @@ -1175,7 +1175,7 @@ return (__m64)__builtin_ia32_pcmpeqb((__v8qi)__m1, (__v8qi)__m2); } -/// \brief Compares the 16-bit integer elements of two 64-bit integer vectors of +/// Compares the 16-bit integer elements of two 64-bit integer vectors of /// [4 x i16] to determine if the element of the first vector is equal to the /// corresponding element of the second vector. /// @@ -1197,7 +1197,7 @@ return (__m64)__builtin_ia32_pcmpeqw((__v4hi)__m1, (__v4hi)__m2); } -/// \brief Compares the 32-bit integer elements of two 64-bit integer vectors of +/// Compares the 32-bit integer elements of two 64-bit integer vectors of /// [2 x i32] to determine if the element of the first vector is equal to the /// corresponding element of the second vector. /// @@ -1219,7 +1219,7 @@ return (__m64)__builtin_ia32_pcmpeqd((__v2si)__m1, (__v2si)__m2); } -/// \brief Compares the 8-bit integer elements of two 64-bit integer vectors of +/// Compares the 8-bit integer elements of two 64-bit integer vectors of /// [8 x i8] to determine if the element of the first vector is greater than /// the corresponding element of the second vector. /// @@ -1241,7 +1241,7 @@ return (__m64)__builtin_ia32_pcmpgtb((__v8qi)__m1, (__v8qi)__m2); } -/// \brief Compares the 16-bit integer elements of two 64-bit integer vectors of +/// Compares the 16-bit integer elements of two 64-bit integer vectors of /// [4 x i16] to determine if the element of the first vector is greater than /// the corresponding element of the second vector. /// @@ -1263,7 +1263,7 @@ return (__m64)__builtin_ia32_pcmpgtw((__v4hi)__m1, (__v4hi)__m2); } -/// \brief Compares the 32-bit integer elements of two 64-bit integer vectors of +/// Compares the 32-bit integer elements of two 64-bit integer vectors of /// [2 x i32] to determine if the element of the first vector is greater than /// the corresponding element of the second vector. /// @@ -1285,7 +1285,7 @@ return (__m64)__builtin_ia32_pcmpgtd((__v2si)__m1, (__v2si)__m2); } -/// \brief Constructs a 64-bit integer vector initialized to zero. +/// Constructs a 64-bit integer vector initialized to zero. /// /// \headerfile <x86intrin.h> /// @@ -1298,7 +1298,7 @@ return (__m64){ 0LL }; } -/// \brief Constructs a 64-bit integer vector initialized with the specified +/// Constructs a 64-bit integer vector initialized with the specified /// 32-bit integer values. /// /// \headerfile <x86intrin.h> @@ -1319,7 +1319,7 @@ return (__m64)__builtin_ia32_vec_init_v2si(__i0, __i1); } -/// \brief Constructs a 64-bit integer vector initialized with the specified +/// Constructs a 64-bit integer vector initialized with the specified /// 16-bit integer values. /// /// \headerfile <x86intrin.h> @@ -1342,7 +1342,7 @@ return (__m64)__builtin_ia32_vec_init_v4hi(__s0, __s1, __s2, __s3); } -/// \brief Constructs a 64-bit integer vector initialized with the specified +/// Constructs a 64-bit integer vector initialized with the specified /// 8-bit integer values. /// /// \headerfile <x86intrin.h> @@ -1375,7 +1375,7 @@ __b4, __b5, __b6, __b7); } -/// \brief Constructs a 64-bit integer vector of [2 x i32], with each of the +/// Constructs a 64-bit integer vector of [2 x i32], with each of the /// 32-bit integer vector elements set to the specified 32-bit integer /// value. /// @@ -1394,7 +1394,7 @@ return _mm_set_pi32(__i, __i); } -/// \brief Constructs a 64-bit integer vector of [4 x i16], with each of the +/// Constructs a 64-bit integer vector of [4 x i16], with each of the /// 16-bit integer vector elements set to the specified 16-bit integer /// value. /// @@ -1413,7 +1413,7 @@ return _mm_set_pi16(__w, __w, __w, __w); } -/// \brief Constructs a 64-bit integer vector of [8 x i8], with each of the +/// Constructs a 64-bit integer vector of [8 x i8], with each of the /// 8-bit integer vector elements set to the specified 8-bit integer value. /// /// \headerfile <x86intrin.h> @@ -1431,7 +1431,7 @@ return _mm_set_pi8(__b, __b, __b, __b, __b, __b, __b, __b); } -/// \brief Constructs a 64-bit integer vector, initialized in reverse order with +/// Constructs a 64-bit integer vector, initialized in reverse order with /// the specified 32-bit integer values. /// /// \headerfile <x86intrin.h> @@ -1452,7 +1452,7 @@ return _mm_set_pi32(__i1, __i0); } -/// \brief Constructs a 64-bit integer vector, initialized in reverse order with +/// Constructs a 64-bit integer vector, initialized in reverse order with /// the specified 16-bit integer values. /// /// \headerfile <x86intrin.h> @@ -1475,7 +1475,7 @@ return _mm_set_pi16(__w3, __w2, __w1, __w0); } -/// \brief Constructs a 64-bit integer vector, initialized in reverse order with +/// Constructs a 64-bit integer vector, initialized in reverse order with /// the specified 8-bit integer values. /// /// \headerfile <x86intrin.h> Index: cfe/trunk/lib/Headers/pmmintrin.h =================================================================== --- cfe/trunk/lib/Headers/pmmintrin.h +++ cfe/trunk/lib/Headers/pmmintrin.h @@ -30,7 +30,7 @@ #define __DEFAULT_FN_ATTRS \ __attribute__((__always_inline__, __nodebug__, __target__("sse3"))) -/// \brief Loads data from an unaligned memory location to elements in a 128-bit +/// Loads data from an unaligned memory location to elements in a 128-bit /// vector. /// /// If the address of the data is not 16-byte aligned, the instruction may @@ -50,7 +50,7 @@ return (__m128i)__builtin_ia32_lddqu((char const *)__p); } -/// \brief Adds the even-indexed values and subtracts the odd-indexed values of +/// Adds the even-indexed values and subtracts the odd-indexed values of /// two 128-bit vectors of [4 x float]. /// /// \headerfile <x86intrin.h> @@ -69,7 +69,7 @@ return __builtin_ia32_addsubps((__v4sf)__a, (__v4sf)__b); } -/// \brief Horizontally adds the adjacent pairs of values contained in two +/// Horizontally adds the adjacent pairs of values contained in two /// 128-bit vectors of [4 x float]. /// /// \headerfile <x86intrin.h> @@ -92,7 +92,7 @@ return __builtin_ia32_haddps((__v4sf)__a, (__v4sf)__b); } -/// \brief Horizontally subtracts the adjacent pairs of values contained in two +/// Horizontally subtracts the adjacent pairs of values contained in two /// 128-bit vectors of [4 x float]. /// /// \headerfile <x86intrin.h> @@ -115,7 +115,7 @@ return __builtin_ia32_hsubps((__v4sf)__a, (__v4sf)__b); } -/// \brief Moves and duplicates odd-indexed values from a 128-bit vector +/// Moves and duplicates odd-indexed values from a 128-bit vector /// of [4 x float] to float values stored in a 128-bit vector of /// [4 x float]. /// @@ -137,7 +137,7 @@ return __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 1, 1, 3, 3); } -/// \brief Duplicates even-indexed values from a 128-bit vector of +/// Duplicates even-indexed values from a 128-bit vector of /// [4 x float] to float values stored in a 128-bit vector of [4 x float]. /// /// \headerfile <x86intrin.h> @@ -158,7 +158,7 @@ return __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 0, 0, 2, 2); } -/// \brief Adds the even-indexed values and subtracts the odd-indexed values of +/// Adds the even-indexed values and subtracts the odd-indexed values of /// two 128-bit vectors of [2 x double]. /// /// \headerfile <x86intrin.h> @@ -177,7 +177,7 @@ return __builtin_ia32_addsubpd((__v2df)__a, (__v2df)__b); } -/// \brief Horizontally adds the pairs of values contained in two 128-bit +/// Horizontally adds the pairs of values contained in two 128-bit /// vectors of [2 x double]. /// /// \headerfile <x86intrin.h> @@ -200,7 +200,7 @@ return __builtin_ia32_haddpd((__v2df)__a, (__v2df)__b); } -/// \brief Horizontally subtracts the pairs of values contained in two 128-bit +/// Horizontally subtracts the pairs of values contained in two 128-bit /// vectors of [2 x double]. /// /// \headerfile <x86intrin.h> @@ -223,7 +223,7 @@ return __builtin_ia32_hsubpd((__v2df)__a, (__v2df)__b); } -/// \brief Moves and duplicates one double-precision value to double-precision +/// Moves and duplicates one double-precision value to double-precision /// values stored in a 128-bit vector of [2 x double]. /// /// \headerfile <x86intrin.h> @@ -240,7 +240,7 @@ /// duplicated values. #define _mm_loaddup_pd(dp) _mm_load1_pd(dp) -/// \brief Moves and duplicates the double-precision value in the lower bits of +/// Moves and duplicates the double-precision value in the lower bits of /// a 128-bit vector of [2 x double] to double-precision values stored in a /// 128-bit vector of [2 x double]. /// @@ -259,7 +259,7 @@ return __builtin_shufflevector((__v2df)__a, (__v2df)__a, 0, 0); } -/// \brief Establishes a linear address memory range to be monitored and puts +/// Establishes a linear address memory range to be monitored and puts /// the processor in the monitor event pending state. Data stored in the /// monitored address range causes the processor to exit the pending state. /// @@ -280,7 +280,7 @@ __builtin_ia32_monitor((void *)__p, __extensions, __hints); } -/// \brief Used with the MONITOR instruction to wait while the processor is in +/// Used with the MONITOR instruction to wait while the processor is in /// the monitor event pending state. Data stored in the monitored address /// range causes the processor to exit the pending state. /// Index: cfe/trunk/lib/Headers/popcntintrin.h =================================================================== --- cfe/trunk/lib/Headers/popcntintrin.h +++ cfe/trunk/lib/Headers/popcntintrin.h @@ -27,7 +27,7 @@ /* Define the default attributes for the functions in this file. */ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("popcnt"))) -/// \brief Counts the number of bits in the source operand having a value of 1. +/// Counts the number of bits in the source operand having a value of 1. /// /// \headerfile <x86intrin.h> /// @@ -43,7 +43,7 @@ return __builtin_popcount(__A); } -/// \brief Counts the number of bits in the source operand having a value of 1. +/// Counts the number of bits in the source operand having a value of 1. /// /// \headerfile <x86intrin.h> /// @@ -60,7 +60,7 @@ } #ifdef __x86_64__ -/// \brief Counts the number of bits in the source operand having a value of 1. +/// Counts the number of bits in the source operand having a value of 1. /// /// \headerfile <x86intrin.h> /// @@ -76,7 +76,7 @@ return __builtin_popcountll(__A); } -/// \brief Counts the number of bits in the source operand having a value of 1. +/// Counts the number of bits in the source operand having a value of 1. /// /// \headerfile <x86intrin.h> /// Index: cfe/trunk/lib/Headers/prfchwintrin.h =================================================================== --- cfe/trunk/lib/Headers/prfchwintrin.h +++ cfe/trunk/lib/Headers/prfchwintrin.h @@ -29,7 +29,7 @@ #define __PRFCHWINTRIN_H #if defined(__PRFCHW__) || defined(__3dNOW__) -/// \brief Loads a memory sequence containing the specified memory address into +/// Loads a memory sequence containing the specified memory address into /// all data cache levels. The cache-coherency state is set to exclusive. /// Data can be read from and written to the cache line without additional /// delay. @@ -46,7 +46,7 @@ __builtin_prefetch (__P, 0, 3 /* _MM_HINT_T0 */); } -/// \brief Loads a memory sequence containing the specified memory address into +/// Loads a memory sequence containing the specified memory address into /// the L1 data cache and sets the cache-coherency to modified. This /// provides a hint to the processor that the cache line will be modified. /// It is intended for use when the cache line will be written to shortly Index: cfe/trunk/lib/Headers/smmintrin.h =================================================================== --- cfe/trunk/lib/Headers/smmintrin.h +++ cfe/trunk/lib/Headers/smmintrin.h @@ -46,7 +46,7 @@ #define _MM_FROUND_RINT (_MM_FROUND_RAISE_EXC | _MM_FROUND_CUR_DIRECTION) #define _MM_FROUND_NEARBYINT (_MM_FROUND_NO_EXC | _MM_FROUND_CUR_DIRECTION) -/// \brief Rounds up each element of the 128-bit vector of [4 x float] to an +/// Rounds up each element of the 128-bit vector of [4 x float] to an /// integer and returns the rounded values in a 128-bit vector of /// [4 x float]. /// @@ -63,7 +63,7 @@ /// \returns A 128-bit vector of [4 x float] containing the rounded values. #define _mm_ceil_ps(X) _mm_round_ps((X), _MM_FROUND_CEIL) -/// \brief Rounds up each element of the 128-bit vector of [2 x double] to an +/// Rounds up each element of the 128-bit vector of [2 x double] to an /// integer and returns the rounded values in a 128-bit vector of /// [2 x double]. /// @@ -80,7 +80,7 @@ /// \returns A 128-bit vector of [2 x double] containing the rounded values. #define _mm_ceil_pd(X) _mm_round_pd((X), _MM_FROUND_CEIL) -/// \brief Copies three upper elements of the first 128-bit vector operand to +/// Copies three upper elements of the first 128-bit vector operand to /// the corresponding three upper elements of the 128-bit result vector of /// [4 x float]. Rounds up the lowest element of the second 128-bit vector /// operand to an integer and copies it to the lowest element of the 128-bit @@ -105,7 +105,7 @@ /// values. #define _mm_ceil_ss(X, Y) _mm_round_ss((X), (Y), _MM_FROUND_CEIL) -/// \brief Copies the upper element of the first 128-bit vector operand to the +/// Copies the upper element of the first 128-bit vector operand to the /// corresponding upper element of the 128-bit result vector of [2 x double]. /// Rounds up the lower element of the second 128-bit vector operand to an /// integer and copies it to the lower element of the 128-bit result vector @@ -130,7 +130,7 @@ /// values. #define _mm_ceil_sd(X, Y) _mm_round_sd((X), (Y), _MM_FROUND_CEIL) -/// \brief Rounds down each element of the 128-bit vector of [4 x float] to an +/// Rounds down each element of the 128-bit vector of [4 x float] to an /// an integer and returns the rounded values in a 128-bit vector of /// [4 x float]. /// @@ -147,7 +147,7 @@ /// \returns A 128-bit vector of [4 x float] containing the rounded values. #define _mm_floor_ps(X) _mm_round_ps((X), _MM_FROUND_FLOOR) -/// \brief Rounds down each element of the 128-bit vector of [2 x double] to an +/// Rounds down each element of the 128-bit vector of [2 x double] to an /// integer and returns the rounded values in a 128-bit vector of /// [2 x double]. /// @@ -164,7 +164,7 @@ /// \returns A 128-bit vector of [2 x double] containing the rounded values. #define _mm_floor_pd(X) _mm_round_pd((X), _MM_FROUND_FLOOR) -/// \brief Copies three upper elements of the first 128-bit vector operand to +/// Copies three upper elements of the first 128-bit vector operand to /// the corresponding three upper elements of the 128-bit result vector of /// [4 x float]. Rounds down the lowest element of the second 128-bit vector /// operand to an integer and copies it to the lowest element of the 128-bit @@ -189,7 +189,7 @@ /// values. #define _mm_floor_ss(X, Y) _mm_round_ss((X), (Y), _MM_FROUND_FLOOR) -/// \brief Copies the upper element of the first 128-bit vector operand to the +/// Copies the upper element of the first 128-bit vector operand to the /// corresponding upper element of the 128-bit result vector of [2 x double]. /// Rounds down the lower element of the second 128-bit vector operand to an /// integer and copies it to the lower element of the 128-bit result vector @@ -214,7 +214,7 @@ /// values. #define _mm_floor_sd(X, Y) _mm_round_sd((X), (Y), _MM_FROUND_FLOOR) -/// \brief Rounds each element of the 128-bit vector of [4 x float] to an +/// Rounds each element of the 128-bit vector of [4 x float] to an /// integer value according to the rounding control specified by the second /// argument and returns the rounded values in a 128-bit vector of /// [4 x float]. @@ -247,7 +247,7 @@ #define _mm_round_ps(X, M) __extension__ ({ \ (__m128)__builtin_ia32_roundps((__v4sf)(__m128)(X), (M)); }) -/// \brief Copies three upper elements of the first 128-bit vector operand to +/// Copies three upper elements of the first 128-bit vector operand to /// the corresponding three upper elements of the 128-bit result vector of /// [4 x float]. Rounds the lowest element of the second 128-bit vector /// operand to an integer value according to the rounding control specified @@ -289,7 +289,7 @@ (__m128)__builtin_ia32_roundss((__v4sf)(__m128)(X), \ (__v4sf)(__m128)(Y), (M)); }) -/// \brief Rounds each element of the 128-bit vector of [2 x double] to an +/// Rounds each element of the 128-bit vector of [2 x double] to an /// integer value according to the rounding control specified by the second /// argument and returns the rounded values in a 128-bit vector of /// [2 x double]. @@ -322,7 +322,7 @@ #define _mm_round_pd(X, M) __extension__ ({ \ (__m128d)__builtin_ia32_roundpd((__v2df)(__m128d)(X), (M)); }) -/// \brief Copies the upper element of the first 128-bit vector operand to the +/// Copies the upper element of the first 128-bit vector operand to the /// corresponding upper element of the 128-bit result vector of [2 x double]. /// Rounds the lower element of the second 128-bit vector operand to an /// integer value according to the rounding control specified by the third @@ -365,7 +365,7 @@ (__v2df)(__m128d)(Y), (M)); }) /* SSE4 Packed Blending Intrinsics. */ -/// \brief Returns a 128-bit vector of [2 x double] where the values are +/// Returns a 128-bit vector of [2 x double] where the values are /// selected from either the first or second operand as specified by the /// third operand, the control mask. /// @@ -395,7 +395,7 @@ (((M) & 0x01) ? 2 : 0), \ (((M) & 0x02) ? 3 : 1)); }) -/// \brief Returns a 128-bit vector of [4 x float] where the values are selected +/// Returns a 128-bit vector of [4 x float] where the values are selected /// from either the first or second operand as specified by the third /// operand, the control mask. /// @@ -426,7 +426,7 @@ (((M) & 0x04) ? 6 : 2), \ (((M) & 0x08) ? 7 : 3)); }) -/// \brief Returns a 128-bit vector of [2 x double] where the values are +/// Returns a 128-bit vector of [2 x double] where the values are /// selected from either the first or second operand as specified by the /// third operand, the control mask. /// @@ -453,7 +453,7 @@ (__v2df)__M); } -/// \brief Returns a 128-bit vector of [4 x float] where the values are +/// Returns a 128-bit vector of [4 x float] where the values are /// selected from either the first or second operand as specified by the /// third operand, the control mask. /// @@ -480,7 +480,7 @@ (__v4sf)__M); } -/// \brief Returns a 128-bit vector of [16 x i8] where the values are selected +/// Returns a 128-bit vector of [16 x i8] where the values are selected /// from either of the first or second operand as specified by the third /// operand, the control mask. /// @@ -507,7 +507,7 @@ (__v16qi)__M); } -/// \brief Returns a 128-bit vector of [8 x i16] where the values are selected +/// Returns a 128-bit vector of [8 x i16] where the values are selected /// from either of the first or second operand as specified by the third /// operand, the control mask. /// @@ -544,7 +544,7 @@ (((M) & 0x80) ? 15 : 7)); }) /* SSE4 Dword Multiply Instructions. */ -/// \brief Multiples corresponding elements of two 128-bit vectors of [4 x i32] +/// Multiples corresponding elements of two 128-bit vectors of [4 x i32] /// and returns the lower 32 bits of the each product in a 128-bit vector of /// [4 x i32]. /// @@ -563,7 +563,7 @@ return (__m128i) ((__v4su)__V1 * (__v4su)__V2); } -/// \brief Multiplies corresponding even-indexed elements of two 128-bit +/// Multiplies corresponding even-indexed elements of two 128-bit /// vectors of [4 x i32] and returns a 128-bit vector of [2 x i64] /// containing the products. /// @@ -584,7 +584,7 @@ } /* SSE4 Floating Point Dot Product Instructions. */ -/// \brief Computes the dot product of the two 128-bit vectors of [4 x float] +/// Computes the dot product of the two 128-bit vectors of [4 x float] /// and returns it in the elements of the 128-bit result vector of /// [4 x float]. /// @@ -620,7 +620,7 @@ (__m128) __builtin_ia32_dpps((__v4sf)(__m128)(X), \ (__v4sf)(__m128)(Y), (M)); }) -/// \brief Computes the dot product of the two 128-bit vectors of [2 x double] +/// Computes the dot product of the two 128-bit vectors of [2 x double] /// and returns it in the elements of the 128-bit result vector of /// [2 x double]. /// @@ -656,7 +656,7 @@ (__v2df)(__m128d)(Y), (M)); }) /* SSE4 Streaming Load Hint Instruction. */ -/// \brief Loads integer values from a 128-bit aligned memory location to a +/// Loads integer values from a 128-bit aligned memory location to a /// 128-bit integer vector. /// /// \headerfile <x86intrin.h> @@ -675,7 +675,7 @@ } /* SSE4 Packed Integer Min/Max Instructions. */ -/// \brief Compares the corresponding elements of two 128-bit vectors of +/// Compares the corresponding elements of two 128-bit vectors of /// [16 x i8] and returns a 128-bit vector of [16 x i8] containing the lesser /// of the two values. /// @@ -694,7 +694,7 @@ return (__m128i) __builtin_ia32_pminsb128 ((__v16qi) __V1, (__v16qi) __V2); } -/// \brief Compares the corresponding elements of two 128-bit vectors of +/// Compares the corresponding elements of two 128-bit vectors of /// [16 x i8] and returns a 128-bit vector of [16 x i8] containing the /// greater value of the two. /// @@ -713,7 +713,7 @@ return (__m128i) __builtin_ia32_pmaxsb128 ((__v16qi) __V1, (__v16qi) __V2); } -/// \brief Compares the corresponding elements of two 128-bit vectors of +/// Compares the corresponding elements of two 128-bit vectors of /// [8 x u16] and returns a 128-bit vector of [8 x u16] containing the lesser /// value of the two. /// @@ -732,7 +732,7 @@ return (__m128i) __builtin_ia32_pminuw128 ((__v8hi) __V1, (__v8hi) __V2); } -/// \brief Compares the corresponding elements of two 128-bit vectors of +/// Compares the corresponding elements of two 128-bit vectors of /// [8 x u16] and returns a 128-bit vector of [8 x u16] containing the /// greater value of the two. /// @@ -751,7 +751,7 @@ return (__m128i) __builtin_ia32_pmaxuw128 ((__v8hi) __V1, (__v8hi) __V2); } -/// \brief Compares the corresponding elements of two 128-bit vectors of +/// Compares the corresponding elements of two 128-bit vectors of /// [4 x i32] and returns a 128-bit vector of [4 x i32] containing the lesser /// value of the two. /// @@ -770,7 +770,7 @@ return (__m128i) __builtin_ia32_pminsd128 ((__v4si) __V1, (__v4si) __V2); } -/// \brief Compares the corresponding elements of two 128-bit vectors of +/// Compares the corresponding elements of two 128-bit vectors of /// [4 x i32] and returns a 128-bit vector of [4 x i32] containing the /// greater value of the two. /// @@ -789,7 +789,7 @@ return (__m128i) __builtin_ia32_pmaxsd128 ((__v4si) __V1, (__v4si) __V2); } -/// \brief Compares the corresponding elements of two 128-bit vectors of +/// Compares the corresponding elements of two 128-bit vectors of /// [4 x u32] and returns a 128-bit vector of [4 x u32] containing the lesser /// value of the two. /// @@ -808,7 +808,7 @@ return (__m128i) __builtin_ia32_pminud128((__v4si) __V1, (__v4si) __V2); } -/// \brief Compares the corresponding elements of two 128-bit vectors of +/// Compares the corresponding elements of two 128-bit vectors of /// [4 x u32] and returns a 128-bit vector of [4 x u32] containing the /// greater value of the two. /// @@ -828,7 +828,7 @@ } /* SSE4 Insertion and Extraction from XMM Register Instructions. */ -/// \brief Takes the first argument \a X and inserts an element from the second +/// Takes the first argument \a X and inserts an element from the second /// argument \a Y as selected by the third argument \a N. That result then /// has elements zeroed out also as selected by the third argument \a N. The /// resulting 128-bit vector of [4 x float] is then returned. @@ -870,7 +870,7 @@ /// single-precision floating point elements from the operands. #define _mm_insert_ps(X, Y, N) __builtin_ia32_insertps128((X), (Y), (N)) -/// \brief Extracts a 32-bit integer from a 128-bit vector of [4 x float] and +/// Extracts a 32-bit integer from a 128-bit vector of [4 x float] and /// returns it, using the immediate value parameter \a N as a selector. /// /// \headerfile <x86intrin.h> @@ -912,7 +912,7 @@ _MM_MK_INSERTPS_NDX((N), 0, 0x0e)) /* Insert int into packed integer array at index. */ -/// \brief Constructs a 128-bit vector of [16 x i8] by first making a copy of +/// Constructs a 128-bit vector of [16 x i8] by first making a copy of /// the 128-bit integer vector parameter, and then inserting the lower 8 bits /// of an integer parameter \a I into an offset specified by the immediate /// value parameter \a N. @@ -957,7 +957,7 @@ __a[(N) & 15] = (I); \ (__m128i)__a;})) -/// \brief Constructs a 128-bit vector of [4 x i32] by first making a copy of +/// Constructs a 128-bit vector of [4 x i32] by first making a copy of /// the 128-bit integer vector parameter, and then inserting the 32-bit /// integer parameter \a I at the offset specified by the immediate value /// parameter \a N. @@ -991,7 +991,7 @@ (__m128i)__a;})) #ifdef __x86_64__ -/// \brief Constructs a 128-bit vector of [2 x i64] by first making a copy of +/// Constructs a 128-bit vector of [2 x i64] by first making a copy of /// the 128-bit integer vector parameter, and then inserting the 64-bit /// integer parameter \a I, using the immediate value parameter \a N as an /// insertion location selector. @@ -1026,7 +1026,7 @@ /* Extract int from packed integer array at index. This returns the element * as a zero extended value, so it is unsigned. */ -/// \brief Extracts an 8-bit element from the 128-bit integer vector of +/// Extracts an 8-bit element from the 128-bit integer vector of /// [16 x i8], using the immediate value parameter \a N as a selector. /// /// \headerfile <x86intrin.h> @@ -1065,7 +1065,7 @@ ({ __v16qi __a = (__v16qi)(__m128i)(X); \ (int)(unsigned char) __a[(N) & 15];})) -/// \brief Extracts a 32-bit element from the 128-bit integer vector of +/// Extracts a 32-bit element from the 128-bit integer vector of /// [4 x i32], using the immediate value parameter \a N as a selector. /// /// \headerfile <x86intrin.h> @@ -1092,7 +1092,7 @@ (int)__a[(N) & 3];})) #ifdef __x86_64__ -/// \brief Extracts a 64-bit element from the 128-bit integer vector of +/// Extracts a 64-bit element from the 128-bit integer vector of /// [2 x i64], using the immediate value parameter \a N as a selector. /// /// \headerfile <x86intrin.h> @@ -1117,7 +1117,7 @@ #endif /* __x86_64 */ /* SSE4 128-bit Packed Integer Comparisons. */ -/// \brief Tests whether the specified bits in a 128-bit integer vector are all +/// Tests whether the specified bits in a 128-bit integer vector are all /// zeros. /// /// \headerfile <x86intrin.h> @@ -1135,7 +1135,7 @@ return __builtin_ia32_ptestz128((__v2di)__M, (__v2di)__V); } -/// \brief Tests whether the specified bits in a 128-bit integer vector are all +/// Tests whether the specified bits in a 128-bit integer vector are all /// ones. /// /// \headerfile <x86intrin.h> @@ -1153,7 +1153,7 @@ return __builtin_ia32_ptestc128((__v2di)__M, (__v2di)__V); } -/// \brief Tests whether the specified bits in a 128-bit integer vector are +/// Tests whether the specified bits in a 128-bit integer vector are /// neither all zeros nor all ones. /// /// \headerfile <x86intrin.h> @@ -1172,7 +1172,7 @@ return __builtin_ia32_ptestnzc128((__v2di)__M, (__v2di)__V); } -/// \brief Tests whether the specified bits in a 128-bit integer vector are all +/// Tests whether the specified bits in a 128-bit integer vector are all /// ones. /// /// \headerfile <x86intrin.h> @@ -1189,7 +1189,7 @@ /// otherwise. #define _mm_test_all_ones(V) _mm_testc_si128((V), _mm_cmpeq_epi32((V), (V))) -/// \brief Tests whether the specified bits in a 128-bit integer vector are +/// Tests whether the specified bits in a 128-bit integer vector are /// neither all zeros nor all ones. /// /// \headerfile <x86intrin.h> @@ -1208,7 +1208,7 @@ /// FALSE otherwise. #define _mm_test_mix_ones_zeros(M, V) _mm_testnzc_si128((M), (V)) -/// \brief Tests whether the specified bits in a 128-bit integer vector are all +/// Tests whether the specified bits in a 128-bit integer vector are all /// zeros. /// /// \headerfile <x86intrin.h> @@ -1227,7 +1227,7 @@ #define _mm_test_all_zeros(M, V) _mm_testz_si128 ((M), (V)) /* SSE4 64-bit Packed Integer Comparisons. */ -/// \brief Compares each of the corresponding 64-bit values of the 128-bit +/// Compares each of the corresponding 64-bit values of the 128-bit /// integer vectors for equality. /// /// \headerfile <x86intrin.h> @@ -1246,7 +1246,7 @@ } /* SSE4 Packed Integer Sign-Extension. */ -/// \brief Sign-extends each of the lower eight 8-bit integer elements of a +/// Sign-extends each of the lower eight 8-bit integer elements of a /// 128-bit vector of [16 x i8] to 16-bit values and returns them in a /// 128-bit vector of [8 x i16]. The upper eight elements of the input vector /// are unused. @@ -1267,7 +1267,7 @@ return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qs)__V, (__v16qs)__V, 0, 1, 2, 3, 4, 5, 6, 7), __v8hi); } -/// \brief Sign-extends each of the lower four 8-bit integer elements of a +/// Sign-extends each of the lower four 8-bit integer elements of a /// 128-bit vector of [16 x i8] to 32-bit values and returns them in a /// 128-bit vector of [4 x i32]. The upper twelve elements of the input /// vector are unused. @@ -1288,7 +1288,7 @@ return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qs)__V, (__v16qs)__V, 0, 1, 2, 3), __v4si); } -/// \brief Sign-extends each of the lower two 8-bit integer elements of a +/// Sign-extends each of the lower two 8-bit integer elements of a /// 128-bit integer vector of [16 x i8] to 64-bit values and returns them in /// a 128-bit vector of [2 x i64]. The upper fourteen elements of the input /// vector are unused. @@ -1309,7 +1309,7 @@ return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qs)__V, (__v16qs)__V, 0, 1), __v2di); } -/// \brief Sign-extends each of the lower four 16-bit integer elements of a +/// Sign-extends each of the lower four 16-bit integer elements of a /// 128-bit integer vector of [8 x i16] to 32-bit values and returns them in /// a 128-bit vector of [4 x i32]. The upper four elements of the input /// vector are unused. @@ -1328,7 +1328,7 @@ return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v8hi)__V, (__v8hi)__V, 0, 1, 2, 3), __v4si); } -/// \brief Sign-extends each of the lower two 16-bit integer elements of a +/// Sign-extends each of the lower two 16-bit integer elements of a /// 128-bit integer vector of [8 x i16] to 64-bit values and returns them in /// a 128-bit vector of [2 x i64]. The upper six elements of the input /// vector are unused. @@ -1347,7 +1347,7 @@ return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v8hi)__V, (__v8hi)__V, 0, 1), __v2di); } -/// \brief Sign-extends each of the lower two 32-bit integer elements of a +/// Sign-extends each of the lower two 32-bit integer elements of a /// 128-bit integer vector of [4 x i32] to 64-bit values and returns them in /// a 128-bit vector of [2 x i64]. The upper two elements of the input vector /// are unused. @@ -1367,7 +1367,7 @@ } /* SSE4 Packed Integer Zero-Extension. */ -/// \brief Zero-extends each of the lower eight 8-bit integer elements of a +/// Zero-extends each of the lower eight 8-bit integer elements of a /// 128-bit vector of [16 x i8] to 16-bit values and returns them in a /// 128-bit vector of [8 x i16]. The upper eight elements of the input vector /// are unused. @@ -1386,7 +1386,7 @@ return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1, 2, 3, 4, 5, 6, 7), __v8hi); } -/// \brief Zero-extends each of the lower four 8-bit integer elements of a +/// Zero-extends each of the lower four 8-bit integer elements of a /// 128-bit vector of [16 x i8] to 32-bit values and returns them in a /// 128-bit vector of [4 x i32]. The upper twelve elements of the input /// vector are unused. @@ -1405,7 +1405,7 @@ return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1, 2, 3), __v4si); } -/// \brief Zero-extends each of the lower two 8-bit integer elements of a +/// Zero-extends each of the lower two 8-bit integer elements of a /// 128-bit integer vector of [16 x i8] to 64-bit values and returns them in /// a 128-bit vector of [2 x i64]. The upper fourteen elements of the input /// vector are unused. @@ -1424,7 +1424,7 @@ return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1), __v2di); } -/// \brief Zero-extends each of the lower four 16-bit integer elements of a +/// Zero-extends each of the lower four 16-bit integer elements of a /// 128-bit integer vector of [8 x i16] to 32-bit values and returns them in /// a 128-bit vector of [4 x i32]. The upper four elements of the input /// vector are unused. @@ -1443,7 +1443,7 @@ return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v8hu)__V, (__v8hu)__V, 0, 1, 2, 3), __v4si); } -/// \brief Zero-extends each of the lower two 16-bit integer elements of a +/// Zero-extends each of the lower two 16-bit integer elements of a /// 128-bit integer vector of [8 x i16] to 64-bit values and returns them in /// a 128-bit vector of [2 x i64]. The upper six elements of the input vector /// are unused. @@ -1462,7 +1462,7 @@ return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v8hu)__V, (__v8hu)__V, 0, 1), __v2di); } -/// \brief Zero-extends each of the lower two 32-bit integer elements of a +/// Zero-extends each of the lower two 32-bit integer elements of a /// 128-bit integer vector of [4 x i32] to 64-bit values and returns them in /// a 128-bit vector of [2 x i64]. The upper two elements of the input vector /// are unused. @@ -1482,7 +1482,7 @@ } /* SSE4 Pack with Unsigned Saturation. */ -/// \brief Converts 32-bit signed integers from both 128-bit integer vector +/// Converts 32-bit signed integers from both 128-bit integer vector /// operands into 16-bit unsigned integers, and returns the packed result. /// Values greater than 0xFFFF are saturated to 0xFFFF. Values less than /// 0x0000 are saturated to 0x0000. @@ -1511,7 +1511,7 @@ } /* SSE4 Multiple Packed Sums of Absolute Difference. */ -/// \brief Subtracts 8-bit unsigned integer values and computes the absolute +/// Subtracts 8-bit unsigned integer values and computes the absolute /// values of the differences to the corresponding bits in the destination. /// Then sums of the absolute differences are returned according to the bit /// fields in the immediate operand. @@ -1550,7 +1550,7 @@ (__m128i) __builtin_ia32_mpsadbw128((__v16qi)(__m128i)(X), \ (__v16qi)(__m128i)(Y), (M)); }) -/// \brief Finds the minimum unsigned 16-bit element in the input 128-bit +/// Finds the minimum unsigned 16-bit element in the input 128-bit /// vector of [8 x u16] and returns it and along with its index. /// /// \headerfile <x86intrin.h> @@ -1604,7 +1604,7 @@ #define _SIDD_UNIT_MASK 0x40 /* SSE4.2 Packed Comparison Intrinsics. */ -/// \brief Uses the immediate operand \a M to perform a comparison of string +/// Uses the immediate operand \a M to perform a comparison of string /// data with implicitly defined lengths that is contained in source operands /// \a A and \a B. Returns a 128-bit integer vector representing the result /// mask of the comparison. @@ -1660,7 +1660,7 @@ (__m128i)__builtin_ia32_pcmpistrm128((__v16qi)(__m128i)(A), \ (__v16qi)(__m128i)(B), (int)(M)) -/// \brief Uses the immediate operand \a M to perform a comparison of string +/// Uses the immediate operand \a M to perform a comparison of string /// data with implicitly defined lengths that is contained in source operands /// \a A and \a B. Returns an integer representing the result index of the /// comparison. @@ -1714,7 +1714,7 @@ (int)__builtin_ia32_pcmpistri128((__v16qi)(__m128i)(A), \ (__v16qi)(__m128i)(B), (int)(M)) -/// \brief Uses the immediate operand \a M to perform a comparison of string +/// Uses the immediate operand \a M to perform a comparison of string /// data with explicitly defined lengths that is contained in source operands /// \a A and \a B. Returns a 128-bit integer vector representing the result /// mask of the comparison. @@ -1775,7 +1775,7 @@ (__v16qi)(__m128i)(B), (int)(LB), \ (int)(M)) -/// \brief Uses the immediate operand \a M to perform a comparison of string +/// Uses the immediate operand \a M to perform a comparison of string /// data with explicitly defined lengths that is contained in source operands /// \a A and \a B. Returns an integer representing the result index of the /// comparison. @@ -1835,7 +1835,7 @@ (int)(M)) /* SSE4.2 Packed Comparison Intrinsics and EFlag Reading. */ -/// \brief Uses the immediate operand \a M to perform a comparison of string +/// Uses the immediate operand \a M to perform a comparison of string /// data with implicitly defined lengths that is contained in source operands /// \a A and \a B. Returns 1 if the bit mask is zero and the length of the /// string in \a B is the maximum, otherwise, returns 0. @@ -1885,7 +1885,7 @@ (int)__builtin_ia32_pcmpistria128((__v16qi)(__m128i)(A), \ (__v16qi)(__m128i)(B), (int)(M)) -/// \brief Uses the immediate operand \a M to perform a comparison of string +/// Uses the immediate operand \a M to perform a comparison of string /// data with implicitly defined lengths that is contained in source operands /// \a A and \a B. Returns 1 if the bit mask is non-zero, otherwise, returns /// 0. @@ -1934,7 +1934,7 @@ (int)__builtin_ia32_pcmpistric128((__v16qi)(__m128i)(A), \ (__v16qi)(__m128i)(B), (int)(M)) -/// \brief Uses the immediate operand \a M to perform a comparison of string +/// Uses the immediate operand \a M to perform a comparison of string /// data with implicitly defined lengths that is contained in source operands /// \a A and \a B. Returns bit 0 of the resulting bit mask. /// @@ -1982,7 +1982,7 @@ (int)__builtin_ia32_pcmpistrio128((__v16qi)(__m128i)(A), \ (__v16qi)(__m128i)(B), (int)(M)) -/// \brief Uses the immediate operand \a M to perform a comparison of string +/// Uses the immediate operand \a M to perform a comparison of string /// data with implicitly defined lengths that is contained in source operands /// \a A and \a B. Returns 1 if the length of the string in \a A is less than /// the maximum, otherwise, returns 0. @@ -2032,7 +2032,7 @@ (int)__builtin_ia32_pcmpistris128((__v16qi)(__m128i)(A), \ (__v16qi)(__m128i)(B), (int)(M)) -/// \brief Uses the immediate operand \a M to perform a comparison of string +/// Uses the immediate operand \a M to perform a comparison of string /// data with implicitly defined lengths that is contained in source operands /// \a A and \a B. Returns 1 if the length of the string in \a B is less than /// the maximum, otherwise, returns 0. @@ -2082,7 +2082,7 @@ (int)__builtin_ia32_pcmpistriz128((__v16qi)(__m128i)(A), \ (__v16qi)(__m128i)(B), (int)(M)) -/// \brief Uses the immediate operand \a M to perform a comparison of string +/// Uses the immediate operand \a M to perform a comparison of string /// data with explicitly defined lengths that is contained in source operands /// \a A and \a B. Returns 1 if the bit mask is zero and the length of the /// string in \a B is the maximum, otherwise, returns 0. @@ -2137,7 +2137,7 @@ (__v16qi)(__m128i)(B), (int)(LB), \ (int)(M)) -/// \brief Uses the immediate operand \a M to perform a comparison of string +/// Uses the immediate operand \a M to perform a comparison of string /// data with explicitly defined lengths that is contained in source operands /// \a A and \a B. Returns 1 if the resulting mask is non-zero, otherwise, /// returns 0. @@ -2191,7 +2191,7 @@ (__v16qi)(__m128i)(B), (int)(LB), \ (int)(M)) -/// \brief Uses the immediate operand \a M to perform a comparison of string +/// Uses the immediate operand \a M to perform a comparison of string /// data with explicitly defined lengths that is contained in source operands /// \a A and \a B. Returns bit 0 of the resulting bit mask. /// @@ -2244,7 +2244,7 @@ (__v16qi)(__m128i)(B), (int)(LB), \ (int)(M)) -/// \brief Uses the immediate operand \a M to perform a comparison of string +/// Uses the immediate operand \a M to perform a comparison of string /// data with explicitly defined lengths that is contained in source operands /// \a A and \a B. Returns 1 if the length of the string in \a A is less than /// the maximum, otherwise, returns 0. @@ -2299,7 +2299,7 @@ (__v16qi)(__m128i)(B), (int)(LB), \ (int)(M)) -/// \brief Uses the immediate operand \a M to perform a comparison of string +/// Uses the immediate operand \a M to perform a comparison of string /// data with explicitly defined lengths that is contained in source operands /// \a A and \a B. Returns 1 if the length of the string in \a B is less than /// the maximum, otherwise, returns 0. @@ -2354,7 +2354,7 @@ (int)(M)) /* SSE4.2 Compare Packed Data -- Greater Than. */ -/// \brief Compares each of the corresponding 64-bit values of the 128-bit +/// Compares each of the corresponding 64-bit values of the 128-bit /// integer vectors to determine if the values in the first operand are /// greater than those in the second operand. /// @@ -2374,7 +2374,7 @@ } /* SSE4.2 Accumulate CRC32. */ -/// \brief Adds the unsigned integer operand to the CRC-32C checksum of the +/// Adds the unsigned integer operand to the CRC-32C checksum of the /// unsigned char operand. /// /// \headerfile <x86intrin.h> @@ -2394,7 +2394,7 @@ return __builtin_ia32_crc32qi(__C, __D); } -/// \brief Adds the unsigned integer operand to the CRC-32C checksum of the +/// Adds the unsigned integer operand to the CRC-32C checksum of the /// unsigned short operand. /// /// \headerfile <x86intrin.h> @@ -2414,7 +2414,7 @@ return __builtin_ia32_crc32hi(__C, __D); } -/// \brief Adds the first unsigned integer operand to the CRC-32C checksum of +/// Adds the first unsigned integer operand to the CRC-32C checksum of /// the second unsigned integer operand. /// /// \headerfile <x86intrin.h> @@ -2435,7 +2435,7 @@ } #ifdef __x86_64__ -/// \brief Adds the unsigned integer operand to the CRC-32C checksum of the +/// Adds the unsigned integer operand to the CRC-32C checksum of the /// unsigned 64-bit integer operand. /// /// \headerfile <x86intrin.h> Index: cfe/trunk/lib/Headers/tmmintrin.h =================================================================== --- cfe/trunk/lib/Headers/tmmintrin.h +++ cfe/trunk/lib/Headers/tmmintrin.h @@ -29,7 +29,7 @@ /* Define the default attributes for the functions in this file. */ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("ssse3"))) -/// \brief Computes the absolute value of each of the packed 8-bit signed +/// Computes the absolute value of each of the packed 8-bit signed /// integers in the source operand and stores the 8-bit unsigned integer /// results in the destination. /// @@ -47,7 +47,7 @@ return (__m64)__builtin_ia32_pabsb((__v8qi)__a); } -/// \brief Computes the absolute value of each of the packed 8-bit signed +/// Computes the absolute value of each of the packed 8-bit signed /// integers in the source operand and stores the 8-bit unsigned integer /// results in the destination. /// @@ -65,7 +65,7 @@ return (__m128i)__builtin_ia32_pabsb128((__v16qi)__a); } -/// \brief Computes the absolute value of each of the packed 16-bit signed +/// Computes the absolute value of each of the packed 16-bit signed /// integers in the source operand and stores the 16-bit unsigned integer /// results in the destination. /// @@ -83,7 +83,7 @@ return (__m64)__builtin_ia32_pabsw((__v4hi)__a); } -/// \brief Computes the absolute value of each of the packed 16-bit signed +/// Computes the absolute value of each of the packed 16-bit signed /// integers in the source operand and stores the 16-bit unsigned integer /// results in the destination. /// @@ -101,7 +101,7 @@ return (__m128i)__builtin_ia32_pabsw128((__v8hi)__a); } -/// \brief Computes the absolute value of each of the packed 32-bit signed +/// Computes the absolute value of each of the packed 32-bit signed /// integers in the source operand and stores the 32-bit unsigned integer /// results in the destination. /// @@ -119,7 +119,7 @@ return (__m64)__builtin_ia32_pabsd((__v2si)__a); } -/// \brief Computes the absolute value of each of the packed 32-bit signed +/// Computes the absolute value of each of the packed 32-bit signed /// integers in the source operand and stores the 32-bit unsigned integer /// results in the destination. /// @@ -137,7 +137,7 @@ return (__m128i)__builtin_ia32_pabsd128((__v4si)__a); } -/// \brief Concatenates the two 128-bit integer vector operands, and +/// Concatenates the two 128-bit integer vector operands, and /// right-shifts the result by the number of bytes specified in the immediate /// operand. /// @@ -161,7 +161,7 @@ (__m128i)__builtin_ia32_palignr128((__v16qi)(__m128i)(a), \ (__v16qi)(__m128i)(b), (n)); }) -/// \brief Concatenates the two 64-bit integer vector operands, and right-shifts +/// Concatenates the two 64-bit integer vector operands, and right-shifts /// the result by the number of bytes specified in the immediate operand. /// /// \headerfile <x86intrin.h> @@ -183,7 +183,7 @@ #define _mm_alignr_pi8(a, b, n) __extension__ ({ \ (__m64)__builtin_ia32_palignr((__v8qi)(__m64)(a), (__v8qi)(__m64)(b), (n)); }) -/// \brief Horizontally adds the adjacent pairs of values contained in 2 packed +/// Horizontally adds the adjacent pairs of values contained in 2 packed /// 128-bit vectors of [8 x i16]. /// /// \headerfile <x86intrin.h> @@ -206,7 +206,7 @@ return (__m128i)__builtin_ia32_phaddw128((__v8hi)__a, (__v8hi)__b); } -/// \brief Horizontally adds the adjacent pairs of values contained in 2 packed +/// Horizontally adds the adjacent pairs of values contained in 2 packed /// 128-bit vectors of [4 x i32]. /// /// \headerfile <x86intrin.h> @@ -229,7 +229,7 @@ return (__m128i)__builtin_ia32_phaddd128((__v4si)__a, (__v4si)__b); } -/// \brief Horizontally adds the adjacent pairs of values contained in 2 packed +/// Horizontally adds the adjacent pairs of values contained in 2 packed /// 64-bit vectors of [4 x i16]. /// /// \headerfile <x86intrin.h> @@ -252,7 +252,7 @@ return (__m64)__builtin_ia32_phaddw((__v4hi)__a, (__v4hi)__b); } -/// \brief Horizontally adds the adjacent pairs of values contained in 2 packed +/// Horizontally adds the adjacent pairs of values contained in 2 packed /// 64-bit vectors of [2 x i32]. /// /// \headerfile <x86intrin.h> @@ -275,7 +275,7 @@ return (__m64)__builtin_ia32_phaddd((__v2si)__a, (__v2si)__b); } -/// \brief Horizontally adds the adjacent pairs of values contained in 2 packed +/// Horizontally adds the adjacent pairs of values contained in 2 packed /// 128-bit vectors of [8 x i16]. Positive sums greater than 0x7FFF are /// saturated to 0x7FFF. Negative sums less than 0x8000 are saturated to /// 0x8000. @@ -300,7 +300,7 @@ return (__m128i)__builtin_ia32_phaddsw128((__v8hi)__a, (__v8hi)__b); } -/// \brief Horizontally adds the adjacent pairs of values contained in 2 packed +/// Horizontally adds the adjacent pairs of values contained in 2 packed /// 64-bit vectors of [4 x i16]. Positive sums greater than 0x7FFF are /// saturated to 0x7FFF. Negative sums less than 0x8000 are saturated to /// 0x8000. @@ -325,7 +325,7 @@ return (__m64)__builtin_ia32_phaddsw((__v4hi)__a, (__v4hi)__b); } -/// \brief Horizontally subtracts the adjacent pairs of values contained in 2 +/// Horizontally subtracts the adjacent pairs of values contained in 2 /// packed 128-bit vectors of [8 x i16]. /// /// \headerfile <x86intrin.h> @@ -348,7 +348,7 @@ return (__m128i)__builtin_ia32_phsubw128((__v8hi)__a, (__v8hi)__b); } -/// \brief Horizontally subtracts the adjacent pairs of values contained in 2 +/// Horizontally subtracts the adjacent pairs of values contained in 2 /// packed 128-bit vectors of [4 x i32]. /// /// \headerfile <x86intrin.h> @@ -371,7 +371,7 @@ return (__m128i)__builtin_ia32_phsubd128((__v4si)__a, (__v4si)__b); } -/// \brief Horizontally subtracts the adjacent pairs of values contained in 2 +/// Horizontally subtracts the adjacent pairs of values contained in 2 /// packed 64-bit vectors of [4 x i16]. /// /// \headerfile <x86intrin.h> @@ -394,7 +394,7 @@ return (__m64)__builtin_ia32_phsubw((__v4hi)__a, (__v4hi)__b); } -/// \brief Horizontally subtracts the adjacent pairs of values contained in 2 +/// Horizontally subtracts the adjacent pairs of values contained in 2 /// packed 64-bit vectors of [2 x i32]. /// /// \headerfile <x86intrin.h> @@ -417,7 +417,7 @@ return (__m64)__builtin_ia32_phsubd((__v2si)__a, (__v2si)__b); } -/// \brief Horizontally subtracts the adjacent pairs of values contained in 2 +/// Horizontally subtracts the adjacent pairs of values contained in 2 /// packed 128-bit vectors of [8 x i16]. Positive differences greater than /// 0x7FFF are saturated to 0x7FFF. Negative differences less than 0x8000 are /// saturated to 0x8000. @@ -442,7 +442,7 @@ return (__m128i)__builtin_ia32_phsubsw128((__v8hi)__a, (__v8hi)__b); } -/// \brief Horizontally subtracts the adjacent pairs of values contained in 2 +/// Horizontally subtracts the adjacent pairs of values contained in 2 /// packed 64-bit vectors of [4 x i16]. Positive differences greater than /// 0x7FFF are saturated to 0x7FFF. Negative differences less than 0x8000 are /// saturated to 0x8000. @@ -467,7 +467,7 @@ return (__m64)__builtin_ia32_phsubsw((__v4hi)__a, (__v4hi)__b); } -/// \brief Multiplies corresponding pairs of packed 8-bit unsigned integer +/// Multiplies corresponding pairs of packed 8-bit unsigned integer /// values contained in the first source operand and packed 8-bit signed /// integer values contained in the second source operand, adds pairs of /// contiguous products with signed saturation, and writes the 16-bit sums to @@ -501,7 +501,7 @@ return (__m128i)__builtin_ia32_pmaddubsw128((__v16qi)__a, (__v16qi)__b); } -/// \brief Multiplies corresponding pairs of packed 8-bit unsigned integer +/// Multiplies corresponding pairs of packed 8-bit unsigned integer /// values contained in the first source operand and packed 8-bit signed /// integer values contained in the second source operand, adds pairs of /// contiguous products with signed saturation, and writes the 16-bit sums to @@ -531,7 +531,7 @@ return (__m64)__builtin_ia32_pmaddubsw((__v8qi)__a, (__v8qi)__b); } -/// \brief Multiplies packed 16-bit signed integer values, truncates the 32-bit +/// Multiplies packed 16-bit signed integer values, truncates the 32-bit /// products to the 18 most significant bits by right-shifting, rounds the /// truncated value by adding 1, and writes bits [16:1] to the destination. /// @@ -551,7 +551,7 @@ return (__m128i)__builtin_ia32_pmulhrsw128((__v8hi)__a, (__v8hi)__b); } -/// \brief Multiplies packed 16-bit signed integer values, truncates the 32-bit +/// Multiplies packed 16-bit signed integer values, truncates the 32-bit /// products to the 18 most significant bits by right-shifting, rounds the /// truncated value by adding 1, and writes bits [16:1] to the destination. /// @@ -571,7 +571,7 @@ return (__m64)__builtin_ia32_pmulhrsw((__v4hi)__a, (__v4hi)__b); } -/// \brief Copies the 8-bit integers from a 128-bit integer vector to the +/// Copies the 8-bit integers from a 128-bit integer vector to the /// destination or clears 8-bit values in the destination, as specified by /// the second source operand. /// @@ -597,7 +597,7 @@ return (__m128i)__builtin_ia32_pshufb128((__v16qi)__a, (__v16qi)__b); } -/// \brief Copies the 8-bit integers from a 64-bit integer vector to the +/// Copies the 8-bit integers from a 64-bit integer vector to the /// destination or clears 8-bit values in the destination, as specified by /// the second source operand. /// @@ -622,7 +622,7 @@ return (__m64)__builtin_ia32_pshufb((__v8qi)__a, (__v8qi)__b); } -/// \brief For each 8-bit integer in the first source operand, perform one of +/// For each 8-bit integer in the first source operand, perform one of /// the following actions as specified by the second source operand. /// /// If the byte in the second source is negative, calculate the two's @@ -648,7 +648,7 @@ return (__m128i)__builtin_ia32_psignb128((__v16qi)__a, (__v16qi)__b); } -/// \brief For each 16-bit integer in the first source operand, perform one of +/// For each 16-bit integer in the first source operand, perform one of /// the following actions as specified by the second source operand. /// /// If the word in the second source is negative, calculate the two's @@ -674,7 +674,7 @@ return (__m128i)__builtin_ia32_psignw128((__v8hi)__a, (__v8hi)__b); } -/// \brief For each 32-bit integer in the first source operand, perform one of +/// For each 32-bit integer in the first source operand, perform one of /// the following actions as specified by the second source operand. /// /// If the doubleword in the second source is negative, calculate the two's @@ -700,7 +700,7 @@ return (__m128i)__builtin_ia32_psignd128((__v4si)__a, (__v4si)__b); } -/// \brief For each 8-bit integer in the first source operand, perform one of +/// For each 8-bit integer in the first source operand, perform one of /// the following actions as specified by the second source operand. /// /// If the byte in the second source is negative, calculate the two's @@ -726,7 +726,7 @@ return (__m64)__builtin_ia32_psignb((__v8qi)__a, (__v8qi)__b); } -/// \brief For each 16-bit integer in the first source operand, perform one of +/// For each 16-bit integer in the first source operand, perform one of /// the following actions as specified by the second source operand. /// /// If the word in the second source is negative, calculate the two's @@ -752,7 +752,7 @@ return (__m64)__builtin_ia32_psignw((__v4hi)__a, (__v4hi)__b); } -/// \brief For each 32-bit integer in the first source operand, perform one of +/// For each 32-bit integer in the first source operand, perform one of /// the following actions as specified by the second source operand. /// /// If the doubleword in the second source is negative, calculate the two's Index: cfe/trunk/lib/Headers/xmmintrin.h =================================================================== --- cfe/trunk/lib/Headers/xmmintrin.h +++ cfe/trunk/lib/Headers/xmmintrin.h @@ -42,7 +42,7 @@ /* Define the default attributes for the functions in this file. */ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("sse"))) -/// \brief Adds the 32-bit float values in the low-order bits of the operands. +/// Adds the 32-bit float values in the low-order bits of the operands. /// /// \headerfile <x86intrin.h> /// @@ -64,7 +64,7 @@ return __a; } -/// \brief Adds two 128-bit vectors of [4 x float], and returns the results of +/// Adds two 128-bit vectors of [4 x float], and returns the results of /// the addition. /// /// \headerfile <x86intrin.h> @@ -83,7 +83,7 @@ return (__m128)((__v4sf)__a + (__v4sf)__b); } -/// \brief Subtracts the 32-bit float value in the low-order bits of the second +/// Subtracts the 32-bit float value in the low-order bits of the second /// operand from the corresponding value in the first operand. /// /// \headerfile <x86intrin.h> @@ -106,7 +106,7 @@ return __a; } -/// \brief Subtracts each of the values of the second operand from the first +/// Subtracts each of the values of the second operand from the first /// operand, both of which are 128-bit vectors of [4 x float] and returns /// the results of the subtraction. /// @@ -126,7 +126,7 @@ return (__m128)((__v4sf)__a - (__v4sf)__b); } -/// \brief Multiplies two 32-bit float values in the low-order bits of the +/// Multiplies two 32-bit float values in the low-order bits of the /// operands. /// /// \headerfile <x86intrin.h> @@ -149,7 +149,7 @@ return __a; } -/// \brief Multiplies two 128-bit vectors of [4 x float] and returns the +/// Multiplies two 128-bit vectors of [4 x float] and returns the /// results of the multiplication. /// /// \headerfile <x86intrin.h> @@ -168,7 +168,7 @@ return (__m128)((__v4sf)__a * (__v4sf)__b); } -/// \brief Divides the value in the low-order 32 bits of the first operand by +/// Divides the value in the low-order 32 bits of the first operand by /// the corresponding value in the second operand. /// /// \headerfile <x86intrin.h> @@ -191,7 +191,7 @@ return __a; } -/// \brief Divides two 128-bit vectors of [4 x float]. +/// Divides two 128-bit vectors of [4 x float]. /// /// \headerfile <x86intrin.h> /// @@ -209,7 +209,7 @@ return (__m128)((__v4sf)__a / (__v4sf)__b); } -/// \brief Calculates the square root of the value stored in the low-order bits +/// Calculates the square root of the value stored in the low-order bits /// of a 128-bit vector of [4 x float]. /// /// \headerfile <x86intrin.h> @@ -228,7 +228,7 @@ return (__m128) { __c[0], __a[1], __a[2], __a[3] }; } -/// \brief Calculates the square roots of the values stored in a 128-bit vector +/// Calculates the square roots of the values stored in a 128-bit vector /// of [4 x float]. /// /// \headerfile <x86intrin.h> @@ -245,7 +245,7 @@ return __builtin_ia32_sqrtps((__v4sf)__a); } -/// \brief Calculates the approximate reciprocal of the value stored in the +/// Calculates the approximate reciprocal of the value stored in the /// low-order bits of a 128-bit vector of [4 x float]. /// /// \headerfile <x86intrin.h> @@ -264,7 +264,7 @@ return (__m128) { __c[0], __a[1], __a[2], __a[3] }; } -/// \brief Calculates the approximate reciprocals of the values stored in a +/// Calculates the approximate reciprocals of the values stored in a /// 128-bit vector of [4 x float]. /// /// \headerfile <x86intrin.h> @@ -281,7 +281,7 @@ return __builtin_ia32_rcpps((__v4sf)__a); } -/// \brief Calculates the approximate reciprocal of the square root of the value +/// Calculates the approximate reciprocal of the square root of the value /// stored in the low-order bits of a 128-bit vector of [4 x float]. /// /// \headerfile <x86intrin.h> @@ -301,7 +301,7 @@ return (__m128) { __c[0], __a[1], __a[2], __a[3] }; } -/// \brief Calculates the approximate reciprocals of the square roots of the +/// Calculates the approximate reciprocals of the square roots of the /// values stored in a 128-bit vector of [4 x float]. /// /// \headerfile <x86intrin.h> @@ -318,7 +318,7 @@ return __builtin_ia32_rsqrtps((__v4sf)__a); } -/// \brief Compares two 32-bit float values in the low-order bits of both +/// Compares two 32-bit float values in the low-order bits of both /// operands and returns the lesser value in the low-order bits of the /// vector of [4 x float]. /// @@ -341,7 +341,7 @@ return __builtin_ia32_minss((__v4sf)__a, (__v4sf)__b); } -/// \brief Compares two 128-bit vectors of [4 x float] and returns the lesser +/// Compares two 128-bit vectors of [4 x float] and returns the lesser /// of each pair of values. /// /// \headerfile <x86intrin.h> @@ -360,7 +360,7 @@ return __builtin_ia32_minps((__v4sf)__a, (__v4sf)__b); } -/// \brief Compares two 32-bit float values in the low-order bits of both +/// Compares two 32-bit float values in the low-order bits of both /// operands and returns the greater value in the low-order bits of a 128-bit /// vector of [4 x float]. /// @@ -383,7 +383,7 @@ return __builtin_ia32_maxss((__v4sf)__a, (__v4sf)__b); } -/// \brief Compares two 128-bit vectors of [4 x float] and returns the greater +/// Compares two 128-bit vectors of [4 x float] and returns the greater /// of each pair of values. /// /// \headerfile <x86intrin.h> @@ -402,7 +402,7 @@ return __builtin_ia32_maxps((__v4sf)__a, (__v4sf)__b); } -/// \brief Performs a bitwise AND of two 128-bit vectors of [4 x float]. +/// Performs a bitwise AND of two 128-bit vectors of [4 x float]. /// /// \headerfile <x86intrin.h> /// @@ -420,7 +420,7 @@ return (__m128)((__v4su)__a & (__v4su)__b); } -/// \brief Performs a bitwise AND of two 128-bit vectors of [4 x float], using +/// Performs a bitwise AND of two 128-bit vectors of [4 x float], using /// the one's complement of the values contained in the first source /// operand. /// @@ -442,7 +442,7 @@ return (__m128)(~(__v4su)__a & (__v4su)__b); } -/// \brief Performs a bitwise OR of two 128-bit vectors of [4 x float]. +/// Performs a bitwise OR of two 128-bit vectors of [4 x float]. /// /// \headerfile <x86intrin.h> /// @@ -460,7 +460,7 @@ return (__m128)((__v4su)__a | (__v4su)__b); } -/// \brief Performs a bitwise exclusive OR of two 128-bit vectors of +/// Performs a bitwise exclusive OR of two 128-bit vectors of /// [4 x float]. /// /// \headerfile <x86intrin.h> @@ -479,7 +479,7 @@ return (__m128)((__v4su)__a ^ (__v4su)__b); } -/// \brief Compares two 32-bit float values in the low-order bits of both +/// Compares two 32-bit float values in the low-order bits of both /// operands for equality and returns the result of the comparison in the /// low-order bits of a vector [4 x float]. /// @@ -501,7 +501,7 @@ return (__m128)__builtin_ia32_cmpeqss((__v4sf)__a, (__v4sf)__b); } -/// \brief Compares each of the corresponding 32-bit float values of the +/// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] for equality. /// /// \headerfile <x86intrin.h> @@ -519,7 +519,7 @@ return (__m128)__builtin_ia32_cmpeqps((__v4sf)__a, (__v4sf)__b); } -/// \brief Compares two 32-bit float values in the low-order bits of both +/// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is less than the /// corresponding value in the second operand and returns the result of the /// comparison in the low-order bits of a vector of [4 x float]. @@ -542,7 +542,7 @@ return (__m128)__builtin_ia32_cmpltss((__v4sf)__a, (__v4sf)__b); } -/// \brief Compares each of the corresponding 32-bit float values of the +/// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are less than those in the second operand. /// @@ -561,7 +561,7 @@ return (__m128)__builtin_ia32_cmpltps((__v4sf)__a, (__v4sf)__b); } -/// \brief Compares two 32-bit float values in the low-order bits of both +/// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is less than or /// equal to the corresponding value in the second operand and returns the /// result of the comparison in the low-order bits of a vector of @@ -585,7 +585,7 @@ return (__m128)__builtin_ia32_cmpless((__v4sf)__a, (__v4sf)__b); } -/// \brief Compares each of the corresponding 32-bit float values of the +/// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are less than or equal to those in the second operand. /// @@ -604,7 +604,7 @@ return (__m128)__builtin_ia32_cmpleps((__v4sf)__a, (__v4sf)__b); } -/// \brief Compares two 32-bit float values in the low-order bits of both +/// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is greater than /// the corresponding value in the second operand and returns the result of /// the comparison in the low-order bits of a vector of [4 x float]. @@ -629,7 +629,7 @@ 4, 1, 2, 3); } -/// \brief Compares each of the corresponding 32-bit float values of the +/// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are greater than those in the second operand. /// @@ -648,7 +648,7 @@ return (__m128)__builtin_ia32_cmpltps((__v4sf)__b, (__v4sf)__a); } -/// \brief Compares two 32-bit float values in the low-order bits of both +/// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is greater than /// or equal to the corresponding value in the second operand and returns /// the result of the comparison in the low-order bits of a vector of @@ -674,7 +674,7 @@ 4, 1, 2, 3); } -/// \brief Compares each of the corresponding 32-bit float values of the +/// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are greater than or equal to those in the second operand. /// @@ -693,7 +693,7 @@ return (__m128)__builtin_ia32_cmpleps((__v4sf)__b, (__v4sf)__a); } -/// \brief Compares two 32-bit float values in the low-order bits of both +/// Compares two 32-bit float values in the low-order bits of both /// operands for inequality and returns the result of the comparison in the /// low-order bits of a vector of [4 x float]. /// @@ -716,7 +716,7 @@ return (__m128)__builtin_ia32_cmpneqss((__v4sf)__a, (__v4sf)__b); } -/// \brief Compares each of the corresponding 32-bit float values of the +/// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] for inequality. /// /// \headerfile <x86intrin.h> @@ -735,7 +735,7 @@ return (__m128)__builtin_ia32_cmpneqps((__v4sf)__a, (__v4sf)__b); } -/// \brief Compares two 32-bit float values in the low-order bits of both +/// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is not less than /// the corresponding value in the second operand and returns the result of /// the comparison in the low-order bits of a vector of [4 x float]. @@ -759,7 +759,7 @@ return (__m128)__builtin_ia32_cmpnltss((__v4sf)__a, (__v4sf)__b); } -/// \brief Compares each of the corresponding 32-bit float values of the +/// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are not less than those in the second operand. /// @@ -779,7 +779,7 @@ return (__m128)__builtin_ia32_cmpnltps((__v4sf)__a, (__v4sf)__b); } -/// \brief Compares two 32-bit float values in the low-order bits of both +/// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is not less than /// or equal to the corresponding value in the second operand and returns /// the result of the comparison in the low-order bits of a vector of @@ -804,7 +804,7 @@ return (__m128)__builtin_ia32_cmpnless((__v4sf)__a, (__v4sf)__b); } -/// \brief Compares each of the corresponding 32-bit float values of the +/// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are not less than or equal to those in the second operand. /// @@ -824,7 +824,7 @@ return (__m128)__builtin_ia32_cmpnleps((__v4sf)__a, (__v4sf)__b); } -/// \brief Compares two 32-bit float values in the low-order bits of both +/// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is not greater /// than the corresponding value in the second operand and returns the /// result of the comparison in the low-order bits of a vector of @@ -851,7 +851,7 @@ 4, 1, 2, 3); } -/// \brief Compares each of the corresponding 32-bit float values of the +/// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are not greater than those in the second operand. /// @@ -871,7 +871,7 @@ return (__m128)__builtin_ia32_cmpnltps((__v4sf)__b, (__v4sf)__a); } -/// \brief Compares two 32-bit float values in the low-order bits of both +/// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is not greater /// than or equal to the corresponding value in the second operand and /// returns the result of the comparison in the low-order bits of a vector @@ -898,7 +898,7 @@ 4, 1, 2, 3); } -/// \brief Compares each of the corresponding 32-bit float values of the +/// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are not greater than or equal to those in the second operand. /// @@ -918,7 +918,7 @@ return (__m128)__builtin_ia32_cmpnleps((__v4sf)__b, (__v4sf)__a); } -/// \brief Compares two 32-bit float values in the low-order bits of both +/// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is ordered with /// respect to the corresponding value in the second operand and returns the /// result of the comparison in the low-order bits of a vector of @@ -943,7 +943,7 @@ return (__m128)__builtin_ia32_cmpordss((__v4sf)__a, (__v4sf)__b); } -/// \brief Compares each of the corresponding 32-bit float values of the +/// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are ordered with respect to those in the second operand. /// @@ -963,7 +963,7 @@ return (__m128)__builtin_ia32_cmpordps((__v4sf)__a, (__v4sf)__b); } -/// \brief Compares two 32-bit float values in the low-order bits of both +/// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is unordered /// with respect to the corresponding value in the second operand and /// returns the result of the comparison in the low-order bits of a vector @@ -988,7 +988,7 @@ return (__m128)__builtin_ia32_cmpunordss((__v4sf)__a, (__v4sf)__b); } -/// \brief Compares each of the corresponding 32-bit float values of the +/// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are unordered with respect to those in the second operand. /// @@ -1008,7 +1008,7 @@ return (__m128)__builtin_ia32_cmpunordps((__v4sf)__a, (__v4sf)__b); } -/// \brief Compares two 32-bit float values in the low-order bits of both +/// Compares two 32-bit float values in the low-order bits of both /// operands for equality and returns the result of the comparison. /// /// If either of the two lower 32-bit values is NaN, 0 is returned. @@ -1032,7 +1032,7 @@ return __builtin_ia32_comieq((__v4sf)__a, (__v4sf)__b); } -/// \brief Compares two 32-bit float values in the low-order bits of both +/// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the first operand is less than the second /// operand and returns the result of the comparison. /// @@ -1057,7 +1057,7 @@ return __builtin_ia32_comilt((__v4sf)__a, (__v4sf)__b); } -/// \brief Compares two 32-bit float values in the low-order bits of both +/// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the first operand is less than or equal to the /// second operand and returns the result of the comparison. /// @@ -1081,7 +1081,7 @@ return __builtin_ia32_comile((__v4sf)__a, (__v4sf)__b); } -/// \brief Compares two 32-bit float values in the low-order bits of both +/// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the first operand is greater than the second /// operand and returns the result of the comparison. /// @@ -1105,7 +1105,7 @@ return __builtin_ia32_comigt((__v4sf)__a, (__v4sf)__b); } -/// \brief Compares two 32-bit float values in the low-order bits of both +/// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the first operand is greater than or equal to /// the second operand and returns the result of the comparison. /// @@ -1129,7 +1129,7 @@ return __builtin_ia32_comige((__v4sf)__a, (__v4sf)__b); } -/// \brief Compares two 32-bit float values in the low-order bits of both +/// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the first operand is not equal to the second /// operand and returns the result of the comparison. /// @@ -1153,7 +1153,7 @@ return __builtin_ia32_comineq((__v4sf)__a, (__v4sf)__b); } -/// \brief Performs an unordered comparison of two 32-bit float values using +/// Performs an unordered comparison of two 32-bit float values using /// the low-order bits of both operands to determine equality and returns /// the result of the comparison. /// @@ -1177,7 +1177,7 @@ return __builtin_ia32_ucomieq((__v4sf)__a, (__v4sf)__b); } -/// \brief Performs an unordered comparison of two 32-bit float values using +/// Performs an unordered comparison of two 32-bit float values using /// the low-order bits of both operands to determine if the first operand is /// less than the second operand and returns the result of the comparison. /// @@ -1201,7 +1201,7 @@ return __builtin_ia32_ucomilt((__v4sf)__a, (__v4sf)__b); } -/// \brief Performs an unordered comparison of two 32-bit float values using +/// Performs an unordered comparison of two 32-bit float values using /// the low-order bits of both operands to determine if the first operand is /// less than or equal to the second operand and returns the result of the /// comparison. @@ -1226,7 +1226,7 @@ return __builtin_ia32_ucomile((__v4sf)__a, (__v4sf)__b); } -/// \brief Performs an unordered comparison of two 32-bit float values using +/// Performs an unordered comparison of two 32-bit float values using /// the low-order bits of both operands to determine if the first operand is /// greater than the second operand and returns the result of the /// comparison. @@ -1251,7 +1251,7 @@ return __builtin_ia32_ucomigt((__v4sf)__a, (__v4sf)__b); } -/// \brief Performs an unordered comparison of two 32-bit float values using +/// Performs an unordered comparison of two 32-bit float values using /// the low-order bits of both operands to determine if the first operand is /// greater than or equal to the second operand and returns the result of /// the comparison. @@ -1276,7 +1276,7 @@ return __builtin_ia32_ucomige((__v4sf)__a, (__v4sf)__b); } -/// \brief Performs an unordered comparison of two 32-bit float values using +/// Performs an unordered comparison of two 32-bit float values using /// the low-order bits of both operands to determine inequality and returns /// the result of the comparison. /// @@ -1300,7 +1300,7 @@ return __builtin_ia32_ucomineq((__v4sf)__a, (__v4sf)__b); } -/// \brief Converts a float value contained in the lower 32 bits of a vector of +/// Converts a float value contained in the lower 32 bits of a vector of /// [4 x float] into a 32-bit integer. /// /// \headerfile <x86intrin.h> @@ -1318,7 +1318,7 @@ return __builtin_ia32_cvtss2si((__v4sf)__a); } -/// \brief Converts a float value contained in the lower 32 bits of a vector of +/// Converts a float value contained in the lower 32 bits of a vector of /// [4 x float] into a 32-bit integer. /// /// \headerfile <x86intrin.h> @@ -1338,7 +1338,7 @@ #ifdef __x86_64__ -/// \brief Converts a float value contained in the lower 32 bits of a vector of +/// Converts a float value contained in the lower 32 bits of a vector of /// [4 x float] into a 64-bit integer. /// /// \headerfile <x86intrin.h> @@ -1358,7 +1358,7 @@ #endif -/// \brief Converts two low-order float values in a 128-bit vector of +/// Converts two low-order float values in a 128-bit vector of /// [4 x float] into a 64-bit vector of [2 x i32]. /// /// \headerfile <x86intrin.h> @@ -1374,7 +1374,7 @@ return (__m64)__builtin_ia32_cvtps2pi((__v4sf)__a); } -/// \brief Converts two low-order float values in a 128-bit vector of +/// Converts two low-order float values in a 128-bit vector of /// [4 x float] into a 64-bit vector of [2 x i32]. /// /// \headerfile <x86intrin.h> @@ -1390,7 +1390,7 @@ return _mm_cvtps_pi32(__a); } -/// \brief Converts a float value contained in the lower 32 bits of a vector of +/// Converts a float value contained in the lower 32 bits of a vector of /// [4 x float] into a 32-bit integer, truncating the result when it is /// inexact. /// @@ -1409,7 +1409,7 @@ return __builtin_ia32_cvttss2si((__v4sf)__a); } -/// \brief Converts a float value contained in the lower 32 bits of a vector of +/// Converts a float value contained in the lower 32 bits of a vector of /// [4 x float] into a 32-bit integer, truncating the result when it is /// inexact. /// @@ -1429,7 +1429,7 @@ } #ifdef __x86_64__ -/// \brief Converts a float value contained in the lower 32 bits of a vector of +/// Converts a float value contained in the lower 32 bits of a vector of /// [4 x float] into a 64-bit integer, truncating the result when it is /// inexact. /// @@ -1449,7 +1449,7 @@ } #endif -/// \brief Converts two low-order float values in a 128-bit vector of +/// Converts two low-order float values in a 128-bit vector of /// [4 x float] into a 64-bit vector of [2 x i32], truncating the result /// when it is inexact. /// @@ -1467,7 +1467,7 @@ return (__m64)__builtin_ia32_cvttps2pi((__v4sf)__a); } -/// \brief Converts two low-order float values in a 128-bit vector of [4 x +/// Converts two low-order float values in a 128-bit vector of [4 x /// float] into a 64-bit vector of [2 x i32], truncating the result when it /// is inexact. /// @@ -1484,7 +1484,7 @@ return _mm_cvttps_pi32(__a); } -/// \brief Converts a 32-bit signed integer value into a floating point value +/// Converts a 32-bit signed integer value into a floating point value /// and writes it to the lower 32 bits of the destination. The remaining /// higher order elements of the destination vector are copied from the /// corresponding elements in the first operand. @@ -1507,7 +1507,7 @@ return __a; } -/// \brief Converts a 32-bit signed integer value into a floating point value +/// Converts a 32-bit signed integer value into a floating point value /// and writes it to the lower 32 bits of the destination. The remaining /// higher order elements of the destination are copied from the /// corresponding elements in the first operand. @@ -1531,7 +1531,7 @@ #ifdef __x86_64__ -/// \brief Converts a 64-bit signed integer value into a floating point value +/// Converts a 64-bit signed integer value into a floating point value /// and writes it to the lower 32 bits of the destination. The remaining /// higher order elements of the destination are copied from the /// corresponding elements in the first operand. @@ -1556,7 +1556,7 @@ #endif -/// \brief Converts two elements of a 64-bit vector of [2 x i32] into two +/// Converts two elements of a 64-bit vector of [2 x i32] into two /// floating point values and writes them to the lower 64-bits of the /// destination. The remaining higher order elements of the destination are /// copied from the corresponding elements in the first operand. @@ -1579,7 +1579,7 @@ return __builtin_ia32_cvtpi2ps((__v4sf)__a, (__v2si)__b); } -/// \brief Converts two elements of a 64-bit vector of [2 x i32] into two +/// Converts two elements of a 64-bit vector of [2 x i32] into two /// floating point values and writes them to the lower 64-bits of the /// destination. The remaining higher order elements of the destination are /// copied from the corresponding elements in the first operand. @@ -1602,7 +1602,7 @@ return _mm_cvtpi32_ps(__a, __b); } -/// \brief Extracts a float value contained in the lower 32 bits of a vector of +/// Extracts a float value contained in the lower 32 bits of a vector of /// [4 x float]. /// /// \headerfile <x86intrin.h> @@ -1619,7 +1619,7 @@ return __a[0]; } -/// \brief Loads two packed float values from the address \a __p into the +/// Loads two packed float values from the address \a __p into the /// high-order bits of a 128-bit vector of [4 x float]. The low-order bits /// are copied from the low-order bits of the first operand. /// @@ -1646,7 +1646,7 @@ return __builtin_shufflevector(__a, __bb, 0, 1, 4, 5); } -/// \brief Loads two packed float values from the address \a __p into the +/// Loads two packed float values from the address \a __p into the /// low-order bits of a 128-bit vector of [4 x float]. The high-order bits /// are copied from the high-order bits of the first operand. /// @@ -1673,7 +1673,7 @@ return __builtin_shufflevector(__a, __bb, 4, 5, 2, 3); } -/// \brief Constructs a 128-bit floating-point vector of [4 x float]. The lower +/// Constructs a 128-bit floating-point vector of [4 x float]. The lower /// 32 bits of the vector are initialized with the single-precision /// floating-point value loaded from a specified memory location. The upper /// 96 bits are set to zero. @@ -1698,7 +1698,7 @@ return (__m128){ __u, 0, 0, 0 }; } -/// \brief Loads a 32-bit float value and duplicates it to all four vector +/// Loads a 32-bit float value and duplicates it to all four vector /// elements of a 128-bit vector of [4 x float]. /// /// \headerfile <x86intrin.h> @@ -1722,7 +1722,7 @@ #define _mm_load_ps1(p) _mm_load1_ps(p) -/// \brief Loads a 128-bit floating-point vector of [4 x float] from an aligned +/// Loads a 128-bit floating-point vector of [4 x float] from an aligned /// memory location. /// /// \headerfile <x86intrin.h> @@ -1739,7 +1739,7 @@ return *(__m128*)__p; } -/// \brief Loads a 128-bit floating-point vector of [4 x float] from an +/// Loads a 128-bit floating-point vector of [4 x float] from an /// unaligned memory location. /// /// \headerfile <x86intrin.h> @@ -1759,7 +1759,7 @@ return ((struct __loadu_ps*)__p)->__v; } -/// \brief Loads four packed float values, in reverse order, from an aligned +/// Loads four packed float values, in reverse order, from an aligned /// memory location to 32-bit elements in a 128-bit vector of [4 x float]. /// /// \headerfile <x86intrin.h> @@ -1779,7 +1779,7 @@ return __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 3, 2, 1, 0); } -/// \brief Create a 128-bit vector of [4 x float] with undefined values. +/// Create a 128-bit vector of [4 x float] with undefined values. /// /// \headerfile <x86intrin.h> /// @@ -1792,7 +1792,7 @@ return (__m128)__builtin_ia32_undef128(); } -/// \brief Constructs a 128-bit floating-point vector of [4 x float]. The lower +/// Constructs a 128-bit floating-point vector of [4 x float]. The lower /// 32 bits of the vector are initialized with the specified single-precision /// floating-point value. The upper 96 bits are set to zero. /// @@ -1812,7 +1812,7 @@ return (__m128){ __w, 0, 0, 0 }; } -/// \brief Constructs a 128-bit floating-point vector of [4 x float], with each +/// Constructs a 128-bit floating-point vector of [4 x float], with each /// of the four single-precision floating-point vector elements set to the /// specified single-precision floating-point value. /// @@ -1831,7 +1831,7 @@ } /* Microsoft specific. */ -/// \brief Constructs a 128-bit floating-point vector of [4 x float], with each +/// Constructs a 128-bit floating-point vector of [4 x float], with each /// of the four single-precision floating-point vector elements set to the /// specified single-precision floating-point value. /// @@ -1849,7 +1849,7 @@ return _mm_set1_ps(__w); } -/// \brief Constructs a 128-bit floating-point vector of [4 x float] +/// Constructs a 128-bit floating-point vector of [4 x float] /// initialized with the specified single-precision floating-point values. /// /// \headerfile <x86intrin.h> @@ -1876,7 +1876,7 @@ return (__m128){ __w, __x, __y, __z }; } -/// \brief Constructs a 128-bit floating-point vector of [4 x float], +/// Constructs a 128-bit floating-point vector of [4 x float], /// initialized in reverse order with the specified 32-bit single-precision /// float-point values. /// @@ -1904,7 +1904,7 @@ return (__m128){ __z, __y, __x, __w }; } -/// \brief Constructs a 128-bit floating-point vector of [4 x float] initialized +/// Constructs a 128-bit floating-point vector of [4 x float] initialized /// to zero. /// /// \headerfile <x86intrin.h> @@ -1919,7 +1919,7 @@ return (__m128){ 0, 0, 0, 0 }; } -/// \brief Stores the upper 64 bits of a 128-bit vector of [4 x float] to a +/// Stores the upper 64 bits of a 128-bit vector of [4 x float] to a /// memory location. /// /// \headerfile <x86intrin.h> @@ -1936,7 +1936,7 @@ __builtin_ia32_storehps((__v2si *)__p, (__v4sf)__a); } -/// \brief Stores the lower 64 bits of a 128-bit vector of [4 x float] to a +/// Stores the lower 64 bits of a 128-bit vector of [4 x float] to a /// memory location. /// /// \headerfile <x86intrin.h> @@ -1953,7 +1953,7 @@ __builtin_ia32_storelps((__v2si *)__p, (__v4sf)__a); } -/// \brief Stores the lower 32 bits of a 128-bit vector of [4 x float] to a +/// Stores the lower 32 bits of a 128-bit vector of [4 x float] to a /// memory location. /// /// \headerfile <x86intrin.h> @@ -1973,7 +1973,7 @@ ((struct __mm_store_ss_struct*)__p)->__u = __a[0]; } -/// \brief Stores a 128-bit vector of [4 x float] to an unaligned memory +/// Stores a 128-bit vector of [4 x float] to an unaligned memory /// location. /// /// \headerfile <x86intrin.h> @@ -1994,7 +1994,7 @@ ((struct __storeu_ps*)__p)->__v = __a; } -/// \brief Stores a 128-bit vector of [4 x float] into an aligned memory +/// Stores a 128-bit vector of [4 x float] into an aligned memory /// location. /// /// \headerfile <x86intrin.h> @@ -2012,7 +2012,7 @@ *(__m128*)__p = __a; } -/// \brief Stores the lower 32 bits of a 128-bit vector of [4 x float] into +/// Stores the lower 32 bits of a 128-bit vector of [4 x float] into /// four contiguous elements in an aligned memory location. /// /// \headerfile <x86intrin.h> @@ -2032,7 +2032,7 @@ _mm_store_ps(__p, __a); } -/// \brief Stores the lower 32 bits of a 128-bit vector of [4 x float] into +/// Stores the lower 32 bits of a 128-bit vector of [4 x float] into /// four contiguous elements in an aligned memory location. /// /// \headerfile <x86intrin.h> @@ -2051,7 +2051,7 @@ return _mm_store1_ps(__p, __a); } -/// \brief Stores float values from a 128-bit vector of [4 x float] to an +/// Stores float values from a 128-bit vector of [4 x float] to an /// aligned memory location in reverse order. /// /// \headerfile <x86intrin.h> @@ -2082,7 +2082,7 @@ /* FIXME: We have to #define this because "sel" must be a constant integer, and Sema doesn't do any form of constant propagation yet. */ -/// \brief Loads one cache line of data from the specified address to a location +/// Loads one cache line of data from the specified address to a location /// closer to the processor. /// /// \headerfile <x86intrin.h> @@ -2110,7 +2110,7 @@ ((sel) >> 2) & 1, (sel) & 0x3)) #endif -/// \brief Stores a 64-bit integer in the specified aligned memory location. To +/// Stores a 64-bit integer in the specified aligned memory location. To /// minimize caching, the data is flagged as non-temporal (unlikely to be /// used again soon). /// @@ -2128,7 +2128,7 @@ __builtin_ia32_movntq(__p, __a); } -/// \brief Moves packed float values from a 128-bit vector of [4 x float] to a +/// Moves packed float values from a 128-bit vector of [4 x float] to a /// 128-bit aligned memory location. To minimize caching, the data is flagged /// as non-temporal (unlikely to be used again soon). /// @@ -2151,7 +2151,7 @@ extern "C" { #endif -/// \brief Forces strong memory ordering (serialization) between store +/// Forces strong memory ordering (serialization) between store /// instructions preceding this instruction and store instructions following /// this instruction, ensuring the system completes all previous stores /// before executing subsequent stores. @@ -2166,7 +2166,7 @@ } // extern "C" #endif -/// \brief Extracts 16-bit element from a 64-bit vector of [4 x i16] and +/// Extracts 16-bit element from a 64-bit vector of [4 x i16] and /// returns it, as specified by the immediate integer operand. /// /// \headerfile <x86intrin.h> @@ -2189,7 +2189,7 @@ #define _mm_extract_pi16(a, n) __extension__ ({ \ (int)__builtin_ia32_vec_ext_v4hi((__m64)a, (int)n); }) -/// \brief Copies data from the 64-bit vector of [4 x i16] to the destination, +/// Copies data from the 64-bit vector of [4 x i16] to the destination, /// and inserts the lower 16-bits of an integer operand at the 16-bit offset /// specified by the immediate operand \a n. /// @@ -2220,7 +2220,7 @@ #define _mm_insert_pi16(a, d, n) __extension__ ({ \ (__m64)__builtin_ia32_vec_set_v4hi((__m64)a, (int)d, (int)n); }) -/// \brief Compares each of the corresponding packed 16-bit integer values of +/// Compares each of the corresponding packed 16-bit integer values of /// the 64-bit integer vectors, and writes the greater value to the /// corresponding bits in the destination. /// @@ -2239,7 +2239,7 @@ return (__m64)__builtin_ia32_pmaxsw((__v4hi)__a, (__v4hi)__b); } -/// \brief Compares each of the corresponding packed 8-bit unsigned integer +/// Compares each of the corresponding packed 8-bit unsigned integer /// values of the 64-bit integer vectors, and writes the greater value to the /// corresponding bits in the destination. /// @@ -2258,7 +2258,7 @@ return (__m64)__builtin_ia32_pmaxub((__v8qi)__a, (__v8qi)__b); } -/// \brief Compares each of the corresponding packed 16-bit integer values of +/// Compares each of the corresponding packed 16-bit integer values of /// the 64-bit integer vectors, and writes the lesser value to the /// corresponding bits in the destination. /// @@ -2277,7 +2277,7 @@ return (__m64)__builtin_ia32_pminsw((__v4hi)__a, (__v4hi)__b); } -/// \brief Compares each of the corresponding packed 8-bit unsigned integer +/// Compares each of the corresponding packed 8-bit unsigned integer /// values of the 64-bit integer vectors, and writes the lesser value to the /// corresponding bits in the destination. /// @@ -2296,7 +2296,7 @@ return (__m64)__builtin_ia32_pminub((__v8qi)__a, (__v8qi)__b); } -/// \brief Takes the most significant bit from each 8-bit element in a 64-bit +/// Takes the most significant bit from each 8-bit element in a 64-bit /// integer vector to create an 8-bit mask value. Zero-extends the value to /// 32-bit integer and writes it to the destination. /// @@ -2314,7 +2314,7 @@ return __builtin_ia32_pmovmskb((__v8qi)__a); } -/// \brief Multiplies packed 16-bit unsigned integer values and writes the +/// Multiplies packed 16-bit unsigned integer values and writes the /// high-order 16 bits of each 32-bit product to the corresponding bits in /// the destination. /// @@ -2333,7 +2333,7 @@ return (__m64)__builtin_ia32_pmulhuw((__v4hi)__a, (__v4hi)__b); } -/// \brief Shuffles the 4 16-bit integers from a 64-bit integer vector to the +/// Shuffles the 4 16-bit integers from a 64-bit integer vector to the /// destination, as specified by the immediate value operand. /// /// \headerfile <x86intrin.h> @@ -2367,7 +2367,7 @@ #define _mm_shuffle_pi16(a, n) __extension__ ({ \ (__m64)__builtin_ia32_pshufw((__v4hi)(__m64)(a), (n)); }) -/// \brief Conditionally copies the values from each 8-bit element in the first +/// Conditionally copies the values from each 8-bit element in the first /// 64-bit integer vector operand to the specified memory location, as /// specified by the most significant bit in the corresponding element in the /// second 64-bit integer vector operand. @@ -2396,7 +2396,7 @@ __builtin_ia32_maskmovq((__v8qi)__d, (__v8qi)__n, __p); } -/// \brief Computes the rounded averages of the packed unsigned 8-bit integer +/// Computes the rounded averages of the packed unsigned 8-bit integer /// values and writes the averages to the corresponding bits in the /// destination. /// @@ -2415,7 +2415,7 @@ return (__m64)__builtin_ia32_pavgb((__v8qi)__a, (__v8qi)__b); } -/// \brief Computes the rounded averages of the packed unsigned 16-bit integer +/// Computes the rounded averages of the packed unsigned 16-bit integer /// values and writes the averages to the corresponding bits in the /// destination. /// @@ -2434,7 +2434,7 @@ return (__m64)__builtin_ia32_pavgw((__v4hi)__a, (__v4hi)__b); } -/// \brief Subtracts the corresponding 8-bit unsigned integer values of the two +/// Subtracts the corresponding 8-bit unsigned integer values of the two /// 64-bit vector operands and computes the absolute value for each of the /// difference. Then sum of the 8 absolute differences is written to the /// bits [15:0] of the destination; the remaining bits [63:16] are cleared. @@ -2460,7 +2460,7 @@ extern "C" { #endif -/// \brief Returns the contents of the MXCSR register as a 32-bit unsigned +/// Returns the contents of the MXCSR register as a 32-bit unsigned /// integer value. /// /// There are several groups of macros associated with this @@ -2508,7 +2508,7 @@ /// register. unsigned int _mm_getcsr(void); -/// \brief Sets the MXCSR register with the 32-bit unsigned integer value. +/// Sets the MXCSR register with the 32-bit unsigned integer value. /// /// There are several groups of macros associated with this intrinsic, /// including: @@ -2566,7 +2566,7 @@ } // extern "C" #endif -/// \brief Selects 4 float values from the 128-bit operands of [4 x float], as +/// Selects 4 float values from the 128-bit operands of [4 x float], as /// specified by the immediate value operand. /// /// \headerfile <x86intrin.h> @@ -2609,7 +2609,7 @@ 4 + (((mask) >> 4) & 0x3), \ 4 + (((mask) >> 6) & 0x3)); }) -/// \brief Unpacks the high-order (index 2,3) values from two 128-bit vectors of +/// Unpacks the high-order (index 2,3) values from two 128-bit vectors of /// [4 x float] and interleaves them into a 128-bit vector of [4 x float]. /// /// \headerfile <x86intrin.h> @@ -2631,7 +2631,7 @@ return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 2, 6, 3, 7); } -/// \brief Unpacks the low-order (index 0,1) values from two 128-bit vectors of +/// Unpacks the low-order (index 0,1) values from two 128-bit vectors of /// [4 x float] and interleaves them into a 128-bit vector of [4 x float]. /// /// \headerfile <x86intrin.h> @@ -2653,7 +2653,7 @@ return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 0, 4, 1, 5); } -/// \brief Constructs a 128-bit floating-point vector of [4 x float]. The lower +/// Constructs a 128-bit floating-point vector of [4 x float]. The lower /// 32 bits are set to the lower 32 bits of the second parameter. The upper /// 96 bits are set to the upper 96 bits of the first parameter. /// @@ -2675,7 +2675,7 @@ return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 4, 1, 2, 3); } -/// \brief Constructs a 128-bit floating-point vector of [4 x float]. The lower +/// Constructs a 128-bit floating-point vector of [4 x float]. The lower /// 64 bits are set to the upper 64 bits of the second parameter. The upper /// 64 bits are set to the upper 64 bits of the first parameter. /// @@ -2696,7 +2696,7 @@ return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 6, 7, 2, 3); } -/// \brief Constructs a 128-bit floating-point vector of [4 x float]. The lower +/// Constructs a 128-bit floating-point vector of [4 x float]. The lower /// 64 bits are set to the lower 64 bits of the first parameter. The upper /// 64 bits are set to the lower 64 bits of the second parameter. /// @@ -2717,7 +2717,7 @@ return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 0, 1, 4, 5); } -/// \brief Converts a 64-bit vector of [4 x i16] into a 128-bit vector of [4 x +/// Converts a 64-bit vector of [4 x i16] into a 128-bit vector of [4 x /// float]. /// /// \headerfile <x86intrin.h> @@ -2747,7 +2747,7 @@ return __r; } -/// \brief Converts a 64-bit vector of 16-bit unsigned integer values into a +/// Converts a 64-bit vector of 16-bit unsigned integer values into a /// 128-bit vector of [4 x float]. /// /// \headerfile <x86intrin.h> @@ -2776,7 +2776,7 @@ return __r; } -/// \brief Converts the lower four 8-bit values from a 64-bit vector of [8 x i8] +/// Converts the lower four 8-bit values from a 64-bit vector of [8 x i8] /// into a 128-bit vector of [4 x float]. /// /// \headerfile <x86intrin.h> @@ -2800,7 +2800,7 @@ return _mm_cvtpi16_ps(__b); } -/// \brief Converts the lower four unsigned 8-bit integer values from a 64-bit +/// Converts the lower four unsigned 8-bit integer values from a 64-bit /// vector of [8 x u8] into a 128-bit vector of [4 x float]. /// /// \headerfile <x86intrin.h> @@ -2824,7 +2824,7 @@ return _mm_cvtpi16_ps(__b); } -/// \brief Converts the two 32-bit signed integer values from each 64-bit vector +/// Converts the two 32-bit signed integer values from each 64-bit vector /// operand of [2 x i32] into a 128-bit vector of [4 x float]. /// /// \headerfile <x86intrin.h> @@ -2852,7 +2852,7 @@ return _mm_cvtpi32_ps(__c, __a); } -/// \brief Converts each single-precision floating-point element of a 128-bit +/// Converts each single-precision floating-point element of a 128-bit /// floating-point vector of [4 x float] into a 16-bit signed integer, and /// packs the results into a 64-bit integer vector of [4 x i16]. /// @@ -2881,7 +2881,7 @@ return _mm_packs_pi32(__b, __c); } -/// \brief Converts each single-precision floating-point element of a 128-bit +/// Converts each single-precision floating-point element of a 128-bit /// floating-point vector of [4 x float] into an 8-bit signed integer, and /// packs the results into the lower 32 bits of a 64-bit integer vector of /// [8 x i8]. The upper 32 bits of the vector are set to 0. @@ -2910,7 +2910,7 @@ return _mm_packs_pi16(__b, __c); } -/// \brief Extracts the sign bits from each single-precision floating-point +/// Extracts the sign bits from each single-precision floating-point /// element of a 128-bit floating-point vector of [4 x float] and returns the /// sign bits in bits [0:3] of the result. Bits [31:4] of the result are set /// to zero. Index: cfe/trunk/lib/Index/IndexDecl.cpp =================================================================== --- cfe/trunk/lib/Index/IndexDecl.cpp +++ cfe/trunk/lib/Index/IndexDecl.cpp @@ -43,7 +43,7 @@ return true; } - /// \brief Returns true if the given method has been defined explicitly by the + /// Returns true if the given method has been defined explicitly by the /// user. static bool hasUserDefined(const ObjCMethodDecl *D, const ObjCImplDecl *Container) { Index: cfe/trunk/lib/Index/SimpleFormatContext.h =================================================================== --- cfe/trunk/lib/Index/SimpleFormatContext.h +++ cfe/trunk/lib/Index/SimpleFormatContext.h @@ -9,7 +9,7 @@ // /// \file /// -/// \brief Defines a utility class for use of clang-format in libclang +/// Defines a utility class for use of clang-format in libclang // //===----------------------------------------------------------------------===// @@ -29,7 +29,7 @@ namespace clang { namespace index { -/// \brief A small class to be used by libclang clients to format +/// A small class to be used by libclang clients to format /// a declaration string in memory. This object is instantiated once /// and used each time a formatting is needed. class SimpleFormatContext { Index: cfe/trunk/lib/Lex/HeaderSearch.cpp =================================================================== --- cfe/trunk/lib/Lex/HeaderSearch.cpp +++ cfe/trunk/lib/Lex/HeaderSearch.cpp @@ -124,7 +124,7 @@ return nullptr; } -/// \brief Get filenames for all registered header maps. +/// Get filenames for all registered header maps. void HeaderSearch::getHeaderMapFileNames( SmallVectorImpl<std::string> &Names) const { for (auto &HM : HeaderMaps) @@ -404,7 +404,7 @@ return Result; } -/// \brief Given a framework directory, find the top-most framework directory. +/// Given a framework directory, find the top-most framework directory. /// /// \param FileMgr The file manager to use for directory lookups. /// \param DirName The name of the framework directory. @@ -600,7 +600,7 @@ // Header File Location. //===----------------------------------------------------------------------===// -/// \brief Return true with a diagnostic if the file that MSVC would have found +/// Return true with a diagnostic if the file that MSVC would have found /// fails to match the one that Clang would have found with MSVC header search /// disabled. static bool checkMSVCHeaderSearch(DiagnosticsEngine &Diags, @@ -996,7 +996,7 @@ // File Info Management. //===----------------------------------------------------------------------===// -/// \brief Merge the header file info provided by \p OtherHFI into the current +/// Merge the header file info provided by \p OtherHFI into the current /// header file info (\p HFI) static void mergeHeaderFileInfo(HeaderFileInfo &HFI, const HeaderFileInfo &OtherHFI) { Index: cfe/trunk/lib/Lex/Lexer.cpp =================================================================== --- cfe/trunk/lib/Lex/Lexer.cpp +++ cfe/trunk/lib/Lex/Lexer.cpp @@ -257,7 +257,7 @@ // Token Spelling //===----------------------------------------------------------------------===// -/// \brief Slow case of getSpelling. Extract the characters comprising the +/// Slow case of getSpelling. Extract the characters comprising the /// spelling of this token from the provided input buffer. static size_t getSpellingSlow(const Token &Tok, const char *BufPtr, const LangOptions &LangOpts, char *Spelling) { @@ -442,7 +442,7 @@ return TheTok.getLength(); } -/// \brief Relex the token at the specified location. +/// Relex the token at the specified location. /// \returns true if there was a failure, false on success. bool Lexer::getRawToken(SourceLocation Loc, Token &Result, const SourceManager &SM, @@ -753,7 +753,7 @@ return PhysOffset; } -/// \brief Computes the source location just past the end of the +/// Computes the source location just past the end of the /// token at this source location. /// /// This routine can be used to produce a source location that @@ -788,7 +788,7 @@ return Loc.getLocWithOffset(Len); } -/// \brief Returns true if the given MacroID location points at the first +/// Returns true if the given MacroID location points at the first /// token of the macro expansion. bool Lexer::isAtStartOfMacroExpansion(SourceLocation loc, const SourceManager &SM, @@ -810,7 +810,7 @@ return isAtStartOfMacroExpansion(expansionLoc, SM, LangOpts, MacroBegin); } -/// \brief Returns true if the given MacroID location points at the last +/// Returns true if the given MacroID location points at the last /// token of the macro expansion. bool Lexer::isAtEndOfMacroExpansion(SourceLocation loc, const SourceManager &SM, @@ -1256,7 +1256,7 @@ return Tok; } -/// \brief Checks that the given token is the first token that occurs after the +/// Checks that the given token is the first token that occurs after the /// given location (this excludes comments and whitespace). Returns the location /// immediately after the specified token. If the token is not found or the /// location is inside a macro, the returned source location will be invalid. @@ -1409,7 +1409,7 @@ // Helper methods for lexing. //===----------------------------------------------------------------------===// -/// \brief Routine that indiscriminately sets the offset into the source file. +/// Routine that indiscriminately sets the offset into the source file. void Lexer::SetByteOffset(unsigned Offset, bool StartOfLine) { BufferPtr = BufferStart + Offset; if (BufferPtr > BufferEnd) @@ -2755,7 +2755,7 @@ return Tok.is(tok::l_paren); } -/// \brief Find the end of a version control conflict marker. +/// Find the end of a version control conflict marker. static const char *FindConflictEnd(const char *CurPtr, const char *BufferEnd, ConflictMarkerKind CMK) { const char *Terminator = CMK == CMK_Perforce ? "<<<<\n" : ">>>>>>>"; Index: cfe/trunk/lib/Lex/LiteralSupport.cpp =================================================================== --- cfe/trunk/lib/Lex/LiteralSupport.cpp +++ cfe/trunk/lib/Lex/LiteralSupport.cpp @@ -70,7 +70,7 @@ return CharSourceRange::getCharRange(Begin, End); } -/// \brief Produce a diagnostic highlighting some portion of a literal. +/// Produce a diagnostic highlighting some portion of a literal. /// /// Emits the diagnostic \p DiagID, highlighting the range of characters from /// \p TokRangeBegin (inclusive) to \p TokRangeEnd (exclusive), which must be @@ -1591,7 +1591,7 @@ return Err; } -/// \brief This function copies from Fragment, which is a sequence of bytes +/// This function copies from Fragment, which is a sequence of bytes /// within Tok's contents (which begin at TokBegin) into ResultPtr. /// Performs widening for multi-byte characters. bool StringLiteralParser::CopyStringFragment(const Token &Tok, Index: cfe/trunk/lib/Lex/MacroInfo.cpp =================================================================== --- cfe/trunk/lib/Lex/MacroInfo.cpp +++ cfe/trunk/lib/Lex/MacroInfo.cpp @@ -65,7 +65,7 @@ return DefinitionLength; } -/// \brief Return true if the specified macro definition is equal to +/// Return true if the specified macro definition is equal to /// this macro in spelling, arguments, and whitespace. /// /// \param Syntactically if true, the macro definitions can be identical even Index: cfe/trunk/lib/Lex/ModuleMap.cpp =================================================================== --- cfe/trunk/lib/Lex/ModuleMap.cpp +++ cfe/trunk/lib/Lex/ModuleMap.cpp @@ -151,7 +151,7 @@ return Context; } -/// \brief Append to \p Paths the set of paths needed to get to the +/// Append to \p Paths the set of paths needed to get to the /// subframework in which the given module lives. static void appendSubframeworkPaths(Module *Mod, SmallVectorImpl<char> &Path) { @@ -309,7 +309,7 @@ this->Target = &Target; } -/// \brief "Sanitize" a filename so that it can be used as an identifier. +/// "Sanitize" a filename so that it can be used as an identifier. static StringRef sanitizeFilenameAsIdentifier(StringRef Name, SmallVectorImpl<char> &Buffer) { if (Name.empty()) @@ -346,7 +346,7 @@ return Name; } -/// \brief Determine whether the given file name is the name of a builtin +/// Determine whether the given file name is the name of a builtin /// header, supplied by Clang to replace, override, or augment existing system /// headers. bool ModuleMap::isBuiltinHeader(StringRef FileName) { @@ -820,7 +820,7 @@ return Result; } -/// \brief For a framework module, infer the framework against which we +/// For a framework module, infer the framework against which we /// should link. static void inferFrameworkLink(Module *Mod, const DirectoryEntry *FrameworkDir, FileManager &FileMgr) { @@ -1244,7 +1244,7 @@ namespace clang { - /// \brief A token in a module map file. + /// A token in a module map file. struct MMToken { enum TokenKind { Comma, @@ -1314,37 +1314,37 @@ Lexer &L; SourceManager &SourceMgr; - /// \brief Default target information, used only for string literal + /// Default target information, used only for string literal /// parsing. const TargetInfo *Target; DiagnosticsEngine &Diags; ModuleMap ⤅ - /// \brief The current module map file. + /// The current module map file. const FileEntry *ModuleMapFile; - /// \brief The directory that file names in this module map file should + /// The directory that file names in this module map file should /// be resolved relative to. const DirectoryEntry *Directory; - /// \brief Whether this module map is in a system header directory. + /// Whether this module map is in a system header directory. bool IsSystem; - /// \brief Whether an error occurred. + /// Whether an error occurred. bool HadError = false; - /// \brief Stores string data for the various string literals referenced + /// Stores string data for the various string literals referenced /// during parsing. llvm::BumpPtrAllocator StringData; - /// \brief The current token. + /// The current token. MMToken Tok; - /// \brief The active module. + /// The active module. Module *ActiveModule = nullptr; - /// \brief Whether a module uses the 'requires excluded' hack to mark its + /// Whether a module uses the 'requires excluded' hack to mark its /// contents as 'textual'. /// /// On older Darwin SDK versions, 'requires excluded' is used to mark the @@ -1354,10 +1354,10 @@ /// 'textual' to match the original intent. llvm::SmallPtrSet<Module *, 2> UsesRequiresExcludedHack; - /// \brief Consume the current token and return its location. + /// Consume the current token and return its location. SourceLocation consumeToken(); - /// \brief Skip tokens until we reach the a token with the given kind + /// Skip tokens until we reach the a token with the given kind /// (or the end of the file). void skipUntil(MMToken::TokenKind K); @@ -1593,7 +1593,7 @@ } while (true); } -/// \brief Parse a module-id. +/// Parse a module-id. /// /// module-id: /// identifier @@ -1622,21 +1622,21 @@ namespace { - /// \brief Enumerates the known attributes. + /// Enumerates the known attributes. enum AttributeKind { - /// \brief An unknown attribute. + /// An unknown attribute. AT_unknown, - /// \brief The 'system' attribute. + /// The 'system' attribute. AT_system, - /// \brief The 'extern_c' attribute. + /// The 'extern_c' attribute. AT_extern_c, - /// \brief The 'exhaustive' attribute. + /// The 'exhaustive' attribute. AT_exhaustive, - /// \brief The 'no_undeclared_includes' attribute. + /// The 'no_undeclared_includes' attribute. AT_no_undeclared_includes }; @@ -1693,7 +1693,7 @@ } } -/// \brief Parse a module declaration. +/// Parse a module declaration. /// /// module-declaration: /// 'extern' 'module' module-id string-literal @@ -2013,7 +2013,7 @@ ActiveModule = PreviousActiveModule; } -/// \brief Parse an extern module declaration. +/// Parse an extern module declaration. /// /// extern module-declaration: /// 'extern' 'module' module-id string-literal @@ -2091,7 +2091,7 @@ return true; } -/// \brief Parse a requires declaration. +/// Parse a requires declaration. /// /// requires-declaration: /// 'requires' feature-list @@ -2147,7 +2147,7 @@ } while (true); } -/// \brief Parse a header declaration. +/// Parse a header declaration. /// /// header-declaration: /// 'textual'[opt] 'header' string-literal @@ -2275,7 +2275,7 @@ return A->NameAsWritten.compare(B->NameAsWritten); } -/// \brief Parse an umbrella directory declaration. +/// Parse an umbrella directory declaration. /// /// umbrella-dir-declaration: /// umbrella string-literal @@ -2353,7 +2353,7 @@ Map.setUmbrellaDir(ActiveModule, Dir, DirName); } -/// \brief Parse a module export declaration. +/// Parse a module export declaration. /// /// export-declaration: /// 'export' wildcard-module-id @@ -2401,7 +2401,7 @@ ActiveModule->UnresolvedExports.push_back(Unresolved); } -/// \brief Parse a module export_as declaration. +/// Parse a module export_as declaration. /// /// export-as-declaration: /// 'export_as' identifier @@ -2438,7 +2438,7 @@ consumeToken(); } -/// \brief Parse a module use declaration. +/// Parse a module use declaration. /// /// use-declaration: /// 'use' wildcard-module-id @@ -2455,7 +2455,7 @@ ActiveModule->UnresolvedDirectUses.push_back(ParsedModuleId); } -/// \brief Parse a link declaration. +/// Parse a link declaration. /// /// module-declaration: /// 'link' 'framework'[opt] string-literal @@ -2484,7 +2484,7 @@ IsFramework)); } -/// \brief Parse a configuration macro declaration. +/// Parse a configuration macro declaration. /// /// module-declaration: /// 'config_macros' attributes[opt] config-macro-list? @@ -2541,7 +2541,7 @@ } while (true); } -/// \brief Format a module-id into a string. +/// Format a module-id into a string. static std::string formatModuleId(const ModuleId &Id) { std::string result; { @@ -2557,7 +2557,7 @@ return result; } -/// \brief Parse a conflict declaration. +/// Parse a conflict declaration. /// /// module-declaration: /// 'conflict' module-id ',' string-literal @@ -2591,7 +2591,7 @@ ActiveModule->UnresolvedConflicts.push_back(Conflict); } -/// \brief Parse an inferred module declaration (wildcard modules). +/// Parse an inferred module declaration (wildcard modules). /// /// module-declaration: /// 'explicit'[opt] 'framework'[opt] 'module' * attributes[opt] @@ -2744,7 +2744,7 @@ } } -/// \brief Parse optional attributes. +/// Parse optional attributes. /// /// attributes: /// attribute attributes @@ -2819,7 +2819,7 @@ return HadError; } -/// \brief Parse a module map file. +/// Parse a module map file. /// /// module-map-file: /// module-declaration* Index: cfe/trunk/lib/Lex/PPDirectives.cpp =================================================================== --- cfe/trunk/lib/Lex/PPDirectives.cpp +++ cfe/trunk/lib/Lex/PPDirectives.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Implements # directive processing for the Preprocessor. +/// Implements # directive processing for the Preprocessor. /// //===----------------------------------------------------------------------===// @@ -78,7 +78,7 @@ return new (BP) VisibilityMacroDirective(Loc, isPublic); } -/// \brief Read and discard all tokens remaining on the current line until +/// Read and discard all tokens remaining on the current line until /// the tok::eod token is found. void Preprocessor::DiscardUntilEndOfDirective() { Token Tmp; @@ -88,14 +88,14 @@ } while (Tmp.isNot(tok::eod)); } -/// \brief Enumerates possible cases of #define/#undef a reserved identifier. +/// Enumerates possible cases of #define/#undef a reserved identifier. enum MacroDiag { MD_NoWarn, //> Not a reserved identifier MD_KeywordDef, //> Macro hides keyword, enabled by default MD_ReservedMacro //> #define of #undef reserved id, disabled by default }; -/// \brief Checks if the specified identifier is reserved in the specified +/// Checks if the specified identifier is reserved in the specified /// language. /// This function does not check if the identifier is a keyword. static bool isReservedId(StringRef Text, const LangOptions &Lang) { @@ -296,7 +296,7 @@ return false; } -/// \brief Lex and validate a macro name, which occurs after a +/// Lex and validate a macro name, which occurs after a /// \#define or \#undef. /// /// This sets the token kind to eod and discards the rest of the macro line if @@ -328,7 +328,7 @@ } } -/// \brief Ensure that the next token is a tok::eod token. +/// Ensure that the next token is a tok::eod token. /// /// If not, emit a diagnostic and consume up until the eod. If EnableMacros is /// true, then we consider macros that expand to zero tokens as being ok. @@ -1128,7 +1128,7 @@ return false; } -/// \brief Handle a \#line directive: C99 6.10.4. +/// Handle a \#line directive: C99 6.10.4. /// /// The two acceptable forms are: /// \verbatim @@ -1414,7 +1414,7 @@ } } -/// \brief Handle a #public directive. +/// Handle a #public directive. void Preprocessor::HandleMacroPublicDirective(Token &Tok) { Token MacroNameTok; ReadMacroName(MacroNameTok, MU_Undef); @@ -1441,7 +1441,7 @@ MacroNameTok.getLocation(), /*IsPublic=*/true)); } -/// \brief Handle a #private directive. +/// Handle a #private directive. void Preprocessor::HandleMacroPrivateDirective() { Token MacroNameTok; ReadMacroName(MacroNameTok, MU_Undef); @@ -1517,7 +1517,7 @@ return isAngled; } -// \brief Handle cases where the \#include name is expanded from a macro +// Handle cases where the \#include name is expanded from a macro // as multiple tokens, which need to be glued together. // // This occurs for code like: @@ -1578,7 +1578,7 @@ return true; } -/// \brief Push a token onto the token stream containing an annotation. +/// Push a token onto the token stream containing an annotation. void Preprocessor::EnterAnnotationToken(SourceRange Range, tok::TokenKind Kind, void *AnnotationVal) { @@ -1593,7 +1593,7 @@ EnterTokenStream(std::move(Tok), 1, true); } -/// \brief Produce a diagnostic informing the user that a #include or similar +/// Produce a diagnostic informing the user that a #include or similar /// was implicitly treated as a module import. static void diagnoseAutoModuleImport( Preprocessor &PP, SourceLocation HashLoc, Token &IncludeTok, Index: cfe/trunk/lib/Lex/PPLexerChange.cpp =================================================================== --- cfe/trunk/lib/Lex/PPLexerChange.cpp +++ cfe/trunk/lib/Lex/PPLexerChange.cpp @@ -226,7 +226,7 @@ CurLexerKind = CLK_TokenLexer; } -/// \brief Compute the relative path that names the given file relative to +/// Compute the relative path that names the given file relative to /// the given directory. static void computeRelativePath(FileManager &FM, const DirectoryEntry *Dir, const FileEntry *File, @@ -264,7 +264,7 @@ // but it might if they're empty? } -/// \brief Determine the location to use as the end of the buffer for a lexer. +/// Determine the location to use as the end of the buffer for a lexer. /// /// If the file ends with a newline, form the EOF token on the newline itself, /// rather than "on the line following it", which doesn't exist. This makes Index: cfe/trunk/lib/Lex/PPMacroExpansion.cpp =================================================================== --- cfe/trunk/lib/Lex/PPMacroExpansion.cpp +++ cfe/trunk/lib/Lex/PPMacroExpansion.cpp @@ -1015,7 +1015,7 @@ return MacroArgs::create(MI, ArgTokens, isVarargsElided, *this); } -/// \brief Keeps macro expanded tokens for TokenLexers. +/// Keeps macro expanded tokens for TokenLexers. // /// Works like a stack; a TokenLexer adds the macro expanded tokens that is /// going to lex in the cache and when it finishes the tokens are removed @@ -1485,7 +1485,7 @@ return EvaluateHasIncludeCommon(Tok, II, PP, Lookup, LookupFromFile); } -/// \brief Process single-argument builtin feature-like macros that return +/// Process single-argument builtin feature-like macros that return /// integer values. static void EvaluateFeatureLikeBuiltinMacro(llvm::raw_svector_ostream& OS, Token &Tok, IdentifierInfo *II, @@ -1588,7 +1588,7 @@ } } -/// \brief Helper function to return the IdentifierInfo structure of a Token +/// Helper function to return the IdentifierInfo structure of a Token /// or generate a diagnostic if none available. static IdentifierInfo *ExpectFeatureIdentifierInfo(Token &Tok, Preprocessor &PP, Index: cfe/trunk/lib/Lex/Pragma.cpp =================================================================== --- cfe/trunk/lib/Lex/Pragma.cpp +++ cfe/trunk/lib/Lex/Pragma.cpp @@ -148,7 +148,7 @@ namespace { -/// \brief Helper class for \see Preprocessor::Handle_Pragma. +/// Helper class for \see Preprocessor::Handle_Pragma. class LexingFor_PragmaRAII { Preprocessor &PP; bool InMacroArgPreExpansion; @@ -588,7 +588,7 @@ return LookUpIdentifierInfo(MacroTok); } -/// \brief Handle \#pragma push_macro. +/// Handle \#pragma push_macro. /// /// The syntax is: /// \code @@ -611,7 +611,7 @@ PragmaPushMacroInfo[IdentInfo].push_back(MI); } -/// \brief Handle \#pragma pop_macro. +/// Handle \#pragma pop_macro. /// /// The syntax is: /// \code @@ -1730,7 +1730,7 @@ } }; -/// \brief Handle "\#pragma region [...]" +/// Handle "\#pragma region [...]" /// /// The syntax is /// \code Index: cfe/trunk/lib/Lex/PreprocessingRecord.cpp =================================================================== --- cfe/trunk/lib/Lex/PreprocessingRecord.cpp +++ cfe/trunk/lib/Lex/PreprocessingRecord.cpp @@ -54,7 +54,7 @@ PreprocessingRecord::PreprocessingRecord(SourceManager &SM) : SourceMgr(SM) {} -/// \brief Returns a pair of [Begin, End) iterators of preprocessed entities +/// Returns a pair of [Begin, End) iterators of preprocessed entities /// that source range \p Range encompasses. llvm::iterator_range<PreprocessingRecord::iterator> PreprocessingRecord::getPreprocessedEntitiesInRange(SourceRange Range) { @@ -88,7 +88,7 @@ return SM.isInFileID(SM.getFileLoc(Loc), FID); } -/// \brief Returns true if the preprocessed entity that \arg PPEI iterator +/// Returns true if the preprocessed entity that \arg PPEI iterator /// points to is coming from the file \arg FID. /// /// Can be used to avoid implicit deserializations of preallocated @@ -132,7 +132,7 @@ FID, SourceMgr); } -/// \brief Returns a pair of [Begin, End) iterators of preprocessed entities +/// Returns a pair of [Begin, End) iterators of preprocessed entities /// that source range \arg R encompasses. std::pair<int, int> PreprocessingRecord::getPreprocessedEntitiesInRangeSlow(SourceRange Range) { @@ -351,7 +351,7 @@ MacroDefinitions[Macro] = Def; } -/// \brief Retrieve the preprocessed entity at the given ID. +/// Retrieve the preprocessed entity at the given ID. PreprocessedEntity *PreprocessingRecord::getPreprocessedEntity(PPEntityID PPID){ if (PPID.ID < 0) { unsigned Index = -PPID.ID - 1; @@ -368,7 +368,7 @@ return PreprocessedEntities[Index]; } -/// \brief Retrieve the loaded preprocessed entity at the given index. +/// Retrieve the loaded preprocessed entity at the given index. PreprocessedEntity * PreprocessingRecord::getLoadedPreprocessedEntity(unsigned Index) { assert(Index < LoadedPreprocessedEntities.size() && Index: cfe/trunk/lib/Lex/Preprocessor.cpp =================================================================== --- cfe/trunk/lib/Lex/Preprocessor.cpp +++ cfe/trunk/lib/Lex/Preprocessor.cpp @@ -333,7 +333,7 @@ return CurSubmoduleState->Macros.end(); } -/// \brief Compares macro tokens with a specified token value sequence. +/// Compares macro tokens with a specified token value sequence. static bool MacroDefinitionEquals(const MacroInfo *MI, ArrayRef<TokenValue> Tokens) { return Tokens.size() == MI->getNumTokens() && @@ -645,7 +645,7 @@ Diag(Identifier,it->second) << Identifier.getIdentifierInfo(); } -/// \brief Returns a diagnostic message kind for reporting a future keyword as +/// Returns a diagnostic message kind for reporting a future keyword as /// appropriate for the identifier and specified language. static diag::kind getFutureCompatDiagKind(const IdentifierInfo &II, const LangOptions &LangOpts) { @@ -805,7 +805,7 @@ LastTokenWasAt = Result.is(tok::at); } -/// \brief Lex a token following the 'import' contextual keyword. +/// Lex a token following the 'import' contextual keyword. /// void Preprocessor::LexAfterModuleImport(Token &Result) { // Figure out what kind of lexer we actually have. Index: cfe/trunk/lib/Lex/PreprocessorLexer.cpp =================================================================== --- cfe/trunk/lib/Lex/PreprocessorLexer.cpp +++ cfe/trunk/lib/Lex/PreprocessorLexer.cpp @@ -28,7 +28,7 @@ InitialNumSLocEntries = pp->getSourceManager().local_sloc_entry_size(); } -/// \brief After the preprocessor has parsed a \#include, lex and +/// After the preprocessor has parsed a \#include, lex and /// (potentially) macro expand the filename. void PreprocessorLexer::LexIncludeFilename(Token &FilenameTok) { assert(ParsingPreprocessorDirective && Index: cfe/trunk/lib/Lex/TokenLexer.cpp =================================================================== --- cfe/trunk/lib/Lex/TokenLexer.cpp +++ cfe/trunk/lib/Lex/TokenLexer.cpp @@ -574,7 +574,7 @@ } } -/// \brief Checks if two tokens form wide string literal. +/// Checks if two tokens form wide string literal. static bool isWideStringLiteralFromMacro(const Token &FirstTok, const Token &SecondTok) { return FirstTok.is(tok::identifier) && @@ -918,7 +918,7 @@ PP.HandleMicrosoftCommentPaste(Tok); } -/// \brief If \arg loc is a file ID and points inside the current macro +/// If \arg loc is a file ID and points inside the current macro /// definition, returns the appropriate source location pointing at the /// macro expansion source location entry, otherwise it returns an invalid /// SourceLocation. @@ -937,7 +937,7 @@ return MacroExpansionStart.getLocWithOffset(relativeOffset); } -/// \brief Finds the tokens that are consecutive (from the same FileID) +/// Finds the tokens that are consecutive (from the same FileID) /// creates a single SLocEntry, and assigns SourceLocations to each token that /// point to that SLocEntry. e.g for /// assert(foo == bar); @@ -1007,7 +1007,7 @@ } } -/// \brief Creates SLocEntries and updates the locations of macro argument +/// Creates SLocEntries and updates the locations of macro argument /// tokens to their new expanded locations. /// /// \param ArgIdSpellLoc the location of the macro argument id inside the macro Index: cfe/trunk/lib/Parse/ParseCXXInlineMethods.cpp =================================================================== --- cfe/trunk/lib/Parse/ParseCXXInlineMethods.cpp +++ cfe/trunk/lib/Parse/ParseCXXInlineMethods.cpp @@ -733,7 +733,7 @@ } } -/// \brief Consume tokens and store them in the passed token container until +/// Consume tokens and store them in the passed token container until /// we've passed the try keyword and constructor initializers and have consumed /// the opening brace of the function body. The opening brace will be consumed /// if and only if there was no error. @@ -937,7 +937,7 @@ } } -/// \brief Consume and store tokens from the '?' to the ':' in a conditional +/// Consume and store tokens from the '?' to the ':' in a conditional /// expression. bool Parser::ConsumeAndStoreConditional(CachedTokens &Toks) { // Consume '?'. @@ -962,7 +962,7 @@ return true; } -/// \brief A tentative parsing action that can also revert token annotations. +/// A tentative parsing action that can also revert token annotations. class Parser::UnannotatedTentativeParsingAction : public TentativeParsingAction { public: explicit UnannotatedTentativeParsingAction(Parser &Self, Index: cfe/trunk/lib/Parse/ParseDecl.cpp =================================================================== --- cfe/trunk/lib/Parse/ParseDecl.cpp +++ cfe/trunk/lib/Parse/ParseDecl.cpp @@ -70,7 +70,7 @@ return Actions.ActOnTypeName(getCurScope(), DeclaratorInfo); } -/// \brief Normalizes an attribute name by dropping prefixed and suffixed __. +/// Normalizes an attribute name by dropping prefixed and suffixed __. static StringRef normalizeAttrName(StringRef Name) { if (Name.size() >= 4 && Name.startswith("__") && Name.endswith("__")) return Name.drop_front(2).drop_back(2); @@ -206,7 +206,7 @@ } } -/// \brief Determine whether the given attribute has an identifier argument. +/// Determine whether the given attribute has an identifier argument. static bool attributeHasIdentifierArg(const IdentifierInfo &II) { #define CLANG_ATTR_IDENTIFIER_ARG_LIST return llvm::StringSwitch<bool>(normalizeAttrName(II.getName())) @@ -215,7 +215,7 @@ #undef CLANG_ATTR_IDENTIFIER_ARG_LIST } -/// \brief Determine whether the given attribute parses a type argument. +/// Determine whether the given attribute parses a type argument. static bool attributeIsTypeArgAttr(const IdentifierInfo &II) { #define CLANG_ATTR_TYPE_ARG_LIST return llvm::StringSwitch<bool>(normalizeAttrName(II.getName())) @@ -224,7 +224,7 @@ #undef CLANG_ATTR_TYPE_ARG_LIST } -/// \brief Determine whether the given attribute requires parsing its arguments +/// Determine whether the given attribute requires parsing its arguments /// in an unevaluated context or not. static bool attributeParsedArgsUnevaluated(const IdentifierInfo &II) { #define CLANG_ATTR_ARG_CONTEXT_LIST @@ -758,7 +758,7 @@ return (Separator == '.' || Separator == '_'); } -/// \brief Parse a version number. +/// Parse a version number. /// /// version: /// simple-integer @@ -875,7 +875,7 @@ return VersionTuple(Major, Minor, Subminor, (AfterMajorSeparator == '_')); } -/// \brief Parse the contents of the "availability" attribute. +/// Parse the contents of the "availability" attribute. /// /// availability-attribute: /// 'availability' '(' platform ',' opt-strict version-arg-list, @@ -1107,7 +1107,7 @@ Syntax, StrictLoc, ReplacementExpr.get()); } -/// \brief Parse the contents of the "external_source_symbol" attribute. +/// Parse the contents of the "external_source_symbol" attribute. /// /// external-source-symbol-attribute: /// 'external_source_symbol' '(' keyword-arg-list ')' @@ -1220,7 +1220,7 @@ ScopeName, ScopeLoc, Args, llvm::array_lengthof(Args), Syntax); } -/// \brief Parse the contents of the "objc_bridge_related" attribute. +/// Parse the contents of the "objc_bridge_related" attribute. /// objc_bridge_related '(' related_class ',' opt-class_method ',' opt-instance_method ')' /// related_class: /// Identifier @@ -1351,7 +1351,7 @@ Class.TagOrTemplate); } -/// \brief Parse all attributes in LAs, and attach them to Decl D. +/// Parse all attributes in LAs, and attach them to Decl D. void Parser::ParseLexedAttributeList(LateParsedAttrList &LAs, Decl *D, bool EnterScope, bool OnDefinition) { assert(LAs.parseSoon() && @@ -1365,7 +1365,7 @@ LAs.clear(); } -/// \brief Finish parsing an attribute for which parsing was delayed. +/// Finish parsing an attribute for which parsing was delayed. /// This will be called at the end of parsing a class declaration /// for each LateParsedAttribute. We consume the saved tokens and /// create an attribute with the arguments filled in. We add this @@ -1551,7 +1551,7 @@ llvm_unreachable("All cases handled above."); } -/// \brief We have found the opening square brackets of a C++11 +/// We have found the opening square brackets of a C++11 /// attribute-specifier in a location where an attribute is not permitted, but /// we know where the attributes ought to be written. Parse them anyway, and /// provide a fixit moving them to the right place. @@ -2128,7 +2128,7 @@ return false; } -/// \brief Parse 'declaration' after parsing 'declaration-specifiers +/// Parse 'declaration' after parsing 'declaration-specifiers /// declarator'. This method parses the remainder of the declaration /// (including any attributes or initializer, among other things) and /// finalizes the declaration. @@ -2677,7 +2677,7 @@ return false; } -/// \brief Determine the declaration specifier context from the declarator +/// Determine the declaration specifier context from the declarator /// context. /// /// \param Context the declarator context, which is one of the Index: cfe/trunk/lib/Parse/ParseDeclCXX.cpp =================================================================== --- cfe/trunk/lib/Parse/ParseDeclCXX.cpp +++ cfe/trunk/lib/Parse/ParseDeclCXX.cpp @@ -2109,7 +2109,7 @@ } } -/// \brief If the given declarator has any parts for which parsing has to be +/// If the given declarator has any parts for which parsing has to be /// delayed, e.g., default arguments or an exception-specification, create a /// late-parsed method declaration record to handle the parsing at the end of /// the class definition. @@ -2249,7 +2249,7 @@ Specifier == VirtSpecifiers::VS_Sealed; } -/// \brief Parse a C++ member-declarator up to, but not including, the optional +/// Parse a C++ member-declarator up to, but not including, the optional /// brace-or-equal-initializer or pure-specifier. bool Parser::ParseCXXMemberDeclaratorBeforeInitializer( Declarator &DeclaratorInfo, VirtSpecifiers &VS, ExprResult &BitfieldSize, @@ -2320,7 +2320,7 @@ return false; } -/// \brief Look for declaration specifiers possibly occurring after C++11 +/// Look for declaration specifiers possibly occurring after C++11 /// virt-specifier-seq and diagnose them. void Parser::MaybeParseAndDiagnoseDeclSpecAfterCXX11VirtSpecifierSeq( Declarator &D, @@ -3505,7 +3505,7 @@ return Diag(Tok, diag::err_expected) << tok::l_paren; } -/// \brief Parse a C++ exception-specification if present (C++0x [except.spec]). +/// Parse a C++ exception-specification if present (C++0x [except.spec]). /// /// exception-specification: /// dynamic-exception-specification @@ -3714,7 +3714,7 @@ : DeclaratorContext::TrailingReturnContext); } -/// \brief We have just started parsing the definition of a new class, +/// We have just started parsing the definition of a new class, /// so push that class onto our stack of classes that is currently /// being parsed. Sema::ParsingClassState @@ -3726,7 +3726,7 @@ return Actions.PushParsingClass(); } -/// \brief Deallocate the given parsed class and all of its nested +/// Deallocate the given parsed class and all of its nested /// classes. void Parser::DeallocateParsedClasses(Parser::ParsingClass *Class) { for (unsigned I = 0, N = Class->LateParsedDeclarations.size(); I != N; ++I) @@ -3734,7 +3734,7 @@ delete Class; } -/// \brief Pop the top class of the stack of classes that are +/// Pop the top class of the stack of classes that are /// currently being parsed. /// /// This routine should be called when we have finished parsing the @@ -3772,7 +3772,7 @@ Victim->TemplateScope = getCurScope()->getParent()->isTemplateParamScope(); } -/// \brief Try to parse an 'identifier' which appears within an attribute-token. +/// Try to parse an 'identifier' which appears within an attribute-token. /// /// \return the parsed identifier on success, and 0 if the next token is not an /// attribute-token. Index: cfe/trunk/lib/Parse/ParseExpr.cpp =================================================================== --- cfe/trunk/lib/Parse/ParseExpr.cpp +++ cfe/trunk/lib/Parse/ParseExpr.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Provides the Expression parsing implementation. +/// Provides the Expression parsing implementation. /// /// Expressions in C99 basically consist of a bunch of binary operators with /// unary operators and other random stuff at the leaves. @@ -32,7 +32,7 @@ #include "llvm/ADT/SmallVector.h" using namespace clang; -/// \brief Simple precedence-based parser for binary/ternary operators. +/// Simple precedence-based parser for binary/ternary operators. /// /// Note: we diverge from the C99 grammar when parsing the assignment-expression /// production. C99 specifies that the LHS of an assignment operator should be @@ -156,7 +156,7 @@ return ParseRHSOfBinaryExpression(LHS, prec::Comma); } -/// \brief Parse an expr that doesn't include (top-level) commas. +/// Parse an expr that doesn't include (top-level) commas. ExprResult Parser::ParseAssignmentExpression(TypeCastState isTypeCast) { if (Tok.is(tok::code_completion)) { Actions.CodeCompleteOrdinaryName(getCurScope(), Sema::PCC_Expression); @@ -175,7 +175,7 @@ return ParseRHSOfBinaryExpression(LHS, prec::Assignment); } -/// \brief Parse an assignment expression where part of an Objective-C message +/// Parse an assignment expression where part of an Objective-C message /// send has already been parsed. /// /// In this case \p LBracLoc indicates the location of the '[' of the message @@ -217,7 +217,7 @@ return ParseConstantExpressionInExprEvalContext(isTypeCast); } -/// \brief Parse a constraint-expression. +/// Parse a constraint-expression. /// /// \verbatim /// constraint-expression: [Concepts TS temp.constr.decl p1] @@ -279,7 +279,7 @@ return isFoldOperator(getBinOpPrecedence(Kind, GreaterThanIsOperator, true)); } -/// \brief Parse a binary expression that starts with \p LHS and has a +/// Parse a binary expression that starts with \p LHS and has a /// precedence of at least \p MinPrec. ExprResult Parser::ParseRHSOfBinaryExpression(ExprResult LHS, prec::Level MinPrec) { @@ -513,7 +513,7 @@ } } -/// \brief Parse a cast-expression, or, if \p isUnaryExpression is true, +/// Parse a cast-expression, or, if \p isUnaryExpression is true, /// parse a unary-expression. /// /// \p isAddressOfOperand exists because an id-expression that is the @@ -570,7 +570,7 @@ }; } -/// \brief Parse a cast-expression, or, if \pisUnaryExpression is true, parse +/// Parse a cast-expression, or, if \pisUnaryExpression is true, parse /// a unary-expression. /// /// \p isAddressOfOperand exists because an id-expression that is the operand @@ -1450,7 +1450,7 @@ return Res; } -/// \brief Once the leading part of a postfix-expression is parsed, this +/// Once the leading part of a postfix-expression is parsed, this /// method parses any suffixes that apply. /// /// \verbatim @@ -1882,7 +1882,7 @@ } -/// \brief Parse a sizeof or alignof expression. +/// Parse a sizeof or alignof expression. /// /// \verbatim /// unary-expression: [C99 6.5.3] @@ -2695,7 +2695,7 @@ Types, Exprs); } -/// \brief Parse A C++1z fold-expression after the opening paren and optional +/// Parse A C++1z fold-expression after the opening paren and optional /// left-hand-side expression. /// /// \verbatim Index: cfe/trunk/lib/Parse/ParseExprCXX.cpp =================================================================== --- cfe/trunk/lib/Parse/ParseExprCXX.cpp +++ cfe/trunk/lib/Parse/ParseExprCXX.cpp @@ -100,7 +100,7 @@ /*AtDigraph*/false); } -/// \brief Parse global scope or nested-name-specifier if present. +/// Parse global scope or nested-name-specifier if present. /// /// Parses a C++ global scope specifier ('::') or nested-name-specifier (which /// may be preceded by '::'). Note that this routine will not parse ::new or @@ -730,7 +730,7 @@ return ParseLambdaExpressionAfterIntroducer(Intro); } -/// \brief Parse a lambda introducer. +/// Parse a lambda introducer. /// \param Intro A LambdaIntroducer filled in with information about the /// contents of the lambda-introducer. /// \param SkippedInits If non-null, we are disambiguating between an Obj-C @@ -1500,7 +1500,7 @@ return Result; } -/// \brief Parse a C++ pseudo-destructor expression after the base, +/// Parse a C++ pseudo-destructor expression after the base, /// . or -> operator, and nested-name-specifier have already been /// parsed. /// @@ -1621,7 +1621,7 @@ } } -/// \brief Parse the C++ Coroutines co_yield expression. +/// Parse the C++ Coroutines co_yield expression. /// /// co_yield-expression: /// 'co_yield' assignment-expression[opt] @@ -2007,7 +2007,7 @@ return false; } -/// \brief Finish parsing a C++ unqualified-id that is a template-id of +/// Finish parsing a C++ unqualified-id that is a template-id of /// some form. /// /// This routine is invoked when a '<' is encountered after an identifier or @@ -2191,7 +2191,7 @@ return false; } -/// \brief Parse an operator-function-id or conversion-function-id as part +/// Parse an operator-function-id or conversion-function-id as part /// of a C++ unqualified-id. /// /// This routine is responsible only for parsing the operator-function-id or @@ -2430,7 +2430,7 @@ return false; } -/// \brief Parse a C++ unqualified-id (or a C identifier), which describes the +/// Parse a C++ unqualified-id (or a C identifier), which describes the /// name of an entity. /// /// \code @@ -3002,7 +3002,7 @@ } } -/// \brief Parse the built-in type-trait pseudo-functions that allow +/// Parse the built-in type-trait pseudo-functions that allow /// implementation of the TR1/C++11 type traits templates. /// /// primary-expression: Index: cfe/trunk/lib/Parse/ParseObjc.cpp =================================================================== --- cfe/trunk/lib/Parse/ParseObjc.cpp +++ cfe/trunk/lib/Parse/ParseObjc.cpp @@ -2272,7 +2272,7 @@ P.ParseLexedObjCMethodDefs(*LateParsedObjCMethods[i], false/*c-functions*/); - /// \brief Clear and free the cached objc methods. + /// Clear and free the cached objc methods. for (LateParsedObjCMethodContainer::iterator I = LateParsedObjCMethods.begin(), E = LateParsedObjCMethods.end(); I != E; ++I) @@ -2864,7 +2864,7 @@ } } -/// \brief Parse the receiver of an Objective-C++ message send. +/// Parse the receiver of an Objective-C++ message send. /// /// This routine parses the receiver of a message send in /// Objective-C++ either as a type or as an expression. Note that this @@ -2954,7 +2954,7 @@ return false; } -/// \brief Determine whether the parser is currently referring to a an +/// Determine whether the parser is currently referring to a an /// Objective-C message send, using a simplified heuristic to avoid overhead. /// /// This routine will only return true for a subset of valid message-send @@ -3099,7 +3099,7 @@ Res.get()); } -/// \brief Parse the remainder of an Objective-C message following the +/// Parse the remainder of an Objective-C message following the /// '[' objc-receiver. /// /// This routine handles sends to super, class messages (sent to a Index: cfe/trunk/lib/Parse/ParseOpenMP.cpp =================================================================== --- cfe/trunk/lib/Parse/ParseOpenMP.cpp +++ cfe/trunk/lib/Parse/ParseOpenMP.cpp @@ -7,7 +7,7 @@ // //===----------------------------------------------------------------------===// /// \file -/// \brief This file implements parsing of all OpenMP directives and clauses. +/// This file implements parsing of all OpenMP directives and clauses. /// //===----------------------------------------------------------------------===// @@ -210,7 +210,7 @@ : DeclNames.getCXXOperatorName(OOK); } -/// \brief Parse 'omp declare reduction' construct. +/// Parse 'omp declare reduction' construct. /// /// declare-reduction-directive: /// annot_pragma_openmp 'declare' 'reduction' @@ -625,7 +625,7 @@ LinModifiers, Steps, SourceRange(Loc, EndLoc)); } -/// \brief Parsing of declarative OpenMP directives. +/// Parsing of declarative OpenMP directives. /// /// threadprivate-directive: /// annot_pragma_openmp 'threadprivate' simple-variable-list @@ -874,7 +874,7 @@ return nullptr; } -/// \brief Parsing of declarative or executable OpenMP directives. +/// Parsing of declarative or executable OpenMP directives. /// /// threadprivate-directive: /// annot_pragma_openmp 'threadprivate' simple-variable-list @@ -1197,7 +1197,7 @@ return !IsCorrect; } -/// \brief Parsing of OpenMP clauses. +/// Parsing of OpenMP clauses. /// /// clause: /// if-clause | final-clause | num_threads-clause | safelen-clause | @@ -1384,7 +1384,7 @@ return Val; } -/// \brief Parsing of OpenMP clauses with single expressions like 'final', +/// Parsing of OpenMP clauses with single expressions like 'final', /// 'collapse', 'safelen', 'num_threads', 'simdlen', 'num_teams', /// 'thread_limit', 'simdlen', 'priority', 'grainsize', 'num_tasks' or 'hint'. /// @@ -1431,7 +1431,7 @@ return Actions.ActOnOpenMPSingleExprClause(Kind, Val.get(), Loc, LLoc, RLoc); } -/// \brief Parsing of simple OpenMP clauses like 'default' or 'proc_bind'. +/// Parsing of simple OpenMP clauses like 'default' or 'proc_bind'. /// /// default-clause: /// 'default' '(' 'none' | 'shared' ') @@ -1465,7 +1465,7 @@ Tok.getLocation()); } -/// \brief Parsing of OpenMP clauses like 'ordered'. +/// Parsing of OpenMP clauses like 'ordered'. /// /// ordered-clause: /// 'ordered' @@ -1501,7 +1501,7 @@ } -/// \brief Parsing of OpenMP clauses with single expressions and some additional +/// Parsing of OpenMP clauses with single expressions and some additional /// argument like 'schedule' or 'dist_schedule'. /// /// schedule-clause: @@ -1921,7 +1921,7 @@ (MustHaveTail && !Data.TailExpr) || InvalidReductionId; } -/// \brief Parsing of OpenMP clause 'private', 'firstprivate', 'lastprivate', +/// Parsing of OpenMP clause 'private', 'firstprivate', 'lastprivate', /// 'shared', 'copyin', 'copyprivate', 'flush', 'reduction', 'task_reduction' or /// 'in_reduction'. /// Index: cfe/trunk/lib/Parse/ParsePragma.cpp =================================================================== --- cfe/trunk/lib/Parse/ParsePragma.cpp +++ cfe/trunk/lib/Parse/ParsePragma.cpp @@ -458,7 +458,7 @@ AttributePragmaHandler.reset(); } -/// \brief Handle the annotation token produced for #pragma unused(...) +/// Handle the annotation token produced for #pragma unused(...) /// /// Each annot_pragma_unused is followed by the argument token so e.g. /// "#pragma unused(x,y)" becomes: @@ -2100,7 +2100,7 @@ StateLoc, State); } -/// \brief Handle '#pragma omp ...' when OpenMP is disabled. +/// Handle '#pragma omp ...' when OpenMP is disabled. /// void PragmaNoOpenMPHandler::HandlePragma(Preprocessor &PP, @@ -2115,7 +2115,7 @@ PP.DiscardUntilEndOfDirective(); } -/// \brief Handle '#pragma omp ...' when OpenMP is enabled. +/// Handle '#pragma omp ...' when OpenMP is enabled. /// void PragmaOpenMPHandler::HandlePragma(Preprocessor &PP, @@ -2155,7 +2155,7 @@ /*DisableMacroExpansion=*/false); } -/// \brief Handle '#pragma pointers_to_members' +/// Handle '#pragma pointers_to_members' // The grammar for this pragma is as follows: // // <inheritance model> ::= ('single' | 'multiple' | 'virtual') '_inheritance' @@ -2253,7 +2253,7 @@ PP.EnterToken(AnnotTok); } -/// \brief Handle '#pragma vtordisp' +/// Handle '#pragma vtordisp' // The grammar for this pragma is as follows: // // <vtordisp-mode> ::= ('off' | 'on' | '0' | '1' | '2' ) @@ -2346,7 +2346,7 @@ PP.EnterToken(AnnotTok); } -/// \brief Handle all MS pragmas. Simply forwards the tokens after inserting +/// Handle all MS pragmas. Simply forwards the tokens after inserting /// an annotation token. void PragmaMSPragma::HandlePragma(Preprocessor &PP, PragmaIntroducerKind Introducer, @@ -2377,7 +2377,7 @@ PP.EnterToken(AnnotTok); } -/// \brief Handle the Microsoft \#pragma detect_mismatch extension. +/// Handle the Microsoft \#pragma detect_mismatch extension. /// /// The syntax is: /// \code @@ -2434,7 +2434,7 @@ Actions.ActOnPragmaDetectMismatch(DetectMismatchLoc, NameString, ValueString); } -/// \brief Handle the microsoft \#pragma comment extension. +/// Handle the microsoft \#pragma comment extension. /// /// The syntax is: /// \code @@ -2683,7 +2683,7 @@ ConsumeAnnotationToken(); } -/// \brief Parses loop or unroll pragma hint value and fills in Info. +/// Parses loop or unroll pragma hint value and fills in Info. static bool ParseLoopHintValue(Preprocessor &PP, Token &Tok, Token PragmaName, Token Option, bool ValueInParens, PragmaLoopHintInfo &Info) { @@ -2725,7 +2725,7 @@ return false; } -/// \brief Handle the \#pragma clang loop directive. +/// Handle the \#pragma clang loop directive. /// #pragma clang 'loop' loop-hints /// /// loop-hints: @@ -2840,7 +2840,7 @@ /*DisableMacroExpansion=*/false); } -/// \brief Handle the loop unroll optimization pragmas. +/// Handle the loop unroll optimization pragmas. /// #pragma unroll /// #pragma unroll unroll-hint-value /// #pragma unroll '(' unroll-hint-value ')' @@ -2910,7 +2910,7 @@ /*DisableMacroExpansion=*/false); } -/// \brief Handle the Microsoft \#pragma intrinsic extension. +/// Handle the Microsoft \#pragma intrinsic extension. /// /// The syntax is: /// \code @@ -3038,7 +3038,7 @@ diag::warn_pragma_force_cuda_host_device_bad_arg); } -/// \brief Handle the #pragma clang attribute directive. +/// Handle the #pragma clang attribute directive. /// /// The syntax is: /// \code Index: cfe/trunk/lib/Parse/ParseStmt.cpp =================================================================== --- cfe/trunk/lib/Parse/ParseStmt.cpp +++ cfe/trunk/lib/Parse/ParseStmt.cpp @@ -27,7 +27,7 @@ // C99 6.8: Statements and Blocks. //===----------------------------------------------------------------------===// -/// \brief Parse a standalone statement (for instance, as the body of an 'if', +/// Parse a standalone statement (for instance, as the body of an 'if', /// 'while', or 'for'). StmtResult Parser::ParseStatement(SourceLocation *TrailingElseLoc, bool AllowOpenMPStandalone) { @@ -402,7 +402,7 @@ return Res; } -/// \brief Parse an expression statement. +/// Parse an expression statement. StmtResult Parser::ParseExprStatement() { // If a case keyword is missing, this is where it should be inserted. Token OldToken = Tok; Index: cfe/trunk/lib/Parse/ParseTemplate.cpp =================================================================== --- cfe/trunk/lib/Parse/ParseTemplate.cpp +++ cfe/trunk/lib/Parse/ParseTemplate.cpp @@ -21,7 +21,7 @@ #include "clang/Sema/Scope.h" using namespace clang; -/// \brief Parse a template declaration, explicit instantiation, or +/// Parse a template declaration, explicit instantiation, or /// explicit specialization. Decl * Parser::ParseDeclarationStartingWithTemplate(DeclaratorContext Context, @@ -41,7 +41,7 @@ -/// \brief Parse a template declaration or an explicit specialization. +/// Parse a template declaration or an explicit specialization. /// /// Template declarations include one or more template parameter lists /// and either the function or class template declaration. Explicit @@ -157,7 +157,7 @@ DeclEnd, AS, AccessAttrs); } -/// \brief Parse a single declaration that declares a template, +/// Parse a single declaration that declares a template, /// template specialization, or explicit instantiation of a template. /// /// \param DeclEnd will receive the source location of the last token @@ -403,7 +403,7 @@ return true; } -/// \brief Determine whether the parser is at the start of a template +/// Determine whether the parser is at the start of a template /// type parameter. bool Parser::isStartOfTemplateTypeParameter() { if (Tok.is(tok::kw_class)) { @@ -754,7 +754,7 @@ AlreadyHasEllipsis, D.hasName()); } -/// \brief Parses a '>' at the end of a template list. +/// Parses a '>' at the end of a template list. /// /// If this function encounters '>>', '>>>', '>=', or '>>=', it tries /// to determine if these tokens were supposed to be a '>' followed by @@ -926,7 +926,7 @@ } -/// \brief Parses a template-id that after the template name has +/// Parses a template-id that after the template name has /// already been parsed. /// /// This routine takes care of parsing the enclosed template argument @@ -968,7 +968,7 @@ /*ObjCGenericList=*/false); } -/// \brief Replace the tokens that form a simple-template-id with an +/// Replace the tokens that form a simple-template-id with an /// annotation token containing the complete template-id. /// /// The first token in the stream must be the name of a template that @@ -1089,7 +1089,7 @@ return false; } -/// \brief Replaces a template-id annotation token with a type +/// Replaces a template-id annotation token with a type /// annotation token. /// /// If there was a failure when forming the type from the template-id, @@ -1134,12 +1134,12 @@ PP.AnnotateCachedTokens(Tok); } -/// \brief Determine whether the given token can end a template argument. +/// Determine whether the given token can end a template argument. static bool isEndOfTemplateArgument(Token Tok) { return Tok.isOneOf(tok::comma, tok::greater, tok::greatergreater); } -/// \brief Parse a C++ template template argument. +/// Parse a C++ template template argument. ParsedTemplateArgument Parser::ParseTemplateTemplateArgument() { if (!Tok.is(tok::identifier) && !Tok.is(tok::coloncolon) && !Tok.is(tok::annot_cxxscope)) @@ -1267,7 +1267,7 @@ ExprArg.get(), Loc); } -/// \brief Determine whether the current tokens can only be parsed as a +/// Determine whether the current tokens can only be parsed as a /// template argument list (starting with the '<') and never as a '<' /// expression. bool Parser::IsTemplateArgumentList(unsigned Skip) { @@ -1329,7 +1329,7 @@ return false; } -/// \brief Parse a C++ explicit template instantiation +/// Parse a C++ explicit template instantiation /// (C++ [temp.explicit]). /// /// explicit-instantiation: @@ -1367,7 +1367,7 @@ ((Parser *)P)->ParseLateTemplatedFuncDef(LPT); } -/// \brief Late parse a C++ function template in Microsoft mode. +/// Late parse a C++ function template in Microsoft mode. void Parser::ParseLateTemplatedFuncDef(LateParsedTemplate &LPT) { if (!LPT.D) return; @@ -1458,7 +1458,7 @@ delete *I; } -/// \brief Lex a delayed template function for late parsing. +/// Lex a delayed template function for late parsing. void Parser::LexTemplateFunctionForLateParsing(CachedTokens &Toks) { tok::TokenKind kind = Tok.getKind(); if (!ConsumeAndStoreFunctionPrologue(Toks)) { Index: cfe/trunk/lib/Parse/ParseTentative.cpp =================================================================== --- cfe/trunk/lib/Parse/ParseTentative.cpp +++ cfe/trunk/lib/Parse/ParseTentative.cpp @@ -401,7 +401,7 @@ } }; -/// \brief Disambiguates between a declaration in a condition, a +/// Disambiguates between a declaration in a condition, a /// simple-declaration in an init-statement, and an expression for /// a condition of a if/switch statement. /// @@ -472,7 +472,7 @@ return ConditionOrInitStatement::Expression; } - /// \brief Determine whether the next set of tokens contains a type-id. + /// Determine whether the next set of tokens contains a type-id. /// /// The context parameter states what context we're parsing right /// now, which affects how this routine copes with the token @@ -553,7 +553,7 @@ return TPR == TPResult::True; } -/// \brief Returns true if this is a C++11 attribute-specifier. Per +/// Returns true if this is a C++11 attribute-specifier. Per /// C++11 [dcl.attr.grammar]p6, two consecutive left square bracket tokens /// always introduce an attribute. In Objective-C++11, this rule does not /// apply if either '[' begins a message-send. Index: cfe/trunk/lib/Parse/Parser.cpp =================================================================== --- cfe/trunk/lib/Parse/Parser.cpp +++ cfe/trunk/lib/Parse/Parser.cpp @@ -24,7 +24,7 @@ namespace { -/// \brief A comment handler that passes comments found by the preprocessor +/// A comment handler that passes comments found by the preprocessor /// to the parser action. class ActionCommentHandler : public CommentHandler { Sema &S; @@ -77,7 +77,7 @@ return Diag(Tok.getLocation(), DiagID); } -/// \brief Emits a diagnostic suggesting parentheses surrounding a +/// Emits a diagnostic suggesting parentheses surrounding a /// given range. /// /// \param Loc The location where we'll emit the diagnostic. @@ -858,7 +858,7 @@ return Actions.ConvertDeclToDeclGroup(SingleDecl); } -/// \brief Determine whether the current token, if it occurs after a +/// Determine whether the current token, if it occurs after a /// declarator, continues a declaration or declaration list. bool Parser::isDeclarationAfterDeclarator() { // Check for '= delete' or '= default' @@ -877,7 +877,7 @@ Tok.is(tok::l_paren)); // int X(0) -> not a function def [C++] } -/// \brief Determine whether the current token, if it occurs after a +/// Determine whether the current token, if it occurs after a /// declarator, indicates the start of a function definition. bool Parser::isStartOfFunctionDefinition(const ParsingDeclarator &Declarator) { assert(Declarator.isFunctionDeclarator() && "Isn't a function declarator"); @@ -1451,7 +1451,7 @@ return Result; } -/// \brief Get the TemplateIdAnnotation from the token and put it in the +/// Get the TemplateIdAnnotation from the token and put it in the /// cleanup pool so that it gets destroyed when parsing the current top level /// declaration is finished. TemplateIdAnnotation *Parser::takeTemplateIdAnnotation(const Token &tok) { @@ -1479,7 +1479,7 @@ PP.AnnotateCachedTokens(Tok); } -/// \brief Attempt to classify the name at the current token position. This may +/// Attempt to classify the name at the current token position. This may /// form a type, scope or primary expression annotation, or replace the token /// with a typo-corrected keyword. This is only appropriate when the current /// name must refer to an entity which has already been declared. @@ -1764,7 +1764,7 @@ return TryAnnotateTypeOrScopeTokenAfterScopeSpec(SS, !WasScopeAnnotation); } -/// \brief Try to annotate a type or scope token, having already parsed an +/// Try to annotate a type or scope token, having already parsed an /// optional scope specifier. \p IsNewScope should be \c true unless the scope /// specifier was extracted from an existing tok::annot_cxxscope annotation. bool Parser::TryAnnotateTypeOrScopeTokenAfterScopeSpec(CXXScopeSpec &SS, @@ -2185,7 +2185,7 @@ } } -/// \brief Try recover parser when module annotation appears where it must not +/// Try recover parser when module annotation appears where it must not /// be found. /// \returns false if the recover was successful and parsing may be continued, or /// true if parser must bail out to top level and handle the token there. Index: cfe/trunk/lib/Rewrite/Rewriter.cpp =================================================================== --- cfe/trunk/lib/Rewrite/Rewriter.cpp +++ cfe/trunk/lib/Rewrite/Rewriter.cpp @@ -44,7 +44,7 @@ return os; } -/// \brief Return true if this character is non-new-line whitespace: +/// Return true if this character is non-new-line whitespace: /// ' ', '\\t', '\\f', '\\v', '\\r'. static inline bool isWhitespaceExceptNL(unsigned char c) { switch (c) { Index: cfe/trunk/lib/Sema/AnalysisBasedWarnings.cpp =================================================================== --- cfe/trunk/lib/Sema/AnalysisBasedWarnings.cpp +++ cfe/trunk/lib/Sema/AnalysisBasedWarnings.cpp @@ -122,7 +122,7 @@ } namespace { -/// \brief Warn on logical operator errors in CFGBuilder +/// Warn on logical operator errors in CFGBuilder class LogicalErrorHandler : public CFGCallback { Sema &S; @@ -1650,7 +1650,7 @@ void setVerbose(bool b) { Verbose = b; } - /// \brief Emit all buffered diagnostics in order of sourcelocation. + /// Emit all buffered diagnostics in order of sourcelocation. /// We need to output diagnostics produced while iterating through /// the lockset in deterministic order, so this function orders diagnostics /// and outputs them. Index: cfe/trunk/lib/Sema/CodeCompleteConsumer.cpp =================================================================== --- cfe/trunk/lib/Sema/CodeCompleteConsumer.cpp +++ cfe/trunk/lib/Sema/CodeCompleteConsumer.cpp @@ -621,7 +621,7 @@ } } -/// \brief Retrieve the effective availability of the given declaration. +/// Retrieve the effective availability of the given declaration. static AvailabilityResult getDeclAvailability(const Decl *D) { AvailabilityResult AR = D->getAvailability(); if (isa<EnumConstantDecl>(D)) @@ -683,7 +683,7 @@ Availability = CXAvailability_NotAccessible; } -/// \brief Retrieve the name that should be used to order a result. +/// Retrieve the name that should be used to order a result. /// /// If the name needs to be constructed as a string, that string will be /// saved into Saved and the returned StringRef will refer to it. Index: cfe/trunk/lib/Sema/CoroutineStmtBuilder.h =================================================================== --- cfe/trunk/lib/Sema/CoroutineStmtBuilder.h +++ cfe/trunk/lib/Sema/CoroutineStmtBuilder.h @@ -33,16 +33,16 @@ CXXRecordDecl *PromiseRecordDecl = nullptr; public: - /// \brief Construct a CoroutineStmtBuilder and initialize the promise + /// Construct a CoroutineStmtBuilder and initialize the promise /// statement and initial/final suspends from the FunctionScopeInfo. CoroutineStmtBuilder(Sema &S, FunctionDecl &FD, sema::FunctionScopeInfo &Fn, Stmt *Body); - /// \brief Build the coroutine body statements, including the + /// Build the coroutine body statements, including the /// "promise dependent" statements when the promise type is not dependent. bool buildStatements(); - /// \brief Build the coroutine body statements that require a non-dependent + /// Build the coroutine body statements that require a non-dependent /// promise type in order to construct. /// /// For example different new/delete overloads are selected depending on Index: cfe/trunk/lib/Sema/IdentifierResolver.cpp =================================================================== --- cfe/trunk/lib/Sema/IdentifierResolver.cpp +++ cfe/trunk/lib/Sema/IdentifierResolver.cpp @@ -257,7 +257,7 @@ } // namespace -/// \brief Compare two declarations to see whether they are different or, +/// Compare two declarations to see whether they are different or, /// if they are the same, whether the new declaration should replace the /// existing declaration. static DeclMatchKind compareDeclarations(NamedDecl *Existing, NamedDecl *New) { Index: cfe/trunk/lib/Sema/JumpDiagnostics.cpp =================================================================== --- cfe/trunk/lib/Sema/JumpDiagnostics.cpp +++ cfe/trunk/lib/Sema/JumpDiagnostics.cpp @@ -216,7 +216,7 @@ return ScopePair(0U, 0U); } -/// \brief Build scope information for a declaration that is part of a DeclStmt. +/// Build scope information for a declaration that is part of a DeclStmt. void JumpScopeChecker::BuildScopeInformation(Decl *D, unsigned &ParentScope) { // If this decl causes a new scope, push and switch to it. std::pair<unsigned,unsigned> Diags = GetDiagForGotoScopeDecl(S, D); @@ -233,7 +233,7 @@ BuildScopeInformation(Init, ParentScope); } -/// \brief Build scope information for a captured block literal variables. +/// Build scope information for a captured block literal variables. void JumpScopeChecker::BuildScopeInformation(VarDecl *D, const BlockDecl *BDecl, unsigned &ParentScope) { Index: cfe/trunk/lib/Sema/MultiplexExternalSemaSource.cpp =================================================================== --- cfe/trunk/lib/Sema/MultiplexExternalSemaSource.cpp +++ cfe/trunk/lib/Sema/MultiplexExternalSemaSource.cpp @@ -16,7 +16,7 @@ using namespace clang; -///\brief Constructs a new multiplexing external sema source and appends the +///Constructs a new multiplexing external sema source and appends the /// given element to it. /// MultiplexExternalSemaSource::MultiplexExternalSemaSource(ExternalSemaSource &s1, @@ -28,7 +28,7 @@ // pin the vtable here. MultiplexExternalSemaSource::~MultiplexExternalSemaSource() {} -///\brief Appends new source to the source list. +///Appends new source to the source list. /// ///\param[in] source - An ExternalSemaSource. /// Index: cfe/trunk/lib/Sema/Sema.cpp =================================================================== --- cfe/trunk/lib/Sema/Sema.cpp +++ cfe/trunk/lib/Sema/Sema.cpp @@ -395,7 +395,7 @@ return getASTConsumer().GetASTMutationListener(); } -///\brief Registers an external source. If an external source already exists, +///Registers an external source. If an external source already exists, /// creates a multiplex external source and appends to it. /// ///\param[in] E - A non-null external sema source. @@ -416,7 +416,7 @@ } } -/// \brief Print out statistics about the semantic analysis. +/// Print out statistics about the semantic analysis. void Sema::PrintStats() const { llvm::errs() << "\n*** Semantic Analysis Stats:\n"; llvm::errs() << NumSFINAEErrors << " SFINAE diagnostics trapped.\n"; @@ -536,7 +536,7 @@ llvm_unreachable("unknown scalar type kind"); } -/// \brief Used to prune the decls of Sema's UnusedFileScopedDecls vector. +/// Used to prune the decls of Sema's UnusedFileScopedDecls vector. static bool ShouldRemoveFromUnused(Sema *SemaRef, const DeclaratorDecl *D) { if (D->getMostRecentDecl()->isUsed()) return true; @@ -724,7 +724,7 @@ typedef llvm::DenseMap<const CXXRecordDecl*, bool> RecordCompleteMap; -/// \brief Returns true, if all methods and nested classes of the given +/// Returns true, if all methods and nested classes of the given /// CXXRecordDecl are defined in this translation unit. /// /// Should only be called from ActOnEndOfTranslationUnit so that all @@ -764,7 +764,7 @@ return Complete; } -/// \brief Returns true, if the given CXXRecordDecl is fully defined in this +/// Returns true, if the given CXXRecordDecl is fully defined in this /// translation unit, i.e. all methods are defined or pure virtual and all /// friends, friend functions and nested classes are fully defined in this /// translation unit. @@ -1310,7 +1310,7 @@ return Builder; } -/// \brief Looks through the macro-expansion chain for the given +/// Looks through the macro-expansion chain for the given /// location, looking for a macro expansion with the given name. /// If one is found, returns true and sets the location to that /// expansion loc. @@ -1331,7 +1331,7 @@ return false; } -/// \brief Determines the active Scope associated with the given declaration +/// Determines the active Scope associated with the given declaration /// context. /// /// This routine maps a declaration context to the active Scope object that @@ -1360,7 +1360,7 @@ return nullptr; } -/// \brief Enter a new function scope +/// Enter a new function scope void Sema::PushFunctionScope() { if (FunctionScopes.empty()) { // Use PreallocatedFunctionScope to avoid allocating memory when possible. @@ -1424,7 +1424,7 @@ CurFunction->CompoundScopes.pop_back(); } -/// \brief Determine whether any errors occurred within this function/method/ +/// Determine whether any errors occurred within this function/method/ /// block. bool Sema::hasAnyUnrecoverableErrorsInThisFunction() const { return getCurFunction()->ErrorTrap.hasUnrecoverableErrorOccurred(); @@ -1547,7 +1547,7 @@ void ExternalSemaSource::ReadMismatchingDeleteExpressions(llvm::MapVector< FieldDecl *, llvm::SmallVector<std::pair<SourceLocation, bool>, 4>> &) {} -/// \brief Figure out if an expression could be turned into a call. +/// Figure out if an expression could be turned into a call. /// /// Use this when trying to recover from an error where the programmer may have /// written just the name of a function instead of actually calling it. @@ -1649,7 +1649,7 @@ return false; } -/// \brief Give notes for a set of overloads. +/// Give notes for a set of overloads. /// /// A companion to tryExprAsCall. In cases when the name that the programmer /// wrote was an overloaded function, we may be able to make some guesses about Index: cfe/trunk/lib/Sema/SemaAccess.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaAccess.cpp +++ cfe/trunk/lib/Sema/SemaAccess.cpp @@ -1712,7 +1712,7 @@ return CheckAccess(*this, OpLoc, Entity); } -/// \brief Checks access to a member. +/// Checks access to a member. Sema::AccessResult Sema::CheckMemberAccess(SourceLocation UseLoc, CXXRecordDecl *NamingClass, DeclAccessPair Found) { Index: cfe/trunk/lib/Sema/SemaAttr.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaAttr.cpp +++ cfe/trunk/lib/Sema/SemaAttr.cpp @@ -389,7 +389,7 @@ return false; } -/// \brief Called on well formed \#pragma bss_seg(). +/// Called on well formed \#pragma bss_seg(). void Sema::ActOnPragmaMSSeg(SourceLocation PragmaLocation, PragmaMsStackAction Action, llvm::StringRef StackSlotLabel, @@ -410,7 +410,7 @@ Stack->Act(PragmaLocation, Action, StackSlotLabel, SegmentName); } -/// \brief Called on well formed \#pragma bss_seg(). +/// Called on well formed \#pragma bss_seg(). void Sema::ActOnPragmaMSSection(SourceLocation PragmaLocation, int SectionFlags, StringLiteral *SegmentName) { UnifySection(SegmentName->getString(), SectionFlags, PragmaLocation); Index: cfe/trunk/lib/Sema/SemaCUDA.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaCUDA.cpp +++ cfe/trunk/lib/Sema/SemaCUDA.cpp @@ -7,7 +7,7 @@ // //===----------------------------------------------------------------------===// /// \file -/// \brief This file implements semantic analysis for CUDA constructs. +/// This file implements semantic analysis for CUDA constructs. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/lib/Sema/SemaCXXScopeSpec.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaCXXScopeSpec.cpp +++ cfe/trunk/lib/Sema/SemaCXXScopeSpec.cpp @@ -24,7 +24,7 @@ #include "llvm/ADT/STLExtras.h" using namespace clang; -/// \brief Find the current instantiation that associated with the given type. +/// Find the current instantiation that associated with the given type. static CXXRecordDecl *getCurrentInstantiationOf(QualType T, DeclContext *CurContext) { if (T.isNull()) @@ -44,7 +44,7 @@ return nullptr; } -/// \brief Compute the DeclContext that is associated with the given type. +/// Compute the DeclContext that is associated with the given type. /// /// \param T the type for which we are attempting to find a DeclContext. /// @@ -59,7 +59,7 @@ return ::getCurrentInstantiationOf(T, CurContext); } -/// \brief Compute the DeclContext that is associated with the given +/// Compute the DeclContext that is associated with the given /// scope specifier. /// /// \param SS the C++ scope specifier as it appears in the source @@ -172,7 +172,7 @@ return SS.getScopeRep()->isDependent(); } -/// \brief If the given nested name specifier refers to the current +/// If the given nested name specifier refers to the current /// instantiation, return the declaration that corresponds to that /// current instantiation (C++0x [temp.dep.type]p1). /// @@ -188,7 +188,7 @@ return ::getCurrentInstantiationOf(T, CurContext); } -/// \brief Require that the context specified by SS be complete. +/// Require that the context specified by SS be complete. /// /// If SS refers to a type, this routine checks whether the type is /// complete enough (or can be made complete enough) for name lookup @@ -305,7 +305,7 @@ return false; } -/// \brief Determines whether the given declaration is an valid acceptable +/// Determines whether the given declaration is an valid acceptable /// result for name lookup of a nested-name-specifier. /// \param SD Declaration checked for nested-name-specifier. /// \param IsExtension If not null and the declaration is accepted as an @@ -350,7 +350,7 @@ return false; } -/// \brief If the given nested-name-specifier begins with a bare identifier +/// If the given nested-name-specifier begins with a bare identifier /// (e.g., Base::), perform name lookup for that identifier as a /// nested-name-specifier within the given scope, and return the result of that /// name lookup. @@ -443,7 +443,7 @@ } -/// \brief Build a new nested-name-specifier for "identifier::", as described +/// Build a new nested-name-specifier for "identifier::", as described /// by ActOnCXXNestedNameSpecifier. /// /// \param S Scope in which the nested-name-specifier occurs. @@ -967,7 +967,7 @@ } namespace { - /// \brief A structure that stores a nested-name-specifier annotation, + /// A structure that stores a nested-name-specifier annotation, /// including both the nested-name-specifier struct NestedNameSpecifierAnnotation { NestedNameSpecifier *NNS; Index: cfe/trunk/lib/Sema/SemaChecking.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaChecking.cpp +++ cfe/trunk/lib/Sema/SemaChecking.cpp @@ -684,7 +684,7 @@ return false; } -// \brief Performs semantic analysis for the read/write_pipe call. +// Performs semantic analysis for the read/write_pipe call. // \param S Reference to the semantic analyzer. // \param Call A pointer to the builtin call. // \return True if a semantic error has been found, false otherwise. @@ -738,7 +738,7 @@ return false; } -// \brief Performs a semantic analysis on the {work_group_/sub_group_ +// Performs a semantic analysis on the {work_group_/sub_group_ // /_}reserve_{read/write}_pipe // \param S Reference to the semantic analyzer. // \param Call The call to the builtin function to be analyzed. @@ -767,7 +767,7 @@ return false; } -// \brief Performs a semantic analysis on {work_group_/sub_group_ +// Performs a semantic analysis on {work_group_/sub_group_ // /_}commit_{read/write}_pipe // \param S Reference to the semantic analyzer. // \param Call The call to the builtin function to be analyzed. @@ -790,7 +790,7 @@ return false; } -// \brief Performs a semantic analysis on the call to built-in Pipe +// Performs a semantic analysis on the call to built-in Pipe // Query Functions. // \param S Reference to the semantic analyzer. // \param Call The call to the builtin function to be analyzed. @@ -808,8 +808,8 @@ return false; } -// \brief OpenCL v2.0 s6.13.9 - Address space qualifier functions. -// \brief Performs semantic analysis for the to_global/local/private call. +// OpenCL v2.0 s6.13.9 - Address space qualifier functions. +// Performs semantic analysis for the to_global/local/private call. // \param S Reference to the semantic analyzer. // \param BuiltinID ID of the builtin function. // \param Call A pointer to the builtin call. @@ -2573,7 +2573,7 @@ /// Checks if a the given expression evaluates to null. /// -/// \brief Returns true if the value evaluates to null. +/// Returns true if the value evaluates to null. static bool CheckNonNullExpr(Sema &S, const Expr *Expr) { // If the expression has non-null type, it doesn't evaluate to null. if (auto nullability @@ -2617,7 +2617,7 @@ return false; } -/// \brief Diagnose use of %s directive in an NSString which is being passed +/// Diagnose use of %s directive in an NSString which is being passed /// as formatting string to formatting method. static void DiagnoseCStringFormatDirectiveInCFAPI(Sema &S, @@ -5706,7 +5706,7 @@ Loc, IsStringLocation, StringRange, FixIt); } -/// \brief If the format string is not within the function call, emit a note +/// If the format string is not within the function call, emit a note /// so that the function call and string are in diagnostic messages. /// /// \param InFunctionCall if true, the format string is within the function @@ -7319,7 +7319,7 @@ //===--- CHECK: Standard memory functions ---------------------------------===// -/// \brief Takes the expression passed to the size_t parameter of functions +/// Takes the expression passed to the size_t parameter of functions /// such as memcmp, strncat, etc and warns if it's a comparison. /// /// This is to catch typos like `if (memcmp(&a, &b, sizeof(a) > 0))`. @@ -7350,7 +7350,7 @@ return true; } -/// \brief Determine whether the given type is or contains a dynamic class type +/// Determine whether the given type is or contains a dynamic class type /// (e.g., whether it has a vtable). static const CXXRecordDecl *getContainedDynamicClass(QualType T, bool &IsContained) { @@ -7381,7 +7381,7 @@ return nullptr; } -/// \brief If E is a sizeof expression, returns its argument expression, +/// If E is a sizeof expression, returns its argument expression, /// otherwise returns NULL. static const Expr *getSizeOfExprArg(const Expr *E) { if (const UnaryExprOrTypeTraitExpr *SizeOf = @@ -7392,7 +7392,7 @@ return nullptr; } -/// \brief If E is a sizeof expression, returns its argument type. +/// If E is a sizeof expression, returns its argument type. static QualType getSizeOfArgType(const Expr *E) { if (const UnaryExprOrTypeTraitExpr *SizeOf = dyn_cast<UnaryExprOrTypeTraitExpr>(E)) @@ -7494,7 +7494,7 @@ } -/// \brief Check for dangerous or invalid arguments to memset(). +/// Check for dangerous or invalid arguments to memset(). /// /// This issues warnings on known problematic, dangerous or unspecified /// arguments to the standard 'memset', 'memcpy', 'memmove', and 'memcmp' @@ -9077,7 +9077,7 @@ AnalyzeImplicitConversions(S, E->getRHS(), E->getOperatorLoc()); } -/// \brief Implements -Wsign-compare. +/// Implements -Wsign-compare. /// /// \param E the binary operator to check for warnings static void AnalyzeComparison(Sema &S, BinaryOperator *E) { @@ -10197,7 +10197,7 @@ return false; } -/// \brief Diagnose pointers that are always non-null. +/// Diagnose pointers that are always non-null. /// \param E the expression containing the pointer /// \param NullKind NPCK_NotNull if E is a cast to bool, otherwise, E is /// compared to a null pointer @@ -10444,12 +10444,12 @@ namespace { -/// \brief Visitor for expressions which looks for unsequenced operations on the +/// Visitor for expressions which looks for unsequenced operations on the /// same object. class SequenceChecker : public EvaluatedExprVisitor<SequenceChecker> { using Base = EvaluatedExprVisitor<SequenceChecker>; - /// \brief A tree of sequenced regions within an expression. Two regions are + /// A tree of sequenced regions within an expression. Two regions are /// unsequenced if one is an ancestor or a descendent of the other. When we /// finish processing an expression with sequencing, such as a comma /// expression, we fold its tree nodes into its parent, since they are @@ -10463,7 +10463,7 @@ SmallVector<Value, 8> Values; public: - /// \brief A region within an expression which may be sequenced with respect + /// A region within an expression which may be sequenced with respect /// to some other region. class Seq { friend class SequenceTree; @@ -10479,7 +10479,7 @@ SequenceTree() { Values.push_back(Value(0)); } Seq root() const { return Seq(0); } - /// \brief Create a new sequence of operations, which is an unsequenced + /// Create a new sequence of operations, which is an unsequenced /// subset of \p Parent. This sequence of operations is sequenced with /// respect to other children of \p Parent. Seq allocate(Seq Parent) { @@ -10487,12 +10487,12 @@ return Seq(Values.size() - 1); } - /// \brief Merge a sequence of operations into its parent. + /// Merge a sequence of operations into its parent. void merge(Seq S) { Values[S.Index].Merged = true; } - /// \brief Determine whether two operations are unsequenced. This operation + /// Determine whether two operations are unsequenced. This operation /// is asymmetric: \p Cur should be the more recent sequence, and \p Old /// should have been merged into its parent as appropriate. bool isUnsequenced(Seq Cur, Seq Old) { @@ -10507,7 +10507,7 @@ } private: - /// \brief Pick a representative for a sequence. + /// Pick a representative for a sequence. unsigned representative(unsigned K) { if (Values[K].Merged) // Perform path compression as we go. @@ -10628,7 +10628,7 @@ bool EvalOK = true; } *EvalTracker = nullptr; - /// \brief Find the object which is produced by the specified expression, + /// Find the object which is produced by the specified expression, /// if any. Object getObject(Expr *E, bool Mod) const { E = E->IgnoreParenCasts(); @@ -10650,7 +10650,7 @@ return nullptr; } - /// \brief Note that an object was modified or used by an expression. + /// Note that an object was modified or used by an expression. void addUsage(UsageInfo &UI, Object O, Expr *Ref, UsageKind UK) { Usage &U = UI.Uses[UK]; if (!U.Use || !Tree.isUnsequenced(Region, U.Seq)) { @@ -10661,7 +10661,7 @@ } } - /// \brief Check whether a modification or use conflicts with a prior usage. + /// Check whether a modification or use conflicts with a prior usage. void checkUsage(Object O, UsageInfo &UI, Expr *Ref, UsageKind OtherKind, bool IsModMod) { if (UI.Diagnosed) @@ -11134,7 +11134,7 @@ << TRange << Op->getSourceRange(); } -/// \brief Check whether this array fits the idiom of a size-one tail padded +/// Check whether this array fits the idiom of a size-one tail padded /// array member of a struct. /// /// We avoid emitting out-of-bounds access warnings for such arrays as they are @@ -12150,7 +12150,7 @@ static bool isLayoutCompatible(ASTContext &C, QualType T1, QualType T2); -/// \brief Check if two enumeration types are layout-compatible. +/// Check if two enumeration types are layout-compatible. static bool isLayoutCompatible(ASTContext &C, EnumDecl *ED1, EnumDecl *ED2) { // C++11 [dcl.enum] p8: // Two enumeration types are layout-compatible if they have the same @@ -12159,7 +12159,7 @@ C.hasSameType(ED1->getIntegerType(), ED2->getIntegerType()); } -/// \brief Check if two fields are layout-compatible. +/// Check if two fields are layout-compatible. static bool isLayoutCompatible(ASTContext &C, FieldDecl *Field1, FieldDecl *Field2) { if (!isLayoutCompatible(C, Field1->getType(), Field2->getType())) @@ -12180,7 +12180,7 @@ return true; } -/// \brief Check if two standard-layout structs are layout-compatible. +/// Check if two standard-layout structs are layout-compatible. /// (C++11 [class.mem] p17) static bool isLayoutCompatibleStruct(ASTContext &C, RecordDecl *RD1, RecordDecl *RD2) { @@ -12224,7 +12224,7 @@ return true; } -/// \brief Check if two standard-layout unions are layout-compatible. +/// Check if two standard-layout unions are layout-compatible. /// (C++11 [class.mem] p18) static bool isLayoutCompatibleUnion(ASTContext &C, RecordDecl *RD1, RecordDecl *RD2) { @@ -12263,7 +12263,7 @@ return isLayoutCompatibleStruct(C, RD1, RD2); } -/// \brief Check if two types are layout-compatible in C++11 sense. +/// Check if two types are layout-compatible in C++11 sense. static bool isLayoutCompatible(ASTContext &C, QualType T1, QualType T2) { if (T1.isNull() || T2.isNull()) return false; @@ -12301,7 +12301,7 @@ //===--- CHECK: pointer_with_type_tag attribute: datatypes should match ----// -/// \brief Given a type tag expression find the type tag itself. +/// Given a type tag expression find the type tag itself. /// /// \param TypeExpr Type tag expression, as it appears in user's code. /// @@ -12372,7 +12372,7 @@ } } -/// \brief Retrieve the C type corresponding to type tag TypeExpr. +/// Retrieve the C type corresponding to type tag TypeExpr. /// /// \param TypeExpr Expression that specifies a type tag. /// Index: cfe/trunk/lib/Sema/SemaCodeComplete.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaCodeComplete.cpp +++ cfe/trunk/lib/Sema/SemaCodeComplete.cpp @@ -40,10 +40,10 @@ using namespace sema; namespace { - /// \brief A container of code-completion results. + /// A container of code-completion results. class ResultBuilder { public: - /// \brief The type of a name-lookup filter, which can be provided to the + /// The type of a name-lookup filter, which can be provided to the /// name-lookup routines to specify which declarations should be included in /// the result set (when it returns true) and which declarations should be /// filtered out (returns false). @@ -52,27 +52,27 @@ typedef CodeCompletionResult Result; private: - /// \brief The actual results we have found. + /// The actual results we have found. std::vector<Result> Results; - /// \brief A record of all of the declarations we have found and placed + /// A record of all of the declarations we have found and placed /// into the result set, used to ensure that no declaration ever gets into /// the result set twice. llvm::SmallPtrSet<const Decl*, 16> AllDeclsFound; typedef std::pair<const NamedDecl *, unsigned> DeclIndexPair; - /// \brief An entry in the shadow map, which is optimized to store + /// An entry in the shadow map, which is optimized to store /// a single (declaration, index) mapping (the common case) but /// can also store a list of (declaration, index) mappings. class ShadowMapEntry { typedef SmallVector<DeclIndexPair, 4> DeclIndexPairVector; - /// \brief Contains either the solitary NamedDecl * or a vector + /// Contains either the solitary NamedDecl * or a vector /// of (declaration, index) pairs. llvm::PointerUnion<const NamedDecl *, DeclIndexPairVector*> DeclOrVector; - /// \brief When the entry contains a single declaration, this is + /// When the entry contains a single declaration, this is /// the index associated with that entry. unsigned SingleDeclIndex; @@ -115,53 +115,53 @@ iterator end() const; }; - /// \brief A mapping from declaration names to the declarations that have + /// A mapping from declaration names to the declarations that have /// this name within a particular scope and their index within the list of /// results. typedef llvm::DenseMap<DeclarationName, ShadowMapEntry> ShadowMap; - /// \brief The semantic analysis object for which results are being + /// The semantic analysis object for which results are being /// produced. Sema &SemaRef; - /// \brief The allocator used to allocate new code-completion strings. + /// The allocator used to allocate new code-completion strings. CodeCompletionAllocator &Allocator; CodeCompletionTUInfo &CCTUInfo; - /// \brief If non-NULL, a filter function used to remove any code-completion + /// If non-NULL, a filter function used to remove any code-completion /// results that are not desirable. LookupFilter Filter; - /// \brief Whether we should allow declarations as + /// Whether we should allow declarations as /// nested-name-specifiers that would otherwise be filtered out. bool AllowNestedNameSpecifiers; - /// \brief If set, the type that we would prefer our resulting value + /// If set, the type that we would prefer our resulting value /// declarations to have. /// /// Closely matching the preferred type gives a boost to a result's /// priority. CanQualType PreferredType; - /// \brief A list of shadow maps, which is used to model name hiding at + /// A list of shadow maps, which is used to model name hiding at /// different levels of, e.g., the inheritance hierarchy. std::list<ShadowMap> ShadowMaps; - /// \brief If we're potentially referring to a C++ member function, the set + /// If we're potentially referring to a C++ member function, the set /// of qualifiers applied to the object type. Qualifiers ObjectTypeQualifiers; - /// \brief Whether the \p ObjectTypeQualifiers field is active. + /// Whether the \p ObjectTypeQualifiers field is active. bool HasObjectTypeQualifiers; - /// \brief The selector that we prefer. + /// The selector that we prefer. Selector PreferredSelector; - /// \brief The completion context in which we are gathering results. + /// The completion context in which we are gathering results. CodeCompletionContext CompletionContext; - /// \brief If we are in an instance method definition, the \@implementation + /// If we are in an instance method definition, the \@implementation /// object. ObjCImplementationDecl *ObjCImplementation; @@ -199,17 +199,17 @@ } } - /// \brief Determine the priority for a reference to the given declaration. + /// Determine the priority for a reference to the given declaration. unsigned getBasePriority(const NamedDecl *D); - /// \brief Whether we should include code patterns in the completion + /// Whether we should include code patterns in the completion /// results. bool includeCodePatterns() const { return SemaRef.CodeCompleter && SemaRef.CodeCompleter->includeCodePatterns(); } - /// \brief Set the filter used for code-completion results. + /// Set the filter used for code-completion results. void setFilter(LookupFilter Filter) { this->Filter = Filter; } @@ -218,12 +218,12 @@ unsigned size() const { return Results.size(); } bool empty() const { return Results.empty(); } - /// \brief Specify the preferred type. + /// Specify the preferred type. void setPreferredType(QualType T) { PreferredType = SemaRef.Context.getCanonicalType(T); } - /// \brief Set the cv-qualifiers on the object type, for us in filtering + /// Set the cv-qualifiers on the object type, for us in filtering /// calls to member functions. /// /// When there are qualifiers in this set, they will be used to filter @@ -235,7 +235,7 @@ HasObjectTypeQualifiers = true; } - /// \brief Set the preferred selector. + /// Set the preferred selector. /// /// When an Objective-C method declaration result is added, and that /// method's selector matches this preferred selector, we give that method @@ -244,27 +244,27 @@ PreferredSelector = Sel; } - /// \brief Retrieve the code-completion context for which results are + /// Retrieve the code-completion context for which results are /// being collected. const CodeCompletionContext &getCompletionContext() const { return CompletionContext; } - /// \brief Specify whether nested-name-specifiers are allowed. + /// Specify whether nested-name-specifiers are allowed. void allowNestedNameSpecifiers(bool Allow = true) { AllowNestedNameSpecifiers = Allow; } - /// \brief Return the semantic analysis object for which we are collecting + /// Return the semantic analysis object for which we are collecting /// code completion results. Sema &getSema() const { return SemaRef; } - /// \brief Retrieve the allocator used to allocate code completion strings. + /// Retrieve the allocator used to allocate code completion strings. CodeCompletionAllocator &getAllocator() const { return Allocator; } CodeCompletionTUInfo &getCodeCompletionTUInfo() const { return CCTUInfo; } - /// \brief Determine whether the given declaration is at all interesting + /// Determine whether the given declaration is at all interesting /// as a code-completion result. /// /// \param ND the declaration that we are inspecting. @@ -274,7 +274,7 @@ bool isInterestingDecl(const NamedDecl *ND, bool &AsNestedNameSpecifier) const; - /// \brief Check whether the result is hidden by the Hiding declaration. + /// Check whether the result is hidden by the Hiding declaration. /// /// \returns true if the result is hidden and cannot be found, false if /// the hidden result could still be found. When false, \p R may be @@ -283,7 +283,7 @@ bool CheckHiddenResult(Result &R, DeclContext *CurContext, const NamedDecl *Hiding); - /// \brief Add a new result to this result set (if it isn't already in one + /// Add a new result to this result set (if it isn't already in one /// of the shadow maps), or replace an existing result (for, e.g., a /// redeclaration). /// @@ -292,7 +292,7 @@ /// \param CurContext the context in which this result will be named. void MaybeAddResult(Result R, DeclContext *CurContext = nullptr); - /// \brief Add a new result to this result set, where we already know + /// Add a new result to this result set, where we already know /// the hiding declaration (if any). /// /// \param R the result to add (if it is unique). @@ -306,19 +306,19 @@ void AddResult(Result R, DeclContext *CurContext, NamedDecl *Hiding, bool InBaseClass); - /// \brief Add a new non-declaration result to this result set. + /// Add a new non-declaration result to this result set. void AddResult(Result R); - /// \brief Enter into a new scope. + /// Enter into a new scope. void EnterNewScope(); - /// \brief Exit from the current scope. + /// Exit from the current scope. void ExitScope(); - /// \brief Ignore this declaration, if it is seen again. + /// Ignore this declaration, if it is seen again. void Ignore(const Decl *D) { AllDeclsFound.insert(D->getCanonicalDecl()); } - /// \brief Add a visited context. + /// Add a visited context. void addVisitedContext(DeclContext *Ctx) { CompletionContext.addVisitedContext(Ctx); } @@ -439,7 +439,7 @@ return iterator(DeclOrVector.get<DeclIndexPairVector *>()->end()); } -/// \brief Compute the qualification required to get from the current context +/// Compute the qualification required to get from the current context /// (\p CurContext) to the target context (\p TargetContext). /// /// \param Context the AST context in which the qualification will be used. @@ -603,7 +603,7 @@ return false; } -/// \brief A simplified classification of types used to determine whether two +/// A simplified classification of types used to determine whether two /// types are "similar enough" when adjusting priorities. SimplifiedTypeClass clang::getSimplifiedTypeClass(CanQualType T) { switch (T->getTypeClass()) { @@ -672,7 +672,7 @@ } } -/// \brief Get the type that a given expression will have if this declaration +/// Get the type that a given expression will have if this declaration /// is used as an expression in its "typical" code-completion form. QualType clang::getDeclUsageType(ASTContext &C, const NamedDecl *ND) { ND = ND->getUnderlyingDecl(); @@ -1057,10 +1057,10 @@ Results.push_back(R); } -/// \brief Enter into a new scope. +/// Enter into a new scope. void ResultBuilder::EnterNewScope() { ShadowMaps.emplace_back(); } -/// \brief Exit from the current scope. +/// Exit from the current scope. void ResultBuilder::ExitScope() { for (ShadowMap::iterator E = ShadowMaps.back().begin(), EEnd = ShadowMaps.back().end(); @@ -1071,7 +1071,7 @@ ShadowMaps.pop_back(); } -/// \brief Determines whether this given declaration will be found by +/// Determines whether this given declaration will be found by /// ordinary name lookup. bool ResultBuilder::IsOrdinaryName(const NamedDecl *ND) const { ND = ND->getUnderlyingDecl(); @@ -1089,7 +1089,7 @@ return ND->getIdentifierNamespace() & IDNS; } -/// \brief Determines whether this given declaration will be found by +/// Determines whether this given declaration will be found by /// ordinary name lookup but is not a type name. bool ResultBuilder::IsOrdinaryNonTypeName(const NamedDecl *ND) const { ND = ND->getUnderlyingDecl(); @@ -1125,7 +1125,7 @@ return false; } -/// \brief Determines whether this given declaration will be found by +/// Determines whether this given declaration will be found by /// ordinary name lookup. bool ResultBuilder::IsOrdinaryNonValueName(const NamedDecl *ND) const { ND = ND->getUnderlyingDecl(); @@ -1139,7 +1139,7 @@ !isa<ObjCPropertyDecl>(ND); } -/// \brief Determines whether the given declaration is suitable as the +/// Determines whether the given declaration is suitable as the /// start of a C++ nested-name-specifier, e.g., a class or namespace. bool ResultBuilder::IsNestedNameSpecifier(const NamedDecl *ND) const { // Allow us to find class templates, too. @@ -1149,12 +1149,12 @@ return SemaRef.isAcceptableNestedNameSpecifier(ND); } -/// \brief Determines whether the given declaration is an enumeration. +/// Determines whether the given declaration is an enumeration. bool ResultBuilder::IsEnum(const NamedDecl *ND) const { return isa<EnumDecl>(ND); } -/// \brief Determines whether the given declaration is a class or struct. +/// Determines whether the given declaration is a class or struct. bool ResultBuilder::IsClassOrStruct(const NamedDecl *ND) const { // Allow us to find class templates, too. if (const ClassTemplateDecl *ClassTemplate = dyn_cast<ClassTemplateDecl>(ND)) @@ -1169,7 +1169,7 @@ return false; } -/// \brief Determines whether the given declaration is a union. +/// Determines whether the given declaration is a union. bool ResultBuilder::IsUnion(const NamedDecl *ND) const { // Allow us to find class templates, too. if (const ClassTemplateDecl *ClassTemplate = dyn_cast<ClassTemplateDecl>(ND)) @@ -1181,24 +1181,24 @@ return false; } -/// \brief Determines whether the given declaration is a namespace. +/// Determines whether the given declaration is a namespace. bool ResultBuilder::IsNamespace(const NamedDecl *ND) const { return isa<NamespaceDecl>(ND); } -/// \brief Determines whether the given declaration is a namespace or +/// Determines whether the given declaration is a namespace or /// namespace alias. bool ResultBuilder::IsNamespaceOrAlias(const NamedDecl *ND) const { return isa<NamespaceDecl>(ND->getUnderlyingDecl()); } -/// \brief Determines whether the given declaration is a type. +/// Determines whether the given declaration is a type. bool ResultBuilder::IsType(const NamedDecl *ND) const { ND = ND->getUnderlyingDecl(); return isa<TypeDecl>(ND) || isa<ObjCInterfaceDecl>(ND); } -/// \brief Determines which members of a class should be visible via +/// Determines which members of a class should be visible via /// "." or "->". Only value declarations, nested name specifiers, and /// using declarations thereof should show up. bool ResultBuilder::IsMember(const NamedDecl *ND) const { @@ -1279,14 +1279,14 @@ return false; } -/// \brief Determines whether the given declaration is an Objective-C +/// Determines whether the given declaration is an Objective-C /// instance variable. bool ResultBuilder::IsObjCIvar(const NamedDecl *ND) const { return isa<ObjCIvarDecl>(ND); } namespace { - /// \brief Visible declaration consumer that adds a code-completion result + /// Visible declaration consumer that adds a code-completion result /// for each visible declaration. class CodeCompletionDeclConsumer : public VisibleDeclConsumer { ResultBuilder &Results; @@ -1313,7 +1313,7 @@ }; } -/// \brief Add type specifiers for the current language as keyword results. +/// Add type specifiers for the current language as keyword results. static void AddTypeSpecifierResults(const LangOptions &LangOpts, ResultBuilder &Results) { typedef CodeCompletionResult Result; @@ -1522,12 +1522,12 @@ return Policy; } -/// \brief Retrieve a printing policy suitable for code completion. +/// Retrieve a printing policy suitable for code completion. static PrintingPolicy getCompletionPrintingPolicy(Sema &S) { return getCompletionPrintingPolicy(S.Context, S.PP); } -/// \brief Retrieve the string representation of the given type as a string +/// Retrieve the string representation of the given type as a string /// that has the appropriate lifetime for code completion. /// /// This routine provides a fast path where we provide constant strings for @@ -1561,7 +1561,7 @@ return Allocator.CopyString(Result); } -/// \brief Add a completion for "this", if we're in a member function. +/// Add a completion for "this", if we're in a member function. static void addThisCompletion(Sema &S, ResultBuilder &Results) { QualType ThisTy = S.getCurrentThisType(); if (ThisTy.isNull()) @@ -1593,7 +1593,7 @@ Results.AddResult(CodeCompletionResult(Builder.TakeString())); } -/// \brief Add language constructs that show up for "ordinary" names. +/// Add language constructs that show up for "ordinary" names. static void AddOrdinaryNameResults(Sema::ParserCompletionContext CCC, Scope *S, Sema &SemaRef, @@ -2139,7 +2139,7 @@ Results.AddResult(Result("operator")); } -/// \brief If the given declaration has an associated type, add it as a result +/// If the given declaration has an associated type, add it as a result /// type chunk. static void AddResultTypeChunk(ASTContext &Context, const PrintingPolicy &Policy, @@ -2238,7 +2238,7 @@ return Result; } -/// \brief Tries to find the most appropriate type location for an Objective-C +/// Tries to find the most appropriate type location for an Objective-C /// block placeholder. /// /// This function ignores things like typedefs and qualifiers in order to @@ -2372,7 +2372,7 @@ ObjCSubsts); } -/// \brief Returns a placeholder string that corresponds to an Objective-C block +/// Returns a placeholder string that corresponds to an Objective-C block /// declaration. /// /// \param BlockDecl A declaration with an Objective-C block type. @@ -2464,7 +2464,7 @@ return " " + DefValue; } -/// \brief Add function parameter chunks to the given code completion string. +/// Add function parameter chunks to the given code completion string. static void AddFunctionParameterChunks(Preprocessor &PP, const PrintingPolicy &Policy, const FunctionDecl *Function, @@ -2518,7 +2518,7 @@ } } -/// \brief Add template parameter chunks to the given code completion string. +/// Add template parameter chunks to the given code completion string. static void AddTemplateParameterChunks(ASTContext &Context, const PrintingPolicy &Policy, const TemplateDecl *Template, @@ -2599,7 +2599,7 @@ } } -/// \brief Add a qualifier to the given code-completion string, if the +/// Add a qualifier to the given code-completion string, if the /// provided nested-name-specifier is non-NULL. static void AddQualifierToCompletionString(CodeCompletionBuilder &Result, @@ -2658,7 +2658,7 @@ Result.AddInformativeChunk(Result.getAllocator().CopyString(QualsStr)); } -/// \brief Add the name of the given declaration +/// Add the name of the given declaration static void AddTypedNameChunk(ASTContext &Context, const PrintingPolicy &Policy, const NamedDecl *ND, CodeCompletionBuilder &Result) { @@ -2742,7 +2742,7 @@ CCTUInfo, IncludeBriefComments); } -/// \brief If possible, create a new code completion string for the given +/// If possible, create a new code completion string for the given /// result. /// /// \returns Either a new, heap-allocated code completion string describing @@ -3042,7 +3042,7 @@ return Result.TakeString(); } -/// \brief Add function overload parameter chunks to the given code completion +/// Add function overload parameter chunks to the given code completion /// string. static void AddOverloadParameterChunks(ASTContext &Context, const PrintingPolicy &Policy, @@ -3366,7 +3366,7 @@ llvm_unreachable("Invalid ParserCompletionContext!"); } -/// \brief If we're in a C++ virtual member function, add completion results +/// If we're in a C++ virtual member function, add completion results /// that invoke the functions we override, since it's common to invoke the /// overridden function as well as adding new functionality. /// @@ -3661,7 +3661,7 @@ SmallVector<Decl *, 4> IgnoreDecls; }; -/// \brief Perform code-completion in an expression context when we know what +/// Perform code-completion in an expression context when we know what /// type we're looking for. void Sema::CodeCompleteExpression(Scope *S, const CodeCompleteExpressionData &Data) { @@ -3719,11 +3719,11 @@ CodeCompleteObjCInstanceMessage(S, E.get(), None, false); } -/// \brief The set of properties that have already been added, referenced by +/// The set of properties that have already been added, referenced by /// property name. typedef llvm::SmallPtrSet<IdentifierInfo*, 16> AddedPropertiesSet; -/// \brief Retrieve the container definition, if any? +/// Retrieve the container definition, if any? static ObjCContainerDecl *getContainerDef(ObjCContainerDecl *Container) { if (ObjCInterfaceDecl *Interface = dyn_cast<ObjCInterfaceDecl>(Container)) { if (Interface->hasDefinition()) @@ -3741,7 +3741,7 @@ return Container; } -/// \brief Adds a block invocation code completion result for the given block +/// Adds a block invocation code completion result for the given block /// declaration \p BD. static void AddObjCBlockCall(ASTContext &Context, const PrintingPolicy &Policy, CodeCompletionBuilder &Builder, @@ -4339,7 +4339,7 @@ } } -/// \brief Get the type of the Nth parameter from a given set of overload +/// Get the type of the Nth parameter from a given set of overload /// candidates. static QualType getParamType(Sema &SemaRef, ArrayRef<ResultCandidate> Candidates, @@ -4946,7 +4946,7 @@ Results.data(), Results.size()); } -/// \brief Determine whether this scope denotes a namespace. +/// Determine whether this scope denotes a namespace. static bool isNamespaceScope(Scope *S) { DeclContext *DC = S->getEntity(); if (!DC) @@ -5273,7 +5273,7 @@ Results.data(),Results.size()); } -/// \brief Determine whether the addition of the given flag to an Objective-C +/// Determine whether the addition of the given flag to an Objective-C /// property's attributes will cause a conflict. static bool ObjCPropertyFlagConflicts(unsigned Attributes, unsigned NewFlag) { // Check if we've already added this flag. @@ -5369,7 +5369,7 @@ Results.data(),Results.size()); } -/// \brief Describes the kind of Objective-C method that we want to find +/// Describes the kind of Objective-C method that we want to find /// via code completion. enum ObjCMethodKind { MK_Any, ///< Any kind of method, provided it means other specified criteria. @@ -5410,12 +5410,12 @@ } namespace { - /// \brief A set of selectors, which is used to avoid introducing multiple + /// A set of selectors, which is used to avoid introducing multiple /// completions with the same selector into the result set. typedef llvm::SmallPtrSet<Selector, 16> VisitedSelectorSet; } -/// \brief Add all of the Objective-C methods in the given Objective-C +/// Add all of the Objective-C methods in the given Objective-C /// container to the set of results. /// /// The container will be a class, protocol, category, or implementation of @@ -5660,7 +5660,7 @@ Results.data(), Results.size()); } -/// \brief When we have an expression with type "id", we may assume +/// When we have an expression with type "id", we may assume /// that it has some more-specific class type based on knowledge of /// common uses of Objective-C. This routine returns that class type, /// or NULL if no better result could be determined. @@ -5952,7 +5952,7 @@ /*IsSuper=*/true); } -/// \brief Given a set of code-completion results for the argument of a message +/// Given a set of code-completion results for the argument of a message /// send, determine the preferred type (if any) for that argument expression. static QualType getPreferredArgumentTypeForMessageSend(ResultBuilder &Results, unsigned NumSelIdents) { @@ -6334,7 +6334,7 @@ Results.data(), Results.size()); } -/// \brief Add all of the protocol declarations that we find in the given +/// Add all of the protocol declarations that we find in the given /// (translation unit) context. static void AddProtocolResults(DeclContext *Ctx, DeclContext *CurContext, bool OnlyForwardDeclarations, @@ -6399,7 +6399,7 @@ Results.data(),Results.size()); } -/// \brief Add all of the Objective-C interface declarations that we find in +/// Add all of the Objective-C interface declarations that we find in /// the given (translation unit) context. static void AddInterfaceResults(DeclContext *Ctx, DeclContext *CurContext, bool OnlyForwardDeclarations, @@ -6696,7 +6696,7 @@ typedef llvm::DenseMap< Selector, llvm::PointerIntPair<ObjCMethodDecl *, 1, bool> > KnownMethodsMap; -/// \brief Find all of the methods that reside in the given container +/// Find all of the methods that reside in the given container /// (and its superclasses, protocols, etc.) that meet the given /// criteria. Insert those methods into the map of known methods, /// indexed by selector so they can be easily found. @@ -6784,7 +6784,7 @@ } } -/// \brief Add the parenthesized return or parameter type chunk to a code +/// Add the parenthesized return or parameter type chunk to a code /// completion string. static void AddObjCPassingTypeChunk(QualType Type, unsigned ObjCDeclQuals, @@ -6800,7 +6800,7 @@ Builder.AddChunk(CodeCompletionString::CK_RightParen); } -/// \brief Determine whether the given class is or inherits from a class by +/// Determine whether the given class is or inherits from a class by /// the given name. static bool InheritsFromClassNamed(ObjCInterfaceDecl *Class, StringRef Name) { @@ -6813,7 +6813,7 @@ return InheritsFromClassNamed(Class->getSuperClass(), Name); } -/// \brief Add code completions for Objective-C Key-Value Coding (KVC) and +/// Add code completions for Objective-C Key-Value Coding (KVC) and /// Key-Value Observing (KVO). static void AddObjCKeyValueCompletions(ObjCPropertyDecl *Property, bool IsInstanceMethod, Index: cfe/trunk/lib/Sema/SemaCoroutine.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaCoroutine.cpp +++ cfe/trunk/lib/Sema/SemaCoroutine.cpp @@ -1438,7 +1438,7 @@ .get(); } -/// \brief Build a variable declaration for move parameter. +/// Build a variable declaration for move parameter. static VarDecl *buildVarDecl(Sema &S, SourceLocation Loc, QualType Type, IdentifierInfo *II) { TypeSourceInfo *TInfo = S.Context.getTrivialTypeSourceInfo(Type, Loc); Index: cfe/trunk/lib/Sema/SemaDecl.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaDecl.cpp +++ cfe/trunk/lib/Sema/SemaDecl.cpp @@ -115,7 +115,7 @@ } // end anonymous namespace -/// \brief Determine whether the token kind starts a simple-type-specifier. +/// Determine whether the token kind starts a simple-type-specifier. bool Sema::isSimpleTypeSpecifier(tok::TokenKind Kind) const { switch (Kind) { // FIXME: Take into account the current language when deciding whether a @@ -166,7 +166,7 @@ }; } // end anonymous namespace -/// \brief Tries to perform unqualified lookup of the type decls in bases for +/// Tries to perform unqualified lookup of the type decls in bases for /// dependent class. /// \return \a NotFound if no any decls is found, \a FoundNotType if found not a /// type decl, \a FoundType if only type decls are found. @@ -266,7 +266,7 @@ return S.CreateParsedType(T, Builder.getTypeSourceInfo(Context, T)); } -/// \brief If the identifier refers to a type name within this scope, +/// If the identifier refers to a type name within this scope, /// return the declaration of that type. /// /// This routine performs ordinary name lookup of the identifier II @@ -760,7 +760,7 @@ } } -/// \brief Determine whether the given result set contains either a type name +/// Determine whether the given result set contains either a type name /// or static bool isResultTypeOrTemplate(LookupResult &R, const Token &NextToken) { bool CheckTemplate = R.getSema().getLangOpts().CPlusPlus && @@ -1315,7 +1315,7 @@ assert(CurContext && "Popped translation unit!"); } -/// \brief Determine whether we allow overloading of the function +/// Determine whether we allow overloading of the function /// PrevDecl with another declaration. /// /// This routine determines whether overloading is possible, not @@ -1501,7 +1501,7 @@ F.done(); } -/// \brief Check for this common pattern: +/// Check for this common pattern: /// @code /// class S { /// S(const S&); // DO NOT IMPLEMENT @@ -1838,7 +1838,7 @@ } } -/// \brief Look for an Objective-C class in the translation unit. +/// Look for an Objective-C class in the translation unit. /// /// \param Id The name of the Objective-C class we're looking for. If /// typo-correction fixes this name, the Id will be updated @@ -1908,7 +1908,7 @@ return S; } -/// \brief Looks up the declaration of "struct objc_super" and +/// Looks up the declaration of "struct objc_super" and /// saves it for later use in building builtin declaration of /// objc_msgSendSuper and objc_msgSendSuper_stret. If no such /// pre-existing declaration exists no action takes place. @@ -2870,7 +2870,7 @@ template<typename T> static bool isExternC(T *D) { return D->isExternC(); } static bool isExternC(VarTemplateDecl *) { return false; } -/// \brief Check whether a redeclaration of an entity introduced by a +/// Check whether a redeclaration of an entity introduced by a /// using-declaration is valid, given that we know it's not an overload /// (nor a hidden tag declaration). template<typename ExpectedDecl> @@ -3563,7 +3563,7 @@ return true; } -/// \brief Completes the merge of two function declarations that are +/// Completes the merge of two function declarations that are /// known to be compatible. /// /// This routine handles the merging of attributes and other @@ -4938,7 +4938,7 @@ return GetNameFromUnqualifiedId(D.getName()); } -/// \brief Retrieves the declaration name from a parsed unqualified-id. +/// Retrieves the declaration name from a parsed unqualified-id. DeclarationNameInfo Sema::GetNameFromUnqualifiedId(const UnqualifiedId &Name) { DeclarationNameInfo NameInfo; @@ -5225,7 +5225,7 @@ return false; } -/// \brief Diagnose a declaration whose declarator-id has the given +/// Diagnose a declaration whose declarator-id has the given /// nested-name-specifier. /// /// \param SS The nested-name-specifier of the declarator-id. @@ -5663,7 +5663,7 @@ return FixedTInfo; } -/// \brief Register the given locally-scoped extern "C" declaration so +/// Register the given locally-scoped extern "C" declaration so /// that it can be found later for redeclarations. We include any extern "C" /// declaration that is not visible in the translation unit here, not just /// function-scope declarations. @@ -5684,7 +5684,7 @@ return Result.empty() ? nullptr : *Result.begin(); } -/// \brief Diagnose function specifiers on a declaration of an identifier that +/// Diagnose function specifiers on a declaration of an identifier that /// does not identify a function. void Sema::DiagnoseFunctionSpecifiers(const DeclSpec &DS) { // FIXME: We should probably indicate the identifier in question to avoid @@ -5826,7 +5826,7 @@ return NewTD; } -/// \brief Determines whether the given declaration is an out-of-scope +/// Determines whether the given declaration is an out-of-scope /// previous declaration. /// /// This routine should be invoked when name lookup has found a @@ -6251,7 +6251,7 @@ return true; } -/// \brief Returns true if given declaration has external C language linkage. +/// Returns true if given declaration has external C language linkage. static bool isDeclExternC(const Decl *D) { if (const auto *FD = dyn_cast<FunctionDecl>(D)) return FD->isExternC(); @@ -6958,7 +6958,7 @@ return !Diags.isIgnored(diag::warn_decl_shadow, R.getNameLoc()); } -/// \brief Return the declaration shadowed by the given variable \p D, or null +/// Return the declaration shadowed by the given variable \p D, or null /// if it doesn't shadow any declaration or shadowing warnings are disabled. NamedDecl *Sema::getShadowedDeclaration(const VarDecl *D, const LookupResult &R) { @@ -6975,7 +6975,7 @@ : nullptr; } -/// \brief Return the declaration shadowed by the given typedef \p D, or null +/// Return the declaration shadowed by the given typedef \p D, or null /// if it doesn't shadow any declaration or shadowing warnings are disabled. NamedDecl *Sema::getShadowedDeclaration(const TypedefNameDecl *D, const LookupResult &R) { @@ -6990,7 +6990,7 @@ return isa<TypedefNameDecl>(ShadowedDecl) ? ShadowedDecl : nullptr; } -/// \brief Diagnose variable or built-in function shadowing. Implements +/// Diagnose variable or built-in function shadowing. Implements /// -Wshadow. /// /// This method is called whenever a VarDecl is added to a "useful" @@ -7121,7 +7121,7 @@ } } -/// \brief Check -Wshadow without the advantage of a previous lookup. +/// Check -Wshadow without the advantage of a previous lookup. void Sema::CheckShadow(Scope *S, VarDecl *D) { if (Diags.isIgnored(diag::warn_decl_shadow, D->getLocation())) return; @@ -7491,7 +7491,7 @@ } } -/// \brief Perform semantic checking on a newly-created variable +/// Perform semantic checking on a newly-created variable /// declaration. /// /// This routine performs all of the type-checking required for a @@ -7562,7 +7562,7 @@ enum OverrideErrorKind { OEK_All, OEK_NonDeleted, OEK_Deleted }; } // end anonymous namespace -/// \brief Report an error regarding overriding, along with any relevant +/// Report an error regarding overriding, along with any relevant /// overridden methods. /// /// \param DiagID the primary error to report. @@ -7678,7 +7678,7 @@ TypoCorrectedFunctionDefinitions.insert(F); } -/// \brief Generate diagnostics for an invalid function redeclaration. +/// Generate diagnostics for an invalid function redeclaration. /// /// This routine handles generating the diagnostic messages for an invalid /// function redeclaration, including finding possible similar declarations @@ -9156,7 +9156,7 @@ return NewFD; } -/// \brief Checks if the new declaration declared in dependent context must be +/// Checks if the new declaration declared in dependent context must be /// put in the same redeclaration chain as the specified declaration. /// /// \param D Declaration that is checked. @@ -9182,7 +9182,7 @@ D->getFriendObjectKind() != Decl::FOK_None); } -/// \brief Check the target attribute of the function for MultiVersion +/// Check the target attribute of the function for MultiVersion /// validity. /// /// Returns true if there was an error, false otherwise. @@ -9333,7 +9333,7 @@ return false; } -/// \brief Check the validity of a mulitversion function declaration. +/// Check the validity of a mulitversion function declaration. /// Also sets the multiversion'ness' of the function itself. /// /// This sets NewFD->isInvalidDecl() to true if there was an error. @@ -9517,7 +9517,7 @@ return false; } -/// \brief Perform semantic checking of a new function declaration. +/// Perform semantic checking of a new function declaration. /// /// Performs semantic analysis of the new function declaration /// NewFD. This routine performs all semantic checking that does not @@ -11564,7 +11564,7 @@ Context.addModuleInitializer(ModuleScopes.back().Module, var); } -/// \brief Determines if a variable's alignment is dependent. +/// Determines if a variable's alignment is dependent. static bool hasDependentAlignment(VarDecl *VD) { if (VD->getType()->isDependentType()) return true; @@ -12081,7 +12081,7 @@ return New; } -/// \brief Synthesizes a variable for a parameter arising from a +/// Synthesizes a variable for a parameter arising from a /// typedef. ParmVarDecl *Sema::BuildParmVarDeclForTypedef(DeclContext *DC, SourceLocation Loc, @@ -12584,7 +12584,7 @@ return D; } -/// \brief Given the set of return statements within a function body, +/// Given the set of return statements within a function body, /// compute the variables that are subject to the named return value /// optimization. /// @@ -13089,7 +13089,7 @@ return FD; } -/// \brief Adds any function attributes that we know a priori based on +/// Adds any function attributes that we know a priori based on /// the declaration of this function. /// /// These attributes can apply both to implicitly-declared builtins @@ -13281,7 +13281,7 @@ return NewTD; } -/// \brief Check that this is a valid underlying type for an enum declaration. +/// Check that this is a valid underlying type for an enum declaration. bool Sema::CheckEnumUnderlyingType(TypeSourceInfo *TI) { SourceLocation UnderlyingLoc = TI->getTypeLoc().getBeginLoc(); QualType T = TI->getType(); @@ -13331,7 +13331,7 @@ return false; } -/// \brief Get diagnostic %select index for tag kind for +/// Get diagnostic %select index for tag kind for /// redeclaration diagnostic message. /// WARNING: Indexes apply to particular diagnostics only! /// @@ -13345,7 +13345,7 @@ } } -/// \brief Determine if tag kind is a class-key compatible with +/// Determine if tag kind is a class-key compatible with /// class for redeclaration (class, struct, or __interface). /// /// \returns true iff the tag kind is compatible. @@ -13379,7 +13379,7 @@ llvm_unreachable("invalid TTK"); } -/// \brief Determine whether a tag with a given kind is acceptable +/// Determine whether a tag with a given kind is acceptable /// as a redeclaration of the given tag declaration. /// /// \returns true if the new tag kind is acceptable, false otherwise. @@ -13515,7 +13515,7 @@ return FixItHint::CreateInsertion(NameLoc, Insertion); } -/// \brief Determine whether a tag originally declared in context \p OldDC can +/// Determine whether a tag originally declared in context \p OldDC can /// be redeclared with an unqualified name in \p NewDC (assuming name lookup /// found a declaration in \p OldDC as a previous decl, perhaps through a /// using-declaration). @@ -13536,7 +13536,7 @@ return false; } -/// \brief This is invoked when we see 'struct foo' or 'struct {'. In the +/// This is invoked when we see 'struct foo' or 'struct {'. In the /// former case, Name will be non-null. In the later case, Name will be null. /// TagSpec indicates what kind of tag this is. TUK indicates whether this is a /// reference/declaration/definition of a tag. @@ -14838,7 +14838,7 @@ return NewFD; } -/// \brief Build a new FieldDecl and check its well-formedness. +/// Build a new FieldDecl and check its well-formedness. /// /// This routine builds a new FieldDecl given the fields name, type, /// record, etc. \p PrevDecl should refer to any previous declaration @@ -15708,7 +15708,7 @@ ProcessDeclAttributeList(S, Record, Attr); } -/// \brief Determine whether the given integral value is representable within +/// Determine whether the given integral value is representable within /// the given type T. static bool isRepresentableIntegerValue(ASTContext &Context, llvm::APSInt &Value, @@ -15725,7 +15725,7 @@ return Value.getMinSignedBits() <= BitWidth; } -// \brief Given an integral type, return the next larger integral type +// Given an integral type, return the next larger integral type // (or a NULL type of no such type exists). static QualType getNextLargerIntegralType(ASTContext &Context, QualType T) { // FIXME: Int128/UInt128 support, which also needs to be introduced into Index: cfe/trunk/lib/Sema/SemaDeclAttr.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaDeclAttr.cpp +++ cfe/trunk/lib/Sema/SemaDeclAttr.cpp @@ -59,7 +59,7 @@ return (D->getFunctionType() != nullptr) || isa<ObjCMethodDecl>(D); } -/// \brief Return true if the given decl has function type (function or +/// Return true if the given decl has function type (function or /// function-typed variable) or an Objective-C method or a block. static bool isFunctionOrMethodOrBlock(const Decl *D) { return isFunctionOrMethod(D) || isa<BlockDecl>(D); @@ -189,7 +189,7 @@ return true; } -/// \brief Check if the attribute has exactly as many args as Num. May +/// Check if the attribute has exactly as many args as Num. May /// output an error. static bool checkAttributeNumArgs(Sema &S, const AttributeList &AL, unsigned Num) { @@ -198,7 +198,7 @@ std::not_equal_to<unsigned>()); } -/// \brief Check if the attribute has at least as many args as Num. May +/// Check if the attribute has at least as many args as Num. May /// output an error. static bool checkAttributeAtLeastNumArgs(Sema &S, const AttributeList &AL, unsigned Num) { @@ -207,7 +207,7 @@ std::less<unsigned>()); } -/// \brief Check if the attribute has at most as many args as Num. May +/// Check if the attribute has at most as many args as Num. May /// output an error. static bool checkAttributeAtMostNumArgs(Sema &S, const AttributeList &AL, unsigned Num) { @@ -216,7 +216,7 @@ std::greater<unsigned>()); } -/// \brief A helper function to provide Attribute Location for the Attr types +/// A helper function to provide Attribute Location for the Attr types /// AND the AttributeList. template <typename AttrInfo> static typename std::enable_if<std::is_base_of<Attr, AttrInfo>::value, @@ -228,7 +228,7 @@ return AL.getLoc(); } -/// \brief A helper function to provide Attribute Name for the Attr types +/// A helper function to provide Attribute Name for the Attr types /// AND the AttributeList. template <typename AttrInfo> static typename std::enable_if<std::is_base_of<Attr, AttrInfo>::value, @@ -240,7 +240,7 @@ return AL.getName(); } -/// \brief If Expr is a valid integer constant, get the value of the integer +/// If Expr is a valid integer constant, get the value of the integer /// expression and return success or failure. May output an error. template <typename AttrInfo> static bool checkUInt32Argument(Sema &S, const AttrInfo &AI, const Expr *Expr, @@ -269,7 +269,7 @@ return true; } -/// \brief Wrapper around checkUInt32Argument, with an extra check to be sure +/// Wrapper around checkUInt32Argument, with an extra check to be sure /// that the result will fit into a regular (signed) int. All args have the same /// purpose as they do in checkUInt32Argument. template <typename AttrInfo> @@ -291,7 +291,7 @@ return true; } -/// \brief Diagnose mutually exclusive attributes when present on a given +/// Diagnose mutually exclusive attributes when present on a given /// declaration. Returns true if diagnosed. template <typename AttrTy> static bool checkAttrMutualExclusion(Sema &S, Decl *D, SourceRange Range, @@ -305,7 +305,7 @@ return false; } -/// \brief Check if IdxExpr is a valid parameter index for a function or +/// Check if IdxExpr is a valid parameter index for a function or /// instance method D. May output an error. /// /// \returns true if IdxExpr is a valid index. @@ -351,7 +351,7 @@ return true; } -/// \brief Check if the argument \p ArgNum of \p Attr is a ASCII string literal. +/// Check if the argument \p ArgNum of \p Attr is a ASCII string literal. /// If not emit an error and return false. If the argument is an identifier it /// will emit an error with a fixit hint and treat it as if it was a string /// literal. @@ -387,7 +387,7 @@ return true; } -/// \brief Applies the given attribute to the Decl without performing any +/// Applies the given attribute to the Decl without performing any /// additional semantic checking. template <typename AttrType> static void handleSimpleAttribute(Sema &S, Decl *D, const AttributeList &AL) { @@ -401,7 +401,7 @@ handleSimpleAttribute<AttrType>(S, D, AL); } -/// \brief Applies the given attribute to the Decl so long as the Decl doesn't +/// Applies the given attribute to the Decl so long as the Decl doesn't /// already have one of the given incompatible attributes. template <typename AttrType, typename IncompatibleAttrType, typename... IncompatibleAttrTypes> @@ -414,7 +414,7 @@ AL); } -/// \brief Check if the passed-in expression is of type int or bool. +/// Check if the passed-in expression is of type int or bool. static bool isIntOrBool(Expr *Exp) { QualType QT = Exp->getType(); return QT->isBooleanType() || QT->isIntegerType(); @@ -437,7 +437,7 @@ return true; } -/// \brief Check if passed in Decl is a pointer type. +/// Check if passed in Decl is a pointer type. /// Note that this function may produce an error message. /// \return true if the Decl is a pointer type; false otherwise static bool threadSafetyCheckIsPointer(Sema &S, const Decl *D, @@ -463,7 +463,7 @@ return false; } -/// \brief Checks that the passed in QualType either is of RecordType or points +/// Checks that the passed in QualType either is of RecordType or points /// to RecordType. Returns the relevant RecordType, null if it does not exit. static const RecordType *getRecordType(QualType QT) { if (const auto *RT = QT->getAs<RecordType>()) @@ -555,7 +555,7 @@ return typeHasCapability(S, Ex->getType()); } -/// \brief Checks that all attribute arguments, starting from Sidx, resolve to +/// Checks that all attribute arguments, starting from Sidx, resolve to /// a capability object. /// \param Sidx The attribute argument index to start checking with. /// \param ParamIdxOk Whether an argument can be indexing into a function @@ -765,7 +765,7 @@ AL.getAttributeSpellingListIndex())); } -/// \brief Checks to be sure that the given parameter number is in bounds, and +/// Checks to be sure that the given parameter number is in bounds, and /// is an integral type. Will emit appropriate diagnostics if this returns /// false. /// @@ -2137,7 +2137,7 @@ return false; } -/// \brief Check whether the two versions match. +/// Check whether the two versions match. /// /// If either version tuple is empty, then they are assumed to match. If /// \p BeforeIsOkay is true, then \p X can be less than or equal to \p Y. @@ -6795,7 +6795,7 @@ } -/// \brief whether we should emit a diagnostic for \c K and \c DeclVersion in +/// whether we should emit a diagnostic for \c K and \c DeclVersion in /// the context of \c Ctx. For example, we should emit an unavailable diagnostic /// in a deprecated context, but not the other way around. static bool ShouldDiagnoseAvailabilityInContext(Sema &S, AvailabilityResult K, @@ -7362,7 +7362,7 @@ } }; -/// \brief This class implements -Wunguarded-availability. +/// This class implements -Wunguarded-availability. /// /// This is done with a traversal of the AST of a function that makes reference /// to a partially available declaration. Whenever we encounter an \c if of the Index: cfe/trunk/lib/Sema/SemaDeclCXX.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaDeclCXX.cpp +++ cfe/trunk/lib/Sema/SemaDeclCXX.cpp @@ -1457,7 +1457,7 @@ DD->setInvalidDecl(); } -/// \brief Merge the exception specifications of two variable declarations. +/// Merge the exception specifications of two variable declarations. /// /// This is called when there's a redeclaration of a VarDecl. The function /// checks if the redeclaration might have an exception specification and @@ -1573,7 +1573,7 @@ return true; } -/// \brief Get diagnostic %select index for tag kind for +/// Get diagnostic %select index for tag kind for /// record diagnostic message. /// WARNING: Indexes apply to particular diagnostics only! /// @@ -2079,7 +2079,7 @@ return false; } -/// \brief Determine whether the identifier II is a typo for the name of +/// Determine whether the identifier II is a typo for the name of /// the class type currently being defined. If so, update it to the identifier /// that should have been used. bool Sema::isCurrentClassNameTypo(IdentifierInfo *&II, const CXXScopeSpec *SS) { @@ -2105,7 +2105,7 @@ return false; } -/// \brief Determine whether the given class is a base class of the given +/// Determine whether the given class is a base class of the given /// class, including looking at dependent bases. static bool findCircularInheritance(const CXXRecordDecl *Class, const CXXRecordDecl *Current) { @@ -2137,7 +2137,7 @@ return false; } -/// \brief Check the validity of a C++ base class specifier. +/// Check the validity of a C++ base class specifier. /// /// \returns a new CXXBaseSpecifier if well-formed, emits diagnostics /// and returns NULL otherwise. @@ -2324,7 +2324,7 @@ /// locally, there's no need to abstract the small size parameter. typedef llvm::SmallPtrSet<QualType, 4> IndirectBaseSet; -/// \brief Recursively add the bases of Type. Don't add Type itself. +/// Recursively add the bases of Type. Don't add Type itself. static void NoteIndirectBases(ASTContext &Context, IndirectBaseSet &Set, const QualType &Type) @@ -2345,7 +2345,7 @@ } } -/// \brief Performs the actual work of attaching the given base class +/// Performs the actual work of attaching the given base class /// specifiers to a C++ class. bool Sema::AttachBaseSpecifiers(CXXRecordDecl *Class, MutableArrayRef<CXXBaseSpecifier *> Bases) { @@ -2464,7 +2464,7 @@ AttachBaseSpecifiers(cast<CXXRecordDecl>(ClassDecl), Bases); } -/// \brief Determine whether the type \p Derived is a C++ class that is +/// Determine whether the type \p Derived is a C++ class that is /// derived from the type \p Base. bool Sema::IsDerivedFrom(SourceLocation Loc, QualType Derived, QualType Base) { if (!getLangOpts().CPlusPlus) @@ -2491,7 +2491,7 @@ return DerivedRD->isDerivedFrom(BaseRD); } -/// \brief Determine whether the type \p Derived is a C++ class that is +/// Determine whether the type \p Derived is a C++ class that is /// derived from the type \p Base. bool Sema::IsDerivedFrom(SourceLocation Loc, QualType Derived, QualType Base, CXXBasePaths &Paths) { @@ -2643,7 +2643,7 @@ } -/// @brief Builds a string representing ambiguous paths from a +/// Builds a string representing ambiguous paths from a /// specific derived class to different subobjects of the same base /// class. /// @@ -3551,7 +3551,7 @@ } } // namespace -/// \brief Enter a new C++ default initializer scope. After calling this, the +/// Enter a new C++ default initializer scope. After calling this, the /// caller must call \ref ActOnFinishCXXInClassMemberInitializer, even if /// parsing or instantiating the initializer failed. void Sema::ActOnStartCXXInClassMemberInitializer() { @@ -3560,7 +3560,7 @@ PushFunctionScope(); } -/// \brief This is invoked after parsing an in-class initializer for a +/// This is invoked after parsing an in-class initializer for a /// non-static C++ class member, and after instantiating an in-class initializer /// in a class template. Such actions are deferred until the class is complete. void Sema::ActOnFinishCXXInClassMemberInitializer(Decl *D, @@ -3617,7 +3617,7 @@ FD->setInClassInitializer(InitExpr); } -/// \brief Find the direct and/or virtual base specifiers that +/// Find the direct and/or virtual base specifiers that /// correspond to the given base type, for use in base initialization /// within a constructor. static bool FindBaseInitializer(Sema &SemaRef, @@ -3661,7 +3661,7 @@ return DirectBaseSpec || VirtualBaseSpec; } -/// \brief Handle a C++ member initializer using braced-init-list syntax. +/// Handle a C++ member initializer using braced-init-list syntax. MemInitResult Sema::ActOnMemInitializer(Decl *ConstructorD, Scope *S, @@ -3677,7 +3677,7 @@ EllipsisLoc); } -/// \brief Handle a C++ member initializer using parentheses syntax. +/// Handle a C++ member initializer using parentheses syntax. MemInitResult Sema::ActOnMemInitializer(Decl *ConstructorD, Scope *S, @@ -3720,7 +3720,7 @@ } -/// \brief Handle a C++ member initializer. +/// Handle a C++ member initializer. MemInitResult Sema::BuildMemInitializer(Decl *ConstructorD, Scope *S, @@ -4548,7 +4548,7 @@ return !FieldRD->hasInClassInitializer(); } - /// \brief Determine whether the given field is, or is within, a union member + /// Determine whether the given field is, or is within, a union member /// that is inactive (because there was an initializer given for a different /// member of the union, or because the union was not initialized at all). bool isWithinInactiveUnionMember(FieldDecl *Field, @@ -4566,7 +4566,7 @@ }; } -/// \brief Determine whether the given type is an incomplete or zero-lenfgth +/// Determine whether the given type is an incomplete or zero-lenfgth /// array type. static bool isIncompleteOrZeroLengthArrayType(ASTContext &Context, QualType T) { if (T->isIncompleteArrayType()) @@ -5576,7 +5576,7 @@ } } -/// \brief Check class-level dllimport/dllexport attribute. +/// Check class-level dllimport/dllexport attribute. void Sema::checkClassLevelDLLAttribute(CXXRecordDecl *Class) { Attr *ClassAttr = getDLLAttr(Class); @@ -5707,7 +5707,7 @@ DelayedDllExportClasses.push_back(Class); } -/// \brief Perform propagation of DLL attributes from a derived class to a +/// Perform propagation of DLL attributes from a derived class to a /// templated base class for MS compatibility. void Sema::propagateDLLAttrToBaseClassTemplate( CXXRecordDecl *Class, Attr *ClassAttr, @@ -5916,7 +5916,7 @@ return RecordDecl::APK_CannotPassInRegs; } -/// \brief Perform semantic checks on a class definition that has been +/// Perform semantic checks on a class definition that has been /// completing, introducing implicitly-declared members, checking for /// abstract types, etc. void Sema::CheckCompletedCXXClass(CXXRecordDecl *Record) { @@ -7637,7 +7637,7 @@ }; } // end anonymous namespace -/// \brief Add the most overriden methods from MD to Methods +/// Add the most overriden methods from MD to Methods static void AddMostOverridenMethods(const CXXMethodDecl *MD, llvm::SmallPtrSetImpl<const CXXMethodDecl *>& Methods) { if (MD->size_overridden_methods() == 0) @@ -7647,7 +7647,7 @@ AddMostOverridenMethods(O, Methods); } -/// \brief Check if a method overloads virtual methods in a base class without +/// Check if a method overloads virtual methods in a base class without /// overriding any. void Sema::FindHiddenVirtualMethods(CXXMethodDecl *MD, SmallVectorImpl<CXXMethodDecl*> &OverloadedMethods) { @@ -7688,7 +7688,7 @@ } } -/// \brief Diagnose methods which overload virtual methods in a base class +/// Diagnose methods which overload virtual methods in a base class /// without overriding any. void Sema::DiagnoseHiddenVirtualMethods(CXXMethodDecl *MD) { if (MD->isInvalidDecl()) @@ -8656,7 +8656,7 @@ // Namespace Handling //===----------------------------------------------------------------------===// -/// \brief Diagnose a mismatch in 'inline' qualifiers when a namespace is +/// Diagnose a mismatch in 'inline' qualifiers when a namespace is /// reopened. static void DiagnoseNamespaceInlineMismatch(Sema &S, SourceLocation KeywordLoc, SourceLocation Loc, @@ -9022,7 +9022,7 @@ return Info->getType(); } -/// \brief Retrieve the special "std" namespace, which may require us to +/// Retrieve the special "std" namespace, which may require us to /// implicitly define the namespace. NamespaceDecl *Sema::getOrCreateStdNamespace() { if (!StdNamespace) { @@ -9165,7 +9165,7 @@ return isStdInitializerList(ArgType, nullptr); } -/// \brief Determine whether a using statement is in a context where it will be +/// Determine whether a using statement is in a context where it will be /// apply in all contexts. static bool IsUsingDirectiveInToplevelContext(DeclContext *CurContext) { switch (CurContext->getDeclKind()) { @@ -9405,7 +9405,7 @@ return UD; } -/// \brief Determine whether a using declaration considers the given +/// Determine whether a using declaration considers the given /// declarations as "equivalent", e.g., if they are redeclarations of /// the same entity or are both typedefs of the same type. static bool @@ -10727,7 +10727,7 @@ } } - /// \brief Are we already trying to declare this special member? + /// Are we already trying to declare this special member? bool isAlreadyBeingDeclared() const { return WasAlreadyBeingDeclared; } @@ -11135,7 +11135,7 @@ } } -/// \brief Perform any semantic analysis which needs to be delayed until all +/// Perform any semantic analysis which needs to be delayed until all /// pending class member declarations have been parsed. void Sema::ActOnFinishCXXMemberDecls() { // If the context is an invalid C++ class, just suppress these checks. @@ -11194,7 +11194,7 @@ } namespace { -/// \brief An abstract base class for all helper classes used in building the +/// An abstract base class for all helper classes used in building the // copy/move operators. These classes serve as factory functions and help us // avoid using the same Expr* in the AST twice. class ExprBuilder { @@ -11379,7 +11379,7 @@ return Call.getAs<Stmt>(); } -/// \brief Builds a statement that copies/moves the given entity from \p From to +/// Builds a statement that copies/moves the given entity from \p From to /// \c To. /// /// This routine is used to copy/move the members of a class with an @@ -12688,7 +12688,7 @@ } } -/// \brief Determine whether the given list arguments contains exactly one +/// Determine whether the given list arguments contains exactly one /// "real" (non-default) argument. static bool hasOneRealArgument(MultiExprArg Args) { switch (Args.size()) { @@ -12899,7 +12899,7 @@ Diag(VD->getLocation(), diag::warn_global_destructor); } -/// \brief Given a constructor and the set of arguments provided for the +/// Given a constructor and the set of arguments provided for the /// constructor, convert the arguments and add any required default arguments /// to form a proper call to this constructor. /// @@ -13500,7 +13500,7 @@ return ED; } -/// \brief Perform semantic analysis for the variable declaration that +/// Perform semantic analysis for the variable declaration that /// occurs within a C++ catch clause, returning the newly-created /// variable. VarDecl *Sema::BuildExceptionDeclaration(Scope *S, @@ -13756,7 +13756,7 @@ return Decl; } -/// \brief Perform semantic analysis of the given friend type declaration. +/// Perform semantic analysis of the given friend type declaration. /// /// \returns A friend declaration that. FriendDecl *Sema::CheckFriendTypeDecl(SourceLocation LocStart, @@ -14647,7 +14647,7 @@ return false; } -/// \brief Mark the given method pure. +/// Mark the given method pure. /// /// \param Method the method to be marked pure. /// @@ -14677,7 +14677,7 @@ Diag(D->getLocation(), diag::err_illegal_initializer); } -/// \brief Determine whether the given declaration is a global variable or +/// Determine whether the given declaration is a global variable or /// static data member. static bool isNonlocalVariable(const Decl *D) { if (const VarDecl *Var = dyn_cast_or_null<VarDecl>(D)) @@ -15098,7 +15098,7 @@ } namespace { - /// \brief AST visitor that finds references to the 'this' expression. + /// AST visitor that finds references to the 'this' expression. class FindCXXThisExpr : public RecursiveASTVisitor<FindCXXThisExpr> { Sema &S; Index: cfe/trunk/lib/Sema/SemaDeclObjC.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaDeclObjC.cpp +++ cfe/trunk/lib/Sema/SemaDeclObjC.cpp @@ -202,7 +202,7 @@ } } -/// \brief Check a method declaration for compatibility with the Objective-C +/// Check a method declaration for compatibility with the Objective-C /// ARC conventions. bool Sema::CheckARCMethodDecl(ObjCMethodDecl *method) { ObjCMethodFamily family = method->getMethodFamily(); @@ -3366,7 +3366,7 @@ Previous->setNext(new (Mem) ObjCMethodList(Method)); } -/// \brief Read the contents of the method pool for a given selector from +/// Read the contents of the method pool for a given selector from /// external storage. void Sema::ReadMethodPool(Selector Sel) { assert(ExternalSource && "We need an external AST source"); @@ -4105,7 +4105,7 @@ return (Decl::ObjCDeclQualifier) (unsigned) PQTVal; } -/// \brief Check whether the declared result type of the given Objective-C +/// Check whether the declared result type of the given Objective-C /// method declaration is compatible with the method's class. /// static Sema::ResultTypeCompatibilityKind @@ -4817,7 +4817,7 @@ } } -/// \brief Build a type-check a new Objective-C exception variable declaration. +/// Build a type-check a new Objective-C exception variable declaration. VarDecl *Sema::BuildObjCExceptionDecl(TypeSourceInfo *TInfo, QualType T, SourceLocation StartLoc, SourceLocation IdLoc, Index: cfe/trunk/lib/Sema/SemaExpr.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaExpr.cpp +++ cfe/trunk/lib/Sema/SemaExpr.cpp @@ -48,7 +48,7 @@ using namespace clang; using namespace sema; -/// \brief Determine whether the use of this declaration is valid, without +/// Determine whether the use of this declaration is valid, without /// emitting diagnostics. bool Sema::CanUseDecl(NamedDecl *D, bool TreatUnavailableAsInvalid) { // See if this is an auto-typed variable whose initializer we are parsing. @@ -89,7 +89,7 @@ } } -/// \brief Emit a note explaining that this function is deleted. +/// Emit a note explaining that this function is deleted. void Sema::NoteDeletedFunction(FunctionDecl *Decl) { assert(Decl->isDeleted()); @@ -117,7 +117,7 @@ << Decl << true; } -/// \brief Determine whether a FunctionDecl was ever declared with an +/// Determine whether a FunctionDecl was ever declared with an /// explicit storage class. static bool hasAnyExplicitStorageClass(const FunctionDecl *D) { for (auto I : D->redecls()) { @@ -127,7 +127,7 @@ return false; } -/// \brief Check whether we're in an extern inline function and referring to a +/// Check whether we're in an extern inline function and referring to a /// variable or function with internal linkage (C11 6.7.4p3). /// /// This is only a warning because we used to silently accept this code, but @@ -190,7 +190,7 @@ } } -/// \brief Determine whether the use of this declaration is valid, and +/// Determine whether the use of this declaration is valid, and /// emit any corresponding diagnostics. /// /// This routine diagnoses various problems with referencing @@ -300,7 +300,7 @@ return false; } -/// \brief Retrieve the message suffix that should be added to a +/// Retrieve the message suffix that should be added to a /// diagnostic complaining about the given function being deleted or /// unavailable. std::string Sema::getDeletedOrUnavailableSuffix(const FunctionDecl *FD) { @@ -917,7 +917,7 @@ return E; } -/// \brief Converts an integer to complex float type. Helper function of +/// Converts an integer to complex float type. Helper function of /// UsualArithmeticConversions() /// /// \return false if the integer expression is an integer type and is @@ -942,7 +942,7 @@ return false; } -/// \brief Handle arithmetic conversion with complex types. Helper function of +/// Handle arithmetic conversion with complex types. Helper function of /// UsualArithmeticConversions() static QualType handleComplexFloatConversion(Sema &S, ExprResult &LHS, ExprResult &RHS, QualType LHSType, @@ -998,7 +998,7 @@ return ResultType; } -/// \brief Handle arithmetic conversion from integer to float. Helper function +/// Handle arithmetic conversion from integer to float. Helper function /// of UsualArithmeticConversions() static QualType handleIntToFloatConversion(Sema &S, ExprResult &FloatExpr, ExprResult &IntExpr, @@ -1029,7 +1029,7 @@ return result; } -/// \brief Handle arithmethic conversion with floating point types. Helper +/// Handle arithmethic conversion with floating point types. Helper /// function of UsualArithmeticConversions() static QualType handleFloatConversion(Sema &S, ExprResult &LHS, ExprResult &RHS, QualType LHSType, @@ -1067,7 +1067,7 @@ /*convertFloat=*/!IsCompAssign); } -/// \brief Diagnose attempts to convert between __float128 and long double if +/// Diagnose attempts to convert between __float128 and long double if /// there is no support for such conversion. Helper function of /// UsualArithmeticConversions(). static bool unsupportedTypeConversion(const Sema &S, QualType LHSType, @@ -1123,7 +1123,7 @@ } } -/// \brief Handle integer arithmetic conversions. Helper function of +/// Handle integer arithmetic conversions. Helper function of /// UsualArithmeticConversions() template <PerformCastFn doLHSCast, PerformCastFn doRHSCast> static QualType handleIntegerConversion(Sema &S, ExprResult &LHS, @@ -1174,7 +1174,7 @@ } } -/// \brief Handle conversions with GCC complex int extension. Helper function +/// Handle conversions with GCC complex int extension. Helper function /// of UsualArithmeticConversions() static QualType handleComplexIntConversion(Sema &S, ExprResult &LHS, ExprResult &RHS, QualType LHSType, @@ -2484,7 +2484,7 @@ return ExprResult((Expr *)nullptr); } -/// \brief Cast a base object to a member's actual type. +/// Cast a base object to a member's actual type. /// /// Logically this happens in three phases: /// @@ -2766,7 +2766,7 @@ diagnoseUncapturableValueReference(Sema &S, SourceLocation loc, ValueDecl *var, DeclContext *DC); -/// \brief Complete semantic analysis for a reference to the given declaration. +/// Complete semantic analysis for a reference to the given declaration. ExprResult Sema::BuildDeclarationNameExpr( const CXXScopeSpec &SS, const DeclarationNameInfo &NameInfo, NamedDecl *D, NamedDecl *FoundD, const TemplateArgumentListInfo *TemplateArgs, @@ -3567,7 +3567,7 @@ return false; } -/// \brief Check whether E is a pointer from a decayed array type (the decayed +/// Check whether E is a pointer from a decayed array type (the decayed /// pointer type is equal to T) and emit a warning if it is. static void warnOnSizeofOnArrayDecay(Sema &S, SourceLocation Loc, QualType T, Expr *E) { @@ -3585,7 +3585,7 @@ << ICE->getSubExpr()->getType(); } -/// \brief Check the constraints on expression operands to unary type expression +/// Check the constraints on expression operands to unary type expression /// and type traits. /// /// Completes any types necessary and validates the constraints on the operand @@ -3669,7 +3669,7 @@ return false; } -/// \brief Check the constraints on operands to unary expression and type +/// Check the constraints on operands to unary expression and type /// traits. /// /// This will complete any types necessary, and validate the various constraints @@ -3923,7 +3923,7 @@ } while (!T.isNull() && T->isVariablyModifiedType()); } -/// \brief Build a sizeof or alignof expression given a type operand. +/// Build a sizeof or alignof expression given a type operand. ExprResult Sema::CreateUnaryExprOrTypeTraitExpr(TypeSourceInfo *TInfo, SourceLocation OpLoc, @@ -3967,7 +3967,7 @@ ExprKind, TInfo, Context.getSizeType(), OpLoc, R.getEnd()); } -/// \brief Build a sizeof or alignof expression given an expression +/// Build a sizeof or alignof expression given an expression /// operand. ExprResult Sema::CreateUnaryExprOrTypeTraitExpr(Expr *E, SourceLocation OpLoc, @@ -4085,7 +4085,7 @@ return BuildUnaryOp(S, OpLoc, Opc, Input); } -/// \brief Diagnose if arithmetic on the given ObjC pointer is illegal. +/// Diagnose if arithmetic on the given ObjC pointer is illegal. /// /// \return true on error static bool checkArithmeticOnObjCPointer(Sema &S, @@ -6261,7 +6261,7 @@ return expr; } -/// \brief Emit a specialized diagnostic when one expression is a null pointer +/// Emit a specialized diagnostic when one expression is a null pointer /// constant and the other is not a pointer. Returns true if a diagnostic is /// emitted. bool Sema::DiagnoseConditionalForNull(Expr *LHSExpr, Expr *RHSExpr, @@ -6302,7 +6302,7 @@ return true; } -/// \brief Return false if the condition expression is valid, true otherwise. +/// Return false if the condition expression is valid, true otherwise. static bool checkCondition(Sema &S, Expr *Cond, SourceLocation QuestionLoc) { QualType CondTy = Cond->getType(); @@ -6321,7 +6321,7 @@ return true; } -/// \brief Handle when one or both operands are void type. +/// Handle when one or both operands are void type. static QualType checkConditionalVoidType(Sema &S, ExprResult &LHS, ExprResult &RHS) { Expr *LHSExpr = LHS.get(); @@ -6338,7 +6338,7 @@ return S.Context.VoidTy; } -/// \brief Return false if the NullExpr can be promoted to PointerTy, +/// Return false if the NullExpr can be promoted to PointerTy, /// true otherwise. static bool checkConditionalNullPointer(Sema &S, ExprResult &NullExpr, QualType PointerTy) { @@ -6351,7 +6351,7 @@ return false; } -/// \brief Checks compatibility between two pointers and return the resulting +/// Checks compatibility between two pointers and return the resulting /// type. static QualType checkConditionalPointerCompatibility(Sema &S, ExprResult &LHS, ExprResult &RHS, @@ -6485,7 +6485,7 @@ return ResultTy; } -/// \brief Return the resulting type when the operands are both block pointers. +/// Return the resulting type when the operands are both block pointers. static QualType checkConditionalBlockPointerCompatibility(Sema &S, ExprResult &LHS, ExprResult &RHS, @@ -6510,7 +6510,7 @@ return checkConditionalPointerCompatibility(S, LHS, RHS, Loc); } -/// \brief Return the resulting type when the operands are both pointers. +/// Return the resulting type when the operands are both pointers. static QualType checkConditionalObjectPointersCompatibility(Sema &S, ExprResult &LHS, ExprResult &RHS, @@ -6549,7 +6549,7 @@ return checkConditionalPointerCompatibility(S, LHS, RHS, Loc); } -/// \brief Return false if the first expression is not an integer and the second +/// Return false if the first expression is not an integer and the second /// expression is not a pointer, true otherwise. static bool checkPointerIntegerMismatch(Sema &S, ExprResult &Int, Expr* PointerExpr, SourceLocation Loc, @@ -6569,7 +6569,7 @@ return true; } -/// \brief Simple conversion between integer and floating point types. +/// Simple conversion between integer and floating point types. /// /// Used when handling the OpenCL conditional operator where the /// condition is a vector while the other operands are scalar. @@ -6624,7 +6624,7 @@ (S, LHS, RHS, LHSType, RHSType, /*IsCompAssign = */ false); } -/// \brief Convert scalar operands to a vector that matches the +/// Convert scalar operands to a vector that matches the /// condition in length. /// /// Used when handling the OpenCL conditional operator where the @@ -6669,7 +6669,7 @@ return VectorTy; } -/// \brief Return false if this is a valid OpenCL condition vector +/// Return false if this is a valid OpenCL condition vector static bool checkOpenCLConditionVector(Sema &S, Expr *Cond, SourceLocation QuestionLoc) { // OpenCL v1.1 s6.11.6 says the elements of the vector must be of @@ -6684,7 +6684,7 @@ return true; } -/// \brief Return false if the vector condition type and the vector +/// Return false if the vector condition type and the vector /// result type are compatible. /// /// OpenCL v1.1 s6.11.6 requires that both vector types have the same @@ -6714,7 +6714,7 @@ return false; } -/// \brief Return the resulting type for the conditional operator in +/// Return the resulting type for the conditional operator in /// OpenCL (aka "ternary selection operator", OpenCL v1.1 /// s6.3.i) when the condition is a vector type. static QualType @@ -6749,7 +6749,7 @@ return OpenCLConvertScalarsToVectors(S, LHS, RHS, CondTy, QuestionLoc); } -/// \brief Return true if the Expr is block type +/// Return true if the Expr is block type static bool checkBlockType(Sema &S, const Expr *E) { if (const CallExpr *CE = dyn_cast<CallExpr>(E)) { QualType Ty = CE->getCallee()->getType(); @@ -7870,7 +7870,7 @@ return Incompatible; } -/// \brief Constructs a transparent union from an expression that is +/// Constructs a transparent union from an expression that is /// used to initialize the transparent union. static void ConstructTransparentUnion(Sema &S, ASTContext &C, ExprResult &EResult, QualType UnionType, @@ -8616,7 +8616,7 @@ return compType; } -/// \brief Diagnose invalid arithmetic on two void pointers. +/// Diagnose invalid arithmetic on two void pointers. static void diagnoseArithmeticOnTwoVoidPointers(Sema &S, SourceLocation Loc, Expr *LHSExpr, Expr *RHSExpr) { S.Diag(Loc, S.getLangOpts().CPlusPlus @@ -8626,7 +8626,7 @@ << RHSExpr->getSourceRange(); } -/// \brief Diagnose invalid arithmetic on a void pointer. +/// Diagnose invalid arithmetic on a void pointer. static void diagnoseArithmeticOnVoidPointer(Sema &S, SourceLocation Loc, Expr *Pointer) { S.Diag(Loc, S.getLangOpts().CPlusPlus @@ -8635,7 +8635,7 @@ << 0 /* one pointer */ << Pointer->getSourceRange(); } -/// \brief Diagnose invalid arithmetic on a null pointer. +/// Diagnose invalid arithmetic on a null pointer. /// /// If \p IsGNUIdiom is true, the operation is using the 'p = (i8*)nullptr + n' /// idiom, which we recognize as a GNU extension. @@ -8650,7 +8650,7 @@ << S.getLangOpts().CPlusPlus << Pointer->getSourceRange(); } -/// \brief Diagnose invalid arithmetic on two function pointers. +/// Diagnose invalid arithmetic on two function pointers. static void diagnoseArithmeticOnTwoFunctionPointers(Sema &S, SourceLocation Loc, Expr *LHS, Expr *RHS) { assert(LHS->getType()->isAnyPointerType()); @@ -8666,7 +8666,7 @@ << LHS->getSourceRange() << RHS->getSourceRange(); } -/// \brief Diagnose invalid arithmetic on a function pointer. +/// Diagnose invalid arithmetic on a function pointer. static void diagnoseArithmeticOnFunctionPointer(Sema &S, SourceLocation Loc, Expr *Pointer) { assert(Pointer->getType()->isAnyPointerType()); @@ -8678,7 +8678,7 @@ << Pointer->getSourceRange(); } -/// \brief Emit error if Operand is incomplete pointer type +/// Emit error if Operand is incomplete pointer type /// /// \returns True if pointer has incomplete type static bool checkArithmeticIncompletePointerType(Sema &S, SourceLocation Loc, @@ -8694,7 +8694,7 @@ PointeeTy, Operand->getSourceRange()); } -/// \brief Check the validity of an arithmetic pointer operand. +/// Check the validity of an arithmetic pointer operand. /// /// If the operand has pointer type, this code will check for pointer types /// which are invalid in arithmetic operations. These will be diagnosed @@ -8725,7 +8725,7 @@ return true; } -/// \brief Check the validity of a binary arithmetic operation w.r.t. pointer +/// Check the validity of a binary arithmetic operation w.r.t. pointer /// operands. /// /// This routine will diagnose any invalid arithmetic on pointer operands much @@ -8827,7 +8827,7 @@ Self.Diag(OpLoc, diag::note_string_plus_scalar_silence); } -/// \brief Emit a warning when adding a char literal to a string. +/// Emit a warning when adding a char literal to a string. static void diagnoseStringPlusChar(Sema &Self, SourceLocation OpLoc, Expr *LHSExpr, Expr *RHSExpr) { const Expr *StringRefExpr = LHSExpr; @@ -8878,7 +8878,7 @@ } } -/// \brief Emit error when two pointers are incompatible. +/// Emit error when two pointers are incompatible. static void diagnosePointerIncompatibility(Sema &S, SourceLocation Loc, Expr *LHSExpr, Expr *RHSExpr) { assert(LHSExpr->getType()->isAnyPointerType()); @@ -9176,7 +9176,7 @@ << RHS.get()->getSourceRange(); } -/// \brief Return the resulting type when a vector is shifted +/// Return the resulting type when a vector is shifted /// by a scalar or vector shift amount. static QualType checkVectorShift(Sema &S, ExprResult &LHS, ExprResult &RHS, SourceLocation Loc, bool IsCompAssign) { @@ -9351,7 +9351,7 @@ << LHS->getSourceRange() << RHS->getSourceRange(); } -/// \brief Diagnose bad pointer comparisons. +/// Diagnose bad pointer comparisons. static void diagnoseDistinctPointerComparison(Sema &S, SourceLocation Loc, ExprResult &LHS, ExprResult &RHS, bool IsError) { @@ -9361,7 +9361,7 @@ << LHS.get()->getSourceRange() << RHS.get()->getSourceRange(); } -/// \brief Returns false if the pointers are converted to a composite type, +/// Returns false if the pointers are converted to a composite type, /// true otherwise. static bool convertPointersToCompositeType(Sema &S, SourceLocation Loc, ExprResult &LHS, ExprResult &RHS) { @@ -11354,7 +11354,7 @@ AO_No_Error = 4 }; } -/// \brief Diagnose invalid operand for address of operations. +/// Diagnose invalid operand for address of operations. /// /// \param Type The type of operand which cannot have its address taken. static void diagnoseAddressOfInvalidType(Sema &S, SourceLocation Loc, @@ -12166,7 +12166,7 @@ ParensRange); } -/// \brief It accepts a '&&' expr that is inside a '||' one. +/// It accepts a '&&' expr that is inside a '||' one. /// Emit a diagnostic together with a fixit hint that wraps the '&&' expression /// in parentheses. static void @@ -12181,7 +12181,7 @@ Bop->getSourceRange()); } -/// \brief Returns true if the given expression can be evaluated as a constant +/// Returns true if the given expression can be evaluated as a constant /// 'true'. static bool EvaluatesAsTrue(Sema &S, Expr *E) { bool Res; @@ -12189,7 +12189,7 @@ E->EvaluateAsBooleanCondition(Res, S.getASTContext()) && Res; } -/// \brief Returns true if the given expression can be evaluated as a constant +/// Returns true if the given expression can be evaluated as a constant /// 'false'. static bool EvaluatesAsFalse(Sema &S, Expr *E) { bool Res; @@ -12197,7 +12197,7 @@ E->EvaluateAsBooleanCondition(Res, S.getASTContext()) && !Res; } -/// \brief Look for '&&' in the left hand of a '||' expr. +/// Look for '&&' in the left hand of a '||' expr. static void DiagnoseLogicalAndInLogicalOrLHS(Sema &S, SourceLocation OpLoc, Expr *LHSExpr, Expr *RHSExpr) { if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(LHSExpr)) { @@ -12219,7 +12219,7 @@ } } -/// \brief Look for '&&' in the right hand of a '||' expr. +/// Look for '&&' in the right hand of a '||' expr. static void DiagnoseLogicalAndInLogicalOrRHS(Sema &S, SourceLocation OpLoc, Expr *LHSExpr, Expr *RHSExpr) { if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(RHSExpr)) { @@ -12234,7 +12234,7 @@ } } -/// \brief Look for bitwise op in the left or right hand of a bitwise op with +/// Look for bitwise op in the left or right hand of a bitwise op with /// lower precedence and emit a diagnostic together with a fixit hint that wraps /// the '&' expression in parentheses. static void DiagnoseBitwiseOpInBitwiseOp(Sema &S, BinaryOperatorKind Opc, @@ -12702,7 +12702,7 @@ return UO; } -/// \brief Determine whether the given expression is a qualified member +/// Determine whether the given expression is a qualified member /// access expression, of a form that could be turned into a pointer to member /// with the address-of operator. static bool isQualifiedMemberAccess(Expr *E) { @@ -14195,7 +14195,7 @@ (Func->isImplicitlyInstantiable() || (MD && !MD->isUserProvided())); } -/// \brief Mark a function referenced, and check whether it is odr-used +/// Mark a function referenced, and check whether it is odr-used /// (C++ [basic.def.odr]p2, C99 6.9p3) void Sema::MarkFunctionReferenced(SourceLocation Loc, FunctionDecl *Func, bool MightBeOdrUse) { @@ -14672,7 +14672,7 @@ } -/// \brief Capture the given variable in the captured region. +/// Capture the given variable in the captured region. static bool captureInCapturedRegion(CapturedRegionScopeInfo *RSI, VarDecl *Var, SourceLocation Loc, @@ -14732,7 +14732,7 @@ return true; } -/// \brief Create a field within the lambda class for the variable +/// Create a field within the lambda class for the variable /// being captured. static void addAsFieldToClosureType(Sema &S, LambdaScopeInfo *LSI, QualType FieldType, QualType DeclRefType, @@ -14750,7 +14750,7 @@ Lambda->addDecl(Field); } -/// \brief Capture the given variable in the lambda. +/// Capture the given variable in the lambda. static bool captureInLambda(LambdaScopeInfo *LSI, VarDecl *Var, SourceLocation Loc, @@ -15284,7 +15284,7 @@ } } -/// \brief Mark a variable referenced, and check whether it is odr-used +/// Mark a variable referenced, and check whether it is odr-used /// (C++ [basic.def.odr]p2, C99 6.9p3). Note that this should not be /// used directly for normal expressions referring to VarDecl. void Sema::MarkVariableReferenced(SourceLocation Loc, VarDecl *Var) { @@ -15325,7 +15325,7 @@ SemaRef.MarkAnyDeclReferenced(Loc, DM, MightBeOdrUse); } -/// \brief Perform reference-marking and odr-use handling for a DeclRefExpr. +/// Perform reference-marking and odr-use handling for a DeclRefExpr. void Sema::MarkDeclRefReferenced(DeclRefExpr *E, const Expr *Base) { // TODO: update this with DR# once a defect report is filed. // C++11 defect. The address of a pure member should not be an ODR use, even @@ -15338,7 +15338,7 @@ MarkExprReferenced(*this, E->getLocation(), E->getDecl(), E, OdrUse); } -/// \brief Perform reference-marking and odr-use handling for a MemberExpr. +/// Perform reference-marking and odr-use handling for a MemberExpr. void Sema::MarkMemberReferenced(MemberExpr *E) { // C++11 [basic.def.odr]p2: // A non-overloaded function whose name appears as a potentially-evaluated @@ -15357,7 +15357,7 @@ MarkExprReferenced(*this, Loc, E->getMemberDecl(), E, MightBeOdrUse); } -/// \brief Perform marking for a reference to an arbitrary declaration. It +/// Perform marking for a reference to an arbitrary declaration. It /// marks the declaration referenced, and performs odr-use checking for /// functions and variables. This method should not be used when building a /// normal expression which refers to a variable. @@ -15420,7 +15420,7 @@ } namespace { - /// \brief Helper class that marks all of the declarations referenced by + /// Helper class that marks all of the declarations referenced by /// potentially-evaluated subexpressions as "referenced". class EvaluatedExprMarker : public EvaluatedExprVisitor<EvaluatedExprMarker> { Sema &S; @@ -15493,7 +15493,7 @@ }; } -/// \brief Mark any declarations that appear within this expression or any +/// Mark any declarations that appear within this expression or any /// potentially-evaluated subexpressions as "referenced". /// /// \param SkipLocalVariables If true, don't mark local variables as @@ -15503,7 +15503,7 @@ EvaluatedExprMarker(*this, SkipLocalVariables).Visit(E); } -/// \brief Emit a diagnostic that describes an effect on the run-time behavior +/// Emit a diagnostic that describes an effect on the run-time behavior /// of the program being compiled. /// /// This routine emits the given diagnostic when the code currently being @@ -15660,7 +15660,7 @@ << FixItHint::CreateReplacement(Loc, "=="); } -/// \brief Redundant parentheses over an equality comparison can indicate +/// Redundant parentheses over an equality comparison can indicate /// that the user intended an assignment used as condition. void Sema::DiagnoseEqualityWithExtraParens(ParenExpr *ParenE) { // Don't warn if the parens came from a macro. Index: cfe/trunk/lib/Sema/SemaExprCXX.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaExprCXX.cpp +++ cfe/trunk/lib/Sema/SemaExprCXX.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Implements semantic analysis for C++ expressions. +/// Implements semantic analysis for C++ expressions. /// //===----------------------------------------------------------------------===// @@ -42,7 +42,7 @@ using namespace clang; using namespace sema; -/// \brief Handle the result of the special case name lookup for inheriting +/// Handle the result of the special case name lookup for inheriting /// constructor declarations. 'NS::X::X' and 'NS::X<...>::X' are treated as /// constructor names in member using declarations, even if 'X' is not the /// name of the corresponding type. @@ -383,7 +383,7 @@ llvm_unreachable("unknown nested name specifier kind"); } -/// \brief Build a C++ typeid expression with a type operand. +/// Build a C++ typeid expression with a type operand. ExprResult Sema::BuildCXXTypeId(QualType TypeInfoType, SourceLocation TypeidLoc, TypeSourceInfo *Operand, @@ -408,7 +408,7 @@ SourceRange(TypeidLoc, RParenLoc)); } -/// \brief Build a C++ typeid expression with an expression operand. +/// Build a C++ typeid expression with an expression operand. ExprResult Sema::BuildCXXTypeId(QualType TypeInfoType, SourceLocation TypeidLoc, Expr *E, @@ -560,7 +560,7 @@ } } -/// \brief Build a Microsoft __uuidof expression with a type operand. +/// Build a Microsoft __uuidof expression with a type operand. ExprResult Sema::BuildCXXUuidof(QualType TypeInfoType, SourceLocation TypeidLoc, TypeSourceInfo *Operand, @@ -580,7 +580,7 @@ SourceRange(TypeidLoc, RParenLoc)); } -/// \brief Build a Microsoft __uuidof expression with an expression operand. +/// Build a Microsoft __uuidof expression with an expression operand. ExprResult Sema::BuildCXXUuidof(QualType TypeInfoType, SourceLocation TypeidLoc, Expr *E, @@ -1392,7 +1392,7 @@ return Result; } -/// \brief Determine whether the given function is a non-placement +/// Determine whether the given function is a non-placement /// deallocation function. static bool isNonPlacementDeallocationFunction(Sema &S, FunctionDecl *FD) { if (CXXMethodDecl *Method = dyn_cast<CXXMethodDecl>(FD)) @@ -1560,7 +1560,7 @@ return Best && Best.HasSizeT; } -/// \brief Parsed a C++ 'new' expression (C++ 5.3.4). +/// Parsed a C++ 'new' expression (C++ 5.3.4). /// /// E.g.: /// @code new (memory) int[size][4] @endcode @@ -2119,7 +2119,7 @@ Range, DirectInitRange); } -/// \brief Checks that a type is suitable as the allocated type +/// Checks that a type is suitable as the allocated type /// in a new-expression. bool Sema::CheckAllocatedType(QualType AllocType, SourceLocation Loc, SourceRange R) { @@ -2877,7 +2877,7 @@ } namespace { -/// \brief Checks whether delete-expression, and new-expression used for +/// Checks whether delete-expression, and new-expression used for /// initializing deletee have the same array form. class MismatchingNewDeleteDetector { public: @@ -2900,7 +2900,7 @@ : Field(nullptr), IsArrayForm(false), EndOfTU(EndOfTU), HasUndefinedConstructors(false) {} - /// \brief Checks whether pointee of a delete-expression is initialized with + /// Checks whether pointee of a delete-expression is initialized with /// matching form of new-expression. /// /// If return value is \c VarInitMismatches or \c MemberInitMismatches at the @@ -2911,7 +2911,7 @@ /// couldn't be analyzed. If at least one constructor initializes the member /// with matching type of new, the return value is \c NoMismatch. MismatchResult analyzeDeleteExpr(const CXXDeleteExpr *DE); - /// \brief Analyzes a class member. + /// Analyzes a class member. /// \param Field Class member to analyze. /// \param DeleteWasArrayForm Array form-ness of the delete-expression used /// for deleting the \p Field. @@ -2924,13 +2924,13 @@ private: const bool EndOfTU; - /// \brief Indicates that there is at least one constructor without body. + /// Indicates that there is at least one constructor without body. bool HasUndefinedConstructors; - /// \brief Returns \c CXXNewExpr from given initialization expression. + /// Returns \c CXXNewExpr from given initialization expression. /// \param E Expression used for initializing pointee in delete-expression. /// E can be a single-element \c InitListExpr consisting of new-expression. const CXXNewExpr *getNewExprFromInitListOrExpr(const Expr *E); - /// \brief Returns whether member is initialized with mismatching form of + /// Returns whether member is initialized with mismatching form of /// \c new either by the member initializer or in-class initialization. /// /// If bodies of all constructors are not visible at the end of translation @@ -2938,7 +2938,7 @@ /// form of \c new, mismatch cannot be proven, and this function will return /// \c NoMismatch. MismatchResult analyzeMemberExpr(const MemberExpr *ME); - /// \brief Returns whether variable is initialized with mismatching form of + /// Returns whether variable is initialized with mismatching form of /// \c new. /// /// If variable is initialized with matching form of \c new or variable is not @@ -2946,7 +2946,7 @@ /// If variable is initialized with mismatching form of \c new, returns false. /// \param D Variable to analyze. bool hasMatchingVarInit(const DeclRefExpr *D); - /// \brief Checks whether the constructor initializes pointee with mismatching + /// Checks whether the constructor initializes pointee with mismatching /// form of \c new. /// /// Returns true, if member is initialized with matching form of \c new in @@ -2955,7 +2955,7 @@ /// constructor isn't defined at the point where delete-expression is seen, or /// member isn't initialized by the constructor. bool hasMatchingNewInCtor(const CXXConstructorDecl *CD); - /// \brief Checks whether member is initialized with matching form of + /// Checks whether member is initialized with matching form of /// \c new in member initializer list. bool hasMatchingNewInCtorInit(const CXXCtorInitializer *CI); /// Checks whether member is initialized with mismatching form of \c new by @@ -3532,7 +3532,7 @@ CK == ConditionKind::ConstexprIf); } -/// \brief Check the use of the given variable as a C++ condition in an if, +/// Check the use of the given variable as a C++ condition in an if, /// while, do-while, or switch statement. ExprResult Sema::CheckConditionVariable(VarDecl *ConditionVar, SourceLocation StmtLoc, @@ -4231,7 +4231,7 @@ return From; } -/// \brief Check the completeness of a type in a unary type trait. +/// Check the completeness of a type in a unary type trait. /// /// If the particular type trait requires a complete type, tries to complete /// it. If completing the type fails, a diagnostic is emitted and false @@ -5433,7 +5433,7 @@ return Result; } -/// \brief Try to convert a type to another according to C++11 5.16p3. +/// Try to convert a type to another according to C++11 5.16p3. /// /// This is part of the parameter validation for the ? operator. If either /// value operand is a class type, the two operands are attempted to be @@ -5527,7 +5527,7 @@ return false; } -/// \brief Try to find a common type for two according to C++0x 5.16p5. +/// Try to find a common type for two according to C++0x 5.16p5. /// /// This is part of the parameter validation for the ? operator. If either /// value operand is a class type, overload resolution is used to find a @@ -5589,7 +5589,7 @@ return true; } -/// \brief Perform an "extended" implicit conversion as returned by +/// Perform an "extended" implicit conversion as returned by /// TryClassUnification. static bool ConvertForConditional(Sema &Self, ExprResult &E, QualType T) { InitializedEntity Entity = InitializedEntity::InitializeTemporary(T); @@ -5605,7 +5605,7 @@ return false; } -/// \brief Check the operands of ?: under C++ semantics. +/// Check the operands of ?: under C++ semantics. /// /// See C++ [expr.cond]. Note that LHS is never null, even for the GNU x ?: y /// extension. In this case, LHS == Cond. (But they're not aliases.) @@ -5967,7 +5967,7 @@ llvm_unreachable("invalid ExceptionSpecificationType"); } -/// \brief Find a merged pointer type and convert the two expressions to it. +/// Find a merged pointer type and convert the two expressions to it. /// /// This finds the composite pointer type (or member pointer type) for @p E1 /// and @p E2 according to C++1z 5p14. It converts both expressions to this @@ -6734,7 +6734,7 @@ return false; } -/// \brief Check if it's ok to try and recover dot pseudo destructor calls on +/// Check if it's ok to try and recover dot pseudo destructor calls on /// pointer objects. static bool canRecoverDotPseudoDestructorCallsOnPointerObjects(Sema &SemaRef, @@ -7285,7 +7285,7 @@ return !IsVariableAConstantExpression(Var, Context); } -/// \brief Check if the current lambda has any potential captures +/// Check if the current lambda has any potential captures /// that must be captured by any of its enclosing lambdas that are ready to /// capture. If there is a lambda that can capture a nested /// potential-capture, go ahead and do so. Also, check to see if any @@ -7465,7 +7465,7 @@ llvm::SmallDenseMap<TypoExpr *, ExprResult, 2> TransformCache; llvm::SmallDenseMap<OverloadExpr *, Expr *, 4> OverloadResolution; - /// \brief Emit diagnostics for all of the TypoExprs encountered. + /// Emit diagnostics for all of the TypoExprs encountered. /// If the TypoExprs were successfully corrected, then the diagnostics should /// suggest the corrections. Otherwise the diagnostics will not suggest /// anything (having been passed an empty TypoCorrection). @@ -7491,7 +7491,7 @@ } } - /// \brief If corrections for the first TypoExpr have been exhausted for a + /// If corrections for the first TypoExpr have been exhausted for a /// given combination of the other TypoExprs, retry those corrections against /// the next combination of substitutions for the other TypoExprs by advancing /// to the next potential correction of the second TypoExpr. For the second Index: cfe/trunk/lib/Sema/SemaExprMember.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaExprMember.cpp +++ cfe/trunk/lib/Sema/SemaExprMember.cpp @@ -888,7 +888,7 @@ NameInfo.getLoc()); } -/// \brief Build a MemberExpr AST node. +/// Build a MemberExpr AST node. static MemberExpr *BuildMemberExpr( Sema &SemaRef, ASTContext &C, Expr *Base, bool isArrow, SourceLocation OpLoc, const CXXScopeSpec &SS, SourceLocation TemplateKWLoc, @@ -903,7 +903,7 @@ return E; } -/// \brief Determine if the given scope is within a function-try-block handler. +/// Determine if the given scope is within a function-try-block handler. static bool IsInFnTryBlockHandler(const Scope *S) { // Walk the scope stack until finding a FnTryCatchScope, or leave the // function scope. If a FnTryCatchScope is found, check whether the TryScope Index: cfe/trunk/lib/Sema/SemaExprObjC.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaExprObjC.cpp +++ cfe/trunk/lib/Sema/SemaExprObjC.cpp @@ -141,7 +141,7 @@ return new (Context) ObjCStringLiteral(S, Ty, AtLoc); } -/// \brief Emits an error if the given method does not exist, or if the return +/// Emits an error if the given method does not exist, or if the return /// type is not an Objective-C object. static bool validateBoxingMethod(Sema &S, SourceLocation Loc, const ObjCInterfaceDecl *Class, @@ -165,7 +165,7 @@ return true; } -/// \brief Maps ObjCLiteralKind to NSClassIdKindKind +/// Maps ObjCLiteralKind to NSClassIdKindKind static NSAPI::NSClassIdKindKind ClassKindFromLiteralKind( Sema::ObjCLiteralKind LiteralKind) { switch (LiteralKind) { @@ -189,7 +189,7 @@ llvm_unreachable("LiteralKind can't be converted into a ClassKind"); } -/// \brief Validates ObjCInterfaceDecl availability. +/// Validates ObjCInterfaceDecl availability. /// ObjCInterfaceDecl, used to create ObjC literals, should be defined /// if clang not in a debugger mode. static bool ValidateObjCLiteralInterfaceDecl(Sema &S, ObjCInterfaceDecl *Decl, @@ -211,7 +211,7 @@ return true; } -/// \brief Looks up ObjCInterfaceDecl of a given NSClassIdKindKind. +/// Looks up ObjCInterfaceDecl of a given NSClassIdKindKind. /// Used to create ObjC literals, such as NSDictionary (@{}), /// NSArray (@[]) and Boxed Expressions (@()) static ObjCInterfaceDecl *LookupObjCInterfaceDeclForLiteral(Sema &S, @@ -236,7 +236,7 @@ return ID; } -/// \brief Retrieve the NSNumber factory method that should be used to create +/// Retrieve the NSNumber factory method that should be used to create /// an Objective-C literal for the given type. static ObjCMethodDecl *getNSNumberFactoryMethod(Sema &S, SourceLocation Loc, QualType NumberType, @@ -379,7 +379,7 @@ return BuildObjCNumericLiteral(AtLoc, Inner.get()); } -/// \brief Check that the given expression is a valid element of an Objective-C +/// Check that the given expression is a valid element of an Objective-C /// collection literal. static ExprResult CheckObjCCollectionLiteralElement(Sema &S, Expr *Element, QualType T, @@ -2324,7 +2324,7 @@ } } -/// \brief Diagnose use of %s directive in an NSString which is being passed +/// Diagnose use of %s directive in an NSString which is being passed /// as formatting string to formatting method. static void DiagnoseCStringFormatDirectiveInObjCAPI(Sema &S, @@ -2363,7 +2363,7 @@ } } -/// \brief Build an Objective-C class message expression. +/// Build an Objective-C class message expression. /// /// This routine takes care of both normal class messages and /// class messages to the superclass. @@ -2587,7 +2587,7 @@ return false; } -/// \brief Build an Objective-C instance message expression. +/// Build an Objective-C instance message expression. /// /// This routine takes care of both normal instance messages and /// instance messages to the superclass instance. Index: cfe/trunk/lib/Sema/SemaInit.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaInit.cpp +++ cfe/trunk/lib/Sema/SemaInit.cpp @@ -32,7 +32,7 @@ // Sema Initialization Checking //===----------------------------------------------------------------------===// -/// \brief Check whether T is compatible with a wide character type (wchar_t, +/// Check whether T is compatible with a wide character type (wchar_t, /// char16_t or char32_t). static bool IsWideCharCompatible(QualType T, ASTContext &Context) { if (Context.typesAreCompatible(Context.getWideCharType(), T)) @@ -54,7 +54,7 @@ SIF_Other }; -/// \brief Check whether the array of type AT can be initialized by the Init +/// Check whether the array of type AT can be initialized by the Init /// expression by means of string initialization. Returns SIF_None if so, /// otherwise returns a StringInitFailureKind that describes why the /// initialization would not work. @@ -217,7 +217,7 @@ namespace { -/// @brief Semantic checking for initializer lists. +/// Semantic checking for initializer lists. /// /// The InitListChecker class contains a set of routines that each /// handle the initialization of a certain kind of entity, e.g., @@ -377,7 +377,7 @@ bool TreatUnavailableAsInvalid); bool HadError() { return hadError; } - // @brief Retrieves the fully-structured initializer list used for + // Retrieves the fully-structured initializer list used for // semantic analysis and code generation. InitListExpr *getFullyStructuredList() const { return FullyStructuredList; } }; @@ -2025,7 +2025,7 @@ StructuredList, StructuredIndex); } -/// \brief Expand a field designator that refers to a member of an +/// Expand a field designator that refers to a member of an /// anonymous struct or union into a series of field designators that /// refers to the field within the appropriate subobject. /// @@ -2089,7 +2089,7 @@ } // end anonymous namespace -/// @brief Check the well-formedness of a C99 designated initializer. +/// Check the well-formedness of a C99 designated initializer. /// /// Determines whether the designated initializer @p DIE, which /// resides at the given @p Index within the initializer list @p @@ -3545,7 +3545,7 @@ InitializationSequence &Sequence, bool TreatUnavailableAsInvalid); -/// \brief When initializing from init list via constructor, handle +/// When initializing from init list via constructor, handle /// initialization of an object of type std::initializer_list<T>. /// /// \return true if we have handled initialization of an object of type @@ -3706,7 +3706,7 @@ return CandidateSet.BestViableFunction(S, DeclLoc, Best); } -/// \brief Attempt initialization by constructor (C++ [dcl.init]), which +/// Attempt initialization by constructor (C++ [dcl.init]), which /// enumerates the constructors of the initialized entity and performs overload /// resolution to select the best. /// \param DestType The destination class type. @@ -3923,7 +3923,7 @@ InitializationSequence &Sequence, InitListExpr *InitList = nullptr); -/// \brief Attempt list initialization of a reference. +/// Attempt list initialization of a reference. static void TryReferenceListInitialization(Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, @@ -3997,7 +3997,7 @@ } } -/// \brief Attempt list initialization (C++0x [dcl.init.list]) +/// Attempt list initialization (C++0x [dcl.init.list]) static void TryListInitialization(Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, @@ -4192,7 +4192,7 @@ Sequence.AddListInitializationStep(DestType); } -/// \brief Try a reference initialization that involves calling a conversion +/// Try a reference initialization that involves calling a conversion /// function. static OverloadingResult TryRefInitWithConversionFunction( Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, @@ -4382,7 +4382,7 @@ const InitializedEntity &Entity, Expr *CurInitExpr); -/// \brief Attempt reference initialization (C++0x [dcl.init.ref]) +/// Attempt reference initialization (C++0x [dcl.init.ref]) static void TryReferenceInitialization(Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, @@ -4415,7 +4415,7 @@ return E->refersToBitField() || E->refersToVectorElement(); } -/// \brief Reference initialization without resolving overloaded functions. +/// Reference initialization without resolving overloaded functions. static void TryReferenceInitializationCore(Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, @@ -4675,7 +4675,7 @@ Sequence.AddReferenceBindingStep(cv1T1, /*bindingTemporary=*/true); } -/// \brief Attempt character array initialization from a string literal +/// Attempt character array initialization from a string literal /// (C++ [dcl.init.string], C99 6.7.8). static void TryStringLiteralInitialization(Sema &S, const InitializedEntity &Entity, @@ -4685,7 +4685,7 @@ Sequence.AddStringInitStep(Entity.getType()); } -/// \brief Attempt value initialization (C++ [dcl.init]p7). +/// Attempt value initialization (C++ [dcl.init]p7). static void TryValueInitialization(Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, @@ -4763,7 +4763,7 @@ Sequence.AddZeroInitializationStep(Entity.getType()); } -/// \brief Attempt default initialization (C++ [dcl.init]p6). +/// Attempt default initialization (C++ [dcl.init]p6). static void TryDefaultInitialization(Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, @@ -4802,7 +4802,7 @@ } } -/// \brief Attempt a user-defined conversion between two types (C++ [dcl.init]), +/// Attempt a user-defined conversion between two types (C++ [dcl.init]), /// which enumerates all conversion functions and performs overload resolution /// to select the best. static void TryUserDefinedConversion(Sema &S, @@ -5081,7 +5081,7 @@ << src->getSourceRange(); } -/// \brief Determine whether we have compatible array types for the +/// Determine whether we have compatible array types for the /// purposes of GNU by-copy array initialization. static bool hasCompatibleArrayTypes(ASTContext &Context, const ArrayType *Dest, const ArrayType *Source) { @@ -5648,7 +5648,7 @@ llvm_unreachable("Invalid EntityKind!"); } -/// \brief Whether we should bind a created object as a temporary when +/// Whether we should bind a created object as a temporary when /// initializing the given entity. static bool shouldBindAsTemporary(const InitializedEntity &Entity) { switch (Entity.getKind()) { @@ -5679,7 +5679,7 @@ llvm_unreachable("missed an InitializedEntity kind?"); } -/// \brief Whether the given entity, when initialized with an object +/// Whether the given entity, when initialized with an object /// created for that initialization, requires destruction. static bool shouldDestroyEntity(const InitializedEntity &Entity) { switch (Entity.getKind()) { @@ -5710,7 +5710,7 @@ llvm_unreachable("missed an InitializedEntity kind?"); } -/// \brief Get the location at which initialization diagnostics should appear. +/// Get the location at which initialization diagnostics should appear. static SourceLocation getInitializationLoc(const InitializedEntity &Entity, Expr *Initializer) { switch (Entity.getKind()) { @@ -5746,7 +5746,7 @@ llvm_unreachable("missed an InitializedEntity kind?"); } -/// \brief Make a (potentially elidable) temporary copy of the object +/// Make a (potentially elidable) temporary copy of the object /// provided by the given initializer by calling the appropriate copy /// constructor. /// @@ -5911,7 +5911,7 @@ return CurInit; } -/// \brief Check whether elidable copy construction for binding a reference to +/// Check whether elidable copy construction for binding a reference to /// a temporary would have succeeded if we were building in C++98 mode, for /// -Wc++98-compat. static void CheckCXX98CompatAccessibleCopy(Sema &S, Index: cfe/trunk/lib/Sema/SemaLambda.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaLambda.cpp +++ cfe/trunk/lib/Sema/SemaLambda.cpp @@ -24,7 +24,7 @@ using namespace clang; using namespace sema; -/// \brief Examines the FunctionScopeInfo stack to determine the nearest +/// Examines the FunctionScopeInfo stack to determine the nearest /// enclosing lambda (to the current lambda) that is 'capture-ready' for /// the variable referenced in the current lambda (i.e. \p VarToCapture). /// If successful, returns the index into Sema's FunctionScopeInfo stack @@ -135,7 +135,7 @@ return NoLambdaIsCaptureReady; } -/// \brief Examines the FunctionScopeInfo stack to determine the nearest +/// Examines the FunctionScopeInfo stack to determine the nearest /// enclosing lambda (to the current lambda) that is 'capture-capable' for /// the variable referenced in the current lambda (i.e. \p VarToCapture). /// If successful, returns the index into Sema's FunctionScopeInfo stack @@ -263,7 +263,7 @@ return Class; } -/// \brief Determine whether the given context is or is enclosed in an inline +/// Determine whether the given context is or is enclosed in an inline /// function. static bool isInInlineFunction(const DeclContext *DC) { while (!DC->isFileContext()) { @@ -1189,7 +1189,7 @@ CallOpProto->getParamTypes(), InvokerExtInfo); } -/// \brief Add a lambda's conversion to function pointer, as described in +/// Add a lambda's conversion to function pointer, as described in /// C++11 [expr.prim.lambda]p6. static void addFunctionPointerConversion(Sema &S, SourceRange IntroducerRange, @@ -1358,7 +1358,7 @@ Class->addDecl(Invoke); } -/// \brief Add a lambda's conversion to block pointer. +/// Add a lambda's conversion to block pointer. static void addBlockPointerConversion(Sema &S, SourceRange IntroducerRange, CXXRecordDecl *Class, Index: cfe/trunk/lib/Sema/SemaLookup.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaLookup.cpp +++ cfe/trunk/lib/Sema/SemaLookup.cpp @@ -356,7 +356,7 @@ return D->getDeclContext()->getRedeclContext(); } -/// \brief Determine whether \p D is a better lookup result than \p Existing, +/// Determine whether \p D is a better lookup result than \p Existing, /// given that they declare the same entity. static bool isPreferredLookupResult(Sema &S, Sema::LookupNameKind Kind, NamedDecl *D, NamedDecl *Existing) { @@ -669,7 +669,7 @@ D->dump(); } -/// \brief Lookup a builtin function, when name lookup would otherwise +/// Lookup a builtin function, when name lookup would otherwise /// fail. static bool LookupBuiltin(Sema &S, LookupResult &R) { Sema::LookupNameKind NameKind = R.getLookupKind(); @@ -713,7 +713,7 @@ return false; } -/// \brief Determine whether we can declare a special member function within +/// Determine whether we can declare a special member function within /// the class at this point. static bool CanDeclareSpecialMemberFunction(const CXXRecordDecl *Class) { // We need to have a definition for the class. @@ -755,7 +755,7 @@ DeclareImplicitDestructor(Class); } -/// \brief Determine whether this is the name of an implicitly-declared +/// Determine whether this is the name of an implicitly-declared /// special member function. static bool isImplicitlyDeclaredMemberFunctionName(DeclarationName Name) { switch (Name.getNameKind()) { @@ -773,7 +773,7 @@ return false; } -/// \brief If there are any implicit member functions with the given name +/// If there are any implicit member functions with the given name /// that need to be declared in the given declaration context, do so. static void DeclareImplicitMemberFunctionsWithName(Sema &S, DeclarationName Name, @@ -1354,7 +1354,7 @@ makeMergedDefinitionVisible(Param); } -/// \brief Find the module in which the given declaration was defined. +/// Find the module in which the given declaration was defined. static Module *getDefiningModule(Sema &S, Decl *Entity) { if (FunctionDecl *FD = dyn_cast<FunctionDecl>(Entity)) { // If this function was instantiated from a template, the defining module is @@ -1501,7 +1501,7 @@ return false; } -/// \brief Determine whether a declaration is visible to name lookup. +/// Determine whether a declaration is visible to name lookup. /// /// This routine determines whether the declaration D is visible in the current /// lookup context, taking into account the current template instantiation @@ -1648,7 +1648,7 @@ return New->isExternallyDeclarable(); } -/// \brief Retrieve the visible declaration corresponding to D, if any. +/// Retrieve the visible declaration corresponding to D, if any. /// /// This routine determines whether the declaration D is visible in the current /// module, with the current imports. If not, it checks whether any @@ -1706,7 +1706,7 @@ return findAcceptableDecl(getSema(), D, IDNS); } -/// @brief Perform unqualified name lookup starting from a given +/// Perform unqualified name lookup starting from a given /// scope. /// /// Unqualified name lookup (C++ [basic.lookup.unqual], C99 6.2.1) is @@ -1844,7 +1844,7 @@ return (ExternalSource && ExternalSource->LookupUnqualified(R, S)); } -/// @brief Perform qualified name lookup in the namespaces nominated by +/// Perform qualified name lookup in the namespaces nominated by /// using directives by the given context. /// /// C++98 [namespace.qual]p2: @@ -1950,7 +1950,7 @@ return Found; } -/// \brief Callback that looks for any member of a class with the given name. +/// Callback that looks for any member of a class with the given name. static bool LookupAnyMember(const CXXBaseSpecifier *Specifier, CXXBasePath &Path, DeclarationName Name) { RecordDecl *BaseRecord = Specifier->getType()->getAs<RecordType>()->getDecl(); @@ -1959,7 +1959,7 @@ return !Path.Decls.empty(); } -/// \brief Determine whether the given set of member declarations contains only +/// Determine whether the given set of member declarations contains only /// static members, nested types, and enumerators. template<typename InputIterator> static bool HasOnlyStaticMembers(InputIterator First, InputIterator Last) { @@ -1991,7 +1991,7 @@ return false; } -/// \brief Perform qualified name lookup into a given context. +/// Perform qualified name lookup into a given context. /// /// Qualified name lookup (C++ [basic.lookup.qual]) is used to find /// names when the context of those names is explicit specified, e.g., @@ -2215,7 +2215,7 @@ return true; } -/// \brief Performs qualified name lookup or special type of lookup for +/// Performs qualified name lookup or special type of lookup for /// "__super::" scope specifier. /// /// This routine is a convenience overload meant to be called from contexts @@ -2240,7 +2240,7 @@ return LookupQualifiedName(R, LookupCtx); } -/// @brief Performs name lookup for a name that was parsed in the +/// Performs name lookup for a name that was parsed in the /// source code, and may contain a C++ scope specifier. /// /// This routine is a convenience routine meant to be called from @@ -2294,7 +2294,7 @@ return LookupName(R, S, AllowBuiltinCreation); } -/// \brief Perform qualified name lookup into all base classes of the given +/// Perform qualified name lookup into all base classes of the given /// class. /// /// \param R captures both the lookup criteria and any lookup results found. @@ -2332,7 +2332,7 @@ return !R.empty(); } -/// \brief Produce a diagnostic describing the ambiguity that resulted +/// Produce a diagnostic describing the ambiguity that resulted /// from name lookup. /// /// \param Result The result of the ambiguous lookup to be diagnosed. @@ -2448,7 +2448,7 @@ Namespaces.insert(Ctx->getPrimaryContext()); } -// \brief Add the associated classes and namespaces for argument-dependent +// Add the associated classes and namespaces for argument-dependent // lookup that involves a template argument (C++ [basic.lookup.koenig]p2). static void addAssociatedClassesAndNamespaces(AssociatedLookup &Result, @@ -2498,7 +2498,7 @@ } } -// \brief Add the associated classes and namespaces for +// Add the associated classes and namespaces for // argument-dependent lookup with an argument of class type // (C++ [basic.lookup.koenig]p2). static void @@ -2593,7 +2593,7 @@ } } -// \brief Add the associated classes and namespaces for +// Add the associated classes and namespaces for // argument-dependent lookup with an argument of type T // (C++ [basic.lookup.koenig]p2). static void @@ -2757,7 +2757,7 @@ } } -/// \brief Find the associated classes and namespaces for +/// Find the associated classes and namespaces for /// argument-dependent lookup for a call with the given set of /// arguments. /// @@ -2824,7 +2824,7 @@ return R.getAsSingle<NamedDecl>(); } -/// \brief Find the protocol with the given name, if any. +/// Find the protocol with the given name, if any. ObjCProtocolDecl *Sema::LookupProtocol(IdentifierInfo *II, SourceLocation IdLoc, RedeclarationKind Redecl) { @@ -3051,7 +3051,7 @@ return *Result; } -/// \brief Look up the default constructor for the given class. +/// Look up the default constructor for the given class. CXXConstructorDecl *Sema::LookupDefaultConstructor(CXXRecordDecl *Class) { SpecialMemberOverloadResult Result = LookupSpecialMember(Class, CXXDefaultConstructor, false, false, false, @@ -3060,7 +3060,7 @@ return cast_or_null<CXXConstructorDecl>(Result.getMethod()); } -/// \brief Look up the copying constructor for the given class. +/// Look up the copying constructor for the given class. CXXConstructorDecl *Sema::LookupCopyingConstructor(CXXRecordDecl *Class, unsigned Quals) { assert(!(Quals & ~(Qualifiers::Const | Qualifiers::Volatile)) && @@ -3072,7 +3072,7 @@ return cast_or_null<CXXConstructorDecl>(Result.getMethod()); } -/// \brief Look up the moving constructor for the given class. +/// Look up the moving constructor for the given class. CXXConstructorDecl *Sema::LookupMovingConstructor(CXXRecordDecl *Class, unsigned Quals) { SpecialMemberOverloadResult Result = @@ -3082,7 +3082,7 @@ return cast_or_null<CXXConstructorDecl>(Result.getMethod()); } -/// \brief Look up the constructors for the given class. +/// Look up the constructors for the given class. DeclContext::lookup_result Sema::LookupConstructors(CXXRecordDecl *Class) { // If the implicit constructors have not yet been declared, do so now. if (CanDeclareSpecialMemberFunction(Class)) { @@ -3099,7 +3099,7 @@ return Class->lookup(Name); } -/// \brief Look up the copying assignment operator for the given class. +/// Look up the copying assignment operator for the given class. CXXMethodDecl *Sema::LookupCopyingAssignment(CXXRecordDecl *Class, unsigned Quals, bool RValueThis, unsigned ThisQuals) { @@ -3116,7 +3116,7 @@ return Result.getMethod(); } -/// \brief Look up the moving assignment operator for the given class. +/// Look up the moving assignment operator for the given class. CXXMethodDecl *Sema::LookupMovingAssignment(CXXRecordDecl *Class, unsigned Quals, bool RValueThis, @@ -3132,7 +3132,7 @@ return Result.getMethod(); } -/// \brief Look for the destructor of the given class. +/// Look for the destructor of the given class. /// /// During semantic analysis, this routine should be used in lieu of /// CXXRecordDecl::getDestructor(). @@ -3389,26 +3389,26 @@ class VisibleDeclsRecord { public: - /// \brief An entry in the shadow map, which is optimized to store a + /// An entry in the shadow map, which is optimized to store a /// single declaration (the common case) but can also store a list /// of declarations. typedef llvm::TinyPtrVector<NamedDecl*> ShadowMapEntry; private: - /// \brief A mapping from declaration names to the declarations that have + /// A mapping from declaration names to the declarations that have /// this name within a particular scope. typedef llvm::DenseMap<DeclarationName, ShadowMapEntry> ShadowMap; - /// \brief A list of shadow maps, which is used to model name hiding. + /// A list of shadow maps, which is used to model name hiding. std::list<ShadowMap> ShadowMaps; - /// \brief The declaration contexts we have already visited. + /// The declaration contexts we have already visited. llvm::SmallPtrSet<DeclContext *, 8> VisitedContexts; friend class ShadowContextRAII; public: - /// \brief Determine whether we have already visited this context + /// Determine whether we have already visited this context /// (and, if not, note that we are going to visit that context now). bool visitedContext(DeclContext *Ctx) { return !VisitedContexts.insert(Ctx).second; @@ -3418,20 +3418,20 @@ return VisitedContexts.count(Ctx); } - /// \brief Determine whether the given declaration is hidden in the + /// Determine whether the given declaration is hidden in the /// current scope. /// /// \returns the declaration that hides the given declaration, or /// NULL if no such declaration exists. NamedDecl *checkHidden(NamedDecl *ND); - /// \brief Add a declaration to the current shadow map. + /// Add a declaration to the current shadow map. void add(NamedDecl *ND) { ShadowMaps.back()[ND->getDeclName()].push_back(ND); } }; -/// \brief RAII object that records when we've entered a shadow context. +/// RAII object that records when we've entered a shadow context. class ShadowContextRAII { VisibleDeclsRecord &Visible; @@ -3868,7 +3868,7 @@ bool isObjCIvarLookup, bool FindHidden); -/// \brief Check whether the declarations found for a typo correction are +/// Check whether the declarations found for a typo correction are /// visible. Set the correction's RequiresImport flag to true if none of the /// declarations are visible, false otherwise. static void checkCorrectionVisibility(Sema &SemaRef, TypoCorrection &TC) { @@ -4354,7 +4354,7 @@ DistanceMap[NumSpecifiers].push_back(SI); } -/// \brief Perform name lookup for a possible result for typo correction. +/// Perform name lookup for a possible result for typo correction. static void LookupPotentialTypoResult(Sema &SemaRef, LookupResult &Res, IdentifierInfo *Name, @@ -4408,7 +4408,7 @@ } } -/// \brief Add keywords to the consumer as possible typo corrections. +/// Add keywords to the consumer as possible typo corrections. static void AddKeywordsToConsumer(Sema &SemaRef, TypoCorrectionConsumer &Consumer, Scope *S, CorrectionCandidateCallback &CCC, @@ -4699,7 +4699,7 @@ return Consumer; } -/// \brief Try to "correct" a typo in the source code by finding +/// Try to "correct" a typo in the source code by finding /// visible declarations whose names are similar to the name that was /// present in the source code. /// @@ -4828,7 +4828,7 @@ return FailedCorrection(Typo, TypoName.getLoc(), RecordFailure && !SecondBestTC); } -/// \brief Try to "correct" a typo in the source code by finding +/// Try to "correct" a typo in the source code by finding /// visible declarations whose names are similar to the name that was /// present in the source code. /// @@ -5065,7 +5065,7 @@ Recover); } -/// \brief Get a "quoted.h" or <angled.h> include path to use in a diagnostic +/// Get a "quoted.h" or <angled.h> include path to use in a diagnostic /// suggesting the addition of a #include of the specified file. static std::string getIncludeStringForHeader(Preprocessor &PP, const FileEntry *E) { @@ -5144,7 +5144,7 @@ createImplicitModuleImportForErrorRecovery(UseLoc, Modules[0]); } -/// \brief Diagnose a successfully-corrected typo. Separated from the correction +/// Diagnose a successfully-corrected typo. Separated from the correction /// itself to allow external validation of the result, etc. /// /// \param Correction The result of performing typo correction. Index: cfe/trunk/lib/Sema/SemaObjCProperty.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaObjCProperty.cpp +++ cfe/trunk/lib/Sema/SemaObjCProperty.cpp @@ -104,7 +104,7 @@ << propertyLifetime; } -/// \brief Check this Objective-C property against a property declared in the +/// Check this Objective-C property against a property declared in the /// given protocol. static void CheckPropertyAgainstProtocol(Sema &S, ObjCPropertyDecl *Prop, @@ -1829,7 +1829,7 @@ return false; } -/// \brief Default synthesizes all properties which must be synthesized +/// Default synthesizes all properties which must be synthesized /// in class's \@implementation. void Sema::DefaultSynthesizeProperties(Scope *S, ObjCImplDecl *IMPDecl, ObjCInterfaceDecl *IDecl, Index: cfe/trunk/lib/Sema/SemaOpenMP.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaOpenMP.cpp +++ cfe/trunk/lib/Sema/SemaOpenMP.cpp @@ -7,7 +7,7 @@ // //===----------------------------------------------------------------------===// /// \file -/// \brief This file implements semantic analysis for OpenMP directives and +/// This file implements semantic analysis for OpenMP directives and /// clauses. /// //===----------------------------------------------------------------------===// @@ -41,11 +41,11 @@ OpenMPClauseKind CKind, bool NoDiagnose); namespace { -/// \brief Default data sharing attributes, which can be applied to directive. +/// Default data sharing attributes, which can be applied to directive. enum DefaultDataSharingAttributes { - DSA_unspecified = 0, /// \brief Data sharing attribute not specified. - DSA_none = 1 << 0, /// \brief Default data sharing attribute 'none'. - DSA_shared = 1 << 1, /// \brief Default data sharing attribute 'shared'. + DSA_unspecified = 0, /// Data sharing attribute not specified. + DSA_none = 1 << 0, /// Default data sharing attribute 'none'. + DSA_shared = 1 << 1, /// Default data sharing attribute 'shared'. }; /// Attributes of the defaultmap clause. @@ -54,7 +54,7 @@ DMA_tofrom_scalar, /// Default mapping is 'tofrom:scalar'. }; -/// \brief Stack for tracking declarations used in OpenMP directives and +/// Stack for tracking declarations used in OpenMP directives and /// clauses and their data-sharing attributes. class DSAStackTy { public: @@ -134,7 +134,7 @@ /// get the data (loop counters etc.) about enclosing loop-based construct. /// This data is required during codegen. DoacrossDependMapTy DoacrossDepends; - /// \brief first argument (Expr *) contains optional argument of the + /// first argument (Expr *) contains optional argument of the /// 'ordered' clause, the second one is true if the regions has 'ordered' /// clause, false otherwise. llvm::PointerIntPair<const Expr *, 1, bool> OrderedRegion; @@ -153,11 +153,11 @@ using StackTy = SmallVector<SharingMapTy, 4>; - /// \brief Stack of used declaration and their data-sharing attributes. + /// Stack of used declaration and their data-sharing attributes. DeclSAMapTy Threadprivates; const FunctionScopeInfo *CurrentNonCapturingFunctionScope = nullptr; SmallVector<std::pair<StackTy, const FunctionScopeInfo *>, 4> Stack; - /// \brief true, if check for DSA must be from parent directive, false, if + /// true, if check for DSA must be from parent directive, false, if /// from current directive. OpenMPClauseKind ClauseKindMode = OMPC_unknown; Sema &SemaRef; @@ -168,7 +168,7 @@ DSAVarData getDSA(iterator &Iter, ValueDecl *D) const; - /// \brief Checks if the variable is a local for OpenMP region. + /// Checks if the variable is a local for OpenMP region. bool isOpenMPLocal(VarDecl *D, iterator Iter) const; bool isStackEmpty() const { @@ -236,28 +236,28 @@ return I->second; return std::make_pair(nullptr, llvm::APSInt()); } - /// \brief If 'aligned' declaration for given variable \a D was not seen yet, + /// If 'aligned' declaration for given variable \a D was not seen yet, /// add it and return NULL; otherwise return previous occurrence's expression /// for diagnostics. const Expr *addUniqueAligned(const ValueDecl *D, const Expr *NewDE); - /// \brief Register specified variable as loop control variable. + /// Register specified variable as loop control variable. void addLoopControlVariable(const ValueDecl *D, VarDecl *Capture); - /// \brief Check if the specified variable is a loop control variable for + /// Check if the specified variable is a loop control variable for /// current region. /// \return The index of the loop control variable in the list of associated /// for-loops (from outer to inner). const LCDeclInfo isLoopControlVariable(const ValueDecl *D) const; - /// \brief Check if the specified variable is a loop control variable for + /// Check if the specified variable is a loop control variable for /// parent region. /// \return The index of the loop control variable in the list of associated /// for-loops (from outer to inner). const LCDeclInfo isParentLoopControlVariable(const ValueDecl *D) const; - /// \brief Get the loop control variable for the I-th loop (or nullptr) in + /// Get the loop control variable for the I-th loop (or nullptr) in /// parent directive. const ValueDecl *getParentLoopControlVariable(unsigned I) const; - /// \brief Adds explicit data sharing attribute to the specified declaration. + /// Adds explicit data sharing attribute to the specified declaration. void addDSA(const ValueDecl *D, const Expr *E, OpenMPClauseKind A, DeclRefExpr *PrivateCopy = nullptr); @@ -296,19 +296,19 @@ ->getDecl() == VD; } - /// \brief Returns data sharing attributes from top of the stack for the + /// Returns data sharing attributes from top of the stack for the /// specified declaration. const DSAVarData getTopDSA(ValueDecl *D, bool FromParent); - /// \brief Returns data-sharing attributes for the specified declaration. + /// Returns data-sharing attributes for the specified declaration. const DSAVarData getImplicitDSA(ValueDecl *D, bool FromParent) const; - /// \brief Checks if the specified variables has data-sharing attributes which + /// Checks if the specified variables has data-sharing attributes which /// match specified \a CPred predicate in any directive which matches \a DPred /// predicate. const DSAVarData hasDSA(ValueDecl *D, const llvm::function_ref<bool(OpenMPClauseKind)> CPred, const llvm::function_ref<bool(OpenMPDirectiveKind)> DPred, bool FromParent) const; - /// \brief Checks if the specified variables has data-sharing attributes which + /// Checks if the specified variables has data-sharing attributes which /// match specified \a CPred predicate in any innermost directive which /// matches \a DPred predicate. const DSAVarData @@ -316,49 +316,49 @@ const llvm::function_ref<bool(OpenMPClauseKind)> CPred, const llvm::function_ref<bool(OpenMPDirectiveKind)> DPred, bool FromParent) const; - /// \brief Checks if the specified variables has explicit data-sharing + /// Checks if the specified variables has explicit data-sharing /// attributes which match specified \a CPred predicate at the specified /// OpenMP region. bool hasExplicitDSA(const ValueDecl *D, const llvm::function_ref<bool(OpenMPClauseKind)> CPred, unsigned Level, bool NotLastprivate = false) const; - /// \brief Returns true if the directive at level \Level matches in the + /// Returns true if the directive at level \Level matches in the /// specified \a DPred predicate. bool hasExplicitDirective( const llvm::function_ref<bool(OpenMPDirectiveKind)> DPred, unsigned Level) const; - /// \brief Finds a directive which matches specified \a DPred predicate. + /// Finds a directive which matches specified \a DPred predicate. bool hasDirective( const llvm::function_ref<bool( OpenMPDirectiveKind, const DeclarationNameInfo &, SourceLocation)> DPred, bool FromParent) const; - /// \brief Returns currently analyzed directive. + /// Returns currently analyzed directive. OpenMPDirectiveKind getCurrentDirective() const { return isStackEmpty() ? OMPD_unknown : Stack.back().first.back().Directive; } - /// \brief Returns directive kind at specified level. + /// Returns directive kind at specified level. OpenMPDirectiveKind getDirective(unsigned Level) const { assert(!isStackEmpty() && "No directive at specified level."); return Stack.back().first[Level].Directive; } - /// \brief Returns parent directive. + /// Returns parent directive. OpenMPDirectiveKind getParentDirective() const { if (isStackEmpty() || Stack.back().first.size() == 1) return OMPD_unknown; return std::next(Stack.back().first.rbegin())->Directive; } - /// \brief Set default data sharing attribute to none. + /// Set default data sharing attribute to none. void setDefaultDSANone(SourceLocation Loc) { assert(!isStackEmpty()); Stack.back().first.back().DefaultAttr = DSA_none; Stack.back().first.back().DefaultAttrLoc = Loc; } - /// \brief Set default data sharing attribute to shared. + /// Set default data sharing attribute to shared. void setDefaultDSAShared(SourceLocation Loc) { assert(!isStackEmpty()); Stack.back().first.back().DefaultAttr = DSA_shared; @@ -391,66 +391,66 @@ : Stack.back().first.back().DefaultMapAttrLoc; } - /// \brief Checks if the specified variable is a threadprivate. + /// Checks if the specified variable is a threadprivate. bool isThreadPrivate(VarDecl *D) { const DSAVarData DVar = getTopDSA(D, false); return isOpenMPThreadPrivate(DVar.CKind); } - /// \brief Marks current region as ordered (it has an 'ordered' clause). + /// Marks current region as ordered (it has an 'ordered' clause). void setOrderedRegion(bool IsOrdered, const Expr *Param) { assert(!isStackEmpty()); Stack.back().first.back().OrderedRegion.setInt(IsOrdered); Stack.back().first.back().OrderedRegion.setPointer(Param); } - /// \brief Returns true, if parent region is ordered (has associated + /// Returns true, if parent region is ordered (has associated /// 'ordered' clause), false - otherwise. bool isParentOrderedRegion() const { if (isStackEmpty() || Stack.back().first.size() == 1) return false; return std::next(Stack.back().first.rbegin())->OrderedRegion.getInt(); } - /// \brief Returns optional parameter for the ordered region. + /// Returns optional parameter for the ordered region. const Expr *getParentOrderedRegionParam() const { if (isStackEmpty() || Stack.back().first.size() == 1) return nullptr; return std::next(Stack.back().first.rbegin())->OrderedRegion.getPointer(); } - /// \brief Marks current region as nowait (it has a 'nowait' clause). + /// Marks current region as nowait (it has a 'nowait' clause). void setNowaitRegion(bool IsNowait = true) { assert(!isStackEmpty()); Stack.back().first.back().NowaitRegion = IsNowait; } - /// \brief Returns true, if parent region is nowait (has associated + /// Returns true, if parent region is nowait (has associated /// 'nowait' clause), false - otherwise. bool isParentNowaitRegion() const { if (isStackEmpty() || Stack.back().first.size() == 1) return false; return std::next(Stack.back().first.rbegin())->NowaitRegion; } - /// \brief Marks parent region as cancel region. + /// Marks parent region as cancel region. void setParentCancelRegion(bool Cancel = true) { if (!isStackEmpty() && Stack.back().first.size() > 1) { auto &StackElemRef = *std::next(Stack.back().first.rbegin()); StackElemRef.CancelRegion |= StackElemRef.CancelRegion || Cancel; } } - /// \brief Return true if current region has inner cancel construct. + /// Return true if current region has inner cancel construct. bool isCancelRegion() const { return isStackEmpty() ? false : Stack.back().first.back().CancelRegion; } - /// \brief Set collapse value for the region. + /// Set collapse value for the region. void setAssociatedLoops(unsigned Val) { assert(!isStackEmpty()); Stack.back().first.back().AssociatedLoops = Val; } - /// \brief Return collapse value for region. + /// Return collapse value for region. unsigned getAssociatedLoops() const { return isStackEmpty() ? 0 : Stack.back().first.back().AssociatedLoops; } - /// \brief Marks current target region as one with closely nested teams + /// Marks current target region as one with closely nested teams /// region. void setParentTeamsRegionLoc(SourceLocation TeamsRegionLoc) { if (!isStackEmpty() && Stack.back().first.size() > 1) { @@ -458,11 +458,11 @@ TeamsRegionLoc; } } - /// \brief Returns true, if current region has closely nested teams region. + /// Returns true, if current region has closely nested teams region. bool hasInnerTeamsRegion() const { return getInnerTeamsRegionLoc().isValid(); } - /// \brief Returns location of the nested teams region (if any). + /// Returns location of the nested teams region (if any). SourceLocation getInnerTeamsRegionLoc() const { return isStackEmpty() ? SourceLocation() : Stack.back().first.back().InnerTeamsRegionLoc; @@ -822,7 +822,7 @@ } } -/// \brief Build a variable declaration for OpenMP loop iteration variable. +/// Build a variable declaration for OpenMP loop iteration variable. static VarDecl *buildVarDecl(Sema &SemaRef, SourceLocation Loc, QualType Type, StringRef Name, const AttrVec *Attrs = nullptr, DeclRefExpr *OrigRef = nullptr) { @@ -3656,99 +3656,99 @@ } namespace { -/// \brief Helper class for checking canonical form of the OpenMP loops and +/// Helper class for checking canonical form of the OpenMP loops and /// extracting iteration space of each loop in the loop nest, that will be used /// for IR generation. class OpenMPIterationSpaceChecker { - /// \brief Reference to Sema. + /// Reference to Sema. Sema &SemaRef; - /// \brief A location for diagnostics (when there is no some better location). + /// A location for diagnostics (when there is no some better location). SourceLocation DefaultLoc; - /// \brief A location for diagnostics (when increment is not compatible). + /// A location for diagnostics (when increment is not compatible). SourceLocation ConditionLoc; - /// \brief A source location for referring to loop init later. + /// A source location for referring to loop init later. SourceRange InitSrcRange; - /// \brief A source location for referring to condition later. + /// A source location for referring to condition later. SourceRange ConditionSrcRange; - /// \brief A source location for referring to increment later. + /// A source location for referring to increment later. SourceRange IncrementSrcRange; - /// \brief Loop variable. + /// Loop variable. ValueDecl *LCDecl = nullptr; - /// \brief Reference to loop variable. + /// Reference to loop variable. Expr *LCRef = nullptr; - /// \brief Lower bound (initializer for the var). + /// Lower bound (initializer for the var). Expr *LB = nullptr; - /// \brief Upper bound. + /// Upper bound. Expr *UB = nullptr; - /// \brief Loop step (increment). + /// Loop step (increment). Expr *Step = nullptr; - /// \brief This flag is true when condition is one of: + /// This flag is true when condition is one of: /// Var < UB /// Var <= UB /// UB > Var /// UB >= Var bool TestIsLessOp = false; - /// \brief This flag is true when condition is strict ( < or > ). + /// This flag is true when condition is strict ( < or > ). bool TestIsStrictOp = false; - /// \brief This flag is true when step is subtracted on each iteration. + /// This flag is true when step is subtracted on each iteration. bool SubtractStep = false; public: OpenMPIterationSpaceChecker(Sema &SemaRef, SourceLocation DefaultLoc) : SemaRef(SemaRef), DefaultLoc(DefaultLoc), ConditionLoc(DefaultLoc) {} - /// \brief Check init-expr for canonical loop form and save loop counter + /// Check init-expr for canonical loop form and save loop counter /// variable - #Var and its initialization value - #LB. bool checkAndSetInit(Stmt *S, bool EmitDiags = true); - /// \brief Check test-expr for canonical form, save upper-bound (#UB), flags + /// Check test-expr for canonical form, save upper-bound (#UB), flags /// for less/greater and for strict/non-strict comparison. bool checkAndSetCond(Expr *S); - /// \brief Check incr-expr for canonical loop form and return true if it + /// Check incr-expr for canonical loop form and return true if it /// does not conform, otherwise save loop step (#Step). bool checkAndSetInc(Expr *S); - /// \brief Return the loop counter variable. + /// Return the loop counter variable. ValueDecl *getLoopDecl() const { return LCDecl; } - /// \brief Return the reference expression to loop counter variable. + /// Return the reference expression to loop counter variable. Expr *getLoopDeclRefExpr() const { return LCRef; } - /// \brief Source range of the loop init. + /// Source range of the loop init. SourceRange getInitSrcRange() const { return InitSrcRange; } - /// \brief Source range of the loop condition. + /// Source range of the loop condition. SourceRange getConditionSrcRange() const { return ConditionSrcRange; } - /// \brief Source range of the loop increment. + /// Source range of the loop increment. SourceRange getIncrementSrcRange() const { return IncrementSrcRange; } - /// \brief True if the step should be subtracted. + /// True if the step should be subtracted. bool shouldSubtractStep() const { return SubtractStep; } - /// \brief Build the expression to calculate the number of iterations. + /// Build the expression to calculate the number of iterations. Expr *buildNumIterations( Scope *S, const bool LimitedType, llvm::MapVector<const Expr *, DeclRefExpr *> &Captures) const; - /// \brief Build the precondition expression for the loops. + /// Build the precondition expression for the loops. Expr * buildPreCond(Scope *S, Expr *Cond, llvm::MapVector<const Expr *, DeclRefExpr *> &Captures) const; - /// \brief Build reference expression to the counter be used for codegen. + /// Build reference expression to the counter be used for codegen. DeclRefExpr * buildCounterVar(llvm::MapVector<const Expr *, DeclRefExpr *> &Captures, DSAStackTy &DSA) const; - /// \brief Build reference expression to the private counter be used for + /// Build reference expression to the private counter be used for /// codegen. Expr *buildPrivateCounterVar() const; - /// \brief Build initialization of the counter be used for codegen. + /// Build initialization of the counter be used for codegen. Expr *buildCounterInit() const; - /// \brief Build step of the counter be used for codegen. + /// Build step of the counter be used for codegen. Expr *buildCounterStep() const; - /// \brief Return true if any expression is dependent. + /// Return true if any expression is dependent. bool dependent() const; private: - /// \brief Check the right-hand side of an assignment in the increment + /// Check the right-hand side of an assignment in the increment /// expression. bool checkAndSetIncRHS(Expr *RHS); - /// \brief Helper to set loop counter variable and its initializer. + /// Helper to set loop counter variable and its initializer. bool setLCDeclAndLB(ValueDecl *NewLCDecl, Expr *NewDeclRefExpr, Expr *NewLB); - /// \brief Helper to set upper bound. + /// Helper to set upper bound. bool setUB(Expr *NewUB, bool LessOp, bool StrictOp, SourceRange SR, SourceLocation SL); - /// \brief Helper to set loop increment. + /// Helper to set loop increment. bool setStep(Expr *NewStep, bool Subtract); }; @@ -3930,7 +3930,7 @@ return true; } -/// \brief Ignore parenthesizes, implicit casts, copy constructor and return the +/// Ignore parenthesizes, implicit casts, copy constructor and return the /// variable (which may be the loop variable) if possible. static const ValueDecl *getInitLCDecl(const Expr *E) { if (!E) @@ -4134,7 +4134,7 @@ return Res; } -/// \brief Build the expression to calculate the number of iterations. +/// Build the expression to calculate the number of iterations. Expr *OpenMPIterationSpaceChecker::buildNumIterations( Scope *S, const bool LimitedType, llvm::MapVector<const Expr *, DeclRefExpr *> &Captures) const { @@ -4260,7 +4260,7 @@ return CondExpr.isUsable() ? CondExpr.get() : Cond; } -/// \brief Build reference expression to the counter be used for codegen. +/// Build reference expression to the counter be used for codegen. DeclRefExpr *OpenMPIterationSpaceChecker::buildCounterVar( llvm::MapVector<const Expr *, DeclRefExpr *> &Captures, DSAStackTy &DSA) const { auto *VD = dyn_cast<VarDecl>(LCDecl); @@ -4296,35 +4296,35 @@ return nullptr; } -/// \brief Build initialization of the counter to be used for codegen. +/// Build initialization of the counter to be used for codegen. Expr *OpenMPIterationSpaceChecker::buildCounterInit() const { return LB; } -/// \brief Build step of the counter be used for codegen. +/// Build step of the counter be used for codegen. Expr *OpenMPIterationSpaceChecker::buildCounterStep() const { return Step; } -/// \brief Iteration space of a single for loop. +/// Iteration space of a single for loop. struct LoopIterationSpace final { - /// \brief Condition of the loop. + /// Condition of the loop. Expr *PreCond = nullptr; - /// \brief This expression calculates the number of iterations in the loop. + /// This expression calculates the number of iterations in the loop. /// It is always possible to calculate it before starting the loop. Expr *NumIterations = nullptr; - /// \brief The loop counter variable. + /// The loop counter variable. Expr *CounterVar = nullptr; - /// \brief Private loop counter variable. + /// Private loop counter variable. Expr *PrivateCounterVar = nullptr; - /// \brief This is initializer for the initial value of #CounterVar. + /// This is initializer for the initial value of #CounterVar. Expr *CounterInit = nullptr; - /// \brief This is step for the #CounterVar used to generate its update: + /// This is step for the #CounterVar used to generate its update: /// #CounterVar = #CounterInit + #CounterStep * CurrentIteration. Expr *CounterStep = nullptr; - /// \brief Should step be subtracted? + /// Should step be subtracted? bool Subtract = false; - /// \brief Source range of the loop init. + /// Source range of the loop init. SourceRange InitSrcRange; - /// \brief Source range of the loop condition. + /// Source range of the loop condition. SourceRange CondSrcRange; - /// \brief Source range of the loop increment. + /// Source range of the loop increment. SourceRange IncSrcRange; }; @@ -4356,7 +4356,7 @@ } } -/// \brief Called on a for stmt to check and extract its iteration space +/// Called on a for stmt to check and extract its iteration space /// for further processing (such as collapsing). static bool checkOpenMPIterationSpace( OpenMPDirectiveKind DKind, Stmt *S, Sema &SemaRef, DSAStackTy &DSA, @@ -4510,7 +4510,7 @@ return HasErrors; } -/// \brief Build 'VarRef = Start. +/// Build 'VarRef = Start. static ExprResult buildCounterInit(Sema &SemaRef, Scope *S, SourceLocation Loc, ExprResult VarRef, ExprResult Start, @@ -4533,7 +4533,7 @@ return Init; } -/// \brief Build 'VarRef = Start + Iter * Step'. +/// Build 'VarRef = Start + Iter * Step'. static ExprResult buildCounterUpdate( Sema &SemaRef, Scope *S, SourceLocation Loc, ExprResult VarRef, ExprResult Start, ExprResult Iter, ExprResult Step, bool Subtract, @@ -4604,7 +4604,7 @@ return Update; } -/// \brief Convert integer expression \a E to make it have at least \a Bits +/// Convert integer expression \a E to make it have at least \a Bits /// bits. static ExprResult widenIterationCount(unsigned Bits, Expr *E, Sema &SemaRef) { if (E == nullptr) @@ -4620,7 +4620,7 @@ true); } -/// \brief Check if the given expression \a E is a constant integer that fits +/// Check if the given expression \a E is a constant integer that fits /// into \a Bits bits. static bool fitsInto(unsigned Bits, bool Signed, const Expr *E, Sema &SemaRef) { if (E == nullptr) @@ -4675,7 +4675,7 @@ return PostUpdate; } -/// \brief Called on a for stmt to check itself and nested loops (if any). +/// Called on a for stmt to check itself and nested loops (if any). /// \return Returns 0 if one of the collapsed stmts is not canonical for loop, /// number of collapsed loops otherwise. static unsigned @@ -5863,50 +5863,50 @@ } namespace { -/// \brief Helper class for checking expression in 'omp atomic [update]' +/// Helper class for checking expression in 'omp atomic [update]' /// construct. class OpenMPAtomicUpdateChecker { - /// \brief Error results for atomic update expressions. + /// Error results for atomic update expressions. enum ExprAnalysisErrorCode { - /// \brief A statement is not an expression statement. + /// A statement is not an expression statement. NotAnExpression, - /// \brief Expression is not builtin binary or unary operation. + /// Expression is not builtin binary or unary operation. NotABinaryOrUnaryExpression, - /// \brief Unary operation is not post-/pre- increment/decrement operation. + /// Unary operation is not post-/pre- increment/decrement operation. NotAnUnaryIncDecExpression, - /// \brief An expression is not of scalar type. + /// An expression is not of scalar type. NotAScalarType, - /// \brief A binary operation is not an assignment operation. + /// A binary operation is not an assignment operation. NotAnAssignmentOp, - /// \brief RHS part of the binary operation is not a binary expression. + /// RHS part of the binary operation is not a binary expression. NotABinaryExpression, - /// \brief RHS part is not additive/multiplicative/shift/biwise binary + /// RHS part is not additive/multiplicative/shift/biwise binary /// expression. NotABinaryOperator, - /// \brief RHS binary operation does not have reference to the updated LHS + /// RHS binary operation does not have reference to the updated LHS /// part. NotAnUpdateExpression, - /// \brief No errors is found. + /// No errors is found. NoError }; - /// \brief Reference to Sema. + /// Reference to Sema. Sema &SemaRef; - /// \brief A location for note diagnostics (when error is found). + /// A location for note diagnostics (when error is found). SourceLocation NoteLoc; - /// \brief 'x' lvalue part of the source atomic expression. + /// 'x' lvalue part of the source atomic expression. Expr *X; - /// \brief 'expr' rvalue part of the source atomic expression. + /// 'expr' rvalue part of the source atomic expression. Expr *E; - /// \brief Helper expression of the form + /// Helper expression of the form /// 'OpaqueValueExpr(x) binop OpaqueValueExpr(expr)' or /// 'OpaqueValueExpr(expr) binop OpaqueValueExpr(x)'. Expr *UpdateExpr; - /// \brief Is 'x' a LHS in a RHS part of full update expression. It is + /// Is 'x' a LHS in a RHS part of full update expression. It is /// important for non-associative operations. bool IsXLHSInRHSPart; BinaryOperatorKind Op; SourceLocation OpLoc; - /// \brief true if the source expression is a postfix unary operation, false + /// true if the source expression is a postfix unary operation, false /// if it is a prefix unary operation. bool IsPostfixUpdate; @@ -5914,7 +5914,7 @@ OpenMPAtomicUpdateChecker(Sema &SemaRef) : SemaRef(SemaRef), X(nullptr), E(nullptr), UpdateExpr(nullptr), IsXLHSInRHSPart(false), Op(BO_PtrMemD), IsPostfixUpdate(false) {} - /// \brief Check specified statement that it is suitable for 'atomic update' + /// Check specified statement that it is suitable for 'atomic update' /// constructs and extract 'x', 'expr' and Operation from the original /// expression. If DiagId and NoteId == 0, then only check is performed /// without error notification. @@ -5922,19 +5922,19 @@ /// \param NoteId Diagnostic note for the main error message. /// \return true if statement is not an update expression, false otherwise. bool checkStatement(Stmt *S, unsigned DiagId = 0, unsigned NoteId = 0); - /// \brief Return the 'x' lvalue part of the source atomic expression. + /// Return the 'x' lvalue part of the source atomic expression. Expr *getX() const { return X; } - /// \brief Return the 'expr' rvalue part of the source atomic expression. + /// Return the 'expr' rvalue part of the source atomic expression. Expr *getExpr() const { return E; } - /// \brief Return the update expression used in calculation of the updated + /// Return the update expression used in calculation of the updated /// value. Always has form 'OpaqueValueExpr(x) binop OpaqueValueExpr(expr)' or /// 'OpaqueValueExpr(expr) binop OpaqueValueExpr(x)'. Expr *getUpdateExpr() const { return UpdateExpr; } - /// \brief Return true if 'x' is LHS in RHS part of full update expression, + /// Return true if 'x' is LHS in RHS part of full update expression, /// false otherwise. bool isXLHSInRHSPart() const { return IsXLHSInRHSPart; } - /// \brief true if the source expression is a postfix unary operation, false + /// true if the source expression is a postfix unary operation, false /// if it is a prefix unary operation. bool isPostfixUpdate() const { return IsPostfixUpdate; } @@ -11654,7 +11654,7 @@ return true; } -/// \brief Return true if it can be proven that the provided array expression +/// Return true if it can be proven that the provided array expression /// (array section or array subscript) does NOT specify the whole size of the /// array whose base type is \a BaseQTy. static bool checkArrayExpressionDoesNotReferToWholeSize(Sema &SemaRef, Index: cfe/trunk/lib/Sema/SemaOverload.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaOverload.cpp +++ cfe/trunk/lib/Sema/SemaOverload.cpp @@ -583,7 +583,7 @@ }; } -/// \brief Convert from Sema's representation of template deduction information +/// Convert from Sema's representation of template deduction information /// to the form used in overload-candidate information. DeductionFailureInfo clang::MakeDeductionFailureInfo(ASTContext &Context, @@ -1192,7 +1192,7 @@ return false; } -/// \brief Checks availability of the function depending on the current +/// Checks availability of the function depending on the current /// function context. Inside an unavailable function, unavailability is ignored. /// /// \returns true if \arg FD is unavailable and current context is inside @@ -1210,7 +1210,7 @@ return true; } -/// \brief Tries a user-defined conversion from From to ToType. +/// Tries a user-defined conversion from From to ToType. /// /// Produces an implicit conversion sequence for when a standard conversion /// is not an option. See TryImplicitConversion for more information. @@ -1422,7 +1422,7 @@ return PerformImplicitConversion(From, ToType, ICS, Action); } -/// \brief Determine whether the conversion from FromType to ToType is a valid +/// Determine whether the conversion from FromType to ToType is a valid /// conversion that strips "noexcept" or "noreturn" off the nested function /// type. bool Sema::IsFunctionConversion(QualType FromType, QualType ToType, @@ -1519,7 +1519,7 @@ return true; } -/// \brief Determine whether the conversion from FromType to ToType is a valid +/// Determine whether the conversion from FromType to ToType is a valid /// vector conversion. /// /// \param ICK Will be set to the vector conversion kind, if this is a vector @@ -2119,7 +2119,7 @@ return false; } -/// \brief Determine if a conversion is a complex promotion. +/// Determine if a conversion is a complex promotion. /// /// A complex promotion is defined as a complex -> complex conversion /// where the conversion between the underlying real types is a @@ -2353,7 +2353,7 @@ return false; } -/// \brief Adopt the given qualifiers for the given type. +/// Adopt the given qualifiers for the given type. static QualType AdoptQualifiers(ASTContext &Context, QualType T, Qualifiers Qs){ Qualifiers TQs = T.getQualifiers(); @@ -2541,7 +2541,7 @@ return false; } -/// \brief Determine whether this is an Objective-C writeback conversion, +/// Determine whether this is an Objective-C writeback conversion, /// used for parameter passing when performing automatic reference counting. /// /// \param FromType The type we're converting form. @@ -2601,7 +2601,7 @@ IncompatibleObjC)) return false; - /// \brief Construct the type we're converting to, which is a pointer to + /// Construct the type we're converting to, which is a pointer to /// __autoreleasing pointee. FromPointee = Context.getQualifiedType(FromPointee, FromQuals); ConvertedType = Context.getPointerType(FromPointee); @@ -3137,7 +3137,7 @@ return UnwrappedAnyPointer && Context.hasSameUnqualifiedType(FromType,ToType); } -/// \brief - Determine whether this is a conversion from a scalar type to an +/// - Determine whether this is a conversion from a scalar type to an /// atomic type. /// /// If successful, updates \c SCS's second and third steps in the conversion @@ -3480,7 +3480,7 @@ return true; } -/// \brief Compare the user-defined conversion functions or constructors +/// Compare the user-defined conversion functions or constructors /// of two user-defined conversion sequences to determine whether any ordering /// is possible. static ImplicitConversionSequence::CompareKind @@ -3682,7 +3682,7 @@ return ImplicitConversionSequence::Indistinguishable; } -/// \brief Determine whether one of the given reference bindings is better +/// Determine whether one of the given reference bindings is better /// than the other based on what kind of bindings they are. static bool isBetterReferenceBindingKind(const StandardConversionSequence &SCS1, @@ -4207,7 +4207,7 @@ return ImplicitConversionSequence::Indistinguishable; } -/// \brief Determine whether the given type is valid, e.g., it is not an invalid +/// Determine whether the given type is valid, e.g., it is not an invalid /// C++ class. static bool isTypeValid(QualType T) { if (CXXRecordDecl *Record = T->getAsCXXRecordDecl()) @@ -4310,7 +4310,7 @@ return Ref_Related; } -/// \brief Look for a user-defined conversion to a value reference-compatible +/// Look for a user-defined conversion to a value reference-compatible /// with DeclType. Return true if something definite is found. static bool FindConversionForRefInit(Sema &S, ImplicitConversionSequence &ICS, @@ -4437,7 +4437,7 @@ llvm_unreachable("Invalid OverloadResult!"); } -/// \brief Compute an implicit conversion sequence for reference +/// Compute an implicit conversion sequence for reference /// initialization. static ImplicitConversionSequence TryReferenceInit(Sema &S, Expr *Init, QualType DeclType, @@ -5649,7 +5649,7 @@ } } -/// \brief Attempt to convert the given expression to a type which is accepted +/// Attempt to convert the given expression to a type which is accepted /// by the given converter. /// /// This routine will attempt to convert an expression of class type to a @@ -6375,7 +6375,7 @@ }); } -/// \brief Add all of the function declarations in the given function set to +/// Add all of the function declarations in the given function set to /// the overload candidate set. void Sema::AddFunctionCandidates(const UnresolvedSetImpl &Fns, ArrayRef<Expr *> Args, @@ -6611,7 +6611,7 @@ } } -/// \brief Add a C++ member function template as a candidate to the candidate +/// Add a C++ member function template as a candidate to the candidate /// set, using template argument deduction to produce an appropriate member /// function template specialization. void @@ -6679,7 +6679,7 @@ Conversions); } -/// \brief Add a C++ function template specialization as a candidate +/// Add a C++ function template specialization as a candidate /// in the candidate set, using template argument deduction to produce /// an appropriate function template specialization. void @@ -7020,7 +7020,7 @@ } } -/// \brief Adds a conversion function template specialization +/// Adds a conversion function template specialization /// candidate to the overload set, using template argument deduction /// to deduce the template arguments of the conversion function /// template from the type that we are converting to (C++ @@ -7175,7 +7175,7 @@ } } -/// \brief Add overload candidates for overloaded operators that are +/// Add overload candidates for overloaded operators that are /// member functions. /// /// Add the overloaded operator candidates that are member functions @@ -7311,18 +7311,18 @@ /// used in the built-in candidates. TypeSet EnumerationTypes; - /// \brief The set of vector types that will be used in the built-in + /// The set of vector types that will be used in the built-in /// candidates. TypeSet VectorTypes; - /// \brief A flag indicating non-record types are viable candidates + /// A flag indicating non-record types are viable candidates bool HasNonRecordTypes; - /// \brief A flag indicating whether either arithmetic or enumeration types + /// A flag indicating whether either arithmetic or enumeration types /// were present in the candidate set. bool HasArithmeticOrEnumeralTypes; - /// \brief A flag indicating whether the nullptr type was present in the + /// A flag indicating whether the nullptr type was present in the /// candidate set. bool HasNullPtrType; @@ -7575,7 +7575,7 @@ } } -/// \brief Helper function for AddBuiltinOperatorCandidates() that adds +/// Helper function for AddBuiltinOperatorCandidates() that adds /// the volatile- and non-volatile-qualified assignment operators for the /// given type to the candidate set. static void AddBuiltinAssignmentOperatorCandidates(Sema &S, @@ -7653,7 +7653,7 @@ namespace { -/// \brief Helper class to manage the addition of builtin operator overload +/// Helper class to manage the addition of builtin operator overload /// candidates. It provides shared state and utility methods used throughout /// the process, as well as a helper method to add each group of builtin /// operator overloads from the standard to a candidate set. @@ -7726,7 +7726,7 @@ "Enough inline storage for all arithmetic types."); } - /// \brief Helper method to factor out the common pattern of adding overloads + /// Helper method to factor out the common pattern of adding overloads /// for '++' and '--' builtin operators. void addPlusPlusMinusMinusStyleOverloads(QualType CandidateTy, bool HasVolatile, @@ -8862,7 +8862,7 @@ } } -/// \brief Add function candidates found via argument-dependent lookup +/// Add function candidates found via argument-dependent lookup /// to the set of overloading candidates. /// /// This routine performs argument-dependent name lookup based on the @@ -9235,7 +9235,7 @@ } } -/// \brief Computes the best viable function (C++ 13.3.3) +/// Computes the best viable function (C++ 13.3.3) /// within an overload candidate set. /// /// \param Loc The location of the function name (or operator symbol) for @@ -9411,7 +9411,7 @@ return true; } -/// \brief Returns true if we can take the address of the function. +/// Returns true if we can take the address of the function. /// /// \param Complain - If true, we'll emit a diagnostic /// \param InOverloadResolution - For the purposes of emitting a diagnostic, are @@ -11265,7 +11265,7 @@ return Fn; } -/// \brief Given an expression that refers to an overloaded function, try to +/// Given an expression that refers to an overloaded function, try to /// resolve that function to a single function that can have its address taken. /// This will modify `Pair` iff it returns non-null. /// @@ -11301,7 +11301,7 @@ return Result; } -/// \brief Given an overloaded function, tries to turn it into a non-overloaded +/// Given an overloaded function, tries to turn it into a non-overloaded /// function reference using resolveAddressOfOnlyViableOverloadCandidate. This /// will perform access checks, diagnose the use of the resultant decl, and, if /// requested, potentially perform a function-to-pointer decay. @@ -11331,7 +11331,7 @@ return true; } -/// \brief Given an expression that refers to an overloaded function, try to +/// Given an expression that refers to an overloaded function, try to /// resolve that overloaded function expression down to a single function. /// /// This routine can only resolve template-ids that refer to a single function @@ -11500,7 +11500,7 @@ return true; } -/// \brief Add a single candidate to the overload set. +/// Add a single candidate to the overload set. static void AddOverloadedCallCandidate(Sema &S, DeclAccessPair FoundDecl, TemplateArgumentListInfo *ExplicitTemplateArgs, @@ -11539,7 +11539,7 @@ assert(!KnownValid && "unhandled case in overloaded call candidate"); } -/// \brief Add the overload candidates named by callee and/or found by argument +/// Add the overload candidates named by callee and/or found by argument /// dependent lookup to the given overload set. void Sema::AddOverloadedCallCandidates(UnresolvedLookupExpr *ULE, ArrayRef<Expr *> Args, @@ -11831,7 +11831,7 @@ RParenLoc); } -/// \brief Constructs and populates an OverloadedCandidateSet from +/// Constructs and populates an OverloadedCandidateSet from /// the given function. /// \returns true when an the ExprResult output parameter has been set. bool Sema::buildOverloadedCallSet(Scope *S, Expr *Fn, @@ -12037,7 +12037,7 @@ (Functions.size() == 1 && isa<FunctionTemplateDecl>(*Functions.begin())); } -/// \brief Create a unary operation that may resolve to an overloaded +/// Create a unary operation that may resolve to an overloaded /// operator. /// /// \param OpLoc The location of the operator itself (e.g., '*'). @@ -12228,7 +12228,7 @@ return CreateBuiltinUnaryOp(OpLoc, Opc, Input); } -/// \brief Create a binary operation that may resolve to an overloaded +/// Create a binary operation that may resolve to an overloaded /// operator. /// /// \param OpLoc The location of the operator itself (e.g., '+'). Index: cfe/trunk/lib/Sema/SemaPseudoObject.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaPseudoObject.cpp +++ cfe/trunk/lib/Sema/SemaPseudoObject.cpp @@ -253,7 +253,7 @@ virtual ExprResult buildGet() = 0; virtual ExprResult buildSet(Expr *, SourceLocation, bool captureSetValueAsResult) = 0; - /// \brief Should the result of an assignment be the formal result of the + /// Should the result of an assignment be the formal result of the /// setter call or the value that was passed to the setter? /// /// Different pseudo-object language features use different language rules Index: cfe/trunk/lib/Sema/SemaStmt.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaStmt.cpp +++ cfe/trunk/lib/Sema/SemaStmt.cpp @@ -121,7 +121,7 @@ } } -/// \brief Diagnose unused comparisons, both builtin and overloaded operators. +/// Diagnose unused comparisons, both builtin and overloaded operators. /// For '==' and '!=', suggest fixits for '=' or '|='. /// /// Adding a cast to void (or other expression wrappers) will prevent the @@ -2121,7 +2121,7 @@ DS, RParenLoc, Kind); } -/// \brief Create the initialization, compare, and increment steps for +/// Create the initialization, compare, and increment steps for /// the range-based for loop expression. /// This function does not handle array-based for loops, /// which are created in Sema::BuildCXXForRangeStmt. @@ -2851,7 +2851,7 @@ return new (Context) BreakStmt(BreakLoc); } -/// \brief Determine whether the given expression is a candidate for +/// Determine whether the given expression is a candidate for /// copy elision in either a return statement or a throw expression. /// /// \param ReturnType If we're determining the copy elision candidate for @@ -2931,7 +2931,7 @@ return true; } -/// \brief Try to perform the initialization of a potentially-movable value, +/// Try to perform the initialization of a potentially-movable value, /// which is the operand to a return or throw statement. /// /// This routine implements C++14 [class.copy]p32, which attempts to treat @@ -3019,7 +3019,7 @@ } } -/// \brief Perform the initialization of a potentially-movable value, which +/// Perform the initialization of a potentially-movable value, which /// is the result of return value. /// /// This routine implements C++14 [class.copy]p32, which attempts to treat @@ -3131,7 +3131,7 @@ return Res; } -/// \brief Determine whether the declared return type of the specified function +/// Determine whether the declared return type of the specified function /// contains 'auto'. static bool hasDeducedReturnType(FunctionDecl *FD) { const FunctionProtoType *FPT = @@ -3303,7 +3303,7 @@ } namespace { -/// \brief Marks all typedefs in all local classes in a type referenced. +/// Marks all typedefs in all local classes in a type referenced. /// /// In a function like /// auto f() { Index: cfe/trunk/lib/Sema/SemaStmtAsm.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaStmtAsm.cpp +++ cfe/trunk/lib/Sema/SemaStmtAsm.cpp @@ -109,7 +109,7 @@ return false; } -/// \brief Returns true if given expression is not compatible with inline +/// Returns true if given expression is not compatible with inline /// assembly's memory constraint; false otherwise. static bool checkExprMemoryConstraintCompat(Sema &S, Expr *E, TargetInfo::ConstraintInfo &Info, Index: cfe/trunk/lib/Sema/SemaTemplate.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaTemplate.cpp +++ cfe/trunk/lib/Sema/SemaTemplate.cpp @@ -46,7 +46,7 @@ } namespace clang { -/// \brief [temp.constr.decl]p2: A template's associated constraints are +/// [temp.constr.decl]p2: A template's associated constraints are /// defined as a single constraint-expression derived from the introduced /// constraint-expressions [ ... ]. /// @@ -65,7 +65,7 @@ return Params->getRequiresClause(); } -/// \brief Determine whether the declaration found is acceptable as the name +/// Determine whether the declaration found is acceptable as the name /// of a template and, if so, return that template declaration. Otherwise, /// returns NULL. static NamedDecl *isAcceptableTemplateName(ASTContext &Context, @@ -765,7 +765,7 @@ llvm_unreachable("Unhandled parsed template argument"); } -/// \brief Translates template arguments as provided by the parser +/// Translates template arguments as provided by the parser /// into template arguments used by semantic analysis. void Sema::translateTemplateArguments(const ASTTemplateArgsPtr &TemplateArgsIn, TemplateArgumentListInfo &TemplateArgs) { @@ -904,7 +904,7 @@ return Param; } -/// \brief Check that the type of a non-type template parameter is +/// Check that the type of a non-type template parameter is /// well-formed. /// /// \returns the (possibly-promoted) parameter type if valid; @@ -1975,7 +1975,7 @@ ->setIsCopyDeductionCandidate(); } -/// \brief Diagnose the presence of a default template argument on a +/// Diagnose the presence of a default template argument on a /// template parameter, which is ill-formed in certain contexts. /// /// \returns true if the default template argument should be dropped. @@ -2031,7 +2031,7 @@ llvm_unreachable("Invalid TemplateParamListContext!"); } -/// \brief Check for unexpanded parameter packs within the template parameters +/// Check for unexpanded parameter packs within the template parameters /// of a template template parameter, recursively. static bool DiagnoseUnexpandedParameterPacks(Sema &S, TemplateTemplateParmDecl *TTP) { @@ -2062,7 +2062,7 @@ return false; } -/// \brief Checks the validity of a template parameter list, possibly +/// Checks the validity of a template parameter list, possibly /// considering the template parameter list from a previous /// declaration. /// @@ -2429,7 +2429,7 @@ return SourceRange(); } -/// \brief Match the given template parameter lists to the given scope +/// Match the given template parameter lists to the given scope /// specifier, returning the template parameter list that applies to the /// name. /// @@ -3804,7 +3804,7 @@ } namespace { -/// \brief A partial specialization whose template arguments have matched +/// A partial specialization whose template arguments have matched /// a given template-id. struct PartialSpecMatchResult { VarTemplatePartialSpecializationDecl *Partial; @@ -4092,7 +4092,7 @@ return BuildTemplateIdExpr(SS, TemplateKWLoc, R, /*ADL*/ false, TemplateArgs); } -/// \brief Form a dependent template name. +/// Form a dependent template name. /// /// This action forms a dependent template name given the template /// name and its (presumably dependent) scope specifier. For @@ -4319,7 +4319,7 @@ return false; } -/// \brief Substitute template arguments into the default template argument for +/// Substitute template arguments into the default template argument for /// the given template type parameter. /// /// \param SemaRef the semantic analysis object for which we are performing @@ -4375,7 +4375,7 @@ return ArgType; } -/// \brief Substitute template arguments into the default template argument for +/// Substitute template arguments into the default template argument for /// the given non-type template parameter. /// /// \param SemaRef the semantic analysis object for which we are performing @@ -4423,7 +4423,7 @@ return SemaRef.SubstExpr(Param->getDefaultArgument(), TemplateArgLists); } -/// \brief Substitute template arguments into the default template argument for +/// Substitute template arguments into the default template argument for /// the given template template parameter. /// /// \param SemaRef the semantic analysis object for which we are performing @@ -4487,7 +4487,7 @@ TemplateArgLists); } -/// \brief If the given template parameter has a default template +/// If the given template parameter has a default template /// argument, substitute into that default template argument and /// return the corresponding template argument. TemplateArgumentLoc @@ -4588,7 +4588,7 @@ return TemplateArgumentLoc(); } -/// \brief Check that the given template argument corresponds to the given +/// Check that the given template argument corresponds to the given /// template parameter. /// /// \param Param The template parameter against which the argument will be @@ -4850,7 +4850,7 @@ return false; } -/// \brief Diagnose an arity mismatch in the +/// Diagnose an arity mismatch in the static bool diagnoseArityMismatch(Sema &S, TemplateDecl *Template, SourceLocation TemplateLoc, TemplateArgumentListInfo &TemplateArgs) { @@ -4871,7 +4871,7 @@ return true; } -/// \brief Check whether the template parameter is a pack expansion, and if so, +/// Check whether the template parameter is a pack expansion, and if so, /// determine the number of parameters produced by that expansion. For instance: /// /// \code @@ -4927,7 +4927,7 @@ return diagnoseArityMismatch(S, TD, Loc, Args); } -/// \brief Check that the given template argument list is well-formed +/// Check that the given template argument list is well-formed /// for specializing the given template. bool Sema::CheckTemplateArgumentList( TemplateDecl *Template, SourceLocation TemplateLoc, @@ -5434,7 +5434,7 @@ llvm_unreachable("Invalid NestedNameSpecifier::Kind!"); } -/// \brief Check a template argument against its corresponding +/// Check a template argument against its corresponding /// template type parameter. /// /// This routine implements the semantics of C++ [temp.arg.type]. It @@ -5472,7 +5472,7 @@ NPV_Error }; -/// \brief Determine whether the given template argument is a null pointer +/// Determine whether the given template argument is a null pointer /// value of the appropriate type. static NullPointerValueKind isNullPointerValueTemplateArgument(Sema &S, NonTypeTemplateParmDecl *Param, @@ -5568,7 +5568,7 @@ return NPV_NotNullPointer; } -/// \brief Checks whether the given template argument is compatible with its +/// Checks whether the given template argument is compatible with its /// template parameter. static bool CheckTemplateArgumentIsCompatibleWithParameter( Sema &S, NonTypeTemplateParmDecl *Param, QualType ParamType, Expr *ArgIn, @@ -5625,7 +5625,7 @@ return false; } -/// \brief Checks whether the given template argument is the address +/// Checks whether the given template argument is the address /// of an object or function according to C++ [temp.arg.nontype]p1. static bool CheckTemplateArgumentAddressOfObjectOrFunction(Sema &S, @@ -5913,7 +5913,7 @@ return false; } -/// \brief Checks whether the given template argument is a pointer to +/// Checks whether the given template argument is a pointer to /// member constant according to C++ [temp.arg.nontype]p1. static bool CheckTemplateArgumentPointerToMember(Sema &S, NonTypeTemplateParmDecl *Param, @@ -6042,7 +6042,7 @@ return true; } -/// \brief Check a template argument against its corresponding +/// Check a template argument against its corresponding /// non-type template parameter. /// /// This routine implements the semantics of C++ [temp.arg.nontype]. @@ -6560,7 +6560,7 @@ Sema &S, TemplateParameterList *New, TemplateParameterList *Old, Sema::TemplateParameterListEqualKind Kind, SourceLocation TemplateArgLoc); -/// \brief Check a template argument against its corresponding +/// Check a template argument against its corresponding /// template template parameter. /// /// This routine implements the semantics of C++ [temp.arg.template]. @@ -6627,7 +6627,7 @@ Arg.getLocation()); } -/// \brief Given a non-type template argument that refers to a +/// Given a non-type template argument that refers to a /// declaration and the type of its corresponding non-type template /// parameter, produce an expression that properly refers to that /// declaration. @@ -6750,7 +6750,7 @@ return BuildDeclRefExpr(VD, T, VK, Loc); } -/// \brief Construct a new expression that refers to the given +/// Construct a new expression that refers to the given /// integral template argument with the given source-location /// information. /// @@ -6810,7 +6810,7 @@ return E; } -/// \brief Match two template parameters within template parameter lists. +/// Match two template parameters within template parameter lists. static bool MatchTemplateParameterKind(Sema &S, NamedDecl *New, NamedDecl *Old, bool Complain, Sema::TemplateParameterListEqualKind Kind, @@ -6913,7 +6913,7 @@ return true; } -/// \brief Diagnose a known arity mismatch when comparing template argument +/// Diagnose a known arity mismatch when comparing template argument /// lists. static void DiagnoseTemplateParameterListArityMismatch(Sema &S, @@ -6935,7 +6935,7 @@ << SourceRange(Old->getTemplateLoc(), Old->getRAngleLoc()); } -/// \brief Determine whether the given template parameter lists are +/// Determine whether the given template parameter lists are /// equivalent. /// /// \param New The new template parameter list, typically written in the @@ -7027,7 +7027,7 @@ return true; } -/// \brief Check whether a template can be declared within this scope. +/// Check whether a template can be declared within this scope. /// /// If the template declaration is valid in this scope, returns /// false. Otherwise, issues a diagnostic and returns true. @@ -7076,7 +7076,7 @@ << TemplateParams->getSourceRange(); } -/// \brief Determine what kind of template specialization the given declaration +/// Determine what kind of template specialization the given declaration /// is. static TemplateSpecializationKind getTemplateSpecializationKind(Decl *D) { if (!D) @@ -7092,7 +7092,7 @@ return TSK_Undeclared; } -/// \brief Check whether a specialization is well-formed in the current +/// Check whether a specialization is well-formed in the current /// context. /// /// This routine determines whether a template specialization can be declared @@ -7208,7 +7208,7 @@ return Checker.MatchLoc; } -/// \brief Subroutine of Sema::CheckTemplatePartialSpecializationArgs +/// Subroutine of Sema::CheckTemplatePartialSpecializationArgs /// that checks non-type template partial specialization arguments. static bool CheckNonTypeTemplatePartialSpecializationArgs( Sema &S, SourceLocation TemplateNameLoc, NonTypeTemplateParmDecl *Param, @@ -7296,7 +7296,7 @@ return false; } -/// \brief Check the non-type template arguments of a class template +/// Check the non-type template arguments of a class template /// partial specialization according to C++ [temp.class.spec]p9. /// /// \param TemplateNameLoc the location of the template name. @@ -7710,7 +7710,7 @@ return NewDecl; } -/// \brief Strips various properties off an implicit instantiation +/// Strips various properties off an implicit instantiation /// that has just been explicitly specialized. static void StripImplicitInstantiation(NamedDecl *D) { D->dropAttr<DLLImportAttr>(); @@ -7720,7 +7720,7 @@ FD->setInlineSpecified(false); } -/// \brief Compute the diagnostic location for an explicit instantiation +/// Compute the diagnostic location for an explicit instantiation // declaration or definition. static SourceLocation DiagLocForExplicitInstantiation( NamedDecl* D, SourceLocation PointOfInstantiation) { @@ -7737,7 +7737,7 @@ return PrevDiagLoc; } -/// \brief Diagnose cases where we have an explicit template specialization +/// Diagnose cases where we have an explicit template specialization /// before/after an explicit template instantiation, producing diagnostics /// for those cases where they are required and determining whether the /// new specialization/instantiation will have any effect. @@ -7922,7 +7922,7 @@ llvm_unreachable("Missing specialization/instantiation case?"); } -/// \brief Perform semantic analysis for the given dependent function +/// Perform semantic analysis for the given dependent function /// template specialization. /// /// The only possible way to get a dependent function template specialization @@ -7962,7 +7962,7 @@ return false; } -/// \brief Perform semantic analysis for the given function template +/// Perform semantic analysis for the given function template /// specialization. /// /// This routine performs all of the semantic analysis required for an @@ -8185,7 +8185,7 @@ return false; } -/// \brief Perform semantic analysis for the given non-template member +/// Perform semantic analysis for the given non-template member /// specialization. /// /// This routine performs all of the semantic analysis required for an @@ -8395,7 +8395,7 @@ llvm_unreachable("unknown member specialization kind"); } -/// \brief Check the scope of an explicit instantiation. +/// Check the scope of an explicit instantiation. /// /// \returns true if a serious error occurs, false otherwise. static bool CheckExplicitInstantiationScope(Sema &S, NamedDecl *D, @@ -8449,7 +8449,7 @@ return false; } -/// \brief Determine whether the given scope specifier has a template-id in it. +/// Determine whether the given scope specifier has a template-id in it. static bool ScopeSpecifierHasTemplateId(const CXXScopeSpec &SS) { if (!SS.isSet()) return false; @@ -9503,7 +9503,7 @@ return true; } -/// \brief Build the type that describes a C++ typename specifier, +/// Build the type that describes a C++ typename specifier, /// e.g., "typename T::type". QualType Sema::CheckTypenameType(ElaboratedTypeKeyword Keyword, @@ -9678,7 +9678,7 @@ : TreeTransform<CurrentInstantiationRebuilder>(SemaRef), Loc(Loc), Entity(Entity) { } - /// \brief Determine whether the given type \p T has already been + /// Determine whether the given type \p T has already been /// transformed. /// /// For the purposes of type reconstruction, a type has already been @@ -9687,14 +9687,14 @@ return T.isNull() || !T->isDependentType(); } - /// \brief Returns the location of the entity whose type is being + /// Returns the location of the entity whose type is being /// rebuilt. SourceLocation getBaseLocation() { return Loc; } - /// \brief Returns the name of the entity whose type is being rebuilt. + /// Returns the name of the entity whose type is being rebuilt. DeclarationName getBaseEntity() { return Entity; } - /// \brief Sets the "base" location and entity when that + /// Sets the "base" location and entity when that /// information is known based on another transformation. void setBase(SourceLocation Loc, DeclarationName Entity) { this->Loc = Loc; @@ -9708,7 +9708,7 @@ }; } // end anonymous namespace -/// \brief Rebuilds a type within the context of the current instantiation. +/// Rebuilds a type within the context of the current instantiation. /// /// The type \p T is part of the type of an out-of-line member definition of /// a class template (or class template partial specialization) that was parsed @@ -9766,7 +9766,7 @@ return false; } -/// \brief Rebuild the template parameters now that we know we're in a current +/// Rebuild the template parameters now that we know we're in a current /// instantiation. bool Sema::RebuildTemplateParamsInCurrentInstantiation( TemplateParameterList *Params) { @@ -9805,7 +9805,7 @@ return false; } -/// \brief Produces a formatted string that describes the binding of +/// Produces a formatted string that describes the binding of /// template parameters to template arguments. std::string Sema::getTemplateArgumentBindingsText(const TemplateParameterList *Params, @@ -9883,7 +9883,7 @@ } namespace { -/// \brief Walk the path from which a declaration was instantiated, and check +/// Walk the path from which a declaration was instantiated, and check /// that every explicit specialization along that path is visible. This enforces /// C++ [temp.expl.spec]/6: /// @@ -10019,7 +10019,7 @@ ExplicitSpecializationVisibilityChecker(*this, Loc).check(Spec); } -/// \brief Check whether a template partial specialization that we've discovered +/// Check whether a template partial specialization that we've discovered /// is hidden, and produce suitable diagnostics if so. void Sema::checkPartialSpecializationVisibility(SourceLocation Loc, NamedDecl *Spec) { Index: cfe/trunk/lib/Sema/SemaTemplateDeduction.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaTemplateDeduction.cpp +++ cfe/trunk/lib/Sema/SemaTemplateDeduction.cpp @@ -59,39 +59,39 @@ namespace clang { - /// \brief Various flags that control template argument deduction. + /// Various flags that control template argument deduction. /// /// These flags can be bitwise-OR'd together. enum TemplateDeductionFlags { - /// \brief No template argument deduction flags, which indicates the + /// No template argument deduction flags, which indicates the /// strictest results for template argument deduction (as used for, e.g., /// matching class template partial specializations). TDF_None = 0, - /// \brief Within template argument deduction from a function call, we are + /// Within template argument deduction from a function call, we are /// matching with a parameter type for which the original parameter was /// a reference. TDF_ParamWithReferenceType = 0x1, - /// \brief Within template argument deduction from a function call, we + /// Within template argument deduction from a function call, we /// are matching in a case where we ignore cv-qualifiers. TDF_IgnoreQualifiers = 0x02, - /// \brief Within template argument deduction from a function call, + /// Within template argument deduction from a function call, /// we are matching in a case where we can perform template argument /// deduction from a template-id of a derived class of the argument type. TDF_DerivedClass = 0x04, - /// \brief Allow non-dependent types to differ, e.g., when performing + /// Allow non-dependent types to differ, e.g., when performing /// template argument deduction from a function call where conversions /// may apply. TDF_SkipNonDependent = 0x08, - /// \brief Whether we are performing template argument deduction for + /// Whether we are performing template argument deduction for /// parameters and arguments in a top-level template argument TDF_TopLevelParameterTypeList = 0x10, - /// \brief Within template argument deduction from overload resolution per + /// Within template argument deduction from overload resolution per /// C++ [over.over] allow matching function types that are compatible in /// terms of noreturn and default calling convention adjustments, or /// similarly matching a declared template specialization against a @@ -105,7 +105,7 @@ using namespace clang; using namespace sema; -/// \brief Compare two APSInts, extending and switching the sign as +/// Compare two APSInts, extending and switching the sign as /// necessary to compare their values regardless of underlying type. static bool hasSameExtendedValue(llvm::APSInt X, llvm::APSInt Y) { if (Y.getBitWidth() > X.getBitWidth()) @@ -163,7 +163,7 @@ bool OnlyDeduced, unsigned Level, llvm::SmallBitVector &Deduced); -/// \brief If the given expression is of a form that permits the deduction +/// If the given expression is of a form that permits the deduction /// of a non-type template parameter, return the declaration of that /// non-type template parameter. static NonTypeTemplateParmDecl * @@ -188,7 +188,7 @@ return nullptr; } -/// \brief Determine whether two declaration pointers refer to the same +/// Determine whether two declaration pointers refer to the same /// declaration. static bool isSameDeclaration(Decl *X, Decl *Y) { if (NamedDecl *NX = dyn_cast<NamedDecl>(X)) @@ -199,7 +199,7 @@ return X->getCanonicalDecl() == Y->getCanonicalDecl(); } -/// \brief Verify that the given, deduced template arguments are compatible. +/// Verify that the given, deduced template arguments are compatible. /// /// \returns The deduced template argument, or a NULL template argument if /// the deduced template arguments were incompatible. @@ -362,7 +362,7 @@ llvm_unreachable("Invalid TemplateArgument Kind!"); } -/// \brief Deduce the value of the given non-type template parameter +/// Deduce the value of the given non-type template parameter /// as the given deduced template argument. All non-type template parameter /// deduction is funneled through here. static Sema::TemplateDeductionResult DeduceNonTypeTemplateArgument( @@ -410,7 +410,7 @@ /*ArrayBound=*/NewDeduced.wasDeducedFromArrayBound()); } -/// \brief Deduce the value of the given non-type template parameter +/// Deduce the value of the given non-type template parameter /// from the given integral constant. static Sema::TemplateDeductionResult DeduceNonTypeTemplateArgument( Sema &S, TemplateParameterList *TemplateParams, @@ -424,7 +424,7 @@ ValueType, Info, Deduced); } -/// \brief Deduce the value of the given non-type template parameter +/// Deduce the value of the given non-type template parameter /// from the given null pointer template argument type. static Sema::TemplateDeductionResult DeduceNullPtrTemplateArgument( Sema &S, TemplateParameterList *TemplateParams, @@ -441,7 +441,7 @@ Value->getType(), Info, Deduced); } -/// \brief Deduce the value of the given non-type template parameter +/// Deduce the value of the given non-type template parameter /// from the given type- or value-dependent expression. /// /// \returns true if deduction succeeded, false otherwise. @@ -454,7 +454,7 @@ Value->getType(), Info, Deduced); } -/// \brief Deduce the value of the given non-type template parameter +/// Deduce the value of the given non-type template parameter /// from the given declaration. /// /// \returns true if deduction succeeded, false otherwise. @@ -514,7 +514,7 @@ return Sema::TDK_NonDeducedMismatch; } -/// \brief Deduce the template arguments by comparing the template parameter +/// Deduce the template arguments by comparing the template parameter /// type (which is a template-id) with the template argument type. /// /// \param S the Sema @@ -599,7 +599,7 @@ Deduced, /*NumberOfArgumentsMustMatch=*/true); } -/// \brief Determines whether the given type is an opaque type that +/// Determines whether the given type is an opaque type that /// might be more qualified when instantiated. static bool IsPossiblyOpaquelyQualifiedType(QualType T) { switch (T->getTypeClass()) { @@ -623,7 +623,7 @@ } } -/// \brief Retrieve the depth and index of a template parameter. +/// Retrieve the depth and index of a template parameter. static std::pair<unsigned, unsigned> getDepthAndIndex(NamedDecl *ND) { if (TemplateTypeParmDecl *TTP = dyn_cast<TemplateTypeParmDecl>(ND)) @@ -636,7 +636,7 @@ return std::make_pair(TTP->getDepth(), TTP->getIndex()); } -/// \brief Retrieve the depth and index of an unexpanded parameter pack. +/// Retrieve the depth and index of an unexpanded parameter pack. static std::pair<unsigned, unsigned> getDepthAndIndex(UnexpandedParameterPack UPP) { if (const TemplateTypeParmType *TTP @@ -646,7 +646,7 @@ return getDepthAndIndex(UPP.first.get<NamedDecl *>()); } -/// \brief Helper function to build a TemplateParameter when we don't +/// Helper function to build a TemplateParameter when we don't /// know its type statically. static TemplateParameter makeTemplateParameter(Decl *D) { if (TemplateTypeParmDecl *TTP = dyn_cast<TemplateTypeParmDecl>(D)) @@ -805,7 +805,7 @@ ++PackElements; } - /// \brief Finish template argument deduction for a set of argument packs, + /// Finish template argument deduction for a set of argument packs, /// producing the argument packs and checking for consistency with prior /// deductions. Sema::TemplateDeductionResult finish() { @@ -897,7 +897,7 @@ } // namespace -/// \brief Deduce the template arguments by comparing the list of parameter +/// Deduce the template arguments by comparing the list of parameter /// types to the list of argument types, as in the parameter-type-lists of /// function types (C++ [temp.deduct.type]p10). /// @@ -1019,7 +1019,7 @@ return Sema::TDK_Success; } -/// \brief Determine whether the parameter has qualifiers that are either +/// Determine whether the parameter has qualifiers that are either /// inconsistent with or a superset of the argument's qualifiers. static bool hasInconsistentOrSupersetQualifiersOf(QualType ParamType, QualType ArgType) { @@ -1050,7 +1050,7 @@ == ParamQs.getCVRQualifiers()); } -/// \brief Compare types for equality with respect to possibly compatible +/// Compare types for equality with respect to possibly compatible /// function types (noreturn adjustment, implicit calling conventions). If any /// of parameter and argument is not a function, just perform type comparison. /// @@ -1102,7 +1102,7 @@ return false; } -/// \brief Deduce the template arguments by comparing the parameter type and +/// Deduce the template arguments by comparing the parameter type and /// the argument type (C++ [temp.deduct.type]). /// /// \param S the semantic analysis object within which we are deducing @@ -2078,7 +2078,7 @@ llvm_unreachable("Invalid TemplateArgument Kind!"); } -/// \brief Determine whether there is a template argument to be used for +/// Determine whether there is a template argument to be used for /// deduction. /// /// This routine "expands" argument packs in-place, overriding its input @@ -2101,7 +2101,7 @@ return ArgIdx < Args.size(); } -/// \brief Determine whether the given set of template arguments has a pack +/// Determine whether the given set of template arguments has a pack /// expansion that is not the last template argument. static bool hasPackExpansionBeforeEnd(ArrayRef<TemplateArgument> Args) { bool FoundPackExpansion = false; @@ -2216,7 +2216,7 @@ /*NumberOfArgumentsMustMatch*/false); } -/// \brief Determine whether two template arguments are the same. +/// Determine whether two template arguments are the same. static bool isSameTemplateArg(ASTContext &Context, TemplateArgument X, const TemplateArgument &Y, @@ -2277,7 +2277,7 @@ llvm_unreachable("Invalid TemplateArgument Kind!"); } -/// \brief Allocate a TemplateArgumentLoc where all locations have +/// Allocate a TemplateArgumentLoc where all locations have /// been initialized to the given location. /// /// \param Arg The template argument we are producing template argument @@ -2352,7 +2352,7 @@ llvm_unreachable("Invalid TemplateArgument Kind!"); } -/// \brief Convert the given deduced template argument and add it to the set of +/// Convert the given deduced template argument and add it to the set of /// fully-converted template arguments. static bool ConvertDeducedTemplateArgument(Sema &S, NamedDecl *Param, @@ -2707,7 +2707,7 @@ } -/// \brief Perform template argument deduction to determine whether +/// Perform template argument deduction to determine whether /// the given template arguments match the given class template /// partial specialization per C++ [temp.class.spec.match]. Sema::TemplateDeductionResult @@ -2750,7 +2750,7 @@ *this, Partial, /*PartialOrdering=*/false, TemplateArgs, Deduced, Info); } -/// \brief Perform template argument deduction to determine whether +/// Perform template argument deduction to determine whether /// the given template arguments match the given variable template /// partial specialization per C++ [temp.class.spec.match]. Sema::TemplateDeductionResult @@ -2791,7 +2791,7 @@ *this, Partial, /*PartialOrdering=*/false, TemplateArgs, Deduced, Info); } -/// \brief Determine whether the given type T is a simple-template-id type. +/// Determine whether the given type T is a simple-template-id type. static bool isSimpleTemplateIdType(QualType T) { if (const TemplateSpecializationType *Spec = T->getAs<TemplateSpecializationType>()) @@ -2811,7 +2811,7 @@ return false; } -/// \brief Substitute the explicitly-provided template arguments into the +/// Substitute the explicitly-provided template arguments into the /// given function template according to C++ [temp.arg.explicit]. /// /// \param FunctionTemplate the function template into which the explicit @@ -3018,7 +3018,7 @@ return TDK_Success; } -/// \brief Check whether the deduced argument type for a call to a function +/// Check whether the deduced argument type for a call to a function /// template matches the actual argument type per C++ [temp.deduct.call]p4. static Sema::TemplateDeductionResult CheckOriginalCallArgDeduction(Sema &S, TemplateDeductionInfo &Info, @@ -3164,7 +3164,7 @@ llvm_unreachable("parameter index would not be produced from template"); } -/// \brief Finish template argument deduction for a function template, +/// Finish template argument deduction for a function template, /// checking the deduced template arguments for completeness and forming /// the function template specialization. /// @@ -3436,7 +3436,7 @@ return Match; } -/// \brief Perform the adjustments to the parameter and argument types +/// Perform the adjustments to the parameter and argument types /// described in C++ [temp.deduct.call]. /// /// \returns true if the caller should not attempt to perform any template @@ -3543,7 +3543,7 @@ SmallVectorImpl<Sema::OriginalCallArg> &OriginalCallArgs, bool DecomposedParam, unsigned ArgIdx, unsigned TDF); -/// \brief Attempt template argument deduction from an initializer list +/// Attempt template argument deduction from an initializer list /// deemed to be an argument in a function call. static Sema::TemplateDeductionResult DeduceFromInitializerList( Sema &S, TemplateParameterList *TemplateParams, QualType AdjustedParamType, @@ -3604,7 +3604,7 @@ return Sema::TDK_Success; } -/// \brief Perform template argument deduction per [temp.deduct.call] for a +/// Perform template argument deduction per [temp.deduct.call] for a /// single parameter / argument pair. static Sema::TemplateDeductionResult DeduceTemplateArgumentsFromCallArgument( Sema &S, TemplateParameterList *TemplateParams, unsigned FirstInnerIndex, @@ -3637,7 +3637,7 @@ ArgType, Info, Deduced, TDF); } -/// \brief Perform template argument deduction from a function call +/// Perform template argument deduction from a function call /// (C++ [temp.deduct.call]). /// /// \param FunctionTemplate the function template for which we are performing @@ -3848,7 +3848,7 @@ ArgFunctionTypeP->getParamTypes(), EPI); } -/// \brief Deduce template arguments when taking the address of a function +/// Deduce template arguments when taking the address of a function /// template (C++ [temp.deduct.funcaddr]) or matching a specialization to /// a template. /// @@ -3990,7 +3990,7 @@ return TDK_Success; } -/// \brief Deduce template arguments for a templated conversion +/// Deduce template arguments for a templated conversion /// function (C++ [temp.deduct.conv]) and, if successful, produce a /// conversion function template specialization. Sema::TemplateDeductionResult @@ -4100,7 +4100,7 @@ return Result; } -/// \brief Deduce template arguments for a function template when there is +/// Deduce template arguments for a function template when there is /// nothing to deduce against (C++0x [temp.arg.explicit]p3). /// /// \param FunctionTemplate the function template for which we are performing @@ -4239,7 +4239,7 @@ } } -/// \brief Deduce the type for an auto type-specifier (C++11 [dcl.spec.auto]p6) +/// Deduce the type for an auto type-specifier (C++11 [dcl.spec.auto]p6) /// /// Note that this is done even if the initializer is dependent. (This is /// necessary to support partial ordering of templates using 'auto'.) @@ -4498,7 +4498,7 @@ return StillUndeduced; } -/// \brief If this is a non-static member function, +/// If this is a non-static member function, static void AddImplicitObjectParameterType(ASTContext &Context, CXXMethodDecl *Method, @@ -4520,7 +4520,7 @@ ArgTypes.push_back(ArgTy); } -/// \brief Determine whether the function template \p FT1 is at least as +/// Determine whether the function template \p FT1 is at least as /// specialized as \p FT2. static bool isAtLeastAsSpecializedAs(Sema &S, SourceLocation Loc, @@ -4671,7 +4671,7 @@ return true; } -/// \brief Determine whether this a function template whose parameter-type-list +/// Determine whether this a function template whose parameter-type-list /// ends with a function parameter pack. static bool isVariadicFunctionTemplate(FunctionTemplateDecl *FunTmpl) { FunctionDecl *Function = FunTmpl->getTemplatedDecl(); @@ -4692,7 +4692,7 @@ return true; } -/// \brief Returns the more specialized function template according +/// Returns the more specialized function template according /// to the rules of function template partial ordering (C++ [temp.func.order]). /// /// \param FT1 the first function template @@ -4739,7 +4739,7 @@ return nullptr; } -/// \brief Determine if the two templates are equivalent. +/// Determine if the two templates are equivalent. static bool isSameTemplate(TemplateDecl *T1, TemplateDecl *T2) { if (T1 == T2) return true; @@ -4750,7 +4750,7 @@ return T1->getCanonicalDecl() == T2->getCanonicalDecl(); } -/// \brief Retrieve the most specialized of the given function template +/// Retrieve the most specialized of the given function template /// specializations. /// /// \param SpecBegin the start iterator of the function template @@ -4909,7 +4909,7 @@ return true; } -/// \brief Returns the more specialized class template partial specialization +/// Returns the more specialized class template partial specialization /// according to the rules of partial ordering of class template partial /// specializations (C++ [temp.class.order]). /// @@ -5064,7 +5064,7 @@ return isAtLeastAsSpecializedAs(*this, PType, AType, AArg, Info); } -/// \brief Mark the template parameters that are used by the given +/// Mark the template parameters that are used by the given /// expression. static void MarkUsedTemplateParameters(ASTContext &Ctx, @@ -5108,7 +5108,7 @@ MarkUsedTemplateParameters(Ctx, NTTP->getType(), OnlyDeduced, Depth, Used); } -/// \brief Mark the template parameters that are used by the given +/// Mark the template parameters that are used by the given /// nested name specifier. static void MarkUsedTemplateParameters(ASTContext &Ctx, @@ -5125,7 +5125,7 @@ OnlyDeduced, Depth, Used); } -/// \brief Mark the template parameters that are used by the given +/// Mark the template parameters that are used by the given /// template name. static void MarkUsedTemplateParameters(ASTContext &Ctx, @@ -5150,7 +5150,7 @@ Depth, Used); } -/// \brief Mark the template parameters that are used by the given +/// Mark the template parameters that are used by the given /// type. static void MarkUsedTemplateParameters(ASTContext &Ctx, QualType T, @@ -5403,7 +5403,7 @@ } } -/// \brief Mark the template parameters that are used by this +/// Mark the template parameters that are used by this /// template argument. static void MarkUsedTemplateParameters(ASTContext &Ctx, @@ -5446,7 +5446,7 @@ } } -/// \brief Mark which template parameters can be deduced from a given +/// Mark which template parameters can be deduced from a given /// template argument list. /// /// \param TemplateArgs the template argument list from which template @@ -5472,7 +5472,7 @@ Depth, Used); } -/// \brief Marks all of the template parameters that will be deduced by a +/// Marks all of the template parameters that will be deduced by a /// call to the given function template. void Sema::MarkDeducedTemplateParameters( ASTContext &Ctx, const FunctionTemplateDecl *FunctionTemplate, Index: cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp +++ cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp @@ -34,7 +34,7 @@ // Template Instantiation Support //===----------------------------------------------------------------------===/ -/// \brief Retrieve the template argument list(s) that should be used to +/// Retrieve the template argument list(s) that should be used to /// instantiate the definition of the given declaration. /// /// \param D the declaration for which we are computing template instantiation @@ -427,7 +427,7 @@ return true; } -/// \brief Prints the current instantiation stack through a series of +/// Prints the current instantiation stack through a series of /// notes. void Sema::PrintInstantiationStack() { // Determine which template instantiations to skip, if any. @@ -708,7 +708,7 @@ return None; } -/// \brief Retrieve the depth and index of a parameter pack. +/// Retrieve the depth and index of a parameter pack. static std::pair<unsigned, unsigned> getDepthAndIndex(NamedDecl *ND) { if (TemplateTypeParmDecl *TTP = dyn_cast<TemplateTypeParmDecl>(ND)) @@ -740,20 +740,20 @@ : inherited(SemaRef), TemplateArgs(TemplateArgs), Loc(Loc), Entity(Entity) { } - /// \brief Determine whether the given type \p T has already been + /// Determine whether the given type \p T has already been /// transformed. /// /// For the purposes of template instantiation, a type has already been /// transformed if it is NULL or if it is not dependent. bool AlreadyTransformed(QualType T); - /// \brief Returns the location of the entity being instantiated, if known. + /// Returns the location of the entity being instantiated, if known. SourceLocation getBaseLocation() { return Loc; } - /// \brief Returns the name of the entity being instantiated, if any. + /// Returns the name of the entity being instantiated, if any. DeclarationName getBaseEntity() { return Entity; } - /// \brief Sets the "base" location and entity when that + /// Sets the "base" location and entity when that /// information is known based on another transformation. void setBase(SourceLocation Loc, DeclarationName Entity) { this->Loc = Loc; @@ -808,7 +808,7 @@ } } - /// \brief Transform the given declaration by instantiating a reference to + /// Transform the given declaration by instantiating a reference to /// this declaration. Decl *TransformDecl(SourceLocation Loc, Decl *D); @@ -839,15 +839,15 @@ SemaRef.PerformDependentDiagnostics(DC, TemplateArgs); } - /// \brief Transform the definition of the given declaration by + /// Transform the definition of the given declaration by /// instantiating it. Decl *TransformDefinition(SourceLocation Loc, Decl *D); - /// \brief Transform the first qualifier within a scope by instantiating the + /// Transform the first qualifier within a scope by instantiating the /// declaration. NamedDecl *TransformFirstQualifierInScope(NamedDecl *D, SourceLocation Loc); - /// \brief Rebuild the exception declaration and register the declaration + /// Rebuild the exception declaration and register the declaration /// as an instantiated local. VarDecl *RebuildExceptionDecl(VarDecl *ExceptionDecl, TypeSourceInfo *Declarator, @@ -855,12 +855,12 @@ SourceLocation NameLoc, IdentifierInfo *Name); - /// \brief Rebuild the Objective-C exception declaration and register the + /// Rebuild the Objective-C exception declaration and register the /// declaration as an instantiated local. VarDecl *RebuildObjCExceptionDecl(VarDecl *ExceptionDecl, TypeSourceInfo *TSInfo, QualType T); - /// \brief Check for tag mismatches when instantiating an + /// Check for tag mismatches when instantiating an /// elaborated type. QualType RebuildElaboratedType(SourceLocation KeywordLoc, ElaboratedTypeKeyword Keyword, @@ -885,14 +885,14 @@ ExprResult TransformSubstNonTypeTemplateParmPackExpr( SubstNonTypeTemplateParmPackExpr *E); - /// \brief Rebuild a DeclRefExpr for a ParmVarDecl reference. + /// Rebuild a DeclRefExpr for a ParmVarDecl reference. ExprResult RebuildParmVarDeclRefExpr(ParmVarDecl *PD, SourceLocation Loc); - /// \brief Transform a reference to a function parameter pack. + /// Transform a reference to a function parameter pack. ExprResult TransformFunctionParmPackRefExpr(DeclRefExpr *E, ParmVarDecl *PD); - /// \brief Transform a FunctionParmPackExpr which was built when we couldn't + /// Transform a FunctionParmPackExpr which was built when we couldn't /// expand a function parameter pack reference which refers to an expanded /// pack. ExprResult TransformFunctionParmPackExpr(FunctionParmPackExpr *E); @@ -915,12 +915,12 @@ Optional<unsigned> NumExpansions, bool ExpectParameterPack); - /// \brief Transforms a template type parameter type by performing + /// Transforms a template type parameter type by performing /// substitution of the corresponding template type argument. QualType TransformTemplateTypeParmType(TypeLocBuilder &TLB, TemplateTypeParmTypeLoc TL); - /// \brief Transforms an already-substituted template type parameter pack + /// Transforms an already-substituted template type parameter pack /// into either itself (if we aren't substituting into its pack expansion) /// or the appropriate substituted argument. QualType TransformSubstTemplateTypeParmPackType(TypeLocBuilder &TLB, @@ -1540,7 +1540,7 @@ return Result; } -/// \brief Perform substitution on the type T with a given set of template +/// Perform substitution on the type T with a given set of template /// arguments. /// /// This routine substitutes the given template arguments into the @@ -1835,7 +1835,7 @@ return NewParm; } -/// \brief Substitute the given template arguments into the given set of +/// Substitute the given template arguments into the given set of /// parameters, producing the set of parameter types that would be generated /// from such a substitution. bool Sema::SubstParmTypes( @@ -1855,7 +1855,7 @@ Loc, Params, nullptr, ExtParamInfos, ParamTypes, OutParams, ParamInfos); } -/// \brief Perform substitution on the base class specifiers of the +/// Perform substitution on the base class specifiers of the /// given class template specialization. /// /// Produces a diagnostic and returns true on error, returns false and @@ -1975,7 +1975,7 @@ } } -/// \brief Instantiate the definition of a class from a given pattern. +/// Instantiate the definition of a class from a given pattern. /// /// \param PointOfInstantiation The point of instantiation within the /// source code. @@ -2011,7 +2011,7 @@ return true; Pattern = PatternDef; - // \brief Record the point of instantiation. + // Record the point of instantiation. if (MemberSpecializationInfo *MSInfo = Instantiation->getMemberSpecializationInfo()) { MSInfo->setTemplateSpecializationKind(TSK); @@ -2215,7 +2215,7 @@ return Instantiation->isInvalidDecl(); } -/// \brief Instantiate the definition of an enum from a given pattern. +/// Instantiate the definition of an enum from a given pattern. /// /// \param PointOfInstantiation The point of instantiation within the /// source code. @@ -2281,7 +2281,7 @@ } -/// \brief Instantiate the definition of a field from the given pattern. +/// Instantiate the definition of a field from the given pattern. /// /// \param PointOfInstantiation The point of instantiation within the /// source code. @@ -2359,7 +2359,7 @@ } namespace { - /// \brief A partial specialization whose template arguments have matched + /// A partial specialization whose template arguments have matched /// a given template-id. struct PartialSpecMatchResult { ClassTemplatePartialSpecializationDecl *Partial; @@ -2544,7 +2544,7 @@ Complain); } -/// \brief Instantiates the definitions of all of the member +/// Instantiates the definitions of all of the member /// of the given class, which is an instantiation of a class template /// or a member class of a template. void @@ -2751,7 +2751,7 @@ } } -/// \brief Instantiate the definitions of all of the members of the +/// Instantiate the definitions of all of the members of the /// given class template specialization, which was named as part of an /// explicit instantiation. void @@ -2827,7 +2827,7 @@ return Instantiator.TransformNestedNameSpecifierLoc(NNS); } -/// \brief Do template substitution on declaration name info. +/// Do template substitution on declaration name info. DeclarationNameInfo Sema::SubstDeclarationNameInfo(const DeclarationNameInfo &NameInfo, const MultiLevelTemplateArgumentList &TemplateArgs) { Index: cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp +++ cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp @@ -1556,7 +1556,7 @@ return Record; } -/// \brief Adjust the given function type for an instantiation of the +/// Adjust the given function type for an instantiation of the /// given declaration, to cope with modifications to the function's type that /// aren't reflected in the type-source information. /// @@ -3086,7 +3086,7 @@ return Instantiator.Visit(D); } -/// \brief Instantiates a nested template parameter list in the current +/// Instantiates a nested template parameter list in the current /// instantiation context. /// /// \param L The parameter list to instantiate @@ -3129,7 +3129,7 @@ return Instantiator.SubstTemplateParams(Params); } -/// \brief Instantiate the declaration of a class template partial +/// Instantiate the declaration of a class template partial /// specialization. /// /// \param ClassTemplate the (instantiated) class template that is partially @@ -3263,7 +3263,7 @@ return InstPartialSpec; } -/// \brief Instantiate the declaration of a variable template partial +/// Instantiate the declaration of a variable template partial /// specialization. /// /// \param VarTemplate the (instantiated) variable template that is partially @@ -3605,7 +3605,7 @@ TemplateArgs); } -/// \brief Initializes the common fields of an instantiation function +/// Initializes the common fields of an instantiation function /// declaration (New) from the corresponding fields of its template (Tmpl). /// /// \returns true if there was an error @@ -3693,7 +3693,7 @@ return false; } -/// \brief Initializes common fields of an instantiated method +/// Initializes common fields of an instantiated method /// declaration (New) from the corresponding fields of its template /// (Tmpl). /// @@ -3757,7 +3757,7 @@ } } -/// \brief Instantiate the definition of the given function from its +/// Instantiate the definition of the given function from its /// template. /// /// \param PointOfInstantiation the point at which the instantiation was @@ -4033,7 +4033,7 @@ VarTemplate, FromVar, InsertPos, TemplateArgsInfo, Converted)); } -/// \brief Instantiates a variable template specialization by completing it +/// Instantiates a variable template specialization by completing it /// with appropriate type information and initializer. VarTemplateSpecializationDecl *Sema::CompleteVarTemplateSpecializationDecl( VarTemplateSpecializationDecl *VarSpec, VarDecl *PatternDecl, @@ -4157,7 +4157,7 @@ DiagnoseUnusedDecl(NewVar); } -/// \brief Instantiate the initializer of a variable. +/// Instantiate the initializer of a variable. void Sema::InstantiateVariableInitializer( VarDecl *Var, VarDecl *OldVar, const MultiLevelTemplateArgumentList &TemplateArgs) { @@ -4223,7 +4223,7 @@ } } -/// \brief Instantiate the definition of the given variable from its +/// Instantiate the definition of the given variable from its /// template. /// /// \param PointOfInstantiation the point at which the instantiation was @@ -4842,7 +4842,7 @@ return nullptr; } -/// \brief Finds the instantiation of the given declaration context +/// Finds the instantiation of the given declaration context /// within the current instantiation. /// /// \returns NULL if there was an error @@ -4854,7 +4854,7 @@ } else return DC; } -/// \brief Find the instantiation of the given declaration within the +/// Find the instantiation of the given declaration within the /// current instantiation. /// /// This routine is intended to be used when \p D is a declaration @@ -5167,7 +5167,7 @@ return D; } -/// \brief Performs template instantiation for all implicit template +/// Performs template instantiation for all implicit template /// instantiations we have seen until this point. void Sema::PerformPendingInstantiations(bool LocalOnly) { while (!PendingLocalImplicitInstantiations.empty() || Index: cfe/trunk/lib/Sema/SemaTemplateVariadic.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaTemplateVariadic.cpp +++ cfe/trunk/lib/Sema/SemaTemplateVariadic.cpp @@ -26,7 +26,7 @@ // Visitor that collects unexpanded parameter packs //---------------------------------------------------------------------------- -/// \brief Retrieve the depth and index of a parameter pack. +/// Retrieve the depth and index of a parameter pack. static std::pair<unsigned, unsigned> getDepthAndIndex(NamedDecl *ND) { if (TemplateTypeParmDecl *TTP = dyn_cast<TemplateTypeParmDecl>(ND)) @@ -40,7 +40,7 @@ } namespace { - /// \brief A class that collects unexpanded parameter packs. + /// A class that collects unexpanded parameter packs. class CollectUnexpandedParameterPacksVisitor : public RecursiveASTVisitor<CollectUnexpandedParameterPacksVisitor> { @@ -83,14 +83,14 @@ // Recording occurrences of (unexpanded) parameter packs. //------------------------------------------------------------------------ - /// \brief Record occurrences of template type parameter packs. + /// Record occurrences of template type parameter packs. bool VisitTemplateTypeParmTypeLoc(TemplateTypeParmTypeLoc TL) { if (TL.getTypePtr()->isParameterPack()) addUnexpanded(TL.getTypePtr(), TL.getNameLoc()); return true; } - /// \brief Record occurrences of template type parameter packs + /// Record occurrences of template type parameter packs /// when we don't have proper source-location information for /// them. /// @@ -102,7 +102,7 @@ return true; } - /// \brief Record occurrences of function and non-type template + /// Record occurrences of function and non-type template /// parameter packs in an expression. bool VisitDeclRefExpr(DeclRefExpr *E) { if (E->getDecl()->isParameterPack()) @@ -111,7 +111,7 @@ return true; } - /// \brief Record occurrences of template template parameter packs. + /// Record occurrences of template template parameter packs. bool TraverseTemplateName(TemplateName Template) { if (auto *TTP = dyn_cast_or_null<TemplateTemplateParmDecl>( Template.getAsTemplateDecl())) { @@ -122,7 +122,7 @@ return inherited::TraverseTemplateName(Template); } - /// \brief Suppress traversal into Objective-C container literal + /// Suppress traversal into Objective-C container literal /// elements that are pack expansions. bool TraverseObjCDictionaryLiteral(ObjCDictionaryLiteral *E) { if (!E->containsUnexpandedParameterPack()) @@ -142,7 +142,7 @@ // Pruning the search for unexpanded parameter packs. //------------------------------------------------------------------------ - /// \brief Suppress traversal into statements and expressions that + /// Suppress traversal into statements and expressions that /// do not contain unexpanded parameter packs. bool TraverseStmt(Stmt *S) { Expr *E = dyn_cast_or_null<Expr>(S); @@ -152,7 +152,7 @@ return true; } - /// \brief Suppress traversal into types that do not contain + /// Suppress traversal into types that do not contain /// unexpanded parameter packs. bool TraverseType(QualType T) { if ((!T.isNull() && T->containsUnexpandedParameterPack()) || InLambda) @@ -161,7 +161,7 @@ return true; } - /// \brief Suppress traversal into types with location information + /// Suppress traversal into types with location information /// that do not contain unexpanded parameter packs. bool TraverseTypeLoc(TypeLoc TL) { if ((!TL.getType().isNull() && @@ -172,7 +172,7 @@ return true; } - /// \brief Suppress traversal of parameter packs. + /// Suppress traversal of parameter packs. bool TraverseDecl(Decl *D) { // A function parameter pack is a pack expansion, so cannot contain // an unexpanded parameter pack. Likewise for a template parameter @@ -183,7 +183,7 @@ return inherited::TraverseDecl(D); } - /// \brief Suppress traversal of pack-expanded attributes. + /// Suppress traversal of pack-expanded attributes. bool TraverseAttr(Attr *A) { if (A->isPackExpansion()) return true; @@ -191,7 +191,7 @@ return inherited::TraverseAttr(A); } - /// \brief Suppress traversal of pack expansion expressions and types. + /// Suppress traversal of pack expansion expressions and types. ///@{ bool TraversePackExpansionType(PackExpansionType *T) { return true; } bool TraversePackExpansionTypeLoc(PackExpansionTypeLoc TL) { return true; } @@ -200,7 +200,7 @@ ///@} - /// \brief Suppress traversal of using-declaration pack expansion. + /// Suppress traversal of using-declaration pack expansion. bool TraverseUnresolvedUsingValueDecl(UnresolvedUsingValueDecl *D) { if (D->isPackExpansion()) return true; @@ -208,7 +208,7 @@ return inherited::TraverseUnresolvedUsingValueDecl(D); } - /// \brief Suppress traversal of using-declaration pack expansion. + /// Suppress traversal of using-declaration pack expansion. bool TraverseUnresolvedUsingTypenameDecl(UnresolvedUsingTypenameDecl *D) { if (D->isPackExpansion()) return true; @@ -216,7 +216,7 @@ return inherited::TraverseUnresolvedUsingTypenameDecl(D); } - /// \brief Suppress traversal of template argument pack expansions. + /// Suppress traversal of template argument pack expansions. bool TraverseTemplateArgument(const TemplateArgument &Arg) { if (Arg.isPackExpansion()) return true; @@ -224,7 +224,7 @@ return inherited::TraverseTemplateArgument(Arg); } - /// \brief Suppress traversal of template argument pack expansions. + /// Suppress traversal of template argument pack expansions. bool TraverseTemplateArgumentLoc(const TemplateArgumentLoc &ArgLoc) { if (ArgLoc.getArgument().isPackExpansion()) return true; @@ -232,7 +232,7 @@ return inherited::TraverseTemplateArgumentLoc(ArgLoc); } - /// \brief Suppress traversal of base specifier pack expansions. + /// Suppress traversal of base specifier pack expansions. bool TraverseCXXBaseSpecifier(const CXXBaseSpecifier &Base) { if (Base.isPackExpansion()) return true; @@ -240,7 +240,7 @@ return inherited::TraverseCXXBaseSpecifier(Base); } - /// \brief Suppress traversal of mem-initializer pack expansions. + /// Suppress traversal of mem-initializer pack expansions. bool TraverseConstructorInitializer(CXXCtorInitializer *Init) { if (Init->isPackExpansion()) return true; @@ -248,7 +248,7 @@ return inherited::TraverseConstructorInitializer(Init); } - /// \brief Note whether we're traversing a lambda containing an unexpanded + /// Note whether we're traversing a lambda containing an unexpanded /// parameter pack. In this case, the unexpanded pack can occur anywhere, /// including all the places where we normally wouldn't look. Within a /// lambda, we don't propagate the 'contains unexpanded parameter pack' bit @@ -284,7 +284,7 @@ }; } -/// \brief Determine whether it's possible for an unexpanded parameter pack to +/// Determine whether it's possible for an unexpanded parameter pack to /// be valid in this location. This only happens when we're in a declaration /// that is nested within an expression that could be expanded, such as a /// lambda-expression within a function call. @@ -298,7 +298,7 @@ return false; } -/// \brief Diagnose all of the unexpanded parameter packs in the given +/// Diagnose all of the unexpanded parameter packs in the given /// vector. bool Sema::DiagnoseUnexpandedParameterPacks(SourceLocation Loc, @@ -917,7 +917,7 @@ } -/// \brief Called when an expression computing the size of a parameter pack +/// Called when an expression computing the size of a parameter pack /// is parsed. /// /// \code Index: cfe/trunk/lib/Sema/SemaType.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaType.cpp +++ cfe/trunk/lib/Sema/SemaType.cpp @@ -615,7 +615,7 @@ state.addIgnoredTypeAttr(attr); } -/// \brief Given that there are attributes written on the declarator +/// Given that there are attributes written on the declarator /// itself, try to distribute any type attributes to the appropriate /// declarator chunk. /// @@ -1225,7 +1225,7 @@ return OpenCLAccessAttr::Keyword_read_only; } -/// \brief Convert the specified declspec to the appropriate type +/// Convert the specified declspec to the appropriate type /// object. /// \param state Specifies the declarator containing the declaration specifier /// to be converted, along with other associated processing state. @@ -1755,7 +1755,7 @@ return BuildQualifiedType(T, Loc, Q, DS); } -/// \brief Build a paren type including \p T. +/// Build a paren type including \p T. QualType Sema::BuildParenType(QualType T) { return Context.getParenType(T); } @@ -1865,7 +1865,7 @@ return true; } -/// \brief Build a pointer type. +/// Build a pointer type. /// /// \param T The type to which we'll be building a pointer. /// @@ -1905,7 +1905,7 @@ return Context.getPointerType(T); } -/// \brief Build a reference type. +/// Build a reference type. /// /// \param T The type to which we'll be building a reference. /// @@ -1967,7 +1967,7 @@ return Context.getRValueReferenceType(T); } -/// \brief Build a Read-only Pipe type. +/// Build a Read-only Pipe type. /// /// \param T The type to which we'll be building a Pipe. /// @@ -1979,7 +1979,7 @@ return Context.getReadPipeType(T); } -/// \brief Build a Write-only Pipe type. +/// Build a Write-only Pipe type. /// /// \param T The type to which we'll be building a Pipe. /// @@ -2013,7 +2013,7 @@ S.LangOpts.OpenCL).isInvalid(); } -/// \brief Build an array type. +/// Build an array type. /// /// \param T The type of each element in the array. /// @@ -2238,7 +2238,7 @@ return T; } -/// \brief Build an ext-vector type. +/// Build an ext-vector type. /// /// Run the required checks for the extended vector type. QualType Sema::BuildExtVectorType(QualType T, Expr *ArraySize, @@ -2409,7 +2409,7 @@ return Context.getFunctionType(T, ParamTypes, EPI); } -/// \brief Build a member pointer type \c T Class::*. +/// Build a member pointer type \c T Class::*. /// /// \param T the type to which the member pointer refers. /// \param Class the class type into which the member pointer points. @@ -2458,7 +2458,7 @@ return Context.getMemberPointerType(T, Class.getTypePtr()); } -/// \brief Build a block pointer type. +/// Build a block pointer type. /// /// \param T The type to which we'll be building a block pointer. /// @@ -5064,7 +5064,7 @@ // TODO: mark whether we did this inference? } -/// \brief Used for transferring ownership in casts resulting in l-values. +/// Used for transferring ownership in casts resulting in l-values. static void transferARCOwnership(TypeProcessingState &state, QualType &declSpecTy, Qualifiers::ObjCLifetime ownership) { @@ -5571,7 +5571,7 @@ DASTL.setAttrOperandParensRange(SourceRange()); } -/// \brief Create and instantiate a TypeSourceInfo with type source information. +/// Create and instantiate a TypeSourceInfo with type source information. /// /// \param T QualType referring to the type as written in source code. /// @@ -5633,7 +5633,7 @@ return TInfo; } -/// \brief Create a LocInfoType to hold the given QualType and TypeSourceInfo. +/// Create a LocInfoType to hold the given QualType and TypeSourceInfo. ParsedType Sema::CreateParsedType(QualType T, TypeSourceInfo *TInfo) { // FIXME: LocInfoTypes are "transient", only needed for passing to/from Parser // and Sema during declaration parsing. Try deallocating/caching them when @@ -6907,7 +6907,7 @@ VectorType::GenericVector); } -/// \brief Process the OpenCL-like ext_vector_type attribute when it occurs on +/// Process the OpenCL-like ext_vector_type attribute when it occurs on /// a type. static void HandleExtVectorTypeAttr(QualType &CurType, const AttributeList &Attr, @@ -7390,7 +7390,7 @@ } } -/// \brief Ensure that the type of the given expression is complete. +/// Ensure that the type of the given expression is complete. /// /// This routine checks whether the expression \p E has a complete type. If the /// expression refers to an instantiable construct, that instantiation is @@ -7427,7 +7427,7 @@ return RequireCompleteExprType(E, Diagnoser); } -/// @brief Ensure that the type T is a complete type. +/// Ensure that the type T is a complete type. /// /// This routine checks whether the type @p T is complete in any /// context where a complete type is required. If @p T is a complete @@ -7471,7 +7471,7 @@ return Ctx.IsStructurallyEquivalent(D, Suggested); } -/// \brief Determine whether there is any declaration of \p D that was ever a +/// Determine whether there is any declaration of \p D that was ever a /// definition (perhaps before module merging) and is currently visible. /// \param D The definition of the entity. /// \param Suggested Filled in with the declaration that should be made visible @@ -7571,7 +7571,7 @@ } } -/// \brief The implementation of RequireCompleteType +/// The implementation of RequireCompleteType bool Sema::RequireCompleteTypeImpl(SourceLocation Loc, QualType T, TypeDiagnoser *Diagnoser) { // FIXME: Add this assertion to make sure we always get instantiation points. @@ -7750,7 +7750,7 @@ return RequireCompleteType(Loc, T, Diagnoser); } -/// \brief Get diagnostic %select index for tag kind for +/// Get diagnostic %select index for tag kind for /// literal type diagnostic message. /// WARNING: Indexes apply to particular diagnostics only! /// @@ -7764,7 +7764,7 @@ } } -/// @brief Ensure that the type T is a literal type. +/// Ensure that the type T is a literal type. /// /// This routine checks whether the type @p T is a literal type. If @p T is an /// incomplete type, an attempt is made to complete it. If @p T is a literal @@ -7863,7 +7863,7 @@ return RequireLiteralType(Loc, T, Diagnoser); } -/// \brief Retrieve a version of the type 'T' that is elaborated by Keyword +/// Retrieve a version of the type 'T' that is elaborated by Keyword /// and qualified by the nested-name-specifier contained in SS. QualType Sema::getElaboratedType(ElaboratedTypeKeyword Keyword, const CXXScopeSpec &SS, QualType T) { Index: cfe/trunk/lib/Sema/TreeTransform.h =================================================================== --- cfe/trunk/lib/Sema/TreeTransform.h +++ cfe/trunk/lib/Sema/TreeTransform.h @@ -41,7 +41,7 @@ namespace clang { using namespace sema; -/// \brief A semantic tree transformation that allows one to transform one +/// A semantic tree transformation that allows one to transform one /// abstract syntax tree into another. /// /// A new tree transformation is defined by creating a new subclass \c X of @@ -94,7 +94,7 @@ /// (\c getBaseLocation(), \c getBaseEntity()). template<typename Derived> class TreeTransform { - /// \brief Private RAII object that helps us forget and then re-remember + /// Private RAII object that helps us forget and then re-remember /// the template argument corresponding to a partially-substituted parameter /// pack. class ForgetPartiallySubstitutedPackRAII { @@ -114,19 +114,19 @@ protected: Sema &SemaRef; - /// \brief The set of local declarations that have been transformed, for + /// The set of local declarations that have been transformed, for /// cases where we are forced to build new declarations within the transformer /// rather than in the subclass (e.g., lambda closure types). llvm::DenseMap<Decl *, Decl *> TransformedLocalDecls; public: - /// \brief Initializes a new tree transformer. + /// Initializes a new tree transformer. TreeTransform(Sema &SemaRef) : SemaRef(SemaRef) { } - /// \brief Retrieves a reference to the derived class. + /// Retrieves a reference to the derived class. Derived &getDerived() { return static_cast<Derived&>(*this); } - /// \brief Retrieves a reference to the derived class. + /// Retrieves a reference to the derived class. const Derived &getDerived() const { return static_cast<const Derived&>(*this); } @@ -134,11 +134,11 @@ static inline ExprResult Owned(Expr *E) { return E; } static inline StmtResult Owned(Stmt *S) { return S; } - /// \brief Retrieves a reference to the semantic analysis object used for + /// Retrieves a reference to the semantic analysis object used for /// this tree transform. Sema &getSema() const { return SemaRef; } - /// \brief Whether the transformation should always rebuild AST nodes, even + /// Whether the transformation should always rebuild AST nodes, even /// if none of the children have changed. /// /// Subclasses may override this function to specify when the transformation @@ -149,7 +149,7 @@ /// statement node appears at most once in its containing declaration. bool AlwaysRebuild() { return SemaRef.ArgumentPackSubstitutionIndex != -1; } - /// \brief Returns the location of the entity being transformed, if that + /// Returns the location of the entity being transformed, if that /// information was not available elsewhere in the AST. /// /// By default, returns no source-location information. Subclasses can @@ -157,21 +157,21 @@ /// information. SourceLocation getBaseLocation() { return SourceLocation(); } - /// \brief Returns the name of the entity being transformed, if that + /// Returns the name of the entity being transformed, if that /// information was not available elsewhere in the AST. /// /// By default, returns an empty name. Subclasses can provide an alternative /// implementation with a more precise name. DeclarationName getBaseEntity() { return DeclarationName(); } - /// \brief Sets the "base" location and entity when that + /// Sets the "base" location and entity when that /// information is known based on another transformation. /// /// By default, the source location and entity are ignored. Subclasses can /// override this function to provide a customized implementation. void setBase(SourceLocation Loc, DeclarationName Entity) { } - /// \brief RAII object that temporarily sets the base location and entity + /// RAII object that temporarily sets the base location and entity /// used for reporting diagnostics in types. class TemporaryBase { TreeTransform &Self; @@ -193,7 +193,7 @@ } }; - /// \brief Determine whether the given type \p T has already been + /// Determine whether the given type \p T has already been /// transformed. /// /// Subclasses can provide an alternative implementation of this routine @@ -204,7 +204,7 @@ return T.isNull(); } - /// \brief Determine whether the given call argument should be dropped, e.g., + /// Determine whether the given call argument should be dropped, e.g., /// because it is a default argument. /// /// Subclasses can provide an alternative implementation of this routine to @@ -214,7 +214,7 @@ return E->isDefaultArgument(); } - /// \brief Determine whether we should expand a pack expansion with the + /// Determine whether we should expand a pack expansion with the /// given set of parameter packs into separate arguments by repeatedly /// transforming the pattern. /// @@ -261,7 +261,7 @@ return false; } - /// \brief "Forget" about the partially-substituted pack template argument, + /// "Forget" about the partially-substituted pack template argument, /// when performing an instantiation that must preserve the parameter pack /// use. /// @@ -270,18 +270,18 @@ return TemplateArgument(); } - /// \brief "Remember" the partially-substituted pack template argument + /// "Remember" the partially-substituted pack template argument /// after performing an instantiation that must preserve the parameter pack /// use. /// /// This routine is meant to be overridden by the template instantiator. void RememberPartiallySubstitutedPack(TemplateArgument Arg) { } - /// \brief Note to the derived class when a function parameter pack is + /// Note to the derived class when a function parameter pack is /// being expanded. void ExpandingFunctionParameterPack(ParmVarDecl *Pack) { } - /// \brief Transforms the given type into another type. + /// Transforms the given type into another type. /// /// By default, this routine transforms a type by creating a /// TypeSourceInfo for it and delegating to the appropriate @@ -292,7 +292,7 @@ /// \returns the transformed type. QualType TransformType(QualType T); - /// \brief Transforms the given type-with-location into a new + /// Transforms the given type-with-location into a new /// type-with-location. /// /// By default, this routine transforms a type by delegating to the @@ -302,13 +302,13 @@ /// to alter the transformation. TypeSourceInfo *TransformType(TypeSourceInfo *DI); - /// \brief Transform the given type-with-location into a new + /// Transform the given type-with-location into a new /// type, collecting location information in the given builder /// as necessary. /// QualType TransformType(TypeLocBuilder &TLB, TypeLoc TL); - /// \brief Transform a type that is permitted to produce a + /// Transform a type that is permitted to produce a /// DeducedTemplateSpecializationType. /// /// This is used in the (relatively rare) contexts where it is acceptable @@ -319,7 +319,7 @@ TypeSourceInfo *TransformTypeWithDeducedTST(TypeSourceInfo *DI); /// @} - /// \brief Transform the given statement. + /// Transform the given statement. /// /// By default, this routine transforms a statement by delegating to the /// appropriate TransformXXXStmt function to transform a specific kind of @@ -330,7 +330,7 @@ /// \returns the transformed statement. StmtResult TransformStmt(Stmt *S); - /// \brief Transform the given statement. + /// Transform the given statement. /// /// By default, this routine transforms a statement by delegating to the /// appropriate TransformOMPXXXClause function to transform a specific kind @@ -340,7 +340,7 @@ /// \returns the transformed OpenMP clause. OMPClause *TransformOMPClause(OMPClause *S); - /// \brief Transform the given attribute. + /// Transform the given attribute. /// /// By default, this routine transforms a statement by delegating to the /// appropriate TransformXXXAttr function to transform a specific kind @@ -350,7 +350,7 @@ /// \returns the transformed attribute const Attr *TransformAttr(const Attr *S); -/// \brief Transform the specified attribute. +/// Transform the specified attribute. /// /// Subclasses should override the transformation of attributes with a pragma /// spelling to transform expressions stored within the attribute. @@ -361,7 +361,7 @@ const X##Attr *Transform##X##Attr(const X##Attr *R) { return R; } #include "clang/Basic/AttrList.inc" - /// \brief Transform the given expression. + /// Transform the given expression. /// /// By default, this routine transforms an expression by delegating to the /// appropriate TransformXXXExpr function to build a new expression. @@ -371,7 +371,7 @@ /// \returns the transformed expression. ExprResult TransformExpr(Expr *E); - /// \brief Transform the given initializer. + /// Transform the given initializer. /// /// By default, this routine transforms an initializer by stripping off the /// semantic nodes added by initialization, then passing the result to @@ -380,7 +380,7 @@ /// \returns the transformed initializer. ExprResult TransformInitializer(Expr *Init, bool NotCopyInit); - /// \brief Transform the given list of expressions. + /// Transform the given list of expressions. /// /// This routine transforms a list of expressions by invoking /// \c TransformExpr() for each subexpression. However, it also provides @@ -407,7 +407,7 @@ SmallVectorImpl<Expr *> &Outputs, bool *ArgChanged = nullptr); - /// \brief Transform the given declaration, which is referenced from a type + /// Transform the given declaration, which is referenced from a type /// or expression. /// /// By default, acts as the identity function on declarations, unless the @@ -422,7 +422,7 @@ return D; } - /// \brief Transform the specified condition. + /// Transform the specified condition. /// /// By default, this transforms the variable and expression and rebuilds /// the condition. @@ -430,14 +430,14 @@ Expr *Expr, Sema::ConditionKind Kind); - /// \brief Transform the attributes associated with the given declaration and + /// Transform the attributes associated with the given declaration and /// place them on the new declaration. /// /// By default, this operation does nothing. Subclasses may override this /// behavior to transform attributes. void transformAttrs(Decl *Old, Decl *New) { } - /// \brief Note that a local declaration has been transformed by this + /// Note that a local declaration has been transformed by this /// transformer. /// /// Local declarations are typically transformed via a call to @@ -448,7 +448,7 @@ TransformedLocalDecls[Old] = New; } - /// \brief Transform the definition of the given declaration. + /// Transform the definition of the given declaration. /// /// By default, invokes TransformDecl() to transform the declaration. /// Subclasses may override this function to provide alternate behavior. @@ -456,7 +456,7 @@ return getDerived().TransformDecl(Loc, D); } - /// \brief Transform the given declaration, which was the first part of a + /// Transform the given declaration, which was the first part of a /// nested-name-specifier in a member access expression. /// /// This specific declaration transformation only applies to the first @@ -473,7 +473,7 @@ bool TransformOverloadExprDecls(OverloadExpr *Old, bool RequiresADL, LookupResult &R); - /// \brief Transform the given nested-name-specifier with source-location + /// Transform the given nested-name-specifier with source-location /// information. /// /// By default, transforms all of the types and declarations within the @@ -484,7 +484,7 @@ QualType ObjectType = QualType(), NamedDecl *FirstQualifierInScope = nullptr); - /// \brief Transform the given declaration name. + /// Transform the given declaration name. /// /// By default, transforms the types of conversion function, constructor, /// and destructor names and then (if needed) rebuilds the declaration name. @@ -493,7 +493,7 @@ DeclarationNameInfo TransformDeclarationNameInfo(const DeclarationNameInfo &NameInfo); - /// \brief Transform the given template name. + /// Transform the given template name. /// /// \param SS The nested-name-specifier that qualifies the template /// name. This nested-name-specifier must already have been transformed. @@ -520,7 +520,7 @@ NamedDecl *FirstQualifierInScope = nullptr, bool AllowInjectedClassName = false); - /// \brief Transform the given template argument. + /// Transform the given template argument. /// /// By default, this operation transforms the type, expression, or /// declaration stored within the template argument and constructs a @@ -532,7 +532,7 @@ TemplateArgumentLoc &Output, bool Uneval = false); - /// \brief Transform the given set of template arguments. + /// Transform the given set of template arguments. /// /// By default, this operation transforms all of the template arguments /// in the input set using \c TransformTemplateArgument(), and appends @@ -558,7 +558,7 @@ Uneval); } - /// \brief Transform the given set of template arguments. + /// Transform the given set of template arguments. /// /// By default, this operation transforms all of the template arguments /// in the input set using \c TransformTemplateArgument(), and appends @@ -578,11 +578,11 @@ TemplateArgumentListInfo &Outputs, bool Uneval = false); - /// \brief Fakes up a TemplateArgumentLoc for a given TemplateArgument. + /// Fakes up a TemplateArgumentLoc for a given TemplateArgument. void InventTemplateArgumentLoc(const TemplateArgument &Arg, TemplateArgumentLoc &ArgLoc); - /// \brief Fakes up a TypeSourceInfo for a type. + /// Fakes up a TypeSourceInfo for a type. TypeSourceInfo *InventTypeSourceInfo(QualType T) { return SemaRef.Context.getTrivialTypeSourceInfo(T, getDerived().getBaseLocation()); @@ -622,7 +622,7 @@ TypeLocBuilder &TLB, DependentTemplateSpecializationTypeLoc TL, NestedNameSpecifierLoc QualifierLoc); - /// \brief Transforms the parameters of a function type into the + /// Transforms the parameters of a function type into the /// given vectors. /// /// The result vectors should be kept in sync; null entries in the @@ -636,7 +636,7 @@ SmallVectorImpl<QualType> &PTypes, SmallVectorImpl<ParmVarDecl *> *PVars, Sema::ExtParameterInfoBuilder &PInfos); - /// \brief Transforms a single function-type parameter. Return null + /// Transforms a single function-type parameter. Return null /// on error. /// /// \param indexAdjustment - A number to add to the parameter's @@ -684,7 +684,7 @@ OMPClause *Transform ## Class(Class *S); #include "clang/Basic/OpenMPKinds.def" - /// \brief Build a new qualified type given its unqualified type and type + /// Build a new qualified type given its unqualified type and type /// qualifiers. /// /// By default, this routine adds type qualifiers only to types that can @@ -694,19 +694,19 @@ QualType RebuildQualifiedType(QualType T, SourceLocation Loc, Qualifiers Quals); - /// \brief Build a new pointer type given its pointee type. + /// Build a new pointer type given its pointee type. /// /// By default, performs semantic analysis when building the pointer type. /// Subclasses may override this routine to provide different behavior. QualType RebuildPointerType(QualType PointeeType, SourceLocation Sigil); - /// \brief Build a new block pointer type given its pointee type. + /// Build a new block pointer type given its pointee type. /// /// By default, performs semantic analysis when building the block pointer /// type. Subclasses may override this routine to provide different behavior. QualType RebuildBlockPointerType(QualType PointeeType, SourceLocation Sigil); - /// \brief Build a new reference type given the type it references. + /// Build a new reference type given the type it references. /// /// By default, performs semantic analysis when building the /// reference type. Subclasses may override this routine to provide @@ -718,7 +718,7 @@ bool LValue, SourceLocation Sigil); - /// \brief Build a new member pointer type given the pointee type and the + /// Build a new member pointer type given the pointee type and the /// class type it refers into. /// /// By default, performs semantic analysis when building the member pointer @@ -732,7 +732,7 @@ ArrayRef<SourceLocation> ProtocolLocs, SourceLocation ProtocolRAngleLoc); - /// \brief Build an Objective-C object type. + /// Build an Objective-C object type. /// /// By default, performs semantic analysis when building the object type. /// Subclasses may override this routine to provide different behavior. @@ -746,14 +746,14 @@ ArrayRef<SourceLocation> ProtocolLocs, SourceLocation ProtocolRAngleLoc); - /// \brief Build a new Objective-C object pointer type given the pointee type. + /// Build a new Objective-C object pointer type given the pointee type. /// /// By default, directly builds the pointer type, with no additional semantic /// analysis. QualType RebuildObjCObjectPointerType(QualType PointeeType, SourceLocation Star); - /// \brief Build a new array type given the element type, size + /// Build a new array type given the element type, size /// modifier, size of the array (if known), size expression, and index type /// qualifiers. /// @@ -767,7 +767,7 @@ unsigned IndexTypeQuals, SourceRange BracketsRange); - /// \brief Build a new constant array type given the element type, size + /// Build a new constant array type given the element type, size /// modifier, (known) size of the array, and index type qualifiers. /// /// By default, performs semantic analysis when building the array type. @@ -778,7 +778,7 @@ unsigned IndexTypeQuals, SourceRange BracketsRange); - /// \brief Build a new incomplete array type given the element type, size + /// Build a new incomplete array type given the element type, size /// modifier, and index type qualifiers. /// /// By default, performs semantic analysis when building the array type. @@ -788,7 +788,7 @@ unsigned IndexTypeQuals, SourceRange BracketsRange); - /// \brief Build a new variable-length array type given the element type, + /// Build a new variable-length array type given the element type, /// size modifier, size expression, and index type qualifiers. /// /// By default, performs semantic analysis when building the array type. @@ -799,7 +799,7 @@ unsigned IndexTypeQuals, SourceRange BracketsRange); - /// \brief Build a new dependent-sized array type given the element type, + /// Build a new dependent-sized array type given the element type, /// size modifier, size expression, and index type qualifiers. /// /// By default, performs semantic analysis when building the array type. @@ -810,7 +810,7 @@ unsigned IndexTypeQuals, SourceRange BracketsRange); - /// \brief Build a new vector type given the element type and + /// Build a new vector type given the element type and /// number of elements. /// /// By default, performs semantic analysis when building the vector type. @@ -818,7 +818,7 @@ QualType RebuildVectorType(QualType ElementType, unsigned NumElements, VectorType::VectorKind VecKind); - /// \brief Build a new extended vector type given the element type and + /// Build a new extended vector type given the element type and /// number of elements. /// /// By default, performs semantic analysis when building the vector type. @@ -826,7 +826,7 @@ QualType RebuildExtVectorType(QualType ElementType, unsigned NumElements, SourceLocation AttributeLoc); - /// \brief Build a new potentially dependently-sized extended vector type + /// Build a new potentially dependently-sized extended vector type /// given the element type and number of elements. /// /// By default, performs semantic analysis when building the vector type. @@ -835,7 +835,7 @@ Expr *SizeExpr, SourceLocation AttributeLoc); - /// \brief Build a new DependentAddressSpaceType or return the pointee + /// Build a new DependentAddressSpaceType or return the pointee /// type variable with the correct address space (retrieved from /// AddrSpaceExpr) applied to it. The former will be returned in cases /// where the address space remains dependent. @@ -847,7 +847,7 @@ Expr *AddrSpaceExpr, SourceLocation AttributeLoc); - /// \brief Build a new function type. + /// Build a new function type. /// /// By default, performs semantic analysis when building the function type. /// Subclasses may override this routine to provide different behavior. @@ -855,51 +855,51 @@ MutableArrayRef<QualType> ParamTypes, const FunctionProtoType::ExtProtoInfo &EPI); - /// \brief Build a new unprototyped function type. + /// Build a new unprototyped function type. QualType RebuildFunctionNoProtoType(QualType ResultType); - /// \brief Rebuild an unresolved typename type, given the decl that + /// Rebuild an unresolved typename type, given the decl that /// the UnresolvedUsingTypenameDecl was transformed to. QualType RebuildUnresolvedUsingType(SourceLocation NameLoc, Decl *D); - /// \brief Build a new typedef type. + /// Build a new typedef type. QualType RebuildTypedefType(TypedefNameDecl *Typedef) { return SemaRef.Context.getTypeDeclType(Typedef); } - /// \brief Build a new class/struct/union type. + /// Build a new class/struct/union type. QualType RebuildRecordType(RecordDecl *Record) { return SemaRef.Context.getTypeDeclType(Record); } - /// \brief Build a new Enum type. + /// Build a new Enum type. QualType RebuildEnumType(EnumDecl *Enum) { return SemaRef.Context.getTypeDeclType(Enum); } - /// \brief Build a new typeof(expr) type. + /// Build a new typeof(expr) type. /// /// By default, performs semantic analysis when building the typeof type. /// Subclasses may override this routine to provide different behavior. QualType RebuildTypeOfExprType(Expr *Underlying, SourceLocation Loc); - /// \brief Build a new typeof(type) type. + /// Build a new typeof(type) type. /// /// By default, builds a new TypeOfType with the given underlying type. QualType RebuildTypeOfType(QualType Underlying); - /// \brief Build a new unary transform type. + /// Build a new unary transform type. QualType RebuildUnaryTransformType(QualType BaseType, UnaryTransformType::UTTKind UKind, SourceLocation Loc); - /// \brief Build a new C++11 decltype type. + /// Build a new C++11 decltype type. /// /// By default, performs semantic analysis when building the decltype type. /// Subclasses may override this routine to provide different behavior. QualType RebuildDecltypeType(Expr *Underlying, SourceLocation Loc); - /// \brief Build a new C++11 auto type. + /// Build a new C++11 auto type. /// /// By default, builds a new AutoType with the given deduced type. QualType RebuildAutoType(QualType Deduced, AutoTypeKeyword Keyword) { @@ -918,7 +918,7 @@ Template, Deduced, /*IsDependent*/ false); } - /// \brief Build a new template specialization type. + /// Build a new template specialization type. /// /// By default, performs semantic analysis when building the template /// specialization type. Subclasses may override this routine to provide @@ -927,7 +927,7 @@ SourceLocation TemplateLoc, TemplateArgumentListInfo &Args); - /// \brief Build a new parenthesized type. + /// Build a new parenthesized type. /// /// By default, builds a new ParenType type from the inner type. /// Subclasses may override this routine to provide different behavior. @@ -935,7 +935,7 @@ return SemaRef.BuildParenType(InnerType); } - /// \brief Build a new qualified name type. + /// Build a new qualified name type. /// /// By default, builds a new ElaboratedType type from the keyword, /// the nested-name-specifier and the named type. @@ -949,7 +949,7 @@ Named); } - /// \brief Build a new typename type that refers to a template-id. + /// Build a new typename type that refers to a template-id. /// /// By default, builds a new DependentNameType type from the /// nested-name-specifier and the given type. Subclasses may override @@ -993,7 +993,7 @@ T); } - /// \brief Build a new typename type that refers to an identifier. + /// Build a new typename type that refers to an identifier. /// /// By default, performs semantic analysis when building the typename type /// (or elaborated type). Subclasses may override this routine to provide @@ -1106,7 +1106,7 @@ T); } - /// \brief Build a new pack expansion type. + /// Build a new pack expansion type. /// /// By default, builds a new PackExpansionType type from the given pattern. /// Subclasses may override this routine to provide different behavior. @@ -1118,17 +1118,17 @@ NumExpansions); } - /// \brief Build a new atomic type given its value type. + /// Build a new atomic type given its value type. /// /// By default, performs semantic analysis when building the atomic type. /// Subclasses may override this routine to provide different behavior. QualType RebuildAtomicType(QualType ValueType, SourceLocation KWLoc); - /// \brief Build a new pipe type given its value type. + /// Build a new pipe type given its value type. QualType RebuildPipeType(QualType ValueType, SourceLocation KWLoc, bool isReadPipe); - /// \brief Build a new template name given a nested name specifier, a flag + /// Build a new template name given a nested name specifier, a flag /// indicating whether the "template" keyword was provided, and the template /// that the template name refers to. /// @@ -1138,7 +1138,7 @@ bool TemplateKW, TemplateDecl *Template); - /// \brief Build a new template name given a nested name specifier and the + /// Build a new template name given a nested name specifier and the /// name that is referred to as a template. /// /// By default, performs semantic analysis to determine whether the name can @@ -1152,7 +1152,7 @@ NamedDecl *FirstQualifierInScope, bool AllowInjectedClassName); - /// \brief Build a new template name given a nested name specifier and the + /// Build a new template name given a nested name specifier and the /// overloaded operator name that is referred to as a template. /// /// By default, performs semantic analysis to determine whether the name can @@ -1165,7 +1165,7 @@ QualType ObjectType, bool AllowInjectedClassName); - /// \brief Build a new template name given a template template parameter pack + /// Build a new template name given a template template parameter pack /// and the /// /// By default, performs semantic analysis to determine whether the name can @@ -1177,7 +1177,7 @@ return getSema().Context.getSubstTemplateTemplateParmPack(Param, ArgPack); } - /// \brief Build a new compound statement. + /// Build a new compound statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1189,7 +1189,7 @@ IsStmtExpr); } - /// \brief Build a new case statement. + /// Build a new case statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1202,7 +1202,7 @@ ColonLoc); } - /// \brief Attach the body to a new case statement. + /// Attach the body to a new case statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1211,7 +1211,7 @@ return S; } - /// \brief Build a new default statement. + /// Build a new default statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1222,7 +1222,7 @@ /*CurScope=*/nullptr); } - /// \brief Build a new label statement. + /// Build a new label statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1231,7 +1231,7 @@ return SemaRef.ActOnLabelStmt(IdentLoc, L, ColonLoc, SubStmt); } - /// \brief Build a new label statement. + /// Build a new label statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1241,7 +1241,7 @@ return SemaRef.ActOnAttributedStmt(AttrLoc, Attrs, SubStmt); } - /// \brief Build a new "if" statement. + /// Build a new "if" statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1252,7 +1252,7 @@ ElseLoc, Else); } - /// \brief Start building a new switch statement. + /// Start building a new switch statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1261,7 +1261,7 @@ return getSema().ActOnStartOfSwitchStmt(SwitchLoc, Init, Cond); } - /// \brief Attach the body to the switch statement. + /// Attach the body to the switch statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1270,7 +1270,7 @@ return getSema().ActOnFinishSwitchStmt(SwitchLoc, Switch, Body); } - /// \brief Build a new while statement. + /// Build a new while statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1279,7 +1279,7 @@ return getSema().ActOnWhileStmt(WhileLoc, Cond, Body); } - /// \brief Build a new do-while statement. + /// Build a new do-while statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1290,7 +1290,7 @@ Cond, RParenLoc); } - /// \brief Build a new for statement. + /// Build a new for statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1302,7 +1302,7 @@ Inc, RParenLoc, Body); } - /// \brief Build a new goto statement. + /// Build a new goto statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1311,7 +1311,7 @@ return getSema().ActOnGotoStmt(GotoLoc, LabelLoc, Label); } - /// \brief Build a new indirect goto statement. + /// Build a new indirect goto statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1321,7 +1321,7 @@ return getSema().ActOnIndirectGotoStmt(GotoLoc, StarLoc, Target); } - /// \brief Build a new return statement. + /// Build a new return statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1329,7 +1329,7 @@ return getSema().BuildReturnStmt(ReturnLoc, Result); } - /// \brief Build a new declaration statement. + /// Build a new declaration statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1339,7 +1339,7 @@ return getSema().ActOnDeclStmt(DG, StartLoc, EndLoc); } - /// \brief Build a new inline asm statement. + /// Build a new inline asm statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1354,7 +1354,7 @@ AsmString, Clobbers, RParenLoc); } - /// \brief Build a new MS style inline asm statement. + /// Build a new MS style inline asm statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1371,7 +1371,7 @@ Constraints, Clobbers, Exprs, EndLoc); } - /// \brief Build a new co_return statement. + /// Build a new co_return statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1380,7 +1380,7 @@ return getSema().BuildCoreturnStmt(CoreturnLoc, Result, IsImplicit); } - /// \brief Build a new co_await expression. + /// Build a new co_await expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -1389,7 +1389,7 @@ return getSema().BuildResolvedCoawaitExpr(CoawaitLoc, Result, IsImplicit); } - /// \brief Build a new co_await expression. + /// Build a new co_await expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -1399,7 +1399,7 @@ return getSema().BuildUnresolvedCoawaitExpr(CoawaitLoc, Result, Lookup); } - /// \brief Build a new co_yield expression. + /// Build a new co_yield expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -1411,7 +1411,7 @@ return getSema().BuildCoroutineBodyStmt(Args); } - /// \brief Build a new Objective-C \@try statement. + /// Build a new Objective-C \@try statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1423,7 +1423,7 @@ Finally); } - /// \brief Rebuild an Objective-C exception declaration. + /// Rebuild an Objective-C exception declaration. /// /// By default, performs semantic analysis to build the new declaration. /// Subclasses may override this routine to provide different behavior. @@ -1435,7 +1435,7 @@ ExceptionDecl->getIdentifier()); } - /// \brief Build a new Objective-C \@catch statement. + /// Build a new Objective-C \@catch statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1447,7 +1447,7 @@ Var, Body); } - /// \brief Build a new Objective-C \@finally statement. + /// Build a new Objective-C \@finally statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1456,7 +1456,7 @@ return getSema().ActOnObjCAtFinallyStmt(AtLoc, Body); } - /// \brief Build a new Objective-C \@throw statement. + /// Build a new Objective-C \@throw statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1465,7 +1465,7 @@ return getSema().BuildObjCAtThrowStmt(AtLoc, Operand); } - /// \brief Build a new OpenMP executable directive. + /// Build a new OpenMP executable directive. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1479,7 +1479,7 @@ Kind, DirName, CancelRegion, Clauses, AStmt, StartLoc, EndLoc); } - /// \brief Build a new OpenMP 'if' clause. + /// Build a new OpenMP 'if' clause. /// /// By default, performs semantic analysis to build the new OpenMP clause. /// Subclasses may override this routine to provide different behavior. @@ -1494,7 +1494,7 @@ EndLoc); } - /// \brief Build a new OpenMP 'final' clause. + /// Build a new OpenMP 'final' clause. /// /// By default, performs semantic analysis to build the new OpenMP clause. /// Subclasses may override this routine to provide different behavior. @@ -1505,7 +1505,7 @@ EndLoc); } - /// \brief Build a new OpenMP 'num_threads' clause. + /// Build a new OpenMP 'num_threads' clause. /// /// By default, performs semantic analysis to build the new OpenMP clause. /// Subclasses may override this routine to provide different behavior. @@ -1517,7 +1517,7 @@ LParenLoc, EndLoc); } - /// \brief Build a new OpenMP 'safelen' clause. + /// Build a new OpenMP 'safelen' clause. /// /// By default, performs semantic analysis to build the new OpenMP clause. /// Subclasses may override this routine to provide different behavior. @@ -1527,7 +1527,7 @@ return getSema().ActOnOpenMPSafelenClause(Len, StartLoc, LParenLoc, EndLoc); } - /// \brief Build a new OpenMP 'simdlen' clause. + /// Build a new OpenMP 'simdlen' clause. /// /// By default, performs semantic analysis to build the new OpenMP clause. /// Subclasses may override this routine to provide different behavior. @@ -1537,7 +1537,7 @@ return getSema().ActOnOpenMPSimdlenClause(Len, StartLoc, LParenLoc, EndLoc); } - /// \brief Build a new OpenMP 'collapse' clause. + /// Build a new OpenMP 'collapse' clause. /// /// By default, performs semantic analysis to build the new OpenMP clause. /// Subclasses may override this routine to provide different behavior. @@ -1548,7 +1548,7 @@ EndLoc); } - /// \brief Build a new OpenMP 'default' clause. + /// Build a new OpenMP 'default' clause. /// /// By default, performs semantic analysis to build the new OpenMP clause. /// Subclasses may override this routine to provide different behavior. @@ -1561,7 +1561,7 @@ StartLoc, LParenLoc, EndLoc); } - /// \brief Build a new OpenMP 'proc_bind' clause. + /// Build a new OpenMP 'proc_bind' clause. /// /// By default, performs semantic analysis to build the new OpenMP clause. /// Subclasses may override this routine to provide different behavior. @@ -1574,7 +1574,7 @@ StartLoc, LParenLoc, EndLoc); } - /// \brief Build a new OpenMP 'schedule' clause. + /// Build a new OpenMP 'schedule' clause. /// /// By default, performs semantic analysis to build the new OpenMP clause. /// Subclasses may override this routine to provide different behavior. @@ -1588,7 +1588,7 @@ CommaLoc, EndLoc); } - /// \brief Build a new OpenMP 'ordered' clause. + /// Build a new OpenMP 'ordered' clause. /// /// By default, performs semantic analysis to build the new OpenMP clause. /// Subclasses may override this routine to provide different behavior. @@ -1598,7 +1598,7 @@ return getSema().ActOnOpenMPOrderedClause(StartLoc, EndLoc, LParenLoc, Num); } - /// \brief Build a new OpenMP 'private' clause. + /// Build a new OpenMP 'private' clause. /// /// By default, performs semantic analysis to build the new OpenMP clause. /// Subclasses may override this routine to provide different behavior. @@ -1610,7 +1610,7 @@ EndLoc); } - /// \brief Build a new OpenMP 'firstprivate' clause. + /// Build a new OpenMP 'firstprivate' clause. /// /// By default, performs semantic analysis to build the new OpenMP clause. /// Subclasses may override this routine to provide different behavior. @@ -1622,7 +1622,7 @@ EndLoc); } - /// \brief Build a new OpenMP 'lastprivate' clause. + /// Build a new OpenMP 'lastprivate' clause. /// /// By default, performs semantic analysis to build the new OpenMP clause. /// Subclasses may override this routine to provide different behavior. @@ -1634,7 +1634,7 @@ EndLoc); } - /// \brief Build a new OpenMP 'shared' clause. + /// Build a new OpenMP 'shared' clause. /// /// By default, performs semantic analysis to build the new OpenMP clause. /// Subclasses may override this routine to provide different behavior. @@ -1646,7 +1646,7 @@ EndLoc); } - /// \brief Build a new OpenMP 'reduction' clause. + /// Build a new OpenMP 'reduction' clause. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1694,7 +1694,7 @@ ReductionId, UnresolvedReductions); } - /// \brief Build a new OpenMP 'linear' clause. + /// Build a new OpenMP 'linear' clause. /// /// By default, performs semantic analysis to build the new OpenMP clause. /// Subclasses may override this routine to provide different behavior. @@ -1710,7 +1710,7 @@ EndLoc); } - /// \brief Build a new OpenMP 'aligned' clause. + /// Build a new OpenMP 'aligned' clause. /// /// By default, performs semantic analysis to build the new OpenMP clause. /// Subclasses may override this routine to provide different behavior. @@ -1723,7 +1723,7 @@ LParenLoc, ColonLoc, EndLoc); } - /// \brief Build a new OpenMP 'copyin' clause. + /// Build a new OpenMP 'copyin' clause. /// /// By default, performs semantic analysis to build the new OpenMP clause. /// Subclasses may override this routine to provide different behavior. @@ -1735,7 +1735,7 @@ EndLoc); } - /// \brief Build a new OpenMP 'copyprivate' clause. + /// Build a new OpenMP 'copyprivate' clause. /// /// By default, performs semantic analysis to build the new OpenMP clause. /// Subclasses may override this routine to provide different behavior. @@ -1747,7 +1747,7 @@ EndLoc); } - /// \brief Build a new OpenMP 'flush' pseudo clause. + /// Build a new OpenMP 'flush' pseudo clause. /// /// By default, performs semantic analysis to build the new OpenMP clause. /// Subclasses may override this routine to provide different behavior. @@ -1759,7 +1759,7 @@ EndLoc); } - /// \brief Build a new OpenMP 'depend' pseudo clause. + /// Build a new OpenMP 'depend' pseudo clause. /// /// By default, performs semantic analysis to build the new OpenMP clause. /// Subclasses may override this routine to provide different behavior. @@ -1772,7 +1772,7 @@ StartLoc, LParenLoc, EndLoc); } - /// \brief Build a new OpenMP 'device' clause. + /// Build a new OpenMP 'device' clause. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1783,7 +1783,7 @@ EndLoc); } - /// \brief Build a new OpenMP 'map' clause. + /// Build a new OpenMP 'map' clause. /// /// By default, performs semantic analysis to build the new OpenMP clause. /// Subclasses may override this routine to provide different behavior. @@ -1798,7 +1798,7 @@ VarList, StartLoc, LParenLoc, EndLoc); } - /// \brief Build a new OpenMP 'num_teams' clause. + /// Build a new OpenMP 'num_teams' clause. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1809,7 +1809,7 @@ EndLoc); } - /// \brief Build a new OpenMP 'thread_limit' clause. + /// Build a new OpenMP 'thread_limit' clause. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1821,7 +1821,7 @@ LParenLoc, EndLoc); } - /// \brief Build a new OpenMP 'priority' clause. + /// Build a new OpenMP 'priority' clause. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1832,7 +1832,7 @@ EndLoc); } - /// \brief Build a new OpenMP 'grainsize' clause. + /// Build a new OpenMP 'grainsize' clause. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1843,7 +1843,7 @@ EndLoc); } - /// \brief Build a new OpenMP 'num_tasks' clause. + /// Build a new OpenMP 'num_tasks' clause. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1854,7 +1854,7 @@ EndLoc); } - /// \brief Build a new OpenMP 'hint' clause. + /// Build a new OpenMP 'hint' clause. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1864,7 +1864,7 @@ return getSema().ActOnOpenMPHintClause(Hint, StartLoc, LParenLoc, EndLoc); } - /// \brief Build a new OpenMP 'dist_schedule' clause. + /// Build a new OpenMP 'dist_schedule' clause. /// /// By default, performs semantic analysis to build the new OpenMP clause. /// Subclasses may override this routine to provide different behavior. @@ -1877,7 +1877,7 @@ Kind, ChunkSize, StartLoc, LParenLoc, KindLoc, CommaLoc, EndLoc); } - /// \brief Build a new OpenMP 'to' clause. + /// Build a new OpenMP 'to' clause. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1888,7 +1888,7 @@ return getSema().ActOnOpenMPToClause(VarList, StartLoc, LParenLoc, EndLoc); } - /// \brief Build a new OpenMP 'from' clause. + /// Build a new OpenMP 'from' clause. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1924,7 +1924,7 @@ EndLoc); } - /// \brief Rebuild the operand to an Objective-C \@synchronized statement. + /// Rebuild the operand to an Objective-C \@synchronized statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1933,7 +1933,7 @@ return getSema().ActOnObjCAtSynchronizedOperand(atLoc, object); } - /// \brief Build a new Objective-C \@synchronized statement. + /// Build a new Objective-C \@synchronized statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1942,7 +1942,7 @@ return getSema().ActOnObjCAtSynchronizedStmt(AtLoc, Object, Body); } - /// \brief Build a new Objective-C \@autoreleasepool statement. + /// Build a new Objective-C \@autoreleasepool statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1951,7 +1951,7 @@ return getSema().ActOnObjCAutoreleasePoolStmt(AtLoc, Body); } - /// \brief Build a new Objective-C fast enumeration statement. + /// Build a new Objective-C fast enumeration statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1970,7 +1970,7 @@ return getSema().FinishObjCForCollectionStmt(ForEachStmt.get(), Body); } - /// \brief Build a new C++ exception declaration. + /// Build a new C++ exception declaration. /// /// By default, performs semantic analysis to build the new decaration. /// Subclasses may override this routine to provide different behavior. @@ -1986,7 +1986,7 @@ return Var; } - /// \brief Build a new C++ catch statement. + /// Build a new C++ catch statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -1997,7 +1997,7 @@ Handler)); } - /// \brief Build a new C++ try statement. + /// Build a new C++ try statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -2006,7 +2006,7 @@ return getSema().ActOnCXXTryBlock(TryLoc, TryBlock, Handlers); } - /// \brief Build a new C++0x range-based for statement. + /// Build a new C++0x range-based for statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -2040,7 +2040,7 @@ Sema::BFRK_Rebuild); } - /// \brief Build a new C++0x range-based for statement. + /// Build a new C++0x range-based for statement. /// /// By default, performs semantic analysis to build the new statement. /// Subclasses may override this routine to provide different behavior. @@ -2053,7 +2053,7 @@ QualifierLoc, NameInfo, Nested); } - /// \brief Attach body to a C++0x range-based for statement. + /// Attach body to a C++0x range-based for statement. /// /// By default, performs semantic analysis to finish the new statement. /// Subclasses may override this routine to provide different behavior. @@ -2075,7 +2075,7 @@ return SEHFinallyStmt::Create(getSema().getASTContext(), Loc, Block); } - /// \brief Build a new predefined expression. + /// Build a new predefined expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2084,7 +2084,7 @@ return getSema().BuildPredefinedExpr(Loc, IT); } - /// \brief Build a new expression that references a declaration. + /// Build a new expression that references a declaration. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2095,7 +2095,7 @@ } - /// \brief Build a new expression that references a declaration. + /// Build a new expression that references a declaration. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2111,7 +2111,7 @@ return getSema().BuildDeclarationNameExpr(SS, NameInfo, VD); } - /// \brief Build a new expression in parentheses. + /// Build a new expression in parentheses. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2120,7 +2120,7 @@ return getSema().ActOnParenExpr(LParen, RParen, SubExpr); } - /// \brief Build a new pseudo-destructor expression. + /// Build a new pseudo-destructor expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2133,7 +2133,7 @@ SourceLocation TildeLoc, PseudoDestructorTypeStorage Destroyed); - /// \brief Build a new unary operator expression. + /// Build a new unary operator expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2143,7 +2143,7 @@ return getSema().BuildUnaryOp(/*Scope=*/nullptr, OpLoc, Opc, SubExpr); } - /// \brief Build a new builtin offsetof expression. + /// Build a new builtin offsetof expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2155,7 +2155,7 @@ RParenLoc); } - /// \brief Build a new sizeof, alignof or vec_step expression with a + /// Build a new sizeof, alignof or vec_step expression with a /// type argument. /// /// By default, performs semantic analysis to build the new expression. @@ -2167,7 +2167,7 @@ return getSema().CreateUnaryExprOrTypeTraitExpr(TInfo, OpLoc, ExprKind, R); } - /// \brief Build a new sizeof, alignof or vec step expression with an + /// Build a new sizeof, alignof or vec step expression with an /// expression argument. /// /// By default, performs semantic analysis to build the new expression. @@ -2183,7 +2183,7 @@ return Result; } - /// \brief Build a new array subscript expression. + /// Build a new array subscript expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2196,7 +2196,7 @@ RBracketLoc); } - /// \brief Build a new array section expression. + /// Build a new array section expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2208,7 +2208,7 @@ ColonLoc, Length, RBracketLoc); } - /// \brief Build a new call expression. + /// Build a new call expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2220,7 +2220,7 @@ Args, RParenLoc, ExecConfig); } - /// \brief Build a new member access expression. + /// Build a new member access expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2278,7 +2278,7 @@ /*S*/nullptr); } - /// \brief Build a new binary operator expression. + /// Build a new binary operator expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2288,7 +2288,7 @@ return getSema().BuildBinOp(/*Scope=*/nullptr, OpLoc, Opc, LHS, RHS); } - /// \brief Build a new conditional operator expression. + /// Build a new conditional operator expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2301,7 +2301,7 @@ LHS, RHS); } - /// \brief Build a new C-style cast expression. + /// Build a new C-style cast expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2313,7 +2313,7 @@ SubExpr); } - /// \brief Build a new compound literal expression. + /// Build a new compound literal expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2325,7 +2325,7 @@ Init); } - /// \brief Build a new extended vector element access expression. + /// Build a new extended vector element access expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2345,7 +2345,7 @@ /*S*/ nullptr); } - /// \brief Build a new initializer list expression. + /// Build a new initializer list expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2355,7 +2355,7 @@ return SemaRef.ActOnInitList(LBraceLoc, Inits, RBraceLoc); } - /// \brief Build a new designated initializer expression. + /// Build a new designated initializer expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2373,7 +2373,7 @@ return Result; } - /// \brief Build a new value-initialized expression. + /// Build a new value-initialized expression. /// /// By default, builds the implicit value initialization without performing /// any semantic analysis. Subclasses may override this routine to provide @@ -2382,7 +2382,7 @@ return new (SemaRef.Context) ImplicitValueInitExpr(T); } - /// \brief Build a new \c va_arg expression. + /// Build a new \c va_arg expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2394,7 +2394,7 @@ RParenLoc); } - /// \brief Build a new expression list in parentheses. + /// Build a new expression list in parentheses. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2404,7 +2404,7 @@ return getSema().ActOnParenListExpr(LParenLoc, RParenLoc, SubExprs); } - /// \brief Build a new address-of-label expression. + /// Build a new address-of-label expression. /// /// By default, performs semantic analysis, using the name of the label /// rather than attempting to map the label statement itself. @@ -2414,7 +2414,7 @@ return getSema().ActOnAddrLabel(AmpAmpLoc, LabelLoc, Label); } - /// \brief Build a new GNU statement expression. + /// Build a new GNU statement expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2424,7 +2424,7 @@ return getSema().ActOnStmtExpr(LParenLoc, SubStmt, RParenLoc); } - /// \brief Build a new __builtin_choose_expr expression. + /// Build a new __builtin_choose_expr expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2436,7 +2436,7 @@ RParenLoc); } - /// \brief Build a new generic selection expression. + /// Build a new generic selection expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2450,7 +2450,7 @@ ControllingExpr, Types, Exprs); } - /// \brief Build a new overloaded operator call expression. + /// Build a new overloaded operator call expression. /// /// By default, performs semantic analysis to build the new expression. /// The semantic analysis provides the behavior of template instantiation, @@ -2464,7 +2464,7 @@ Expr *First, Expr *Second); - /// \brief Build a new C++ "named" cast expression, such as static_cast or + /// Build a new C++ "named" cast expression, such as static_cast or /// reinterpret_cast. /// /// By default, this routine dispatches to one of the more-specific routines @@ -2505,7 +2505,7 @@ } } - /// \brief Build a new C++ static_cast expression. + /// Build a new C++ static_cast expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2522,7 +2522,7 @@ SourceRange(LParenLoc, RParenLoc)); } - /// \brief Build a new C++ dynamic_cast expression. + /// Build a new C++ dynamic_cast expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2539,7 +2539,7 @@ SourceRange(LParenLoc, RParenLoc)); } - /// \brief Build a new C++ reinterpret_cast expression. + /// Build a new C++ reinterpret_cast expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2556,7 +2556,7 @@ SourceRange(LParenLoc, RParenLoc)); } - /// \brief Build a new C++ const_cast expression. + /// Build a new C++ const_cast expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2573,7 +2573,7 @@ SourceRange(LParenLoc, RParenLoc)); } - /// \brief Build a new C++ functional-style cast expression. + /// Build a new C++ functional-style cast expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2587,7 +2587,7 @@ ListInitialization); } - /// \brief Build a new C++ typeid(type) expression. + /// Build a new C++ typeid(type) expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2600,7 +2600,7 @@ } - /// \brief Build a new C++ typeid(expr) expression. + /// Build a new C++ typeid(expr) expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2612,7 +2612,7 @@ RParenLoc); } - /// \brief Build a new C++ __uuidof(type) expression. + /// Build a new C++ __uuidof(type) expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2624,7 +2624,7 @@ RParenLoc); } - /// \brief Build a new C++ __uuidof(expr) expression. + /// Build a new C++ __uuidof(expr) expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2636,7 +2636,7 @@ RParenLoc); } - /// \brief Build a new C++ "this" expression. + /// Build a new C++ "this" expression. /// /// By default, builds a new "this" expression without performing any /// semantic analysis. Subclasses may override this routine to provide @@ -2648,7 +2648,7 @@ return new (getSema().Context) CXXThisExpr(ThisLoc, ThisType, isImplicit); } - /// \brief Build a new C++ throw expression. + /// Build a new C++ throw expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2657,7 +2657,7 @@ return getSema().BuildCXXThrow(ThrowLoc, Sub, IsThrownVariableInScope); } - /// \brief Build a new C++ default-argument expression. + /// Build a new C++ default-argument expression. /// /// By default, builds a new default-argument expression, which does not /// require any semantic analysis. Subclasses may override this routine to @@ -2667,7 +2667,7 @@ return CXXDefaultArgExpr::Create(getSema().Context, Loc, Param); } - /// \brief Build a new C++11 default-initialization expression. + /// Build a new C++11 default-initialization expression. /// /// By default, builds a new default field initialization expression, which /// does not require any semantic analysis. Subclasses may override this @@ -2677,7 +2677,7 @@ return CXXDefaultInitExpr::Create(getSema().Context, Loc, Field); } - /// \brief Build a new C++ zero-initialization expression. + /// Build a new C++ zero-initialization expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2688,7 +2688,7 @@ TSInfo, LParenLoc, None, RParenLoc, /*ListInitialization=*/false); } - /// \brief Build a new C++ "new" expression. + /// Build a new C++ "new" expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2715,7 +2715,7 @@ Initializer); } - /// \brief Build a new C++ "delete" expression. + /// Build a new C++ "delete" expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2727,7 +2727,7 @@ Operand); } - /// \brief Build a new type trait expression. + /// Build a new type trait expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2738,7 +2738,7 @@ return getSema().BuildTypeTrait(Trait, StartLoc, Args, RParenLoc); } - /// \brief Build a new array type trait expression. + /// Build a new array type trait expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2750,7 +2750,7 @@ return getSema().BuildArrayTypeTrait(Trait, StartLoc, TSInfo, DimExpr, RParenLoc); } - /// \brief Build a new expression trait expression. + /// Build a new expression trait expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2761,7 +2761,7 @@ return getSema().BuildExpressionTrait(Trait, StartLoc, Queried, RParenLoc); } - /// \brief Build a new (previously unresolved) declaration reference + /// Build a new (previously unresolved) declaration reference /// expression. /// /// By default, performs semantic analysis to build the new expression. @@ -2784,7 +2784,7 @@ SS, NameInfo, IsAddressOfOperand, /*S*/nullptr, RecoveryTSI); } - /// \brief Build a new template-id expression. + /// Build a new template-id expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2797,7 +2797,7 @@ TemplateArgs); } - /// \brief Build a new object-construction expression. + /// Build a new object-construction expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2827,7 +2827,7 @@ ParenRange); } - /// \brief Build a new implicit construction via inherited constructor + /// Build a new implicit construction via inherited constructor /// expression. ExprResult RebuildCXXInheritedCtorInitExpr(QualType T, SourceLocation Loc, CXXConstructorDecl *Constructor, @@ -2837,7 +2837,7 @@ Loc, T, Constructor, ConstructsVBase, InheritedFromVBase); } - /// \brief Build a new object-construction expression. + /// Build a new object-construction expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2850,7 +2850,7 @@ TSInfo, LParenOrBraceLoc, Args, RParenOrBraceLoc, ListInitialization); } - /// \brief Build a new object-construction expression. + /// Build a new object-construction expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2863,7 +2863,7 @@ RParenLoc, ListInitialization); } - /// \brief Build a new member reference expression. + /// Build a new member reference expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2887,7 +2887,7 @@ TemplateArgs, /*S*/nullptr); } - /// \brief Build a new member reference expression. + /// Build a new member reference expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2909,7 +2909,7 @@ R, TemplateArgs, /*S*/nullptr); } - /// \brief Build a new noexcept expression. + /// Build a new noexcept expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2917,7 +2917,7 @@ return SemaRef.BuildCXXNoexceptExpr(Range.getBegin(), Arg, Range.getEnd()); } - /// \brief Build a new expression to compute the length of a parameter pack. + /// Build a new expression to compute the length of a parameter pack. ExprResult RebuildSizeOfPackExpr(SourceLocation OperatorLoc, NamedDecl *Pack, SourceLocation PackLoc, @@ -2928,7 +2928,7 @@ RParenLoc, Length, PartialArgs); } - /// \brief Build a new Objective-C boxed expression. + /// Build a new Objective-C boxed expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2936,7 +2936,7 @@ return getSema().BuildObjCBoxedExpr(SR, ValueExpr); } - /// \brief Build a new Objective-C array literal. + /// Build a new Objective-C array literal. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2954,7 +2954,7 @@ getterMethod, setterMethod); } - /// \brief Build a new Objective-C dictionary literal. + /// Build a new Objective-C dictionary literal. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2963,7 +2963,7 @@ return getSema().BuildObjCDictionaryLiteral(Range, Elements); } - /// \brief Build a new Objective-C \@encode expression. + /// Build a new Objective-C \@encode expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -2973,7 +2973,7 @@ return SemaRef.BuildObjCEncodeExpression(AtLoc, EncodeTypeInfo, RParenLoc); } - /// \brief Build a new Objective-C class message. + /// Build a new Objective-C class message. ExprResult RebuildObjCMessageExpr(TypeSourceInfo *ReceiverTypeInfo, Selector Sel, ArrayRef<SourceLocation> SelectorLocs, @@ -2988,7 +2988,7 @@ RBracLoc, Args); } - /// \brief Build a new Objective-C instance message. + /// Build a new Objective-C instance message. ExprResult RebuildObjCMessageExpr(Expr *Receiver, Selector Sel, ArrayRef<SourceLocation> SelectorLocs, @@ -3003,7 +3003,7 @@ RBracLoc, Args); } - /// \brief Build a new Objective-C instance/class message to 'super'. + /// Build a new Objective-C instance/class message to 'super'. ExprResult RebuildObjCMessageExpr(SourceLocation SuperLoc, Selector Sel, ArrayRef<SourceLocation> SelectorLocs, @@ -3026,7 +3026,7 @@ } - /// \brief Build a new Objective-C ivar reference expression. + /// Build a new Objective-C ivar reference expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -3046,7 +3046,7 @@ return Result; } - /// \brief Build a new Objective-C property reference expression. + /// Build a new Objective-C property reference expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -3065,7 +3065,7 @@ /*S=*/nullptr); } - /// \brief Build a new Objective-C property reference expression. + /// Build a new Objective-C property reference expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -3081,7 +3081,7 @@ PropertyLoc, Base)); } - /// \brief Build a new Objective-C "isa" expression. + /// Build a new Objective-C "isa" expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -3098,7 +3098,7 @@ /*S=*/nullptr); } - /// \brief Build a new shuffle vector expression. + /// Build a new shuffle vector expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -3130,7 +3130,7 @@ return SemaRef.SemaBuiltinShuffleVector(cast<CallExpr>(TheCall.get())); } - /// \brief Build a new convert vector expression. + /// Build a new convert vector expression. ExprResult RebuildConvertVectorExpr(SourceLocation BuiltinLoc, Expr *SrcExpr, TypeSourceInfo *DstTInfo, SourceLocation RParenLoc) { @@ -3138,7 +3138,7 @@ BuiltinLoc, RParenLoc); } - /// \brief Build a new template argument pack expansion. + /// Build a new template argument pack expansion. /// /// By default, performs semantic analysis to build a new pack expansion /// for a template argument. Subclasses may override this routine to provide @@ -3186,7 +3186,7 @@ return TemplateArgumentLoc(); } - /// \brief Build a new expression pack expansion. + /// Build a new expression pack expansion. /// /// By default, performs semantic analysis to build a new pack expansion /// for an expression. Subclasses may override this routine to provide @@ -3196,7 +3196,7 @@ return getSema().CheckPackExpansion(Pattern, EllipsisLoc, NumExpansions); } - /// \brief Build a new C++1z fold-expression. + /// Build a new C++1z fold-expression. /// /// By default, performs semantic analysis in order to build a new fold /// expression. @@ -3208,7 +3208,7 @@ RHS, RParenLoc); } - /// \brief Build an empty C++1z fold-expression with the given operator. + /// Build an empty C++1z fold-expression with the given operator. /// /// By default, produces the fallback value for the fold-expression, or /// produce an error if there is no fallback value. @@ -3217,7 +3217,7 @@ return getSema().BuildEmptyCXXFoldExpr(EllipsisLoc, Operator); } - /// \brief Build a new atomic operation expression. + /// Build a new atomic operation expression. /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. @@ -3920,7 +3920,7 @@ return true; } -/// \brief Iterator adaptor that invents template argument location information +/// Iterator adaptor that invents template argument location information /// for each of the template arguments in its underlying iterator. template<typename Derived, typename InputIterator> class TemplateArgumentLocInventIterator { @@ -5758,7 +5758,7 @@ return Result; } - /// \brief Simple iterator that traverses the template arguments in a + /// Simple iterator that traverses the template arguments in a /// container that provides a \c getArgLoc() member function. /// /// This iterator is intended to be used with the iterator form of @@ -8962,7 +8962,7 @@ E->getRParen()); } -/// \brief The operand of a unary address-of operator has special rules: it's +/// The operand of a unary address-of operator has special rules: it's /// allowed to refer to a non-static member of a class even if there's no 'this' /// object available. template<typename Derived> @@ -9661,7 +9661,7 @@ E->getRParenLoc()); } -/// \brief Transform an address-of-label expression. +/// Transform an address-of-label expression. /// /// By default, the transformation of an address-of-label expression always /// rebuilds the expression, so that the label identifier can be resolved to @@ -10791,7 +10791,7 @@ E->constructsVBase(), E->inheritedFromVBase()); } -/// \brief Transform a C++ temporary-binding expression. +/// Transform a C++ temporary-binding expression. /// /// Since CXXBindTemporaryExpr nodes are implicitly generated, we just /// transform the subexpression and return that. @@ -10801,7 +10801,7 @@ return getDerived().TransformExpr(E->getSubExpr()); } -/// \brief Transform a C++ expression that contains cleanups that should +/// Transform a C++ expression that contains cleanups that should /// be run after the expression is evaluated. /// /// Since ExprWithCleanups nodes are implicitly generated, we Index: cfe/trunk/lib/Sema/TypeLocBuilder.h =================================================================== --- cfe/trunk/lib/Sema/TypeLocBuilder.h +++ cfe/trunk/lib/Sema/TypeLocBuilder.h @@ -83,7 +83,7 @@ NumBytesAtAlign4 = NumBytesAtAlign8 = 0; } - /// \brief Tell the TypeLocBuilder that the type it is storing has been + /// Tell the TypeLocBuilder that the type it is storing has been /// modified in some safe way that doesn't affect type-location information. void TypeWasModifiedSafely(QualType T) { #ifndef NDEBUG @@ -112,7 +112,7 @@ return DI; } - /// \brief Copies the type-location information to the given AST context and + /// Copies the type-location information to the given AST context and /// returns a \c TypeLoc referring into the AST context. TypeLoc getTypeLocInContext(ASTContext &Context, QualType T) { #ifndef NDEBUG @@ -132,7 +132,7 @@ /// Grow to the given capacity. void grow(size_t NewCapacity); - /// \brief Retrieve a temporary TypeLoc that refers into this \c TypeLocBuilder + /// Retrieve a temporary TypeLoc that refers into this \c TypeLocBuilder /// object. /// /// The resulting \c TypeLoc should only be used so long as the Index: cfe/trunk/lib/Serialization/ASTCommon.h =================================================================== --- cfe/trunk/lib/Serialization/ASTCommon.h +++ cfe/trunk/lib/Serialization/ASTCommon.h @@ -72,7 +72,7 @@ unsigned ComputeHash(Selector Sel); -/// \brief Retrieve the "definitive" declaration that provides all of the +/// Retrieve the "definitive" declaration that provides all of the /// visible entries for the given declaration context, if there is one. /// /// The "definitive" declaration is the only place where we need to look to @@ -84,14 +84,14 @@ /// multiple definitions. const DeclContext *getDefinitiveDeclContext(const DeclContext *DC); -/// \brief Determine whether the given declaration kind is redeclarable. +/// Determine whether the given declaration kind is redeclarable. bool isRedeclarableDeclKind(unsigned Kind); -/// \brief Determine whether the given declaration needs an anonymous +/// Determine whether the given declaration needs an anonymous /// declaration number. bool needsAnonymousDeclarationNumber(const NamedDecl *D); -/// \brief Visit each declaration within \c DC that needs an anonymous +/// Visit each declaration within \c DC that needs an anonymous /// declaration number and call \p Visit with the declaration and its number. template<typename Fn> void numberAnonymousDeclsWithin(const DeclContext *DC, Fn Visit) { Index: cfe/trunk/lib/Serialization/ASTReader.cpp =================================================================== --- cfe/trunk/lib/Serialization/ASTReader.cpp +++ cfe/trunk/lib/Serialization/ASTReader.cpp @@ -256,7 +256,7 @@ ASTReaderListener::~ASTReaderListener() = default; -/// \brief Compare the given set of language options against an existing set of +/// Compare the given set of language options against an existing set of /// language options. /// /// \param Diags If non-NULL, diagnostics will be emitted via this engine. @@ -360,7 +360,7 @@ return false; } -/// \brief Compare the given set of target options against an existing set of +/// Compare the given set of target options against an existing set of /// target options. /// /// \param Diags If non-NULL, diagnostics will be emitted via this engine. @@ -575,7 +575,7 @@ Complain); } -/// \brief Collect the macro definitions provided by the given preprocessor +/// Collect the macro definitions provided by the given preprocessor /// options. static void collectMacroDefinitions(const PreprocessorOptions &PPOpts, @@ -613,7 +613,7 @@ } } -/// \brief Check the preprocessor options deserialized from the control block +/// Check the preprocessor options deserialized from the control block /// against the preprocessor options in an existing preprocessor. /// /// \param Diags If non-null, produce diagnostics for any mismatches incurred. @@ -889,7 +889,7 @@ return StringRef((const char*) d, n-1); } -/// \brief Whether the given identifier is "interesting". +/// Whether the given identifier is "interesting". static bool isInterestingIdentifier(ASTReader &Reader, IdentifierInfo &II, bool IsModule) { return II.hadMacroDefinition() || @@ -1212,7 +1212,7 @@ // Source Manager Deserialization //===----------------------------------------------------------------------===// -/// \brief Read the line table in the source manager block. +/// Read the line table in the source manager block. /// \returns true if there was an error. bool ASTReader::ParseLineTable(ModuleFile &F, const RecordData &Record) { @@ -1258,7 +1258,7 @@ return false; } -/// \brief Read a source manager block +/// Read a source manager block bool ASTReader::ReadSourceManagerBlock(ModuleFile &F) { using namespace SrcMgr; @@ -1314,7 +1314,7 @@ } } -/// \brief If a header file is not found at the path that we expect it to be +/// If a header file is not found at the path that we expect it to be /// and the PCH file was moved from its original location, try to resolve the /// file by assuming that header+PCH were moved together and the header is in /// the same place relative to the PCH. @@ -1512,7 +1512,7 @@ return std::make_pair(M->ImportLoc, StringRef(M->ModuleName)); } -/// \brief Find the location where the module F is imported. +/// Find the location where the module F is imported. SourceLocation ASTReader::getImportLocation(ModuleFile *F) { if (F->ImportLoc.isValid()) return F->ImportLoc; @@ -1858,7 +1858,7 @@ namespace { - /// \brief Visitor class used to look up identifirs in an AST file. + /// Visitor class used to look up identifirs in an AST file. class IdentifierLookupVisitor { StringRef Name; unsigned NameHash; @@ -1902,7 +1902,7 @@ return true; } - // \brief Retrieve the identifier info found within the module + // Retrieve the identifier info found within the module // files. IdentifierInfo *getIdentifierInfo() const { return Found; } }; @@ -2210,7 +2210,7 @@ return IF; } -/// \brief If we are loading a relocatable PCH or module file, and the filename +/// If we are loading a relocatable PCH or module file, and the filename /// is not an absolute path, add the system or module root to the beginning of /// the file name. void ASTReader::ResolveImportedPath(ModuleFile &M, std::string &Filename) { @@ -3668,7 +3668,7 @@ return Success; } -/// \brief Move the given method to the back of the global list of methods. +/// Move the given method to the back of the global list of methods. static void moveMethodToBackOfGlobalList(Sema &S, ObjCMethodDecl *Method) { // Find the entry for this selector in the method pool. Sema::GlobalMethodPool::iterator Known @@ -3821,7 +3821,7 @@ OS.clear_error(); // Avoid triggering a fatal error. } -/// \brief Given a cursor at the start of an AST file, scan ahead and drop the +/// Given a cursor at the start of an AST file, scan ahead and drop the /// cursor into the start of the given block ID, returning false on success and /// true on failure. static bool SkipCursorToBlock(BitstreamCursor &Cursor, unsigned BlockID) { @@ -4088,7 +4088,7 @@ static ASTFileSignature readASTFileSignature(StringRef PCH); -/// \brief Whether \p Stream starts with the AST/PCH file magic number 'CPCH'. +/// Whether \p Stream starts with the AST/PCH file magic number 'CPCH'. static bool startsWithASTFileMagic(BitstreamCursor &Stream) { return Stream.canSkipToPos(4) && Stream.Read(8) == 'C' && @@ -4579,7 +4579,7 @@ // Nothing to do for now. } -/// \brief Reads and return the signature record from \p PCH's control block, or +/// Reads and return the signature record from \p PCH's control block, or /// else returns 0. static ASTFileSignature readASTFileSignature(StringRef PCH) { BitstreamCursor Stream(PCH); @@ -4605,7 +4605,7 @@ } } -/// \brief Retrieve the name of the original source file name +/// Retrieve the name of the original source file name /// directly from the AST file, without actually loading the AST /// file. std::string ASTReader::getOriginalSourceFile( @@ -5213,7 +5213,7 @@ } } -/// \brief Parse the record that corresponds to a LangOptions data +/// Parse the record that corresponds to a LangOptions data /// structure. /// /// This routine parses the language options from the AST file and then gives @@ -5512,7 +5512,7 @@ llvm_unreachable("Invalid PreprocessorDetailRecordTypes"); } -/// \brief Find the next module that contains entities and return the ID +/// Find the next module that contains entities and return the ID /// of the first entry. /// /// \param SLocMapI points at a chunk of a module that contains no @@ -5615,7 +5615,7 @@ return M.BasePreprocessedEntityID + (PPI - pp_begin); } -/// \brief Returns a pair of [Begin, End) indices of preallocated +/// Returns a pair of [Begin, End) indices of preallocated /// preprocessed entities that \arg Range encompasses. std::pair<unsigned, unsigned> ASTReader::findPreprocessedEntitiesInRange(SourceRange Range) { @@ -5629,7 +5629,7 @@ return std::make_pair(BeginID, EndID); } -/// \brief Optionally returns true or false if the preallocated preprocessed +/// Optionally returns true or false if the preallocated preprocessed /// entity with index \arg Index came from file \arg FID. Optional<bool> ASTReader::isPreprocessedEntityInFileID(unsigned Index, FileID FID) { @@ -5653,7 +5653,7 @@ namespace { - /// \brief Visitor used to search for information about a header file. + /// Visitor used to search for information about a header file. class HeaderFileInfoVisitor { const FileEntry *FE; Optional<HeaderFileInfo> HFI; @@ -5833,7 +5833,7 @@ } } -/// \brief Get the correct cursor and offset for loading a type. +/// Get the correct cursor and offset for loading a type. ASTReader::RecordLocation ASTReader::TypeCursorForIndex(unsigned Index) { GlobalTypeMapType::iterator I = GlobalTypeMap.find(Index); assert(I != GlobalTypeMap.end() && "Corrupted global type map"); @@ -5841,7 +5841,7 @@ return RecordLocation(M, M->TypeOffsets[Index - M->BaseTypeIndex]); } -/// \brief Read and return the type with the given index.. +/// Read and return the type with the given index.. /// /// The index is the type ID, shifted and minus the number of predefs. This /// routine actually reads the record corresponding to the type at the given @@ -7285,7 +7285,7 @@ return getGlobalDeclID(F, Record[Idx++]); } -/// \brief Resolve the offset of a statement into a statement. +/// Resolve the offset of a statement into a statement. /// /// This operation will read a new statement from the external /// source each time it is called, and is meant to be used via a @@ -7478,7 +7478,7 @@ return I == Lookups.end() ? nullptr : &I->second; } -/// \brief Under non-PCH compilation the consumer receives the objc methods +/// Under non-PCH compilation the consumer receives the objc methods /// before receiving the implementation, and codegen depends on this. /// We simulate this by deserializing and passing to consumer the methods of the /// implementation before passing the deserialized implementation decl. @@ -7781,25 +7781,25 @@ namespace clang { - /// \brief An identifier-lookup iterator that enumerates all of the + /// An identifier-lookup iterator that enumerates all of the /// identifiers stored within a set of AST files. class ASTIdentifierIterator : public IdentifierIterator { - /// \brief The AST reader whose identifiers are being enumerated. + /// The AST reader whose identifiers are being enumerated. const ASTReader &Reader; - /// \brief The current index into the chain of AST files stored in + /// The current index into the chain of AST files stored in /// the AST reader. unsigned Index; - /// \brief The current position within the identifier lookup table + /// The current position within the identifier lookup table /// of the current AST file. ASTIdentifierLookupTable::key_iterator Current; - /// \brief The end position within the identifier lookup table of + /// The end position within the identifier lookup table of /// the current AST file. ASTIdentifierLookupTable::key_iterator End; - /// \brief Whether to skip any modules in the ASTReader. + /// Whether to skip any modules in the ASTReader. bool SkipModules; public: @@ -7935,12 +7935,12 @@ return true; } - /// \brief Retrieve the instance methods found by this visitor. + /// Retrieve the instance methods found by this visitor. ArrayRef<ObjCMethodDecl *> getInstanceMethods() const { return InstanceMethods; } - /// \brief Retrieve the instance methods found by this visitor. + /// Retrieve the instance methods found by this visitor. ArrayRef<ObjCMethodDecl *> getFactoryMethods() const { return FactoryMethods; } @@ -7958,7 +7958,7 @@ } // namespace serialization } // namespace clang -/// \brief Add the given set of methods to the method list. +/// Add the given set of methods to the method list. static void addMethodsToPool(Sema &S, ArrayRef<ObjCMethodDecl *> Methods, ObjCMethodList &List) { for (unsigned I = 0, N = Methods.size(); I != N; ++I) { @@ -8197,7 +8197,7 @@ DeserializationListener->IdentifierRead(ID, II); } -/// \brief Set the globally-visible declarations associated with the given +/// Set the globally-visible declarations associated with the given /// identifier. /// /// If the AST reader is currently in a state where the given declaration IDs @@ -8728,7 +8728,7 @@ TemplArgs.push_back(ReadTemplateArgument(F, Record, Idx, Canonicalize)); } -/// \brief Read a UnresolvedSet structure. +/// Read a UnresolvedSet structure. void ASTReader::ReadUnresolvedSet(ModuleFile &F, LazyASTUnresolvedSet &Set, const RecordData &Record, unsigned &Idx) { unsigned NumDecls = Record[Idx++]; @@ -8949,7 +8949,7 @@ return SourceRange(beg, end); } -/// \brief Read an integral value +/// Read an integral value llvm::APInt ASTReader::ReadAPInt(const RecordData &Record, unsigned &Idx) { unsigned BitWidth = Record[Idx++]; unsigned NumWords = llvm::APInt::getNumWords(BitWidth); @@ -8958,20 +8958,20 @@ return Result; } -/// \brief Read a signed integral value +/// Read a signed integral value llvm::APSInt ASTReader::ReadAPSInt(const RecordData &Record, unsigned &Idx) { bool isUnsigned = Record[Idx++]; return llvm::APSInt(ReadAPInt(Record, Idx), isUnsigned); } -/// \brief Read a floating-point value +/// Read a floating-point value llvm::APFloat ASTReader::ReadAPFloat(const RecordData &Record, const llvm::fltSemantics &Sem, unsigned &Idx) { return llvm::APFloat(Sem, ReadAPInt(Record, Idx)); } -// \brief Read a string +// Read a string std::string ASTReader::ReadString(const RecordData &Record, unsigned &Idx) { unsigned Len = Record[Idx++]; std::string Result(Record.data() + Idx, Record.data() + Idx + Len); @@ -9013,13 +9013,13 @@ return Diags.Report(Loc, DiagID); } -/// \brief Retrieve the identifier table associated with the +/// Retrieve the identifier table associated with the /// preprocessor. IdentifierTable &ASTReader::getIdentifierTable() { return PP.getIdentifierTable(); } -/// \brief Record that the given ID maps to the given switch-case +/// Record that the given ID maps to the given switch-case /// statement. void ASTReader::RecordSwitchCaseID(SwitchCase *SC, unsigned ID) { assert((*CurrSwitchCaseStmts)[ID] == nullptr && @@ -9027,7 +9027,7 @@ (*CurrSwitchCaseStmts)[ID] = SC; } -/// \brief Retrieve the switch-case statement with the given ID. +/// Retrieve the switch-case statement with the given ID. SwitchCase *ASTReader::getSwitchCaseWithID(unsigned ID) { assert((*CurrSwitchCaseStmts)[ID] != nullptr && "No SwitchCase with this ID"); return (*CurrSwitchCaseStmts)[ID]; Index: cfe/trunk/lib/Serialization/ASTReaderDecl.cpp =================================================================== --- cfe/trunk/lib/Serialization/ASTReaderDecl.cpp +++ cfe/trunk/lib/Serialization/ASTReaderDecl.cpp @@ -94,7 +94,7 @@ bool HasPendingBody = false; - ///\brief A flag to carry the information for a decl from the entity is + ///A flag to carry the information for a decl from the entity is /// used. We use it to delay the marking of the canonical decl as used until /// the entire declaration is deserialized and merged. bool IsDeclMarkedUsed = false; @@ -193,18 +193,18 @@ RedeclarableResult(Decl *MergeWith, GlobalDeclID FirstID, bool IsKeyDecl) : MergeWith(MergeWith), FirstID(FirstID), IsKeyDecl(IsKeyDecl) {} - /// \brief Retrieve the first ID. + /// Retrieve the first ID. GlobalDeclID getFirstID() const { return FirstID; } - /// \brief Is this declaration a key declaration? + /// Is this declaration a key declaration? bool isKeyDecl() const { return IsKeyDecl; } - /// \brief Get a known declaration that this should be merged with, if + /// Get a known declaration that this should be merged with, if /// any. Decl *getKnownMergeTarget() const { return MergeWith; } }; - /// \brief Class used to capture the result of searching for an existing + /// Class used to capture the result of searching for an existing /// declaration of a specific kind and name, along with the ability /// to update the place where this result was found (the declaration /// chain hanging off an identifier or the DeclContext we searched in) @@ -238,7 +238,7 @@ FindExistingResult &operator=(FindExistingResult &&) = delete; ~FindExistingResult(); - /// \brief Suppress the addition of this result into the known set of + /// Suppress the addition of this result into the known set of /// names. void suppress() { AddResult = false; } @@ -305,7 +305,7 @@ static void markIncompleteDeclChainImpl(Redeclarable<DeclT> *D); static void markIncompleteDeclChainImpl(...); - /// \brief Determine whether this declaration has a pending body. + /// Determine whether this declaration has a pending body. bool hasPendingBody() const { return HasPendingBody; } void ReadFunctionDefinition(FunctionDecl *FD); @@ -2433,7 +2433,7 @@ return RedeclarableResult(MergeWith, FirstDeclID, IsKeyDecl); } -/// \brief Attempts to merge the given declaration (D) with another declaration +/// Attempts to merge the given declaration (D) with another declaration /// of the same entity. template<typename T> void ASTDeclReader::mergeRedeclarable(Redeclarable<T> *DBase, @@ -2457,7 +2457,7 @@ mergeRedeclarable(D, Existing, Redecl, TemplatePatternID); } -/// \brief "Cast" to type T, asserting if we don't have an implicit conversion. +/// "Cast" to type T, asserting if we don't have an implicit conversion. /// We use this to put code in a template that will only be valid for certain /// instantiations. template<typename T> static T assert_cast(T t) { return t; } @@ -2465,7 +2465,7 @@ llvm_unreachable("bad assert_cast"); } -/// \brief Merge together the pattern declarations from two template +/// Merge together the pattern declarations from two template /// declarations. void ASTDeclReader::mergeTemplatePattern(RedeclarableTemplateDecl *D, RedeclarableTemplateDecl *Existing, @@ -2507,7 +2507,7 @@ llvm_unreachable("merged an unknown kind of redeclarable template"); } -/// \brief Attempts to merge the given declaration (D) with another declaration +/// Attempts to merge the given declaration (D) with another declaration /// of the same entity. template<typename T> void ASTDeclReader::mergeRedeclarable(Redeclarable<T> *DBase, T *Existing, @@ -2561,7 +2561,7 @@ return false; } -/// \brief Attempts to merge the given declaration (D) with another declaration +/// Attempts to merge the given declaration (D) with another declaration /// of the same entity, for the case where the entity is not actually /// redeclarable. This happens, for instance, when merging the fields of /// identical class definitions from two different modules. @@ -2614,7 +2614,7 @@ // Attribute Reading //===----------------------------------------------------------------------===// -/// \brief Reads attributes from the current stream position. +/// Reads attributes from the current stream position. void ASTReader::ReadAttributes(ASTRecordReader &Record, AttrVec &Attrs) { for (unsigned i = 0, e = Record.readInt(); i != e; ++i) { Attr *New = nullptr; @@ -2633,7 +2633,7 @@ // ASTReader Implementation //===----------------------------------------------------------------------===// -/// \brief Note that we have loaded the declaration with the given +/// Note that we have loaded the declaration with the given /// Index. /// /// This routine notes that this declaration has already been loaded, @@ -2644,7 +2644,7 @@ DeclsLoaded[Index] = D; } -/// \brief Determine whether the consumer will be interested in seeing +/// Determine whether the consumer will be interested in seeing /// this declaration (via HandleTopLevelDecl). /// /// This routine should return true for anything that might affect @@ -2685,7 +2685,7 @@ return false; } -/// \brief Get the correct cursor and offset for loading a declaration. +/// Get the correct cursor and offset for loading a declaration. ASTReader::RecordLocation ASTReader::DeclCursorForID(DeclID ID, SourceLocation &Loc) { GlobalDeclMapType::iterator I = GlobalDeclMap.find(ID); @@ -2711,7 +2711,7 @@ static bool isSameTemplateParameterList(const TemplateParameterList *X, const TemplateParameterList *Y); -/// \brief Determine whether two template parameters are similar enough +/// Determine whether two template parameters are similar enough /// that they may be used in declarations of the same template. static bool isSameTemplateParameter(const NamedDecl *X, const NamedDecl *Y) { @@ -2783,7 +2783,7 @@ return !PX && !PY; } -/// \brief Determine whether two template parameter lists are similar enough +/// Determine whether two template parameter lists are similar enough /// that they may be used in declarations of the same template. static bool isSameTemplateParameterList(const TemplateParameterList *X, const TemplateParameterList *Y) { @@ -2836,7 +2836,7 @@ return true; } -/// \brief Determine whether the two declarations refer to the same entity. +/// Determine whether the two declarations refer to the same entity. static bool isSameEntity(NamedDecl *X, NamedDecl *Y) { assert(X->getDeclName() == Y->getDeclName() && "Declaration name mismatch!"); @@ -3463,7 +3463,7 @@ } } -/// \brief Read the declaration at the given offset from the AST file. +/// Read the declaration at the given offset from the AST file. Decl *ASTReader::ReadDeclRecord(DeclID ID) { unsigned Index = ID - NUM_PREDEF_DECL_IDS; SourceLocation DeclLoc; @@ -3905,7 +3905,7 @@ namespace { - /// \brief Given an ObjC interface, goes through the modules and links to the + /// Given an ObjC interface, goes through the modules and links to the /// interface all the categories for it. class ObjCCategoriesVisitor { ASTReader &Reader; Index: cfe/trunk/lib/Serialization/ASTReaderInternals.h =================================================================== --- cfe/trunk/lib/Serialization/ASTReaderInternals.h +++ cfe/trunk/lib/Serialization/ASTReaderInternals.h @@ -40,7 +40,7 @@ namespace reader { -/// \brief Class that performs name lookup into a DeclContext stored +/// Class that performs name lookup into a DeclContext stored /// in an AST file. class ASTDeclContextNameLookupTrait { ASTReader &Reader; @@ -121,7 +121,7 @@ MultiOnDiskHashTable<ASTDeclContextNameLookupTrait> Table; }; -/// \brief Base class for the trait describing the on-disk hash table for the +/// Base class for the trait describing the on-disk hash table for the /// identifiers in an AST file. /// /// This class is not useful by itself; rather, it provides common @@ -156,7 +156,7 @@ static internal_key_type ReadKey(const unsigned char* d, unsigned n); }; -/// \brief Class that performs lookup for an identifier stored in an AST file. +/// Class that performs lookup for an identifier stored in an AST file. class ASTIdentifierLookupTrait : public ASTIdentifierLookupTraitBase { ASTReader &Reader; ModuleFile &F; @@ -182,12 +182,12 @@ ASTReader &getReader() const { return Reader; } }; -/// \brief The on-disk hash table used to contain information about +/// The on-disk hash table used to contain information about /// all of the identifiers in the program. using ASTIdentifierLookupTable = llvm::OnDiskIterableChainedHashTable<ASTIdentifierLookupTrait>; -/// \brief Class that performs lookup for a selector's entries in the global +/// Class that performs lookup for a selector's entries in the global /// method pool stored in an AST file. class ASTSelectorLookupTrait { ASTReader &Reader; @@ -229,11 +229,11 @@ data_type ReadData(Selector, const unsigned char* d, unsigned DataLen); }; -/// \brief The on-disk hash table used for the global method pool. +/// The on-disk hash table used for the global method pool. using ASTSelectorLookupTable = llvm::OnDiskChainedHashTable<ASTSelectorLookupTrait>; -/// \brief Trait class used to search the on-disk hash table containing all of +/// Trait class used to search the on-disk hash table containing all of /// the header search information. /// /// The on-disk hash table contains a mapping from each header path to @@ -280,7 +280,7 @@ data_type ReadData(internal_key_ref,const unsigned char *d, unsigned DataLen); }; -/// \brief The on-disk hash table used for known header files. +/// The on-disk hash table used for known header files. using HeaderFileInfoLookupTable = llvm::OnDiskChainedHashTable<HeaderFileInfoTrait>; Index: cfe/trunk/lib/Serialization/ASTReaderStmt.cpp =================================================================== --- cfe/trunk/lib/Serialization/ASTReaderStmt.cpp +++ cfe/trunk/lib/Serialization/ASTReaderStmt.cpp @@ -110,20 +110,20 @@ ASTStmtReader(ASTRecordReader &Record, llvm::BitstreamCursor &Cursor) : Record(Record), DeclsCursor(Cursor) {} - /// \brief The number of record fields required for the Stmt class + /// The number of record fields required for the Stmt class /// itself. static const unsigned NumStmtFields = 0; - /// \brief The number of record fields required for the Expr class + /// The number of record fields required for the Expr class /// itself. static const unsigned NumExprFields = NumStmtFields + 7; - /// \brief Read and initialize a ExplicitTemplateArgumentList structure. + /// Read and initialize a ExplicitTemplateArgumentList structure. void ReadTemplateKWAndArgsInfo(ASTTemplateKWAndArgsInfo &Args, TemplateArgumentLoc *ArgsLocArray, unsigned NumTemplateArgs); - /// \brief Read and initialize a ExplicitTemplateArgumentList structure. + /// Read and initialize a ExplicitTemplateArgumentList structure. void ReadExplicitTemplateArgumentList(ASTTemplateArgumentListInfo &ArgList, unsigned NumTemplateArgs); Index: cfe/trunk/lib/Serialization/ASTWriter.cpp =================================================================== --- cfe/trunk/lib/Serialization/ASTWriter.cpp +++ cfe/trunk/lib/Serialization/ASTWriter.cpp @@ -138,10 +138,10 @@ ASTWriter &Writer; ASTRecordWriter Record; - /// \brief Type code that corresponds to the record generated. + /// Type code that corresponds to the record generated. TypeCode Code = static_cast<TypeCode>(0); - /// \brief Abbreviation to use for the record, if any. + /// Abbreviation to use for the record, if any. unsigned AbbrevToUse = 0; public: @@ -1319,7 +1319,7 @@ Stream.ExitBlock(); } -/// \brief Prepares a path for being written to an AST file by converting it +/// Prepares a path for being written to an AST file by converting it /// to an absolute path and removing nested './'s. /// /// \return \c true if the path was changed. @@ -1329,7 +1329,7 @@ return Changed | llvm::sys::path::remove_dots(Path); } -/// \brief Adjusts the given filename to only write out the portion of the +/// Adjusts the given filename to only write out the portion of the /// filename that is not part of the system root directory. /// /// \param Filename the file name to adjust. @@ -1439,7 +1439,7 @@ return Signature; } -/// \brief Write the control block. +/// Write the control block. void ASTWriter::WriteControlBlock(Preprocessor &PP, ASTContext &Context, StringRef isysroot, const std::string &OutputFile) { @@ -1735,7 +1735,7 @@ namespace { -/// \brief An input file. +/// An input file. struct InputFileEntry { const FileEntry *File; bool IsSystemFile; @@ -1845,7 +1845,7 @@ // Source Manager Serialization //===----------------------------------------------------------------------===// -/// \brief Create an abbreviation for the SLocEntry that refers to a +/// Create an abbreviation for the SLocEntry that refers to a /// file. static unsigned CreateSLocFileAbbrev(llvm::BitstreamWriter &Stream) { using namespace llvm; @@ -1864,7 +1864,7 @@ return Stream.EmitAbbrev(std::move(Abbrev)); } -/// \brief Create an abbreviation for the SLocEntry that refers to a +/// Create an abbreviation for the SLocEntry that refers to a /// buffer. static unsigned CreateSLocBufferAbbrev(llvm::BitstreamWriter &Stream) { using namespace llvm; @@ -1879,7 +1879,7 @@ return Stream.EmitAbbrev(std::move(Abbrev)); } -/// \brief Create an abbreviation for the SLocEntry that refers to a +/// Create an abbreviation for the SLocEntry that refers to a /// buffer's blob. static unsigned CreateSLocBufferBlobAbbrev(llvm::BitstreamWriter &Stream, bool Compressed) { @@ -1894,7 +1894,7 @@ return Stream.EmitAbbrev(std::move(Abbrev)); } -/// \brief Create an abbreviation for the SLocEntry that refers to a macro +/// Create an abbreviation for the SLocEntry that refers to a macro /// expansion. static unsigned CreateSLocExpansionAbbrev(llvm::BitstreamWriter &Stream) { using namespace llvm; @@ -2038,7 +2038,7 @@ } // namespace -/// \brief Write the header search block for the list of files that +/// Write the header search block for the list of files that /// /// \param HS The header search structure to save. void ASTWriter::WriteHeaderSearch(const HeaderSearch &HS) { @@ -2202,7 +2202,7 @@ Stream.EmitRecordWithBlob(SLocBufferBlobAbbrv, Record, Blob); } -/// \brief Writes the block containing the serialized form of the +/// Writes the block containing the serialized form of the /// source manager. /// /// TODO: We should probably use an on-disk hash table (stored in a @@ -2425,7 +2425,7 @@ return false; } -/// \brief Writes the block containing the serialized form of the +/// Writes the block containing the serialized form of the /// preprocessor. void ASTWriter::WritePreprocessor(const Preprocessor &PP, bool IsModule) { PreprocessingRecord *PPRec = PP.getPreprocessingRecord(); @@ -2545,7 +2545,7 @@ Record.clear(); } - /// \brief Offsets of each of the macros into the bitstream, indexed by + /// Offsets of each of the macros into the bitstream, indexed by /// the local macro ID /// /// For each identifier that is associated with a macro, this map @@ -2780,7 +2780,7 @@ return ID; } -/// \brief Compute the number of modules within the given tree (including the +/// Compute the number of modules within the given tree (including the /// given module). static unsigned getNumberOfModules(Module *Mod) { unsigned ChildModules = 0; @@ -3129,7 +3129,7 @@ // Type Serialization //===----------------------------------------------------------------------===// -/// \brief Write the representation of a type to the AST stream. +/// Write the representation of a type to the AST stream. void ASTWriter::WriteType(QualType T) { TypeIdx &IdxRef = TypeIdxs[T]; if (IdxRef.getIndex() == 0) // we haven't seen this type before. @@ -3161,7 +3161,7 @@ // Declaration Serialization //===----------------------------------------------------------------------===// -/// \brief Write the block containing all of the declaration IDs +/// Write the block containing all of the declaration IDs /// lexically declared within the given DeclContext. /// /// \returns the offset of the DECL_CONTEXT_LEXICAL block within the @@ -3373,7 +3373,7 @@ } // namespace -/// \brief Write ObjC data: selectors and the method pool. +/// Write ObjC data: selectors and the method pool. /// /// The method pool contains both instance and factory methods, stored /// in an on-disk hash table indexed by the selector. The hash table also @@ -3477,7 +3477,7 @@ } } -/// \brief Write the selectors referenced in @selector expression into AST file. +/// Write the selectors referenced in @selector expression into AST file. void ASTWriter::WriteReferencedSelectorsPool(Sema &SemaRef) { using namespace llvm; @@ -3553,7 +3553,7 @@ bool NeedDecls; ASTWriter::RecordData *InterestingIdentifierOffsets; - /// \brief Determines whether this is an "interesting" identifier that needs a + /// Determines whether this is an "interesting" identifier that needs a /// full IdentifierInfo structure written into the hash table. Notably, this /// doesn't check whether the name has macros defined; use PublicMacroIterator /// to check that. @@ -3695,7 +3695,7 @@ } // namespace -/// \brief Write the identifier table into the AST file. +/// Write the identifier table into the AST file. /// /// The identifier table consists of a blob containing string data /// (the actual identifiers themselves) and a separate "offsets" index @@ -4126,7 +4126,7 @@ Generator.emit(LookupTable, Trait, Lookups ? &Lookups->Table : nullptr); } -/// \brief Write the block containing all of the declaration IDs +/// Write the block containing all of the declaration IDs /// visible from the given DeclContext. /// /// \returns the offset of the DECL_CONTEXT_VISIBLE block within the @@ -4216,7 +4216,7 @@ return Offset; } -/// \brief Write an UPDATE_VISIBLE block for the given context. +/// Write an UPDATE_VISIBLE block for the given context. /// /// UPDATE_VISIBLE blocks contain the declarations that are added to an existing /// DeclContext in a dependent AST file. As such, they only exist for the TU @@ -4241,13 +4241,13 @@ Stream.EmitRecordWithBlob(UpdateVisibleAbbrev, Record, LookupTable); } -/// \brief Write an FP_PRAGMA_OPTIONS block for the given FPOptions. +/// Write an FP_PRAGMA_OPTIONS block for the given FPOptions. void ASTWriter::WriteFPPragmaOptions(const FPOptions &Opts) { RecordData::value_type Record[] = {Opts.getInt()}; Stream.EmitRecord(FP_PRAGMA_OPTIONS, Record); } -/// \brief Write an OPENCL_EXTENSIONS block for the given OpenCLOptions. +/// Write an OPENCL_EXTENSIONS block for the given OpenCLOptions. void ASTWriter::WriteOpenCLExtensions(Sema &SemaRef) { if (!SemaRef.Context.getLangOpts().OpenCL) return; @@ -4374,7 +4374,7 @@ Stream.EmitRecord(LATE_PARSED_TEMPLATE, Record); } -/// \brief Write the state of 'pragma clang optimize' at the end of the module. +/// Write the state of 'pragma clang optimize' at the end of the module. void ASTWriter::WriteOptimizePragmaOptions(Sema &SemaRef) { RecordData Record; SourceLocation PragmaLoc = SemaRef.getOptimizeOffPragmaLocation(); @@ -4382,14 +4382,14 @@ Stream.EmitRecord(OPTIMIZE_PRAGMA_OPTIONS, Record); } -/// \brief Write the state of 'pragma ms_struct' at the end of the module. +/// Write the state of 'pragma ms_struct' at the end of the module. void ASTWriter::WriteMSStructPragmaOptions(Sema &SemaRef) { RecordData Record; Record.push_back(SemaRef.MSStructPragmaOn ? PMSST_ON : PMSST_OFF); Stream.EmitRecord(MSSTRUCT_PRAGMA_OPTIONS, Record); } -/// \brief Write the state of 'pragma pointers_to_members' at the end of the +/// Write the state of 'pragma pointers_to_members' at the end of the //module. void ASTWriter::WriteMSPointersToMembersPragmaOptions(Sema &SemaRef) { RecordData Record; @@ -4398,7 +4398,7 @@ Stream.EmitRecord(POINTERS_TO_MEMBERS_PRAGMA_OPTIONS, Record); } -/// \brief Write the state of 'pragma pack' at the end of the module. +/// Write the state of 'pragma pack' at the end of the module. void ASTWriter::WritePackPragmaOptions(Sema &SemaRef) { // Don't serialize pragma pack state for modules, since it should only take // effect on a per-submodule basis. @@ -4457,7 +4457,7 @@ // General Serialization Routines //===----------------------------------------------------------------------===// -/// \brief Emit the list of attributes to the specified record. +/// Emit the list of attributes to the specified record. void ASTRecordWriter::AddAttributes(ArrayRef<const Attr *> Attrs) { auto &Record = *this; Record.push_back(Attrs.size()); @@ -4531,7 +4531,7 @@ Record.push_back(0); } -/// \brief Note that the identifier II occurs at the given offset +/// Note that the identifier II occurs at the given offset /// within the identifier table. void ASTWriter::SetIdentifierOffset(const IdentifierInfo *II, uint32_t Offset) { IdentID ID = IdentifierIDs[II]; @@ -4541,7 +4541,7 @@ IdentifierOffsets[ID - FirstIdentID] = Offset; } -/// \brief Note that the selector Sel occurs at the given offset +/// Note that the selector Sel occurs at the given offset /// within the method pool/selector table. void ASTWriter::SetSelectorOffset(Selector Sel, uint32_t Offset) { unsigned ID = SelectorIDs[Sel]; @@ -5889,7 +5889,7 @@ AddDeclRef(P); } -/// \brief Emit a template argument list. +/// Emit a template argument list. void ASTRecordWriter::AddTemplateArgumentList( const TemplateArgumentList *TemplateArgs) { assert(TemplateArgs && "No TemplateArgs!"); Index: cfe/trunk/lib/Serialization/ASTWriterDecl.cpp =================================================================== --- cfe/trunk/lib/Serialization/ASTWriterDecl.cpp +++ cfe/trunk/lib/Serialization/ASTWriterDecl.cpp @@ -1635,7 +1635,7 @@ Code = serialization::DECL_STATIC_ASSERT; } -/// \brief Emit the DeclContext part of a declaration context decl. +/// Emit the DeclContext part of a declaration context decl. void ASTDeclWriter::VisitDeclContext(DeclContext *DC) { Record.AddOffset(Writer.WriteDeclContextLexicalBlock(Context, DC)); Record.AddOffset(Writer.WriteDeclContextVisibleBlock(Context, DC)); Index: cfe/trunk/lib/Serialization/ASTWriterStmt.cpp =================================================================== --- cfe/trunk/lib/Serialization/ASTWriterStmt.cpp +++ cfe/trunk/lib/Serialization/ASTWriterStmt.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Implements serialization for Statements and Expressions. +/// Implements serialization for Statements and Expressions. /// //===----------------------------------------------------------------------===// @@ -2677,7 +2677,7 @@ SwitchCaseIDs.clear(); } -/// \brief Write the given substatement or subexpression to the +/// Write the given substatement or subexpression to the /// bitstream. void ASTWriter::WriteSubStmt(Stmt *S) { RecordData Record; @@ -2721,7 +2721,7 @@ SubStmtEntries[S] = Offset; } -/// \brief Flush all of the statements that have been added to the +/// Flush all of the statements that have been added to the /// queue via AddStmt(). void ASTRecordWriter::FlushStmts() { // We expect to be the only consumer of the two temporary statement maps, Index: cfe/trunk/lib/Serialization/GlobalModuleIndex.cpp =================================================================== --- cfe/trunk/lib/Serialization/GlobalModuleIndex.cpp +++ cfe/trunk/lib/Serialization/GlobalModuleIndex.cpp @@ -38,26 +38,26 @@ //----------------------------------------------------------------------------// namespace { enum { - /// \brief The block containing the index. + /// The block containing the index. GLOBAL_INDEX_BLOCK_ID = llvm::bitc::FIRST_APPLICATION_BLOCKID }; - /// \brief Describes the record types in the index. + /// Describes the record types in the index. enum IndexRecordTypes { - /// \brief Contains version information and potentially other metadata, + /// Contains version information and potentially other metadata, /// used to determine if we can read this global index file. INDEX_METADATA, - /// \brief Describes a module, including its file name and dependencies. + /// Describes a module, including its file name and dependencies. MODULE, - /// \brief The index for identifiers. + /// The index for identifiers. IDENTIFIER_INDEX }; } -/// \brief The name of the global index file. +/// The name of the global index file. static const char * const IndexFileName = "modules.idx"; -/// \brief The global index file version. +/// The global index file version. static const unsigned CurrentVersion = 1; //----------------------------------------------------------------------------// @@ -66,7 +66,7 @@ namespace { -/// \brief Trait used to read the identifier index from the on-disk hash +/// Trait used to read the identifier index from the on-disk hash /// table. class IdentifierIndexReaderTrait { public: @@ -245,7 +245,7 @@ return std::make_pair(nullptr, EC_NotFound); std::unique_ptr<llvm::MemoryBuffer> Buffer = std::move(BufferOrErr.get()); - /// \brief The main bitstream cursor for the main block. + /// The main bitstream cursor for the main block. llvm::BitstreamCursor Cursor(*Buffer); // Sniff for the signature. @@ -368,12 +368,12 @@ //----------------------------------------------------------------------------// namespace { - /// \brief Provides information about a specific module file. + /// Provides information about a specific module file. struct ModuleFileInfo { - /// \brief The numberic ID for this module file. + /// The numberic ID for this module file. unsigned ID; - /// \brief The set of modules on which this module depends. Each entry is + /// The set of modules on which this module depends. Each entry is /// a module ID. SmallVector<unsigned, 4> Dependencies; ASTFileSignature Signature; @@ -387,7 +387,7 @@ : StoredSize(Size), StoredModTime(ModTime), StoredSignature(Sig) {} }; - /// \brief Builder that generates the global module index file. + /// Builder that generates the global module index file. class GlobalModuleIndexBuilder { FileManager &FileMgr; const PCHContainerReader &PCHContainerRdr; @@ -398,26 +398,26 @@ /// Information about each of the known module files. ModuleFilesMap ModuleFiles; - /// \brief Mapping from the imported module file to the imported + /// Mapping from the imported module file to the imported /// information. typedef std::multimap<const FileEntry *, ImportedModuleFileInfo> ImportedModuleFilesMap; - /// \brief Information about each importing of a module file. + /// Information about each importing of a module file. ImportedModuleFilesMap ImportedModuleFiles; - /// \brief Mapping from identifiers to the list of module file IDs that + /// Mapping from identifiers to the list of module file IDs that /// consider this identifier to be interesting. typedef llvm::StringMap<SmallVector<unsigned, 2> > InterestingIdentifierMap; - /// \brief A mapping from all interesting identifiers to the set of module + /// A mapping from all interesting identifiers to the set of module /// files in which those identifiers are considered interesting. InterestingIdentifierMap InterestingIdentifiers; - /// \brief Write the block-info block for the global module index file. + /// Write the block-info block for the global module index file. void emitBlockInfoBlock(llvm::BitstreamWriter &Stream); - /// \brief Retrieve the module file information for the given file. + /// Retrieve the module file information for the given file. ModuleFileInfo &getModuleFileInfo(const FileEntry *File) { llvm::MapVector<const FileEntry *, ModuleFileInfo>::iterator Known = ModuleFiles.find(File); @@ -435,12 +435,12 @@ FileManager &FileMgr, const PCHContainerReader &PCHContainerRdr) : FileMgr(FileMgr), PCHContainerRdr(PCHContainerRdr) {} - /// \brief Load the contents of the given module file into the builder. + /// Load the contents of the given module file into the builder. /// /// \returns true if an error occurred, false otherwise. bool loadModuleFile(const FileEntry *File); - /// \brief Write the index to the given bitstream. + /// Write the index to the given bitstream. /// \returns true if an error occurred, false otherwise. bool writeIndex(llvm::BitstreamWriter &Stream); }; @@ -493,7 +493,7 @@ : public serialization::reader::ASTIdentifierLookupTraitBase { public: - /// \brief The identifier and whether it is "interesting". + /// The identifier and whether it is "interesting". typedef std::pair<StringRef, bool> data_type; data_type ReadData(const internal_key_type& k, @@ -685,7 +685,7 @@ namespace { -/// \brief Trait used to generate the identifier index as an on-disk hash +/// Trait used to generate the identifier index as an on-disk hash /// table. class IdentifierIndexWriterTrait { public: @@ -913,10 +913,10 @@ namespace { class GlobalIndexIdentifierIterator : public IdentifierIterator { - /// \brief The current position within the identifier lookup table. + /// The current position within the identifier lookup table. IdentifierIndexTable::key_iterator Current; - /// \brief The end position within the identifier lookup table. + /// The end position within the identifier lookup table. IdentifierIndexTable::key_iterator End; public: Index: cfe/trunk/lib/Serialization/MultiOnDiskHashTable.h =================================================================== --- cfe/trunk/lib/Serialization/MultiOnDiskHashTable.h +++ cfe/trunk/lib/Serialization/MultiOnDiskHashTable.h @@ -37,7 +37,7 @@ namespace clang { namespace serialization { -/// \brief A collection of on-disk hash tables, merged when relevant for performance. +/// A collection of on-disk hash tables, merged when relevant for performance. template<typename Info> class MultiOnDiskHashTable { public: /// A handle to a file, used when overriding tables. @@ -57,7 +57,7 @@ template<typename ReaderInfo, typename WriterInfo> friend class MultiOnDiskHashTableGenerator; - /// \brief A hash table stored on disk. + /// A hash table stored on disk. struct OnDiskTable { using HashTable = llvm::OnDiskIterableChainedHashTable<Info>; @@ -79,14 +79,14 @@ using Table = llvm::PointerUnion<OnDiskTable *, MergedTable *>; using TableVector = llvm::TinyPtrVector<void *>; - /// \brief The current set of on-disk and merged tables. + /// The current set of on-disk and merged tables. /// We manually store the opaque value of the Table because TinyPtrVector /// can't cope with holding a PointerUnion directly. /// There can be at most one MergedTable in this vector, and if present, /// it is the first table. TableVector Tables; - /// \brief Files corresponding to overridden tables that we've not yet + /// Files corresponding to overridden tables that we've not yet /// discarded. llvm::TinyPtrVector<file_type> PendingOverrides; @@ -102,7 +102,7 @@ llvm::mapped_iterator<TableVector::iterator, AsOnDiskTable>; using table_range = llvm::iterator_range<table_iterator>; - /// \brief The current set of on-disk tables. + /// The current set of on-disk tables. table_range tables() { auto Begin = Tables.begin(), End = Tables.end(); if (getMergedTable()) @@ -117,7 +117,7 @@ .template dyn_cast<MergedTable*>(); } - /// \brief Delete all our current on-disk tables. + /// Delete all our current on-disk tables. void clear() { for (auto *T : tables()) delete T; @@ -194,7 +194,7 @@ ~MultiOnDiskHashTable() { clear(); } - /// \brief Add the table \p Data loaded from file \p File. + /// Add the table \p Data loaded from file \p File. void add(file_type File, storage_type Data, Info InfoObj = Info()) { using namespace llvm::support; @@ -225,7 +225,7 @@ Tables.push_back(NewTable.getOpaqueValue()); } - /// \brief Find and read the lookup results for \p EKey. + /// Find and read the lookup results for \p EKey. data_type find(const external_key_type &EKey) { data_type Result; @@ -257,7 +257,7 @@ return Result; } - /// \brief Read all the lookup results into a single value. This only makes + /// Read all the lookup results into a single value. This only makes /// sense if merging values across keys is meaningful. data_type findAll() { data_type Result; @@ -288,7 +288,7 @@ } }; -/// \brief Writer for the on-disk hash table. +/// Writer for the on-disk hash table. template<typename ReaderInfo, typename WriterInfo> class MultiOnDiskHashTableGenerator { using BaseTable = MultiOnDiskHashTable<ReaderInfo>; Index: cfe/trunk/lib/StaticAnalyzer/Checkers/AllocationDiagnostics.h =================================================================== --- cfe/trunk/lib/StaticAnalyzer/Checkers/AllocationDiagnostics.h +++ cfe/trunk/lib/StaticAnalyzer/Checkers/AllocationDiagnostics.h @@ -18,7 +18,7 @@ namespace clang { namespace ento { -/// \brief Returns true if leak diagnostics should directly reference +/// Returns true if leak diagnostics should directly reference /// the allocatin site (where possible). /// /// The default is false. Index: cfe/trunk/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp =================================================================== --- cfe/trunk/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp +++ cfe/trunk/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp @@ -1164,7 +1164,7 @@ namespace { /// \class ObjCNonNilReturnValueChecker -/// \brief The checker restricts the return values of APIs known to +/// The checker restricts the return values of APIs known to /// never (or almost never) return 'nil'. class ObjCNonNilReturnValueChecker : public Checker<check::PostObjCMessage, Index: cfe/trunk/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp =================================================================== --- cfe/trunk/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp +++ cfe/trunk/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp @@ -59,7 +59,7 @@ check::Event<ImplicitNullDerefEvent>, check::ASTDecl<FunctionDecl> > { public: - /// \brief Pre-visit the Statement. + /// Pre-visit the Statement. /// /// The method will be called before the analyzer core processes the /// statement. The notification is performed for every explored CFGElement, @@ -72,7 +72,7 @@ /// check::PreStmt<ReturnStmt> void checkPreStmt(const ReturnStmt *DS, CheckerContext &C) const {} - /// \brief Post-visit the Statement. + /// Post-visit the Statement. /// /// The method will be called after the analyzer core processes the /// statement. The notification is performed for every explored CFGElement, @@ -82,7 +82,7 @@ /// check::PostStmt<DeclStmt> void checkPostStmt(const DeclStmt *DS, CheckerContext &C) const; - /// \brief Pre-visit the Objective C message. + /// Pre-visit the Objective C message. /// /// This will be called before the analyzer core processes the method call. /// This is called for any action which produces an Objective-C message send, @@ -91,13 +91,13 @@ /// check::PreObjCMessage void checkPreObjCMessage(const ObjCMethodCall &M, CheckerContext &C) const {} - /// \brief Post-visit the Objective C message. + /// Post-visit the Objective C message. /// \sa checkPreObjCMessage() /// /// check::PostObjCMessage void checkPostObjCMessage(const ObjCMethodCall &M, CheckerContext &C) const {} - /// \brief Visit an Objective-C message whose receiver is nil. + /// Visit an Objective-C message whose receiver is nil. /// /// This will be called when the analyzer core processes a method call whose /// receiver is definitely nil. In this case, check{Pre/Post}ObjCMessage and @@ -106,7 +106,7 @@ /// check::ObjCMessageNil void checkObjCMessageNil(const ObjCMethodCall &M, CheckerContext &C) const {} - /// \brief Pre-visit an abstract "call" event. + /// Pre-visit an abstract "call" event. /// /// This is used for checkers that want to check arguments or attributed /// behavior for functions and methods no matter how they are being invoked. @@ -118,16 +118,16 @@ /// check::PreCall void checkPreCall(const CallEvent &Call, CheckerContext &C) const {} - /// \brief Post-visit an abstract "call" event. + /// Post-visit an abstract "call" event. /// \sa checkPreObjCMessage() /// /// check::PostCall void checkPostCall(const CallEvent &Call, CheckerContext &C) const {} - /// \brief Pre-visit of the condition statement of a branch (such as IfStmt). + /// Pre-visit of the condition statement of a branch (such as IfStmt). void checkBranchCondition(const Stmt *Condition, CheckerContext &Ctx) const {} - /// \brief Post-visit the C++ operator new's allocation call. + /// Post-visit the C++ operator new's allocation call. /// /// Execution of C++ operator new consists of the following phases: (1) call /// default or overridden operator new() to allocate memory (2) cast the @@ -143,7 +143,7 @@ void checkNewAllocator(const CXXNewExpr *NE, SVal Target, CheckerContext &) const {} - /// \brief Called on a load from and a store to a location. + /// Called on a load from and a store to a location. /// /// The method will be called each time a location (pointer) value is /// accessed. @@ -155,7 +155,7 @@ void checkLocation(SVal Loc, bool IsLoad, const Stmt *S, CheckerContext &) const {} - /// \brief Called on binding of a value to a location. + /// Called on binding of a value to a location. /// /// \param Loc The value of the location (pointer). /// \param Val The value which will be stored at the location Loc. @@ -164,7 +164,7 @@ /// check::Bind void checkBind(SVal Loc, SVal Val, const Stmt *S, CheckerContext &) const {} - /// \brief Called whenever a symbol becomes dead. + /// Called whenever a symbol becomes dead. /// /// This callback should be used by the checkers to aggressively clean /// up/reduce the checker state, which is important for reducing the overall @@ -181,20 +181,20 @@ void checkDeadSymbols(SymbolReaper &SR, CheckerContext &C) const {} - /// \brief Called when the analyzer core starts analyzing a function, + /// Called when the analyzer core starts analyzing a function, /// regardless of whether it is analyzed at the top level or is inlined. /// /// check::BeginFunction void checkBeginFunction(CheckerContext &Ctx) const {} - /// \brief Called when the analyzer core reaches the end of a + /// Called when the analyzer core reaches the end of a /// function being analyzed regardless of whether it is analyzed at the top /// level or is inlined. /// /// check::EndFunction void checkEndFunction(CheckerContext &Ctx) const {} - /// \brief Called after all the paths in the ExplodedGraph reach end of path + /// Called after all the paths in the ExplodedGraph reach end of path /// - the symbolic execution graph is fully explored. /// /// This callback should be used in cases when a checker needs to have a @@ -207,14 +207,14 @@ BugReporter &BR, ExprEngine &Eng) const {} - /// \brief Called after analysis of a TranslationUnit is complete. + /// Called after analysis of a TranslationUnit is complete. /// /// check::EndOfTranslationUnit void checkEndOfTranslationUnit(const TranslationUnitDecl *TU, AnalysisManager &Mgr, BugReporter &BR) const {} - /// \brief Evaluates function call. + /// Evaluates function call. /// /// The analysis core threats all function calls in the same way. However, some /// functions have special meaning, which should be reflected in the program @@ -229,7 +229,7 @@ /// eval::Call bool evalCall(const CallExpr *CE, CheckerContext &C) const { return true; } - /// \brief Handles assumptions on symbolic values. + /// Handles assumptions on symbolic values. /// /// This method is called when a symbolic expression is assumed to be true or /// false. For example, the assumptions are performed when evaluating a @@ -248,7 +248,7 @@ /// check::LiveSymbols void checkLiveSymbols(ProgramStateRef State, SymbolReaper &SR) const {} - /// \brief Called when the contents of one or more regions change. + /// Called when the contents of one or more regions change. /// /// This can occur in many different ways: an explicit bind, a blanket /// invalidation of the region contents, or by passing a region to a function @@ -280,7 +280,7 @@ return State; } - /// \brief Called when pointers escape. + /// Called when pointers escape. /// /// This notifies the checkers about pointer escape, which occurs whenever /// the analyzer cannot track the symbol any more. For example, as a @@ -300,7 +300,7 @@ return State; } - /// \brief Called when const pointers escape. + /// Called when const pointers escape. /// /// Note: in most cases checkPointerEscape callback is sufficient. /// \sa checkPointerEscape @@ -314,7 +314,7 @@ /// check::Event<ImplicitNullDerefEvent> void checkEvent(ImplicitNullDerefEvent Event) const {} - /// \brief Check every declaration in the AST. + /// Check every declaration in the AST. /// /// An AST traversal callback, which should only be used when the checker is /// not path sensitive. It will be called for every Declaration in the AST and Index: cfe/trunk/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp =================================================================== --- cfe/trunk/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp +++ cfe/trunk/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp @@ -59,7 +59,7 @@ const ObjCObjectType *getObjectTypeForAllocAndNew(const ObjCMessageExpr *MsgE, CheckerContext &C) const; - /// \brief Return a better dynamic type if one can be derived from the cast. + /// Return a better dynamic type if one can be derived from the cast. const ObjCObjectPointerType *getBetterObjCType(const Expr *CastE, CheckerContext &C) const; Index: cfe/trunk/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp =================================================================== --- cfe/trunk/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp +++ cfe/trunk/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp @@ -48,24 +48,24 @@ BT.reset(new BugType(this, "Use of Untrusted Data", "Untrusted Data")); } - /// \brief Catch taint related bugs. Check if tainted data is passed to a + /// Catch taint related bugs. Check if tainted data is passed to a /// system call etc. bool checkPre(const CallExpr *CE, CheckerContext &C) const; - /// \brief Add taint sources on a pre-visit. + /// Add taint sources on a pre-visit. void addSourcesPre(const CallExpr *CE, CheckerContext &C) const; - /// \brief Propagate taint generated at pre-visit. + /// Propagate taint generated at pre-visit. bool propagateFromPre(const CallExpr *CE, CheckerContext &C) const; - /// \brief Add taint sources on a post visit. + /// Add taint sources on a post visit. void addSourcesPost(const CallExpr *CE, CheckerContext &C) const; /// Check if the region the expression evaluates to is the standard input, /// and thus, is tainted. static bool isStdin(const Expr *E, CheckerContext &C); - /// \brief Given a pointer argument, return the value it points to. + /// Given a pointer argument, return the value it points to. static Optional<SVal> getPointedToSVal(CheckerContext &C, const Expr *Arg); /// Functions defining the attack surface. @@ -102,7 +102,7 @@ typedef SmallVector<unsigned, 2> ArgVector; - /// \brief A struct used to specify taint propagation rules for a function. + /// A struct used to specify taint propagation rules for a function. /// /// If any of the possible taint source arguments is tainted, all of the /// destination arguments should also be tainted. Use InvalidArgIndex in the @@ -166,7 +166,7 @@ return (V && State->isTainted(*V)); } - /// \brief Pre-process a function which propagates taint according to the + /// Pre-process a function which propagates taint according to the /// taint rule. ProgramStateRef process(const CallExpr *CE, CheckerContext &C) const; Index: cfe/trunk/lib/StaticAnalyzer/Checkers/IdenticalExprChecker.cpp =================================================================== --- cfe/trunk/lib/StaticAnalyzer/Checkers/IdenticalExprChecker.cpp +++ cfe/trunk/lib/StaticAnalyzer/Checkers/IdenticalExprChecker.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This defines IdenticalExprChecker, a check that warns about +/// This defines IdenticalExprChecker, a check that warns about /// unintended use of identical expressions. /// /// It checks for use of identical expressions with comparison operators and @@ -296,7 +296,7 @@ return true; } -/// \brief Determines whether two statement trees are identical regarding +/// Determines whether two statement trees are identical regarding /// operators and symbols. /// /// Exceptions: expressions containing macros or functions with possible side Index: cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp =================================================================== --- cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp +++ cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp @@ -134,10 +134,10 @@ }; /// \class ReallocPair -/// \brief Stores information about the symbol being reallocated by a call to +/// Stores information about the symbol being reallocated by a call to /// 'realloc' to allow modeling failed reallocation later in the path. struct ReallocPair { - // \brief The symbol which realloc reallocated. + // The symbol which realloc reallocated. SymbolRef ReallocatedSym; ReallocPairKind Kind; @@ -256,20 +256,20 @@ void initIdentifierInfo(ASTContext &C) const; - /// \brief Determine family of a deallocation expression. + /// Determine family of a deallocation expression. AllocationFamily getAllocationFamily(CheckerContext &C, const Stmt *S) const; - /// \brief Print names of allocators and deallocators. + /// Print names of allocators and deallocators. /// /// \returns true on success. bool printAllocDeallocName(raw_ostream &os, CheckerContext &C, const Expr *E) const; - /// \brief Print expected name of an allocator based on the deallocator's + /// Print expected name of an allocator based on the deallocator's /// family derived from the DeallocExpr. void printExpectedAllocName(raw_ostream &os, CheckerContext &C, const Expr *DeallocExpr) const; - /// \brief Print expected name of a deallocator based on the allocator's + /// Print expected name of a deallocator based on the allocator's /// family. void printExpectedDeallocName(raw_ostream &os, AllocationFamily Family) const; @@ -284,12 +284,12 @@ bool isStandardNewDelete(const FunctionDecl *FD, ASTContext &C) const; ///@} - /// \brief Process C++ operator new()'s allocation, which is the part of C++ + /// Process C++ operator new()'s allocation, which is the part of C++ /// new-expression that goes before the constructor. void processNewAllocation(const CXXNewExpr *NE, CheckerContext &C, SVal Target) const; - /// \brief Perform a zero-allocation check. + /// Perform a zero-allocation check. /// The optional \p RetVal parameter specifies the newly allocated pointer /// value; if unspecified, the value of expression \p E is used. ProgramStateRef ProcessZeroAllocation(CheckerContext &C, const Expr *E, @@ -351,7 +351,7 @@ static ProgramStateRef CallocMem(CheckerContext &C, const CallExpr *CE, ProgramStateRef State); - ///\brief Check if the memory associated with this symbol was released. + ///Check if the memory associated with this symbol was released. bool isReleased(SymbolRef Sym, CheckerContext &C) const; bool checkUseAfterFree(SymbolRef Sym, CheckerContext &C, const Stmt *S) const; Index: cfe/trunk/lib/StaticAnalyzer/Checkers/ObjCMissingSuperCallChecker.cpp =================================================================== --- cfe/trunk/lib/StaticAnalyzer/Checkers/ObjCMissingSuperCallChecker.cpp +++ cfe/trunk/lib/StaticAnalyzer/Checkers/ObjCMissingSuperCallChecker.cpp @@ -81,7 +81,7 @@ } -/// \brief Determine whether the given class has a superclass that we want +/// Determine whether the given class has a superclass that we want /// to check. The name of the found superclass is stored in SuperclassName. /// /// \param D The declaration to check for superclasses. Index: cfe/trunk/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp =================================================================== --- cfe/trunk/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp +++ cfe/trunk/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp @@ -86,11 +86,11 @@ namespace { enum SelfFlagEnum { - /// \brief No flag set. + /// No flag set. SelfFlag_None = 0x0, - /// \brief Value came from 'self'. + /// Value came from 'self'. SelfFlag_Self = 0x1, - /// \brief Value came from the result of an initializer (e.g. [super init]). + /// Value came from the result of an initializer (e.g. [super init]). SelfFlag_InitRes = 0x2 }; } @@ -98,7 +98,7 @@ REGISTER_MAP_WITH_PROGRAMSTATE(SelfFlag, SymbolRef, unsigned) REGISTER_TRAIT_WITH_PROGRAMSTATE(CalledInit, bool) -/// \brief A call receiving a reference to 'self' invalidates the object that +/// A call receiving a reference to 'self' invalidates the object that /// 'self' contains. This keeps the "self flags" assigned to the 'self' /// object before the call so we can assign them to the new object that 'self' /// points to after the call. @@ -128,7 +128,7 @@ return getSelfFlags(val, C) & flag; } -/// \brief Returns true of the value of the expression is the object that 'self' +/// Returns true of the value of the expression is the object that 'self' /// points to and is an object that did not come from the result of calling /// an initializer. static bool isInvalidSelf(const Expr *E, CheckerContext &C) { @@ -407,7 +407,7 @@ return ID != nullptr; } -/// \brief Returns true if the location is 'self'. +/// Returns true if the location is 'self'. static bool isSelfVar(SVal location, CheckerContext &C) { AnalysisDeclContext *analCtx = C.getCurrentAnalysisDeclContext(); if (!analCtx->getSelfDecl()) Index: cfe/trunk/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp =================================================================== --- cfe/trunk/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp +++ cfe/trunk/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp @@ -67,7 +67,7 @@ visitor.TraverseDecl(const_cast<TranslationUnitDecl *>(TUD)); } - /// \brief Look for records of overly padded types. If padding * + /// Look for records of overly padded types. If padding * /// PadMultiplier exceeds AllowedPad, then generate a report. /// PadMultiplier is used to share code with the array padding /// checker. @@ -97,7 +97,7 @@ reportRecord(RD, BaselinePad, OptimalPad, OptimalFieldsOrder); } - /// \brief Look for arrays of overly padded types. If the padding of the + /// Look for arrays of overly padded types. If the padding of the /// array type exceeds AllowedPad, then generate a report. void visitVariable(const VarDecl *VD) const { const ArrayType *ArrTy = VD->getType()->getAsArrayTypeUnsafe(); Index: cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp =================================================================== --- cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp +++ cfe/trunk/lib/StaticAnalyzer/Core/BugReporter.cpp @@ -1636,7 +1636,7 @@ return PDB.getBugReport()->isValid(); } -/// \brief Adds a sanitized control-flow diagnostic edge to a path. +/// Adds a sanitized control-flow diagnostic edge to a path. static void addEdgeToPath(PathPieces &path, PathDiagnosticLocation &PrevLoc, PathDiagnosticLocation NewLoc, @@ -2095,7 +2095,7 @@ } } -/// \brief Move edges from a branch condition to a branch target +/// Move edges from a branch condition to a branch target /// when the condition is simple. /// /// This restructures some of the work of addContextEdges. That function @@ -2281,7 +2281,7 @@ } } -/// \brief Return true if X is contained by Y. +/// Return true if X is contained by Y. static bool lexicalContains(ParentMap &PM, const Stmt *X, const Stmt *Y) { while (X) { if (X == Y) Index: cfe/trunk/lib/StaticAnalyzer/Core/CallEvent.cpp =================================================================== --- cfe/trunk/lib/StaticAnalyzer/Core/CallEvent.cpp +++ cfe/trunk/lib/StaticAnalyzer/Core/CallEvent.cpp @@ -166,7 +166,7 @@ return CheckerContext::isCLibraryFunction(FD, FunctionName); } -/// \brief Returns true if a type is a pointer-to-const or reference-to-const +/// Returns true if a type is a pointer-to-const or reference-to-const /// with no further indirection. static bool isPointerToConst(QualType Ty) { QualType PointeeTy = Ty->getPointeeType(); Index: cfe/trunk/lib/StaticAnalyzer/Core/CheckerManager.cpp =================================================================== --- cfe/trunk/lib/StaticAnalyzer/Core/CheckerManager.cpp +++ cfe/trunk/lib/StaticAnalyzer/Core/CheckerManager.cpp @@ -170,7 +170,7 @@ } // namespace -/// \brief Run checkers for visiting Stmts. +/// Run checkers for visiting Stmts. void CheckerManager::runCheckersForStmt(bool isPreVisit, ExplodedNodeSet &Dst, const ExplodedNodeSet &Src, @@ -226,7 +226,7 @@ } // namespace -/// \brief Run checkers for visiting obj-c messages. +/// Run checkers for visiting obj-c messages. void CheckerManager::runCheckersForObjCMessage(ObjCMessageVisitKind visitKind, ExplodedNodeSet &Dst, const ExplodedNodeSet &Src, @@ -284,7 +284,7 @@ } // namespace -/// \brief Run checkers for visiting an abstract call event. +/// Run checkers for visiting an abstract call event. void CheckerManager::runCheckersForCallEvent(bool isPreVisit, ExplodedNodeSet &Dst, const ExplodedNodeSet &Src, @@ -335,7 +335,7 @@ } // namespace -/// \brief Run checkers for load/store of a location. +/// Run checkers for load/store of a location. void CheckerManager::runCheckersForLocation(ExplodedNodeSet &Dst, const ExplodedNodeSet &Src, @@ -379,7 +379,7 @@ } // namespace -/// \brief Run checkers for binding of a value to a location. +/// Run checkers for binding of a value to a location. void CheckerManager::runCheckersForBind(ExplodedNodeSet &Dst, const ExplodedNodeSet &Src, SVal location, SVal val, @@ -433,7 +433,7 @@ expandGraphWithCheckers(C, Dst, Src); } -/// \brief Run checkers for end of path. +/// Run checkers for end of path. // Note, We do not chain the checker output (like in expandGraphWithCheckers) // for this callback since end of path nodes are expected to be final. void CheckerManager::runCheckersForEndFunction(NodeBuilderContext &BC, @@ -480,7 +480,7 @@ } // namespace -/// \brief Run checkers for branch condition. +/// Run checkers for branch condition. void CheckerManager::runCheckersForBranchCondition(const Stmt *Condition, ExplodedNodeSet &Dst, ExplodedNode *Pred, @@ -529,7 +529,7 @@ expandGraphWithCheckers(C, Dst, Src); } -/// \brief Run checkers for live symbols. +/// Run checkers for live symbols. void CheckerManager::runCheckersForLiveSymbols(ProgramStateRef state, SymbolReaper &SymReaper) { for (const auto LiveSymbolsChecker : LiveSymbolsCheckers) @@ -570,7 +570,7 @@ } // namespace -/// \brief Run checkers for dead symbols. +/// Run checkers for dead symbols. void CheckerManager::runCheckersForDeadSymbols(ExplodedNodeSet &Dst, const ExplodedNodeSet &Src, SymbolReaper &SymReaper, @@ -581,7 +581,7 @@ expandGraphWithCheckers(C, Dst, Src); } -/// \brief Run checkers for region changes. +/// Run checkers for region changes. ProgramStateRef CheckerManager::runCheckersForRegionChanges(ProgramStateRef state, const InvalidatedSymbols *invalidated, @@ -600,7 +600,7 @@ return state; } -/// \brief Run checkers to process symbol escape event. +/// Run checkers to process symbol escape event. ProgramStateRef CheckerManager::runCheckersForPointerEscape(ProgramStateRef State, const InvalidatedSymbols &Escaped, @@ -621,7 +621,7 @@ return State; } -/// \brief Run checkers for handling assumptions on symbolic values. +/// Run checkers for handling assumptions on symbolic values. ProgramStateRef CheckerManager::runCheckersForEvalAssume(ProgramStateRef state, SVal Cond, bool Assumption) { @@ -635,7 +635,7 @@ return state; } -/// \brief Run checkers for evaluating a call. +/// Run checkers for evaluating a call. /// Only one checker will evaluate the call. void CheckerManager::runCheckersForEvalCall(ExplodedNodeSet &Dst, const ExplodedNodeSet &Src, @@ -680,7 +680,7 @@ } } -/// \brief Run checkers for the entire Translation Unit. +/// Run checkers for the entire Translation Unit. void CheckerManager::runCheckersOnEndOfTranslationUnit( const TranslationUnitDecl *TU, AnalysisManager &mgr, Index: cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineC.cpp =================================================================== --- cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineC.cpp +++ cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineC.cpp @@ -20,7 +20,7 @@ using namespace ento; using llvm::APSInt; -/// \brief Optionally conjure and return a symbol for offset when processing +/// Optionally conjure and return a symbol for offset when processing /// an expression \p Expression. /// If \p Other is a location, conjure a symbol for \p Symbol /// (offset) if it is unknown so that memory arithmetic always Index: cfe/trunk/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp =================================================================== --- cfe/trunk/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp +++ cfe/trunk/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp @@ -474,7 +474,7 @@ --IntType.getZeroValue()); } -/// \brief Apply implicit constraints for bitwise OR- and AND-. +/// Apply implicit constraints for bitwise OR- and AND-. /// For unsigned types, bitwise OR with a constant always returns /// a value greater-or-equal than the constant, and bitwise AND /// returns a value less-or-equal then the constant. Index: cfe/trunk/lib/StaticAnalyzer/Core/RegionStore.cpp =================================================================== --- cfe/trunk/lib/StaticAnalyzer/Core/RegionStore.cpp +++ cfe/trunk/lib/StaticAnalyzer/Core/RegionStore.cpp @@ -333,7 +333,7 @@ /// To disable all small-struct-dependent behavior, set the option to "0". unsigned SmallStructLimit; - /// \brief A helper used to populate the work list with the given set of + /// A helper used to populate the work list with the given set of /// regions. void populateWorkList(invalidateRegionsWorker &W, ArrayRef<SVal> Values, @@ -473,7 +473,7 @@ const TypedRegion *R, SVal DefaultVal); - /// \brief Create a new store with the specified binding removed. + /// Create a new store with the specified binding removed. /// \param ST the original store, that is the basis for the new store. /// \param L the location whose binding should be removed. StoreRef killBinding(Store ST, Loc L) override; @@ -491,7 +491,7 @@ bool includedInBindings(Store store, const MemRegion *region) const override; - /// \brief Return the value bound to specified location in a given state. + /// Return the value bound to specified location in a given state. /// /// The high level logic for this method is this: /// getBinding (L) Index: cfe/trunk/lib/StaticAnalyzer/Core/SVals.cpp =================================================================== --- cfe/trunk/lib/StaticAnalyzer/Core/SVals.cpp +++ cfe/trunk/lib/StaticAnalyzer/Core/SVals.cpp @@ -75,7 +75,7 @@ return nullptr; } -/// \brief If this SVal is a location (subclasses Loc) and wraps a symbol, +/// If this SVal is a location (subclasses Loc) and wraps a symbol, /// return that SymbolRef. Otherwise return 0. /// /// Implicit casts (ex: void* -> char*) can turn Symbolic region into Element @@ -118,7 +118,7 @@ // TODO: The next 3 functions have to be simplified. -/// \brief If this SVal wraps a symbol return that SymbolRef. +/// If this SVal wraps a symbol return that SymbolRef. /// Otherwise, return 0. /// /// Casts are ignored during lookup. Index: cfe/trunk/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp =================================================================== --- cfe/trunk/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp +++ cfe/trunk/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp @@ -173,7 +173,7 @@ CodeInjector *Injector; cross_tu::CrossTranslationUnitContext CTU; - /// \brief Stores the declarations from the local translation unit. + /// Stores the declarations from the local translation unit. /// Note, we pre-compute the local declarations at parse time as an /// optimization to make sure we do not deserialize everything from disk. /// The local declaration to all declarations ratio might be very small when @@ -301,24 +301,24 @@ CreateStoreMgr, CreateConstraintMgr, checkerMgr.get(), *Opts, Injector); } - /// \brief Store the top level decls in the set to be processed later on. + /// Store the top level decls in the set to be processed later on. /// (Doing this pre-processing avoids deserialization of data from PCH.) bool HandleTopLevelDecl(DeclGroupRef D) override; void HandleTopLevelDeclInObjCContainer(DeclGroupRef D) override; void HandleTranslationUnit(ASTContext &C) override; - /// \brief Determine which inlining mode should be used when this function is + /// Determine which inlining mode should be used when this function is /// analyzed. This allows to redefine the default inlining policies when /// analyzing a given function. ExprEngine::InliningModes getInliningModeForFunction(const Decl *D, const SetOfConstDecls &Visited); - /// \brief Build the call graph for all the top level decls of this TU and + /// Build the call graph for all the top level decls of this TU and /// use it to define the order in which the functions should be visited. void HandleDeclsCallGraph(const unsigned LocalTUDeclsSize); - /// \brief Run analyzes(syntax or path sensitive) on the given function. + /// Run analyzes(syntax or path sensitive) on the given function. /// \param Mode - determines if we are requesting syntax only or path /// sensitive only analysis. /// \param VisitedCallees - The output parameter, which is populated with the @@ -389,7 +389,7 @@ void storeTopLevelDecls(DeclGroupRef DG); std::string getFunctionName(const Decl *D); - /// \brief Check if we should skip (not analyze) the given function. + /// Check if we should skip (not analyze) the given function. AnalysisMode getModeForDecl(Decl *D, AnalysisMode Mode); void runAnalysisOnTranslationUnit(ASTContext &C); Index: cfe/trunk/lib/StaticAnalyzer/Frontend/ModelConsumer.cpp =================================================================== --- cfe/trunk/lib/StaticAnalyzer/Frontend/ModelConsumer.cpp +++ cfe/trunk/lib/StaticAnalyzer/Frontend/ModelConsumer.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file implements an ASTConsumer for consuming model files. +/// This file implements an ASTConsumer for consuming model files. /// /// This ASTConsumer handles the AST of a parsed model file. All top level /// function definitions will be collected from that model file for later Index: cfe/trunk/lib/StaticAnalyzer/Frontend/ModelInjector.h =================================================================== --- cfe/trunk/lib/StaticAnalyzer/Frontend/ModelInjector.h +++ cfe/trunk/lib/StaticAnalyzer/Frontend/ModelInjector.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file defines the clang::ento::ModelInjector class which implements the +/// This file defines the clang::ento::ModelInjector class which implements the /// clang::CodeInjector interface. This class is responsible for injecting /// function definitions that were synthesized from model files. /// @@ -43,7 +43,7 @@ Stmt *getBody(const ObjCMethodDecl *D) override; private: - /// \brief Synthesize a body for a declaration + /// Synthesize a body for a declaration /// /// This method first looks up the appropriate model file based on the /// model-path configuration option and the name of the declaration that is Index: cfe/trunk/lib/Tooling/CompilationDatabase.cpp =================================================================== --- cfe/trunk/lib/Tooling/CompilationDatabase.cpp +++ cfe/trunk/lib/Tooling/CompilationDatabase.cpp @@ -220,7 +220,7 @@ } // namespace -/// \brief Strips any positional args and possible argv[0] from a command-line +/// Strips any positional args and possible argv[0] from a command-line /// provided by the user to construct a FixedCompilationDatabase. /// /// FixedCompilationDatabase requires a command line to be in this format as it Index: cfe/trunk/lib/Tooling/FileMatchTrie.cpp =================================================================== --- cfe/trunk/lib/Tooling/FileMatchTrie.cpp +++ cfe/trunk/lib/Tooling/FileMatchTrie.cpp @@ -25,7 +25,7 @@ namespace { -/// \brief Default \c PathComparator using \c llvm::sys::fs::equivalent(). +/// Default \c PathComparator using \c llvm::sys::fs::equivalent(). struct DefaultPathComparator : public PathComparator { bool equivalent(StringRef FileA, StringRef FileB) const override { return FileA == FileB || llvm::sys::fs::equivalent(FileA, FileB); @@ -37,13 +37,13 @@ namespace clang { namespace tooling { -/// \brief A node of the \c FileMatchTrie. +/// A node of the \c FileMatchTrie. /// /// Each node has storage for up to one path and a map mapping a path segment to /// child nodes. The trie starts with an empty root node. class FileMatchTrieNode { public: - /// \brief Inserts 'NewPath' into this trie. \c ConsumedLength denotes + /// Inserts 'NewPath' into this trie. \c ConsumedLength denotes /// the number of \c NewPath's trailing characters already consumed during /// recursion. /// @@ -81,7 +81,7 @@ Children[Element].insert(NewPath, ConsumedLength + Element.size() + 1); } - /// \brief Tries to find the node under this \c FileMatchTrieNode that best + /// Tries to find the node under this \c FileMatchTrieNode that best /// matches 'FileName'. /// /// If multiple paths fit 'FileName' equally well, \c IsAmbiguous is set to @@ -139,7 +139,7 @@ } private: - /// \brief Gets all paths under this FileMatchTrieNode. + /// Gets all paths under this FileMatchTrieNode. void getAll(std::vector<StringRef> &Results, llvm::StringMap<FileMatchTrieNode>::const_iterator Except) const { if (Path.empty()) Index: cfe/trunk/lib/Tooling/JSONCompilationDatabase.cpp =================================================================== --- cfe/trunk/lib/Tooling/JSONCompilationDatabase.cpp +++ cfe/trunk/lib/Tooling/JSONCompilationDatabase.cpp @@ -43,7 +43,7 @@ namespace { -/// \brief A parser for escaped strings of command line arguments. +/// A parser for escaped strings of command line arguments. /// /// Assumes \-escaping for quoted arguments (see the documentation of /// unescapeCommandLine(...)). Index: cfe/trunk/lib/Tooling/Refactoring/AtomicChange.cpp =================================================================== --- cfe/trunk/lib/Tooling/Refactoring/AtomicChange.cpp +++ cfe/trunk/lib/Tooling/Refactoring/AtomicChange.cpp @@ -15,7 +15,7 @@ LLVM_YAML_IS_SEQUENCE_VECTOR(clang::tooling::AtomicChange) namespace { -/// \brief Helper to (de)serialize an AtomicChange since we don't have direct +/// Helper to (de)serialize an AtomicChange since we don't have direct /// access to its data members. /// Data members of a normalized AtomicChange can be directly mapped from/to /// YAML string. @@ -50,7 +50,7 @@ namespace llvm { namespace yaml { -/// \brief Specialized MappingTraits to describe how an AtomicChange is +/// Specialized MappingTraits to describe how an AtomicChange is /// (de)serialized. template <> struct MappingTraits<NormalizedAtomicChange> { static void mapping(IO &Io, NormalizedAtomicChange &Doc) { @@ -63,7 +63,7 @@ } }; -/// \brief Specialized MappingTraits to describe how an AtomicChange is +/// Specialized MappingTraits to describe how an AtomicChange is /// (de)serialized. template <> struct MappingTraits<clang::tooling::AtomicChange> { static void mapping(IO &Io, clang::tooling::AtomicChange &Doc) { Index: cfe/trunk/lib/Tooling/Refactoring/Extract/Extract.cpp =================================================================== --- cfe/trunk/lib/Tooling/Refactoring/Extract/Extract.cpp +++ cfe/trunk/lib/Tooling/Refactoring/Extract/Extract.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Implements the "extract" refactoring that can pull code into +/// Implements the "extract" refactoring that can pull code into /// new functions, methods or declare new variables. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/lib/Tooling/Refactoring/Rename/RenamingAction.cpp =================================================================== --- cfe/trunk/lib/Tooling/Refactoring/Rename/RenamingAction.cpp +++ cfe/trunk/lib/Tooling/Refactoring/Rename/RenamingAction.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Provides an action to rename every symbol at a point. +/// Provides an action to rename every symbol at a point. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/lib/Tooling/Refactoring/Rename/USRFinder.cpp =================================================================== --- cfe/trunk/lib/Tooling/Refactoring/Rename/USRFinder.cpp +++ cfe/trunk/lib/Tooling/Refactoring/Rename/USRFinder.cpp @@ -32,7 +32,7 @@ class NamedDeclOccurrenceFindingVisitor : public RecursiveSymbolVisitor<NamedDeclOccurrenceFindingVisitor> { public: - // \brief Finds the NamedDecl at a point in the source. + // Finds the NamedDecl at a point in the source. // \param Point the location in the source to search for the NamedDecl. explicit NamedDeclOccurrenceFindingVisitor(const SourceLocation Point, const ASTContext &Context) @@ -58,7 +58,7 @@ const NamedDecl *getNamedDecl() const { return Result; } private: - // \brief Determines if the Point is within Start and End. + // Determines if the Point is within Start and End. bool isPointWithin(const SourceLocation Start, const SourceLocation End) { // FIXME: Add tests for Point == End. return Point == Start || Point == End || Index: cfe/trunk/lib/Tooling/Refactoring/Rename/USRFindingAction.cpp =================================================================== --- cfe/trunk/lib/Tooling/Refactoring/Rename/USRFindingAction.cpp +++ cfe/trunk/lib/Tooling/Refactoring/Rename/USRFindingAction.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Provides an action to find USR for the symbol at <offset>, as well as +/// Provides an action to find USR for the symbol at <offset>, as well as /// all additional USRs. /// //===----------------------------------------------------------------------===// @@ -55,7 +55,7 @@ } namespace { -// \brief NamedDeclFindingConsumer should delegate finding USRs of given Decl to +// NamedDeclFindingConsumer should delegate finding USRs of given Decl to // AdditionalUSRFinder. AdditionalUSRFinder adds USRs of ctor and dtor if given // Decl refers to class and adds USRs of all overridden methods if Decl refers // to virtual method. Index: cfe/trunk/lib/Tooling/Refactoring/Rename/USRLocFinder.cpp =================================================================== --- cfe/trunk/lib/Tooling/Refactoring/Rename/USRLocFinder.cpp +++ cfe/trunk/lib/Tooling/Refactoring/Rename/USRLocFinder.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Methods for finding all instances of a USR. Our strategy is very +/// Methods for finding all instances of a USR. Our strategy is very /// simple; we just compare the USR at every relevant AST node with the one /// provided. /// @@ -50,7 +50,7 @@ return SM.getFileEntryForID(FileIdAndOffset.first) != nullptr; } -// \brief This visitor recursively searches for all instances of a USR in a +// This visitor recursively searches for all instances of a USR in a // translation unit and stores them for later usage. class USRLocFindingASTVisitor : public RecursiveSymbolVisitor<USRLocFindingASTVisitor> { @@ -80,7 +80,7 @@ // Non-visitors: - /// \brief Returns a set of unique symbol occurrences. Duplicate or + /// Returns a set of unique symbol occurrences. Duplicate or /// overlapping occurrences are erroneous and should be reported! SymbolOccurrences takeOccurrences() { return std::move(Occurrences); } Index: cfe/trunk/lib/Tooling/Tooling.cpp =================================================================== --- cfe/trunk/lib/Tooling/Tooling.cpp +++ cfe/trunk/lib/Tooling/Tooling.cpp @@ -73,7 +73,7 @@ // code that sets up a compiler to run tools on it, and we should refactor // it to be based on the same framework. -/// \brief Builds a clang driver initialized for running clang tools. +/// Builds a clang driver initialized for running clang tools. static driver::Driver *newDriver( DiagnosticsEngine *Diagnostics, const char *BinaryName, IntrusiveRefCntPtr<vfs::FileSystem> VFS) { @@ -84,7 +84,7 @@ return CompilerDriver; } -/// \brief Retrieves the clang CC1 specific flags out of the compilation's jobs. +/// Retrieves the clang CC1 specific flags out of the compilation's jobs. /// /// Returns nullptr on error. static const llvm::opt::ArgStringList *getCC1Arguments( @@ -114,7 +114,7 @@ namespace clang { namespace tooling { -/// \brief Returns a clang build invocation initialized from the CC1 flags. +/// Returns a clang build invocation initialized from the CC1 flags. CompilerInvocation *newInvocation( DiagnosticsEngine *Diagnostics, const llvm::opt::ArgStringList &CC1Args) { assert(!CC1Args.empty() && "Must at least contain the program name!"); Index: cfe/trunk/tools/c-index-test/c-index-test.c =================================================================== --- cfe/trunk/tools/c-index-test/c-index-test.c +++ cfe/trunk/tools/c-index-test/c-index-test.c @@ -64,7 +64,7 @@ extern char *dirname(char *); #endif -/** \brief Return the default parsing options. */ +/** Return the default parsing options. */ static unsigned getDefaultParsingOptions() { unsigned options = CXTranslationUnit_DetailedPreprocessingRecord; @@ -149,7 +149,7 @@ } } -/** \brief Returns 0 in case of success, non-zero in case of a failure. */ +/** Returns 0 in case of success, non-zero in case of a failure. */ static int checkForErrors(CXTranslationUnit TU); static void describeLibclangFailure(enum CXErrorCode Err) { Index: cfe/trunk/tools/clang-check/ClangCheck.cpp =================================================================== --- cfe/trunk/tools/clang-check/ClangCheck.cpp +++ cfe/trunk/tools/clang-check/ClangCheck.cpp @@ -103,7 +103,7 @@ } }; -/// \brief Subclasses \c clang::FixItRewriter to not count fixed errors/warnings +/// Subclasses \c clang::FixItRewriter to not count fixed errors/warnings /// in the final error counts. /// /// This has the side-effect that clang-check -fixit exits with code 0 on @@ -120,7 +120,7 @@ bool IncludeInDiagnosticCounts() const override { return false; } }; -/// \brief Subclasses \c clang::FixItAction so that we can install the custom +/// Subclasses \c clang::FixItAction so that we can install the custom /// \c FixItRewriter. class FixItAction : public clang::FixItAction { public: Index: cfe/trunk/tools/clang-format/ClangFormat.cpp =================================================================== --- cfe/trunk/tools/clang-format/ClangFormat.cpp +++ cfe/trunk/tools/clang-format/ClangFormat.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file implements a clang-format tool that automatically formats +/// This file implements a clang-format tool that automatically formats /// (fragments of) C++ code. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/tools/clang-format/fuzzer/ClangFormatFuzzer.cpp =================================================================== --- cfe/trunk/tools/clang-format/fuzzer/ClangFormatFuzzer.cpp +++ cfe/trunk/tools/clang-format/fuzzer/ClangFormatFuzzer.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file implements a function that runs Clang format on a single +/// This file implements a function that runs Clang format on a single /// input. This function is then linked into the Fuzzer library. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/tools/clang-fuzzer/ClangFuzzer.cpp =================================================================== --- cfe/trunk/tools/clang-fuzzer/ClangFuzzer.cpp +++ cfe/trunk/tools/clang-fuzzer/ClangFuzzer.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file implements a function that runs Clang on a single +/// This file implements a function that runs Clang on a single /// input. This function is then linked into the Fuzzer library. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/tools/clang-fuzzer/ExampleClangProtoFuzzer.cpp =================================================================== --- cfe/trunk/tools/clang-fuzzer/ExampleClangProtoFuzzer.cpp +++ cfe/trunk/tools/clang-fuzzer/ExampleClangProtoFuzzer.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file implements a function that runs Clang on a single +/// This file implements a function that runs Clang on a single /// input and uses libprotobuf-mutator to find new inputs. This function is /// then linked into the Fuzzer library. /// Index: cfe/trunk/tools/clang-fuzzer/cxx_proto.proto =================================================================== --- cfe/trunk/tools/clang-fuzzer/cxx_proto.proto +++ cfe/trunk/tools/clang-fuzzer/cxx_proto.proto @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file describes a subset of C++ as a protobuf. It is used to +/// This file describes a subset of C++ as a protobuf. It is used to /// more easily find interesting inputs for fuzzing Clang. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/tools/clang-offload-bundler/ClangOffloadBundler.cpp =================================================================== --- cfe/trunk/tools/clang-offload-bundler/ClangOffloadBundler.cpp +++ cfe/trunk/tools/clang-offload-bundler/ClangOffloadBundler.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file implements a clang-offload-bundler that bundles different +/// This file implements a clang-offload-bundler that bundles different /// files that relate with the same source code but different targets into a /// single one. Also the implements the opposite functionality, i.e. unbundle /// files previous created by this tool. Index: cfe/trunk/tools/clang-refactor/ClangRefactor.cpp =================================================================== --- cfe/trunk/tools/clang-refactor/ClangRefactor.cpp +++ cfe/trunk/tools/clang-refactor/ClangRefactor.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file implements a clang-refactor tool that performs various +/// This file implements a clang-refactor tool that performs various /// source transformations. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/tools/clang-refactor/TestSupport.h =================================================================== --- cfe/trunk/tools/clang-refactor/TestSupport.h +++ cfe/trunk/tools/clang-refactor/TestSupport.h @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief Declares datatypes and routines that are used by test-specific code +/// Declares datatypes and routines that are used by test-specific code /// in clang-refactor. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/tools/clang-refactor/TestSupport.cpp =================================================================== --- cfe/trunk/tools/clang-refactor/TestSupport.cpp +++ cfe/trunk/tools/clang-refactor/TestSupport.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file implements routines that provide refactoring testing +/// This file implements routines that provide refactoring testing /// utilities. /// //===----------------------------------------------------------------------===// Index: cfe/trunk/tools/clang-rename/ClangRename.cpp =================================================================== --- cfe/trunk/tools/clang-rename/ClangRename.cpp +++ cfe/trunk/tools/clang-rename/ClangRename.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// /// /// \file -/// \brief This file implements a clang-rename tool that automatically finds and +/// This file implements a clang-rename tool that automatically finds and /// renames symbols in C++ code. /// //===----------------------------------------------------------------------===// @@ -39,7 +39,7 @@ using namespace llvm; using namespace clang; -/// \brief An oldname -> newname rename. +/// An oldname -> newname rename. struct RenameAllInfo { unsigned Offset = 0; std::string QualifiedName; @@ -51,7 +51,7 @@ namespace llvm { namespace yaml { -/// \brief Specialized MappingTraits to describe how a RenameAllInfo is +/// Specialized MappingTraits to describe how a RenameAllInfo is /// (de)serialized. template <> struct MappingTraits<RenameAllInfo> { static void mapping(IO &IO, RenameAllInfo &Info) { Index: cfe/trunk/tools/diagtool/DiagnosticNames.h =================================================================== --- cfe/trunk/tools/diagtool/DiagnosticNames.h +++ cfe/trunk/tools/diagtool/DiagnosticNames.h @@ -30,10 +30,10 @@ } }; - /// \brief Get every diagnostic in the system, sorted by name. + /// Get every diagnostic in the system, sorted by name. llvm::ArrayRef<DiagnosticRecord> getBuiltinDiagnosticsByName(); - /// \brief Get a diagnostic by its ID. + /// Get a diagnostic by its ID. const DiagnosticRecord &getDiagnosticForID(short DiagID); @@ -101,7 +101,7 @@ } }; - /// \brief Get every diagnostic group in the system, sorted by name. + /// Get every diagnostic group in the system, sorted by name. llvm::ArrayRef<GroupRecord> getDiagnosticGroups(); template<> Index: cfe/trunk/tools/driver/cc1as_main.cpp =================================================================== --- cfe/trunk/tools/driver/cc1as_main.cpp +++ cfe/trunk/tools/driver/cc1as_main.cpp @@ -61,7 +61,7 @@ namespace { -/// \brief Helper class for representing a single invocation of the assembler. +/// Helper class for representing a single invocation of the assembler. struct AssemblerInvocation { /// @name Target Options /// @{ Index: cfe/trunk/tools/libclang/CIndex.cpp =================================================================== --- cfe/trunk/tools/libclang/CIndex.cpp +++ cfe/trunk/tools/libclang/CIndex.cpp @@ -103,7 +103,7 @@ clang_disposeTranslationUnit(TU); } -/// \brief Compare two source ranges to determine their relative position in +/// Compare two source ranges to determine their relative position in /// the translation unit. static RangeComparisonResult RangeCompare(SourceManager &SM, SourceRange R1, @@ -119,7 +119,7 @@ return RangeOverlap; } -/// \brief Determine if a source location falls within, before, or after a +/// Determine if a source location falls within, before, or after a /// a given source range. static RangeComparisonResult LocationCompare(SourceManager &SM, SourceLocation L, SourceRange R) { @@ -134,7 +134,7 @@ return RangeOverlap; } -/// \brief Translate a Clang source range into a CIndex source range. +/// Translate a Clang source range into a CIndex source range. /// /// Clang internally represents ranges where the end location points to the /// start of the token at the end. However, for external clients it is more @@ -178,7 +178,7 @@ return RangeCompare(AU->getSourceManager(), R, RegionOfInterest); } -/// \brief Visit the given cursor and, if requested by the visitor, +/// Visit the given cursor and, if requested by the visitor, /// its children. /// /// \param Cursor the cursor to visit. @@ -482,7 +482,7 @@ return false; } -/// \brief Visit the children of the given cursor. +/// Visit the children of the given cursor. /// /// \returns true if the visitation should be aborted, false if it /// should continue. @@ -799,7 +799,7 @@ return false; } -/// \brief Compare two base or member initializers based on their source order. +/// Compare two base or member initializers based on their source order. static int CompareCXXCtorInitializers(CXXCtorInitializer *const *X, CXXCtorInitializer *const *Y) { return (*X)->getSourceOrder() - (*Y)->getSourceOrder(); @@ -2119,7 +2119,7 @@ namespace { class OMPClauseEnqueue : public ConstOMPClauseVisitor<OMPClauseEnqueue> { EnqueueVisitor *Visitor; - /// \brief Process clauses with list of variables. + /// Process clauses with list of variables. template <typename T> void VisitOMPClauseList(T *Node); public: @@ -5953,7 +5953,7 @@ return SourceRange(); } -/// \brief Retrieves the "raw" cursor extent, which is then extended to include +/// Retrieves the "raw" cursor extent, which is then extended to include /// the decl-specifier-seq for declarations. static SourceRange getFullCursorExtent(CXCursor C, SourceManager &SrcMgr) { if (clang_isDeclaration(C.kind)) { @@ -6763,7 +6763,7 @@ bool postVisitChildren(CXCursor cursor); void AnnotateTokens(); - /// \brief Determine whether the annotator saw any cursors that have + /// Determine whether the annotator saw any cursors that have /// context-sensitive keywords. bool hasContextSensitiveKeywords() const { return HasContextSensitiveKeywords; @@ -6788,7 +6788,7 @@ Cursor = updateC; } -/// \brief It annotates and advances tokens with a cursor until the comparison +/// It annotates and advances tokens with a cursor until the comparison //// between the cursor location and the source range is the same as /// \arg compResult. /// @@ -6813,7 +6813,7 @@ } } -/// \brief Special annotation handling for macro argument tokens. +/// Special annotation handling for macro argument tokens. /// \returns true if it advanced beyond all macro tokens, false otherwise. bool AnnotateTokensWorker::annotateAndAdvanceFunctionMacroTokens( CXCursor updateC, @@ -7057,7 +7057,7 @@ namespace { -/// \brief Uses the macro expansions in the preprocessing record to find +/// Uses the macro expansions in the preprocessing record to find /// and mark tokens that are macro arguments. This info is used by the /// AnnotateTokensWorker. class MarkMacroArgTokensVisitor { @@ -7132,7 +7132,7 @@ parent); } -/// \brief Used by \c annotatePreprocessorTokens. +/// Used by \c annotatePreprocessorTokens. /// \returns true if lexing was finished, false otherwise. static bool lexNext(Lexer &Lex, Token &Tok, unsigned &NextIdx, unsigned NumTokens) { @@ -7706,7 +7706,7 @@ return CXTLS_None; } - /// \brief If the given cursor is the "templated" declaration + /// If the given cursor is the "templated" declaration /// describing a class or function template, return the class or /// function template. static const Decl *maybeGetTemplateCursor(const Decl *D) { Index: cfe/trunk/tools/libclang/CIndexCodeCompletion.cpp =================================================================== --- cfe/trunk/tools/libclang/CIndexCodeCompletion.cpp +++ cfe/trunk/tools/libclang/CIndexCodeCompletion.cpp @@ -240,7 +240,7 @@ namespace { -/// \brief The CXCodeCompleteResults structure we allocate internally; +/// The CXCodeCompleteResults structure we allocate internally; /// the client only sees the initial CXCodeCompleteResults structure. /// /// Normally, clients of CXString shouldn't care whether or not a CXString is @@ -251,62 +251,62 @@ AllocatedCXCodeCompleteResults(IntrusiveRefCntPtr<FileManager> FileMgr); ~AllocatedCXCodeCompleteResults(); - /// \brief Diagnostics produced while performing code completion. + /// Diagnostics produced while performing code completion. SmallVector<StoredDiagnostic, 8> Diagnostics; - /// \brief Allocated API-exposed wrappters for Diagnostics. + /// Allocated API-exposed wrappters for Diagnostics. SmallVector<CXStoredDiagnostic *, 8> DiagnosticsWrappers; IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts; - /// \brief Diag object + /// Diag object IntrusiveRefCntPtr<DiagnosticsEngine> Diag; - /// \brief Language options used to adjust source locations. + /// Language options used to adjust source locations. LangOptions LangOpts; - /// \brief File manager, used for diagnostics. + /// File manager, used for diagnostics. IntrusiveRefCntPtr<FileManager> FileMgr; - /// \brief Source manager, used for diagnostics. + /// Source manager, used for diagnostics. IntrusiveRefCntPtr<SourceManager> SourceMgr; - /// \brief Temporary buffers that will be deleted once we have finished with + /// Temporary buffers that will be deleted once we have finished with /// the code-completion results. SmallVector<const llvm::MemoryBuffer *, 1> TemporaryBuffers; - /// \brief Allocator used to store globally cached code-completion results. + /// Allocator used to store globally cached code-completion results. std::shared_ptr<clang::GlobalCodeCompletionAllocator> CachedCompletionAllocator; - /// \brief Allocator used to store code completion results. + /// Allocator used to store code completion results. std::shared_ptr<clang::GlobalCodeCompletionAllocator> CodeCompletionAllocator; - /// \brief Context under which completion occurred. + /// Context under which completion occurred. enum clang::CodeCompletionContext::Kind ContextKind; - /// \brief A bitfield representing the acceptable completions for the + /// A bitfield representing the acceptable completions for the /// current context. unsigned long long Contexts; - /// \brief The kind of the container for the current context for completions. + /// The kind of the container for the current context for completions. enum CXCursorKind ContainerKind; - /// \brief The USR of the container for the current context for completions. + /// The USR of the container for the current context for completions. std::string ContainerUSR; - /// \brief a boolean value indicating whether there is complete information + /// a boolean value indicating whether there is complete information /// about the container unsigned ContainerIsIncomplete; - /// \brief A string containing the Objective-C selector entered thus far for a + /// A string containing the Objective-C selector entered thus far for a /// message send. std::string Selector; }; } // end anonymous namespace -/// \brief Tracks the number of code-completion result objects that are +/// Tracks the number of code-completion result objects that are /// currently active. /// /// Used for debugging purposes only. @@ -913,7 +913,7 @@ return cxstring::createDup(Results->Selector); } -/// \brief Simple utility function that appends a \p New string to the given +/// Simple utility function that appends a \p New string to the given /// \p Old string, using the \p Buffer for storage. /// /// \param Old The string to which we are appending. This parameter will be @@ -937,7 +937,7 @@ Old = Buffer.str(); } -/// \brief Get the typed-text blocks from the given code-completion string +/// Get the typed-text blocks from the given code-completion string /// and return them as a single string. /// /// \param String The code-completion string whose typed-text blocks will be Index: cfe/trunk/tools/libclang/CIndexDiagnostic.h =================================================================== --- cfe/trunk/tools/libclang/CIndexDiagnostic.h +++ cfe/trunk/tools/libclang/CIndexDiagnostic.h @@ -58,34 +58,34 @@ virtual ~CXDiagnosticImpl(); - /// \brief Return the severity of the diagnostic. + /// Return the severity of the diagnostic. virtual CXDiagnosticSeverity getSeverity() const = 0; - /// \brief Return the location of the diagnostic. + /// Return the location of the diagnostic. virtual CXSourceLocation getLocation() const = 0; - /// \brief Return the spelling of the diagnostic. + /// Return the spelling of the diagnostic. virtual CXString getSpelling() const = 0; - /// \brief Return the text for the diagnostic option. + /// Return the text for the diagnostic option. virtual CXString getDiagnosticOption(CXString *Disable) const = 0; - /// \brief Return the category of the diagnostic. + /// Return the category of the diagnostic. virtual unsigned getCategory() const = 0; - /// \brief Return the category string of the diagnostic. + /// Return the category string of the diagnostic. virtual CXString getCategoryText() const = 0; - /// \brief Return the number of source ranges for the diagnostic. + /// Return the number of source ranges for the diagnostic. virtual unsigned getNumRanges() const = 0; - /// \brief Return the source ranges for the diagnostic. + /// Return the source ranges for the diagnostic. virtual CXSourceRange getRange(unsigned Range) const = 0; - /// \brief Return the number of FixIts. + /// Return the number of FixIts. virtual unsigned getNumFixIts() const = 0; - /// \brief Return the FixIt information (source range and inserted text). + /// Return the FixIt information (source range and inserted text). virtual CXString getFixIt(unsigned FixIt, CXSourceRange *ReplacementRange) const = 0; @@ -107,7 +107,7 @@ Kind K; }; -/// \brief The storage behind a CXDiagnostic +/// The storage behind a CXDiagnostic struct CXStoredDiagnostic : public CXDiagnosticImpl { const StoredDiagnostic &Diag; const LangOptions &LangOpts; @@ -119,34 +119,34 @@ ~CXStoredDiagnostic() override {} - /// \brief Return the severity of the diagnostic. + /// Return the severity of the diagnostic. CXDiagnosticSeverity getSeverity() const override; - /// \brief Return the location of the diagnostic. + /// Return the location of the diagnostic. CXSourceLocation getLocation() const override; - /// \brief Return the spelling of the diagnostic. + /// Return the spelling of the diagnostic. CXString getSpelling() const override; - /// \brief Return the text for the diagnostic option. + /// Return the text for the diagnostic option. CXString getDiagnosticOption(CXString *Disable) const override; - /// \brief Return the category of the diagnostic. + /// Return the category of the diagnostic. unsigned getCategory() const override; - /// \brief Return the category string of the diagnostic. + /// Return the category string of the diagnostic. CXString getCategoryText() const override; - /// \brief Return the number of source ranges for the diagnostic. + /// Return the number of source ranges for the diagnostic. unsigned getNumRanges() const override; - /// \brief Return the source ranges for the diagnostic. + /// Return the source ranges for the diagnostic. CXSourceRange getRange(unsigned Range) const override; - /// \brief Return the number of FixIts. + /// Return the number of FixIts. unsigned getNumFixIts() const override; - /// \brief Return the FixIt information (source range and inserted text). + /// Return the FixIt information (source range and inserted text). CXString getFixIt(unsigned FixIt, CXSourceRange *ReplacementRange) const override; Index: cfe/trunk/tools/libclang/CIndexHigh.cpp =================================================================== --- cfe/trunk/tools/libclang/CIndexHigh.cpp +++ cfe/trunk/tools/libclang/CIndexHigh.cpp @@ -65,7 +65,7 @@ return cxtu::getASTUnit(TU)->getASTContext(); } - /// \brief We are looking to find all semantically relevant identifiers, + /// We are looking to find all semantically relevant identifiers, /// so the definition of "canonical" here is different than in the AST, e.g. /// /// \code @@ -129,7 +129,7 @@ } // end anonymous namespace. -/// \brief For a macro \arg Loc, returns the file spelling location and sets +/// For a macro \arg Loc, returns the file spelling location and sets /// to \arg isMacroArg whether the spelling resides inside a macro definition or /// a macro argument. static SourceLocation getFileSpellingLoc(SourceManager &SM, Index: cfe/trunk/tools/libclang/CIndexer.h =================================================================== --- cfe/trunk/tools/libclang/CIndexer.h +++ cfe/trunk/tools/libclang/CIndexer.h @@ -52,7 +52,7 @@ Options(CXGlobalOpt_None), PCHContainerOps(std::move(PCHContainerOps)) { } - /// \brief Whether we only want to see "local" declarations (that did not + /// Whether we only want to see "local" declarations (that did not /// come from a previous precompiled header). If false, we want to see all /// declarations. bool getOnlyLocalDecls() const { return OnlyLocalDecls; } @@ -74,7 +74,7 @@ return Options & opt; } - /// \brief Get the path of the clang resource files. + /// Get the path of the clang resource files. const std::string &getClangResourcesPath(); StringRef getClangToolchainPath(); @@ -103,47 +103,47 @@ std::string File; }; - /// \brief Return the current size to request for "safety". + /// Return the current size to request for "safety". unsigned GetSafetyThreadStackSize(); - /// \brief Set the current size to request for "safety" (or 0, if safety + /// Set the current size to request for "safety" (or 0, if safety /// threads should not be used). void SetSafetyThreadStackSize(unsigned Value); - /// \brief Execution the given code "safely", using crash recovery or safety + /// Execution the given code "safely", using crash recovery or safety /// threads when possible. /// /// \return False if a crash was detected. bool RunSafely(llvm::CrashRecoveryContext &CRC, llvm::function_ref<void()> Fn, unsigned Size = 0); - /// \brief Set the thread priority to background. + /// Set the thread priority to background. /// FIXME: Move to llvm/Support. void setThreadBackgroundPriority(); - /// \brief Print libclang's resource usage to standard error. + /// Print libclang's resource usage to standard error. void PrintLibclangResourceUsage(CXTranslationUnit TU); namespace cxindex { void printDiagsToStderr(ASTUnit *Unit); - /// \brief If \c MacroDefLoc points at a macro definition with \c II as + /// If \c MacroDefLoc points at a macro definition with \c II as /// its name, this retrieves its MacroInfo. MacroInfo *getMacroInfo(const IdentifierInfo &II, SourceLocation MacroDefLoc, CXTranslationUnit TU); - /// \brief Retrieves the corresponding MacroInfo of a MacroDefinitionRecord. + /// Retrieves the corresponding MacroInfo of a MacroDefinitionRecord. const MacroInfo *getMacroInfo(const MacroDefinitionRecord *MacroDef, CXTranslationUnit TU); - /// \brief If \c Loc resides inside the definition of \c MI and it points at + /// If \c Loc resides inside the definition of \c MI and it points at /// an identifier that has ever been a macro name, this returns the latest /// MacroDefinitionRecord for that name, otherwise it returns NULL. MacroDefinitionRecord *checkForMacroInMacroDefinition(const MacroInfo *MI, SourceLocation Loc, CXTranslationUnit TU); - /// \brief If \c Tok resides inside the definition of \c MI and it points at + /// If \c Tok resides inside the definition of \c MI and it points at /// an identifier that has ever been a macro name, this returns the latest /// MacroDefinitionRecord for that name, otherwise it returns NULL. MacroDefinitionRecord *checkForMacroInMacroDefinition(const MacroInfo *MI, Index: cfe/trunk/tools/libclang/CLog.h =================================================================== --- cfe/trunk/tools/libclang/CLog.h +++ cfe/trunk/tools/libclang/CLog.h @@ -31,7 +31,7 @@ class Logger; typedef IntrusiveRefCntPtr<Logger> LogRef; -/// \brief Collects logging output and writes it to stderr when it's destructed. +/// Collects logging output and writes it to stderr when it's destructed. /// Common use case: /// \code /// if (LogRef Log = Logger::make(__func__)) { @@ -90,7 +90,7 @@ } } -/// \brief Macros to automate common uses of Logger. Like this: +/// Macros to automate common uses of Logger. Like this: /// \code /// LOG_FUNC_SECTION { /// *Log << "blah"; Index: cfe/trunk/tools/libclang/CXCursor.h =================================================================== --- cfe/trunk/tools/libclang/CXCursor.h +++ cfe/trunk/tools/libclang/CXCursor.h @@ -58,109 +58,109 @@ SourceRange RegionOfInterest = SourceRange()); CXCursor MakeCXCursorInvalid(CXCursorKind K, CXTranslationUnit TU = nullptr); -/// \brief Create an Objective-C superclass reference at the given location. +/// Create an Objective-C superclass reference at the given location. CXCursor MakeCursorObjCSuperClassRef(ObjCInterfaceDecl *Super, SourceLocation Loc, CXTranslationUnit TU); -/// \brief Unpack an ObjCSuperClassRef cursor into the interface it references +/// Unpack an ObjCSuperClassRef cursor into the interface it references /// and optionally the location where the reference occurred. std::pair<const ObjCInterfaceDecl *, SourceLocation> getCursorObjCSuperClassRef(CXCursor C); -/// \brief Create an Objective-C protocol reference at the given location. +/// Create an Objective-C protocol reference at the given location. CXCursor MakeCursorObjCProtocolRef(const ObjCProtocolDecl *Proto, SourceLocation Loc, CXTranslationUnit TU); -/// \brief Unpack an ObjCProtocolRef cursor into the protocol it references +/// Unpack an ObjCProtocolRef cursor into the protocol it references /// and optionally the location where the reference occurred. std::pair<const ObjCProtocolDecl *, SourceLocation> getCursorObjCProtocolRef(CXCursor C); -/// \brief Create an Objective-C class reference at the given location. +/// Create an Objective-C class reference at the given location. CXCursor MakeCursorObjCClassRef(const ObjCInterfaceDecl *Class, SourceLocation Loc, CXTranslationUnit TU); -/// \brief Unpack an ObjCClassRef cursor into the class it references +/// Unpack an ObjCClassRef cursor into the class it references /// and optionally the location where the reference occurred. std::pair<const ObjCInterfaceDecl *, SourceLocation> getCursorObjCClassRef(CXCursor C); -/// \brief Create a type reference at the given location. +/// Create a type reference at the given location. CXCursor MakeCursorTypeRef(const TypeDecl *Type, SourceLocation Loc, CXTranslationUnit TU); -/// \brief Unpack a TypeRef cursor into the class it references +/// Unpack a TypeRef cursor into the class it references /// and optionally the location where the reference occurred. std::pair<const TypeDecl *, SourceLocation> getCursorTypeRef(CXCursor C); -/// \brief Create a reference to a template at the given location. +/// Create a reference to a template at the given location. CXCursor MakeCursorTemplateRef(const TemplateDecl *Template, SourceLocation Loc, CXTranslationUnit TU); -/// \brief Unpack a TemplateRef cursor into the template it references and +/// Unpack a TemplateRef cursor into the template it references and /// the location where the reference occurred. std::pair<const TemplateDecl *, SourceLocation> getCursorTemplateRef(CXCursor C); -/// \brief Create a reference to a namespace or namespace alias at the given +/// Create a reference to a namespace or namespace alias at the given /// location. CXCursor MakeCursorNamespaceRef(const NamedDecl *NS, SourceLocation Loc, CXTranslationUnit TU); -/// \brief Unpack a NamespaceRef cursor into the namespace or namespace alias +/// Unpack a NamespaceRef cursor into the namespace or namespace alias /// it references and the location where the reference occurred. std::pair<const NamedDecl *, SourceLocation> getCursorNamespaceRef(CXCursor C); -/// \brief Create a reference to a variable at the given location. +/// Create a reference to a variable at the given location. CXCursor MakeCursorVariableRef(const VarDecl *Var, SourceLocation Loc, CXTranslationUnit TU); -/// \brief Unpack a VariableRef cursor into the variable it references and the +/// Unpack a VariableRef cursor into the variable it references and the /// location where the where the reference occurred. std::pair<const VarDecl *, SourceLocation> getCursorVariableRef(CXCursor C); -/// \brief Create a reference to a field at the given location. +/// Create a reference to a field at the given location. CXCursor MakeCursorMemberRef(const FieldDecl *Field, SourceLocation Loc, CXTranslationUnit TU); -/// \brief Unpack a MemberRef cursor into the field it references and the +/// Unpack a MemberRef cursor into the field it references and the /// location where the reference occurred. std::pair<const FieldDecl *, SourceLocation> getCursorMemberRef(CXCursor C); -/// \brief Create a CXX base specifier cursor. +/// Create a CXX base specifier cursor. CXCursor MakeCursorCXXBaseSpecifier(const CXXBaseSpecifier *B, CXTranslationUnit TU); -/// \brief Unpack a CXXBaseSpecifier cursor into a CXXBaseSpecifier. +/// Unpack a CXXBaseSpecifier cursor into a CXXBaseSpecifier. const CXXBaseSpecifier *getCursorCXXBaseSpecifier(CXCursor C); -/// \brief Create a preprocessing directive cursor. +/// Create a preprocessing directive cursor. CXCursor MakePreprocessingDirectiveCursor(SourceRange Range, CXTranslationUnit TU); -/// \brief Unpack a given preprocessing directive to retrieve its source range. +/// Unpack a given preprocessing directive to retrieve its source range. SourceRange getCursorPreprocessingDirective(CXCursor C); -/// \brief Create a macro definition cursor. +/// Create a macro definition cursor. CXCursor MakeMacroDefinitionCursor(const MacroDefinitionRecord *, CXTranslationUnit TU); -/// \brief Unpack a given macro definition cursor to retrieve its +/// Unpack a given macro definition cursor to retrieve its /// source range. const MacroDefinitionRecord *getCursorMacroDefinition(CXCursor C); -/// \brief Create a macro expansion cursor. +/// Create a macro expansion cursor. CXCursor MakeMacroExpansionCursor(MacroExpansion *, CXTranslationUnit TU); -/// \brief Create a "pseudo" macro expansion cursor, using a macro definition +/// Create a "pseudo" macro expansion cursor, using a macro definition /// and a source location. CXCursor MakeMacroExpansionCursor(MacroDefinitionRecord *, SourceLocation Loc, CXTranslationUnit TU); -/// \brief Wraps a macro expansion cursor and provides a common interface +/// Wraps a macro expansion cursor and provides a common interface /// for a normal macro expansion cursor or a "pseudo" one. /// /// "Pseudo" macro expansion cursors (essentially a macro definition along with @@ -194,46 +194,46 @@ SourceRange getSourceRange() const; }; -/// \brief Unpack a given macro expansion cursor to retrieve its info. +/// Unpack a given macro expansion cursor to retrieve its info. static inline MacroExpansionCursor getCursorMacroExpansion(CXCursor C) { return C; } -/// \brief Create an inclusion directive cursor. +/// Create an inclusion directive cursor. CXCursor MakeInclusionDirectiveCursor(InclusionDirective *, CXTranslationUnit TU); -/// \brief Unpack a given inclusion directive cursor to retrieve its +/// Unpack a given inclusion directive cursor to retrieve its /// source range. const InclusionDirective *getCursorInclusionDirective(CXCursor C); -/// \brief Create a label reference at the given location. +/// Create a label reference at the given location. CXCursor MakeCursorLabelRef(LabelStmt *Label, SourceLocation Loc, CXTranslationUnit TU); -/// \brief Unpack a label reference into the label statement it refers to and +/// Unpack a label reference into the label statement it refers to and /// the location of the reference. std::pair<const LabelStmt *, SourceLocation> getCursorLabelRef(CXCursor C); -/// \brief Create a overloaded declaration reference cursor for an expression. +/// Create a overloaded declaration reference cursor for an expression. CXCursor MakeCursorOverloadedDeclRef(const OverloadExpr *E, CXTranslationUnit TU); -/// \brief Create a overloaded declaration reference cursor for a declaration. +/// Create a overloaded declaration reference cursor for a declaration. CXCursor MakeCursorOverloadedDeclRef(const Decl *D, SourceLocation Location, CXTranslationUnit TU); -/// \brief Create a overloaded declaration reference cursor for a template name. +/// Create a overloaded declaration reference cursor for a template name. CXCursor MakeCursorOverloadedDeclRef(TemplateName Template, SourceLocation Location, CXTranslationUnit TU); -/// \brief Internal storage for an overloaded declaration reference cursor; +/// Internal storage for an overloaded declaration reference cursor; typedef llvm::PointerUnion3<const OverloadExpr *, const Decl *, OverloadedTemplateStorage *> OverloadedDeclRefStorage; -/// \brief Unpack an overloaded declaration reference into an expression, +/// Unpack an overloaded declaration reference into an expression, /// declaration, or template name along with the source location. std::pair<OverloadedDeclRefStorage, SourceLocation> getCursorOverloadedDeclRef(CXCursor C); @@ -251,14 +251,14 @@ void getOverriddenCursors(CXCursor cursor, SmallVectorImpl<CXCursor> &overridden); -/// \brief Create an opaque pool used for fast generation of overridden +/// Create an opaque pool used for fast generation of overridden /// CXCursor arrays. void *createOverridenCXCursorsPool(); -/// \brief Dispose of the overridden CXCursors pool. +/// Dispose of the overridden CXCursors pool. void disposeOverridenCXCursorsPool(void *pool); -/// \brief Returns a index/location pair for a selector identifier if the cursor +/// Returns a index/location pair for a selector identifier if the cursor /// points to one. std::pair<int, SourceLocation> getSelectorIdentifierIndexAndLoc(CXCursor); static inline int getSelectorIdentifierIndex(CXCursor cursor) { @@ -279,7 +279,7 @@ CXCursor getTypeRefCursor(CXCursor cursor); -/// \brief Generate a USR for \arg D and put it in \arg Buf. +/// Generate a USR for \arg D and put it in \arg Buf. /// \returns true if no USR was computed or the result should be ignored, /// false otherwise. bool getDeclCursorUSR(const Decl *D, SmallVectorImpl<char> &Buf); @@ -290,7 +290,7 @@ return !(X == Y); } -/// \brief Return true if the cursor represents a declaration that is the +/// Return true if the cursor represents a declaration that is the /// first in a declaration group. bool isFirstInDeclGroup(CXCursor C); Index: cfe/trunk/tools/libclang/CXCursor.cpp =================================================================== --- cfe/trunk/tools/libclang/CXCursor.cpp +++ cfe/trunk/tools/libclang/CXCursor.cpp @@ -1196,19 +1196,19 @@ } enum CXGetTemplateArgumentStatus { - /** \brief The operation completed successfully */ + /** The operation completed successfully */ CXGetTemplateArgumentStatus_Success = 0, - /** \brief The specified cursor did not represent a FunctionDecl. */ + /** The specified cursor did not represent a FunctionDecl. */ CXGetTemplateArgumentStatus_CursorNotFunctionDecl = -1, - /** \brief The specified cursor was not castable to a FunctionDecl. */ + /** The specified cursor was not castable to a FunctionDecl. */ CXGetTemplateArgumentStatus_BadFunctionDeclCast = -2, - /** \brief A NULL FunctionTemplateSpecializationInfo was retrieved. */ + /** A NULL FunctionTemplateSpecializationInfo was retrieved. */ CXGetTemplateArgumentStatus_NullTemplSpecInfo = -3, - /** \brief An invalid (OOB) argument index was specified */ + /** An invalid (OOB) argument index was specified */ CXGetTemplateArgumentStatus_InvalidIndex = -4 }; Index: cfe/trunk/tools/libclang/CXIndexDataConsumer.h =================================================================== --- cfe/trunk/tools/libclang/CXIndexDataConsumer.h +++ cfe/trunk/tools/libclang/CXIndexDataConsumer.h @@ -260,7 +260,7 @@ } unsigned getNumAttrs() const { return (unsigned)CXAttrs.size(); } - /// \brief Retain/Release only useful when we allocate a AttrListInfo from the + /// Retain/Release only useful when we allocate a AttrListInfo from the /// BumpPtrAllocator, and not from the stack; so that we keep a pointer // in the EntityInfo void Retain() { ++ref_cnt; } Index: cfe/trunk/tools/libclang/CXLoadedDiagnostic.h =================================================================== --- cfe/trunk/tools/libclang/CXLoadedDiagnostic.h +++ cfe/trunk/tools/libclang/CXLoadedDiagnostic.h @@ -27,34 +27,34 @@ ~CXLoadedDiagnostic() override; - /// \brief Return the severity of the diagnostic. + /// Return the severity of the diagnostic. CXDiagnosticSeverity getSeverity() const override; - /// \brief Return the location of the diagnostic. + /// Return the location of the diagnostic. CXSourceLocation getLocation() const override; - /// \brief Return the spelling of the diagnostic. + /// Return the spelling of the diagnostic. CXString getSpelling() const override; - /// \brief Return the text for the diagnostic option. + /// Return the text for the diagnostic option. CXString getDiagnosticOption(CXString *Disable) const override; - /// \brief Return the category of the diagnostic. + /// Return the category of the diagnostic. unsigned getCategory() const override; - /// \brief Return the category string of the diagnostic. + /// Return the category string of the diagnostic. CXString getCategoryText() const override; - /// \brief Return the number of source ranges for the diagnostic. + /// Return the number of source ranges for the diagnostic. unsigned getNumRanges() const override; - /// \brief Return the source ranges for the diagnostic. + /// Return the source ranges for the diagnostic. CXSourceRange getRange(unsigned Range) const override; - /// \brief Return the number of FixIts. + /// Return the number of FixIts. unsigned getNumFixIts() const override; - /// \brief Return the FixIt information (source range and inserted text). + /// Return the FixIt information (source range and inserted text). CXString getFixIt(unsigned FixIt, CXSourceRange *ReplacementRange) const override; @@ -62,7 +62,7 @@ return D->getKind() == LoadedDiagnosticKind; } - /// \brief Decode the CXSourceLocation into file, line, column, and offset. + /// Decode the CXSourceLocation into file, line, column, and offset. static void decodeLocation(CXSourceLocation location, CXFile *file, unsigned *line, Index: cfe/trunk/tools/libclang/CXLoadedDiagnostic.cpp =================================================================== --- cfe/trunk/tools/libclang/CXLoadedDiagnostic.cpp +++ cfe/trunk/tools/libclang/CXLoadedDiagnostic.cpp @@ -47,7 +47,7 @@ FileManager FakeFiles; llvm::DenseMap<unsigned, const FileEntry *> Files; - /// \brief Copy the string into our own allocator. + /// Copy the string into our own allocator. const char *copyString(StringRef Blob) { char *mem = Alloc.Allocate<char>(Blob.size() + 1); memcpy(mem, Blob.data(), Blob.size()); Index: cfe/trunk/tools/libclang/CXSourceLocation.h =================================================================== --- cfe/trunk/tools/libclang/CXSourceLocation.h +++ cfe/trunk/tools/libclang/CXSourceLocation.h @@ -25,7 +25,7 @@ namespace cxloc { -/// \brief Translate a Clang source location into a CIndex source location. +/// Translate a Clang source location into a CIndex source location. static inline CXSourceLocation translateSourceLocation(const SourceManager &SM, const LangOptions &LangOpts, SourceLocation Loc) { @@ -37,7 +37,7 @@ return Result; } -/// \brief Translate a Clang source location into a CIndex source location. +/// Translate a Clang source location into a CIndex source location. static inline CXSourceLocation translateSourceLocation(ASTContext &Context, SourceLocation Loc) { return translateSourceLocation(Context.getSourceManager(), @@ -45,7 +45,7 @@ Loc); } -/// \brief Translate a Clang source range into a CIndex source range. +/// Translate a Clang source range into a CIndex source range. /// /// Clang internally represents ranges where the end location points to the /// start of the token at the end. However, for external clients it is more @@ -55,7 +55,7 @@ const LangOptions &LangOpts, const CharSourceRange &R); -/// \brief Translate a Clang source range into a CIndex source range. +/// Translate a Clang source range into a CIndex source range. static inline CXSourceRange translateSourceRange(ASTContext &Context, SourceRange R) { return translateSourceRange(Context.getSourceManager(), Index: cfe/trunk/tools/libclang/CXString.h =================================================================== --- cfe/trunk/tools/libclang/CXString.h +++ cfe/trunk/tools/libclang/CXString.h @@ -27,33 +27,33 @@ struct CXStringBuf; -/// \brief Create a CXString object for an empty "" string. +/// Create a CXString object for an empty "" string. CXString createEmpty(); -/// \brief Create a CXString object for an NULL string. +/// Create a CXString object for an NULL string. /// /// A NULL string should be used as an "invalid" value in case of errors. CXString createNull(); -/// \brief Create a CXString object from a nul-terminated C string. New +/// Create a CXString object from a nul-terminated C string. New /// CXString may contain a pointer to \p String. /// /// \p String should not be changed by the caller afterwards. CXString createRef(const char *String); -/// \brief Create a CXString object from a nul-terminated C string. New +/// Create a CXString object from a nul-terminated C string. New /// CXString will contain a copy of \p String. /// /// \p String can be changed or freed by the caller. CXString createDup(const char *String); -/// \brief Create a CXString object from a StringRef. New CXString may +/// Create a CXString object from a StringRef. New CXString may /// contain a pointer to the undrelying data of \p String. /// /// \p String should not be changed by the caller afterwards. CXString createRef(StringRef String); -/// \brief Create a CXString object from a StringRef. New CXString will +/// Create a CXString object from a StringRef. New CXString will /// contain a copy of \p String. /// /// \p String can be changed or freed by the caller. @@ -65,12 +65,12 @@ // If you need to make a copy, call \c createDup(StringRef(String)). CXString createRef(std::string String) = delete; -/// \brief Create a CXString object that is backed by a string buffer. +/// Create a CXString object that is backed by a string buffer. CXString createCXString(CXStringBuf *buf); CXStringSet *createSet(const std::vector<std::string> &Strings); -/// \brief A string pool used for fast allocation/deallocation of strings. +/// A string pool used for fast allocation/deallocation of strings. class CXStringPool { public: ~CXStringPool(); @@ -89,13 +89,13 @@ CXStringBuf(CXTranslationUnit TU) : TU(TU) {} - /// \brief Return this buffer to the pool. + /// Return this buffer to the pool. void dispose(); }; CXStringBuf *getCXStringBuf(CXTranslationUnit TU); -/// \brief Returns true if the CXString data is managed by a pool. +/// Returns true if the CXString data is managed by a pool. bool isManagedByPool(CXString str); } Index: cfe/trunk/tools/libclang/CursorVisitor.h =================================================================== --- cfe/trunk/tools/libclang/CursorVisitor.h +++ cfe/trunk/tools/libclang/CursorVisitor.h @@ -55,44 +55,44 @@ public TypeLocVisitor<CursorVisitor, bool> { public: - /// \brief Callback called after child nodes of a cursor have been visited. + /// Callback called after child nodes of a cursor have been visited. /// Return true to break visitation or false to continue. typedef bool (*PostChildrenVisitorTy)(CXCursor cursor, CXClientData client_data); private: - /// \brief The translation unit we are traversing. + /// The translation unit we are traversing. CXTranslationUnit TU; ASTUnit *AU; - /// \brief The parent cursor whose children we are traversing. + /// The parent cursor whose children we are traversing. CXCursor Parent; - /// \brief The declaration that serves at the parent of any statement or + /// The declaration that serves at the parent of any statement or /// expression nodes. const Decl *StmtParent; - /// \brief The visitor function. + /// The visitor function. CXCursorVisitor Visitor; PostChildrenVisitorTy PostChildrenVisitor; - /// \brief The opaque client data, to be passed along to the visitor. + /// The opaque client data, to be passed along to the visitor. CXClientData ClientData; - /// \brief Whether we should visit the preprocessing record entries last, + /// Whether we should visit the preprocessing record entries last, /// after visiting other declarations. bool VisitPreprocessorLast; - /// \brief Whether we should visit declarations or preprocessing record + /// Whether we should visit declarations or preprocessing record /// entries that are #included inside the \arg RegionOfInterest. bool VisitIncludedEntities; - /// \brief When valid, a source range to which the cursor should restrict + /// When valid, a source range to which the cursor should restrict /// its search. SourceRange RegionOfInterest; - /// \brief Whether we should only visit declarations and not preprocessing + /// Whether we should only visit declarations and not preprocessing /// record entries. bool VisitDeclsOnly; @@ -110,7 +110,7 @@ using DeclVisitor<CursorVisitor, bool>::Visit; using TypeLocVisitor<CursorVisitor, bool>::Visit; - /// \brief Determine whether this particular source range comes before, comes + /// Determine whether this particular source range comes before, comes /// after, or overlaps the region of interest. /// /// \param R a half-open source range retrieved from the abstract syntax tree. @@ -177,7 +177,7 @@ bool Visit(CXCursor Cursor, bool CheckedRegionOfInterest = false); - /// \brief Visit declarations and preprocessed entities for the file region + /// Visit declarations and preprocessed entities for the file region /// designated by \see RegionOfInterest. bool visitFileRegion(); Index: cfe/trunk/tools/libclang/Index_Internal.h =================================================================== --- cfe/trunk/tools/libclang/Index_Internal.h +++ cfe/trunk/tools/libclang/Index_Internal.h @@ -40,15 +40,15 @@ #endif // !__has_feature(blocks) -/// \brief The result of comparing two source ranges. +/// The result of comparing two source ranges. enum RangeComparisonResult { - /// \brief Either the ranges overlap or one of the ranges is invalid. + /// Either the ranges overlap or one of the ranges is invalid. RangeOverlap, - /// \brief The first range ends before the second range starts. + /// The first range ends before the second range starts. RangeBefore, - /// \brief The first range starts after the second range ends. + /// The first range starts after the second range ends. RangeAfter }; Index: cfe/trunk/tools/libclang/Indexing.cpp =================================================================== --- cfe/trunk/tools/libclang/Indexing.cpp +++ cfe/trunk/tools/libclang/Indexing.cpp @@ -45,7 +45,7 @@ // Skip Parsed Bodies //===----------------------------------------------------------------------===// -/// \brief A "region" in source code identified by the file/offset of the +/// A "region" in source code identified by the file/offset of the /// preprocessor conditional directive that it belongs to. /// Multiple, non-consecutive ranges can be parts of the same region. /// Index: cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp =================================================================== --- cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp +++ cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp @@ -1507,7 +1507,7 @@ OS << "}\n\n"; } -/// \brief Return the index of a spelling in a spelling list. +/// Return the index of a spelling in a spelling list. static unsigned getSpellingListIndex(const std::vector<FlattenedSpelling> &SpellingList, const FlattenedSpelling &Spelling) { @@ -2056,7 +2056,7 @@ } } -/// \brief Emits the first-argument-is-type property for attributes. +/// Emits the first-argument-is-type property for attributes. static void emitClangAttrTypeArgList(RecordKeeper &Records, raw_ostream &OS) { OS << "#if defined(CLANG_ATTR_TYPE_ARG_LIST)\n"; std::vector<Record *> Attrs = Records.getAllDerivedDefinitions("Attr"); @@ -2078,7 +2078,7 @@ OS << "#endif // CLANG_ATTR_TYPE_ARG_LIST\n\n"; } -/// \brief Emits the parse-arguments-in-unevaluated-context property for +/// Emits the parse-arguments-in-unevaluated-context property for /// attributes. static void emitClangAttrArgContextList(RecordKeeper &Records, raw_ostream &OS) { OS << "#if defined(CLANG_ATTR_ARG_CONTEXT_LIST)\n"; Index: cfe/trunk/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp =================================================================== --- cfe/trunk/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp +++ cfe/trunk/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp @@ -22,7 +22,7 @@ using namespace llvm; -/// \brief Convert a code point to the corresponding UTF-8 sequence represented +/// Convert a code point to the corresponding UTF-8 sequence represented /// as a C string literal. /// /// \returns true on success. Index: cfe/trunk/utils/TableGen/ClangDiagnosticsEmitter.cpp =================================================================== --- cfe/trunk/utils/TableGen/ClangDiagnosticsEmitter.cpp +++ cfe/trunk/utils/TableGen/ClangDiagnosticsEmitter.cpp @@ -154,7 +154,7 @@ RHS->DiagsInGroup.front()); } -/// \brief Invert the 1-[0/1] mapping of diags to group into a one to many +/// Invert the 1-[0/1] mapping of diags to group into a one to many /// mapping of groups to diags in the group. static void groupDiagnostics(const std::vector<Record*> &Diags, const std::vector<Record*> &DiagGroups, @@ -572,7 +572,7 @@ return enumName.str(); } -/// \brief Emit the array of diagnostic subgroups. +/// Emit the array of diagnostic subgroups. /// /// The array of diagnostic subgroups contains for each group a list of its /// subgroups. The individual lists are separated by '-1'. Groups with no @@ -619,7 +619,7 @@ OS << "};\n\n"; } -/// \brief Emit the list of diagnostic arrays. +/// Emit the list of diagnostic arrays. /// /// This data structure is a large array that contains itself arrays of varying /// size. Each array represents a list of diagnostics. The different arrays are @@ -660,7 +660,7 @@ OS << "};\n\n"; } -/// \brief Emit a list of group names. +/// Emit a list of group names. /// /// This creates a long string which by itself contains a list of pascal style /// strings, which consist of a length byte directly followed by the string. @@ -677,7 +677,7 @@ OS << "};\n\n"; } -/// \brief Emit diagnostic arrays and related data structures. +/// Emit diagnostic arrays and related data structures. /// /// This creates the actual diagnostic array, an array of diagnostic subgroups /// and an array of subgroup names. @@ -701,7 +701,7 @@ OS << "#endif // GET_DIAG_ARRAYS\n\n"; } -/// \brief Emit diagnostic table. +/// Emit diagnostic table. /// /// The table is sorted by the name of the diagnostic group. Each element /// consists of the name of the diagnostic group (given as offset in the @@ -776,7 +776,7 @@ OS << "#endif // GET_DIAG_TABLE\n\n"; } -/// \brief Emit the table of diagnostic categories. +/// Emit the table of diagnostic categories. /// /// The table has the form of macro calls that have two parameters. The /// category's name as well as an enum that represents the category. The Index: cfe/trunk/utils/TableGen/ClangSACheckersEmitter.cpp =================================================================== --- cfe/trunk/utils/TableGen/ClangSACheckersEmitter.cpp +++ cfe/trunk/utils/TableGen/ClangSACheckersEmitter.cpp @@ -23,7 +23,7 @@ // Static Analyzer Checkers Tables generation //===----------------------------------------------------------------------===// -/// \brief True if it is specified hidden or a parent package is specified +/// True if it is specified hidden or a parent package is specified /// as hidden, otherwise false. static bool isHidden(const Record &R) { if (R.getValueAsBit("Hidden"))