[ 
https://issues.apache.org/jira/browse/ARROW-18135?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated ARROW-18135:
-----------------------------------
    Labels: pull-request-available  (was: )

> [C++] Avoid warnings that ExecBatch::length may be uninitialized
> ----------------------------------------------------------------
>
>                 Key: ARROW-18135
>                 URL: https://issues.apache.org/jira/browse/ARROW-18135
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: C++
>            Reporter: Yaron Gvili
>            Assignee: Yaron Gvili
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Here is a build log of the master branch that shows the warnings:
> {code:java}
> [131/534] Building CXX object 
> src/arrow/CMakeFiles/arrow_objlib.dir/compute/exec/exec_plan.cc.o
> In file included from 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/exec/exec_plan.cc:25:
> In constructor 
> ‘arrow::compute::ExecBatch::ExecBatch(arrow::compute::ExecBatch&&)’,
>     inlined from 
> ‘arrow::compute::DeclarationToExecBatchesAsync(arrow::compute::Declaration, 
> arrow::compute::ExecContext*)::<lambda()>::<lambda(std::optional<arrow::compute::ExecBatch>)>’
>  at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/exec/exec_plan.cc:605:73,
>     inlined from ‘_OIter std::transform(_IIter, _IIter, _OIter, 
> _UnaryOperation) [with _IIter = 
> std::move_iterator<__gnu_cxx::__normal_iterator<std::optional<arrow::compute::ExecBatch>*,
>  std::vector<std::optional<arrow::compute::ExecBatch>, 
> std::allocator<std::optional<arrow::compute::ExecBatch> > > > >; _OIter = 
> std::back_insert_iterator<std::vector<arrow::compute::ExecBatch> >; 
> _UnaryOperation = 
> arrow::compute::DeclarationToExecBatchesAsync(arrow::compute::Declaration, 
> arrow::compute::ExecContext*)::<lambda()>::<lambda(std::optional<arrow::compute::ExecBatch>)>]’
>  at /usr/include/c++/11/bits/stl_algo.h:4296:12,
>     inlined from ‘std::vector<To> arrow::internal::MapVector(Fn&&, 
> std::vector<_ValT>&&) [with Fn = 
> arrow::compute::DeclarationToExecBatchesAsync(arrow::compute::Declaration, 
> arrow::compute::ExecContext*)::<lambda()>::<lambda(std::optional<arrow::compute::ExecBatch>)>;
>  From = std::optional<arrow::compute::ExecBatch>; To = 
> arrow::compute::ExecBatch]’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/util/vector.h:102:17,
>     inlined from 
> ‘arrow::compute::DeclarationToExecBatchesAsync(arrow::compute::Declaration, 
> arrow::compute::ExecContext*)::<lambda()>’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/exec/exec_plan.cc:604:44,
>     inlined from ‘typename std::enable_if<(((! 
> std::is_void<ContinueResult>::value) && (! 
> arrow::detail::is_future<ContinueResult>::value)) && ((! 
> NextFuture::is_empty) || std::is_same<ContinueResult, 
> arrow::Status>::value))>::type 
> arrow::detail::ContinueFuture::operator()(NextFuture, ContinueFunc&&, Args&& 
> ...) const [with ContinueFunc = 
> arrow::compute::DeclarationToExecBatchesAsync(arrow::compute::Declaration, 
> arrow::compute::ExecContext*)::<lambda()>; Args = {}; ContinueResult = 
> arrow::Result<std::vector<arrow::compute::ExecBatch> >; NextFuture = 
> arrow::Future<std::vector<arrow::compute::ExecBatch> >]’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/util/future.h:150:22,
>     inlined from ‘void 
> arrow::detail::ContinueFuture::IgnoringArgsIf(std::true_type, NextFuture&&, 
> ContinueFunc&&, Args&& ...) const [with ContinueFunc = 
> arrow::compute::DeclarationToExecBatchesAsync(arrow::compute::Declaration, 
> arrow::compute::ExecContext*)::<lambda()>; NextFuture = 
> arrow::Future<std::vector<arrow::compute::ExecBatch> >; Args = {const 
> arrow::internal::Empty&}]’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/util/future.h:188:15,
>     inlined from ‘void arrow::Future<T>::ThenOnComplete<OnSuccess, 
> OnFailure>::operator()(const arrow::Result<T>&) && [with OnSuccess = 
> arrow::compute::DeclarationToExecBatchesAsync(arrow::compute::Declaration, 
> arrow::compute::ExecContext*)::<lambda()>; OnFailure = 
> arrow::Future<>::PassthruOnFailure<arrow::compute::DeclarationToExecBatchesAsync(arrow::compute::Declaration,
>  arrow::compute::ExecContext*)::<lambda()> >; T = arrow::internal::Empty]’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/util/future.h:545:39:
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/exec.h:179:21: 
> warning: ‘*(arrow::compute::ExecBatch*)((char*)&<unnamed> + 
> offsetof(std::optional<arrow::compute::ExecBatch>,std::optional<arrow::compute::ExecBatch>::<unnamed>.std::_Optional_base<arrow::compute::ExecBatch,
>  false, false>::<unnamed>)).arrow::compute::ExecBatch::length’ may be used 
> uninitialized [-Wmaybe-uninitialized]
>   179 | struct ARROW_EXPORT ExecBatch {
>       |                     ^~~~~~~~~
> In file included from /usr/include/c++/11/functional:65,
>                  from 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/exec/exec_plan.h:22,
>                  from 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/exec/exec_plan.cc:18:
> /usr/include/c++/11/bits/stl_algo.h: In member function ‘void 
> arrow::Future<T>::ThenOnComplete<OnSuccess, OnFailure>::operator()(const 
> arrow::Result<T>&) && [with OnSuccess = 
> arrow::compute::DeclarationToExecBatchesAsync(arrow::compute::Declaration, 
> arrow::compute::ExecContext*)::<lambda()>; OnFailure = 
> arrow::Future<>::PassthruOnFailure<arrow::compute::DeclarationToExecBatchesAsync(arrow::compute::Declaration,
>  arrow::compute::ExecContext*)::<lambda()> >; T = arrow::internal::Empty]’:
> /usr/include/c++/11/bits/stl_algo.h:4296:31: note: ‘<anonymous>’ declared here
>  4296 |         *__result = __unary_op(*__first);
>       |                     ~~~~~~~~~~^~~~~~~~~~
> [247/534] Building CXX object 
> src/arrow/CMakeFiles/arrow_testing_objlib.dir/compute/exec/test_util.cc.o
> In file included from 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/exec/test_util.h:29,
>                  from 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/exec/test_util.cc:18:
> In constructor 
> ‘arrow::compute::ExecBatch::ExecBatch(arrow::compute::ExecBatch&&)’,
>     inlined from ‘arrow::compute::StartAndCollect(arrow::compute::ExecPlan*, 
> arrow::AsyncGenerator<std::optional<arrow::compute::ExecBatch> 
> >)::<lambda()>::<lambda(std::optional<arrow::compute::ExecBatch>)>’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/exec/test_util.cc:192:73,
>     inlined from ‘_OIter std::transform(_IIter, _IIter, _OIter, 
> _UnaryOperation) [with _IIter = 
> std::move_iterator<__gnu_cxx::__normal_iterator<std::optional<arrow::compute::ExecBatch>*,
>  std::vector<std::optional<arrow::compute::ExecBatch>, 
> std::allocator<std::optional<arrow::compute::ExecBatch> > > > >; _OIter = 
> std::back_insert_iterator<std::vector<arrow::compute::ExecBatch> >; 
> _UnaryOperation = arrow::compute::StartAndCollect(arrow::compute::ExecPlan*, 
> arrow::AsyncGenerator<std::optional<arrow::compute::ExecBatch> 
> >)::<lambda()>::<lambda(std::optional<arrow::compute::ExecBatch>)>]’ at 
> /usr/include/c++/11/bits/stl_algo.h:4296:12,
>     inlined from ‘std::vector<To> arrow::internal::MapVector(Fn&&, 
> std::vector<From>&&) [with Fn = 
> arrow::compute::StartAndCollect(arrow::compute::ExecPlan*, 
> arrow::AsyncGenerator<std::optional<arrow::compute::ExecBatch> 
> >)::<lambda()>::<lambda(std::optional<arrow::compute::ExecBatch>)>; From = 
> std::optional<arrow::compute::ExecBatch>; To = arrow::compute::ExecBatch]’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/util/vector.h:102:17,
>     inlined from ‘arrow::compute::StartAndCollect(arrow::compute::ExecPlan*, 
> arrow::AsyncGenerator<std::optional<arrow::compute::ExecBatch> 
> >)::<lambda()>’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/exec/test_util.cc:191:44,
>     inlined from ‘typename std::enable_if<(((! 
> std::is_void<ContinueResult>::value) && (! 
> arrow::detail::is_future<ContinueResult>::value)) && ((! 
> NextFuture::is_empty) || std::is_same<ContinueResult, 
> arrow::Status>::value))>::type 
> arrow::detail::ContinueFuture::operator()(NextFuture, ContinueFunc&&, Args&& 
> ...) const [with ContinueFunc = 
> arrow::compute::StartAndCollect(arrow::compute::ExecPlan*, 
> arrow::AsyncGenerator<std::optional<arrow::compute::ExecBatch> 
> >)::<lambda()>; Args = {}; ContinueResult = 
> arrow::Result<std::vector<arrow::compute::ExecBatch> >; NextFuture = 
> arrow::Future<std::vector<arrow::compute::ExecBatch> >]’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/util/future.h:150:22,
>     inlined from ‘void 
> arrow::detail::ContinueFuture::IgnoringArgsIf(std::true_type, NextFuture&&, 
> ContinueFunc&&, Args&& ...) const [with ContinueFunc = 
> arrow::compute::StartAndCollect(arrow::compute::ExecPlan*, 
> arrow::AsyncGenerator<std::optional<arrow::compute::ExecBatch> 
> >)::<lambda()>; NextFuture = 
> arrow::Future<std::vector<arrow::compute::ExecBatch> >; Args = {const 
> arrow::internal::Empty&}]’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/util/future.h:188:15,
>     inlined from ‘void arrow::Future<T>::ThenOnComplete<OnSuccess, 
> OnFailure>::operator()(const arrow::Result<T>&) && [with OnSuccess = 
> arrow::compute::StartAndCollect(arrow::compute::ExecPlan*, 
> arrow::AsyncGenerator<std::optional<arrow::compute::ExecBatch> 
> >)::<lambda()>; OnFailure = 
> arrow::Future<>::PassthruOnFailure<arrow::compute::StartAndCollect(arrow::compute::ExecPlan*,
>  arrow::AsyncGenerator<std::optional<arrow::compute::ExecBatch> 
> >)::<lambda()> >; T = arrow::internal::Empty]’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/util/future.h:545:39,
>     inlined from ‘void 
> arrow::Future<T>::WrapResultyOnComplete::Callback<OnComplete>::operator()(const
>  arrow::FutureImpl&) && [with OnComplete = 
> arrow::Future<>::ThenOnComplete<arrow::compute::StartAndCollect(arrow::compute::ExecPlan*,
>  arrow::AsyncGenerator<std::optional<arrow::compute::ExecBatch> 
> >)::<lambda()>, 
> arrow::Future<>::PassthruOnFailure<arrow::compute::StartAndCollect(arrow::compute::ExecPlan*,
>  arrow::AsyncGenerator<std::optional<arrow::compute::ExecBatch> 
> >)::<lambda()> > >; T = arrow::internal::Empty]’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/util/future.h:442:31,
>     inlined from ‘R arrow::internal::FnOnce<R(A ...)>::FnImpl<Fn>::invoke(A&& 
> ...) [with Fn = 
> arrow::Future<>::WrapResultyOnComplete::Callback<arrow::Future<>::ThenOnComplete<arrow::compute::StartAndCollect(arrow::compute::ExecPlan*,
>  arrow::AsyncGenerator<std::optional<arrow::compute::ExecBatch> 
> >)::<lambda()>, 
> arrow::Future<>::PassthruOnFailure<arrow::compute::StartAndCollect(arrow::compute::ExecPlan*,
>  arrow::AsyncGenerator<std::optional<arrow::compute::ExecBatch> 
> >)::<lambda()> > > >; R = void; A = {const arrow::FutureImpl&}]’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/util/functional.h:152:56:
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/exec.h:179:21: 
> warning: ‘*(arrow::compute::ExecBatch*)((char*)&<unnamed> + 
> offsetof(std::optional<arrow::compute::ExecBatch>,std::optional<arrow::compute::ExecBatch>::<unnamed>.std::_Optional_base<arrow::compute::ExecBatch,
>  false, false>::<unnamed>)).arrow::compute::ExecBatch::length’ may be used 
> uninitialized [-Wmaybe-uninitialized]
>   179 | struct ARROW_EXPORT ExecBatch {
>       |                     ^~~~~~~~~
> In file included from /usr/include/c++/11/algorithm:62,
>                  from 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/testing/gtest_util.h:20,
>                  from 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/exec/test_util.h:20,
>                  from 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/exec/test_util.cc:18:
> /usr/include/c++/11/bits/stl_algo.h: In member function ‘R 
> arrow::internal::FnOnce<R(A ...)>::FnImpl<Fn>::invoke(A&& ...) [with Fn = 
> arrow::Future<>::WrapResultyOnComplete::Callback<arrow::Future<>::ThenOnComplete<arrow::compute::StartAndCollect(arrow::compute::ExecPlan*,
>  arrow::AsyncGenerator<std::optional<arrow::compute::ExecBatch> 
> >)::<lambda()>, 
> arrow::Future<>::PassthruOnFailure<arrow::compute::StartAndCollect(arrow::compute::ExecPlan*,
>  arrow::AsyncGenerator<std::optional<arrow::compute::ExecBatch> 
> >)::<lambda()> > > >; R = void; A = {const arrow::FutureImpl&}]’:
> /usr/include/c++/11/bits/stl_algo.h:4296:31: note: ‘<anonymous>’ declared here
>  4296 |         *__result = __unary_op(*__first);
>       |                     ~~~~~~~~~~^~~~~~~~~~
> [381/534] Building CXX object 
> src/arrow/compute/kernels/CMakeFiles/arrow-compute-aggregate-test.dir/hash_aggregate_test.cc.o
> In file included from 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/kernel.h:32,
>                  from 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/function.h:27,
>                  from 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/api_aggregate.h:23,
>                  from 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/kernels/hash_aggregate_test.cc:31:
> In constructor 
> ‘arrow::compute::ExecBatch::ExecBatch(arrow::compute::ExecBatch&&)’,
>     inlined from ‘arrow::compute::{anonymous}::GroupByUsingExecPlan(const 
> arrow::compute::BatchesWithSchema&, const 
> std::vector<std::__cxx11::basic_string<char> >&, const 
> std::vector<arrow::compute::Aggregate>&, bool, 
> arrow::compute::ExecContext*)::<lambda()>::<lambda(std::optional<arrow::compute::ExecBatch>)>’
>  at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/kernels/hash_aggregate_test.cc:155:77,
>     inlined from ‘_OIter std::transform(_IIter, _IIter, _OIter, 
> _UnaryOperation) [with _IIter = 
> std::move_iterator<__gnu_cxx::__normal_iterator<std::optional<arrow::compute::ExecBatch>*,
>  std::vector<std::optional<arrow::compute::ExecBatch>, 
> std::allocator<std::optional<arrow::compute::ExecBatch> > > > >; _OIter = 
> std::back_insert_iterator<std::vector<arrow::compute::ExecBatch> >; 
> _UnaryOperation = arrow::compute::{anonymous}::GroupByUsingExecPlan(const 
> arrow::compute::BatchesWithSchema&, const 
> std::vector<std::__cxx11::basic_string<char> >&, const 
> std::vector<arrow::compute::Aggregate>&, bool, 
> arrow::compute::ExecContext*)::<lambda()>::<lambda(std::optional<arrow::compute::ExecBatch>)>]’
>  at /usr/include/c++/11/bits/stl_algo.h:4296:12,
>     inlined from ‘std::vector<To> arrow::internal::MapVector(Fn&&, 
> std::vector<_ValT>&&) [with Fn = 
> arrow::compute::{anonymous}::GroupByUsingExecPlan(const 
> arrow::compute::BatchesWithSchema&, const 
> std::vector<std::__cxx11::basic_string<char> >&, const 
> std::vector<arrow::compute::Aggregate>&, bool, 
> arrow::compute::ExecContext*)::<lambda()>::<lambda(std::optional<arrow::compute::ExecBatch>)>;
>  From = std::optional<arrow::compute::ExecBatch>; To = 
> arrow::compute::ExecBatch]’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/util/vector.h:102:17,
>     inlined from ‘arrow::compute::{anonymous}::GroupByUsingExecPlan(const 
> arrow::compute::BatchesWithSchema&, const 
> std::vector<std::__cxx11::basic_string<char> >&, const 
> std::vector<arrow::compute::Aggregate>&, bool, 
> arrow::compute::ExecContext*)::<lambda()>’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/kernels/hash_aggregate_test.cc:154:48,
>     inlined from ‘typename std::enable_if<(((! 
> std::is_void<ContinueResult>::value) && (! 
> arrow::detail::is_future<ContinueResult>::value)) && ((! 
> NextFuture::is_empty) || std::is_same<ContinueResult, 
> arrow::Status>::value))>::type 
> arrow::detail::ContinueFuture::operator()(NextFuture, ContinueFunc&&, Args&& 
> ...) const [with ContinueFunc = 
> arrow::compute::{anonymous}::GroupByUsingExecPlan(const 
> arrow::compute::BatchesWithSchema&, const 
> std::vector<std::__cxx11::basic_string<char> >&, const 
> std::vector<arrow::compute::Aggregate>&, bool, 
> arrow::compute::ExecContext*)::<lambda()>; Args = {}; ContinueResult = 
> arrow::Result<std::vector<arrow::compute::ExecBatch> >; NextFuture = 
> arrow::Future<std::vector<arrow::compute::ExecBatch> >]’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/util/future.h:150:22,
>     inlined from ‘void 
> arrow::detail::ContinueFuture::IgnoringArgsIf(std::true_type, NextFuture&&, 
> ContinueFunc&&, Args&& ...) const [with ContinueFunc = 
> arrow::compute::{anonymous}::GroupByUsingExecPlan(const 
> arrow::compute::BatchesWithSchema&, const 
> std::vector<std::__cxx11::basic_string<char> >&, const 
> std::vector<arrow::compute::Aggregate>&, bool, 
> arrow::compute::ExecContext*)::<lambda()>; NextFuture = 
> arrow::Future<std::vector<arrow::compute::ExecBatch> >; Args = {const 
> arrow::internal::Empty&}]’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/util/future.h:188:15,
>     inlined from ‘void arrow::Future<T>::ThenOnComplete<OnSuccess, 
> OnFailure>::operator()(const arrow::Result<T>&) && [with OnSuccess = 
> arrow::compute::{anonymous}::GroupByUsingExecPlan(const 
> arrow::compute::BatchesWithSchema&, const 
> std::vector<std::__cxx11::basic_string<char> >&, const 
> std::vector<arrow::compute::Aggregate>&, bool, 
> arrow::compute::ExecContext*)::<lambda()>; OnFailure = 
> arrow::Future<>::PassthruOnFailure<arrow::compute::{anonymous}::GroupByUsingExecPlan(const
>  arrow::compute::BatchesWithSchema&, const 
> std::vector<std::__cxx11::basic_string<char> >&, const 
> std::vector<arrow::compute::Aggregate>&, bool, 
> arrow::compute::ExecContext*)::<lambda()> >; T = arrow::internal::Empty]’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/util/future.h:545:39,
>     inlined from ‘void 
> arrow::Future<T>::WrapResultyOnComplete::Callback<OnComplete>::operator()(const
>  arrow::FutureImpl&) && [with OnComplete = 
> arrow::Future<>::ThenOnComplete<arrow::compute::{anonymous}::GroupByUsingExecPlan(const
>  arrow::compute::BatchesWithSchema&, const 
> std::vector<std::__cxx11::basic_string<char> >&, const 
> std::vector<arrow::compute::Aggregate>&, bool, 
> arrow::compute::ExecContext*)::<lambda()>, 
> arrow::Future<>::PassthruOnFailure<arrow::compute::{anonymous}::GroupByUsingExecPlan(const
>  arrow::compute::BatchesWithSchema&, const 
> std::vector<std::__cxx11::basic_string<char> >&, const 
> std::vector<arrow::compute::Aggregate>&, bool, 
> arrow::compute::ExecContext*)::<lambda()> > >; T = arrow::internal::Empty]’ 
> at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/util/future.h:442:31,
>     inlined from ‘R arrow::internal::FnOnce<R(A ...)>::FnImpl<Fn>::invoke(A&& 
> ...) [with Fn = 
> arrow::Future<>::WrapResultyOnComplete::Callback<arrow::Future<>::ThenOnComplete<arrow::compute::{anonymous}::GroupByUsingExecPlan(const
>  arrow::compute::BatchesWithSchema&, const 
> std::vector<std::__cxx11::basic_string<char> >&, const 
> std::vector<arrow::compute::Aggregate>&, bool, 
> arrow::compute::ExecContext*)::<lambda()>, 
> arrow::Future<>::PassthruOnFailure<arrow::compute::{anonymous}::GroupByUsingExecPlan(const
>  arrow::compute::BatchesWithSchema&, const 
> std::vector<std::__cxx11::basic_string<char> >&, const 
> std::vector<arrow::compute::Aggregate>&, bool, 
> arrow::compute::ExecContext*)::<lambda()> > > >; R = void; A = {const 
> arrow::FutureImpl&}]’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/util/functional.h:152:56:
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/exec.h:179:21: 
> warning: ‘*(arrow::compute::ExecBatch*)((char*)&<unnamed> + 
> offsetof(std::optional<arrow::compute::ExecBatch>,std::optional<arrow::compute::ExecBatch>::<unnamed>.std::_Optional_base<arrow::compute::ExecBatch,
>  false, false>::<unnamed>)).arrow::compute::ExecBatch::length’ may be used 
> uninitialized [-Wmaybe-uninitialized]
>   179 | struct ARROW_EXPORT ExecBatch {
>       |                     ^~~~~~~~~
> In file included from /usr/include/c++/11/functional:65,
>                  from /usr/include/gtest/gtest-printers.h:103,
>                  from /usr/include/gtest/gtest-matchers.h:44,
>                  from 
> /usr/include/gtest/internal/gtest-death-test-internal.h:39,
>                  from /usr/include/gtest/gtest-death-test.h:41,
>                  from /usr/include/gtest/gtest.h:64,
>                  from 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/kernels/hash_aggregate_test.cc:18:
> /usr/include/c++/11/bits/stl_algo.h: In member function ‘R 
> arrow::internal::FnOnce<R(A ...)>::FnImpl<Fn>::invoke(A&& ...) [with Fn = 
> arrow::Future<>::WrapResultyOnComplete::Callback<arrow::Future<>::ThenOnComplete<arrow::compute::{anonymous}::GroupByUsingExecPlan(const
>  arrow::compute::BatchesWithSchema&, const 
> std::vector<std::__cxx11::basic_string<char> >&, const 
> std::vector<arrow::compute::Aggregate>&, bool, 
> arrow::compute::ExecContext*)::<lambda()>, 
> arrow::Future<>::PassthruOnFailure<arrow::compute::{anonymous}::GroupByUsingExecPlan(const
>  arrow::compute::BatchesWithSchema&, const 
> std::vector<std::__cxx11::basic_string<char> >&, const 
> std::vector<arrow::compute::Aggregate>&, bool, 
> arrow::compute::ExecContext*)::<lambda()> > > >; R = void; A = {const 
> arrow::FutureImpl&}]’:
> /usr/include/c++/11/bits/stl_algo.h:4296:31: note: ‘<anonymous>’ declared here
>  4296 |         *__result = __unary_op(*__first);
>       |                     ~~~~~~~~~~^~~~~~~~~~
> [466/534] Building CXX object 
> src/arrow/dataset/CMakeFiles/arrow-dataset-scanner-test.dir/scanner_test.cc.o
> In file included from 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/kernel.h:32,
>                  from 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/function.h:27,
>                  from 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/api_aggregate.h:23,
>                  from 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/exec/options.h:26,
>                  from 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/dataset/scanner.h:29,
>                  from 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/dataset/scanner_test.cc:18:
> In constructor 
> ‘arrow::compute::ExecBatch::ExecBatch(arrow::compute::ExecBatch&&)’,
>     inlined from 
> ‘arrow::dataset::{anonymous}::TestPlan::Run()::<lambda()>::<lambda(std::optional<arrow::compute::ExecBatch>)>’
>  at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/dataset/scanner_test.cc:2160:84,
>     inlined from ‘_OIter std::transform(_IIter, _IIter, _OIter, 
> _UnaryOperation) [with _IIter = 
> std::move_iterator<__gnu_cxx::__normal_iterator<std::optional<arrow::compute::ExecBatch>*,
>  std::vector<std::optional<arrow::compute::ExecBatch>, 
> std::allocator<std::optional<arrow::compute::ExecBatch> > > > >; _OIter = 
> std::back_insert_iterator<std::vector<arrow::compute::ExecBatch> >; 
> _UnaryOperation = 
> arrow::dataset::{anonymous}::TestPlan::Run()::<lambda()>::<lambda(std::optional<arrow::compute::ExecBatch>)>]’
>  at /usr/include/c++/11/bits/stl_algo.h:4296:12,
>     inlined from ‘std::vector<To> arrow::internal::MapVector(Fn&&, 
> std::vector<_ValT>&&) [with Fn = 
> arrow::dataset::{anonymous}::TestPlan::Run()::<lambda()>::<lambda(std::optional<arrow::compute::ExecBatch>)>;
>  From = std::optional<arrow::compute::ExecBatch>; To = 
> arrow::compute::ExecBatch]’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/util/vector.h:102:17,
>     inlined from ‘arrow::dataset::{anonymous}::TestPlan::Run()::<lambda()>’ 
> at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/dataset/scanner_test.cc:2159:46,
>     inlined from ‘typename std::enable_if<(((! 
> std::is_void<ContinueResult>::value) && (! 
> arrow::detail::is_future<ContinueResult>::value)) && ((! 
> NextFuture::is_empty) || std::is_same<ContinueResult, 
> arrow::Status>::value))>::type 
> arrow::detail::ContinueFuture::operator()(NextFuture, ContinueFunc&&, Args&& 
> ...) const [with ContinueFunc = 
> arrow::dataset::{anonymous}::TestPlan::Run()::<lambda()>; Args = {}; 
> ContinueResult = arrow::Result<std::vector<arrow::compute::ExecBatch> >; 
> NextFuture = arrow::Future<std::vector<arrow::compute::ExecBatch> >]’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/util/future.h:150:22,
>     inlined from ‘void 
> arrow::detail::ContinueFuture::IgnoringArgsIf(std::true_type, NextFuture&&, 
> ContinueFunc&&, Args&& ...) const [with ContinueFunc = 
> arrow::dataset::{anonymous}::TestPlan::Run()::<lambda()>; NextFuture = 
> arrow::Future<std::vector<arrow::compute::ExecBatch> >; Args = {const 
> arrow::internal::Empty&}]’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/util/future.h:188:15,
>     inlined from ‘void arrow::Future<T>::ThenOnComplete<OnSuccess, 
> OnFailure>::operator()(const arrow::Result<T>&) && [with OnSuccess = 
> arrow::dataset::{anonymous}::TestPlan::Run()::<lambda()>; OnFailure = 
> arrow::Future<>::PassthruOnFailure<arrow::dataset::{anonymous}::TestPlan::Run()::<lambda()>
>  >; T = arrow::internal::Empty]’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/util/future.h:545:39,
>     inlined from ‘void 
> arrow::Future<T>::WrapResultyOnComplete::Callback<OnComplete>::operator()(const
>  arrow::FutureImpl&) && [with OnComplete = 
> arrow::Future<>::ThenOnComplete<arrow::dataset::{anonymous}::TestPlan::Run()::<lambda()>,
>  
> arrow::Future<>::PassthruOnFailure<arrow::dataset::{anonymous}::TestPlan::Run()::<lambda()>
>  > >; T = arrow::internal::Empty]’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/util/future.h:442:31,
>     inlined from ‘R arrow::internal::FnOnce<R(A ...)>::FnImpl<Fn>::invoke(A&& 
> ...) [with Fn = 
> arrow::Future<>::WrapResultyOnComplete::Callback<arrow::Future<>::ThenOnComplete<arrow::dataset::{anonymous}::TestPlan::Run()::<lambda()>,
>  
> arrow::Future<>::PassthruOnFailure<arrow::dataset::{anonymous}::TestPlan::Run()::<lambda()>
>  > > >; R = void; A = {const arrow::FutureImpl&}]’ at 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/util/functional.h:152:56:
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/compute/exec.h:179:21: 
> warning: ‘*(arrow::compute::ExecBatch*)((char*)&<unnamed> + 
> offsetof(std::optional<arrow::compute::ExecBatch>,std::optional<arrow::compute::ExecBatch>::<unnamed>.std::_Optional_base<arrow::compute::ExecBatch,
>  false, false>::<unnamed>)).arrow::compute::ExecBatch::length’ may be used 
> uninitialized [-Wmaybe-uninitialized]
>   179 | struct ARROW_EXPORT ExecBatch {
>       |                     ^~~~~~~~~
> In file included from /usr/include/c++/11/functional:65,
>                  from 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/dataset/scanner.h:22,
>                  from 
> /mnt/user1/tscontract/github/rtpsw/arrow/cpp/src/arrow/dataset/scanner_test.cc:18:
> /usr/include/c++/11/bits/stl_algo.h: In member function ‘R 
> arrow::internal::FnOnce<R(A ...)>::FnImpl<Fn>::invoke(A&& ...) [with Fn = 
> arrow::Future<>::WrapResultyOnComplete::Callback<arrow::Future<>::ThenOnComplete<arrow::dataset::{anonymous}::TestPlan::Run()::<lambda()>,
>  
> arrow::Future<>::PassthruOnFailure<arrow::dataset::{anonymous}::TestPlan::Run()::<lambda()>
>  > > >; R = void; A = {const arrow::FutureImpl&}]’:
> /usr/include/c++/11/bits/stl_algo.h:4296:31: note: ‘<anonymous>’ declared here
>  4296 |         *__result = __unary_op(*__first);
>       |                     ~~~~~~~~~~^~~~~~~~~~
> [534/534] Linking CXX executable release/parquet-schema-test {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to