From: Rageking8 Date: Tue, 8 Nov 2022 12:21:23 +0000 (-0500) Subject: Fix duplicate word typos; NFC X-Git-Tag: upstream/17.0.6~28225 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=94738a5ac34283bb034b022602b9f9e93d67081f;p=platform%2Fupstream%2Fllvm.git Fix duplicate word typos; NFC This revision fixes typos where there are 2 consecutive words which are duplicated. There should be no code changes in this revision (only changes to comments and docs). Do let me know if there are any undesirable changes in this revision. Thanks. --- diff --git a/clang/docs/DataFlowSanitizerDesign.rst b/clang/docs/DataFlowSanitizerDesign.rst index 4f028de..4f60391 100644 --- a/clang/docs/DataFlowSanitizerDesign.rst +++ b/clang/docs/DataFlowSanitizerDesign.rst @@ -51,7 +51,7 @@ file ``sanitizer/dfsan_interface.h``. /// Retrieves the label associated with the data at the given address. dfsan_label dfsan_read_label(const void *addr, size_t size); - /// Returns whether the given label label contains the label elem. + /// Returns whether the given label contains the label elem. int dfsan_has_label(dfsan_label label, dfsan_label elem); /// Computes the union of \c l1 and \c l2, resulting in a union label. diff --git a/clang/include/clang/AST/ASTConsumer.h b/clang/include/clang/AST/ASTConsumer.h index ecdd8e8..21850e8 100644 --- a/clang/include/clang/AST/ASTConsumer.h +++ b/clang/include/clang/AST/ASTConsumer.h @@ -76,7 +76,7 @@ public: virtual void HandleTagDeclRequiredDefinition(const TagDecl *D) {} /// Invoked when a function is implicitly instantiated. - /// Note that at this point point it does not have a body, its body is + /// Note that at this point it does not have a body, its body is /// instantiated at the end of the translation unit and passed to /// HandleTopLevelDecl. virtual void HandleCXXImplicitFunctionInstantiation(FunctionDecl *D) {} diff --git a/clang/include/clang/AST/DeclCXX.h b/clang/include/clang/AST/DeclCXX.h index ce83424..feee560 100644 --- a/clang/include/clang/AST/DeclCXX.h +++ b/clang/include/clang/AST/DeclCXX.h @@ -1172,7 +1172,7 @@ public: /// Determine whether this class has a pure virtual function. /// - /// The class is is abstract per (C++ [class.abstract]p2) if it declares + /// The class is abstract per (C++ [class.abstract]p2) if it declares /// a pure virtual function or inherits a pure virtual function that is /// not overridden. bool isAbstract() const { return data().Abstract; } diff --git a/clang/include/clang/AST/DeclTemplate.h b/clang/include/clang/AST/DeclTemplate.h index d1dfe73..ef3f62c 100644 --- a/clang/include/clang/AST/DeclTemplate.h +++ b/clang/include/clang/AST/DeclTemplate.h @@ -274,8 +274,7 @@ public: /// /// This operation assumes that the input argument list outlives it. /// This takes the list as a pointer to avoid looking like a copy - /// constructor, since this really really isn't safe to use that - /// way. + /// constructor, since this really isn't safe to use that way. explicit TemplateArgumentList(const TemplateArgumentList *Other) : Arguments(Other->data()), NumArguments(Other->size()) {} diff --git a/clang/include/clang/AST/Expr.h b/clang/include/clang/AST/Expr.h index a65e062..9bf0318e 100644 --- a/clang/include/clang/AST/Expr.h +++ b/clang/include/clang/AST/Expr.h @@ -1982,7 +1982,7 @@ public: LFunction, // Same as Function, but as wide string. FuncDName, FuncSig, - LFuncSig, // Same as FuncSig, but as as wide string + LFuncSig, // Same as FuncSig, but as wide string PrettyFunction, /// The same as PrettyFunction, except that the /// 'virtual' keyword is omitted for virtual member functions. diff --git a/clang/include/clang/AST/ExternalASTMerger.h b/clang/include/clang/AST/ExternalASTMerger.h index 0230495..ec4cfbe 100644 --- a/clang/include/clang/AST/ExternalASTMerger.h +++ b/clang/include/clang/AST/ExternalASTMerger.h @@ -118,7 +118,7 @@ public: /// Asks all connected ASTImporters if any of them imported the given /// declaration. If any ASTImporter did import the given declaration, /// then this function returns the declaration that D was imported from. - /// Returns nullptr if no ASTImporter did import import D. + /// Returns nullptr if no ASTImporter did import D. Decl *FindOriginalDecl(Decl *D); /// Add a set of ASTContexts as possible origins. diff --git a/clang/include/clang/AST/StmtOpenMP.h b/clang/include/clang/AST/StmtOpenMP.h index baa5e0e..3399129 100644 --- a/clang/include/clang/AST/StmtOpenMP.h +++ b/clang/include/clang/AST/StmtOpenMP.h @@ -980,7 +980,7 @@ public: /// Return the number of loops generated by this loop transformation. unsigned getNumGeneratedLoops() { return NumGeneratedLoops; } - /// Get the de-sugared statements after after the loop transformation. + /// Get the de-sugared statements after the loop transformation. /// /// Might be nullptr if either the directive generates no loops and is handled /// directly in CodeGen, or resolving a template-dependence context is @@ -2873,7 +2873,7 @@ public: /// /// \param C AST context. /// \param NumClauses Number of clauses. - /// \param IsStandalone true, if the the standalone directive is created. + /// \param IsStandalone true, if the standalone directive is created. /// static OMPOrderedDirective *CreateEmpty(const ASTContext &C, unsigned NumClauses, diff --git a/clang/include/clang/ASTMatchers/ASTMatchersInternal.h b/clang/include/clang/ASTMatchers/ASTMatchersInternal.h index 32316e2..d4b74f3 100644 --- a/clang/include/clang/ASTMatchers/ASTMatchersInternal.h +++ b/clang/include/clang/ASTMatchers/ASTMatchersInternal.h @@ -464,7 +464,7 @@ public: /// restricts the node types for \p Kind. DynTypedMatcher dynCastTo(const ASTNodeKind Kind) const; - /// Return a matcher that that points to the same implementation, but sets the + /// Return a matcher that points to the same implementation, but sets the /// traversal kind. /// /// If the traversal kind is already set, then \c TK overrides it. diff --git a/clang/include/clang/Analysis/CFG.h b/clang/include/clang/Analysis/CFG.h index 96231fe..f3e005b 100644 --- a/clang/include/clang/Analysis/CFG.h +++ b/clang/include/clang/Analysis/CFG.h @@ -265,7 +265,7 @@ private: }; /// Represents the point where a loop ends. -/// This element is is only produced when building the CFG for the static +/// This element is only produced when building the CFG for the static /// analyzer and hidden behind the 'cfg-loopexit' analyzer config flag. /// /// Note: a loop exit element can be reached even when the loop body was never diff --git a/clang/include/clang/Analysis/CloneDetection.h b/clang/include/clang/Analysis/CloneDetection.h index ffd496c..3385579 100644 --- a/clang/include/clang/Analysis/CloneDetection.h +++ b/clang/include/clang/Analysis/CloneDetection.h @@ -260,7 +260,7 @@ public: /// /// Clones that aren't type II clones are moved into separate clone groups. /// In contrast to the RecursiveCloneTypeIIHashConstraint, all clones in a clone -/// group are guaranteed to be be type II clones of each other, but it is too +/// group are guaranteed to be type II clones of each other, but it is too /// slow to efficiently handle large amounts of clones. class RecursiveCloneTypeIIVerifyConstraint { public: diff --git a/clang/include/clang/Analysis/PathDiagnostic.h b/clang/include/clang/Analysis/PathDiagnostic.h index 9877f1e..342053a 100644 --- a/clang/include/clang/Analysis/PathDiagnostic.h +++ b/clang/include/clang/Analysis/PathDiagnostic.h @@ -73,7 +73,7 @@ struct PathDiagnosticConsumerOptions { bool ShouldSerializeStats = false; /// If the consumer intends to produce multiple output files, should it - /// use a pseudo-random file name name or a human-readable file name. + /// use a pseudo-random file name or a human-readable file name. bool ShouldWriteVerboseReportFilename = false; /// Whether the consumer should treat consumed diagnostics as hard errors. diff --git a/clang/include/clang/Basic/CodeGenOptions.def b/clang/include/clang/Basic/CodeGenOptions.def index 183cb0c..43521b7 100644 --- a/clang/include/clang/Basic/CodeGenOptions.def +++ b/clang/include/clang/Basic/CodeGenOptions.def @@ -333,7 +333,7 @@ CODEGENOPT(NoStackArgProbe, 1, 0) ///< Set when -mno-stack-arg-probe is used CODEGENOPT(DebugStrictDwarf, 1, 1) ///< Whether or not to use strict DWARF info. CODEGENOPT(EnableAssignmentTracking, 1,0) ///< Enable the Assignment Tracking - ///< debug info feature feature. + ///< debug info feature. CODEGENOPT(DebugColumnInfo, 1, 0) ///< Whether or not to use column information ///< in debug info. diff --git a/clang/include/clang/Basic/LangStandards.def b/clang/include/clang/Basic/LangStandards.def index 323032f..c5d4da1 100644 --- a/clang/include/clang/Basic/LangStandards.def +++ b/clang/include/clang/Basic/LangStandards.def @@ -17,7 +17,7 @@ /// \param LANG - The Language for which this is a standard. /// \param DESC - A short description of the standard. /// \param FEATURES - The standard features as flags, these are enums from the -/// clang::frontend namespace, which is assumed to be be available. +/// clang::frontend namespace, which is assumed to be available. /// LANGSTANDARD_ALIAS(IDENT, ALIAS) /// \param IDENT - The name of the standard as a C++ identifier. diff --git a/clang/include/clang/Basic/Sarif.h b/clang/include/clang/Basic/Sarif.h index 3d169e1..d76b9d1 100644 --- a/clang/include/clang/Basic/Sarif.h +++ b/clang/include/clang/Basic/Sarif.h @@ -372,7 +372,7 @@ public: /// attributes. However, it requires an ordering among certain method calls: /// /// 1. Because every SARIF document must contain at least 1 \c run, callers -/// must ensure that \ref SarifDocumentWriter::createRun is is called before +/// must ensure that \ref SarifDocumentWriter::createRun is called before /// any other methods. /// 2. If SarifDocumentWriter::endRun is called, callers MUST call /// SarifDocumentWriter::createRun, before invoking any of the result diff --git a/clang/include/clang/Basic/Specifiers.h b/clang/include/clang/Basic/Specifiers.h index ca92c11..a8c35fe 100644 --- a/clang/include/clang/Basic/Specifiers.h +++ b/clang/include/clang/Basic/Specifiers.h @@ -31,7 +31,7 @@ namespace clang { /// Define the kind of constexpr specifier. enum class ConstexprSpecKind { Unspecified, Constexpr, Consteval, Constinit }; - /// In an if statement, this denotes whether the the statement is + /// In an if statement, this denotes whether the statement is /// a constexpr or consteval if statement. enum class IfStatementKind : unsigned { Ordinary, diff --git a/clang/include/clang/CrossTU/CrossTranslationUnit.h b/clang/include/clang/CrossTU/CrossTranslationUnit.h index 3a0178a..47b48ce 100644 --- a/clang/include/clang/CrossTU/CrossTranslationUnit.h +++ b/clang/include/clang/CrossTU/CrossTranslationUnit.h @@ -101,7 +101,7 @@ std::string createCrossTUIndexString(const llvm::StringMap &Index); using InvocationListTy = llvm::StringMap>; /// Parse the YAML formatted invocation list file content \p FileContent. -/// The format is expected to be a mapping from from absolute source file +/// The format is expected to be a mapping from absolute source file /// paths in the filesystem to a list of command-line parts, which /// constitute the invocation needed to compile that file. That invocation /// will be used to produce the AST of the TU. diff --git a/clang/include/clang/Sema/CodeCompleteConsumer.h b/clang/include/clang/Sema/CodeCompleteConsumer.h index c725c2a..8620320 100644 --- a/clang/include/clang/Sema/CodeCompleteConsumer.h +++ b/clang/include/clang/Sema/CodeCompleteConsumer.h @@ -429,7 +429,7 @@ public: } }; -/// Get string representation of \p Kind, useful for for debugging. +/// Get string representation of \p Kind, useful for debugging. llvm::StringRef getCompletionKindString(CodeCompletionContext::Kind Kind); /// A "string" used to describe how code completion can diff --git a/clang/include/clang/Sema/ParsedAttr.h b/clang/include/clang/Sema/ParsedAttr.h index 9ec0ea0..f060564 100644 --- a/clang/include/clang/Sema/ParsedAttr.h +++ b/clang/include/clang/Sema/ParsedAttr.h @@ -432,7 +432,7 @@ private: return *getTrailingObjects(); } - /// The property data immediately follows the object is is mutually exclusive + /// The property data immediately follows the object is mutually exclusive /// with arguments. detail::PropertyData &getPropertyDataBuffer() { assert(IsProperty); diff --git a/clang/include/clang/Sema/ScopeInfo.h b/clang/include/clang/Sema/ScopeInfo.h index c0dfcb8..613749f 100644 --- a/clang/include/clang/Sema/ScopeInfo.h +++ b/clang/include/clang/Sema/ScopeInfo.h @@ -883,7 +883,7 @@ public: /// This is specifically useful for generic lambdas or /// lambdas within a potentially evaluated-if-used context. /// If an enclosing variable is named in an expression of a lambda nested - /// within a generic lambda, we don't always know know whether the variable + /// within a generic lambda, we don't always know whether the variable /// will truly be odr-used (i.e. need to be captured) by that nested lambda, /// until its instantiation. But we still need to capture it in the /// enclosing lambda if all intervening lambdas can capture the variable. diff --git a/clang/include/clang/Sema/Sema.h b/clang/include/clang/Sema/Sema.h index 25d9d2e..59e99bc 100644 --- a/clang/include/clang/Sema/Sema.h +++ b/clang/include/clang/Sema/Sema.h @@ -8267,7 +8267,7 @@ public: SmallVectorImpl &CanonicalConverted, CheckTemplateArgumentKind CTAK); - /// Check that the given template arguments can be be provided to + /// Check that the given template arguments can be provided to /// the given template, converting the arguments along the way. /// /// \param Template The template to which the template arguments are being diff --git a/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h b/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h index 848e43d..dd1b755 100644 --- a/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h +++ b/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h @@ -360,13 +360,13 @@ public: void processSwitch(SwitchNodeBuilder& builder); /// Called by CoreEngine. Used to notify checkers that processing a - /// function has begun. Called for both inlined and and top-level functions. + /// function has begun. Called for both inlined and top-level functions. void processBeginOfFunction(NodeBuilderContext &BC, ExplodedNode *Pred, ExplodedNodeSet &Dst, const BlockEdge &L); /// Called by CoreEngine. Used to notify checkers that processing a - /// function has ended. Called for both inlined and and top-level functions. + /// function has ended. Called for both inlined and top-level functions. void processEndOfFunction(NodeBuilderContext& BC, ExplodedNode *Pred, const ReturnStmt *RS = nullptr); diff --git a/clang/include/clang/Tooling/DependencyScanning/DependencyScanningFilesystem.h b/clang/include/clang/Tooling/DependencyScanning/DependencyScanningFilesystem.h index b3882c2..63a7221 100644 --- a/clang/include/clang/Tooling/DependencyScanning/DependencyScanningFilesystem.h +++ b/clang/include/clang/Tooling/DependencyScanning/DependencyScanningFilesystem.h @@ -271,7 +271,7 @@ public: /// A virtual file system optimized for the dependency discovery. /// -/// It is primarily designed to work with source files whose contents was was +/// It is primarily designed to work with source files whose contents was /// preprocessed to remove any tokens that are unlikely to affect the dependency /// computation. /// diff --git a/clang/include/clang/Tooling/Refactoring/Extract/Extract.h b/clang/include/clang/Tooling/Refactoring/Extract/Extract.h index 2f7c5bc..e3a8a0d 100644 --- a/clang/include/clang/Tooling/Refactoring/Extract/Extract.h +++ b/clang/include/clang/Tooling/Refactoring/Extract/Extract.h @@ -22,7 +22,7 @@ public: /// Initiates the extract function refactoring operation. /// /// \param Code The selected set of statements. - /// \param DeclName The name name of the extract function. If None, + /// \param DeclName The name of the extract function. If None, /// "extracted" is used. static Expected initiate(RefactoringRuleContext &Context, CodeRangeASTSelection Code, diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp index 52b3613..b9f9bec 100644 --- a/clang/lib/AST/ASTContext.cpp +++ b/clang/lib/AST/ASTContext.cpp @@ -6520,7 +6520,7 @@ bool ASTContext::FriendsDifferByConstraints(const FunctionDecl *X, if (!X->getFriendObjectKind() || !Y->getFriendObjectKind()) return false; - // If the the two functions share lexical declaration context, they are not in + // If the two functions share lexical declaration context, they are not in // separate instantations, and thus in the same scope. if (X->getLexicalDeclContext() == Y->getLexicalDeclContext()) return false; diff --git a/clang/lib/AST/ASTDiagnostic.cpp b/clang/lib/AST/ASTDiagnostic.cpp index 4cf557c..19923ec 100644 --- a/clang/lib/AST/ASTDiagnostic.cpp +++ b/clang/lib/AST/ASTDiagnostic.cpp @@ -538,7 +538,7 @@ class TemplateDiff { bool ShowColor; /// FromTemplateType - When single type printing is selected, this is the - /// type to be be printed. When tree printing is selected, this type will + /// type to be printed. When tree printing is selected, this type will /// show up first in the tree. QualType FromTemplateType; diff --git a/clang/lib/Basic/DiagnosticIDs.cpp b/clang/lib/Basic/DiagnosticIDs.cpp index abdb73f..1695a3c 100644 --- a/clang/lib/Basic/DiagnosticIDs.cpp +++ b/clang/lib/Basic/DiagnosticIDs.cpp @@ -546,7 +546,7 @@ DiagnosticIDs::getDiagnosticSeverity(unsigned DiagID, SourceLocation Loc, if (Result == diag::Severity::Ignored) return Result; - // Honor -w: this disables all messages which which are not Error/Fatal by + // Honor -w: this disables all messages which are not Error/Fatal by // default (disregarding attempts to upgrade severity from Warning to Error), // as well as disabling all messages which are currently mapped to Warning // (whether by default or downgraded from Error via e.g. -Wno-error or #pragma diff --git a/clang/lib/Basic/SourceManager.cpp b/clang/lib/Basic/SourceManager.cpp index 20bb594..caa5573 100644 --- a/clang/lib/Basic/SourceManager.cpp +++ b/clang/lib/Basic/SourceManager.cpp @@ -797,7 +797,7 @@ FileID SourceManager::getFileIDLocal(SourceLocation::UIntTy SLocOffset) const { // most newly created FileID. // LessIndex - This is the lower bound of the range that we're searching. - // We know that the offset corresponding to the FileID is is less than + // We know that the offset corresponding to the FileID is less than // SLocOffset. unsigned LessIndex = 0; // upper bound of the search range. diff --git a/clang/lib/CodeGen/CGCUDARuntime.h b/clang/lib/CodeGen/CGCUDARuntime.h index 73c7ca7..9a9c6d2 100644 --- a/clang/lib/CodeGen/CGCUDARuntime.h +++ b/clang/lib/CodeGen/CGCUDARuntime.h @@ -55,7 +55,7 @@ public: /// The kind flag for an offloading entry. enum OffloadEntryKindFlag : uint32_t { /// Mark the entry as a global entry. This indicates the presense of a - /// kernel if the size size field is zero and a variable otherwise. + /// kernel if the size field is zero and a variable otherwise. OffloadGlobalEntry = 0x0, /// Mark the entry as a managed global variable. OffloadGlobalManagedEntry = 0x1, diff --git a/clang/lib/CodeGen/CGClass.cpp b/clang/lib/CodeGen/CGClass.cpp index bf20c20..683bd4a 100644 --- a/clang/lib/CodeGen/CGClass.cpp +++ b/clang/lib/CodeGen/CGClass.cpp @@ -2583,7 +2583,7 @@ void CodeGenFunction::InitializeVTablePointer(const VPtr &Vptr) { llvm::FunctionType::get(CGM.Int32Ty, /*isVarArg=*/true) ->getPointerTo(ProgAS) ->getPointerTo(GlobalsAS); - // vtable field is is derived from `this` pointer, therefore they should be in + // vtable field is derived from `this` pointer, therefore they should be in // the same addr space. Note that this might not be LLVM address space 0. VTableField = Builder.CreateElementBitCast(VTableField, VTablePtrTy); VTableAddressPoint = Builder.CreateBitCast(VTableAddressPoint, VTablePtrTy); diff --git a/clang/lib/CodeGen/CGDeclCXX.cpp b/clang/lib/CodeGen/CGDeclCXX.cpp index df17e0b..9245f2c 100644 --- a/clang/lib/CodeGen/CGDeclCXX.cpp +++ b/clang/lib/CodeGen/CGDeclCXX.cpp @@ -740,7 +740,7 @@ void CodeGenModule::EmitCXXModuleInitFunc(Module *Primary) { CodeGenFunction(*this).GenerateCXXGlobalInitFunc( Fn, ModuleInits, ConstantAddress(Guard, Int8Ty, GuardAlign)); // We allow for the case that a module object is added to a linked binary - // without a specific call to the the initializer. This also ensure that + // without a specific call to the initializer. This also ensure that // implementation partition initializers are called when the partition // is not imported as an interface. AddGlobalCtor(Fn); diff --git a/clang/lib/CodeGen/CGOpenMPRuntime.h b/clang/lib/CodeGen/CGOpenMPRuntime.h index 70c6b89..1fee19f 100644 --- a/clang/lib/CodeGen/CGOpenMPRuntime.h +++ b/clang/lib/CodeGen/CGOpenMPRuntime.h @@ -560,7 +560,7 @@ private: /// metadata. void loadOffloadInfoMetadata(); - /// Start scanning from statement \a S and and emit all target regions + /// Start scanning from statement \a S and emit all target regions /// found along the way. /// \param S Starting statement. /// \param ParentName Name of the function declaration that is being scanned. diff --git a/clang/lib/CodeGen/CodeGenFunction.h b/clang/lib/CodeGen/CodeGenFunction.h index 560a9d9..05e5bad 100644 --- a/clang/lib/CodeGen/CodeGenFunction.h +++ b/clang/lib/CodeGen/CodeGenFunction.h @@ -2231,7 +2231,7 @@ public: /// Emit the unified return block, trying to avoid its emission when /// possible. /// \return The debug location of the user written return statement if the - /// return block is is avoided. + /// return block is avoided. llvm::DebugLoc EmitReturnBlock(); /// FinishFunction - Complete IR generation of the current function. It is @@ -2884,7 +2884,7 @@ public: AggValueSlot::Overlap_t Overlap, SourceLocation Loc, bool NewPointerIsChecked); - /// Emit assumption load for all bases. Requires to be be called only on + /// Emit assumption load for all bases. Requires to be called only on /// most-derived class and not under construction of the object. void EmitVTableAssumptionLoads(const CXXRecordDecl *ClassDecl, Address This); diff --git a/clang/lib/CodeGen/CodeGenTBAA.cpp b/clang/lib/CodeGen/CodeGenTBAA.cpp index 0cb63fb..395ed7b 100644 --- a/clang/lib/CodeGen/CodeGenTBAA.cpp +++ b/clang/lib/CodeGen/CodeGenTBAA.cpp @@ -338,7 +338,7 @@ llvm::MDNode *CodeGenTBAA::getBaseTypeInfoHelper(const Type *Ty) { using TBAAStructField = llvm::MDBuilder::TBAAStructField; SmallVector Fields; if (const CXXRecordDecl *CXXRD = dyn_cast(RD)) { - // Handle C++ base classes. Non-virtual bases can treated a a kind of + // Handle C++ base classes. Non-virtual bases can treated a kind of // field. Virtual bases are more complex and omitted, but avoid an // incomplete view for NewStructPathTBAA. if (CodeGenOpts.NewStructPathTBAA && CXXRD->getNumVBases() != 0) diff --git a/clang/lib/CodeGen/MicrosoftCXXABI.cpp b/clang/lib/CodeGen/MicrosoftCXXABI.cpp index 1034066..437aac6 100644 --- a/clang/lib/CodeGen/MicrosoftCXXABI.cpp +++ b/clang/lib/CodeGen/MicrosoftCXXABI.cpp @@ -289,7 +289,7 @@ public: CodeGenFunction::VPtr Vptr) override; /// Don't initialize vptrs if dynamic class - /// is marked with with the 'novtable' attribute. + /// is marked with the 'novtable' attribute. bool doStructorsInitializeVPtrs(const CXXRecordDecl *VTableClass) override { return !VTableClass->hasAttr(); } diff --git a/clang/lib/CodeGen/TargetInfo.cpp b/clang/lib/CodeGen/TargetInfo.cpp index 461d138..c57b0dd 100644 --- a/clang/lib/CodeGen/TargetInfo.cpp +++ b/clang/lib/CodeGen/TargetInfo.cpp @@ -2618,7 +2618,7 @@ void X86_64TargetCodeGenInfo::checkFunctionCallABI( llvm::StringMap CalleeMap; unsigned ArgIndex = 0; - // We need to loop through the actual call arguments rather than the the + // We need to loop through the actual call arguments rather than the // function's parameters, in case this variadic. for (const CallArg &Arg : Args) { // The "avx" feature changes how vectors >128 in size are passed. "avx512f" @@ -10305,7 +10305,7 @@ bool TypeStringCache::removeIncomplete(const IdentifierInfo *ID) { void TypeStringCache::addIfComplete(const IdentifierInfo *ID, StringRef Str, bool IsRecursive) { if (!ID || IncompleteUsedCount) - return; // No key or it is is an incomplete sub-type so don't add. + return; // No key or it is an incomplete sub-type so don't add. Entry &E = Map[ID]; if (IsRecursive && !E.Str.empty()) { assert(E.State==Recursive && E.Str.size() == Str.size() && diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index 5704902..27e15b9 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -2447,7 +2447,7 @@ bool Driver::DiagnoseInputExistence(const DerivedArgList &Args, StringRef Value, // they can be influenced by linker flags the clang driver might not // understand. // Examples: - // - `clang-cl main.cc ole32.lib` in a a non-MSVC shell will make the driver + // - `clang-cl main.cc ole32.lib` in a non-MSVC shell will make the driver // module look for an MSVC installation in the registry. (We could ask // the MSVCToolChain object if it can find `ole32.lib`, but the logic to // look in the registry might move into lld-link in the future so that diff --git a/clang/lib/Driver/ToolChains/Darwin.cpp b/clang/lib/Driver/ToolChains/Darwin.cpp index 661764e..848b81a 100644 --- a/clang/lib/Driver/ToolChains/Darwin.cpp +++ b/clang/lib/Driver/ToolChains/Darwin.cpp @@ -44,7 +44,7 @@ llvm::Triple::ArchType darwin::getArchTypeForMachOArchName(StringRef Str) { // The matching this routine does is fairly pointless, since it is neither the // complete architecture list, nor a reasonable subset. The problem is that - // historically the driver driver accepts this and also ties its -march= + // historically the driver accepts this and also ties its -march= // handling to the architecture name, so we need to be careful before removing // support for it. @@ -59,7 +59,7 @@ llvm::Triple::ArchType darwin::getArchTypeForMachOArchName(StringRef Str) { .Cases("pentium", "pentpro", "pentIIm3", "pentIIm5", "pentium4", llvm::Triple::x86) .Cases("x86_64", "x86_64h", llvm::Triple::x86_64) - // This is derived from the driver driver. + // This is derived from the driver. .Cases("arm", "armv4t", "armv5", "armv6", "armv6m", llvm::Triple::arm) .Cases("armv7", "armv7em", "armv7k", "armv7m", llvm::Triple::arm) .Cases("armv7s", "xscale", llvm::Triple::arm) @@ -2663,7 +2663,7 @@ DerivedArgList *MachO::TranslateArgs(const DerivedArgList &Args, } // Add the arch options based on the particular spelling of -arch, to match - // how the driver driver works. + // how the driver works. if (!BoundArch.empty()) { StringRef Name = BoundArch; const Option MCpu = Opts.getOption(options::OPT_mcpu_EQ); diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp index 668a449..a33e684 100644 --- a/clang/lib/Driver/ToolChains/Gnu.cpp +++ b/clang/lib/Driver/ToolChains/Gnu.cpp @@ -84,7 +84,7 @@ void tools::gcc::Common::ConstructJob(Compilation &C, const JobAction &JA, RenderExtraToolArgs(JA, CmdArgs); - // If using a driver driver, force the arch. + // If using a driver, force the arch. if (getToolChain().getTriple().isOSDarwin()) { CmdArgs.push_back("-arch"); CmdArgs.push_back( diff --git a/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp b/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp index 641f1ae..b74cf5b 100644 --- a/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp +++ b/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp @@ -638,7 +638,7 @@ void SymbolGraphSerializer::serializeObjCContainerRecord( serializeMembers(Record, Category->Methods); serializeMembers(Record, Category->Properties); - // Surface the protocols of the the category to the interface. + // Surface the protocols of the category to the interface. for (const auto &Protocol : Category->Protocols) serializeRelationship(RelationshipKind::ConformsTo, Record, Protocol); } diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index dbfe88c..9054fe3 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -313,7 +313,7 @@ private: } // Infer the role of the l_paren based on the previous token if we haven't - // detected one one yet. + // detected one yet. if (PrevNonComment && OpeningParen.is(TT_Unknown)) { if (PrevNonComment->is(tok::kw___attribute)) { OpeningParen.setType(TT_AttributeParen); @@ -4903,7 +4903,7 @@ bool TokenAnnotator::canBreakBefore(const AnnotatedLine &Line, // // instead, even if it is longer by one line. // - // Note that this allows allows the "{" to go over the column limit + // Note that this allows the "{" to go over the column limit // when the column limit is just between ":" and "{", but that does // not happen too often and alternative formattings in this case are // not much better. diff --git a/clang/lib/Format/WhitespaceManager.h b/clang/lib/Format/WhitespaceManager.h index 2be6233..2ccf8c0 100644 --- a/clang/lib/Format/WhitespaceManager.h +++ b/clang/lib/Format/WhitespaceManager.h @@ -199,7 +199,7 @@ private: SmallVector CellCounts; unsigned InitialSpaces = 0; - // Determine if every row in the the array + // Determine if every row in the array // has the same number of columns. bool isRectangular() const { if (CellCounts.empty()) diff --git a/clang/lib/Headers/smmintrin.h b/clang/lib/Headers/smmintrin.h index 46fb7bc..2111c24 100644 --- a/clang/lib/Headers/smmintrin.h +++ b/clang/lib/Headers/smmintrin.h @@ -818,7 +818,7 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_max_epu32(__m128i __V1, /// parameter, is copied to the result. /// \param N /// Specifies which bits from operand \a Y will be copied, which bits in the -/// result they will be be copied to, and which bits in the result will be +/// result they will be copied to, and which bits in the result will be /// cleared. The following assignments are made: \n /// Bits [7:6] specify the bits to copy from operand \a Y: \n /// 00: Selects bits [31:0] from operand \a Y. \n diff --git a/clang/lib/Lex/MacroInfo.cpp b/clang/lib/Lex/MacroInfo.cpp index eae12be..e18b6fb 100644 --- a/clang/lib/Lex/MacroInfo.cpp +++ b/clang/lib/Lex/MacroInfo.cpp @@ -118,7 +118,7 @@ bool MacroInfo::isIdenticalTo(const MacroInfo &Other, Preprocessor &PP, if (A.getKind() != B.getKind()) return false; - // If this isn't the first first token, check that the whitespace and + // If this isn't the first token, check that the whitespace and // start-of-line characteristics match. if (i != 0 && (A.isAtStartOfLine() != B.isAtStartOfLine() || diff --git a/clang/lib/Parse/ParseStmt.cpp b/clang/lib/Parse/ParseStmt.cpp index bc2710d..348a07f 100644 --- a/clang/lib/Parse/ParseStmt.cpp +++ b/clang/lib/Parse/ParseStmt.cpp @@ -764,7 +764,7 @@ StmtResult Parser::ParseCaseStatement(ParsedStmtContext StmtCtx, // otherwise in the same context as the labeled-statement. StmtCtx &= ~ParsedStmtContext::AllowDeclarationsInC; - // It is very very common for code to contain many case statements recursively + // It is very common for code to contain many case statements recursively // nested, as in (but usually without indentation): // case 1: // case 2: diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp index 4c60c38..25d746e 100644 --- a/clang/lib/Sema/SemaChecking.cpp +++ b/clang/lib/Sema/SemaChecking.cpp @@ -5557,7 +5557,7 @@ static void CheckNonNullArguments(Sema &S, SourceLocation CallSiteLoc) { assert((FDecl || Proto) && "Need a function declaration or prototype"); - // Already checked by by constant evaluator. + // Already checked by constant evaluator. if (S.isConstantEvaluated()) return; // Check the attributes attached to the method/function itself. @@ -17722,7 +17722,7 @@ ExprResult Sema::SemaBuiltinMatrixColumnMajorLoad(CallExpr *TheCall, } else ColumnsExpr = nullptr; - // If any any part of the result matrix type is still pending, just use + // If any part of the result matrix type is still pending, just use // Context.DependentTy, until all parts are resolved. if ((RowsExpr && RowsExpr->isTypeDependent()) || (ColumnsExpr && ColumnsExpr->isTypeDependent())) { diff --git a/clang/lib/Sema/SemaCodeComplete.cpp b/clang/lib/Sema/SemaCodeComplete.cpp index 2da5880..baf5676 100644 --- a/clang/lib/Sema/SemaCodeComplete.cpp +++ b/clang/lib/Sema/SemaCodeComplete.cpp @@ -8514,7 +8514,7 @@ void Sema::CodeCompleteObjCImplementationCategory(Scope *S, CodeCompleter->getCodeCompletionTUInfo(), CodeCompletionContext::CCC_ObjCCategoryName); - // Add all of the categories that have have corresponding interface + // Add all of the categories that have corresponding interface // declarations in this class and any of its superclasses, except for // already-implemented categories in the class itself. llvm::SmallPtrSet CategoryNames; diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index a164d9a..3bec6b0 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -19339,7 +19339,7 @@ void Sema::ActOnEnumBody(SourceLocation EnumLoc, SourceRange BraceRange, } } - // If we have have an empty set of enumerators we still need one bit. + // If we have an empty set of enumerators we still need one bit. // From [dcl.enum]p8 // If the enumerator-list is empty, the values of the enumeration are as if // the enumeration had a single enumerator with value 0 diff --git a/clang/lib/Sema/SemaDeclAttr.cpp b/clang/lib/Sema/SemaDeclAttr.cpp index a747eb7..2510631 100644 --- a/clang/lib/Sema/SemaDeclAttr.cpp +++ b/clang/lib/Sema/SemaDeclAttr.cpp @@ -3150,7 +3150,7 @@ static void handleWarnUnusedResult(Sema &S, Decl *D, const ParsedAttr &AL) { if (LO.CPlusPlus && !LO.CPlusPlus20) S.Diag(AL.getLoc(), diag::ext_cxx20_attr) << AL; - // Since this this is spelled [[nodiscard]], get the optional string + // Since this is spelled [[nodiscard]], get the optional string // literal. If in C++ mode, but not in C++2a mode, diagnose as an // extension. // FIXME: C2x should support this feature as well, even as an extension. diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index 84d7cf1..a15824f 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -3100,7 +3100,7 @@ void Sema::CheckOverrideControl(NamedDecl *D) { return; if (MD && !MD->isVirtual()) { - // If we have a non-virtual method, check if if hides a virtual method. + // If we have a non-virtual method, check if it hides a virtual method. // (In that case, it's most likely the method has the wrong type.) SmallVector OverloadedMethods; FindHiddenVirtualMethods(MD, OverloadedMethods); @@ -12981,7 +12981,7 @@ bool Sema::CheckUsingDeclQualifier(SourceLocation UsingLoc, bool HasTypename, // Salient point: SS doesn't have to name a base class as long as // lookup only finds members from base classes. Therefore we can - // diagnose here only if we can prove that that can't happen, + // diagnose here only if we can prove that can't happen, // i.e. if the class hierarchies provably don't intersect. // TODO: it would be nice if "definitely valid" results were cached diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp index c093eab..0cf7926 100644 --- a/clang/lib/Sema/SemaExprCXX.cpp +++ b/clang/lib/Sema/SemaExprCXX.cpp @@ -8446,7 +8446,7 @@ class TransformTypos : public TreeTransform { return DRE->getFoundDecl(); if (auto *ME = dyn_cast(E)) return ME->getFoundDecl(); - // FIXME: Add any other expr types that could be be seen by the delayed typo + // FIXME: Add any other expr types that could be seen by the delayed typo // correction TreeTransform for which the corresponding TypoCorrection could // contain multiple decls. return nullptr; diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp index d455bed..68f5f30 100644 --- a/clang/lib/Sema/SemaInit.cpp +++ b/clang/lib/Sema/SemaInit.cpp @@ -1528,8 +1528,8 @@ void InitListChecker::CheckComplexType(const InitializedEntity &Entity, // As an extension, clang supports complex initializers, which initialize // a complex number component-wise. When an explicit initializer list for - // a complex number contains two two initializers, this extension kicks in: - // it exepcts the initializer list to contain two elements convertible to + // a complex number contains two initializers, this extension kicks in: + // it expects the initializer list to contain two elements convertible to // the element type of the complex type. The first element initializes // the real part, and the second element intitializes the imaginary part. diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp index 4f5d393..2772ac6 100644 --- a/clang/lib/Sema/SemaOpenMP.cpp +++ b/clang/lib/Sema/SemaOpenMP.cpp @@ -20968,8 +20968,8 @@ public: } // Pointer arithmetic is the only thing we expect to happen here so after we - // make sure the binary operator is a pointer type, the we only thing need - // to to is to visit the subtree that has the same type as root (so that we + // make sure the binary operator is a pointer type, the only thing we need + // to do is to visit the subtree that has the same type as root (so that we // know the other subtree is just an offset) Expr *LE = BO->getLHS()->IgnoreParenImpCasts(); Expr *RE = BO->getRHS()->IgnoreParenImpCasts(); @@ -21739,7 +21739,7 @@ static void checkMappableExpressionList( /*WhereFoundClauseKind=*/OMPC_map); // Save the components and declaration to create the clause. For purposes of - // the clause creation, any component list that has has base 'this' uses + // the clause creation, any component list that has base 'this' uses // null as base declaration. MVLI.VarComponents.resize(MVLI.VarComponents.size() + 1); MVLI.VarComponents.back().append(CurComponents.begin(), diff --git a/clang/lib/Sema/SemaOverload.cpp b/clang/lib/Sema/SemaOverload.cpp index 7972f99..f2c897d 100644 --- a/clang/lib/Sema/SemaOverload.cpp +++ b/clang/lib/Sema/SemaOverload.cpp @@ -10289,7 +10289,7 @@ OverloadCandidateSet::BestViableFunction(Sema &S, SourceLocation Loc, } else if (Cand->NotValidBecauseConstraintExprHasError()) { // This candidate has constraint that we were unable to evaluate because // it referenced an expression that contained an error. Rather than fall - // back onto a potentially unintended candidate (made worse by by + // back onto a potentially unintended candidate (made worse by // subsuming constraints), treat this as 'no viable candidate'. Best = end(); return OR_No_Viable_Function; diff --git a/clang/lib/Sema/SemaStmtAttr.cpp b/clang/lib/Sema/SemaStmtAttr.cpp index b03c055..7a35d71 100644 --- a/clang/lib/Sema/SemaStmtAttr.cpp +++ b/clang/lib/Sema/SemaStmtAttr.cpp @@ -311,7 +311,7 @@ CheckForIncompatibleAttributes(Sema &S, // come in two variants: a state form and a numeric form. The state form // selectively defaults/enables/disables the transformation for the loop // (for unroll, default indicates full unrolling rather than enabling the - // transformation). The numeric form form provides an integer hint (for + // transformation). The numeric form provides an integer hint (for // example, unroll count) to the transformer. The following array accumulates // the hints encountered while iterating through the attributes to check for // compatibility. diff --git a/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp b/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp index 49be412..636fabd 100644 --- a/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp +++ b/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp @@ -2268,7 +2268,7 @@ Decl *TemplateDeclInstantiator::VisitFunctionDecl( // In C++, the previous declaration we find might be a tag type // (class or enum). In this case, the new declaration will hide the - // tag type. Note that this does does not apply if we're declaring a + // tag type. Note that this does not apply if we're declaring a // typedef (C++ [dcl.typedef]p4). if (Previous.isSingleTagDecl()) Previous.clear(); @@ -2661,7 +2661,7 @@ Decl *TemplateDeclInstantiator::VisitCXXMethodDecl( // In C++, the previous declaration we find might be a tag type // (class or enum). In this case, the new declaration will hide the - // tag type. Note that this does does not apply if we're declaring a + // tag type. Note that this does not apply if we're declaring a // typedef (C++ [dcl.typedef]p4). if (Previous.isSingleTagDecl()) Previous.clear(); diff --git a/clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp b/clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp index 2d2ddcd..a45927e 100644 --- a/clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp @@ -1004,7 +1004,7 @@ bool ObjCDeallocChecker::instanceDeallocIsOnStack(const CheckerContext &C, return false; } -/// Returns true if the ID is a class in which which is known to have +/// Returns true if the ID is a class in which is known to have /// a separate teardown lifecycle. In this case, -dealloc warnings /// about missing releases should be suppressed. bool ObjCDeallocChecker::classHasSeparateTeardown( diff --git a/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp index 5613b8f..56a1203 100644 --- a/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp @@ -854,7 +854,7 @@ protected: // If a variable is dead (is not referenced directly or indirectly after // some point), it will be removed from the Store before the end of its // actual lifetime. - // This means that that if the ownership status didn't change, CurrOwners + // This means that if the ownership status didn't change, CurrOwners // must be a superset of, but not necessarily equal to ExitOwners. return !llvm::set_is_subset(ExitOwners, CurrOwners); } diff --git a/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp b/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp index 5109ae6..e7a535e 100644 --- a/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp @@ -969,7 +969,7 @@ void RefLeakReport::findBindingToReport(CheckerContext &Ctx, // Let's pick one of them at random (if there is something to pick from). AllocBindingToReport = AllVarBindings[0].first; - // Because 'AllocBindingToReport' is not the the same as + // Because 'AllocBindingToReport' is not the same as // 'AllocFirstBinding', we need to explain how the leaking object // got from one to another. // diff --git a/clang/lib/StaticAnalyzer/Core/TextDiagnostics.cpp b/clang/lib/StaticAnalyzer/Core/TextDiagnostics.cpp index 48c82cf..bc1c3ef 100644 --- a/clang/lib/StaticAnalyzer/Core/TextDiagnostics.cpp +++ b/clang/lib/StaticAnalyzer/Core/TextDiagnostics.cpp @@ -32,7 +32,7 @@ using namespace tooling; namespace { /// Emitsd minimal diagnostics (report message + notes) for the 'none' output -/// type to the standard error, or to to compliment many others. Emits detailed +/// type to the standard error, or to compliment many others. Emits detailed /// diagnostics in textual format for the 'text' output type. class TextDiagnostics : public PathDiagnosticConsumer { PathDiagnosticConsumerOptions DiagOpts; diff --git a/clang/test/Analysis/lambdas.cpp b/clang/test/Analysis/lambdas.cpp index f86a6d4..c7463ef 100644 --- a/clang/test/Analysis/lambdas.cpp +++ b/clang/test/Analysis/lambdas.cpp @@ -338,7 +338,7 @@ void captureByReference() { local1++; }; - // Don't treat as a dead store because local1 was was captured by reference. + // Don't treat as a dead store because local1 was captured by reference. local1 = 7; // no-warning lambda1(); @@ -349,7 +349,7 @@ void captureByReference() { local2++; // Implicit capture by reference }; - // Don't treat as a dead store because local2 was was captured by reference. + // Don't treat as a dead store because local2 was captured by reference. local2 = 7; // no-warning lambda2(); diff --git a/clang/test/Parser/declarators.c b/clang/test/Parser/declarators.c index c294bd0..464fafe 100644 --- a/clang/test/Parser/declarators.c +++ b/clang/test/Parser/declarators.c @@ -60,7 +60,7 @@ float *test7(void) { return &b.y; // expected-warning {{incompatible pointer types returning 'int *' from a function with result type 'float *'}} } -struct xyz test8(void) { return a; } // a should be be marked invalid, no diag. +struct xyz test8(void) { return a; } // a should be marked invalid, no diag. // Verify that implicit int still works. diff --git a/clang/test/Sema/builtin-align.c b/clang/test/Sema/builtin-align.c index 9c73218..bf9a892 100644 --- a/clang/test/Sema/builtin-align.c +++ b/clang/test/Sema/builtin-align.c @@ -64,7 +64,7 @@ void test_return_type(void *ptr, int i, long l) { _Static_assert(check_same_type(void *, result_type_ptr), "Should return void*"); _Static_assert(check_same_type(int, result_type_int), "Should return int"); _Static_assert(check_same_type(long, result_type_long), "Should return long"); - // Check that we can use the alignment builtins on on array types (result should decay) + // Check that we can use the alignment builtins on array types (result should decay) _Static_assert(check_same_type(char *, result_type_char_array), "Using the builtins on an array should yield the decayed type"); #endif diff --git a/clang/test/SemaCXX/warn-thread-safety-parsing.cpp b/clang/test/SemaCXX/warn-thread-safety-parsing.cpp index d014fc3..0c5b0cc 100644 --- a/clang/test/SemaCXX/warn-thread-safety-parsing.cpp +++ b/clang/test/SemaCXX/warn-thread-safety-parsing.cpp @@ -1240,7 +1240,7 @@ void call_method_ptr_inst(UnFoo* f) { int temp; void empty_back_edge() { - // Create a back edge to a block with with no statements + // Create a back edge to a block with no statements for (;;) { ++temp; if (temp > 10) break; diff --git a/clang/test/SemaTemplate/temp_arg_nontype.cpp b/clang/test/SemaTemplate/temp_arg_nontype.cpp index d3e9686..8adc744 100644 --- a/clang/test/SemaTemplate/temp_arg_nontype.cpp +++ b/clang/test/SemaTemplate/temp_arg_nontype.cpp @@ -398,7 +398,7 @@ namespace partial_order_different_types { namespace partial_order_references { // FIXME: The standard does not appear to consider the second specialization - // to be more more specialized than the first! The problem is that deducing + // to be more specialized than the first! The problem is that deducing // an 'int&' parameter from an argument 'R' results in a type mismatch, // because the parameter has a reference type and the argument is an // expression and thus does not have reference type. We resolve this by diff --git a/clang/unittests/Analysis/CloneDetectionTest.cpp b/clang/unittests/Analysis/CloneDetectionTest.cpp index f8f3602..fe65fab 100644 --- a/clang/unittests/Analysis/CloneDetectionTest.cpp +++ b/clang/unittests/Analysis/CloneDetectionTest.cpp @@ -64,7 +64,7 @@ TEST(CloneDetector, FilterFunctionsByName) { CloneDetectionVisitor Visitor(Detector); Visitor.TraverseTranslationUnitDecl(TU); - // Find clones with the usual settings, but but we want to filter out + // Find clones with the usual settings, but we want to filter out // all statements from functions which names start with "bar". std::vector CloneGroups; Detector.findClones(CloneGroups, NoBarFunctionConstraint(), diff --git a/clang/utils/TableGen/ClangSACheckersEmitter.cpp b/clang/utils/TableGen/ClangSACheckersEmitter.cpp index 22bec37..2a2e466 100644 --- a/clang/utils/TableGen/ClangSACheckersEmitter.cpp +++ b/clang/utils/TableGen/ClangSACheckersEmitter.cpp @@ -219,7 +219,7 @@ void clang::EmitClangSACheckers(RecordKeeper &Records, raw_ostream &OS) { // - DESCRIPTION // - DEFAULT: The default value for this option. // - // The full option can be specified in the command like like this: + // The full option can be specified in the command like this: // -analyzer-config PACKAGENAME:OPTIONNAME=VALUE OS << "\n" "#ifdef GET_PACKAGE_OPTIONS\n"; @@ -319,7 +319,7 @@ void clang::EmitClangSACheckers(RecordKeeper &Records, raw_ostream &OS) { // - DESCRIPTION // - DEFAULT: The default value for this option. // - // The full option can be specified in the command like like this: + // The full option can be specified in the command like this: // -analyzer-config CHECKERNAME:OPTIONNAME=VALUE OS << "\n" "#ifdef GET_CHECKER_OPTIONS\n";