Remove \brief commands from doxygen comments.

This is similar to the LLVM change https://reviews.llvm.org/D46290.

We've been running doxygen with the autobrief option for a couple of
years now. This makes the \brief markers into our comments
redundant. Since they are a visual distraction and we don't want to
encourage more \brief markers in new code either, this patch removes
them all.

Patch produced by

for i in $(git grep -l '\@brief'); do perl -pi -e 's/\@brief //g' $i & done
for i in $(git grep -l '\\brief'); do perl -pi -e 's/\\brief //g' $i & done

Differential Revision: https://reviews.llvm.org/D46320

llvm-svn: 331834
diff --git a/clang/lib/Sema/SemaCodeComplete.cpp b/clang/lib/Sema/SemaCodeComplete.cpp
index 50ff17a..4ed9d49 100644
--- a/clang/lib/Sema/SemaCodeComplete.cpp
+++ b/clang/lib/Sema/SemaCodeComplete.cpp
@@ -40,10 +40,10 @@
 using namespace sema;
 
 namespace {
-  /// \brief A container of code-completion results.
+  /// A container of code-completion results.
   class ResultBuilder {
   public:
-    /// \brief The type of a name-lookup filter, which can be provided to the
+    /// The type of a name-lookup filter, which can be provided to the
     /// name-lookup routines to specify which declarations should be included in
     /// the result set (when it returns true) and which declarations should be
     /// filtered out (returns false).
@@ -52,27 +52,27 @@
     typedef CodeCompletionResult Result;
     
   private:
-    /// \brief The actual results we have found.
+    /// The actual results we have found.
     std::vector<Result> Results;
     
-    /// \brief A record of all of the declarations we have found and placed
+    /// A record of all of the declarations we have found and placed
     /// into the result set, used to ensure that no declaration ever gets into
     /// the result set twice.
     llvm::SmallPtrSet<const Decl*, 16> AllDeclsFound;
     
     typedef std::pair<const NamedDecl *, unsigned> DeclIndexPair;
 
-    /// \brief An entry in the shadow map, which is optimized to store
+    /// An entry in the shadow map, which is optimized to store
     /// a single (declaration, index) mapping (the common case) but
     /// can also store a list of (declaration, index) mappings.
     class ShadowMapEntry {
       typedef SmallVector<DeclIndexPair, 4> DeclIndexPairVector;
 
-      /// \brief Contains either the solitary NamedDecl * or a vector
+      /// Contains either the solitary NamedDecl * or a vector
       /// of (declaration, index) pairs.
       llvm::PointerUnion<const NamedDecl *, DeclIndexPairVector*> DeclOrVector;
 
-      /// \brief When the entry contains a single declaration, this is
+      /// When the entry contains a single declaration, this is
       /// the index associated with that entry.
       unsigned SingleDeclIndex;
 
@@ -115,53 +115,53 @@
       iterator end() const;
     };
 
-    /// \brief A mapping from declaration names to the declarations that have
+    /// A mapping from declaration names to the declarations that have
     /// this name within a particular scope and their index within the list of
     /// results.
     typedef llvm::DenseMap<DeclarationName, ShadowMapEntry> ShadowMap;
     
-    /// \brief The semantic analysis object for which results are being 
+    /// The semantic analysis object for which results are being 
     /// produced.
     Sema &SemaRef;
 
-    /// \brief The allocator used to allocate new code-completion strings.
+    /// The allocator used to allocate new code-completion strings.
     CodeCompletionAllocator &Allocator;
 
     CodeCompletionTUInfo &CCTUInfo;
     
-    /// \brief If non-NULL, a filter function used to remove any code-completion
+    /// If non-NULL, a filter function used to remove any code-completion
     /// results that are not desirable.
     LookupFilter Filter;
 
-    /// \brief Whether we should allow declarations as
+    /// Whether we should allow declarations as
     /// nested-name-specifiers that would otherwise be filtered out.
     bool AllowNestedNameSpecifiers;
 
-    /// \brief If set, the type that we would prefer our resulting value
+    /// If set, the type that we would prefer our resulting value
     /// declarations to have.
     ///
     /// Closely matching the preferred type gives a boost to a result's 
     /// priority.
     CanQualType PreferredType;
     
-    /// \brief A list of shadow maps, which is used to model name hiding at
+    /// A list of shadow maps, which is used to model name hiding at
     /// different levels of, e.g., the inheritance hierarchy.
     std::list<ShadowMap> ShadowMaps;
     
-    /// \brief If we're potentially referring to a C++ member function, the set
+    /// If we're potentially referring to a C++ member function, the set
     /// of qualifiers applied to the object type.
     Qualifiers ObjectTypeQualifiers;
     
-    /// \brief Whether the \p ObjectTypeQualifiers field is active.
+    /// Whether the \p ObjectTypeQualifiers field is active.
     bool HasObjectTypeQualifiers;
     
-    /// \brief The selector that we prefer.
+    /// The selector that we prefer.
     Selector PreferredSelector;
     
-    /// \brief The completion context in which we are gathering results.
+    /// The completion context in which we are gathering results.
     CodeCompletionContext CompletionContext;
     
-    /// \brief If we are in an instance method definition, the \@implementation
+    /// If we are in an instance method definition, the \@implementation
     /// object.
     ObjCImplementationDecl *ObjCImplementation;
 
@@ -199,17 +199,17 @@
       }
     }
 
