master (6ca6f3b37b992591726bd13b494369bee3bd6468) https://cirrus-ci.com/task/5658586602274816:
[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++
[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]
[17:17:34.032] 609 | return *(void**)(*(char**)obj + voff);
[17:17:34.032] | ^
[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>>>>'
[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()))));
[17:17:34.032] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[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)>'
[17:17:34.032] 717 | return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
[17:17:34.032] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:17:34.032] 718 | [&]() { return kj::Promise<CallContext>(kj::mv(call_context)); })
[17:17:34.032] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:17:34.032] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:19: note: 'is_same_v' is false
[17:17:34.032] 678 | if constexpr (std::is_same_v<decltype(fn()), void>) {
[17:17:34.032] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:17:34.032] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:5: note: Taking false branch
[17:17:34.032] 678 | if constexpr (std::is_same_v<decltype(fn()), void>) {
[17:17:34.032] | ^
[17:17:34.032] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:682:16: note: Calling 'operator()'
[17:17:34.032] 682 | return fn();
[17:17:34.032] | ^~~~
[17:17:34.032] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:43: note: Calling 'ServerField::invoke'
[17:17:34.032] 717 | return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
[17:17:34.032] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[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> &>>'
[17:17:34.032] 539 | return PassField<Accessor>(Priority<2>(),
[17:17:34.032] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:17:34.032] 540 | typename Split<argc, ArgTypes>::First(),
[17:17:34.032] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:17:34.032] 541 | server_context,
[17:17:34.032] | ~~~~~~~~~~~~~~~
[17:17:34.032] 542 | this->parent(),
[17:17:34.032] | ~~~~~~~~~~~~~~~
[17:17:34.032] 543 | typename Split<argc, ArgTypes>::Second(),
[17:17:34.032] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:17:34.032] 544 | std::forward<Args>(args)...);
[17:17:34.032] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:17:34.032] /ci_container_base/src/ipc/libmultiprocess/include/mp/type-context.h:136:12: note: Calling 'CapabilityServerSet::getLocalServer'
[17:17:34.032] 136 | return server.m_context.connection->m_threads.getLocalServer(thread_client)
[17:17:34.032] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:17:34.032] /usr/include/capnp/capability.h:1274:10: note: Calling 'Promise::then'
[17:17:34.032] 1274 | return getLocalServerInternal(client)
[17:17:34.032] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:17:34.032] 1275 | .then([](void* server) -> kj::Maybe<typename T::Server&> {
[17:17:34.032] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:17:34.032] 1276 | if (server == nullptr) {
[17:17:34.032] | ~~~~~~~~~~~~~~~~~~~~~~~~
[17:17:34.032] 1277 | return nullptr;
[17:17:34.032] | ~~~~~~~~~~~~~~~
[17:17:34.032] 1278 | } else {
[17:17:34.032] | ~~~~~~~~
[17:17:34.032] 1279 | return *reinterpret_cast<typename T::Server*>(server);
[17:17:34.032] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:17:34.032] 1280 | }
[17:17:34.032] | ~
[17:17:34.032] 1281 | });
[17:17:34.032] | ~~
[17:17:34.032] /usr/include/kj/async-inl.h:1295:32: note: Calling 'GetFunctorStartAddress::apply'
[17:17:34.032] 1295 | void* continuationTracePtr = _::GetFunctorStartAddress<_::FixVoid<T>&&>::apply(func);
[17:17:34.032] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:17:34.032] /usr/include/kj/async-inl.h:677:12: note: Calling 'PtmfHelper::apply'
[17:17:34.032] 677 | return PtmfHelper::from<ReturnType, Decay<Func>, ParamTypes...>(
[17:17:34.032] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:17:34.032] 678 | &Decay<Func>::operator()).apply(&func);
[17:17:34.032] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:17:34.032] /usr/include/kj/async-inl.h:606:9: note: Assuming the condition is true
[17:17:34.032] 606 | if (voff & 1) {
[17:17:34.032] | ^~~~~~~~
[17:17:34.032] /usr/include/kj/async-inl.h:606:5: note: Taking true branch
[17:17:34.032] 606 | if (voff & 1) {
[17:17:34.032] | ^
[17:17:34.032] /usr/include/kj/async-inl.h:609:37: note: The left operand of '+' is a garbage value
[17:17:34.032] 609 | return *(void**)(*(char**)obj + voff);
[17:17:34.032] | ~~~~~~~~~~~~ ^
[17:17:34.032] 1 warning generated.
[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++
[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]
[17:30:54.725] 609 | return *(void**)(*(char**)obj + voff);
[17:30:54.725] | ^
[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>>>>'
[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()))));
[17:30:54.725] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[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)>'
[17:30:54.725] 717 | return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
[17:30:54.725] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:30:54.725] 718 | [&]() { return kj::Promise<CallContext>(kj::mv(call_context)); })
[17:30:54.725] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:30:54.725] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:19: note: 'is_same_v' is false
[17:30:54.725] 678 | if constexpr (std::is_same_v<decltype(fn()), void>) {
[17:30:54.725] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:30:54.725] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:5: note: Taking false branch
[17:30:54.725] 678 | if constexpr (std::is_same_v<decltype(fn()), void>) {
[17:30:54.725] | ^
[17:30:54.725] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:682:16: note: Calling 'operator()'
[17:30:54.725] 682 | return fn();
[17:30:54.725] | ^~~~
[17:30:54.725] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:43: note: Calling 'ServerField::invoke'
[17:30:54.725] 717 | return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
[17:30:54.725] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[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>>'
[17:30:54.725] 539 | return PassField<Accessor>(Priority<2>(),
[17:30:54.725] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:30:54.725] 540 | typename Split<argc, ArgTypes>::First(),
[17:30:54.725] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:30:54.725] 541 | server_context,
[17:30:54.725] | ~~~~~~~~~~~~~~~
[17:30:54.725] 542 | this->parent(),
[17:30:54.725] | ~~~~~~~~~~~~~~~
[17:30:54.725] 543 | typename Split<argc, ArgTypes>::Second(),
[17:30:54.725] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:30:54.725] 544 | std::forward<Args>(args)...);
[17:30:54.725] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:30:54.725] /ci_container_base/src/ipc/libmultiprocess/include/mp/type-context.h:136:12: note: Calling 'CapabilityServerSet::getLocalServer'
[17:30:54.725] 136 | return server.m_context.connection->m_threads.getLocalServer(thread_client)
[17:30:54.725] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:30:54.725] /usr/include/capnp/capability.h:1274:10: note: Calling 'Promise::then'
[17:30:54.725] 1274 | return getLocalServerInternal(client)
[17:30:54.725] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:30:54.725] 1275 | .then([](void* server) -> kj::Maybe<typename T::Server&> {
[17:30:54.725] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:30:54.725] 1276 | if (server == nullptr) {
[17:30:54.725] | ~~~~~~~~~~~~~~~~~~~~~~~~
[17:30:54.725] 1277 | return nullptr;
[17:30:54.725] | ~~~~~~~~~~~~~~~
[17:30:54.725] 1278 | } else {
[17:30:54.725] | ~~~~~~~~
[17:30:54.725] 1279 | return *reinterpret_cast<typename T::Server*>(server);
[17:30:54.725] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:30:54.725] 1280 | }
[17:30:54.725] | ~
[17:30:54.725] 1281 | });
[17:30:54.725] | ~~
[17:30:54.725] /usr/include/kj/async-inl.h:1295:32: note: Calling 'GetFunctorStartAddress::apply'
[17:30:54.725] 1295 | void* continuationTracePtr = _::GetFunctorStartAddress<_::FixVoid<T>&&>::apply(func);
[17:30:54.725] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:30:54.725] /usr/include/kj/async-inl.h:677:12: note: Calling 'PtmfHelper::apply'
[17:30:54.725] 677 | return PtmfHelper::from<ReturnType, Decay<Func>, ParamTypes...>(
[17:30:54.725] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:30:54.725] 678 | &Decay<Func>::operator()).apply(&func);
[17:30:54.725] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:30:54.725] /usr/include/kj/async-inl.h:606:9: note: Assuming the condition is true
[17:30:54.725] 606 | if (voff & 1) {
[17:30:54.725] | ^~~~~~~~
[17:30:54.725] /usr/include/kj/async-inl.h:606:5: note: Taking true branch
[17:30:54.725] 606 | if (voff & 1) {
[17:30:54.725] | ^
[17:30:54.725] /usr/include/kj/async-inl.h:609:37: note: The left operand of '+' is a garbage value
[17:30:54.725] 609 | return *(void**)(*(char**)obj + voff);
[17:30:54.725] | ~~~~~~~~~~~~ ^
[17:30:54.725] 1 warning generated.
[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++
[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]
[17:31:45.233] 609 | return *(void**)(*(char**)obj + voff);
[17:31:45.233] | ^
[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>>>'
[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())));
[17:31:45.233] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[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)>'
[17:31:45.233] 717 | return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
[17:31:45.233] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:31:45.233] 718 | [&]() { return kj::Promise<CallContext>(kj::mv(call_context)); })
[17:31:45.233] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:31:45.233] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:19: note: 'is_same_v' is false
[17:31:45.233] 678 | if constexpr (std::is_same_v<decltype(fn()), void>) {
[17:31:45.233] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:31:45.233] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:5: note: Taking false branch
[17:31:45.233] 678 | if constexpr (std::is_same_v<decltype(fn()), void>) {
[17:31:45.233] | ^
[17:31:45.233] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:682:16: note: Calling 'operator()'
[17:31:45.233] 682 | return fn();
[17:31:45.233] | ^~~~
[17:31:45.233] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:43: note: Calling 'ServerField::invoke'
[17:31:45.233] 717 | return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
[17:31:45.233] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[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<>>'
[17:31:45.233] 539 | return PassField<Accessor>(Priority<2>(),
[17:31:45.233] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:31:45.233] 540 | typename Split<argc, ArgTypes>::First(),
[17:31:45.233] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:31:45.233] 541 | server_context,
[17:31:45.233] | ~~~~~~~~~~~~~~~
[17:31:45.233] 542 | this->parent(),
[17:31:45.233] | ~~~~~~~~~~~~~~~
[17:31:45.233] 543 | typename Split<argc, ArgTypes>::Second(),
[17:31:45.233] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:31:45.233] 544 | std::forward<Args>(args)...);
[17:31:45.233] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:31:45.233] /ci_container_base/src/ipc/libmultiprocess/include/mp/type-context.h:136:12: note: Calling 'CapabilityServerSet::getLocalServer'
[17:31:45.233] 136 | return server.m_context.connection->m_threads.getLocalServer(thread_client)
[17:31:45.233] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:31:45.233] /usr/include/capnp/capability.h:1274:10: note: Calling 'Promise::then'
[17:31:45.233] 1274 | return getLocalServerInternal(client)
[17:31:45.233] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:31:45.233] 1275 | .then([](void* server) -> kj::Maybe<typename T::Server&> {
[17:31:45.233] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:31:45.233] 1276 | if (server == nullptr) {
[17:31:45.233] | ~~~~~~~~~~~~~~~~~~~~~~~~
[17:31:45.233] 1277 | return nullptr;
[17:31:45.233] | ~~~~~~~~~~~~~~~
[17:31:45.233] 1278 | } else {
[17:31:45.233] | ~~~~~~~~
[17:31:45.233] 1279 | return *reinterpret_cast<typename T::Server*>(server);
[17:31:45.233] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:31:45.233] 1280 | }
[17:31:45.233] | ~
[17:31:45.233] 1281 | });
[17:31:45.233] | ~~
[17:31:45.233] /usr/include/kj/async-inl.h:1295:32: note: Calling 'GetFunctorStartAddress::apply'
[17:31:45.233] 1295 | void* continuationTracePtr = _::GetFunctorStartAddress<_::FixVoid<T>&&>::apply(func);
[17:31:45.233] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:31:45.233] /usr/include/kj/async-inl.h:677:12: note: Calling 'PtmfHelper::apply'
[17:31:45.233] 677 | return PtmfHelper::from<ReturnType, Decay<Func>, ParamTypes...>(
[17:31:45.233] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:31:45.233] 678 | &Decay<Func>::operator()).apply(&func);
[17:31:45.233] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:31:45.233] /usr/include/kj/async-inl.h:606:9: note: Assuming the condition is true
[17:31:45.233] 606 | if (voff & 1) {
[17:31:45.233] | ^~~~~~~~
[17:31:45.233] /usr/include/kj/async-inl.h:606:5: note: Taking true branch
[17:31:45.233] 606 | if (voff & 1) {
[17:31:45.233] | ^
[17:31:45.233] /usr/include/kj/async-inl.h:609:37: note: The left operand of '+' is a garbage value
[17:31:45.233] 609 | return *(void**)(*(char**)obj + voff);
[17:31:45.233] | ~~~~~~~~~~~~ ^
[17:31:45.233] 2 warnings generated.
[17:31:45.233]
[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++
[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]
[17:32:33.147] 609 | return *(void**)(*(char**)obj + voff);
[17:32:33.147] | ^
[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>>>'
[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())));
[17:32:33.147] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[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)>'
[17:32:33.147] 717 | return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
[17:32:33.147] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:32:33.147] 718 | [&]() { return kj::Promise<CallContext>(kj::mv(call_context)); })
[17:32:33.147] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:32:33.147] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:19: note: 'is_same_v' is false
[17:32:33.147] 678 | if constexpr (std::is_same_v<decltype(fn()), void>) {
[17:32:33.147] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:32:33.147] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:5: note: Taking false branch
[17:32:33.147] 678 | if constexpr (std::is_same_v<decltype(fn()), void>) {
[17:32:33.147] | ^
[17:32:33.147] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:682:16: note: Calling 'operator()'
[17:32:33.147] 682 | return fn();
[17:32:33.147] | ^~~~
[17:32:33.147] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:43: note: Calling 'ServerField::invoke'
[17:32:33.147] 717 | return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
[17:32:33.147] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[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<>>'
[17:32:33.147] 539 | return PassField<Accessor>(Priority<2>(),
[17:32:33.147] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:32:33.147] 540 | typename Split<argc, ArgTypes>::First(),
[17:32:33.147] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:32:33.147] 541 | server_context,
[17:32:33.147] | ~~~~~~~~~~~~~~~
[17:32:33.147] 542 | this->parent(),
[17:32:33.147] | ~~~~~~~~~~~~~~~
[17:32:33.147] 543 | typename Split<argc, ArgTypes>::Second(),
[17:32:33.147] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:32:33.147] 544 | std::forward<Args>(args)...);
[17:32:33.147] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:32:33.147] /ci_container_base/src/ipc/libmultiprocess/include/mp/type-context.h:136:12: note: Calling 'CapabilityServerSet::getLocalServer'
[17:32:33.147] 136 | return server.m_context.connection->m_threads.getLocalServer(thread_client)
[17:32:33.147] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:32:33.147] /usr/include/capnp/capability.h:1274:10: note: Calling 'Promise::then'
[17:32:33.147] 1274 | return getLocalServerInternal(client)
[17:32:33.147] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:32:33.147] 1275 | .then([](void* server) -> kj::Maybe<typename T::Server&> {
[17:32:33.147] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:32:33.147] 1276 | if (server == nullptr) {
[17:32:33.147] | ~~~~~~~~~~~~~~~~~~~~~~~~
[17:32:33.147] 1277 | return nullptr;
[17:32:33.147] | ~~~~~~~~~~~~~~~
[17:32:33.147] 1278 | } else {
[17:32:33.147] | ~~~~~~~~
[17:32:33.147] 1279 | return *reinterpret_cast<typename T::Server*>(server);
[17:32:33.147] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:32:33.147] 1280 | }
[17:32:33.147] | ~
[17:32:33.147] 1281 | });
[17:32:33.147] | ~~
[17:32:33.147] /usr/include/kj/async-inl.h:1295:32: note: Calling 'GetFunctorStartAddress::apply'
[17:32:33.147] 1295 | void* continuationTracePtr = _::GetFunctorStartAddress<_::FixVoid<T>&&>::apply(func);
[17:32:33.147] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:32:33.147] /usr/include/kj/async-inl.h:677:12: note: Calling 'PtmfHelper::apply'
[17:32:33.147] 677 | return PtmfHelper::from<ReturnType, Decay<Func>, ParamTypes...>(
[17:32:33.147] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:32:33.147] 678 | &Decay<Func>::operator()).apply(&func);
[17:32:33.147] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[17:32:33.147] /usr/include/kj/async-inl.h:606:9: note: Assuming the condition is true
[17:32:33.147] 606 | if (voff & 1) {
[17:32:33.147] | ^~~~~~~~
[17:32:33.147] /usr/include/kj/async-inl.h:606:5: note: Taking true branch
[17:32:33.147] 606 | if (voff & 1) {
[17:32:33.147] | ^
[17:32:33.147] /usr/include/kj/async-inl.h:609:37: note: The left operand of '+' is a garbage value
[17:32:33.147] 609 | return *(void**)(*(char**)obj + voff);
[17:32:33.147] | ~~~~~~~~~~~~ ^
[17:32:33.147] 1 warning generated.