flx updated this revision to Diff 326793. flx added a comment. Remove include.
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D97577/new/ https://reviews.llvm.org/D97577 Files: clang-tools-extra/clang-tidy/performance/ForRangeCopyCheck.cpp clang-tools-extra/test/clang-tidy/checkers/performance-for-range-copy.cpp Index: clang-tools-extra/test/clang-tidy/checkers/performance-for-range-copy.cpp =================================================================== --- clang-tools-extra/test/clang-tidy/checkers/performance-for-range-copy.cpp +++ clang-tools-extra/test/clang-tidy/checkers/performance-for-range-copy.cpp @@ -60,13 +60,13 @@ void negativeUserDefinedConversion() { Convertible C[0]; - for (const S &S1 : C) { + for (const S S1 : C) { } } void negativeImplicitConstructorConversion() { ConstructorConvertible C[0]; - for (const S &S1 : C) { + for (const S S1 : C) { } } Index: clang-tools-extra/clang-tidy/performance/ForRangeCopyCheck.cpp =================================================================== --- clang-tools-extra/clang-tidy/performance/ForRangeCopyCheck.cpp +++ clang-tools-extra/clang-tidy/performance/ForRangeCopyCheck.cpp @@ -45,10 +45,14 @@ hasOverloadedOperatorName("*"), callee( cxxMethodDecl(returns(unless(hasCanonicalType(referenceType())))))); + auto NotConstructedByCopy = cxxConstructExpr( + hasDeclaration(cxxConstructorDecl(unless(isCopyConstructor())))); + auto ConstructedByConversion = cxxMemberCallExpr(callee(cxxConversionDecl())); auto LoopVar = varDecl(HasReferenceOrPointerTypeOrIsAllowed, - unless(hasInitializer(expr(hasDescendant(expr(anyOf( - materializeTemporaryExpr(), IteratorReturnsValueType))))))); + unless(hasInitializer(expr(hasDescendant(expr( + anyOf(materializeTemporaryExpr(), IteratorReturnsValueType, + NotConstructedByCopy, ConstructedByConversion))))))); Finder->addMatcher( traverse(TK_AsIs, cxxForRangeStmt(hasLoopVariable(LoopVar.bind("loopVar")))
Index: clang-tools-extra/test/clang-tidy/checkers/performance-for-range-copy.cpp =================================================================== --- clang-tools-extra/test/clang-tidy/checkers/performance-for-range-copy.cpp +++ clang-tools-extra/test/clang-tidy/checkers/performance-for-range-copy.cpp @@ -60,13 +60,13 @@ void negativeUserDefinedConversion() { Convertible C[0]; - for (const S &S1 : C) { + for (const S S1 : C) { } } void negativeImplicitConstructorConversion() { ConstructorConvertible C[0]; - for (const S &S1 : C) { + for (const S S1 : C) { } } Index: clang-tools-extra/clang-tidy/performance/ForRangeCopyCheck.cpp =================================================================== --- clang-tools-extra/clang-tidy/performance/ForRangeCopyCheck.cpp +++ clang-tools-extra/clang-tidy/performance/ForRangeCopyCheck.cpp @@ -45,10 +45,14 @@ hasOverloadedOperatorName("*"), callee( cxxMethodDecl(returns(unless(hasCanonicalType(referenceType())))))); + auto NotConstructedByCopy = cxxConstructExpr( + hasDeclaration(cxxConstructorDecl(unless(isCopyConstructor())))); + auto ConstructedByConversion = cxxMemberCallExpr(callee(cxxConversionDecl())); auto LoopVar = varDecl(HasReferenceOrPointerTypeOrIsAllowed, - unless(hasInitializer(expr(hasDescendant(expr(anyOf( - materializeTemporaryExpr(), IteratorReturnsValueType))))))); + unless(hasInitializer(expr(hasDescendant(expr( + anyOf(materializeTemporaryExpr(), IteratorReturnsValueType, + NotConstructedByCopy, ConstructedByConversion))))))); Finder->addMatcher( traverse(TK_AsIs, cxxForRangeStmt(hasLoopVariable(LoopVar.bind("loopVar")))
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits