ci: tidy job is producing output #33256

issue fanquake openend this issue on August 26, 2025
  1. fanquake commented at 10:50 am on August 26, 2025: member

    master (6ca6f3b37b992591726bd13b494369bee3bd6468) https://cirrus-ci.com/task/5658586602274816:

     0[17:17:19.943] [108/715][22.0s] clang-tidy-20 -p=/ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/ipc/capnp/echo.capnp.proxy-server.c++
     1[17:17:34.032] /usr/include/kj/async-inl.h:609:37: warning: The left operand of '+' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
     2[17:17:34.032]   609 |       return *(void**)(*(char**)obj + voff);
     3[17:17:34.032]       |                                     ^
     4[17:17:34.032] /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/ipc/capnp/echo.capnp.proxy-server.c++:23:12: note: Calling 'serverInvoke<mp::ProxyServer<ipc::capnp::messages::Echo>, capnp::CallContext<ipc::capnp::messages::Echo::EchoParams, ipc::capnp::messages::Echo::EchoResults>, mp::ServerField<0, mp::Accessor<mp::echo_fields::Context, 17>, mp::ServerField<1, mp::Accessor<mp::echo_fields::Echo, 17>, mp::ServerRet<mp::Accessor<mp::echo_fields::Result, 18>, mp::ServerCall>>>>'
     5[17:17:34.032]    23 |     return serverInvoke(*this, call_context, MakeServerField<0, Accessor<echo_fields::Context, FIELD_IN | FIELD_BOXED>>(MakeServerField<1, Accessor<echo_fields::Echo, FIELD_IN | FIELD_BOXED>>(Make<ServerRet, Accessor<echo_fields::Result, FIELD_OUT | FIELD_BOXED>>(ServerCall()))));
     6[17:17:34.032]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     7[17:17:34.032] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:16: note: Calling 'ReplaceVoid<(lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:28), (lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:718:13)>'
     8[17:17:34.032]   717 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
     9[17:17:34.032]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    10[17:17:34.032]   718 |             [&]() { return kj::Promise<CallContext>(kj::mv(call_context)); })
    11[17:17:34.032]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    12[17:17:34.032] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:19: note: 'is_same_v' is false
    13[17:17:34.032]   678 |     if constexpr (std::is_same_v<decltype(fn()), void>) {
    14[17:17:34.032]       |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    15[17:17:34.032] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:5: note: Taking false branch
    16[17:17:34.032]   678 |     if constexpr (std::is_same_v<decltype(fn()), void>) {
    17[17:17:34.032]       |     ^
    18[17:17:34.032] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:682:16: note: Calling 'operator()'
    19[17:17:34.032]   682 |         return fn();
    20[17:17:34.032]       |                ^~~~
    21[17:17:34.032] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:43: note: Calling 'ServerField::invoke'
    22[17:17:34.032]   717 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
    23[17:17:34.032]       |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    24[17:17:34.032] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:539:16: note: Calling 'PassField<mp::Accessor<mp::echo_fields::Context, 17>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Echo>, capnp::CallContext<ipc::capnp::messages::Echo::EchoParams, ipc::capnp::messages::Echo::EchoResults>>, mp::ServerField<1, mp::Accessor<mp::echo_fields::Echo, 17>, mp::ServerRet<mp::Accessor<mp::echo_fields::Result, 18>, mp::ServerCall>>, mp::TypeList<const std::basic_string<char> &>>'
    25[17:17:34.032]   539 |         return PassField<Accessor>(Priority<2>(),
    26[17:17:34.032]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    27[17:17:34.032]   540 |             typename Split<argc, ArgTypes>::First(),
    28[17:17:34.032]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    29[17:17:34.032]   541 |             server_context,
    30[17:17:34.032]       |             ~~~~~~~~~~~~~~~
    31[17:17:34.032]   542 |             this->parent(),
    32[17:17:34.032]       |             ~~~~~~~~~~~~~~~
    33[17:17:34.032]   543 |             typename Split<argc, ArgTypes>::Second(),
    34[17:17:34.032]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    35[17:17:34.032]   544 |             std::forward<Args>(args)...);
    36[17:17:34.032]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    37[17:17:34.032] /ci_container_base/src/ipc/libmultiprocess/include/mp/type-context.h:136:12: note: Calling 'CapabilityServerSet::getLocalServer'
    38[17:17:34.032]   136 |     return server.m_context.connection->m_threads.getLocalServer(thread_client)
    39[17:17:34.032]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    40[17:17:34.032] /usr/include/capnp/capability.h:1274:10: note: Calling 'Promise::then'
    41[17:17:34.032]  1274 |   return getLocalServerInternal(client)
    42[17:17:34.032]       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    43[17:17:34.032]  1275 |       .then([](void* server) -> kj::Maybe<typename T::Server&> {
    44[17:17:34.032]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    45[17:17:34.032]  1276 |     if (server == nullptr) {
    46[17:17:34.032]       |     ~~~~~~~~~~~~~~~~~~~~~~~~
    47[17:17:34.032]  1277 |       return nullptr;
    48[17:17:34.032]       |       ~~~~~~~~~~~~~~~
    49[17:17:34.032]  1278 |     } else {
    50[17:17:34.032]       |     ~~~~~~~~
    51[17:17:34.032]  1279 |       return *reinterpret_cast<typename T::Server*>(server);
    52[17:17:34.032]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    53[17:17:34.032]  1280 |     }
    54[17:17:34.032]       |     ~
    55[17:17:34.032]  1281 |   });
    56[17:17:34.032]       |   ~~
    57[17:17:34.032] /usr/include/kj/async-inl.h:1295:32: note: Calling 'GetFunctorStartAddress::apply'
    58[17:17:34.032]  1295 |   void* continuationTracePtr = _::GetFunctorStartAddress<_::FixVoid<T>&&>::apply(func);
    59[17:17:34.032]       |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    60[17:17:34.032] /usr/include/kj/async-inl.h:677:12: note: Calling 'PtmfHelper::apply'
    61[17:17:34.032]   677 |     return PtmfHelper::from<ReturnType, Decay<Func>, ParamTypes...>(
    62[17:17:34.032]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    63[17:17:34.032]   678 |         &Decay<Func>::operator()).apply(&func);
    64[17:17:34.032]       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    65[17:17:34.032] /usr/include/kj/async-inl.h:606:9: note: Assuming the condition is true
    66[17:17:34.032]   606 |     if (voff & 1) {
    67[17:17:34.032]       |         ^~~~~~~~
    68[17:17:34.032] /usr/include/kj/async-inl.h:606:5: note: Taking true branch
    69[17:17:34.032]   606 |     if (voff & 1) {
    70[17:17:34.032]       |     ^
    71[17:17:34.032] /usr/include/kj/async-inl.h:609:37: note: The left operand of '+' is a garbage value
    72[17:17:34.032]   609 |       return *(void**)(*(char**)obj + voff);
    73[17:17:34.032]       |                        ~~~~~~~~~~~~ ^
    74[17:17:34.032] 1 warning generated.
    
     0[17:30:54.725] [683/715][156.9s] clang-tidy-20 -p=/ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/ipc/capnp/mining.capnp.proxy-server.c++
     1[17:30:54.725] /usr/include/kj/async-inl.h:609:37: warning: The left operand of '+' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
     2[17:30:54.725]   609 |       return *(void**)(*(char**)obj + voff);
     3[17:30:54.725]       |                                     ^
     4[17:30:54.725] /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/ipc/capnp/mining.capnp.proxy-server.c++:68:12: note: Calling 'serverInvoke<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>, mp::ServerField<0, mp::Accessor<mp::mining_fields::Context, 17>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Options, 17>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>>>>'
     5[17:30:54.725]    68 |     return serverInvoke(*this, call_context, MakeServerField<0, Accessor<mining_fields::Context, FIELD_IN | FIELD_BOXED>>(MakeServerField<1, Accessor<mining_fields::Options, FIELD_IN | FIELD_BOXED>>(Make<ServerRet, Accessor<mining_fields::Result, FIELD_OUT | FIELD_BOXED>>(ServerCall()))));
     6[17:30:54.725]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     7[17:30:54.725] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:16: note: Calling 'ReplaceVoid<(lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:28), (lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:718:13)>'
     8[17:30:54.725]   717 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
     9[17:30:54.725]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    10[17:30:54.725]   718 |             [&]() { return kj::Promise<CallContext>(kj::mv(call_context)); })
    11[17:30:54.725]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    12[17:30:54.725] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:19: note: 'is_same_v' is false
    13[17:30:54.725]   678 |     if constexpr (std::is_same_v<decltype(fn()), void>) {
    14[17:30:54.725]       |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    15[17:30:54.725] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:5: note: Taking false branch
    16[17:30:54.725]   678 |     if constexpr (std::is_same_v<decltype(fn()), void>) {
    17[17:30:54.725]       |     ^
    18[17:30:54.725] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:682:16: note: Calling 'operator()'
    19[17:30:54.725]   682 |         return fn();
    20[17:30:54.725]       |                ^~~~
    21[17:30:54.725] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:43: note: Calling 'ServerField::invoke'
    22[17:30:54.725]   717 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
    23[17:30:54.725]       |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    24[17:30:54.725] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:539:16: note: Calling 'PassField<mp::Accessor<mp::mining_fields::Context, 17>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Options, 17>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>>, mp::TypeList<node::BlockWaitOptions>>'
    25[17:30:54.725]   539 |         return PassField<Accessor>(Priority<2>(),
    26[17:30:54.725]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    27[17:30:54.725]   540 |             typename Split<argc, ArgTypes>::First(),
    28[17:30:54.725]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    29[17:30:54.725]   541 |             server_context,
    30[17:30:54.725]       |             ~~~~~~~~~~~~~~~
    31[17:30:54.725]   542 |             this->parent(),
    32[17:30:54.725]       |             ~~~~~~~~~~~~~~~
    33[17:30:54.725]   543 |             typename Split<argc, ArgTypes>::Second(),
    34[17:30:54.725]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    35[17:30:54.725]   544 |             std::forward<Args>(args)...);
    36[17:30:54.725]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    37[17:30:54.725] /ci_container_base/src/ipc/libmultiprocess/include/mp/type-context.h:136:12: note: Calling 'CapabilityServerSet::getLocalServer'
    38[17:30:54.725]   136 |     return server.m_context.connection->m_threads.getLocalServer(thread_client)
    39[17:30:54.725]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    40[17:30:54.725] /usr/include/capnp/capability.h:1274:10: note: Calling 'Promise::then'
    41[17:30:54.725]  1274 |   return getLocalServerInternal(client)
    42[17:30:54.725]       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    43[17:30:54.725]  1275 |       .then([](void* server) -> kj::Maybe<typename T::Server&> {
    44[17:30:54.725]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    45[17:30:54.725]  1276 |     if (server == nullptr) {
    46[17:30:54.725]       |     ~~~~~~~~~~~~~~~~~~~~~~~~
    47[17:30:54.725]  1277 |       return nullptr;
    48[17:30:54.725]       |       ~~~~~~~~~~~~~~~
    49[17:30:54.725]  1278 |     } else {
    50[17:30:54.725]       |     ~~~~~~~~
    51[17:30:54.725]  1279 |       return *reinterpret_cast<typename T::Server*>(server);
    52[17:30:54.725]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    53[17:30:54.725]  1280 |     }
    54[17:30:54.725]       |     ~
    55[17:30:54.725]  1281 |   });
    56[17:30:54.725]       |   ~~
    57[17:30:54.725] /usr/include/kj/async-inl.h:1295:32: note: Calling 'GetFunctorStartAddress::apply'
    58[17:30:54.725]  1295 |   void* continuationTracePtr = _::GetFunctorStartAddress<_::FixVoid<T>&&>::apply(func);
    59[17:30:54.725]       |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    60[17:30:54.725] /usr/include/kj/async-inl.h:677:12: note: Calling 'PtmfHelper::apply'
    61[17:30:54.725]   677 |     return PtmfHelper::from<ReturnType, Decay<Func>, ParamTypes...>(
    62[17:30:54.725]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    63[17:30:54.725]   678 |         &Decay<Func>::operator()).apply(&func);
    64[17:30:54.725]       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    65[17:30:54.725] /usr/include/kj/async-inl.h:606:9: note: Assuming the condition is true
    66[17:30:54.725]   606 |     if (voff & 1) {
    67[17:30:54.725]       |         ^~~~~~~~
    68[17:30:54.725] /usr/include/kj/async-inl.h:606:5: note: Taking true branch
    69[17:30:54.725]   606 |     if (voff & 1) {
    70[17:30:54.725]       |     ^
    71[17:30:54.725] /usr/include/kj/async-inl.h:609:37: note: The left operand of '+' is a garbage value
    72[17:30:54.725]   609 |       return *(void**)(*(char**)obj + voff);
    73[17:30:54.725]       |                        ~~~~~~~~~~~~ ^
    74[17:30:54.725] 1 warning generated.
    
      0[17:31:39.220] [713/715][30.6s] clang-tidy-20 -p=/ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/ipc/capnp/init.capnp.proxy-server.c++
      1[17:31:45.233] /usr/include/kj/async-inl.h:609:37: warning: The left operand of '+' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
      2[17:31:45.233]   609 |       return *(void**)(*(char**)obj + voff);
      3[17:31:45.233]       |                                     ^
      4[17:31:45.233] /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/ipc/capnp/init.capnp.proxy-server.c++:26:12: note: Calling 'serverInvoke<mp::ProxyServer<ipc::capnp::messages::Init>, capnp::CallContext<ipc::capnp::messages::Init::MakeMiningParams, ipc::capnp::messages::Init::MakeMiningResults>, mp::ServerField<0, mp::Accessor<mp::init_fields::Context, 17>, mp::ServerRet<mp::Accessor<mp::init_fields::Result, 18>, mp::ServerCall>>>'
      5[17:31:45.233]    26 |     return serverInvoke(*this, call_context, MakeServerField<0, Accessor<init_fields::Context, FIELD_IN | FIELD_BOXED>>(Make<ServerRet, Accessor<init_fields::Result, FIELD_OUT | FIELD_BOXED>>(ServerCall())));
      6[17:31:45.233]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      7[17:31:45.233] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:16: note: Calling 'ReplaceVoid<(lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:28), (lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:718:13)>'
      8[17:31:45.233]   717 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
      9[17:31:45.233]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     10[17:31:45.233]   718 |             [&]() { return kj::Promise<CallContext>(kj::mv(call_context)); })
     11[17:31:45.233]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     12[17:31:45.233] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:19: note: 'is_same_v' is false
     13[17:31:45.233]   678 |     if constexpr (std::is_same_v<decltype(fn()), void>) {
     14[17:31:45.233]       |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     15[17:31:45.233] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:5: note: Taking false branch
     16[17:31:45.233]   678 |     if constexpr (std::is_same_v<decltype(fn()), void>) {
     17[17:31:45.233]       |     ^
     18[17:31:45.233] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:682:16: note: Calling 'operator()'
     19[17:31:45.233]   682 |         return fn();
     20[17:31:45.233]       |                ^~~~
     21[17:31:45.233] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:43: note: Calling 'ServerField::invoke'
     22[17:31:45.233]   717 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
     23[17:31:45.233]       |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     24[17:31:45.233] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:539:16: note: Calling 'PassField<mp::Accessor<mp::init_fields::Context, 17>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Init>, capnp::CallContext<ipc::capnp::messages::Init::MakeMiningParams, ipc::capnp::messages::Init::MakeMiningResults>>, mp::ServerRet<mp::Accessor<mp::init_fields::Result, 18>, mp::ServerCall>, mp::TypeList<>>'
     25[17:31:45.233]   539 |         return PassField<Accessor>(Priority<2>(),
     26[17:31:45.233]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     27[17:31:45.233]   540 |             typename Split<argc, ArgTypes>::First(),
     28[17:31:45.233]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     29[17:31:45.233]   541 |             server_context,
     30[17:31:45.233]       |             ~~~~~~~~~~~~~~~
     31[17:31:45.233]   542 |             this->parent(),
     32[17:31:45.233]       |             ~~~~~~~~~~~~~~~
     33[17:31:45.233]   543 |             typename Split<argc, ArgTypes>::Second(),
     34[17:31:45.233]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     35[17:31:45.233]   544 |             std::forward<Args>(args)...);
     36[17:31:45.233]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     37[17:31:45.233] /ci_container_base/src/ipc/libmultiprocess/include/mp/type-context.h:136:12: note: Calling 'CapabilityServerSet::getLocalServer'
     38[17:31:45.233]   136 |     return server.m_context.connection->m_threads.getLocalServer(thread_client)
     39[17:31:45.233]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     40[17:31:45.233] /usr/include/capnp/capability.h:1274:10: note: Calling 'Promise::then'
     41[17:31:45.233]  1274 |   return getLocalServerInternal(client)
     42[17:31:45.233]       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     43[17:31:45.233]  1275 |       .then([](void* server) -> kj::Maybe<typename T::Server&> {
     44[17:31:45.233]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     45[17:31:45.233]  1276 |     if (server == nullptr) {
     46[17:31:45.233]       |     ~~~~~~~~~~~~~~~~~~~~~~~~
     47[17:31:45.233]  1277 |       return nullptr;
     48[17:31:45.233]       |       ~~~~~~~~~~~~~~~
     49[17:31:45.233]  1278 |     } else {
     50[17:31:45.233]       |     ~~~~~~~~
     51[17:31:45.233]  1279 |       return *reinterpret_cast<typename T::Server*>(server);
     52[17:31:45.233]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     53[17:31:45.233]  1280 |     }
     54[17:31:45.233]       |     ~
     55[17:31:45.233]  1281 |   });
     56[17:31:45.233]       |   ~~
     57[17:31:45.233] /usr/include/kj/async-inl.h:1295:32: note: Calling 'GetFunctorStartAddress::apply'
     58[17:31:45.233]  1295 |   void* continuationTracePtr = _::GetFunctorStartAddress<_::FixVoid<T>&&>::apply(func);
     59[17:31:45.233]       |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     60[17:31:45.233] /usr/include/kj/async-inl.h:677:12: note: Calling 'PtmfHelper::apply'
     61[17:31:45.233]   677 |     return PtmfHelper::from<ReturnType, Decay<Func>, ParamTypes...>(
     62[17:31:45.233]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     63[17:31:45.233]   678 |         &Decay<Func>::operator()).apply(&func);
     64[17:31:45.233]       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     65[17:31:45.233] /usr/include/kj/async-inl.h:606:9: note: Assuming the condition is true
     66[17:31:45.233]   606 |     if (voff & 1) {
     67[17:31:45.233]       |         ^~~~~~~~
     68[17:31:45.233] /usr/include/kj/async-inl.h:606:5: note: Taking true branch
     69[17:31:45.233]   606 |     if (voff & 1) {
     70[17:31:45.233]       |     ^
     71[17:31:45.233] /usr/include/kj/async-inl.h:609:37: note: The left operand of '+' is a garbage value
     72[17:31:45.233]   609 |       return *(void**)(*(char**)obj + voff);
     73[17:31:45.233]       |                        ~~~~~~~~~~~~ ^
     74[17:31:45.233] 2 warnings generated.
     75[17:31:45.233] 
     76[17:31:45.233] [714/715][167.1s] clang-tidy-20 -p=/ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/ipc/libmultiprocess/test/mp/test/foo.capnp.proxy-server.c++
     77[17:32:33.147] /usr/include/kj/async-inl.h:609:37: warning: The left operand of '+' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
     78[17:32:33.147]   609 |       return *(void**)(*(char**)obj + voff);
     79[17:32:33.147]       |                                     ^
     80[17:32:33.147] /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/ipc/libmultiprocess/test/mp/test/foo.capnp.proxy-server.c++:95:12: note: Calling 'serverInvoke<mp::ProxyServer<mp::test::messages::FooFn>, capnp::CallContext<mp::test::messages::FooFn::CallParams, mp::test::messages::FooFn::CallResults>, mp::ServerField<0, mp::Accessor<mp::foo_fields::Context, 17>, mp::ServerRet<mp::Accessor<mp::foo_fields::Result, 2>, mp::ServerCall>>>'
     81[17:32:33.147]    95 |     return serverInvoke(*this, call_context, MakeServerField<0, Accessor<foo_fields::Context, FIELD_IN | FIELD_BOXED>>(Make<ServerRet, Accessor<foo_fields::Result, FIELD_OUT>>(ServerCall())));
     82[17:32:33.147]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     83[17:32:33.147] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:16: note: Calling 'ReplaceVoid<(lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:28), (lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:718:13)>'
     84[17:32:33.147]   717 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
     85[17:32:33.147]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     86[17:32:33.147]   718 |             [&]() { return kj::Promise<CallContext>(kj::mv(call_context)); })
     87[17:32:33.147]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     88[17:32:33.147] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:19: note: 'is_same_v' is false
     89[17:32:33.147]   678 |     if constexpr (std::is_same_v<decltype(fn()), void>) {
     90[17:32:33.147]       |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     91[17:32:33.147] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:5: note: Taking false branch
     92[17:32:33.147]   678 |     if constexpr (std::is_same_v<decltype(fn()), void>) {
     93[17:32:33.147]       |     ^
     94[17:32:33.147] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:682:16: note: Calling 'operator()'
     95[17:32:33.147]   682 |         return fn();
     96[17:32:33.147]       |                ^~~~
     97[17:32:33.147] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:43: note: Calling 'ServerField::invoke'
     98[17:32:33.147]   717 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
     99[17:32:33.147]       |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    100[17:32:33.147] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:539:16: note: Calling 'PassField<mp::Accessor<mp::foo_fields::Context, 17>, mp::ServerInvokeContext<mp::ProxyServer<mp::test::messages::FooFn>, capnp::CallContext<mp::test::messages::FooFn::CallParams, mp::test::messages::FooFn::CallResults>>, mp::ServerRet<mp::Accessor<mp::foo_fields::Result, 2>, mp::ServerCall>, mp::TypeList<>>'
    101[17:32:33.147]   539 |         return PassField<Accessor>(Priority<2>(),
    102[17:32:33.147]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    103[17:32:33.147]   540 |             typename Split<argc, ArgTypes>::First(),
    104[17:32:33.147]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    105[17:32:33.147]   541 |             server_context,
    106[17:32:33.147]       |             ~~~~~~~~~~~~~~~
    107[17:32:33.147]   542 |             this->parent(),
    108[17:32:33.147]       |             ~~~~~~~~~~~~~~~
    109[17:32:33.147]   543 |             typename Split<argc, ArgTypes>::Second(),
    110[17:32:33.147]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    111[17:32:33.147]   544 |             std::forward<Args>(args)...);
    112[17:32:33.147]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    113[17:32:33.147] /ci_container_base/src/ipc/libmultiprocess/include/mp/type-context.h:136:12: note: Calling 'CapabilityServerSet::getLocalServer'
    114[17:32:33.147]   136 |     return server.m_context.connection->m_threads.getLocalServer(thread_client)
    115[17:32:33.147]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    116[17:32:33.147] /usr/include/capnp/capability.h:1274:10: note: Calling 'Promise::then'
    117[17:32:33.147]  1274 |   return getLocalServerInternal(client)
    118[17:32:33.147]       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    119[17:32:33.147]  1275 |       .then([](void* server) -> kj::Maybe<typename T::Server&> {
    120[17:32:33.147]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    121[17:32:33.147]  1276 |     if (server == nullptr) {
    122[17:32:33.147]       |     ~~~~~~~~~~~~~~~~~~~~~~~~
    123[17:32:33.147]  1277 |       return nullptr;
    124[17:32:33.147]       |       ~~~~~~~~~~~~~~~
    125[17:32:33.147]  1278 |     } else {
    126[17:32:33.147]       |     ~~~~~~~~
    127[17:32:33.147]  1279 |       return *reinterpret_cast<typename T::Server*>(server);
    128[17:32:33.147]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    129[17:32:33.147]  1280 |     }
    130[17:32:33.147]       |     ~
    131[17:32:33.147]  1281 |   });
    132[17:32:33.147]       |   ~~
    133[17:32:33.147] /usr/include/kj/async-inl.h:1295:32: note: Calling 'GetFunctorStartAddress::apply'
    134[17:32:33.147]  1295 |   void* continuationTracePtr = _::GetFunctorStartAddress<_::FixVoid<T>&&>::apply(func);
    135[17:32:33.147]       |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    136[17:32:33.147] /usr/include/kj/async-inl.h:677:12: note: Calling 'PtmfHelper::apply'
    137[17:32:33.147]   677 |     return PtmfHelper::from<ReturnType, Decay<Func>, ParamTypes...>(
    138[17:32:33.147]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    139[17:32:33.147]   678 |         &Decay<Func>::operator()).apply(&func);
    140[17:32:33.147]       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    141[17:32:33.147] /usr/include/kj/async-inl.h:606:9: note: Assuming the condition is true
    142[17:32:33.147]   606 |     if (voff & 1) {
    143[17:32:33.147]       |         ^~~~~~~~
    144[17:32:33.147] /usr/include/kj/async-inl.h:606:5: note: Taking true branch
    145[17:32:33.147]   606 |     if (voff & 1) {
    146[17:32:33.147]       |     ^
    147[17:32:33.147] /usr/include/kj/async-inl.h:609:37: note: The left operand of '+' is a garbage value
    148[17:32:33.147]   609 |       return *(void**)(*(char**)obj + voff);
    149[17:32:33.147]       |                        ~~~~~~~~~~~~ ^
    150[17:32:33.147] 1 warning generated.
    
  2. fanquake commented at 10:51 am on August 26, 2025: member
  3. ryanofsky commented at 1:48 pm on August 26, 2025: contributor

    This warning “warning: The left operand of ‘+’ is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]” is a clang-analzyer false positive that we’d seen before and is fixed in https://github.com/capnproto/capnproto/pull/2334/commits/4c011373fe209a8b045b5aca0de043de271ad931 (https://github.com/capnproto/capnproto/pull/2334) upstream.

    As described in that commit message it’s possible to turn off that specific warning globally but not really to suppress it locally with compiler options. So if the output is a problem we could turn it off globally, or apply the patch there which suppresses it locally with a NOLINT annotation

  4. maflcko added the label Tests on Aug 26, 2025

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2025-09-02 06:12 UTC

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