r331834 - Remove \brief commands from doxygen comments.

Adrian Prantl via cfe-commits cfe-commits at lists.llvm.org
Tue May 8 18:00:03 PDT 2018


Modified: cfe/trunk/include/clang/Frontend/LayoutOverrideSource.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/LayoutOverrideSource.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Frontend/LayoutOverrideSource.h (original)
+++ cfe/trunk/include/clang/Frontend/LayoutOverrideSource.h Tue May  8 18:00:01 2018
@@ -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 @@ namespace clang {
        llvm::DenseMap<const CXXRecordDecl *,
                       CharUnits> &VirtualBaseOffsets) override;
     
-    /// \brief Dump the overridden layouts.
+    /// Dump the overridden layouts.
     void dump();
   };
 }

Modified: cfe/trunk/include/clang/Frontend/PrecompiledPreamble.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/PrecompiledPreamble.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Frontend/PrecompiledPreamble.h (original)
+++ cfe/trunk/include/clang/Frontend/PrecompiledPreamble.h Tue May  8 18:00:01 2018
@@ -38,7 +38,7 @@ class CompilerInvocation;
 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 @@ class PrecompiledPreamble {
   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

Modified: cfe/trunk/include/clang/Frontend/SerializedDiagnosticPrinter.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/SerializedDiagnosticPrinter.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Frontend/SerializedDiagnosticPrinter.h (original)
+++ cfe/trunk/include/clang/Frontend/SerializedDiagnosticPrinter.h Tue May  8 18:00:01 2018
@@ -25,7 +25,7 @@ class DiagnosticOptions;
 
 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

Modified: cfe/trunk/include/clang/Frontend/SerializedDiagnosticReader.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/SerializedDiagnosticReader.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Frontend/SerializedDiagnosticReader.h (original)
+++ cfe/trunk/include/clang/Frontend/SerializedDiagnosticReader.h Tue May  8 18:00:01 2018
@@ -43,7 +43,7 @@ inline std::error_code make_error_code(S
   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 @@ struct Location {
       : 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 @@ public:
   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 {}; }
 };
 

Modified: cfe/trunk/include/clang/Frontend/SerializedDiagnostics.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/SerializedDiagnostics.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Frontend/SerializedDiagnostics.h (original)
+++ cfe/trunk/include/clang/Frontend/SerializedDiagnostics.h Tue May  8 18:00:01 2018
@@ -16,11 +16,11 @@ namespace clang {
 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 @@ enum RecordIDs {
   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 @@ enum Level {
   Remark
 };
 
-/// \brief The serialized diagnostics version number.
+/// The serialized diagnostics version number.
 enum { VersionNumber = 2 };
 
 } // end serialized_diags namespace

Modified: cfe/trunk/include/clang/Frontend/TextDiagnostic.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/TextDiagnostic.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Frontend/TextDiagnostic.h (original)
+++ cfe/trunk/include/clang/Frontend/TextDiagnostic.h Tue May  8 18:00:01 2018
@@ -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 @@ public:
 
   ~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 @@ public:
                                    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

Modified: cfe/trunk/include/clang/Frontend/TextDiagnosticPrinter.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/TextDiagnosticPrinter.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Frontend/TextDiagnosticPrinter.h (original)
+++ cfe/trunk/include/clang/Frontend/TextDiagnosticPrinter.h Tue May  8 18:00:01 2018
@@ -29,7 +29,7 @@ class TextDiagnosticPrinter : public Dia
   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.

Modified: cfe/trunk/include/clang/Frontend/VerifyDiagnosticConsumer.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/VerifyDiagnosticConsumer.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Frontend/VerifyDiagnosticConsumer.h (original)
+++ cfe/trunk/include/clang/Frontend/VerifyDiagnosticConsumer.h Tue May  8 18:00:01 2018
@@ -273,7 +273,7 @@ public:
     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;

Modified: cfe/trunk/include/clang/Index/USRGeneration.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Index/USRGeneration.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Index/USRGeneration.h (original)
+++ cfe/trunk/include/clang/Index/USRGeneration.h Tue May  8 18:00:01 2018
@@ -25,33 +25,33 @@ static inline StringRef getUSRSpacePrefi
   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 @@ void generateUSRForGlobalEnum(StringRef
 /// 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,

Modified: cfe/trunk/include/clang/Lex/CodeCompletionHandler.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/CodeCompletionHandler.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Lex/CodeCompletionHandler.h (original)
+++ cfe/trunk/include/clang/Lex/CodeCompletionHandler.h Tue May  8 18:00:01 2018
@@ -19,13 +19,13 @@ namespace clang {
 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 @@ public:
   /// 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 @@ public:
                                          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() { }

Modified: cfe/trunk/include/clang/Lex/DirectoryLookup.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/DirectoryLookup.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Lex/DirectoryLookup.h (original)
+++ cfe/trunk/include/clang/Lex/DirectoryLookup.h Tue May  8 18:00:01 2018
@@ -55,10 +55,10 @@ private:
   /// 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 @@ public:
   /// 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 @@ public:
     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; 
   }

Modified: cfe/trunk/include/clang/Lex/ExternalPreprocessorSource.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/ExternalPreprocessorSource.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Lex/ExternalPreprocessorSource.h (original)
+++ cfe/trunk/include/clang/Lex/ExternalPreprocessorSource.h Tue May  8 18:00:01 2018
@@ -19,7 +19,7 @@ namespace clang {
 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 @@ class ExternalPreprocessorSource {
 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;
 };
   

Modified: cfe/trunk/include/clang/Lex/HeaderSearch.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/HeaderSearch.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Lex/HeaderSearch.h (original)
+++ cfe/trunk/include/clang/Lex/HeaderSearch.h Tue May  8 18:00:01 2018
@@ -46,13 +46,13 @@ class Module;
 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 @@ struct HeaderFileInfo {
   /// 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 @@ struct HeaderFileInfo {
   /// 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 @@ struct HeaderFileInfo {
   /// 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 @@ struct HeaderFileInfo {
         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 @@ struct HeaderFileInfo {
   }
 };
 
-/// \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 @@ public:
   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 @@ class HeaderSearch {
     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 @@ class HeaderSearch {
   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 @@ class HeaderSearch {
   /// 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 @@ class HeaderSearch {
   };
   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 @@ class HeaderSearch {
   /// 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 @@ public:
   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 @@ public:
     //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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
       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 @@ public:
       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 @@ public:
                               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 @@ public:
     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 @@ public:
     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 @@ public:
   /// 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 @@ public:
   /// 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 @@ public:
   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 @@ public:
   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 @@ public:
   /// \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 @@ public:
   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 @@ public:
                          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 @@ private:
   /// \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 @@ private:
                               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 @@ private:
                                  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 @@ private:
       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 @@ private:
                           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 @@ public:
 
   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 @@ public:
   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 @@ public:
   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 @@ private:
                                             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 @@ private:
   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.

Modified: cfe/trunk/include/clang/Lex/HeaderSearchOptions.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/HeaderSearchOptions.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Lex/HeaderSearchOptions.h (original)
+++ cfe/trunk/include/clang/Lex/HeaderSearchOptions.h Tue May  8 18:00:01 2018
@@ -108,32 +108,32 @@ public:
   /// 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 @@ public:
   /// 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 @@ public:
   /// 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 @@ public:
   /// 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 @@ public:
   /// 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).

Modified: cfe/trunk/include/clang/Lex/Lexer.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/Lexer.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Lex/Lexer.h (original)
+++ cfe/trunk/include/clang/Lex/Lexer.h Tue May  8 18:00:01 2018
@@ -57,10 +57,10 @@ enum ConflictMarkerKind {
 /// 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 @@ public:
     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 @@ public:
                                      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 @@ public:
         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 @@ public:
                                             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 @@ public:
                : 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 @@ public:
                                         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 @@ public:
                                       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 @@ public:
                                            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 @@ public:
                                          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 @@ public:
   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 @@ public:
                                        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 @@ public:
                                          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 @@ private:
   ///         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 @@ private:
   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

Modified: cfe/trunk/include/clang/Lex/LiteralSupport.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/LiteralSupport.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Lex/LiteralSupport.h (original)
+++ cfe/trunk/include/clang/Lex/LiteralSupport.h Tue May  8 18:00:01 2018
@@ -112,7 +112,7 @@ private:
 
   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 @@ private:
 
   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);
 

Modified: cfe/trunk/include/clang/Lex/MacroInfo.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/MacroInfo.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Lex/MacroInfo.h (original)
+++ cfe/trunk/include/clang/Lex/MacroInfo.h Tue May  8 18:00:01 2018
@@ -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 Module;
 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 @@ class MacroInfo {
   /// \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 @@ class MacroInfo {
   ~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 @@ public:
   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 @@ public:
     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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
     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 @@ public:
     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 @@ private:
   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 @@ public:
   };
 
 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 @@ public:
 
   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 @@ public:
     }
   };
 
-  /// \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 @@ public:
   }
   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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
     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 @@ MacroDirective::DefInfo::getPreviousDefi
   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 @@ public:
   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 @@ public:
                   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 @@ public:
     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 {

Modified: cfe/trunk/include/clang/Lex/ModuleLoader.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/ModuleLoader.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Lex/ModuleLoader.h (original)
+++ cfe/trunk/include/clang/Lex/ModuleLoader.h Tue May  8 18:00:01 2018
@@ -28,11 +28,11 @@ namespace clang {
 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 @@ public:
 
   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 @@ public:
 
   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 @@ public:
   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.

Modified: cfe/trunk/include/clang/Lex/ModuleMap.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/ModuleMap.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Lex/ModuleMap.h (original)
+++ cfe/trunk/include/clang/Lex/ModuleMap.h Tue May  8 18:00:01 2018
@@ -42,13 +42,13 @@ class FileManager;
 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 @@ public:
   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 @@ class ModuleMap {
 
   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 @@ class ModuleMap {
   /// 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 @@ public:
   /// 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 @@ public:
   /// 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 @@ public:
       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 @@ private:
   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 @@ private:
   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 @@ private:
   /// 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 @@ private:
 
   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 @@ private:
           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 @@ private:
 
   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 @@ private:
   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 @@ private:
   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 @@ private:
   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 @@ private:
                                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 @@ public:
             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 @@ public:
   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 @@ public:
   /// 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 @@ public:
                                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 @@ public:
   /// \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 @@ public:
   /// \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 @@ public:
                                                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 @@ public:
   /// 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 @@ public:
   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 @@ public:
     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 @@ public:
   /// 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 @@ public:
 
   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 @@ public:
     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 @@ public:
   /// 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 @@ public:
   /// 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 @@ public:
   /// 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 @@ public:
                           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;

Modified: cfe/trunk/include/clang/Lex/MultipleIncludeOpt.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/MultipleIncludeOpt.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Lex/MultipleIncludeOpt.h (original)
+++ cfe/trunk/include/clang/Lex/MultipleIncludeOpt.h Tue May  8 18:00:01 2018
@@ -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 @@ public:
   /// 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 @@ public:
     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 @@ public:
     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 @@ public:
     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;

Modified: cfe/trunk/include/clang/Lex/PPCallbacks.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/PPCallbacks.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Lex/PPCallbacks.h (original)
+++ cfe/trunk/include/clang/Lex/PPCallbacks.h Tue May  8 18:00:01 2018
@@ -8,7 +8,7 @@
 //===----------------------------------------------------------------------===//
 ///
 /// \file
-/// \brief Defines the PPCallbacks interface.
+/// Defines the PPCallbacks interface.
 ///
 //===----------------------------------------------------------------------===//
 
@@ -29,7 +29,7 @@ namespace clang {
   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 @@ public:
     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 @@ public:
                            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 @@ public:
                            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 @@ public:
     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 @@ public:
                                   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 @@ public:
                             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 @@ public:
                              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 @@ public:
                               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 @@ public:
     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 @@ public:
                   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 @@ public:
                     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 @@ public:
                      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 @@ public:
                       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 @@ public:
     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);

Modified: cfe/trunk/include/clang/Lex/PPConditionalDirectiveRecord.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/PPConditionalDirectiveRecord.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Lex/PPConditionalDirectiveRecord.h (original)
+++ cfe/trunk/include/clang/Lex/PPConditionalDirectiveRecord.h Tue May  8 18:00:01 2018
@@ -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 @@ class PPConditionalDirectiveRecord : pub
   };
 
   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 {

Modified: cfe/trunk/include/clang/Lex/Pragma.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/Pragma.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Lex/Pragma.h (original)
+++ cfe/trunk/include/clang/Lex/Pragma.h Tue May  8 18:00:01 2018
@@ -26,22 +26,22 @@ class Preprocessor;
 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

Modified: cfe/trunk/include/clang/Lex/PreprocessingRecord.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/PreprocessingRecord.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Lex/PreprocessingRecord.h (original)
+++ cfe/trunk/include/clang/Lex/PreprocessingRecord.h Tue May  8 18:00:01 2018
@@ -39,11 +39,11 @@ class PreprocessingRecord;
 
 } // 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 MacroInfo;
 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 @@ class Token;
     };
 
   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 @@ class Token;
         : 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 @@ class Token;
     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 @@ class Token;
     }
   };
 
-  /// \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 @@ class Token;
                                    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 @@ class Token;
     }
   };
   
-  /// \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 @@ class Token;
         : 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 @@ class Token;
     }
   };
 
-  /// \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 @@ class Token;
                        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 @@ class Token;
     }
   };
   
-  /// \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 @@ class Token;
       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 @@ class Token;
       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 @@ class Token;
           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 @@ class Token;
     /// \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 @@ class Token;
     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 @@ class Token;
     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;

Modified: cfe/trunk/include/clang/Lex/Preprocessor.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/Preprocessor.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Lex/Preprocessor.h (original)
+++ cfe/trunk/include/clang/Lex/Preprocessor.h Tue May  8 18:00:01 2018
@@ -8,7 +8,7 @@
 //===----------------------------------------------------------------------===//
 //
 /// \file
-/// \brief Defines the clang::Preprocessor interface.
+/// Defines the clang::Preprocessor interface.
 //
 //===----------------------------------------------------------------------===//
 
@@ -83,7 +83,7 @@ class PTHManager;
 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 @@ public:
   }
 };
 
-/// \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 @@ enum MacroUse {
   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 @@ class Preprocessor {
   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 @@ class Preprocessor {
   unsigned CounterValue = 0;
 
   enum {
-    /// \brief Maximum depth of \#includes.
+    /// Maximum depth of \#includes.
     MaxAllowedIncludeStackDepth = 200
   };
 
@@ -210,26 +210,26 @@ class Preprocessor {
 
   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 @@ class Preprocessor {
   /// 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 @@ private:
     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 @@ private:
     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 @@ private:
   };
   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 @@ private:
 
   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 @@ private:
   };
   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 @@ private:
   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 @@ private:
   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 @@ private:
   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 @@ private:
   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 @@ private:
   /// 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 @@ public:
 
   ~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 @@ public:
   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 @@ public:
   /// 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 @@ public:
     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 @@ public:
   /// 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 @@ public:
            (!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 @@ public:
                            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 @@ public:
     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 @@ public:
     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 @@ public:
 
   /// \}
 
-  /// \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 @@ public:
 
   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 @@ public:
     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 @@ public:
     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 @@ public:
   /// 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 @@ public:
   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 @@ public:
     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 @@ public:
   ///
   void EnableBacktrackAtThisPos();
 
-  /// \brief Disable the last EnableBacktrackAtThisPos call.
+  /// Disable the last EnableBacktrackAtThisPos call.
   void CommitBacktrackedTokens();
 
   struct CachedTokensRange {
@@ -1217,28 +1217,28 @@ public:
   };
 
 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 @@ public:
     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 @@ public:
                                   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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
       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 @@ public:
     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 @@ public:
     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 @@ public:
       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 @@ public:
   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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
                         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 @@ public:
     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 @@ public:
     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 @@ public:
   /// 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 @@ public:
     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 @@ public:
                                             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 @@ public:
     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 @@ private:
   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 @@ private:
 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 @@ public:
   /// 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 @@ public:
   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 @@ public:
   /// 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 @@ public:
                               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 @@ public:
   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 @@ private:
   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 @@ private:
                                     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 @@ private:
     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 @@ private:
   /// 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 @@ private:
   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 @@ public:
                                      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 @@ public:
   }
 
 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 @@ public:
   // 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 @@ public:
   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

Modified: cfe/trunk/include/clang/Lex/PreprocessorLexer.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/PreprocessorLexer.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Lex/PreprocessorLexer.h (original)
+++ cfe/trunk/include/clang/Lex/PreprocessorLexer.h Tue May  8 18:00:01 2018
@@ -8,7 +8,7 @@
 //===----------------------------------------------------------------------===//
 //
 /// \file
-/// \brief Defines the PreprocessorLexer interface.
+/// Defines the PreprocessorLexer interface.
 //
 //===----------------------------------------------------------------------===//
 
@@ -39,21 +39,21 @@ protected:
   /// 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 @@ protected:
   /// 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 @@ protected:
 
   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 @@ protected:
     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 @@ public:
   //===--------------------------------------------------------------------===//
   // 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 @@ public:
     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 @@ public:
   /// 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;

Modified: cfe/trunk/include/clang/Lex/PreprocessorOptions.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/PreprocessorOptions.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Lex/PreprocessorOptions.h (original)
+++ cfe/trunk/include/clang/Lex/PreprocessorOptions.h Tue May  8 18:00:01 2018
@@ -27,14 +27,14 @@ class MemoryBuffer;
 
 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 @@ public:
   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 @@ public:
   /// 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 @@ public:
   /// 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 @@ public:
     }
   };
   
