]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librbd: avoid aggregate-initializing IsWriteOpVisitor 26838/head
authorWillem Jan Withagen <wjw@digiware.nl>
Fri, 8 Mar 2019 13:59:09 +0000 (14:59 +0100)
committerWillem Jan Withagen <wjw@digiware.nl>
Fri, 8 Mar 2019 14:55:54 +0000 (15:55 +0100)
Clang 8 complains about missing dtor, and this circumvents this problem.
```
/home/jenkins/workspace/ceph-master/src/librbd/io/ImageDispatchSpec.cc:136:48:
error: temporary of type 'boost::static_visitor<bool>' has protected
destructor
   return boost::apply_visitor(IsWriteOpVisitor{}, m_request);
                                                ^
/home/jenkins/workspace/ceph-master/src/librbd/io/ImageDispatchSpec.cc:152:28:
note: in instantiation of member function
'librbd::io::ImageDispatchSpec<librbd::ImageCtx>::is_write_op' requested
here
template class librbd::io::ImageDispatchSpec<librbd::ImageCtx>;
                            ^
/usr/local/include/boost/variant/static_visitor.hpp:53:5: note: declared
protected here
     ~static_visitor() = default;
     ^
1 error generated.
gmake[2]: *** [src/librbd/CMakeFiles/rbd_internal.dir/build.make:895:
src/librbd/CMakeFiles/rbd_internal.dir/io/ImageDispatchSpec.cc.o] Error 1
```

The details of the problem are explained in more detail in:
https://github.com/ceph/ceph/pull/26301/commits/09870d7a083913b5a3830ba8b0be04d0b0996aca

Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
src/librbd/io/ImageDispatchSpec.cc

index dd39e1d5b013b1ee06f388f5cf57624eabfccf0a..33020403b5a17e0d2cfbad2ce1373e9439707ec1 100644 (file)
@@ -133,7 +133,7 @@ uint64_t ImageDispatchSpec<I>::extents_length() {
 
 template <typename I>
 bool ImageDispatchSpec<I>::is_write_op() const {
-  return boost::apply_visitor(IsWriteOpVisitor{}, m_request);
+  return boost::apply_visitor(IsWriteOpVisitor(), m_request);
 }
 
 template <typename I>