-    /// \brief Determine the priority for a reference to the given declaration.
+    /// Determine the priority for a reference to the given declaration.
     unsigned getBasePriority(const NamedDecl *D);
 
-    /// \brief Whether we should include code patterns in the completion
+    /// Whether we should include code patterns in the completion
     /// results.
     bool includeCodePatterns() const {
       return SemaRef.CodeCompleter && 
              SemaRef.CodeCompleter->includeCodePatterns();
     }
     
-    /// \brief Set the filter used for code-completion results.
+    /// Set the filter used for code-completion results.
     void setFilter(LookupFilter Filter) {
       this->Filter = Filter;
     }
@@ -218,12 +218,12 @@
     unsigned size() const { return Results.size(); }
     bool empty() const { return Results.empty(); }
     
-    /// \brief Specify the preferred type.
+    /// Specify the preferred type.
     void setPreferredType(QualType T) { 
       PreferredType = SemaRef.Context.getCanonicalType(T); 
     }
     
-    /// \brief Set the cv-qualifiers on the object type, for us in filtering
+    /// Set the cv-qualifiers on the object type, for us in filtering
     /// calls to member functions.
     ///
     /// When there are qualifiers in this set, they will be used to filter
@@ -235,7 +235,7 @@
       HasObjectTypeQualifiers = true;
     }
     
-    /// \brief Set the preferred selector.
+    /// Set the preferred selector.
     ///
     /// When an Objective-C method declaration result is added, and that
     /// method's selector matches this preferred selector, we give that method
@@ -244,27 +244,27 @@
       PreferredSelector = Sel;
     }
         
-    /// \brief Retrieve the code-completion context for which results are
+    /// Retrieve the code-completion context for which results are
     /// being collected.
     const CodeCompletionContext &getCompletionContext() const { 
       return CompletionContext; 
     }
     
-    /// \brief Specify whether nested-name-specifiers are allowed.
+    /// Specify whether nested-name-specifiers are allowed.
     void allowNestedNameSpecifiers(bool Allow = true) {
       AllowNestedNameSpecifiers = Allow;
     }
 
-    /// \brief Return the semantic analysis object for which we are collecting
+    /// Return the semantic analysis object for which we are collecting
     /// code completion results.
     Sema &getSema() const { return SemaRef; }
     
-    /// \brief Retrieve the allocator used to allocate code completion strings.
+    /// Retrieve the allocator used to allocate code completion strings.
     CodeCompletionAllocator &getAllocator() const { return Allocator; }
 
     CodeCompletionTUInfo &getCodeCompletionTUInfo() const { return CCTUInfo; }
     
