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

issue hebasto openend this issue on February 5, 2025
  1. hebasto commented at 3:51 pm on February 5, 2025: member

    From https://api.cirrus-ci.com/v1/task/5153787565834240/logs/ci.log:

      0[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
      1[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]
      2[10:01:13.083]   217 |     std::transform(guard.begin(), guard.end(), guard.begin(), [](unsigned char c) -> unsigned char {
      3[10:01:13.083]       |     ^~~~~~~~~~~~~~ ~~~~~~~~~~~~~  ~~~~~~~~~~~
      4[10:01:13.083]       |     std::ranges::transform guard
      5...
      6[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]
      7[10:04:02.737]   109 |     return ReadDestEmplace{TypeList<LocalType>(), [&](auto&&... args) -> decltype(auto) {
      8[10:04:02.737]       |     ^
      9[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[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())));
     11[10:04:02.737]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     12[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)>'
     13[10:04:02.737]   699 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
     14[10:04:02.737]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     15[10:04:02.737]   700 |             [&]() { return kj::Promise<CallContext>(kj::mv(call_context)); })
     16[10:04:02.737]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     17[10:04:02.737] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:656:5: note: Calling 'operator()'
     18[10:04:02.737]   656 |     fn();
     19[10:04:02.737]       |     ^~~~
     20[10:04:02.737] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:699:43: note: Calling 'ServerField::invoke'
     21[10:04:02.737]   699 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
     22[10:04:02.737]       |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     23[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<>>'
     24[10:04:02.737]   529 |         return PassField<Accessor>(Priority<2>(),
     25[10:04:02.737]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     26[10:04:02.737]   530 |             typename Split<argc, ArgTypes>::First(),
     27[10:04:02.737]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     28[10:04:02.737]   531 |             server_context,
     29[10:04:02.737]       |             ~~~~~~~~~~~~~~~
     30[10:04:02.737]   532 |             this->parent(),
     31[10:04:02.738]       |             ~~~~~~~~~~~~~~~
     32[10:04:02.738]   533 |             typename Split<argc, ArgTypes>::Second(),
     33[10:04:02.738]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     34[10:04:02.738]   534 |             std::forward<Args>(args)...);
     35[10:04:02.738]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     36[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)>>'
     37[10:04:02.738]   272 |     MaybeReadField(std::integral_constant<bool, Accessor::in>(), TypeList<ArgType>(), invoke_context,
     38[10:04:02.738]       |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     39[10:04:02.738]   273 |         Make<StructField, Accessor>(params), ReadDestEmplace(TypeList<ArgType>(), [&](auto&&... args) -> auto& {
     40[10:04:02.738]       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     41[10:04:02.738]   274 |             param.emplace(std::forward<decltype(args)>(args)...);
     42[10:04:02.738]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     43[10:04:02.738]   275 |             return *param;
     44[10:04:02.738]       |             ~~~~~~~~~~~~~~
     45[10:04:02.738]   276 |         }));
     46[10:04:02.738]       |         ~~~
     47[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)>>'
     48[10:04:02.738]   244 |     ReadField(std::forward<Args>(args)...);
     49[10:04:02.738]       |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     50[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)>>'
     51[10:04:02.738]   147 |     return CustomReadField(TypeList<RemoveCvRef<LocalTypes>...>(), Priority<2>(), std::forward<Args>(args)...);
     52[10:04:02.738]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     53[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/test/mp/test/foo-types.h:35:12: note: Calling 'ReadDestEmplace::update'
     54[10:04:02.738]    35 |     return read_dest.update([&](FooCustom& value) {
     55[10:04:02.738]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     56[10:04:02.738]    36 |         value.v1 = ReadField(TypeList<std::string>(), invoke_context, mp::Make<mp::ValueField>(custom.getV1()), ReadDestTemp<std::string>());
     57[10:04:02.738]       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     58[10:04:02.738]    37 |         value.v2 = custom.getV2();
     59[10:04:02.738]       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~
     60[10:04:02.738]    38 |     });
     61[10:04:02.738]       |     ~~
     62[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:87:23: note: 'is_const_v' is false
     63[10:04:02.738]    87 |         if constexpr (std::is_const_v<std::remove_reference_t<std::invoke_result_t<EmplaceFn>>>) {
     64[10:04:02.738]       |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     65[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:87:9: note: Taking false branch
     66[10:04:02.738]    87 |         if constexpr (std::is_const_v<std::remove_reference_t<std::invoke_result_t<EmplaceFn>>>) {
     67[10:04:02.738]       |         ^
     68[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:97:13: note: Calling 'operator()'
     69[10:04:02.738]    97 |             update_fn(temp);
     70[10:04:02.738]       |             ^~~~~~~~~~~~~~~
     71[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>>'
     72[10:04:02.738]    36 |         value.v1 = ReadField(TypeList<std::string>(), invoke_context, mp::Make<mp::ValueField>(custom.getV1()), ReadDestTemp<std::string>());
     73[10:04:02.738]       |                                                                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
     74[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
     75[10:04:02.738]   109 |     return ReadDestEmplace{TypeList<LocalType>(), [&](auto&&... args) -> decltype(auto) {
     76[10:04:02.738]       |     ^                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     77[10:04:02.738]   110 |         return LocalType{std::forward<decltype(args)>(args)...};
     78[10:04:02.738]       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     79[10:04:02.738]   111 |     }};
     80[10:04:02.738]       |     ~
     81[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]
     82[10:04:02.738]    55 |     return read_dest.construct(static_cast<LocalType>(input.get()));
     83[10:04:02.738]       |                                ^
     84[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/test/mp/test/foo.h:24:12: note: enum declared here
     85[10:04:02.738]    24 | enum class FooEnum : uint8_t { ONE = 1, TWO = 2, };
     86[10:04:02.738]       | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     87[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>>>'
     88[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())));
     89[10:04:02.738]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     90[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)>'
     91[10:04:02.738]   699 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
     92[10:04:02.738]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     93[10:04:02.738]   700 |             [&]() { return kj::Promise<CallContext>(kj::mv(call_context)); })
     94[10:04:02.738]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     95[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:656:5: note: Calling 'operator()'
     96[10:04:02.738]   656 |     fn();
     97[10:04:02.738]       |     ^~~~
     98[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:699:43: note: Calling 'ServerField::invoke'
     99[10:04:02.738]   699 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
    100[10:04:02.738]       |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    101[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<>>'
    102[10:04:02.738]   529 |         return PassField<Accessor>(Priority<2>(),
    103[10:04:02.738]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    104[10:04:02.738]   530 |             typename Split<argc, ArgTypes>::First(),
    105[10:04:02.738]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    106[10:04:02.738]   531 |             server_context,
    107[10:04:02.738]       |             ~~~~~~~~~~~~~~~
    108[10:04:02.738]   532 |             this->parent(),
    109[10:04:02.738]       |             ~~~~~~~~~~~~~~~
    110[10:04:02.738]   533 |             typename Split<argc, ArgTypes>::Second(),
    111[10:04:02.738]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    112[10:04:02.738]   534 |             std::forward<Args>(args)...);
    113[10:04:02.738]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    114[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)>>'
    115[10:04:02.738]   272 |     MaybeReadField(std::integral_constant<bool, Accessor::in>(), TypeList<ArgType>(), invoke_context,
    116[10:04:02.738]       |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    117[10:04:02.738]   273 |         Make<StructField, Accessor>(params), ReadDestEmplace(TypeList<ArgType>(), [&](auto&&... args) -> auto& {
    118[10:04:02.738]       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    119[10:04:02.738]   274 |             param.emplace(std::forward<decltype(args)>(args)...);
    120[10:04:02.738]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    121[10:04:02.738]   275 |             return *param;
    122[10:04:02.738]       |             ~~~~~~~~~~~~~~
    123[10:04:02.738]   276 |         }));
    124[10:04:02.738]       |         ~~~
    125[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)>>'
    126[10:04:02.738]   244 |     ReadField(std::forward<Args>(args)...);
    127[10:04:02.738]       |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    128[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)>>'
    129[10:04:02.738]   147 |     return CustomReadField(TypeList<RemoveCvRef<LocalTypes>...>(), Priority<2>(), std::forward<Args>(args)...);
    130[10:04:02.738]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    131[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/type-number.h:55:55: note: Calling 'StructField::get'
    132[10:04:02.738]    55 |     return read_dest.construct(static_cast<LocalType>(input.get()));
    133[10:04:02.738]       |                                                       ^~~~~~~~~~~
    134[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:41:99: note: Calling 'Arg::get'
    135[10:04:02.738]    41 |     template<typename A = Accessor> auto get() const -> decltype(A::get(this->m_struct)) { return A::get(this->m_struct); }
    136[10:04:02.738]       |                                                                                                   ^~~~~~~~~~~~~~~~~~~~~~
    137[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'
    138[10:04:02.738]   174 |     template<typename S> static auto get(S&& s) -> decltype(s.getArg()) { return s.getArg(); }
    139[10:04:02.738]       |                                                                                  ^~~~~~~~~~
    140[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'
    141[10:04:02.738]  5998 |   return _reader.getDataField< ::int32_t>(
    142[10:04:02.738]       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    143[10:04:02.738]  5999 |       ::capnp::bounded<0>() * ::capnp::ELEMENTS);
    144[10:04:02.738]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    145[10:04:02.738] /usr/include/capnp/layout.h:1099:7: note: Assuming the condition is false
    146[10:04:02.738]  1099 |   if ((offset + ONE * ELEMENTS) * capnp::bitsPerElement<T>() <= dataSize) {
    147[10:04:02.738]       |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    148[10:04:02.738] /usr/include/capnp/layout.h:1099:3: note: Taking false branch
    149[10:04:02.738]  1099 |   if ((offset + ONE * ELEMENTS) * capnp::bitsPerElement<T>() <= dataSize) {
    150[10:04:02.738]       |   ^
    151[10:04:02.738] /usr/include/capnp/layout.h:1102:5: note: Returning zero
    152[10:04:02.738]  1102 |     return static_cast<T>(0);
    153[10:04:02.738]       |     ^~~~~~~~~~~~~~~~~~~~~~~~
    154[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'
    155[10:04:02.738]  5998 |   return _reader.getDataField< ::int32_t>(
    156[10:04:02.738]       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    157[10:04:02.738]  5999 |       ::capnp::bounded<0>() * ::capnp::ELEMENTS);
    158[10:04:02.738]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    159[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
    160[10:04:02.738]  5998 |   return _reader.getDataField< ::int32_t>(
    161[10:04:02.738]       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    162[10:04:02.738]  5999 |       ::capnp::bounded<0>() * ::capnp::ELEMENTS);
    163[10:04:02.738]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    164[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'
    165[10:04:02.738]   174 |     template<typename S> static auto get(S&& s) -> decltype(s.getArg()) { return s.getArg(); }
    166[10:04:02.738]       |                                                                                  ^~~~~~~~~~
    167[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
    168[10:04:02.738]   174 |     template<typename S> static auto get(S&& s) -> decltype(s.getArg()) { return s.getArg(); }
    169[10:04:02.738]       |                                                                           ^~~~~~~~~~~~~~~~~
    170[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:41:99: note: Returning from 'Arg::get'
    171[10:04:02.738]    41 |     template<typename A = Accessor> auto get() const -> decltype(A::get(this->m_struct)) { return A::get(this->m_struct); }
    172[10:04:02.738]       |                                                                                                   ^~~~~~~~~~~~~~~~~~~~~~
    173[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:41:92: note: Returning zero
    174[10:04:02.738]    41 |     template<typename A = Accessor> auto get() const -> decltype(A::get(this->m_struct)) { return A::get(this->m_struct); }
    175[10:04:02.738]       |                                                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    176[10:04:02.738] /ci_container_base/src/ipc/libmultiprocess/include/mp/type-number.h:55:55: note: Returning from 'StructField::get'
    177[10:04:02.738]    55 |     return read_dest.construct(static_cast<LocalType>(input.get()));
    178[10:04:02.738]       |                                                       ^~~~~~~~~~~
    179[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'
    180[10:04:02.738]    55 |     return read_dest.construct(static_cast<LocalType>(input.get()));
    181[10:04:02.738]       |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    182[10:05:00.005] 2 warnings generated.
    
  2. ryanofsky closed this on May 15, 2025

  3. pull[bot] referenced this in commit 0d8012f656 on May 15, 2025


hebasto


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin-core/libmultiprocess. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2025-12-04 19:30 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me