-  /// \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 @@ public:
     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();

Modified: cfe/trunk/include/clang/Lex/Token.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/Token.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Lex/Token.h (original)
+++ cfe/trunk/include/clang/Lex/Token.h Tue May  8 18:00:01 2018
@@ -102,24 +102,24 @@ public:
     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 @@ public:
                           : 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 @@ public:
 
   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 @@ public:
     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 @@ public:
     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 @@ public:
   ///
   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 @@ public:
   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;
 };

Modified: cfe/trunk/include/clang/Lex/TokenLexer.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/TokenLexer.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Lex/TokenLexer.h (original)
+++ cfe/trunk/include/clang/Lex/TokenLexer.h Tue May  8 18:00:01 2018
@@ -62,18 +62,18 @@ class TokenLexer {
   /// 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 @@ private:
   /// 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

Modified: cfe/trunk/include/clang/Lex/VariadicMacroSupport.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/VariadicMacroSupport.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Lex/VariadicMacroSupport.h (original)
+++ cfe/trunk/include/clang/Lex/VariadicMacroSupport.h Tue May  8 18:00:01 2018
@@ -66,7 +66,7 @@ namespace clang {
     ~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 @@ namespace clang {
     
   };
 
-  /// \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 {
 

Modified: cfe/trunk/include/clang/Parse/ParseAST.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Parse/ParseAST.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Parse/ParseAST.h (original)
+++ cfe/trunk/include/clang/Parse/ParseAST.h Tue May  8 18:00:01 2018
@@ -23,7 +23,7 @@ namespace clang {
   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 @@ namespace clang {
                 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);

Modified: cfe/trunk/include/clang/Parse/Parser.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Parse/Parser.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Parse/Parser.h (original)
+++ cfe/trunk/include/clang/Parse/Parser.h Tue May  8 18:00:01 2018
@@ -121,25 +121,25 @@ class Parser : public CodeCompletionHand
   /// 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 @@ class Parser : public CodeCompletionHand
   /// 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 @@ class Parser : public CodeCompletionHand
   /// 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 @@ class Parser : public CodeCompletionHand
   /// 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 @@ private:
            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 @@ private:
     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 @@ private:
   /// \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 @@ private:
     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 @@ private:
            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 @@ private:
   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 @@ private:
     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 @@ private:
   /// 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 @@ private:
                         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 @@ private:
     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 @@ public:
   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 @@ private:
 
 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 @@ private:
     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 @@ private:
     /// 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 @@ private:
     /// 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 @@ private:
   /// 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 @@ private:
       : 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 @@ private:
     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 @@ private:
     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 @@ private:
         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 @@ private:
     }
   };
 
-  /// \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 @@ private:
         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 @@ private:
   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 @@ private:
                                  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 @@ private:
   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 @@ private:
   /// 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 @@ private:
     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 @@ private:
     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 @@ private:
     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 @@ private:
     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 @@ private:
   /// 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 @@ private:
   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 @@ private:
                                     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 @@ private:
   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 @@ private:
       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 @@ private:
   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 @@ private:
       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 @@ private:
   ///
   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 @@ private:
   ///
   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 @@ private:
   ///
   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 @@ private:
   ///
   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

Modified: cfe/trunk/include/clang/Parse/RAIIObjectsForParser.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Parse/RAIIObjectsForParser.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Parse/RAIIObjectsForParser.h (original)
+++ cfe/trunk/include/clang/Parse/RAIIObjectsForParser.h Tue May  8 18:00:01 2018
@@ -25,7 +25,7 @@ namespace clang {
   // 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 @@ namespace clang {
     }
   };
 
