Manna created this revision. Manna added a reviewer: tahonermann. Herald added subscribers: manas, ASDenysPetrov, dkrupp, donat.nagy, Szelethus, a.sidorin, baloghadamsoftware. Herald added projects: All, clang, clang-format. Herald added reviewers: rymiel, HazardyKnusperkeks, owenpan, MyDeveloperDay. Manna requested review of this revision.
Reported by Static Analyzer Tool: Inside "Format.cpp" file, in clang::format::internal::reformat(clang::format::FormatStyle const &, llvm::StringRef, llvm::ArrayRef<clang::tooling::Range>, unsigned int, unsigned int, unsigned int, llvm::StringRef, clang::format::FormattingAttemptStatus *)::[lambda(clang::format::Environment const &) (instance 4)]::operator ()(clang::format::Environment const &): A very large function call parameter exceeding the high threshold is passed by value. pass_by_value: Capturing variable S of type clang::format::FormatStyle (size 800 bytes) by value, which exceeds the high threshold of 512 bytes This patch removes redundant capturing variable S and passes type clang::format::FormatStyle Expanded instead in BracesInserter(), BracesRemover(), and SemiRemover(). Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D149647 Files: clang/lib/Format/Format.cpp Index: clang/lib/Format/Format.cpp =================================================================== --- clang/lib/Format/Format.cpp +++ clang/lib/Format/Format.cpp @@ -3483,26 +3483,23 @@ } if (Style.InsertBraces) { - FormatStyle S = Expanded; - S.InsertBraces = true; - Passes.emplace_back([&, S](const Environment &Env) { - return BracesInserter(Env, S).process(/*SkipAnnotation=*/true); + Expanded.InsertBraces = true; + Passes.emplace_back([&](const Environment &Env) { + return BracesInserter(Env, Expanded).process(/*SkipAnnotation=*/true); }); } if (Style.RemoveBracesLLVM) { - FormatStyle S = Expanded; - S.RemoveBracesLLVM = true; - Passes.emplace_back([&, S](const Environment &Env) { - return BracesRemover(Env, S).process(/*SkipAnnotation=*/true); + Expanded.RemoveBracesLLVM = true; + Passes.emplace_back([&](const Environment &Env) { + return BracesRemover(Env, Expanded).process(/*SkipAnnotation=*/true); }); } if (Style.RemoveSemicolon) { - FormatStyle S = Expanded; - S.RemoveSemicolon = true; - Passes.emplace_back([&, S](const Environment &Env) { - return SemiRemover(Env, S).process(/*SkipAnnotation=*/true); + Expanded.RemoveSemicolon = true; + Passes.emplace_back([&](const Environment &Env) { + return SemiRemover(Env, Expanded).process(/*SkipAnnotation=*/true); }); }
Index: clang/lib/Format/Format.cpp =================================================================== --- clang/lib/Format/Format.cpp +++ clang/lib/Format/Format.cpp @@ -3483,26 +3483,23 @@ } if (Style.InsertBraces) { - FormatStyle S = Expanded; - S.InsertBraces = true; - Passes.emplace_back([&, S](const Environment &Env) { - return BracesInserter(Env, S).process(/*SkipAnnotation=*/true); + Expanded.InsertBraces = true; + Passes.emplace_back([&](const Environment &Env) { + return BracesInserter(Env, Expanded).process(/*SkipAnnotation=*/true); }); } if (Style.RemoveBracesLLVM) { - FormatStyle S = Expanded; - S.RemoveBracesLLVM = true; - Passes.emplace_back([&, S](const Environment &Env) { - return BracesRemover(Env, S).process(/*SkipAnnotation=*/true); + Expanded.RemoveBracesLLVM = true; + Passes.emplace_back([&](const Environment &Env) { + return BracesRemover(Env, Expanded).process(/*SkipAnnotation=*/true); }); } if (Style.RemoveSemicolon) { - FormatStyle S = Expanded; - S.RemoveSemicolon = true; - Passes.emplace_back([&, S](const Environment &Env) { - return SemiRemover(Env, S).process(/*SkipAnnotation=*/true); + Expanded.RemoveSemicolon = true; + Passes.emplace_back([&](const Environment &Env) { + return SemiRemover(Env, Expanded).process(/*SkipAnnotation=*/true); }); }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits