[clang] 5a06334 - [Format] Capture `FormatStyle` by value to avoid use-after-free.
Jordan Rupprecht via cfe-commits
cfe-commits at lists.llvm.org
Thu Dec 15 20:38:39 PST 2022
Author: Jordan Rupprecht
Date: 2022-12-15T20:38:32-08:00
New Revision: 5a06334c51aa75d7f044785a495cf2de5bf13a9c
URL: https://github.com/llvm/llvm-project/commit/5a06334c51aa75d7f044785a495cf2de5bf13a9c
DIFF: https://github.com/llvm/llvm-project/commit/5a06334c51aa75d7f044785a495cf2de5bf13a9c.diff
LOG: [Format] Capture `FormatStyle` by value to avoid use-after-free.
Fixes the test failure in 240e29c5015d246de7fb5e4421aa93042fada59b, reported on the D140058 review thread.
Added:
Modified:
clang/lib/Format/Format.cpp
Removed:
################################################################################
diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp
index c553a5bf2a3e9..77f6892e5d09a 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);
});
}
More information about the cfe-commits
mailing list