-    /// \brief Determine whether the given declaration is at all interesting
+    /// Determine whether the given declaration is at all interesting
     /// as a code-completion result.
     ///
     /// \param ND the declaration that we are inspecting.
@@ -274,7 +274,7 @@
     bool isInterestingDecl(const NamedDecl *ND,
                            bool &AsNestedNameSpecifier) const;
     
-    /// \brief Check whether the result is hidden by the Hiding declaration.
+    /// Check whether the result is hidden by the Hiding declaration.
     ///
     /// \returns true if the result is hidden and cannot be found, false if
     /// the hidden result could still be found. When false, \p R may be
@@ -283,7 +283,7 @@
     bool CheckHiddenResult(Result &R, DeclContext *CurContext,
                            const NamedDecl *Hiding);
     
-    /// \brief Add a new result to this result set (if it isn't already in one
+    /// Add a new result to this result set (if it isn't already in one
     /// of the shadow maps), or replace an existing result (for, e.g., a 
     /// redeclaration).
     ///
@@ -292,7 +292,7 @@
     /// \param CurContext the context in which this result will be named.
     void MaybeAddResult(Result R, DeclContext *CurContext = nullptr);
 
-    /// \brief Add a new result to this result set, where we already know
+    /// Add a new result to this result set, where we already know
     /// the hiding declaration (if any).
     ///
     /// \param R the result to add (if it is unique).
@@ -306,19 +306,19 @@
     void AddResult(Result R, DeclContext *CurContext, NamedDecl *Hiding,
                    bool InBaseClass);
     
-    /// \brief Add a new non-declaration result to this result set.
+    /// Add a new non-declaration result to this result set.
     void AddResult(Result R);
 
-    /// \brief Enter into a new scope.
+    /// Enter into a new scope.
     void EnterNewScope();
     
-    /// \brief Exit from the current scope.
+    /// Exit from the current scope.
     void ExitScope();
     
-    /// \brief Ignore this declaration, if it is seen again.
+    /// Ignore this declaration, if it is seen again.
     void Ignore(const Decl *D) { AllDeclsFound.insert(D->getCanonicalDecl()); }
 
-    /// \brief Add a visited context.
+    /// Add a visited context.
     void addVisitedContext(DeclContext *Ctx) {
       CompletionContext.addVisitedContext(Ctx);
     }
@@ -439,7 +439,7 @@
   return iterator(DeclOrVector.get<DeclIndexPairVector *>()->end());
 }
 
-/// \brief Compute the qualification required to get from the current context
+/// Compute the qualification required to get from the current context
 /// (\p CurContext) to the target context (\p TargetContext).
 ///
 /// \param Context the AST context in which the qualification will be used.
@@ -603,7 +603,7 @@
   return false;
 }
 
-/// \brief A simplified classification of types used to determine whether two
+/// A simplified classification of types used to determine whether two
 /// types are "similar enough" when adjusting priorities.
 SimplifiedTypeClass clang::getSimplifiedTypeClass(CanQualType T) {
   switch (T->getTypeClass()) {
@@ -672,7 +672,7 @@
   }
 }
 
-/// \brief Get the type that a given expression will have if this declaration
+/// Get the type that a given expression will have if this declaration
 /// is used as an expression in its "typical" code-completion form.
 QualType clang::getDeclUsageType(ASTContext &C, const NamedDecl *ND) {
   ND = ND->getUnderlyingDecl();
@@ -1057,10 +1057,10 @@
   Results.push_back(R);
 }
 
-/// \brief Enter into a new scope.
+/// Enter into a new scope.
 void ResultBuilder::EnterNewScope() { ShadowMaps.emplace_back(); }
 
