From e69e3dae0330d48f423338933da4df8215654796 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Wed, 28 Apr 2021 16:08:08 +0800 Subject: [PATCH] crimson/os/seastore: do not capture label using & structured binding does not define variables. unlike GCC, Clang does not allow this. this change address following build failures with clang: ../src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc:210:24: note: 'result' declared here auto &[complete, result] = ret; ^ ../src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc:214:6: error: reference to local binding 'complete' declared in enclosing lambda expression complete = biter == eiter; ^ Signed-off-by: Kefu Chai --- .../os/seastore/omap_manager/btree/omap_btree_node_impl.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc b/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc index c325dc4845f97..1acde960b4e2d 100644 --- a/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc +++ b/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc @@ -207,7 +207,8 @@ OMapInnerNode::list( iter_cend(), list_bare_ret(false, {}), [=, &start](auto &biter, auto &eiter, auto &ret) { - auto &[complete, result] = ret; + auto &complete = ret.first; + auto &result = ret.second; return crimson::do_until( [&, config, oc, this]() -> list_ertr::future { if (biter == eiter || result.size() == config.max_result_size) { -- 2.39.5