-  /// \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 @@ namespace clang {
     }
   };
   
-  /// \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 @@ namespace clang {
     }
   };
   
-  /// \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 @@ namespace clang {
     }
   };
 
-  /// \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 @@ namespace clang {
     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;

Modified: cfe/trunk/include/clang/Rewrite/Core/RewriteBuffer.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Rewrite/Core/RewriteBuffer.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Rewrite/Core/RewriteBuffer.h (original)
+++ cfe/trunk/include/clang/Rewrite/Core/RewriteBuffer.h Tue May  8 18:00:01 2018
@@ -48,7 +48,7 @@ public:
     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

Modified: cfe/trunk/include/clang/Rewrite/Core/Rewriter.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Rewrite/Core/Rewriter.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Rewrite/Core/Rewriter.h (original)
+++ cfe/trunk/include/clang/Rewrite/Core/Rewriter.h Tue May  8 18:00:01 2018
@@ -37,15 +37,15 @@ class Rewriter {
 
 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 @@ public:
     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 @@ public:
   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 @@ public:
   /// 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.

Modified: cfe/trunk/include/clang/Rewrite/Frontend/FixItRewriter.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Rewrite/Frontend/FixItRewriter.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Rewrite/Frontend/FixItRewriter.h (original)
+++ cfe/trunk/include/clang/Rewrite/Frontend/FixItRewriter.h Tue May  8 18:00:01 2018
@@ -36,7 +36,7 @@ public:
   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 @@ public:
   /// 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 @@ public:
   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 @@ public:
   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);
 };
 

Modified: cfe/trunk/include/clang/Rewrite/Frontend/FrontendActions.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Rewrite/Frontend/FrontendActions.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Rewrite/Frontend/FrontendActions.h (original)
+++ cfe/trunk/include/clang/Rewrite/Frontend/FrontendActions.h Tue May  8 18:00:01 2018
@@ -46,7 +46,7 @@ public:
   ~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:

Modified: cfe/trunk/include/clang/Sema/AnalysisBasedWarnings.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/AnalysisBasedWarnings.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/AnalysisBasedWarnings.h (original)
+++ cfe/trunk/include/clang/Sema/AnalysisBasedWarnings.h Tue May  8 18:00:01 2018
@@ -54,34 +54,34 @@ private:
   /// \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;
 

Modified: cfe/trunk/include/clang/Sema/AttributeList.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/AttributeList.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/AttributeList.h (original)
+++ cfe/trunk/include/clang/Sema/AttributeList.h Tue May  8 18:00:01 2018
@@ -36,20 +36,20 @@ class Expr;
 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 @@ struct AvailabilityData {
 
 } // 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 @@ struct IdentifierLoc {
                                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 @@ private:
   /// 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 @@ public:
     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 @@ public:
   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

Modified: cfe/trunk/include/clang/Sema/CodeCompleteConsumer.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/CodeCompleteConsumer.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/CodeCompleteConsumer.h (original)
+++ cfe/trunk/include/clang/Sema/CodeCompleteConsumer.h Tue May  8 18:00:01 2018
@@ -47,102 +47,102 @@ class NestedNameSpecifier;
 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 @@ enum SimplifiedTypeClass {
   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 @@ unsigned getMacroUsagePriority(StringRef
                                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 @@ public:
     /// \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 @@ public:
     /// \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 @@ public:
     /// \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 @@ public:
 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 @@ public:
       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 @@ public:
   }
 };
 
-/// \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 @@ llvm::StringRef getCompletionKindString(
 /// 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 @@ public:
 
     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 @@ private:
   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 @@ public:
     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 @@ public:
     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 @@ template <> struct isPodLike<clang::Code
 
 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 @@ private:
   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 @@ public:
       : 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 @@ public:
   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 @@ public:
     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 @@ public:
     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 @@ public:
         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 @@ public:
         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 @@ public:
     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 @@ public:
                                            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 @@ inline bool operator>=(const CodeComplet
 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 @@ public:
     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 @@ public:
                        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 @@ public:
 
   /// \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 @@ public:
                                          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;

Modified: cfe/trunk/include/clang/Sema/DeclSpec.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/DeclSpec.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/DeclSpec.h (original)
+++ cfe/trunk/include/clang/Sema/DeclSpec.h Tue May  8 18:00:01 2018
@@ -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 @@ namespace clang {
   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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
   /// 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 @@ public:
     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 @@ public:
 
   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 @@ public:
   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 @@ public:
     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 @@ public:
            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 @@ public:
     return Attrs.getPool();
   }
 
-  /// \brief Concatenates two attribute lists.
+  /// Concatenates two attribute lists.
   ///
   /// The GCC attribute syntax allows for the following:
   ///
@@ -756,13 +756,13 @@ public:
   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 @@ private:
 
 };
 
