Closed
Description
From https://api.cirrus-ci.com/v1/task/5153787565834240/logs/ci.log:
[10:01:13.083] [315/704][22.3s] clang-tidy-19 -p=/ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/src/ipc/libmultiprocess/src/mp/gen.cpp
[10:01:13.083] /ci_container_base/src/ipc/libmultiprocess/src/mp/gen.cpp:217:5: warning: use a ranges version of this algorithm [modernize-use-ranges]
[10:01:13.083] 217 | std::transform(guard.begin(), guard.end(), guard.begin(), [](unsigned char c) -> unsigned char {
[10:01:13.083] | ^~~~~~~~~~~~~~ ~~~~~~~~~~~~~ ~~~~~~~~~~~
[10:01:13.083] | std::ranges::transform guard
...
[10:04:02.737] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:109:5: warning: Address of stack memory associated with temporary object of type '(lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:109:51)' is still referred to by a temporary object on the stack upon returning to the caller. This will be a dangling reference [clang-analyzer-core.StackAddressEscape]
[10:04:02.737] 109 | return ReadDestEmplace{TypeList<LocalType>(), [&](auto&&... args) -> decltype(auto) {
[10:04:02.737] | ^
[10:04:02.737] /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/ipc/libmultiprocess/test/mp/test/foo.capnp.proxy-server.c++:41:12: note: Calling 'serverInvoke<mp::ProxyServer<mp::test::messages::FooInterface>, capnp::CallContext<mp::test::messages::FooInterface::PassCustomParams, mp::test::messages::FooInterface::PassCustomResults>, mp::ServerField<1, mp::Accessor<mp::foo_fields::Arg, 17>, mp::ServerRet<mp::Accessor<mp::foo_fields::Result, 18>, mp::ServerCall>>>'
[10:04:02.737] 41 | return serverInvoke(*this, call_context, MakeServerField<1, Accessor<foo_fields::Arg, FIELD_IN | FIELD_BOXED>>(Make<ServerRet, Accessor<foo_fields::Result, FIELD_OUT | FIELD_BOXED>>(ServerCall())));
[10:04:02.737] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.737] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:699:16: note: Calling 'ReplaceVoid<(lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:699:28), (lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:700:13)>'
[10:04:02.737] 699 | return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
[10:04:02.737] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.737] 700 | [&]() { return kj::Promise<CallContext>(kj::mv(call_context)); })
[10:04:02.737] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.737] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:656:5: note: Calling 'operator()'
[10:04:02.737] 656 | fn();
[10:04:02.737] | ^~~~
[10:04:02.737] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:699:43: note: Calling 'ServerField::invoke'
[10:04:02.737] 699 | return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
[10:04:02.737] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.737] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:529:16: note: Calling 'PassField<mp::Accessor<mp::foo_fields::Arg, 17>, mp::test::FooCustom, mp::ServerInvokeContext<mp::ProxyServer<mp::test::messages::FooInterface>, capnp::CallContext<mp::test::messages::FooInterface::PassCustomParams, mp::test::messages::FooInterface::PassCustomResults>>, const mp::ServerRet<mp::Accessor<mp::foo_fields::Result, 18>, mp::ServerCall> &, mp::TypeList<>>'
[10:04:02.737] 529 | return PassField<Accessor>(Priority<2>(),
[10:04:02.737] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.737] 530 | typename Split<argc, ArgTypes>::First(),
[10:04:02.737] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.737] 531 | server_context,
[10:04:02.737] | ~~~~~~~~~~~~~~~
[10:04:02.737] 532 | this->parent(),
[10:04:02.738] | ~~~~~~~~~~~~~~~
[10:04:02.738] 533 | typename Split<argc, ArgTypes>::Second(),
[10:04:02.738] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] 534 | std::forward<Args>(args)...);
[10:04:02.738] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:272:5: note: Calling 'MaybeReadField<mp::TypeList<mp::test::FooCustom>, mp::InvokeContext &, mp::StructField<mp::Accessor<mp::foo_fields::Arg, 17>, const mp::test::messages::FooInterface::PassCustomParams::Reader>, mp::ReadDestEmplace<mp::test::FooCustom, (lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:273:83)>>'
[10:04:02.738] 272 | MaybeReadField(std::integral_constant<bool, Accessor::in>(), TypeList<ArgType>(), invoke_context,
[10:04:02.738] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] 273 | Make<StructField, Accessor>(params), ReadDestEmplace(TypeList<ArgType>(), [&](auto&&... args) -> auto& {
[10:04:02.738] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] 274 | param.emplace(std::forward<decltype(args)>(args)...);
[10:04:02.738] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] 275 | return *param;
[10:04:02.738] | ~~~~~~~~~~~~~~
[10:04:02.738] 276 | }));
[10:04:02.738] | ~~~
[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:244:5: note: Calling 'ReadField<mp::test::FooCustom, mp::InvokeContext &, mp::StructField<mp::Accessor<mp::foo_fields::Arg, 17>, const mp::test::messages::FooInterface::PassCustomParams::Reader>, mp::ReadDestEmplace<mp::test::FooCustom, (lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:273:83)>>'
[10:04:02.738] 244 | ReadField(std::forward<Args>(args)...);
[10:04:02.738] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:147:12: note: Calling 'CustomReadField<mp::StructField<mp::Accessor<mp::foo_fields::Arg, 17>, const mp::test::messages::FooInterface::PassCustomParams::Reader>, mp::ReadDestEmplace<mp::test::FooCustom, (lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:273:83)>>'
[10:04:02.738] 147 | return CustomReadField(TypeList<RemoveCvRef<LocalTypes>...>(), Priority<2>(), std::forward<Args>(args)...);
[10:04:02.738] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/test/mp/test/foo-types.h:35:12: note: Calling 'ReadDestEmplace::update'
[10:04:02.738] 35 | return read_dest.update([&](FooCustom& value) {
[10:04:02.738] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] 36 | value.v1 = ReadField(TypeList<std::string>(), invoke_context, mp::Make<mp::ValueField>(custom.getV1()), ReadDestTemp<std::string>());
[10:04:02.738] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] 37 | value.v2 = custom.getV2();
[10:04:02.738] | ~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] 38 | });
[10:04:02.738] | ~~
[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:87:23: note: 'is_const_v' is false
[10:04:02.738] 87 | if constexpr (std::is_const_v<std::remove_reference_t<std::invoke_result_t<EmplaceFn>>>) {
[10:04:02.738] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:87:9: note: Taking false branch
[10:04:02.738] 87 | if constexpr (std::is_const_v<std::remove_reference_t<std::invoke_result_t<EmplaceFn>>>) {
[10:04:02.738] | ^
[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:97:13: note: Calling 'operator()'
[10:04:02.738] 97 | update_fn(temp);
[10:04:02.738] | ^~~~~~~~~~~~~~~
[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/test/mp/test/foo-types.h:36:113: note: Calling 'ReadDestTemp<std::basic_string<char>>'
[10:04:02.738] 36 | value.v1 = ReadField(TypeList<std::string>(), invoke_context, mp::Make<mp::ValueField>(custom.getV1()), ReadDestTemp<std::string>());
[10:04:02.738] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:109:5: note: Address of stack memory associated with temporary object of type '(lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:109:51)' is still referred to by a temporary object on the stack upon returning to the caller. This will be a dangling reference
[10:04:02.738] 109 | return ReadDestEmplace{TypeList<LocalType>(), [&](auto&&... args) -> decltype(auto) {
[10:04:02.738] | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] 110 | return LocalType{std::forward<decltype(args)>(args)...};
[10:04:02.738] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] 111 | }};
[10:04:02.738] | ~
[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/type-number.h:55:32: warning: The value '0' provided to the cast expression is not in the valid range of values for 'FooEnum' [clang-analyzer-optin.core.EnumCastOutOfRange]
[10:04:02.738] 55 | return read_dest.construct(static_cast<LocalType>(input.get()));
[10:04:02.738] | ^
[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/test/mp/test/foo.h:24:12: note: enum declared here
[10:04:02.738] 24 | enum class FooEnum : uint8_t { ONE = 1, TWO = 2, };
[10:04:02.738] | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/ipc/libmultiprocess/test/mp/test/foo.capnp.proxy-server.c++:53:12: note: Calling 'serverInvoke<mp::ProxyServer<mp::test::messages::FooInterface>, capnp::CallContext<mp::test::messages::FooInterface::PassEnumParams, mp::test::messages::FooInterface::PassEnumResults>, mp::ServerField<1, mp::Accessor<mp::foo_fields::Arg, 1>, mp::ServerRet<mp::Accessor<mp::foo_fields::Result, 2>, mp::ServerCall>>>'
[10:04:02.738] 53 | return serverInvoke(*this, call_context, MakeServerField<1, Accessor<foo_fields::Arg, FIELD_IN>>(Make<ServerRet, Accessor<foo_fields::Result, FIELD_OUT>>(ServerCall())));
[10:04:02.738] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:699:16: note: Calling 'ReplaceVoid<(lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:699:28), (lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:700:13)>'
[10:04:02.738] 699 | return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
[10:04:02.738] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] 700 | [&]() { return kj::Promise<CallContext>(kj::mv(call_context)); })
[10:04:02.738] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:656:5: note: Calling 'operator()'
[10:04:02.738] 656 | fn();
[10:04:02.738] | ^~~~
[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:699:43: note: Calling 'ServerField::invoke'
[10:04:02.738] 699 | return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
[10:04:02.738] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:529:16: note: Calling 'PassField<mp::Accessor<mp::foo_fields::Arg, 1>, mp::test::FooEnum, mp::ServerInvokeContext<mp::ProxyServer<mp::test::messages::FooInterface>, capnp::CallContext<mp::test::messages::FooInterface::PassEnumParams, mp::test::messages::FooInterface::PassEnumResults>>, const mp::ServerRet<mp::Accessor<mp::foo_fields::Result, 2>, mp::ServerCall> &, mp::TypeList<>>'
[10:04:02.738] 529 | return PassField<Accessor>(Priority<2>(),
[10:04:02.738] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] 530 | typename Split<argc, ArgTypes>::First(),
[10:04:02.738] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] 531 | server_context,
[10:04:02.738] | ~~~~~~~~~~~~~~~
[10:04:02.738] 532 | this->parent(),
[10:04:02.738] | ~~~~~~~~~~~~~~~
[10:04:02.738] 533 | typename Split<argc, ArgTypes>::Second(),
[10:04:02.738] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] 534 | std::forward<Args>(args)...);
[10:04:02.738] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:272:5: note: Calling 'MaybeReadField<mp::TypeList<mp::test::FooEnum>, mp::InvokeContext &, mp::StructField<mp::Accessor<mp::foo_fields::Arg, 1>, const mp::test::messages::FooInterface::PassEnumParams::Reader>, mp::ReadDestEmplace<mp::test::FooEnum, (lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:273:83)>>'
[10:04:02.738] 272 | MaybeReadField(std::integral_constant<bool, Accessor::in>(), TypeList<ArgType>(), invoke_context,
[10:04:02.738] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] 273 | Make<StructField, Accessor>(params), ReadDestEmplace(TypeList<ArgType>(), [&](auto&&... args) -> auto& {
[10:04:02.738] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] 274 | param.emplace(std::forward<decltype(args)>(args)...);
[10:04:02.738] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] 275 | return *param;
[10:04:02.738] | ~~~~~~~~~~~~~~
[10:04:02.738] 276 | }));
[10:04:02.738] | ~~~
[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:244:5: note: Calling 'ReadField<mp::test::FooEnum, mp::InvokeContext &, mp::StructField<mp::Accessor<mp::foo_fields::Arg, 1>, const mp::test::messages::FooInterface::PassEnumParams::Reader>, mp::ReadDestEmplace<mp::test::FooEnum, (lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:273:83)>>'
[10:04:02.738] 244 | ReadField(std::forward<Args>(args)...);
[10:04:02.738] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:147:12: note: Calling 'CustomReadField<mp::test::FooEnum, mp::StructField<mp::Accessor<mp::foo_fields::Arg, 1>, const mp::test::messages::FooInterface::PassEnumParams::Reader>, mp::ReadDestEmplace<mp::test::FooEnum, (lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:273:83)>>'
[10:04:02.738] 147 | return CustomReadField(TypeList<RemoveCvRef<LocalTypes>...>(), Priority<2>(), std::forward<Args>(args)...);
[10:04:02.738] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/type-number.h:55:55: note: Calling 'StructField::get'
[10:04:02.738] 55 | return read_dest.construct(static_cast<LocalType>(input.get()));
[10:04:02.738] | ^~~~~~~~~~~
[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:41:99: note: Calling 'Arg::get'
[10:04:02.738] 41 | template<typename A = Accessor> auto get() const -> decltype(A::get(this->m_struct)) { return A::get(this->m_struct); }
[10:04:02.738] | ^~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/ipc/libmultiprocess/test/mp/test/foo.capnp.proxy.h:174:82: note: Calling 'Reader::getArg'
[10:04:02.738] 174 | template<typename S> static auto get(S&& s) -> decltype(s.getArg()) { return s.getArg(); }
[10:04:02.738] | ^~~~~~~~~~
[10:04:02.738] /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/ipc/libmultiprocess/test/mp/test/foo.capnp.h:5998:10: note: Calling 'StructReader::getDataField'
[10:04:02.738] 5998 | return _reader.getDataField< ::int32_t>(
[10:04:02.738] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] 5999 | ::capnp::bounded<0>() * ::capnp::ELEMENTS);
[10:04:02.738] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] /usr/include/capnp/layout.h:1099:7: note: Assuming the condition is false
[10:04:02.738] 1099 | if ((offset + ONE * ELEMENTS) * capnp::bitsPerElement<T>() <= dataSize) {
[10:04:02.738] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] /usr/include/capnp/layout.h:1099:3: note: Taking false branch
[10:04:02.738] 1099 | if ((offset + ONE * ELEMENTS) * capnp::bitsPerElement<T>() <= dataSize) {
[10:04:02.738] | ^
[10:04:02.738] /usr/include/capnp/layout.h:1102:5: note: Returning zero
[10:04:02.738] 1102 | return static_cast<T>(0);
[10:04:02.738] | ^~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/ipc/libmultiprocess/test/mp/test/foo.capnp.h:5998:10: note: Returning from 'StructReader::getDataField'
[10:04:02.738] 5998 | return _reader.getDataField< ::int32_t>(
[10:04:02.738] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] 5999 | ::capnp::bounded<0>() * ::capnp::ELEMENTS);
[10:04:02.738] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/ipc/libmultiprocess/test/mp/test/foo.capnp.h:5998:3: note: Returning zero
[10:04:02.738] 5998 | return _reader.getDataField< ::int32_t>(
[10:04:02.738] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] 5999 | ::capnp::bounded<0>() * ::capnp::ELEMENTS);
[10:04:02.738] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/ipc/libmultiprocess/test/mp/test/foo.capnp.proxy.h:174:82: note: Returning from 'Reader::getArg'
[10:04:02.738] 174 | template<typename S> static auto get(S&& s) -> decltype(s.getArg()) { return s.getArg(); }
[10:04:02.738] | ^~~~~~~~~~
[10:04:02.738] /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/ipc/libmultiprocess/test/mp/test/foo.capnp.proxy.h:174:75: note: Returning zero
[10:04:02.738] 174 | template<typename S> static auto get(S&& s) -> decltype(s.getArg()) { return s.getArg(); }
[10:04:02.738] | ^~~~~~~~~~~~~~~~~
[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:41:99: note: Returning from 'Arg::get'
[10:04:02.738] 41 | template<typename A = Accessor> auto get() const -> decltype(A::get(this->m_struct)) { return A::get(this->m_struct); }
[10:04:02.738] | ^~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:41:92: note: Returning zero
[10:04:02.738] 41 | template<typename A = Accessor> auto get() const -> decltype(A::get(this->m_struct)) { return A::get(this->m_struct); }
[10:04:02.738] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/type-number.h:55:55: note: Returning from 'StructField::get'
[10:04:02.738] 55 | return read_dest.construct(static_cast<LocalType>(input.get()));
[10:04:02.738] | ^~~~~~~~~~~
[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/type-number.h:55:32: note: The value '0' provided to the cast expression is not in the valid range of values for 'FooEnum'
[10:04:02.738] 55 | return read_dest.construct(static_cast<LocalType>(input.get()));
[10:04:02.738] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10:05:00.005] 2 warnings generated.
Metadata
Metadata
Assignees
Labels
No labels