Fix use-after-scope in dex2oat cmdline parsing
Bug: 227217805
Change-Id: Ibf2f5e4892fc3199ec44a09721d4cbb921901732
diff --git a/cmdline/detail/cmdline_parse_argument_detail.h b/cmdline/detail/cmdline_parse_argument_detail.h
index 95883cc..0bde57b 100644
--- a/cmdline/detail/cmdline_parse_argument_detail.h
+++ b/cmdline/detail/cmdline_parse_argument_detail.h
@@ -150,9 +150,11 @@
for (auto cname : names_) {
std::string_view name = cname;
auto& os = vios.Stream();
+ // nblank gets captured by print_once, so needs to be declared here.
+ std::string_view nblank;
std::function<void()> print_once;
if (using_blanks_) {
- std::string_view nblank = name.substr(0, name.find("_"));
+ nblank = name.substr(0, name.find("_"));
print_once = [&]() {
os << nblank;
if (has_value_map_) {