-/// \brief Exit from the current scope.
+/// Exit from the current scope.
 void ResultBuilder::ExitScope() {
   for (ShadowMap::iterator E = ShadowMaps.back().begin(),
                         EEnd = ShadowMaps.back().end();
@@ -1071,7 +1071,7 @@
   ShadowMaps.pop_back();
 }
 
-/// \brief Determines whether this given declaration will be found by
+/// Determines whether this given declaration will be found by
 /// ordinary name lookup.
 bool ResultBuilder::IsOrdinaryName(const NamedDecl *ND) const {
   ND = ND->getUnderlyingDecl();
@@ -1089,7 +1089,7 @@
   return ND->getIdentifierNamespace() & IDNS;
 }
 
-/// \brief Determines whether this given declaration will be found by
+/// Determines whether this given declaration will be found by
 /// ordinary name lookup but is not a type name.
 bool ResultBuilder::IsOrdinaryNonTypeName(const NamedDecl *ND) const {
   ND = ND->getUnderlyingDecl();
@@ -1125,7 +1125,7 @@
   return false;
 }
 
-/// \brief Determines whether this given declaration will be found by
+/// Determines whether this given declaration will be found by
 /// ordinary name lookup.
 bool ResultBuilder::IsOrdinaryNonValueName(const NamedDecl *ND) const {
   ND = ND->getUnderlyingDecl();
@@ -1139,7 +1139,7 @@
     !isa<ObjCPropertyDecl>(ND);
 }
 
-/// \brief Determines whether the given declaration is suitable as the 
+/// Determines whether the given declaration is suitable as the 
 /// start of a C++ nested-name-specifier, e.g., a class or namespace.
 bool ResultBuilder::IsNestedNameSpecifier(const NamedDecl *ND) const {
   // Allow us to find class templates, too.
@@ -1149,12 +1149,12 @@
   return SemaRef.isAcceptableNestedNameSpecifier(ND);
 }
 
-/// \brief Determines whether the given declaration is an enumeration.
+/// Determines whether the given declaration is an enumeration.
 bool ResultBuilder::IsEnum(const NamedDecl *ND) const {
   return isa<EnumDecl>(ND);
 }
 
-/// \brief Determines whether the given declaration is a class or struct.
+/// Determines whether the given declaration is a class or struct.
 bool ResultBuilder::IsClassOrStruct(const NamedDecl *ND) const {
   // Allow us to find class templates, too.
   if (const ClassTemplateDecl *ClassTemplate = dyn_cast<ClassTemplateDecl>(ND))
@@ -1169,7 +1169,7 @@
   return false;
 }
 
-/// \brief Determines whether the given declaration is a union.
+/// Determines whether the given declaration is a union.
 bool ResultBuilder::IsUnion(const NamedDecl *ND) const {
   // Allow us to find class templates, too.
   if (const ClassTemplateDecl *ClassTemplate = dyn_cast<ClassTemplateDecl>(ND))
@@ -1181,24 +1181,24 @@
   return false;
 }
 
-/// \brief Determines whether the given declaration is a namespace.
+/// Determines whether the given declaration is a namespace.
 bool ResultBuilder::IsNamespace(const NamedDecl *ND) const {
   return isa<NamespaceDecl>(ND);
 }
 
-/// \brief Determines whether the given declaration is a namespace or 
+/// Determines whether the given declaration is a namespace or 
 /// namespace alias.
 bool ResultBuilder::IsNamespaceOrAlias(const NamedDecl *ND) const {
   return isa<NamespaceDecl>(ND->getUnderlyingDecl());
 }
 
-/// \brief Determines whether the given declaration is a type.
+/// Determines whether the given declaration is a type.
 bool ResultBuilder::IsType(const NamedDecl *ND) const {
   ND = ND->getUnderlyingDecl();
   return isa<TypeDecl>(ND) || isa<ObjCInterfaceDecl>(ND);
 }
 
-/// \brief Determines which members of a class should be visible via
+/// Determines which members of a class should be visible via
 /// "." or "->".  Only value declarations, nested name specifiers, and
 /// using declarations thereof should show up.
 bool ResultBuilder::IsMember(const NamedDecl *ND) const {
@@ -1279,14 +1279,14 @@
   return false;
 }
 
-/// \brief Determines whether the given declaration is an Objective-C
+/// Determines whether the given declaration is an Objective-C
 /// instance variable.
 bool ResultBuilder::IsObjCIvar(const NamedDecl *ND) const {
   return isa<ObjCIvarDecl>(ND);
 }
 
 namespace {
-  /// \brief Visible declaration consumer that adds a code-completion result
+  /// Visible declaration consumer that adds a code-completion result
   /// for each visible declaration.
   class CodeCompletionDeclConsumer : public VisibleDeclConsumer {
     ResultBuilder &Results;
@@ -1313,7 +1313,7 @@
   };
 }
 
-/// \brief Add type specifiers for the current language as keyword results.
+/// Add type specifiers for the current language as keyword results.
 static void AddTypeSpecifierResults(const LangOptions &LangOpts,
                                     ResultBuilder &Results) {
   typedef CodeCompletionResult Result;
@@ -1522,12 +1522,12 @@
   return Policy;
 }
 
-/// \brief Retrieve a printing policy suitable for code completion.
+/// Retrieve a printing policy suitable for code completion.
 static PrintingPolicy getCompletionPrintingPolicy(Sema &S) {
   return getCompletionPrintingPolicy(S.Context, S.PP);
 }
 
-/// \brief Retrieve the string representation of the given type as a string
+/// Retrieve the string representation of the given type as a string
 /// that has the appropriate lifetime for code completion.
 ///
 /// This routine provides a fast path where we provide constant strings for
@@ -1561,7 +1561,7 @@
   return Allocator.CopyString(Result);
 }
 
