Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cland-tidy-19 warnings on Bitcoin Core CI #153

Open
hebasto opened this issue Feb 5, 2025 · 0 comments
Open

cland-tidy-19 warnings on Bitcoin Core CI #153

hebasto opened this issue Feb 5, 2025 · 0 comments

Comments

@hebasto
Copy link
Contributor

hebasto commented Feb 5, 2025

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant