]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore: do not capture label using &
authorKefu Chai <kchai@redhat.com>
Wed, 28 Apr 2021 08:08:08 +0000 (16:08 +0800)
committerKefu Chai <kchai@redhat.com>
Wed, 28 Apr 2021 12:54:22 +0000 (20:54 +0800)
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 <kchai@redhat.com>
src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc

index c325dc4845f97c4af7e212d9d8c70603100bf2f3..1acde960b4e2de8df4f6d17200cc31bed8a4d482 100644 (file)
@@ -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<bool> {
          if (biter == eiter  || result.size() == config.max_result_size) {