-/// \brief Add a completion for "this", if we're in a member function.
+/// Add a completion for "this", if we're in a member function.
 static void addThisCompletion(Sema &S, ResultBuilder &Results) {
   QualType ThisTy = S.getCurrentThisType();
   if (ThisTy.isNull())
@@ -1593,7 +1593,7 @@
   Results.AddResult(CodeCompletionResult(Builder.TakeString()));
 }
 
-/// \brief Add language constructs that show up for "ordinary" names.
+/// Add language constructs that show up for "ordinary" names.
 static void AddOrdinaryNameResults(Sema::ParserCompletionContext CCC,
                                    Scope *S,
                                    Sema &SemaRef,
@@ -2139,7 +2139,7 @@
     Results.AddResult(Result("operator"));
 }
 
-/// \brief If the given declaration has an associated type, add it as a result 
+/// If the given declaration has an associated type, add it as a result 
 /// type chunk.
 static void AddResultTypeChunk(ASTContext &Context,
                                const PrintingPolicy &Policy,
@@ -2238,7 +2238,7 @@
   return Result;
 }
 
-/// \brief Tries to find the most appropriate type location for an Objective-C
+/// Tries to find the most appropriate type location for an Objective-C
 /// block placeholder.
 ///
 /// This function ignores things like typedefs and qualifiers in order to
@@ -2372,7 +2372,7 @@
                                 ObjCSubsts);
 }
 
-/// \brief Returns a placeholder string that corresponds to an Objective-C block
+/// Returns a placeholder string that corresponds to an Objective-C block
 /// declaration.
 ///
 /// \param BlockDecl A declaration with an Objective-C block type.
@@ -2464,7 +2464,7 @@
   return " " + DefValue;
 }
 
-/// \brief Add function parameter chunks to the given code completion string.
+/// Add function parameter chunks to the given code completion string.
 static void AddFunctionParameterChunks(Preprocessor &PP,
                                        const PrintingPolicy &Policy,
                                        const FunctionDecl *Function,
@@ -2518,7 +2518,7 @@
     }
 }
 
-/// \brief Add template parameter chunks to the given code completion string.
+/// Add template parameter chunks to the given code completion string.
 static void AddTemplateParameterChunks(ASTContext &Context,
                                        const PrintingPolicy &Policy,
                                        const TemplateDecl *Template,
@@ -2599,7 +2599,7 @@
   }    
 }
 
