From 5a06334c51aa75d7f044785a495cf2de5bf13a9c Mon Sep 17 00:00:00 2001 From: Jordan Rupprecht Date: Thu, 15 Dec 2022 20:38:32 -0800 Subject: [PATCH] [Format] Capture `FormatStyle` by value to avoid use-after-free. Fixes the test failure in 240e29c5015d246de7fb5e4421aa93042fada59b, reported on the D140058 review thread. --- clang/lib/Format/Format.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp index c553a5b..77f6892 100644 --- a/clang/lib/Format/Format.cpp +++ b/clang/lib/Format/Format.cpp @@ -3404,7 +3404,7 @@ reformat(const FormatStyle &Style, StringRef Code, if (Style.InsertBraces) { FormatStyle S = Expanded; S.InsertBraces = true; - Passes.emplace_back([&](const Environment &Env) { + Passes.emplace_back([&, S](const Environment &Env) { return BracesInserter(Env, S).process(/*SkipAnnotation=*/true); }); } @@ -3412,7 +3412,7 @@ reformat(const FormatStyle &Style, StringRef Code, if (Style.RemoveBracesLLVM) { FormatStyle S = Expanded; S.RemoveBracesLLVM = true; - Passes.emplace_back([&](const Environment &Env) { + Passes.emplace_back([&, S](const Environment &Env) { return BracesRemover(Env, S).process(/*SkipAnnotation=*/true); }); } @@ -3420,7 +3420,7 @@ reformat(const FormatStyle &Style, StringRef Code, if (Style.RemoveSemicolon) { FormatStyle S = Expanded; S.RemoveSemicolon = true; - Passes.emplace_back([&](const Environment &Env) { + Passes.emplace_back([&, S](const Environment &Env) { return SemiRemover(Env, S).process(/*SkipAnnotation=*/true); }); } -- 2.7.4