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.