-/// \brief Add a qualifier to the given code-completion string, if the
+/// Add a qualifier to the given code-completion string, if the
 /// provided nested-name-specifier is non-NULL.
 static void 
 AddQualifierToCompletionString(CodeCompletionBuilder &Result, 
@@ -2658,7 +2658,7 @@
   Result.AddInformativeChunk(Result.getAllocator().CopyString(QualsStr));
 }
 
-/// \brief Add the name of the given declaration 
+/// Add the name of the given declaration 
 static void AddTypedNameChunk(ASTContext &Context, const PrintingPolicy &Policy,
                               const NamedDecl *ND,
                               CodeCompletionBuilder &Result) {
@@ -2742,7 +2742,7 @@
                                     CCTUInfo, IncludeBriefComments);
 }
 
-/// \brief If possible, create a new code completion string for the given
+/// If possible, create a new code completion string for the given
 /// result.
 ///
 /// \returns Either a new, heap-allocated code completion string describing
@@ -3042,7 +3042,7 @@
   return Result.TakeString();
 }
 
-/// \brief Add function overload parameter chunks to the given code completion
+/// Add function overload parameter chunks to the given code completion
 /// string.
 static void AddOverloadParameterChunks(ASTContext &Context,
                                        const PrintingPolicy &Policy,
@@ -3366,7 +3366,7 @@
   llvm_unreachable("Invalid ParserCompletionContext!");
 }
 
-/// \brief If we're in a C++ virtual member function, add completion results
+/// If we're in a C++ virtual member function, add completion results
 /// that invoke the functions we override, since it's common to invoke the 
 /// overridden function as well as adding new functionality.
 ///
@@ -3661,7 +3661,7 @@
   SmallVector<Decl *, 4> IgnoreDecls;
 };
 
-/// \brief Perform code-completion in an expression context when we know what
+/// Perform code-completion in an expression context when we know what
 /// type we're looking for.
 void Sema::CodeCompleteExpression(Scope *S, 
                                   const CodeCompleteExpressionData &Data) {
@@ -3719,11 +3719,11 @@
     CodeCompleteObjCInstanceMessage(S, E.get(), None, false);
 }
 
-/// \brief The set of properties that have already been added, referenced by
+/// The set of properties that have already been added, referenced by
 /// property name.
 typedef llvm::SmallPtrSet<IdentifierInfo*, 16> AddedPropertiesSet;
 
-/// \brief Retrieve the container definition, if any?
+/// Retrieve the container definition, if any?
 static ObjCContainerDecl *getContainerDef(ObjCContainerDecl *Container) {
   if (ObjCInterfaceDecl *Interface = dyn_cast<ObjCInterfaceDecl>(Container)) {
     if (Interface->hasDefinition())
@@ -3741,7 +3741,7 @@
   return Container;
 }
 
-/// \brief Adds a block invocation code completion result for the given block
+/// Adds a block invocation code completion result for the given block
 /// declaration \p BD.
 static void AddObjCBlockCall(ASTContext &Context, const PrintingPolicy &Policy,
                              CodeCompletionBuilder &Builder,
@@ -4339,7 +4339,7 @@
   }
 }
 
-/// \brief Get the type of the Nth parameter from a given set of overload
+/// Get the type of the Nth parameter from a given set of overload
 /// candidates.
 static QualType getParamType(Sema &SemaRef,
                              ArrayRef<ResultCandidate> Candidates,
@@ -4946,7 +4946,7 @@
                             Results.data(), Results.size());
 }
 
-/// \brief Determine whether this scope denotes a namespace.
+/// Determine whether this scope denotes a namespace.
 static bool isNamespaceScope(Scope *S) {
   DeclContext *DC = S->getEntity();
   if (!DC)
@@ -5273,7 +5273,7 @@
                             Results.data(),Results.size());
 }
 
-/// \brief Determine whether the addition of the given flag to an Objective-C
+/// Determine whether the addition of the given flag to an Objective-C
 /// property's attributes will cause a conflict.
 static bool ObjCPropertyFlagConflicts(unsigned Attributes, unsigned NewFlag) {
   // Check if we've already added this flag.
@@ -5369,7 +5369,7 @@
                             Results.data(),Results.size());
 }
 
