Page MenuHomePhabricator

[checkqueue] support user-defined return type through std::optional
ClosedPublic

Authored by PiRK on Wed, Nov 5, 14:12.

Details

Summary

The check type function now needs to return a std::optional<R> for some type R,
and the check queue overall will return std::nullopt if all individual checks
return that, or one of the non-nullopt values if there is at least one.

For most tests, we use R=int, but for the actual validation code, we make it return
the ScriptError.

This is a partial backport of core#31112
https://github.com/bitcoin/bitcoin/pull/31112/commits/1ac1c33f3f120bbe0bde4fa948299bc07cac47ee

Note that there is a minor difference in validation.cpp (scriptError vs error) because a nearly identical work on improving the error message was done independently by Bitcoin ABC and Bitcoin Core:

Test Plan

ninja all check-all

Event Timeline

PiRK requested review of this revision.Wed, Nov 5, 14:12

Tail of the build log:

[421/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[422/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/txmempool.cpp.o
[423/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[424/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[425/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[426/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[427/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[428/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[429/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/receive.cpp.o
[430/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/util.cpp.o
[431/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/signmessage.cpp.o
[432/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[433/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/transaction.cpp.o
[434/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/encrypt.cpp.o
[435/584] Building CXX object src/CMakeFiles/server.dir/validation.cpp.o
FAILED: src/CMakeFiles/server.dir/validation.cpp.o 
/usr/bin/ccache /usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I/work/src/leveldb/helpers/memenv -I/work/src/. -I/work/abc-ci-builds/build-bench/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-bench/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIC -fvisibility=hidden -fstack-reuse=none -fstack-protector-all -Wstack-protector -fcf-protection=full -fstack-clash-protection -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wredundant-decls -Wsign-compare -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Wformat-security -Wredundant-move -Woverloaded-virtual -Wno-unused-parameter -Wno-implicit-fallthrough -Wno-psabi -std=gnu++20 -MD -MT src/CMakeFiles/server.dir/validation.cpp.o -MF src/CMakeFiles/server.dir/validation.cpp.o.d -o src/CMakeFiles/server.dir/validation.cpp.o -c /work/src/validation.cpp
In file included from /usr/include/c++/12/bits/char_traits.h:46,
                 from /usr/include/c++/12/string:40,
                 from /usr/include/c++/12/stdexcept:39,
                 from /work/src/./arith_uint256.h:12,
                 from /work/src/./validation.h:14,
                 from /work/src/validation.cpp:7:
In function ‘constexpr void std::_Construct(_Tp*, _Args&& ...) [with _Tp = ScriptError; _Args = {ScriptError}]’,
    inlined from ‘constexpr void std::_Optional_payload_base<_Tp>::_M_construct(_Args&& ...) [with _Args = {ScriptError}; _Tp = ScriptError]’ at /usr/include/c++/12/optional:278:19,
    inlined from ‘constexpr void std::_Optional_base_impl<_Tp, _Dp>::_M_construct(_Args&& ...) [with _Args = {ScriptError}; _Tp = ScriptError; _Dp = std::_Optional_base<ScriptError, true, true>]’ at /usr/include/c++/12/optional:457:52,
    inlined from ‘constexpr void std::optional<_Tp>::swap(std::optional<_Tp>&) [with _Tp = ScriptError]’ at /usr/include/c++/12/optional:949:26,
    inlined from ‘constexpr std::enable_if_t<(is_move_constructible_v<_Tp> && is_swappable_v<_Tp>)> std::swap(optional<_Tp>&, optional<_Tp>&) [with _Tp = ScriptError]’ at /usr/include/c++/12/optional:1438:17,
    inlined from ‘std::optional<_Up> CCheckQueue<T, R>::Loop(bool) [with T = CScriptCheck; R = ScriptError]’ at /work/src/./checkqueue.h:87:34:
/usr/include/c++/12/bits/stl_construct.h:119:7: error: ‘*(int*)((char*)&local_result + offsetof(std::optional<ScriptError>,std::optional<ScriptError>::<unnamed>.std::_Optional_base<ScriptError, true, true>::<unnamed>))’ may be used uninitialized [-Werror=maybe-uninitialized]
  119 |       ::new((void*)__p) _Tp(std::forward<_Args>(__args)...);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /work/src/validation.cpp:22:
/work/src/./checkqueue.h: In member function ‘std::optional<_Up> CCheckQueue<T, R>::Loop(bool) [with T = CScriptCheck; R = ScriptError]’:
/work/src/./checkqueue.h:78:26: note: ‘*(int*)((char*)&local_result + offsetof(std::optional<ScriptError>,std::optional<ScriptError>::<unnamed>.std::_Optional_base<ScriptError, true, true>::<unnamed>))’ was declared here
   78 |         std::optional<R> local_result;
      |                          ^~~~~~~~~~~~
cc1plus: all warnings being treated as errors
[436/584] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[437/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[438/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/spend.cpp.o
[439/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/interfaces.cpp.o
[440/584] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[441/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[442/584] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/options.cpp.o
[443/584] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_formatter.cpp.o
[444/584] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o
[445/584] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[446/584] Linking CXX executable src/iguana/iguana
[447/584] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[448/584] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[449/584] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[450/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[451/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/backup.cpp.o
[452/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[453/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[454/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[455/584] Linking CXX static library src/wallet/libwallet.a
ninja: build stopped: cannot make progress due to previous errors.
Build build-bench failed with exit code 1

Tail of the build log:

[422/585] Building CXX object src/test/CMakeFiles/testutil.dir/util/txmempool.cpp.o
[423/585] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[424/585] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[425/585] Building CXX object src/CMakeFiles/server.dir/net_processing.cpp.o
[426/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[427/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[428/585] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[429/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/transaction.cpp.o
[430/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[431/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/receive.cpp.o
[432/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[433/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[434/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/util.cpp.o
[435/585] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[436/585] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[437/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/signmessage.cpp.o
[438/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/encrypt.cpp.o
[439/585] Building CXX object src/CMakeFiles/server.dir/validation.cpp.o
FAILED: src/CMakeFiles/server.dir/validation.cpp.o 
/usr/bin/ccache /usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I/work/src/leveldb/helpers/memenv -I/work/src/. -I/work/abc-ci-builds/build-diff/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-diff/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIC -fvisibility=hidden -fstack-reuse=none -fstack-protector-all -Wstack-protector -fcf-protection=full -fstack-clash-protection -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wredundant-decls -Wsign-compare -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Wformat-security -Wredundant-move -Woverloaded-virtual -Wno-unused-parameter -Wno-implicit-fallthrough -Wno-psabi -std=gnu++20 -MD -MT src/CMakeFiles/server.dir/validation.cpp.o -MF src/CMakeFiles/server.dir/validation.cpp.o.d -o src/CMakeFiles/server.dir/validation.cpp.o -c /work/src/validation.cpp
In file included from /usr/include/c++/12/bits/char_traits.h:46,
                 from /usr/include/c++/12/string:40,
                 from /usr/include/c++/12/stdexcept:39,
                 from /work/src/./arith_uint256.h:12,
                 from /work/src/./validation.h:14,
                 from /work/src/validation.cpp:7:
In function ‘constexpr void std::_Construct(_Tp*, _Args&& ...) [with _Tp = ScriptError; _Args = {ScriptError}]’,
    inlined from ‘constexpr void std::_Optional_payload_base<_Tp>::_M_construct(_Args&& ...) [with _Args = {ScriptError}; _Tp = ScriptError]’ at /usr/include/c++/12/optional:278:19,
    inlined from ‘constexpr void std::_Optional_base_impl<_Tp, _Dp>::_M_construct(_Args&& ...) [with _Args = {ScriptError}; _Tp = ScriptError; _Dp = std::_Optional_base<ScriptError, true, true>]’ at /usr/include/c++/12/optional:457:52,
    inlined from ‘constexpr void std::optional<_Tp>::swap(std::optional<_Tp>&) [with _Tp = ScriptError]’ at /usr/include/c++/12/optional:949:26,
    inlined from ‘constexpr std::enable_if_t<(is_move_constructible_v<_Tp> && is_swappable_v<_Tp>)> std::swap(optional<_Tp>&, optional<_Tp>&) [with _Tp = ScriptError]’ at /usr/include/c++/12/optional:1438:17,
    inlined from ‘std::optional<_Up> CCheckQueue<T, R>::Loop(bool) [with T = CScriptCheck; R = ScriptError]’ at /work/src/./checkqueue.h:87:34:
/usr/include/c++/12/bits/stl_construct.h:119:7: error: ‘*(int*)((char*)&local_result + offsetof(std::optional<ScriptError>,std::optional<ScriptError>::<unnamed>.std::_Optional_base<ScriptError, true, true>::<unnamed>))’ may be used uninitialized [-Werror=maybe-uninitialized]
  119 |       ::new((void*)__p) _Tp(std::forward<_Args>(__args)...);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /work/src/validation.cpp:22:
/work/src/./checkqueue.h: In member function ‘std::optional<_Up> CCheckQueue<T, R>::Loop(bool) [with T = CScriptCheck; R = ScriptError]’:
/work/src/./checkqueue.h:78:26: note: ‘*(int*)((char*)&local_result + offsetof(std::optional<ScriptError>,std::optional<ScriptError>::<unnamed>.std::_Optional_base<ScriptError, true, true>::<unnamed>))’ was declared here
   78 |         std::optional<R> local_result;
      |                          ^~~~~~~~~~~~
cc1plus: all warnings being treated as errors
[440/585] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_formatter.cpp.o
[441/585] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o
[442/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/interfaces.cpp.o
[443/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[444/585] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/options.cpp.o
[445/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/spend.cpp.o
[446/585] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[447/585] Linking CXX executable src/iguana/iguana
[448/585] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[449/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[450/585] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[451/585] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[452/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/backup.cpp.o
[453/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[454/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[455/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[456/585] Linking CXX static library src/wallet/libwallet.a
ninja: build stopped: cannot make progress due to previous errors.
Build build-diff failed with exit code 1

Tail of the build log:

In function ‘constexpr void std::_Construct(_Tp*, _Args&& ...) [with _Tp = ScriptError; _Args = {ScriptError}]’,
    inlined from ‘constexpr void std::_Optional_payload_base<_Tp>::_M_construct(_Args&& ...) [with _Args = {ScriptError}; _Tp = ScriptError]’ at /usr/include/c++/12/optional:278:19,
    inlined from ‘constexpr void std::_Optional_base_impl<_Tp, _Dp>::_M_construct(_Args&& ...) [with _Args = {ScriptError}; _Tp = ScriptError; _Dp = std::_Optional_base<ScriptError, true, true>]’ at /usr/include/c++/12/optional:457:52,
    inlined from ‘constexpr void std::optional<_Tp>::swap(std::optional<_Tp>&) [with _Tp = ScriptError]’ at /usr/include/c++/12/optional:949:26,
    inlined from ‘constexpr std::enable_if_t<(is_move_constructible_v<_Tp> && is_swappable_v<_Tp>)> std::swap(optional<_Tp>&, optional<_Tp>&) [with _Tp = ScriptError]’ at /usr/include/c++/12/optional:1438:17,
    inlined from ‘std::optional<_Up> CCheckQueue<T, R>::Loop(bool) [with T = CScriptCheck; R = ScriptError]’ at /work/src/./checkqueue.h:87:34:
/usr/include/c++/12/bits/stl_construct.h:119:7: error: ‘*(int*)((char*)&local_result + offsetof(std::optional<ScriptError>,std::optional<ScriptError>::<unnamed>.std::_Optional_base<ScriptError, true, true>::<unnamed>))’ may be used uninitialized [-Werror=maybe-uninitialized]
  119 |       ::new((void*)__p) _Tp(std::forward<_Args>(__args)...);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /work/src/validation.cpp:22:
/work/src/./checkqueue.h: In member function ‘std::optional<_Up> CCheckQueue<T, R>::Loop(bool) [with T = CScriptCheck; R = ScriptError]’:
/work/src/./checkqueue.h:78:26: note: ‘*(int*)((char*)&local_result + offsetof(std::optional<ScriptError>,std::optional<ScriptError>::<unnamed>.std::_Optional_base<ScriptError, true, true>::<unnamed>))’ was declared here
   78 |         std::optional<R> local_result;
      |                          ^~~~~~~~~~~~
cc1plus: all warnings being treated as errors
[546/663] Building CXX object src/test/CMakeFiles/testutil.dir/util/net.cpp.o
[547/663] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[548/663] Building CXX object src/CMakeFiles/bitcoinkernel.dir/avalanche/peermanager.cpp.o
[549/663] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[550/663] Building CXX object src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o
[551/663] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[552/663] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[553/663] Building CXX object src/CMakeFiles/bitcoinkernel.dir/avalanche/processor.cpp.o
[554/663] Building CXX object src/test/CMakeFiles/testutil.dir/util/validation.cpp.o
[555/663] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_formatter.cpp.o
[556/663] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[557/663] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o
[558/663] Building CXX object src/test/CMakeFiles/testutil.dir/util/txmempool.cpp.o
[559/663] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/options.cpp.o
[560/663] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[561/663] Linking CXX executable src/iguana/iguana
[562/663] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[563/663] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[564/663] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[565/663] Building CXX object src/CMakeFiles/bitcoinkernel.dir/validation.cpp.o
FAILED: src/CMakeFiles/bitcoinkernel.dir/validation.cpp.o 
/usr/bin/ccache /usr/bin/c++ -DBOOST_ALL_NO_LIB -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_CONFIG_H -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I/work/src/. -I/work/src/leveldb/helpers/memenv -I/work/abc-ci-builds/build-without-wallet/src -I/work/abc-ci-builds/build-without-wallet/src/crypto/.. -I/work/src/univalue/include -I/work/src/secp256k1/include -I/work/src/leveldb/include -isystem /usr/include/jemalloc -Werror -g -O2 -fPIC -fvisibility=hidden -fstack-reuse=none -fstack-protector-all -Wstack-protector -fcf-protection=full -fstack-clash-protection -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wredundant-decls -Wsign-compare -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Wformat-security -Wredundant-move -Woverloaded-virtual -Wno-unused-parameter -Wno-implicit-fallthrough -Wno-psabi -std=gnu++20 -MD -MT src/CMakeFiles/bitcoinkernel.dir/validation.cpp.o -MF src/CMakeFiles/bitcoinkernel.dir/validation.cpp.o.d -o src/CMakeFiles/bitcoinkernel.dir/validation.cpp.o -c /work/src/validation.cpp
In file included from /usr/include/c++/12/bits/char_traits.h:46,
                 from /usr/include/c++/12/string:40,
                 from /usr/include/c++/12/stdexcept:39,
                 from /work/src/./arith_uint256.h:12,
                 from /work/src/./validation.h:14,
                 from /work/src/validation.cpp:7:
In function ‘constexpr void std::_Construct(_Tp*, _Args&& ...) [with _Tp = ScriptError; _Args = {ScriptError}]’,
    inlined from ‘constexpr void std::_Optional_payload_base<_Tp>::_M_construct(_Args&& ...) [with _Args = {ScriptError}; _Tp = ScriptError]’ at /usr/include/c++/12/optional:278:19,
    inlined from ‘constexpr void std::_Optional_base_impl<_Tp, _Dp>::_M_construct(_Args&& ...) [with _Args = {ScriptError}; _Tp = ScriptError; _Dp = std::_Optional_base<ScriptError, true, true>]’ at /usr/include/c++/12/optional:457:52,
    inlined from ‘constexpr void std::optional<_Tp>::swap(std::optional<_Tp>&) [with _Tp = ScriptError]’ at /usr/include/c++/12/optional:949:26,
    inlined from ‘constexpr std::enable_if_t<(is_move_constructible_v<_Tp> && is_swappable_v<_Tp>)> std::swap(optional<_Tp>&, optional<_Tp>&) [with _Tp = ScriptError]’ at /usr/include/c++/12/optional:1438:17,
    inlined from ‘std::optional<_Up> CCheckQueue<T, R>::Loop(bool) [with T = CScriptCheck; R = ScriptError]’ at /work/src/./checkqueue.h:87:34:
/usr/include/c++/12/bits/stl_construct.h:119:7: error: ‘*(int*)((char*)&local_result + offsetof(std::optional<ScriptError>,std::optional<ScriptError>::<unnamed>.std::_Optional_base<ScriptError, true, true>::<unnamed>))’ may be used uninitialized [-Werror=maybe-uninitialized]
  119 |       ::new((void*)__p) _Tp(std::forward<_Args>(__args)...);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /work/src/validation.cpp:22:
/work/src/./checkqueue.h: In member function ‘std::optional<_Up> CCheckQueue<T, R>::Loop(bool) [with T = CScriptCheck; R = ScriptError]’:
/work/src/./checkqueue.h:78:26: note: ‘*(int*)((char*)&local_result + offsetof(std::optional<ScriptError>,std::optional<ScriptError>::<unnamed>.std::_Optional_base<ScriptError, true, true>::<unnamed>))’ was declared here
   78 |         std::optional<R> local_result;
      |                          ^~~~~~~~~~~~
cc1plus: all warnings being treated as errors
ninja: build stopped: cannot make progress due to previous errors.
Build build-without-wallet failed with exit code 1
PiRK planned changes to this revision.Wed, Nov 5, 14:45

try to workaround a false positive [-Werror=maybe-uninitialized]

Tail of the build log:

[429/585] Linking C executable src/secp256k1/internal-bench
[430/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/transaction.cpp.o
[431/585] Linking C executable src/secp256k1/sign-bench
[432/585] Installing component secp256k1
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1"
-- Installing: /results/artifacts/lib/libsecp256k1.a
-- Installing: /results/artifacts/include/secp256k1.h
-- Installing: /results/artifacts/include/secp256k1_preallocated.h
-- Installing: /results/artifacts/include/secp256k1_recovery.h
-- Installing: /results/artifacts/include/secp256k1_schnorr.h
[433/585] Linking C executable src/secp256k1/ecmult-bench
[434/585] Linking C executable src/secp256k1/verify-bench
[435/585] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[436/585] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[437/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[438/585] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_formatter.cpp.o
[439/585] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/options.cpp.o
[440/585] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o
[441/585] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[442/585] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[443/585] Linking CXX static library src/libbitcoinconsensus.a
[444/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[445/585] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[446/585] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[447/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[448/585] Linking CXX static library src/libscript.a
[449/585] Linking CXX static library src/libcommon.a
[450/585] Linking CXX shared library src/libbitcoinconsensus.so.0.32.2
[451/585] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[452/585] Linking CXX executable src/iguana/iguana
[453/585] Linking CXX executable src/bitcoin-cli
[454/585] Linking CXX executable src/bitcoin-tx
[455/585] Linking CXX static library src/wallet/libwallet.a
[456/585] Building CXX object src/CMakeFiles/server.dir/validation.cpp.o
FAILED: src/CMakeFiles/server.dir/validation.cpp.o 
/usr/bin/ccache /usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I/work/src/leveldb/helpers/memenv -I/work/src/. -I/work/abc-ci-builds/build-diff/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-diff/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIC -fvisibility=hidden -fstack-reuse=none -fstack-protector-all -Wstack-protector -fcf-protection=full -fstack-clash-protection -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wredundant-decls -Wsign-compare -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Wformat-security -Wredundant-move -Woverloaded-virtual -Wno-unused-parameter -Wno-implicit-fallthrough -Wno-psabi -std=gnu++20 -MD -MT src/CMakeFiles/server.dir/validation.cpp.o -MF src/CMakeFiles/server.dir/validation.cpp.o.d -o src/CMakeFiles/server.dir/validation.cpp.o -c /work/src/validation.cpp
In file included from /usr/include/c++/12/bits/char_traits.h:46,
                 from /usr/include/c++/12/string:40,
                 from /usr/include/c++/12/stdexcept:39,
                 from /work/src/./arith_uint256.h:12,
                 from /work/src/./validation.h:14,
                 from /work/src/validation.cpp:7:
In function ‘constexpr void std::_Construct(_Tp*, _Args&& ...) [with _Tp = ScriptError; _Args = {ScriptError}]’,
    inlined from ‘constexpr void std::_Optional_payload_base<_Tp>::_M_construct(_Args&& ...) [with _Args = {ScriptError}; _Tp = ScriptError]’ at /usr/include/c++/12/optional:278:19,
    inlined from ‘constexpr void std::_Optional_base_impl<_Tp, _Dp>::_M_construct(_Args&& ...) [with _Args = {ScriptError}; _Tp = ScriptError; _Dp = std::_Optional_base<ScriptError, true, true>]’ at /usr/include/c++/12/optional:457:52,
    inlined from ‘constexpr void std::optional<_Tp>::swap(std::optional<_Tp>&) [with _Tp = ScriptError]’ at /usr/include/c++/12/optional:949:26,
    inlined from ‘constexpr std::enable_if_t<(is_move_constructible_v<_Tp> && is_swappable_v<_Tp>)> std::swap(optional<_Tp>&, optional<_Tp>&) [with _Tp = ScriptError]’ at /usr/include/c++/12/optional:1438:17,
    inlined from ‘std::optional<_Up> CCheckQueue<T, R>::Loop(bool) [with T = CScriptCheck; R = ScriptError]’ at /work/src/./checkqueue.h:87:34:
/usr/include/c++/12/bits/stl_construct.h:119:7: error: ‘*(int*)((char*)&local_result + offsetof(std::optional<ScriptError>,std::optional<ScriptError>::<unnamed>.std::_Optional_base<ScriptError, true, true>::<unnamed>))’ may be used uninitialized [-Werror=maybe-uninitialized]
  119 |       ::new((void*)__p) _Tp(std::forward<_Args>(__args)...);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /work/src/validation.cpp:22:
/work/src/./checkqueue.h: In member function ‘std::optional<_Up> CCheckQueue<T, R>::Loop(bool) [with T = CScriptCheck; R = ScriptError]’:
/work/src/./checkqueue.h:78:26: note: ‘*(int*)((char*)&local_result + offsetof(std::optional<ScriptError>,std::optional<ScriptError>::<unnamed>.std::_Optional_base<ScriptError, true, true>::<unnamed>))’ was declared here
   78 |         std::optional<R> local_result{std::nullopt};
      |                          ^~~~~~~~~~~~
cc1plus: all warnings being treated as errors
ninja: build stopped: cannot make progress due to previous errors.
Build build-diff failed with exit code 1

Tail of the build log:

[554/663] Building CXX object src/test/CMakeFiles/testutil.dir/util/txmempool.cpp.o
[555/663] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[556/663] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/options.cpp.o
[557/663] Building CXX object src/CMakeFiles/server.dir/validation.cpp.o
FAILED: src/CMakeFiles/server.dir/validation.cpp.o 
/usr/bin/ccache /usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I/work/src/leveldb/helpers/memenv -I/work/src/. -I/work/abc-ci-builds/build-without-wallet/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-without-wallet/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIC -fvisibility=hidden -fstack-reuse=none -fstack-protector-all -Wstack-protector -fcf-protection=full -fstack-clash-protection -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wredundant-decls -Wsign-compare -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Wformat-security -Wredundant-move -Woverloaded-virtual -Wno-unused-parameter -Wno-implicit-fallthrough -Wno-psabi -std=gnu++20 -MD -MT src/CMakeFiles/server.dir/validation.cpp.o -MF src/CMakeFiles/server.dir/validation.cpp.o.d -o src/CMakeFiles/server.dir/validation.cpp.o -c /work/src/validation.cpp
In file included from /usr/include/c++/12/bits/char_traits.h:46,
                 from /usr/include/c++/12/string:40,
                 from /usr/include/c++/12/stdexcept:39,
                 from /work/src/./arith_uint256.h:12,
                 from /work/src/./validation.h:14,
                 from /work/src/validation.cpp:7:
In function ‘constexpr void std::_Construct(_Tp*, _Args&& ...) [with _Tp = ScriptError; _Args = {ScriptError}]’,
    inlined from ‘constexpr void std::_Optional_payload_base<_Tp>::_M_construct(_Args&& ...) [with _Args = {ScriptError}; _Tp = ScriptError]’ at /usr/include/c++/12/optional:278:19,
    inlined from ‘constexpr void std::_Optional_base_impl<_Tp, _Dp>::_M_construct(_Args&& ...) [with _Args = {ScriptError}; _Tp = ScriptError; _Dp = std::_Optional_base<ScriptError, true, true>]’ at /usr/include/c++/12/optional:457:52,
    inlined from ‘constexpr void std::optional<_Tp>::swap(std::optional<_Tp>&) [with _Tp = ScriptError]’ at /usr/include/c++/12/optional:949:26,
    inlined from ‘constexpr std::enable_if_t<(is_move_constructible_v<_Tp> && is_swappable_v<_Tp>)> std::swap(optional<_Tp>&, optional<_Tp>&) [with _Tp = ScriptError]’ at /usr/include/c++/12/optional:1438:17,
    inlined from ‘std::optional<_Up> CCheckQueue<T, R>::Loop(bool) [with T = CScriptCheck; R = ScriptError]’ at /work/src/./checkqueue.h:87:34:
/usr/include/c++/12/bits/stl_construct.h:119:7: error: ‘*(int*)((char*)&local_result + offsetof(std::optional<ScriptError>,std::optional<ScriptError>::<unnamed>.std::_Optional_base<ScriptError, true, true>::<unnamed>))’ may be used uninitialized [-Werror=maybe-uninitialized]
  119 |       ::new((void*)__p) _Tp(std::forward<_Args>(__args)...);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /work/src/validation.cpp:22:
/work/src/./checkqueue.h: In member function ‘std::optional<_Up> CCheckQueue<T, R>::Loop(bool) [with T = CScriptCheck; R = ScriptError]’:
/work/src/./checkqueue.h:78:26: note: ‘*(int*)((char*)&local_result + offsetof(std::optional<ScriptError>,std::optional<ScriptError>::<unnamed>.std::_Optional_base<ScriptError, true, true>::<unnamed>))’ was declared here
   78 |         std::optional<R> local_result{std::nullopt};
      |                          ^~~~~~~~~~~~
cc1plus: all warnings being treated as errors
[558/663] Building CXX object src/CMakeFiles/bitcoinkernel.dir/avalanche/peermanager.cpp.o
[559/663] Building CXX object src/CMakeFiles/bitcoinkernel.dir/avalanche/processor.cpp.o
[560/663] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[561/663] Linking CXX executable src/iguana/iguana
[562/663] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[563/663] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[564/663] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[565/663] Building CXX object src/CMakeFiles/bitcoinkernel.dir/validation.cpp.o
FAILED: src/CMakeFiles/bitcoinkernel.dir/validation.cpp.o 
/usr/bin/ccache /usr/bin/c++ -DBOOST_ALL_NO_LIB -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_CONFIG_H -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I/work/src/. -I/work/src/leveldb/helpers/memenv -I/work/abc-ci-builds/build-without-wallet/src -I/work/abc-ci-builds/build-without-wallet/src/crypto/.. -I/work/src/univalue/include -I/work/src/secp256k1/include -I/work/src/leveldb/include -isystem /usr/include/jemalloc -Werror -g -O2 -fPIC -fvisibility=hidden -fstack-reuse=none -fstack-protector-all -Wstack-protector -fcf-protection=full -fstack-clash-protection -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wredundant-decls -Wsign-compare -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Wformat-security -Wredundant-move -Woverloaded-virtual -Wno-unused-parameter -Wno-implicit-fallthrough -Wno-psabi -std=gnu++20 -MD -MT src/CMakeFiles/bitcoinkernel.dir/validation.cpp.o -MF src/CMakeFiles/bitcoinkernel.dir/validation.cpp.o.d -o src/CMakeFiles/bitcoinkernel.dir/validation.cpp.o -c /work/src/validation.cpp
In file included from /usr/include/c++/12/bits/char_traits.h:46,
                 from /usr/include/c++/12/string:40,
                 from /usr/include/c++/12/stdexcept:39,
                 from /work/src/./arith_uint256.h:12,
                 from /work/src/./validation.h:14,
                 from /work/src/validation.cpp:7:
In function ‘constexpr void std::_Construct(_Tp*, _Args&& ...) [with _Tp = ScriptError; _Args = {ScriptError}]’,
    inlined from ‘constexpr void std::_Optional_payload_base<_Tp>::_M_construct(_Args&& ...) [with _Args = {ScriptError}; _Tp = ScriptError]’ at /usr/include/c++/12/optional:278:19,
    inlined from ‘constexpr void std::_Optional_base_impl<_Tp, _Dp>::_M_construct(_Args&& ...) [with _Args = {ScriptError}; _Tp = ScriptError; _Dp = std::_Optional_base<ScriptError, true, true>]’ at /usr/include/c++/12/optional:457:52,
    inlined from ‘constexpr void std::optional<_Tp>::swap(std::optional<_Tp>&) [with _Tp = ScriptError]’ at /usr/include/c++/12/optional:949:26,
    inlined from ‘constexpr std::enable_if_t<(is_move_constructible_v<_Tp> && is_swappable_v<_Tp>)> std::swap(optional<_Tp>&, optional<_Tp>&) [with _Tp = ScriptError]’ at /usr/include/c++/12/optional:1438:17,
    inlined from ‘std::optional<_Up> CCheckQueue<T, R>::Loop(bool) [with T = CScriptCheck; R = ScriptError]’ at /work/src/./checkqueue.h:87:34:
/usr/include/c++/12/bits/stl_construct.h:119:7: error: ‘*(int*)((char*)&local_result + offsetof(std::optional<ScriptError>,std::optional<ScriptError>::<unnamed>.std::_Optional_base<ScriptError, true, true>::<unnamed>))’ may be used uninitialized [-Werror=maybe-uninitialized]
  119 |       ::new((void*)__p) _Tp(std::forward<_Args>(__args)...);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /work/src/validation.cpp:22:
/work/src/./checkqueue.h: In member function ‘std::optional<_Up> CCheckQueue<T, R>::Loop(bool) [with T = CScriptCheck; R = ScriptError]’:
/work/src/./checkqueue.h:78:26: note: ‘*(int*)((char*)&local_result + offsetof(std::optional<ScriptError>,std::optional<ScriptError>::<unnamed>.std::_Optional_base<ScriptError, true, true>::<unnamed>))’ was declared here
   78 |         std::optional<R> local_result{std::nullopt};
      |                          ^~~~~~~~~~~~
cc1plus: all warnings being treated as errors
ninja: build stopped: cannot make progress due to previous errors.
Build build-without-wallet failed with exit code 1

Tail of the build log:

[421/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[422/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[423/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/txmempool.cpp.o
[424/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[425/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[426/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[427/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[428/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[429/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/receive.cpp.o
[430/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/util.cpp.o
[431/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/signmessage.cpp.o
[432/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/transaction.cpp.o
[433/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[434/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/encrypt.cpp.o
[435/584] Building CXX object src/CMakeFiles/server.dir/validation.cpp.o
FAILED: src/CMakeFiles/server.dir/validation.cpp.o 
/usr/bin/ccache /usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I/work/src/leveldb/helpers/memenv -I/work/src/. -I/work/abc-ci-builds/build-bench/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-bench/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIC -fvisibility=hidden -fstack-reuse=none -fstack-protector-all -Wstack-protector -fcf-protection=full -fstack-clash-protection -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wredundant-decls -Wsign-compare -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Wformat-security -Wredundant-move -Woverloaded-virtual -Wno-unused-parameter -Wno-implicit-fallthrough -Wno-psabi -std=gnu++20 -MD -MT src/CMakeFiles/server.dir/validation.cpp.o -MF src/CMakeFiles/server.dir/validation.cpp.o.d -o src/CMakeFiles/server.dir/validation.cpp.o -c /work/src/validation.cpp
In file included from /usr/include/c++/12/bits/char_traits.h:46,
                 from /usr/include/c++/12/string:40,
                 from /usr/include/c++/12/stdexcept:39,
                 from /work/src/./arith_uint256.h:12,
                 from /work/src/./validation.h:14,
                 from /work/src/validation.cpp:7:
In function ‘constexpr void std::_Construct(_Tp*, _Args&& ...) [with _Tp = ScriptError; _Args = {ScriptError}]’,
    inlined from ‘constexpr void std::_Optional_payload_base<_Tp>::_M_construct(_Args&& ...) [with _Args = {ScriptError}; _Tp = ScriptError]’ at /usr/include/c++/12/optional:278:19,
    inlined from ‘constexpr void std::_Optional_base_impl<_Tp, _Dp>::_M_construct(_Args&& ...) [with _Args = {ScriptError}; _Tp = ScriptError; _Dp = std::_Optional_base<ScriptError, true, true>]’ at /usr/include/c++/12/optional:457:52,
    inlined from ‘constexpr void std::optional<_Tp>::swap(std::optional<_Tp>&) [with _Tp = ScriptError]’ at /usr/include/c++/12/optional:949:26,
    inlined from ‘constexpr std::enable_if_t<(is_move_constructible_v<_Tp> && is_swappable_v<_Tp>)> std::swap(optional<_Tp>&, optional<_Tp>&) [with _Tp = ScriptError]’ at /usr/include/c++/12/optional:1438:17,
    inlined from ‘std::optional<_Up> CCheckQueue<T, R>::Loop(bool) [with T = CScriptCheck; R = ScriptError]’ at /work/src/./checkqueue.h:87:34:
/usr/include/c++/12/bits/stl_construct.h:119:7: error: ‘*(int*)((char*)&local_result + offsetof(std::optional<ScriptError>,std::optional<ScriptError>::<unnamed>.std::_Optional_base<ScriptError, true, true>::<unnamed>))’ may be used uninitialized [-Werror=maybe-uninitialized]
  119 |       ::new((void*)__p) _Tp(std::forward<_Args>(__args)...);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /work/src/validation.cpp:22:
/work/src/./checkqueue.h: In member function ‘std::optional<_Up> CCheckQueue<T, R>::Loop(bool) [with T = CScriptCheck; R = ScriptError]’:
/work/src/./checkqueue.h:78:26: note: ‘*(int*)((char*)&local_result + offsetof(std::optional<ScriptError>,std::optional<ScriptError>::<unnamed>.std::_Optional_base<ScriptError, true, true>::<unnamed>))’ was declared here
   78 |         std::optional<R> local_result{std::nullopt};
      |                          ^~~~~~~~~~~~
cc1plus: all warnings being treated as errors
[436/584] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[437/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[438/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/interfaces.cpp.o
[439/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/spend.cpp.o
[440/584] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[441/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[442/584] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/options.cpp.o
[443/584] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o
[444/584] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_formatter.cpp.o
[445/584] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[446/584] Linking CXX executable src/iguana/iguana
[447/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[448/584] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[449/584] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[450/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/backup.cpp.o
[451/584] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[452/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[453/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[454/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[455/584] Linking CXX static library src/wallet/libwallet.a
ninja: build stopped: cannot make progress due to previous errors.
Build build-bench failed with exit code 1

probably https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107919, need to find a temporary workaround (the error goes away for some obscure reason in D18878)

LGTM but the CI needs to run. Once a workaround is found it can be green

Tail of the build log:

[422/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/encrypt.cpp.o
[423/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/signmessage.cpp.o
[424/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/util.cpp.o
[425/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[426/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[427/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/spend.cpp.o
[428/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[429/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/transaction.cpp.o
[430/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[431/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[432/585] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[433/585] Building CXX object src/CMakeFiles/server.dir/rpc/txoutproof.cpp.o
[434/585] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[435/585] Building CXX object src/CMakeFiles/server.dir/rpc/misc.cpp.o
[436/585] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[437/585] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[438/585] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/options.cpp.o
[439/585] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[440/585] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[441/585] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_formatter.cpp.o
[442/585] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o
[443/585] Linking CXX static library src/wallet/libwallet.a
[444/585] Linking CXX executable src/iguana/iguana
[445/585] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[446/585] Building CXX object src/CMakeFiles/server.dir/rpc/mining.cpp.o
[447/585] Building CXX object src/CMakeFiles/server.dir/rpc/net.cpp.o
[448/585] Building CXX object src/test/CMakeFiles/testutil.dir/util/validation.cpp.o
[449/585] Building CXX object src/test/CMakeFiles/testutil.dir/util/txmempool.cpp.o
[450/585] Building CXX object src/CMakeFiles/server.dir/rpc/avalanche.cpp.o
[451/585] Building CXX object src/CMakeFiles/server.dir/rpc/rawtransaction.cpp.o
[452/585] Building CXX object src/CMakeFiles/server.dir/net_processing.cpp.o
[453/585] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[454/585] Building CXX object src/CMakeFiles/server.dir/rpc/blockchain.cpp.o
[455/585] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[456/585] Building CXX object src/CMakeFiles/server.dir/validation.cpp.o
FAILED: src/CMakeFiles/server.dir/validation.cpp.o 
/usr/bin/ccache /usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I/work/src/leveldb/helpers/memenv -I/work/src/. -I/work/abc-ci-builds/build-diff/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-diff/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIC -fvisibility=hidden -fstack-reuse=none -fstack-protector-all -Wstack-protector -fcf-protection=full -fstack-clash-protection -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wredundant-decls -Wsign-compare -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Wformat-security -Wredundant-move -Woverloaded-virtual -Wno-unused-parameter -Wno-implicit-fallthrough -Wno-psabi -std=gnu++20 -MD -MT src/CMakeFiles/server.dir/validation.cpp.o -MF src/CMakeFiles/server.dir/validation.cpp.o.d -o src/CMakeFiles/server.dir/validation.cpp.o -c /work/src/validation.cpp
In file included from /usr/include/c++/12/bits/char_traits.h:46,
                 from /usr/include/c++/12/string:40,
                 from /usr/include/c++/12/stdexcept:39,
                 from /work/src/./arith_uint256.h:12,
                 from /work/src/./validation.h:14,
                 from /work/src/validation.cpp:7:
In function ‘constexpr void std::_Construct(_Tp*, _Args&& ...) [with _Tp = ScriptError; _Args = {ScriptError}]’,
    inlined from ‘constexpr void std::_Optional_payload_base<_Tp>::_M_construct(_Args&& ...) [with _Args = {ScriptError}; _Tp = ScriptError]’ at /usr/include/c++/12/optional:278:19,
    inlined from ‘constexpr void std::_Optional_base_impl<_Tp, _Dp>::_M_construct(_Args&& ...) [with _Args = {ScriptError}; _Tp = ScriptError; _Dp = std::_Optional_base<ScriptError, true, true>]’ at /usr/include/c++/12/optional:457:52,
    inlined from ‘constexpr void std::optional<_Tp>::swap(std::optional<_Tp>&) [with _Tp = ScriptError]’ at /usr/include/c++/12/optional:949:26,
    inlined from ‘constexpr std::enable_if_t<(is_move_constructible_v<_Tp> && is_swappable_v<_Tp>)> std::swap(optional<_Tp>&, optional<_Tp>&) [with _Tp = ScriptError]’ at /usr/include/c++/12/optional:1438:17,
    inlined from ‘std::optional<_Up> CCheckQueue<T, R>::Loop(bool) [with T = CScriptCheck; R = ScriptError]’ at /work/src/./checkqueue.h:87:34:
/usr/include/c++/12/bits/stl_construct.h:119:7: error: ‘*(int*)((char*)&local_result + offsetof(std::optional<ScriptError>,std::optional<ScriptError>::<unnamed>.std::_Optional_base<ScriptError, true, true>::<unnamed>))’ may be used uninitialized [-Werror=maybe-uninitialized]
  119 |       ::new((void*)__p) _Tp(std::forward<_Args>(__args)...);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /work/src/validation.cpp:22:
/work/src/./checkqueue.h: In member function ‘std::optional<_Up> CCheckQueue<T, R>::Loop(bool) [with T = CScriptCheck; R = ScriptError]’:
/work/src/./checkqueue.h:78:28: note: ‘*(int*)((char*)&local_result + offsetof(std::optional<ScriptError>,std::optional<ScriptError>::<unnamed>.std::_Optional_base<ScriptError, true, true>::<unnamed>))’ was declared here
   78 |         decltype(m_result) local_result;
      |                            ^~~~~~~~~~~~
cc1plus: all warnings being treated as errors
ninja: build stopped: cannot make progress due to previous errors.
Build build-diff failed with exit code 1

Tail of the build log:

[421/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[422/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/txmempool.cpp.o
[423/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[424/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[425/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[426/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[427/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[428/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[429/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/receive.cpp.o
[430/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/signmessage.cpp.o
[431/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/util.cpp.o
[432/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/transaction.cpp.o
[433/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[434/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/encrypt.cpp.o
[435/584] Building CXX object src/CMakeFiles/server.dir/validation.cpp.o
FAILED: src/CMakeFiles/server.dir/validation.cpp.o 
/usr/bin/ccache /usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I/work/src/leveldb/helpers/memenv -I/work/src/. -I/work/abc-ci-builds/build-bench/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-bench/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIC -fvisibility=hidden -fstack-reuse=none -fstack-protector-all -Wstack-protector -fcf-protection=full -fstack-clash-protection -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wredundant-decls -Wsign-compare -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Wformat-security -Wredundant-move -Woverloaded-virtual -Wno-unused-parameter -Wno-implicit-fallthrough -Wno-psabi -std=gnu++20 -MD -MT src/CMakeFiles/server.dir/validation.cpp.o -MF src/CMakeFiles/server.dir/validation.cpp.o.d -o src/CMakeFiles/server.dir/validation.cpp.o -c /work/src/validation.cpp
In file included from /usr/include/c++/12/bits/char_traits.h:46,
                 from /usr/include/c++/12/string:40,
                 from /usr/include/c++/12/stdexcept:39,
                 from /work/src/./arith_uint256.h:12,
                 from /work/src/./validation.h:14,
                 from /work/src/validation.cpp:7:
In function ‘constexpr void std::_Construct(_Tp*, _Args&& ...) [with _Tp = ScriptError; _Args = {ScriptError}]’,
    inlined from ‘constexpr void std::_Optional_payload_base<_Tp>::_M_construct(_Args&& ...) [with _Args = {ScriptError}; _Tp = ScriptError]’ at /usr/include/c++/12/optional:278:19,
    inlined from ‘constexpr void std::_Optional_base_impl<_Tp, _Dp>::_M_construct(_Args&& ...) [with _Args = {ScriptError}; _Tp = ScriptError; _Dp = std::_Optional_base<ScriptError, true, true>]’ at /usr/include/c++/12/optional:457:52,
    inlined from ‘constexpr void std::optional<_Tp>::swap(std::optional<_Tp>&) [with _Tp = ScriptError]’ at /usr/include/c++/12/optional:949:26,
    inlined from ‘constexpr std::enable_if_t<(is_move_constructible_v<_Tp> && is_swappable_v<_Tp>)> std::swap(optional<_Tp>&, optional<_Tp>&) [with _Tp = ScriptError]’ at /usr/include/c++/12/optional:1438:17,
    inlined from ‘std::optional<_Up> CCheckQueue<T, R>::Loop(bool) [with T = CScriptCheck; R = ScriptError]’ at /work/src/./checkqueue.h:87:34:
/usr/include/c++/12/bits/stl_construct.h:119:7: error: ‘*(int*)((char*)&local_result + offsetof(std::optional<ScriptError>,std::optional<ScriptError>::<unnamed>.std::_Optional_base<ScriptError, true, true>::<unnamed>))’ may be used uninitialized [-Werror=maybe-uninitialized]
  119 |       ::new((void*)__p) _Tp(std::forward<_Args>(__args)...);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /work/src/validation.cpp:22:
/work/src/./checkqueue.h: In member function ‘std::optional<_Up> CCheckQueue<T, R>::Loop(bool) [with T = CScriptCheck; R = ScriptError]’:
/work/src/./checkqueue.h:78:28: note: ‘*(int*)((char*)&local_result + offsetof(std::optional<ScriptError>,std::optional<ScriptError>::<unnamed>.std::_Optional_base<ScriptError, true, true>::<unnamed>))’ was declared here
   78 |         decltype(m_result) local_result;
      |                            ^~~~~~~~~~~~
cc1plus: all warnings being treated as errors
[436/584] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[437/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[438/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/interfaces.cpp.o
[439/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/spend.cpp.o
[440/584] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[441/584] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/options.cpp.o
[442/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[443/584] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[444/584] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_formatter.cpp.o
[445/584] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o
[446/584] Linking CXX executable src/iguana/iguana
[447/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[448/584] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[449/584] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[450/584] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[451/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/backup.cpp.o
[452/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[453/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[454/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[455/584] Linking CXX static library src/wallet/libwallet.a
ninja: build stopped: cannot make progress due to previous errors.
Build build-bench failed with exit code 1

Tail of the build log:

In function ‘constexpr void std::_Construct(_Tp*, _Args&& ...) [with _Tp = ScriptError; _Args = {ScriptError}]’,
    inlined from ‘constexpr void std::_Optional_payload_base<_Tp>::_M_construct(_Args&& ...) [with _Args = {ScriptError}; _Tp = ScriptError]’ at /usr/include/c++/12/optional:278:19,
    inlined from ‘constexpr void std::_Optional_base_impl<_Tp, _Dp>::_M_construct(_Args&& ...) [with _Args = {ScriptError}; _Tp = ScriptError; _Dp = std::_Optional_base<ScriptError, true, true>]’ at /usr/include/c++/12/optional:457:52,
    inlined from ‘constexpr void std::optional<_Tp>::swap(std::optional<_Tp>&) [with _Tp = ScriptError]’ at /usr/include/c++/12/optional:949:26,
    inlined from ‘constexpr std::enable_if_t<(is_move_constructible_v<_Tp> && is_swappable_v<_Tp>)> std::swap(optional<_Tp>&, optional<_Tp>&) [with _Tp = ScriptError]’ at /usr/include/c++/12/optional:1438:17,
    inlined from ‘std::optional<_Up> CCheckQueue<T, R>::Loop(bool) [with T = CScriptCheck; R = ScriptError]’ at /work/src/./checkqueue.h:87:34:
/usr/include/c++/12/bits/stl_construct.h:119:7: error: ‘*(int*)((char*)&local_result + offsetof(std::optional<ScriptError>,std::optional<ScriptError>::<unnamed>.std::_Optional_base<ScriptError, true, true>::<unnamed>))’ may be used uninitialized [-Werror=maybe-uninitialized]
  119 |       ::new((void*)__p) _Tp(std::forward<_Args>(__args)...);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /work/src/validation.cpp:22:
/work/src/./checkqueue.h: In member function ‘std::optional<_Up> CCheckQueue<T, R>::Loop(bool) [with T = CScriptCheck; R = ScriptError]’:
/work/src/./checkqueue.h:78:28: note: ‘*(int*)((char*)&local_result + offsetof(std::optional<ScriptError>,std::optional<ScriptError>::<unnamed>.std::_Optional_base<ScriptError, true, true>::<unnamed>))’ was declared here
   78 |         decltype(m_result) local_result;
      |                            ^~~~~~~~~~~~
cc1plus: all warnings being treated as errors
[546/663] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[547/663] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[548/663] Building CXX object src/test/CMakeFiles/testutil.dir/util/net.cpp.o
[549/663] Building CXX object src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o
[550/663] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[551/663] Building CXX object src/CMakeFiles/bitcoinkernel.dir/avalanche/peermanager.cpp.o
[552/663] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[553/663] Building CXX object src/CMakeFiles/bitcoinkernel.dir/avalanche/processor.cpp.o
[554/663] Building CXX object src/test/CMakeFiles/testutil.dir/util/validation.cpp.o
[555/663] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[556/663] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_formatter.cpp.o
[557/663] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/options.cpp.o
[558/663] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o
[559/663] Building CXX object src/test/CMakeFiles/testutil.dir/util/txmempool.cpp.o
[560/663] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[561/663] Linking CXX executable src/iguana/iguana
[562/663] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[563/663] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[564/663] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[565/663] Building CXX object src/CMakeFiles/bitcoinkernel.dir/validation.cpp.o
FAILED: src/CMakeFiles/bitcoinkernel.dir/validation.cpp.o 
/usr/bin/ccache /usr/bin/c++ -DBOOST_ALL_NO_LIB -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_CONFIG_H -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I/work/src/. -I/work/src/leveldb/helpers/memenv -I/work/abc-ci-builds/build-without-wallet/src -I/work/abc-ci-builds/build-without-wallet/src/crypto/.. -I/work/src/univalue/include -I/work/src/secp256k1/include -I/work/src/leveldb/include -isystem /usr/include/jemalloc -Werror -g -O2 -fPIC -fvisibility=hidden -fstack-reuse=none -fstack-protector-all -Wstack-protector -fcf-protection=full -fstack-clash-protection -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wredundant-decls -Wsign-compare -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Wformat-security -Wredundant-move -Woverloaded-virtual -Wno-unused-parameter -Wno-implicit-fallthrough -Wno-psabi -std=gnu++20 -MD -MT src/CMakeFiles/bitcoinkernel.dir/validation.cpp.o -MF src/CMakeFiles/bitcoinkernel.dir/validation.cpp.o.d -o src/CMakeFiles/bitcoinkernel.dir/validation.cpp.o -c /work/src/validation.cpp
In file included from /usr/include/c++/12/bits/char_traits.h:46,
                 from /usr/include/c++/12/string:40,
                 from /usr/include/c++/12/stdexcept:39,
                 from /work/src/./arith_uint256.h:12,
                 from /work/src/./validation.h:14,
                 from /work/src/validation.cpp:7:
In function ‘constexpr void std::_Construct(_Tp*, _Args&& ...) [with _Tp = ScriptError; _Args = {ScriptError}]’,
    inlined from ‘constexpr void std::_Optional_payload_base<_Tp>::_M_construct(_Args&& ...) [with _Args = {ScriptError}; _Tp = ScriptError]’ at /usr/include/c++/12/optional:278:19,
    inlined from ‘constexpr void std::_Optional_base_impl<_Tp, _Dp>::_M_construct(_Args&& ...) [with _Args = {ScriptError}; _Tp = ScriptError; _Dp = std::_Optional_base<ScriptError, true, true>]’ at /usr/include/c++/12/optional:457:52,
    inlined from ‘constexpr void std::optional<_Tp>::swap(std::optional<_Tp>&) [with _Tp = ScriptError]’ at /usr/include/c++/12/optional:949:26,
    inlined from ‘constexpr std::enable_if_t<(is_move_constructible_v<_Tp> && is_swappable_v<_Tp>)> std::swap(optional<_Tp>&, optional<_Tp>&) [with _Tp = ScriptError]’ at /usr/include/c++/12/optional:1438:17,
    inlined from ‘std::optional<_Up> CCheckQueue<T, R>::Loop(bool) [with T = CScriptCheck; R = ScriptError]’ at /work/src/./checkqueue.h:87:34:
/usr/include/c++/12/bits/stl_construct.h:119:7: error: ‘*(int*)((char*)&local_result + offsetof(std::optional<ScriptError>,std::optional<ScriptError>::<unnamed>.std::_Optional_base<ScriptError, true, true>::<unnamed>))’ may be used uninitialized [-Werror=maybe-uninitialized]
  119 |       ::new((void*)__p) _Tp(std::forward<_Args>(__args)...);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /work/src/validation.cpp:22:
/work/src/./checkqueue.h: In member function ‘std::optional<_Up> CCheckQueue<T, R>::Loop(bool) [with T = CScriptCheck; R = ScriptError]’:
/work/src/./checkqueue.h:78:28: note: ‘*(int*)((char*)&local_result + offsetof(std::optional<ScriptError>,std::optional<ScriptError>::<unnamed>.std::_Optional_base<ScriptError, true, true>::<unnamed>))’ was declared here
   78 |         decltype(m_result) local_result;
      |                            ^~~~~~~~~~~~
cc1plus: all warnings being treated as errors
ninja: build stopped: cannot make progress due to previous errors.
Build build-without-wallet failed with exit code 1

try replacing std::optional<R> local_result with a bool has_local_result; + R local_result; (remember that we converge back to Core's solution in D18878, so the hack is temporary)

Tail of the build log:

[482/540] bitcoin: testing txpackage_tests
[483/540] Running utility command for check-bitcoin-validation_flush_tests
[484/540] Running utility command for check-bitcoin-txpackage_tests
[485/540] bitcoin: testing blockindex_comparator_tests
[486/540] bitcoin: testing xoroshiro128plusplus_tests
[487/540] Running utility command for check-bitcoin-blockindex_comparator_tests
[488/540] bitcoin: testing server_tests
[489/540] Running utility command for check-bitcoin-xoroshiro128plusplus_tests
[490/540] Running utility command for check-bitcoin-server_tests
[491/540] bitcoin: testing validation_tests
[492/540] bitcoin: testing db_tests
[493/540] Running utility command for check-bitcoin-validation_tests
[494/540] Running utility command for check-bitcoin-db_tests
[495/540] bitcoin: testing init_tests
[496/540] bitcoin: testing util_tests
[497/540] Running utility command for check-bitcoin-init_tests
[498/540] Running utility command for check-bitcoin-util_tests
[499/540] bitcoin: testing intmath_tests
[500/540] bitcoin: testing ismine_tests
[501/540] Running utility command for check-bitcoin-intmath_tests
[502/540] Running utility command for check-bitcoin-ismine_tests
[503/540] bitcoin: testing validationinterface_tests
[504/540] Running utility command for check-bitcoin-validationinterface_tests
[505/540] bitcoin: testing scriptpubkeyman_tests
[506/540] Running utility command for check-avalanche-peermanager_tests
[507/540] bitcoin: testing txvalidationcache_tests
[508/540] Running utility command for check-bitcoin-scriptpubkeyman_tests
[509/540] Running utility command for check-avalanche-processor_tests
[510/540] Running utility command for check-bitcoin-txvalidationcache_tests
[511/540] Running utility command for check-avalanche-voterecord_tests
[512/540] Running avalanche test suite
PASSED: avalanche test suite
[513/540] bitcoin: testing txrequest_tests
[514/540] Running utility command for check-bitcoin-txrequest_tests
[515/540] bitcoin: testing validation_block_tests
[516/540] bitcoin: testing walletdb_tests
[517/540] Running utility command for check-bitcoin-validation_block_tests
[518/540] Running utility command for check-bitcoin-walletdb_tests
[519/540] bitcoin: testing psbt_wallet_tests
[520/540] Running utility command for check-bitcoin-psbt_wallet_tests
[521/540] Linking CXX executable src/qt/test/test_bitcoin-qt
[522/540] bitcoin: testing wallet_crypto_tests
[523/540] Running utility command for check-bitcoin-wallet_crypto_tests
[524/540] bitcoin-qt: testing test_bitcoin-qt
[525/540] Running bitcoin-qt test suite
PASSED: bitcoin-qt test suite
[526/540] bitcoin: testing validation_chainstatemanager_tests
[527/540] Running utility command for check-bitcoin-validation_chainstatemanager_tests
[528/540] bitcoin: testing transaction_tests
[529/540] Running utility command for check-bitcoin-transaction_tests
[530/540] bitcoin: testing wallet_tests
[531/540] Running utility command for check-bitcoin-wallet_tests
[532/540] bitcoin: testing coins_tests
[533/540] Running utility command for check-bitcoin-coins_tests
[534/540] bitcoin: testing coinselector_tests
[535/540] Running utility command for check-bitcoin-coinselector_tests
[536/540] bitcoin: testing scriptnum_63bit_tests
[537/540] Running utility command for check-bitcoin-scriptnum_63bit_tests
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang failed with exit code 1

Failed tests logs:

====== Bitcoin ABC functional tests: feature_csv_activation.py ======

------- Stdout: -------
2025-11-05T18:20:11.605000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-without-wallet/test/tmp/test_runner_₿₵_🏃_20251105_181937_32711/feature_csv_activation_32
2025-11-05T18:20:11.965000Z TestFramework (INFO): Generate blocks in the past for coinbase outputs.
2025-11-05T18:20:13.174000Z TestFramework (INFO): Not yet activated, height = 574 (will activate for block 576, not 575)
2025-11-05T18:20:13.266000Z TestFramework (INFO): TESTING
2025-11-05T18:20:13.266000Z TestFramework (INFO): Pre-Soft Fork Tests. All txs should pass.
2025-11-05T18:20:13.266000Z TestFramework (INFO): Test version 1 txs
2025-11-05T18:20:13.410000Z TestFramework (INFO): Test version 2 txs
2025-11-05T18:20:13.665000Z TestFramework (INFO): Post-Soft Fork Tests.
2025-11-05T18:20:13.666000Z TestFramework (INFO): BIP 113 tests
2025-11-05T18:20:14.179000Z TestFramework (INFO): BIP 68 tests
2025-11-05T18:20:14.179000Z TestFramework (INFO): Test version 1 txs - all should still pass
2025-11-05T18:20:14.285000Z TestFramework (INFO): Test version 2 txs
2025-11-05T18:20:15.977000Z TestFramework (INFO): BIP 112 tests
2025-11-05T18:20:15.977000Z TestFramework (INFO): Test version 1 txs
2025-11-05T18:21:16.225000Z TestFramework.utils (ERROR): wait_until() failed. Predicate: ''''
        def test_function():
            if check_connected:
                assert self.is_connected
            return test_function_in()
'''
2025-11-05T18:21:16.225000Z TestFramework (ERROR): Assertion failed
Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 152, in main
    self._run_test_internal()
  File "/work/test/functional/test_framework/test_framework.py", line 142, in _run_test_internal
    self.run_test()
  File "/work/test/functional/feature_csv_activation.py", line 519, in run_test
    self.send_blocks([self.create_test_block_spend_utxos(success_txs)])
  File "/work/test/functional/feature_csv_activation.py", line 202, in send_blocks
    self.helper_peer.send_blocks_and_test(blocks, self.nodes[0], success=success)
  File "/work/test/functional/test_framework/p2p.py", line 914, in send_blocks_and_test
    test()
  File "/work/test/functional/test_framework/p2p.py", line 903, in test
    self.wait_until(
  File "/work/test/functional/test_framework/p2p.py", line 582, in wait_until
    wait_until_helper(
  File "/work/test/functional/test_framework/util.py", line 312, in wait_until_helper
    raise AssertionError(
AssertionError: Predicate ''''
        def test_function():
            if check_connected:
                assert self.is_connected
            return test_function_in()
''' not true after 60.0 seconds
2025-11-05T18:21:16.277000Z TestFramework (INFO): Stopping nodes
2025-11-05T18:21:16.329000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-without-wallet/test/tmp/test_runner_₿₵_🏃_20251105_181937_32711/feature_csv_activation_32
2025-11-05T18:21:16.329000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-without-wallet/test/tmp/test_runner_₿₵_🏃_20251105_181937_32711/feature_csv_activation_32/test_framework.log
2025-11-05T18:21:16.329000Z TestFramework (ERROR): 
2025-11-05T18:21:16.329000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-without-wallet/test/tmp/test_runner_₿₵_🏃_20251105_181937_32711/feature_csv_activation_32' to consolidate all logs
2025-11-05T18:21:16.329000Z TestFramework (ERROR): 
2025-11-05T18:21:16.329000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2025-11-05T18:21:16.329000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2025-11-05T18:21:16.329000Z TestFramework (ERROR):

Each failure log is accessible here:
Bitcoin ABC functional tests: feature_csv_activation.py

Failed tests logs:

====== Bitcoin ABC functional tests: feature_csv_activation.py ======

------- Stdout: -------
2025-11-05T18:18:26.368000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_🏃_20251105_181653_3805/feature_csv_activation_32
2025-11-05T18:18:27.256000Z TestFramework (INFO): Generate blocks in the past for coinbase outputs.
2025-11-05T18:18:45.292000Z TestFramework (INFO): Not yet activated, height = 574 (will activate for block 576, not 575)
2025-11-05T18:18:45.685000Z TestFramework (INFO): TESTING
2025-11-05T18:18:45.685000Z TestFramework (INFO): Pre-Soft Fork Tests. All txs should pass.
2025-11-05T18:18:45.685000Z TestFramework (INFO): Test version 1 txs
2025-11-05T18:18:45.948000Z TestFramework (INFO): Test version 2 txs
2025-11-05T18:18:46.489000Z TestFramework (INFO): Post-Soft Fork Tests.
2025-11-05T18:18:46.489000Z TestFramework (INFO): BIP 113 tests
2025-11-05T18:18:47.044000Z TestFramework (INFO): BIP 68 tests
2025-11-05T18:18:47.045000Z TestFramework (INFO): Test version 1 txs - all should still pass
2025-11-05T18:18:47.174000Z TestFramework (INFO): Test version 2 txs
2025-11-05T18:18:48.987000Z TestFramework (INFO): BIP 112 tests
2025-11-05T18:18:48.987000Z TestFramework (INFO): Test version 1 txs
2025-11-05T18:20:49.308000Z TestFramework.utils (ERROR): wait_until() failed. Predicate: ''''
        def test_function():
            if check_connected:
                assert self.is_connected
            return test_function_in()
'''
2025-11-05T18:20:49.308000Z TestFramework (ERROR): Assertion failed
Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 152, in main
    self._run_test_internal()
  File "/work/test/functional/test_framework/test_framework.py", line 142, in _run_test_internal
    self.run_test()
  File "/work/test/functional/feature_csv_activation.py", line 519, in run_test
    self.send_blocks([self.create_test_block_spend_utxos(success_txs)])
  File "/work/test/functional/feature_csv_activation.py", line 202, in send_blocks
    self.helper_peer.send_blocks_and_test(blocks, self.nodes[0], success=success)
  File "/work/test/functional/test_framework/p2p.py", line 914, in send_blocks_and_test
    test()
  File "/work/test/functional/test_framework/p2p.py", line 903, in test
    self.wait_until(
  File "/work/test/functional/test_framework/p2p.py", line 582, in wait_until
    wait_until_helper(
  File "/work/test/functional/test_framework/util.py", line 312, in wait_until_helper
    raise AssertionError(
AssertionError: Predicate ''''
        def test_function():
            if check_connected:
                assert self.is_connected
            return test_function_in()
''' not true after 120.0 seconds
2025-11-05T18:20:49.360000Z TestFramework (INFO): Stopping nodes
2025-11-05T18:20:49.511000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_🏃_20251105_181653_3805/feature_csv_activation_32
2025-11-05T18:20:49.511000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_🏃_20251105_181653_3805/feature_csv_activation_32/test_framework.log
2025-11-05T18:20:49.512000Z TestFramework (ERROR): 
2025-11-05T18:20:49.512000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_🏃_20251105_181653_3805/feature_csv_activation_32' to consolidate all logs
2025-11-05T18:20:49.512000Z TestFramework (ERROR): 
2025-11-05T18:20:49.512000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2025-11-05T18:20:49.512000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2025-11-05T18:20:49.512000Z TestFramework (ERROR):

Each failure log is accessible here:
Bitcoin ABC functional tests: feature_csv_activation.py

Failed tests logs:

====== Bitcoin ABC functional tests: feature_csv_activation.py ======

------- Stdout: -------
2025-11-05T18:18:04.313000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_🏃_20251105_181710_64134/feature_csv_activation_32
2025-11-05T18:18:04.586000Z TestFramework (INFO): Generate blocks in the past for coinbase outputs.
2025-11-05T18:18:07.054000Z TestFramework (INFO): Not yet activated, height = 574 (will activate for block 576, not 575)
2025-11-05T18:18:07.238000Z TestFramework (INFO): TESTING
2025-11-05T18:18:07.238000Z TestFramework (INFO): Pre-Soft Fork Tests. All txs should pass.
2025-11-05T18:18:07.238000Z TestFramework (INFO): Test version 1 txs
2025-11-05T18:18:07.404000Z TestFramework (INFO): Test version 2 txs
2025-11-05T18:18:07.537000Z TestFramework (INFO): Post-Soft Fork Tests.
2025-11-05T18:18:07.538000Z TestFramework (INFO): BIP 113 tests
2025-11-05T18:18:07.592000Z TestFramework (INFO): BIP 68 tests
2025-11-05T18:18:07.592000Z TestFramework (INFO): Test version 1 txs - all should still pass
2025-11-05T18:18:07.601000Z TestFramework (INFO): Test version 2 txs
2025-11-05T18:18:08.814000Z TestFramework (INFO): BIP 112 tests
2025-11-05T18:18:08.814000Z TestFramework (INFO): Test version 1 txs
2025-11-05T18:19:08.937000Z TestFramework.utils (ERROR): wait_until() failed. Predicate: ''''
        def test_function():
            if check_connected:
                assert self.is_connected
            return test_function_in()
'''
2025-11-05T18:19:08.938000Z TestFramework (ERROR): Assertion failed
Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 152, in main
    self._run_test_internal()
  File "/work/test/functional/test_framework/test_framework.py", line 142, in _run_test_internal
    self.run_test()
  File "/work/test/functional/feature_csv_activation.py", line 519, in run_test
    self.send_blocks([self.create_test_block_spend_utxos(success_txs)])
  File "/work/test/functional/feature_csv_activation.py", line 202, in send_blocks
    self.helper_peer.send_blocks_and_test(blocks, self.nodes[0], success=success)
  File "/work/test/functional/test_framework/p2p.py", line 914, in send_blocks_and_test
    test()
  File "/work/test/functional/test_framework/p2p.py", line 903, in test
    self.wait_until(
  File "/work/test/functional/test_framework/p2p.py", line 582, in wait_until
    wait_until_helper(
  File "/work/test/functional/test_framework/util.py", line 312, in wait_until_helper
    raise AssertionError(
AssertionError: Predicate ''''
        def test_function():
            if check_connected:
                assert self.is_connected
            return test_function_in()
''' not true after 60.0 seconds
2025-11-05T18:19:08.989000Z TestFramework (INFO): Stopping nodes
2025-11-05T18:19:09.040000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_🏃_20251105_181710_64134/feature_csv_activation_32
2025-11-05T18:19:09.040000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_🏃_20251105_181710_64134/feature_csv_activation_32/test_framework.log
2025-11-05T18:19:09.040000Z TestFramework (ERROR): 
2025-11-05T18:19:09.040000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_🏃_20251105_181710_64134/feature_csv_activation_32' to consolidate all logs
2025-11-05T18:19:09.040000Z TestFramework (ERROR): 
2025-11-05T18:19:09.040000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2025-11-05T18:19:09.041000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2025-11-05T18:19:09.041000Z TestFramework (ERROR):
====== Bitcoin ABC functional tests with the next upgrade activated: feature_csv_activation.py ======

------- Stdout: -------
2025-11-05T18:20:09.714000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_🏃_20251105_181931_24378/feature_csv_activation_32
2025-11-05T18:20:10.075000Z TestFramework (INFO): Generate blocks in the past for coinbase outputs.
2025-11-05T18:20:11.367000Z TestFramework (INFO): Not yet activated, height = 574 (will activate for block 576, not 575)
2025-11-05T18:20:11.465000Z TestFramework (INFO): TESTING
2025-11-05T18:20:11.465000Z TestFramework (INFO): Pre-Soft Fork Tests. All txs should pass.
2025-11-05T18:20:11.465000Z TestFramework (INFO): Test version 1 txs
2025-11-05T18:20:11.607000Z TestFramework (INFO): Test version 2 txs
2025-11-05T18:20:11.859000Z TestFramework (INFO): Post-Soft Fork Tests.
2025-11-05T18:20:11.859000Z TestFramework (INFO): BIP 113 tests
2025-11-05T18:20:12.371000Z TestFramework (INFO): BIP 68 tests
2025-11-05T18:20:12.371000Z TestFramework (INFO): Test version 1 txs - all should still pass
2025-11-05T18:20:12.476000Z TestFramework (INFO): Test version 2 txs
2025-11-05T18:20:14.208000Z TestFramework (INFO): BIP 112 tests
2025-11-05T18:20:14.208000Z TestFramework (INFO): Test version 1 txs
2025-11-05T18:21:14.462000Z TestFramework.utils (ERROR): wait_until() failed. Predicate: ''''
        def test_function():
            if check_connected:
                assert self.is_connected
            return test_function_in()
'''
2025-11-05T18:21:14.462000Z TestFramework (ERROR): Assertion failed
Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 152, in main
    self._run_test_internal()
  File "/work/test/functional/test_framework/test_framework.py", line 142, in _run_test_internal
    self.run_test()
  File "/work/test/functional/feature_csv_activation.py", line 519, in run_test
    self.send_blocks([self.create_test_block_spend_utxos(success_txs)])
  File "/work/test/functional/feature_csv_activation.py", line 202, in send_blocks
    self.helper_peer.send_blocks_and_test(blocks, self.nodes[0], success=success)
  File "/work/test/functional/test_framework/p2p.py", line 914, in send_blocks_and_test
    test()
  File "/work/test/functional/test_framework/p2p.py", line 903, in test
    self.wait_until(
  File "/work/test/functional/test_framework/p2p.py", line 582, in wait_until
    wait_until_helper(
  File "/work/test/functional/test_framework/util.py", line 312, in wait_until_helper
    raise AssertionError(
AssertionError: Predicate ''''
        def test_function():
            if check_connected:
                assert self.is_connected
            return test_function_in()
''' not true after 60.0 seconds
2025-11-05T18:21:14.513000Z TestFramework (INFO): Stopping nodes
2025-11-05T18:21:14.564000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_🏃_20251105_181931_24378/feature_csv_activation_32
2025-11-05T18:21:14.565000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_🏃_20251105_181931_24378/feature_csv_activation_32/test_framework.log
2025-11-05T18:21:14.565000Z TestFramework (ERROR): 
2025-11-05T18:21:14.565000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_🏃_20251105_181931_24378/feature_csv_activation_32' to consolidate all logs
2025-11-05T18:21:14.565000Z TestFramework (ERROR): 
2025-11-05T18:21:14.565000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2025-11-05T18:21:14.565000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2025-11-05T18:21:14.565000Z TestFramework (ERROR):

Each failure log is accessible here:
Bitcoin ABC functional tests: feature_csv_activation.py
Bitcoin ABC functional tests with the next upgrade activated: feature_csv_activation.py

Tail of the build log:

[488/545] bitcoin: testing walletdb_tests
[489/545] Running utility command for check-bitcoin-walletdb_tests
[490/545] seeder: testing db_tests
[491/545] Running utility command for check-seeder-db_tests
[492/545] bitcoin: testing psbt_wallet_tests
[493/545] seeder: testing message_writer_tests
[494/545] Running utility command for check-bitcoin-psbt_wallet_tests
[495/545] Running utility command for check-seeder-message_writer_tests
[496/545] seeder: testing options_tests
[497/545] Running utility command for check-seeder-options_tests
[498/545] seeder: testing p2p_messaging_tests
[499/545] seeder: testing parse_name_tests
[500/545] Running utility command for check-seeder-p2p_messaging_tests
[501/545] Running utility command for check-seeder-parse_name_tests
[502/545] seeder: testing write_name_tests
[503/545] Running utility command for check-seeder-write_name_tests
[504/545] Running seeder test suite
PASSED: seeder test suite
[505/545] Linking CXX executable src/pow/test/test-pow
[506/545] bitcoin: testing coins_tests
[507/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/rpcnestedtests.cpp.o
[508/545] Running utility command for check-bitcoin-coins_tests
[509/545] bitcoin: testing wallet_crypto_tests
[510/545] Running utility command for check-bitcoin-wallet_crypto_tests
[511/545] pow: testing daa_tests
[512/545] Running utility command for check-pow-daa_tests
[513/545] pow: testing eda_tests
[514/545] Running utility command for check-pow-eda_tests
[515/545] bitcoin: testing chronikbridge_tests
[516/545] Running utility command for check-bitcoin-chronikbridge_tests
[517/545] pow: testing grasberg_tests
[518/545] Running utility command for check-pow-grasberg_tests
[519/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/test_main.cpp.o
[520/545] bitcoin: testing transaction_tests
[521/545] Running utility command for check-bitcoin-transaction_tests
[522/545] Test Bitcoin utilities...
[523/545] bitcoin: testing validation_chainstatemanager_tests
[524/545] Running utility command for check-bitcoin-validation_chainstatemanager_tests
[525/545] pow: testing aserti32d_tests
[526/545] Running utility command for check-pow-aserti32d_tests
[527/545] Running pow test suite
PASSED: pow test suite
[528/545] bitcoin: testing wallet_tests
[529/545] Running utility command for check-bitcoin-wallet_tests
[530/545] bitcoin: testing coinselector_tests
[531/545] Running utility command for check-bitcoin-coinselector_tests
[532/545] bitcoin: testing bridgeprimitives_tests
[533/545] Running utility command for check-bitcoin-bridgeprimitives_tests
[534/545] bitcoin: testing scriptnum_63bit_tests
[535/545] Running utility command for check-bitcoin-scriptnum_63bit_tests
[536/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/__/__/wallet/test/wallet_test_fixture.cpp.o
[537/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/paymentservertests.cpp.o
[538/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/addressbooktests.cpp.o
[539/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/wallettests.cpp.o
[540/545] Linking CXX executable src/qt/test/test_bitcoin-qt
[541/545] bitcoin-qt: testing test_bitcoin-qt
[542/545] Running bitcoin-qt test suite
PASSED: bitcoin-qt test suite
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang-tidy failed with exit code 1

OK it's ugly but has the same behavior and will be reverted to the clean solution anyway

This revision is now accepted and ready to land.Wed, Nov 5, 18:56