-/// \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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
                              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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
   /// \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 @@ public:
     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 @@ public:
     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 @@ public:
   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 @@ struct DeclaratorChunk {
     /// 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 @@ struct DeclaratorChunk {
     /// 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 @@ struct DeclaratorChunk {
     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 @@ struct DeclaratorChunk {
       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 @@ struct DeclaratorChunk {
       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 @@ struct DeclaratorChunk {
     }
   }
 
-  /// \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 @@ struct DeclaratorChunk {
     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 @@ struct DeclaratorChunk {
     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 @@ struct DeclaratorChunk {
     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 @@ struct DeclaratorChunk {
                                      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 @@ struct DeclaratorChunk {
     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 @@ struct DeclaratorChunk {
     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 @@ public:
   }
 };
 
-/// \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 @@ enum class DeclaratorContext {
 };
 
 
-/// \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 @@ private:
   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 @@ private:
   /// 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 @@ private:
   /// Attrs - Attributes.
   ParsedAttributes Attrs;
 
-  /// \brief The asm label, if specified.
+  /// The asm label, if specified.
   Expr *AsmLabel;
 
 #ifndef _MSC_VER
@@ -1818,11 +1818,11 @@ private:
   };
 #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 @@ public:
   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 @@ public:
             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 @@ public:
       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 @@ public:
   }
   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 @@ public:
       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 @@ public:
     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 @@ public:
   /// 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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
   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 @@ struct FieldDeclarator {
         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 @@ enum class LambdaCaptureInitKind {
   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 @@ struct LambdaIntroducer {
   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,

Modified: cfe/trunk/include/clang/Sema/DelayedDiagnostic.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/DelayedDiagnostic.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/DelayedDiagnostic.h (original)
+++ cfe/trunk/include/clang/Sema/DelayedDiagnostic.h Tue May  8 18:00:01 2018
@@ -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 @@ private:
   };
 };
 
-/// \brief A collection of diagnostics which were delayed.
+/// A collection of diagnostics which were delayed.
 class DelayedDiagnosticPool {
   const DelayedDiagnosticPool *Parent;
   SmallVector<DelayedDiagnostic, 4> Diagnostics;

Modified: cfe/trunk/include/clang/Sema/ExternalSemaSource.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/ExternalSemaSource.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/ExternalSemaSource.h (original)
+++ cfe/trunk/include/clang/Sema/ExternalSemaSource.h Tue May  8 18:00:01 2018
@@ -39,7 +39,7 @@ class ValueDecl;
 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 @@ struct ExternalVTableUse {
   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 @@ public:
 
   ~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 @@ public:
   /// 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 @@ public:
   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 @@ public:
   /// \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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
   /// 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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
                  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 @@ public:
     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

Modified: cfe/trunk/include/clang/Sema/IdentifierResolver.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/IdentifierResolver.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/IdentifierResolver.h (original)
+++ cfe/trunk/include/clang/Sema/IdentifierResolver.h Tue May  8 18:00:01 2018
@@ -54,7 +54,7 @@ class IdentifierResolver {
     /// 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 @@ public:
   /// 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.

Modified: cfe/trunk/include/clang/Sema/Initialization.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Initialization.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/Initialization.h (original)
+++ cfe/trunk/include/clang/Sema/Initialization.h Tue May  8 18:00:01 2018
@@ -45,49 +45,49 @@ class CXXConstructorDecl;
 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 @@ public:
     /// 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 @@ public:
   };
   
 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 @@ private:
 
   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 @@ private:
     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 @@ private:
   }
   
 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 @@ public:
     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 @@ public:
     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 @@ public:
                              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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
             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 @@ public:
     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 @@ public:
     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 @@ private:
   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 @@ public:
   };
   
 private:
-  /// \brief The context of the initialization.
+  /// The context of the initialization.
   enum InitContext {
     /// Normal context
     IC_Normal,
@@ -555,13 +555,13 @@ private:
     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 @@ private:
   }
   
 public:
-  /// \brief Create a direct initialization.
+  /// Create a direct initialization.
   static InitializationKind CreateDirect(SourceLocation InitLoc,
                                          SourceLocation LParenLoc,
                                          SourceLocation RParenLoc) {
@@ -593,14 +593,14 @@ public:
                               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 @@ public:
                               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 @@ public:
                               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 @@ public:
                               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 @@ public:
                               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 @@ public:
     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 @@ public:
 
   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 @@ public:
     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 @@ public:
   }
 };
 
-/// \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 @@ public:
     };
 
     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 @@ public:
       /// 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 @@ public:
   };
   
 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 @@ public:
   }
 
 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 @@ public:
 
   ~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 @@ public:
                      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 @@ public:
                 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 @@ public:
 
   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 @@ public:
                          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 @@ public:
                                         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 @@ public:
   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 @@ public:
   /// \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 @@ public:
                                         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 @@ public:
            "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;
 };

Modified: cfe/trunk/include/clang/Sema/Lookup.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Lookup.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/Lookup.h (original)
+++ cfe/trunk/include/clang/Sema/Lookup.h Tue May  8 18:00:01 2018
@@ -37,7 +37,7 @@ namespace clang {
 
 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 CXXBasePaths;
 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 @@ public:
     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 @@ public:
     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 @@ public:
            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 @@ public:
   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 @@ public:
     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 @@ private:
   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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ private:
   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 @@ private:
 /// 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 @@ public:
   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.

Modified: cfe/trunk/include/clang/Sema/LoopHint.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/LoopHint.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/LoopHint.h (original)
+++ cfe/trunk/include/clang/Sema/LoopHint.h Tue May  8 18:00:01 2018
@@ -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;

Modified: cfe/trunk/include/clang/Sema/MultiplexExternalSemaSource.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/MultiplexExternalSemaSource.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/MultiplexExternalSemaSource.h (original)
+++ cfe/trunk/include/clang/Sema/MultiplexExternalSemaSource.h Tue May  8 18:00:01 2018
@@ -33,7 +33,7 @@ namespace clang {
   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 @@ private:
 
 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 @@ public:
 
   ~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 @@ public:
   // 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 @@ public:
                            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 @@ public:
   /// \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 @@ public:
   // 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 @@ public:
   /// 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 @@ public:
       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 @@ public:
   /// \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 @@ public:
   /// 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 @@ public:
   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 @@ public:
   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 @@ public:
   /// 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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
                              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.
   ///

Modified: cfe/trunk/include/clang/Sema/ObjCMethodList.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/ObjCMethodList.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/ObjCMethodList.h (original)
+++ cfe/trunk/include/clang/Sema/ObjCMethodList.h Tue May  8 18:00:01 2018
@@ -21,13 +21,13 @@ namespace clang {
 
 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() { }

Modified: cfe/trunk/include/clang/Sema/Overload.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Overload.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/Overload.h (original)
+++ cfe/trunk/include/clang/Sema/Overload.h Tue May  8 18:00:01 2018
@@ -244,12 +244,12 @@ class Sema;
     /// 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 @@ class Sema;
     /// 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 @@ class Sema;
   /// 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 @@ class Sema;
     /// 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 @@ class Sema;
     /// 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 @@ class Sema;
       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 @@ class Sema;
       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 @@ class Sema;
     /// 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 @@ class Sema;
     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 @@ class Sema;
     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 @@ class Sema;
       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) {

Modified: cfe/trunk/include/clang/Sema/Ownership.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Ownership.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/Ownership.h (original)
+++ cfe/trunk/include/clang/Sema/Ownership.h Tue May  8 18:00:01 2018
@@ -39,7 +39,7 @@ class Stmt;
 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 @@ class TemplateParameterList;
 
     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 @@ class TemplateParameterList;
       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.
     ///

Modified: cfe/trunk/include/clang/Sema/ParsedTemplate.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/ParsedTemplate.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/ParsedTemplate.h (original)
+++ cfe/trunk/include/clang/Sema/ParsedTemplate.h Tue May  8 18:00:01 2018
@@ -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 @@ namespace clang {
         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 @@ namespace clang {
       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 @@ namespace clang {
       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 @@ namespace clang {
   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 @@ namespace clang {
       : 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 @@ namespace clang {
     /// 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,

Modified: cfe/trunk/include/clang/Sema/Scope.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Scope.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/Scope.h (original)
+++ cfe/trunk/include/clang/Sema/Scope.h Tue May  8 18:00:01 2018
@@ -42,74 +42,74 @@ public:
   /// 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 @@ private:
   /// 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 @@ private:
   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 @@ public:
     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 @@ public:
     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 @@ public:
   /// 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);
 

Modified: cfe/trunk/include/clang/Sema/ScopeInfo.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/ScopeInfo.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/ScopeInfo.h (original)
+++ cfe/trunk/include/clang/Sema/ScopeInfo.h Tue May  8 18:00:01 2018
@@ -61,15 +61,15 @@ class VarDecl;
 
 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 @@ public:
       : 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 @@ protected:
   };
   
 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 @@ public:
   /// 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 @@ public:
   /// 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 @@ public:
     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 @@ class Capture {
   /// 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 @@ public:
     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 @@ public:
   /// 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 @@ public:
   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 @@ public:
   }
 };
 
-/// \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 @@ public:
   }
 };
 
-/// \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 @@ public:
 
   ~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 @@ public:
 
 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 @@ public:
   /// 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 @@ public:
   ///  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 @@ public:
     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 @@ public:
     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 @@ public:
     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 

Modified: cfe/trunk/include/clang/Sema/Sema.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Sema.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/Sema.h (original)
+++ cfe/trunk/include/clang/Sema/Sema.h Tue May  8 18:00:01 2018
@@ -277,10 +277,10 @@ class Sema {
   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 @@ public:
   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 @@ public:
 
   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 @@ public:
   // 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 @@ public:
   /// 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 @@ public:
   };
   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 @@ public:
   /// 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 @@ public:
 
   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 @@ public:
 
   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 @@ public:
   /// 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 @@ public:
                      &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 @@ public:
       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 @@ public:
   /// 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 @@ public:
     }
   };
 
-  /// \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 @@ public:
   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 @@ public:
   /// 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 @@ public:
   /// 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 @@ public:
     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 @@ public:
         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 @@ public:
   /// 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 @@ public:
     {}
   };
 
-  /// \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 @@ public:
 
   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 @@ public:
   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 @@ public:
        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 @@ public:
   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 @@ public:
 
   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 @@ public:
     }
   };
 