-/// \brief Describes the kind of Objective-C method that we want to find
+/// Describes the kind of Objective-C method that we want to find
 /// via code completion.
 enum ObjCMethodKind {
   MK_Any, ///< Any kind of method, provided it means other specified criteria.
@@ -5410,12 +5410,12 @@
 }
 
 namespace {
-  /// \brief A set of selectors, which is used to avoid introducing multiple 
+  /// A set of selectors, which is used to avoid introducing multiple 
   /// completions with the same selector into the result set.
   typedef llvm::SmallPtrSet<Selector, 16> VisitedSelectorSet;
 }
 
-/// \brief Add all of the Objective-C methods in the given Objective-C 
+/// Add all of the Objective-C methods in the given Objective-C 
 /// container to the set of results.
 ///
 /// The container will be a class, protocol, category, or implementation of 
@@ -5660,7 +5660,7 @@
                             Results.data(), Results.size());
 }
 
-/// \brief When we have an expression with type "id", we may assume
+/// When we have an expression with type "id", we may assume
 /// that it has some more-specific class type based on knowledge of
 /// common uses of Objective-C. This routine returns that class type,
 /// or NULL if no better result could be determined.
@@ -5952,7 +5952,7 @@
                                       /*IsSuper=*/true);
 }
 
-/// \brief Given a set of code-completion results for the argument of a message
+/// Given a set of code-completion results for the argument of a message
 /// send, determine the preferred type (if any) for that argument expression.
 static QualType getPreferredArgumentTypeForMessageSend(ResultBuilder &Results,
                                                        unsigned NumSelIdents) {
@@ -6334,7 +6334,7 @@
                             Results.data(), Results.size());
 }
 
-/// \brief Add all of the protocol declarations that we find in the given
+/// Add all of the protocol declarations that we find in the given
 /// (translation unit) context.
 static void AddProtocolResults(DeclContext *Ctx, DeclContext *CurContext,
                                bool OnlyForwardDeclarations,
@@ -6399,7 +6399,7 @@
                             Results.data(),Results.size());
 }
 
-/// \brief Add all of the Objective-C interface declarations that we find in
+/// Add all of the Objective-C interface declarations that we find in
 /// the given (translation unit) context.
 static void AddInterfaceResults(DeclContext *Ctx, DeclContext *CurContext,
                                 bool OnlyForwardDeclarations,
@@ -6696,7 +6696,7 @@
 typedef llvm::DenseMap<
     Selector, llvm::PointerIntPair<ObjCMethodDecl *, 1, bool> > KnownMethodsMap;
 
-/// \brief Find all of the methods that reside in the given container
+/// Find all of the methods that reside in the given container
 /// (and its superclasses, protocols, etc.) that meet the given
 /// criteria. Insert those methods into the map of known methods,
 /// indexed by selector so they can be easily found.
@@ -6784,7 +6784,7 @@
   }
 }
 
-/// \brief Add the parenthesized return or parameter type chunk to a code 
+/// Add the parenthesized return or parameter type chunk to a code 
 /// completion string.
 static void AddObjCPassingTypeChunk(QualType Type,
                                     unsigned ObjCDeclQuals,
@@ -6800,7 +6800,7 @@
   Builder.AddChunk(CodeCompletionString::CK_RightParen);
 }
 
-/// \brief Determine whether the given class is or inherits from a class by
+/// Determine whether the given class is or inherits from a class by
 /// the given name.
 static bool InheritsFromClassNamed(ObjCInterfaceDecl *Class, 
                                    StringRef Name) {
@@ -6813,7 +6813,7 @@
   return InheritsFromClassNamed(Class->getSuperClass(), Name);
 }
                   
-/// \brief Add code completions for Objective-C Key-Value Coding (KVC) and
+/// Add code completions for Objective-C Key-Value Coding (KVC) and
 /// Key-Value Observing (KVO).
 static void AddObjCKeyValueCompletions(ObjCPropertyDecl *Property,
                                        bool IsInstanceMethod,