Author: Manna, Soumi
Date: 2023-05-05T18:55:49-07:00
New Revision: babe8629d73fb52bf85516222cd484da0eed6c12

URL: 
https://github.com/llvm/llvm-project/commit/babe8629d73fb52bf85516222cd484da0eed6c12
DIFF: 
https://github.com/llvm/llvm-project/commit/babe8629d73fb52bf85516222cd484da0eed6c12.diff

LOG: [NFC][Clang] Fix static analyzer tool remarks about large copies by values 
in Format.cpp file

Reported by Static Analyzer Tool, Coverity:

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 
808 bytes) by value, which exceeds the high threshold of 512 bytes

This patch uses original code but with an init capture that does a move instead 
of a copy.

Reviewed By: tahonermann, erichkeane, MyDeveloperDay, owenpan, 
HazardyKnusperkeks

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

Added: 
    

Modified: 
    clang/lib/Format/Format.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp
index f7c82c581bfc9..ae3f822a2b323 100644
--- a/clang/lib/Format/Format.cpp
+++ b/clang/lib/Format/Format.cpp
@@ -3485,7 +3485,7 @@ reformat(const FormatStyle &Style, StringRef Code,
     if (Style.InsertBraces) {
       FormatStyle S = Expanded;
       S.InsertBraces = true;
-      Passes.emplace_back([&, S](const Environment &Env) {
+      Passes.emplace_back([&, S = std::move(S)](const Environment &Env) {
         return BracesInserter(Env, S).process(/*SkipAnnotation=*/true);
       });
     }
@@ -3493,7 +3493,7 @@ reformat(const FormatStyle &Style, StringRef Code,
     if (Style.RemoveBracesLLVM) {
       FormatStyle S = Expanded;
       S.RemoveBracesLLVM = true;
-      Passes.emplace_back([&, S](const Environment &Env) {
+      Passes.emplace_back([&, S = std::move(S)](const Environment &Env) {
         return BracesRemover(Env, S).process(/*SkipAnnotation=*/true);
       });
     }
@@ -3501,7 +3501,7 @@ reformat(const FormatStyle &Style, StringRef Code,
     if (Style.RemoveSemicolon) {
       FormatStyle S = Expanded;
       S.RemoveSemicolon = true;
-      Passes.emplace_back([&, S](const Environment &Env) {
+      Passes.emplace_back([&, S = std::move(S)](const Environment &Env) {
         return SemiRemover(Env, S).process(/*SkipAnnotation=*/true);
       });
     }


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to