-  /// \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 @@ public:
   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 @@ public:
 
   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 @@ public:
   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 @@ public:
 
   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 @@ public:
   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 @@ public:
 
   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 @@ private:
   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 @@ public:
                                       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 @@ public:
     }
   };
 
-  /// \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 @@ public:
     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 @@ public:
   /// 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 @@ public:
   /// 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 @@ public:
                               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 @@ public:
                                  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 @@ public:
   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 @@ public:
     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 @@ public:
   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 @@ public:
 
   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 @@ public:
 
   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 @@ public:
   /// 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 @@ public:
                                 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 @@ public:
   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 @@ public:
   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 @@ public:
                                 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 @@ public:
       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 @@ public:
   /// 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 @@ public:
     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 @@ public:
     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 @@ private:
     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 @@ private:
 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 @@ public:
                                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 @@ public:
                                      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 @@ public:
   /// 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 @@ private:
                                            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 @@ public:
                                      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 @@ public:
   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 @@ public:
 
   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 @@ public:
   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 @@ public:
   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 @@ public:
     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 @@ public:
                           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 @@ public:
   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 @@ public:
                                  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 @@ public:
 
   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 @@ private:
   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 @@ public:
   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 @@ public:
   /// 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 @@ public:
         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 @@ public:
     }
   };
 
-  /// \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 @@ public:
   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 @@ public:
                                    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 @@ public:
 
   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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
   /// \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 @@ public:
   /// 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 @@ public:
                             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 @@ public:
   //// 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 @@ public:
     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 @@ public:
     ~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 @@ public:
       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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
   /// \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 @@ public:
                                        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 @@ public:
                                    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 @@ public:
                                  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 @@ public:
                                    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 @@ public:
   /// 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 @@ public:
   /// 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 @@ public:
                                        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 @@ public:
                         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 @@ public:
                                                 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 @@ public:
                                           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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
                             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 @@ public:
 
   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 @@ public:
                              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 @@ public:
                       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 @@ public:
                                             &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 @@ public:
                            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 @@ public:
   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 @@ public:
     /// \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 @@ public:
     /// \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 @@ public:
 
   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 @@ public:
                     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 @@ public:
   /// 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 @@ public:
                                         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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
                                        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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
   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 @@ public:
   /// \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 @@ public:
   /// \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 @@ public:
   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 @@ public:
                                        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 @@ public:
   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 @@ public:
   /// 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 @@ public:
   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 @@ public:
   /// 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 @@ public:
                           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 @@ public:
   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 @@ public:
   /// 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 @@ public:
       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 @@ public:
       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 @@ public:
       : 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 @@ public:
   /// 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 @@ public:
   // 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 @@ public:
   // 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 @@ public:
   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 @@ public:
   /// 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 @@ public:
 
   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 @@ public:
     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 @@ public:
   /// 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 @@ public:
                           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 @@ public:
                           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 @@ public:
                           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 @@ public:
                           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 @@ public:
                           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 @@ public:
                           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 @@ public:
                           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 @@ public:
                           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 @@ public:
 
   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 @@ public:
   /// 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 @@ public:
     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 @@ public:
           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 @@ public:
     }
   };
 
-  /// \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 @@ public:
   /// 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 @@ public:
     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 @@ public:
   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 @@ public:
 
   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 @@ public:
 
   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 @@ public:
       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 @@ public:
                     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 @@ public:
   /// 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 @@ public:
     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 @@ private:
   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 @@ private:
                                      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 @@ public:
   /// \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 @@ public:
   /// 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 @@ public:
       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 @@ public:
                                           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 @@ public:
   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 @@ public:
                                          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 @@ public:
                                      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 @@ public:
       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 @@ public:
 
   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 @@ public:
       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 @@ public:
       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 @@ public:
                                           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 @@ public:
       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 @@ public:
                                  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 &paramType);
@@ -9703,7 +9703,7 @@ public:
   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 @@ public:
 
   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 @@ public:
                                  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 @@ public:
   /// 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 @@ public:
   /// 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 @@ public:
 
   /// \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 @@ private:
   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 @@ private:
                                   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 @@ private:
   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 @@ public:
   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 @@ private:
 
   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 @@ public:
   /// 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 @@ public:
     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 @@ private:
     }
   };
 
-  /// \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 @@ private:
 
     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 @@ public:
           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 @@ DeductionFailureInfo
 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;
 };
 

Modified: cfe/trunk/include/clang/Sema/SemaConsumer.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/SemaConsumer.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/SemaConsumer.h (original)
+++ cfe/trunk/include/clang/Sema/SemaConsumer.h Tue May  8 18:00:01 2018
@@ -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 @@ namespace clang {
       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

Modified: cfe/trunk/include/clang/Sema/SemaInternal.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/SemaInternal.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/SemaInternal.h (original)
+++ cfe/trunk/include/clang/Sema/SemaInternal.h Tue May  8 18:00:01 2018
@@ -139,13 +139,13 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ private:
 
     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 @@ private:
     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 @@ private:
   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

Modified: cfe/trunk/include/clang/Sema/SemaLambda.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/SemaLambda.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/SemaLambda.h (original)
+++ cfe/trunk/include/clang/Sema/SemaLambda.h Tue May  8 18:00:01 2018
@@ -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 FunctionScopeInfo;
 }
 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

Modified: cfe/trunk/include/clang/Sema/Template.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Template.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/Template.h (original)
+++ cfe/trunk/include/clang/Sema/Template.h Tue May  8 18:00:01 2018
@@ -43,7 +43,7 @@ class TypedefNameDecl;
 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 @@ class VarDecl;
   /// 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 @@ class VarDecl;
       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 @@ class VarDecl;
         = 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 @@ class VarDecl;
       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 @@ class VarDecl;
     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 @@ class VarDecl;
                             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 @@ class VarDecl;
         : 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 @@ class VarDecl;
   /// 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 @@ class VarDecl;
         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 @@ class VarDecl;
     /// 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 @@ class VarDecl;
     
     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 @@ class VarDecl;
       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 @@ class VarDecl;
       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 @@ class VarDecl;
       }
     }
 
-    /// \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 @@ class VarDecl;
     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 @@ class VarDecl;
                                      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 @@ class VarDecl;
       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 @@ class VarDecl;
     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 @@ class VarDecl;
     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 @@ class VarDecl;
       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.

Modified: cfe/trunk/include/clang/Sema/TemplateDeduction.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/TemplateDeduction.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/TemplateDeduction.h (original)
+++ cfe/trunk/include/clang/Sema/TemplateDeduction.h Tue May  8 18:00:01 2018
@@ -34,24 +34,24 @@ class Sema;
 
 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 @@ public:
   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 @@ public:
     clearSFINAEDiagnostic();
   }
 
-  /// \brief Discard any SFINAE diagnostics.
+  /// Discard any SFINAE diagnostics.
   void clearSFINAEDiagnostic() {
     SuppressedDiagnostics.clear();
     HasSFINAEDiagnostic = false;
@@ -100,18 +100,18 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
   ///   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 @@ public:
   ///   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 @@ public:
   /// 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 @@ struct DeductionFailureInfo {
   /// 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 @@ struct DeductionFailureInfo {
 /// 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 @@ public:
 
   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 @@ public:
   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();

Modified: cfe/trunk/include/clang/Sema/TemplateInstCallback.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/TemplateInstCallback.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/TemplateInstCallback.h (original)
+++ cfe/trunk/include/clang/Sema/TemplateInstCallback.h Tue May  8 18:00:01 2018
@@ -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;
 };

Modified: cfe/trunk/include/clang/Sema/TypoCorrection.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/TypoCorrection.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/TypoCorrection.h (original)
+++ cfe/trunk/include/clang/Sema/TypoCorrection.h Tue May  8 18:00:01 2018
@@ -39,7 +39,7 @@ class MemberExpr;
 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 @@ public:
 
   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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
 
   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 @@ private:
   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 @@ public:
 
   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 @@ public:
   /// 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 @@ protected:
   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 @@ public:
   }
 };
 
-// @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 @@ private:
   MemberExpr *MemberFn;
 };
 
-// @brief Callback class that effectively disabled typo correction
+// Callback class that effectively disabled typo correction
 class NoTypoCorrectionCCC : public CorrectionCandidateCallback {
 public:
   NoTypoCorrectionCCC() {

Modified: cfe/trunk/include/clang/Sema/Weak.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Weak.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/Weak.h (original)
+++ cfe/trunk/include/clang/Sema/Weak.h Tue May  8 18:00:01 2018
@@ -21,7 +21,7 @@ namespace clang {
 
 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

Modified: cfe/trunk/include/clang/Serialization/ASTBitCodes.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Serialization/ASTBitCodes.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Serialization/ASTBitCodes.h (original)
+++ cfe/trunk/include/clang/Serialization/ASTBitCodes.h Tue May  8 18:00:01 2018
@@ -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 @@ namespace serialization {
     /// 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 @@ namespace serialization {
     /// 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 @@ namespace serialization {
     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 @@ namespace serialization {
     /// 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 @@ namespace serialization {
       }
     };
 
-    /// \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 @@ namespace serialization {
       }
     };
 
-    /// \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 @@ namespace serialization {
       }
     };
 
-    /// \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 @@ namespace serialization {
       }
     };
 
-    /// \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 @@ namespace serialization {
       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 @@ namespace serialization {
       /// 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 @@ namespace serialization {
       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 @@ namespace serialization {
       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 @@ namespace serialization {
       /// 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 @@ namespace serialization {
       /// 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 @@ namespace serialization {
       /// 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 @@ namespace serialization {
       /// 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 @@ namespace serialization {
       /// 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 @@ namespace serialization {
       /// 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 @@ namespace serialization {
       /// 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 @@ namespace serialization {
 
       // 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 @@ namespace serialization {
     ///
     /// @{
 
-    /// \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 @@ namespace serialization {
     /// 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 @@ namespace serialization {
       /// 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 @@ namespace serialization {
       /// 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 @@ namespace serialization {
     /// 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 @@ namespace serialization {
       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 @@ namespace serialization {
       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 @@ namespace serialization {
       }
     };
 
-    /// \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 @@ namespace serialization {
       }
     };
 
-    /// \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

Modified: cfe/trunk/include/clang/Serialization/ASTDeserializationListener.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Serialization/ASTDeserializationListener.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Serialization/ASTDeserializationListener.h (original)
+++ cfe/trunk/include/clang/Serialization/ASTDeserializationListener.h Tue May  8 18:00:01 2018
@@ -32,28 +32,28 @@ class ASTDeserializationListener {
 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) {}
 };

Modified: cfe/trunk/include/clang/Serialization/ASTReader.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Serialization/ASTReader.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Serialization/ASTReader.h (original)
+++ cfe/trunk/include/clang/Serialization/ASTReader.h Tue May  8 18:00:01 2018
@@ -117,7 +117,7 @@ class TypeSourceInfo;
 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 @@ class ASTReaderListener {
 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 @@ public:
   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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
     return false;
   }
 
-  /// \brief Receives __COUNTER__ value.
+  /// Receives __COUNTER__ value.
   virtual void ReadCounter(const serialization::ModuleFile &M,
                            unsigned Value) {}
 
@@ -207,15 +207,15 @@ public:
   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 @@ public:
     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 @@ public:
                  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 @@ public:
          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 @@ private:
   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 @@ namespace reader {
 
 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 @@ class ASTReader
     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 @@ public:
   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 @@ public:
   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 @@ private:
   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 @@ private:
   /// 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 @@ private:
   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 @@ private:
   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 @@ private:
   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 @@ private:
         : 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 @@ private:
         : 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 @@ private:
   };
   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 @@ private:
                       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 @@ private:
   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 @@ private:
   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 @@ private:
   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 @@ private:
   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 @@ private:
   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 @@ private:
   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 @@ private:
   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 @@ private:
   /// 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 @@ private:
   //@}
 
   /// \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 @@ private:
   //@}
 
   /// \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 @@ private:
   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 @@ public:
   };
 
 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 @@ private:
 
   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 @@ private:
   /// 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 @@ private:
   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 @@ private:
     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 @@ private:
   /// 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 @@ private:
     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 @@ private:
   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 @@ private:
   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 @@ private:
     ~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 @@ private:
     ~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 @@ private:
 
   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 @@ private:
     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 @@ public:
   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 @@ public:
     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 @@ public:
         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 @@ private:
   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 @@ private:
   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 @@ private:
     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 @@ private:
     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 @@ private:
              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 @@ public:
   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 @@ public:
                         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 @@ public:
                          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 @@ public:
     }
   };
 
-  /// \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 @@ public:
                           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 @@ public:
                                   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 @@ public:
     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 @@ public:
   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 @@ public:
     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 @@ public:
     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 @@ public:
   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 @@ public:
     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 @@ public:
   /// 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 @@ public:
                            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 @@ public:
   /// 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 @@ public:
   /// 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 @@ public:
       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 @@ public:
                                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 @@ public:
 
   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 @@ public:
     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 @@ public:
                                                     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 @@ public:
     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 @@ public:
     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 @@ public:
   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 @@ public:
   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 @@ public:
   /// 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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
     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)

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

Modified: cfe/trunk/include/clang/Serialization/ContinuousRangeMap.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Serialization/ContinuousRangeMap.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Serialization/ContinuousRangeMap.h (original)
+++ cfe/trunk/include/clang/Serialization/ContinuousRangeMap.h Tue May  8 18:00:01 2018
@@ -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 @@ public:
   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;

Modified: cfe/trunk/include/clang/Serialization/GlobalModuleIndex.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Serialization/GlobalModuleIndex.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Serialization/GlobalModuleIndex.h (original)
+++ cfe/trunk/include/clang/Serialization/GlobalModuleIndex.h Tue May  8 18:00:01 2018
@@ -47,7 +47,7 @@ using llvm::SmallVectorImpl;
 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 @@ using serialization::ModuleFile;
 /// 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 @@ class GlobalModuleIndex {
 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 @@ public:
   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 @@ public:
   /// \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

Modified: cfe/trunk/include/clang/Serialization/Module.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Serialization/Module.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Serialization/Module.h (original)
+++ cfe/trunk/include/clang/Serialization/Module.h Tue May  8 18:00:01 2018
@@ -39,7 +39,7 @@ class FileEntry;
 
 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 @@ enum ModuleKind {
   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 @@ public:
   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 @@ public:
 
   // === 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 @@ public:
   /// 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 @@ public:
 
   // === 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 @@ public:
 
   // === 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 @@ public:
 
   // === 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 @@ public:
   /// 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 @@ public:
   /// 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();
 };
 

Modified: cfe/trunk/include/clang/Serialization/ModuleManager.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Serialization/ModuleManager.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/Serialization/ModuleManager.h (original)
+++ cfe/trunk/include/clang/Serialization/ModuleManager.h Tue May  8 18:00:01 2018
@@ -45,45 +45,45 @@ class PCHContainerReader;
 
 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 @@ class ModuleManager {
   /// 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 @@ class ModuleManager {
       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 @@ public:
                          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 @@ public:
                             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 @@ public:
   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 @@ public:
                         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; }

Modified: cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h (original)
+++ cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h Tue May  8 18:00:01 2018
@@ -76,7 +76,7 @@ enum AnalysisInliningMode {
 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 @@ enum CXXInlineableMemberKind {
   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 @@ public:
   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 @@ public:
   /// 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 @@ public:
   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 @@ public:
   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 @@ public:
 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 @@ public:
                               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

Modified: cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h (original)
+++ cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h Tue May  8 18:00:01 2018
@@ -173,7 +173,7 @@ public:
   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 @@ public:
   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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
       : 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 @@ public:
     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 @@ public:
 
   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 @@ public:
 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);

Modified: cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h (original)
+++ cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h Tue May  8 18:00:01 2018
@@ -38,7 +38,7 @@ class ExplodedNode;
 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 @@ public:
   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 @@ public:
   /// 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 @@ public:
   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 @@ public:
 
   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 @@ private:
 };
 
 /// \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 @@ public:
   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 @@ public:
                                                   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

Modified: cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h (original)
+++ cfe/trunk/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h Tue May  8 18:00:01 2018
@@ -72,13 +72,13 @@ public:
 
     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 @@ public:
 
   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 @@ private:
   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 @@ public:
   }
 };
 
-/// \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 @@ class StackHintGenerator {
 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 @@ public:
   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 @@ class PathDiagnostic : public llvm::Fold
   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 @@ public:
     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 @@ public:
     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;
   }

Modified: cfe/trunk/include/clang/StaticAnalyzer/Core/Checker.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/Checker.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/StaticAnalyzer/Core/Checker.h (original)
+++ cfe/trunk/include/clang/StaticAnalyzer/Core/Checker.h Tue May  8 18:00:01 2018
@@ -548,7 +548,7 @@ public:
   }
 };
 
-/// \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 @@ struct ImplicitNullDerefEvent {
   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.

Modified: cfe/trunk/include/clang/StaticAnalyzer/Core/CheckerManager.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/CheckerManager.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/StaticAnalyzer/Core/CheckerManager.h (original)
+++ cfe/trunk/include/clang/StaticAnalyzer/Core/CheckerManager.h Tue May  8 18:00:01 2018
@@ -71,7 +71,7 @@ public:
   }
 };
 
-/// \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 @@ public:
 // registerChecker
 //===----------------------------------------------------------------------===//
 
-  /// \brief Used to register checkers.
+  /// Used to register checkers.
   ///
   /// \returns a pointer to the checker object.
   template <typename CHECKER>
@@ -180,11 +180,11 @@ public:
 // 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 @@ public:
 // 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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
                               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 @@ public:
                               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 @@ public:
                             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 @@ public:
                               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 @@ public:
   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 @@ public:
                                  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 @@ public:
                               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 @@ public:
                               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.

Modified: cfe/trunk/include/clang/StaticAnalyzer/Core/IssueHash.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/IssueHash.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/StaticAnalyzer/Core/IssueHash.h (original)
+++ cfe/trunk/include/clang/StaticAnalyzer/Core/IssueHash.h Tue May  8 18:00:01 2018
@@ -17,7 +17,7 @@ class SourceManager;
 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::SmallString<32> GetIssueHash(const
                                    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,

Modified: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h (original)
+++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h Tue May  8 18:00:01 2018
@@ -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 @@ public:
   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 @@ public:
     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.

Modified: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h (original)
+++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h Tue May  8 18:00:01 2018
@@ -25,7 +25,7 @@ class StackFrameContext;
 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;

Modified: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h (original)
+++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h Tue May  8 18:00:01 2018
@@ -85,7 +85,7 @@ class CallDescription {
 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 @@ public:
   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 @@ public:
 };
 
 /// \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 @@ public:
 
   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 @@ public:
   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 @@ protected:
   /// 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 @@ public:
   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 @@ public:
     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 @@ public:
     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 @@ public:
   // 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 @@ public:
     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 @@ public:
     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 @@ public:
   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 @@ public:
   }
 };
 
-/// \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 @@ public:
   }
 };
 
-/// \brief Represents a call to a block.
+/// Represents a call to a block.
 ///
 /// Example: <tt>^{ /* ... */ }()</tt>
 class BlockCall : public CallEvent {
@@ -537,7 +537,7 @@ public:
     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 @@ public:
     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 @@ public:
   }
 };
 
-/// \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 @@ protected:
          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 @@ public:
   }
 };
 
-/// \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 @@ public:
   }
 };
 
-/// \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 @@ public:
   }
 };
 
-/// \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 @@ public:
 
   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 @@ public:
   }
 };
 
-/// \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 @@ public:
     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 @@ public:
   }
 };
 
-/// \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 @@ public:
   }
 };
 
-/// \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 @@ enum ObjCMessageKind {
   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 @@ public:
 
   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 @@ public:
     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 @@ public:
   }
 };
 
-/// \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

Modified: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h (original)
+++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h Tue May  8 18:00:01 2018
@@ -111,17 +111,17 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
     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 @@ public:
                        (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 @@ public:
     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 @@ public:
       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 @@ public:
   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

Modified: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h?rev=331834&r1=331833&r2=331834&view=diff
==============================================================================
--- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h (original)
+++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h Tue May  8 18:00:01 2018
@@ -145,7 +145,7 @@ public:
     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




More information about the cfe-commits mailing list