tidy: enable `cppcoreguidelines-pro-type-member-init` #27315

issue fanquake opened this issue on March 23, 2023
  1. fanquake commented at 2:42 PM on March 23, 2023: member

    https://clang.llvm.org/extra/clang-tidy/checks/cppcoreguidelines/pro-type-member-init.html

    The check flags user-defined constructor definitions that do not initialize all fields that would be left in an undefined state by default construction, e.g. builtins, pointers and record types without user-provided default constructors containing at least one such type. If these fields aren’t initialized, the constructor will leave some of the memory in an undefined state.

    Have been multiple calls to add this, i.e #26762 (comment).

    Also related to #26296.

  2. maflcko commented at 8:12 PM on March 23, 2023: member

    This indeed looks more involved than I initially thought. Report on the cpp files only:

    diff --git a/src/.clang-tidy b/src/.clang-tidy
    index b2c1b49..b657dc7 100644
    --- a/src/.clang-tidy
    +++ b/src/.clang-tidy
    @@ -1,5 +1,6 @@
     Checks: '
     -*,
    +cppcoreguidelines-pro-type-member-init,
     bugprone-argument-comment,
     bugprone-use-after-move,
     misc-unused-using-decls,
    @@ -15,6 +16,7 @@ readability-redundant-string-init,
     '
     WarningsAsErrors: '*'
     CheckOptions:
    + - key: cppcoreguidelines-pro-type-member-init.IgnoreArrays
    +   value: true
      - key: performance-move-const-arg.CheckTriviallyCopyableMove
        value: false
    -HeaderFilterRegex: '.'
    

    <details><summary>report</summary>

    /bitcoin-core/src/test/fuzz/crypto_common.cpp:26:5: error: uninitialized record type: 'writele16_arr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        std::array<uint8_t, 2> writele16_arr;
    --
    /bitcoin-core/src/test/fuzz/crypto_common.cpp:30:5: error: uninitialized record type: 'writele32_arr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        std::array<uint8_t, 4> writele32_arr;
    --
    /bitcoin-core/src/test/fuzz/crypto_common.cpp:34:5: error: uninitialized record type: 'writele64_arr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        std::array<uint8_t, 8> writele64_arr;
    --
    /bitcoin-core/src/test/fuzz/crypto_common.cpp:38:5: error: uninitialized record type: 'writebe32_arr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        std::array<uint8_t, 4> writebe32_arr;
    --
    /bitcoin-core/src/test/fuzz/crypto_common.cpp:42:5: error: uninitialized record type: 'writebe64_arr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        std::array<uint8_t, 8> writebe64_arr;
    --
    /bitcoin-core/src/test/fuzz/crypto_common.cpp:47:5: error: uninitialized record type: 'readle16_arr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        std::array<uint8_t, 2> readle16_arr;
    --
    /bitcoin-core/src/test/fuzz/crypto_common.cpp:52:5: error: uninitialized record type: 'readle32_arr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        std::array<uint8_t, 4> readle32_arr;
    --
    /bitcoin-core/src/test/fuzz/crypto_common.cpp:57:5: error: uninitialized record type: 'readle64_arr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        std::array<uint8_t, 8> readle64_arr;
    --
    /bitcoin-core/src/test/fuzz/crypto_common.cpp:62:5: error: uninitialized record type: 'readbe32_arr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        std::array<uint8_t, 4> readbe32_arr;
    --
    /bitcoin-core/src/test/fuzz/crypto_common.cpp:67:5: error: uninitialized record type: 'readbe64_arr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        std::array<uint8_t, 8> readbe64_arr;
    --
    /bitcoin-core/src/test/fuzz/miniscript.cpp:136:12: error: constructor does not initialize these fields: is_hash [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        struct Key {
    --
    /bitcoin-core/src/test/fuzz/miniscript.cpp:221:8: error: constructor does not initialize these fields: test_data [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
    struct CheckerContext: BaseSignatureChecker {
    --
    /bitcoin-core/src/httpserver.cpp:681:9: error: uninitialized record type: 'params_q' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
            struct evkeyvalq params_q;
    --
    /bitcoin-core/src/compat/stdin.cpp:32:5: error: uninitialized record type: 'tty' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        struct termios tty;
    --
    /bitcoin-core/src/compat/stdin.cpp:60:5: error: uninitialized record type: 'fds' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        struct pollfd fds;
    --
    /bitcoin-core/src/bench/addrman.cpp:35:9: error: uninitialized record type: 'addr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
            in6_addr addr;
    --
    wallet/bdb.cpp:118:1: error: constructor does not initialize these fields: fDbEnvInit, fMockDb [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
    BerkeleyEnvironment::BerkeleyEnvironment(const fs::path& dir_path, bool use_shared_memory) : strPath(fs::PathToString(dir_path)), m_use_shared_memory(use_shared_memory)
    --
    wallet/bdb.cpp:659:1: error: constructor does not initialize these fields: m_cursor [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
    BerkeleyCursor::BerkeleyCursor(BerkeleyDatabase& database)
    --
    /bitcoin-core/src/index/coinstatsindex.cpp:31:8: error: constructor does not initialize these fields: transaction_output_count, bogo_size, total_amount, total_subsidy, total_unspendable_amount, total_prevout_spent_amount, total_new_outputs_ex_coinbase_amount, total_coinbase_amount, total_unspendables_genesis_block, total_unspendables_bip30, total_unspendables_scripts, total_unspendables_unclaimed_rewards [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
    struct DBVal {
    --
    /bitcoin-core/src/httprpc.cpp:36:9: error: uninitialized record type: 'tv' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
            struct timeval tv;
    --
    /bitcoin-core/src/util/system.cpp:1189:5: error: uninitialized record type: 'limitFD' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        struct rlimit limitFD;
    --
    /bitcoin-core/src/torcontrol.cpp:141:5: error: uninitialized record type: 'control_address' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        struct sockaddr_storage control_address;
    --
    /bitcoin-core/src/torcontrol.cpp:701:5: error: uninitialized record type: 'onion_service_target' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        struct in_addr onion_service_target;
    --
    blockencodings.cpp:19:1: error: constructor does not initialize these fields: shorttxidk0, shorttxidk1 [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
    CBlockHeaderAndShortTxIDs::CBlockHeaderAndShortTxIDs(const CBlock& block) :
    --
    logging.cpp:145:8: error: constructor does not initialize these fields: flag [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
    struct CLogCategoryDesc {
    --
    /bitcoin-core/src/script/standard.cpp:278:9: error: uninitialized record type: 'unk' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
            WitnessUnknown unk;
    --
    /bitcoin-core/src/script/standard.cpp:514:12: error: constructor does not initialize these fields: inner [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        struct TreeNode {
    --
    /bitcoin-core/src/net.cpp:426:5: error: uninitialized record type: 'sockaddr_bind' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        struct sockaddr_storage sockaddr_bind;
    --
    /bitcoin-core/src/net.cpp:941:5: error: uninitialized record type: 'sockaddr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        struct sockaddr_storage sockaddr;
    --
    /bitcoin-core/src/net.cpp:2110:5: error: uninitialized record type: 'sockaddr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        struct sockaddr_storage sockaddr;
    --
    /bitcoin-core/src/net.cpp:2240:1: error: constructor does not initialize these fields: nMaxOutboundLimit, m_peer_connect_timeout, nLocalServices, nMaxConnections, m_max_outbound_full_relay, m_max_outbound_block_relay, nMaxAddnode, nMaxFeeler, m_max_outbound, m_use_addrman_outgoing, m_client_interface, m_msgproc, m_banman, fMsgProcWake, m_try_another_outbound_peer [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
    CConnman::CConnman(uint64_t nSeed0In, uint64_t nSeed1In, AddrMan& addrman_in,
    --
    /bitcoin-core/src/net.cpp:2292:9: error: uninitialized record type: 'inaddr_any' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
            struct in_addr inaddr_any;
    --
    common/bloom.cpp:162:1: error: constructor does not initialize these fields: nEntriesThisGeneration, nGeneration, nTweak [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
    CRollingBloomFilter::CRollingBloomFilter(const unsigned int nElements, const double fpRate)
    --
    /bitcoin-core/src/test/blockencodings_tests.cpp:121:5: error: constructor does not initialize these fields: nonce [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        explicit TestHeaderAndShortIDs(const CBlockHeaderAndShortTxIDs& orig) {
    --
    /bitcoin-core/src/key_io.cpp:182:13: error: uninitialized record type: 'unk' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
                WitnessUnknown unk;
    --
    /bitcoin-core/src/wallet/interfaces.cpp:89:5: error: uninitialized record type: 'result' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        WalletTxStatus result;
    --
    crypto/aes.cpp:13:1: error: constructor does not initialize these fields: ctx [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
    AES256Encrypt::AES256Encrypt(const unsigned char key[32])
    --
    crypto/aes.cpp:28:1: error: constructor does not initialize these fields: ctx [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
    AES256Decrypt::AES256Decrypt(const unsigned char key[32])
    --
    /bitcoin-core/src/randomenv.cpp:382:5: error: uninitialized record type: 'name' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        struct utsname name;
    --
    /bitcoin-core/src/test/serialize_tests.cpp:17:7: error: constructor does not initialize these fields: intval, boolval [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
    class CSerializeMethodsTestSingle
    --
    /bitcoin-core/src/test/serialize_tests.cpp:26:5: error: constructor does not initialize these fields: intval, boolval [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        CSerializeMethodsTestSingle() = default;
    --
    /bitcoin-core/src/validation.cpp:569:9: error: constructor does not initialize these fields: m_vsize, m_base_fees, m_modified_fees [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
            explicit Workspace(const CTransactionRef& ptx) : m_ptx(ptx), m_hash(ptx->GetHash()) {}
    --
    /bitcoin-core/src/test/fuzz/txrequest.cpp:91:12: error: constructor does not initialize these fields: m_time, m_sequence, m_preferred, m_is_wtxid, m_priority [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        struct Announcement
    --
    /bitcoin-core/src/util/syscall_sandbox.cpp:830:5: error: uninitialized record type: 'groups' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        std::array<gid_t, 1> groups;
    --
    /bitcoin-core/src/init.cpp:380:5: error: uninitialized record type: 'sa' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        struct sigaction sa;
    --
    /bitcoin-core/src/support/lockedpool.cpp:270:5: error: uninitialized record type: 'rlim' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        struct rlimit rlim;
    --
    /bitcoin-core/src/netbase.cpp:488:5: error: uninitialized record type: 'sockaddr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        struct sockaddr_storage sockaddr;
    --
    /bitcoin-core/src/netbase.cpp:549:5: error: uninitialized record type: 'sockaddr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        struct sockaddr_storage sockaddr;
    --
    /bitcoin-core/src/bench/wallet_create_tx.cpp:22:8: error: constructor does not initialize these fields: prev_block_time, tip_height [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
    struct TipBlock
    --
    /bitcoin-core/src/test/fuzz/versionbits.cpp:225:5: error: uninitialized record type: 'last_stats' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        BIP9Stats last_stats;
    --
    node/miner.cpp:66:1: error: constructor does not initialize these fields: nBlockWeight, nBlockTx, nBlockSigOpsCost, nFees, nHeight, m_lock_time_cutoff [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
    BlockAssembler::BlockAssembler(Chainstate& chainstate, const CTxMemPool* mempool, const Options& options)
    --
    /bitcoin-core/src/test/net_tests.cpp:54:5: error: uninitialized record type: 'ipv4Addr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        in_addr ipv4Addr;
    --
    /bitcoin-core/src/test/net_tests.cpp:612:5: error: uninitialized record type: 'raw_addr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        in_addr raw_addr;
    --
    /bitcoin-core/src/test/net_tests.cpp:617:9: error: uninitialized record type: 'lsi' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
            LocalServiceInfo lsi;
    --
    /bitcoin-core/src/test/net_tests.cpp:624:5: error: uninitialized record type: 'ipv4AddrPeer' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        in_addr ipv4AddrPeer;
    --
    /bitcoin-core/src/test/net_tests.cpp:639:5: error: uninitialized record type: 'ipv6AddrLocal' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        in6_addr ipv6AddrLocal;
    --
    /bitcoin-core/src/test/net_tests.cpp:674:5: error: uninitialized record type: 'peer_us_addr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        in_addr peer_us_addr;
    --
    /bitcoin-core/src/test/net_tests.cpp:679:5: error: uninitialized record type: 'peer_out_in_addr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        in_addr peer_out_in_addr;
    --
    /bitcoin-core/src/test/net_tests.cpp:700:5: error: uninitialized record type: 'peer_in_in_addr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        in_addr peer_in_in_addr;
    --
    /bitcoin-core/src/test/net_tests.cpp:771:5: error: uninitialized record type: 'sa' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        struct sockaddr_in sa;
    --
    /bitcoin-core/src/test/net_tests.cpp:824:5: error: uninitialized record type: 'peer_us_addr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        in_addr peer_us_addr;
    --
    /bitcoin-core/src/test/net_tests.cpp:829:5: error: uninitialized record type: 'peer_in_addr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        in_addr peer_in_addr;
    --
    /bitcoin-core/src/test/bip32_tests.cpp:19:8: error: constructor does not initialize these fields: nChild [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
    struct TestDerivation {
    --
    /bitcoin-core/src/rpc/blockchain.cpp:65:8: error: constructor does not initialize these fields: height [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
    struct CUpdatedBlock
    --
    dbwrapper.cpp:130:1: error: constructor does not initialize these fields: pdb [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
    CDBWrapper::CDBWrapper(const DBParams& params)
    --
    random.cpp:623:1: error: constructor does not initialize these fields: bitbuf [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
    FastRandomContext::FastRandomContext(const uint256& seed) noexcept : requires_seed(false), bitbuf_size(0)
    --
    random.cpp:674:1: error: constructor does not initialize these fields: bitbuf [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
    FastRandomContext::FastRandomContext(bool fDeterministic) noexcept : requires_seed(!fDeterministic), bitbuf_size(0)
    --
    /bitcoin-core/src/test/script_standard_tests.cpp:252:5: error: uninitialized record type: 'unk' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        WitnessUnknown unk;
    --
    /bitcoin-core/src/node/caches.cpp:17:5: error: uninitialized record type: 'sizes' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        CacheSizes sizes;
    --
    /bitcoin-core/src/test/denialofservice_tests.cpp:31:5: error: uninitialized record type: 's' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        struct in_addr s;
    --
    /bitcoin-core/src/test/denialofservice_tests.cpp:289:5: error: uninitialized record type: 'nodes' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        std::array<CNode*, 3> nodes;
    --
    /bitcoin-core/src/test/fuzz/asmap.cpp:56:9: error: uninitialized record type: 'ipv4' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
            in_addr ipv4;
    --
    /bitcoin-core/src/util/time.cpp:50:5: error: uninitialized record type: 'epoch' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        struct tm epoch;
    --
    /bitcoin-core/src/util/time.cpp:113:5: error: uninitialized record type: 'ts' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        struct tm ts;
    --
    /bitcoin-core/src/util/time.cpp:126:5: error: uninitialized record type: 'ts' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        struct tm ts;
    --
    /bitcoin-core/src/util/time.cpp:140:5: error: uninitialized record type: 'timeout' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        struct timeval timeout;
    --
    /bitcoin-core/src/fs.cpp:69:5: error: uninitialized record type: 'lock' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
        struct flock lock;
    

    </details>

  3. fanquake commented at 11:41 AM on March 22, 2024: member

    Current output:

    <details><summary>report</summary>

    clang-tidy-18 -p=/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/rpc/blockchain.cpp
    rpc/blockchain.cpp:65:8: error: constructor does not initialize these fields: height [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       65 | struct CUpdatedBlock
          |        ^
       66 | {
       67 |     uint256 hash;
       68 |     int height;
          |               
          |               {}
    834 warnings generated.
    test/denialofservice_tests.cpp:31:5: error: uninitialized record type: 's' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       31 |     struct in_addr s;
          |     ^               
          |                     {}
    test/denialofservice_tests.cpp:318:5: error: uninitialized record type: 'nodes' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      318 |     std::array<CNode*, 3> nodes;
          |     ^                          
          |                                {}
    1073 warnings generated.
    blockencodings.cpp:20:1: error: constructor does not initialize these fields: shorttxidk0, shorttxidk1 [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       20 | CBlockHeaderAndShortTxIDs::CBlockHeaderAndShortTxIDs(const CBlock& block) :
          | ^
    qt/addressbookpage.cpp:60:1: error: constructor does not initialize these fields: proxyModel [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       60 | AddressBookPage::AddressBookPage(const PlatformStyle *platformStyle, Mode _mode, Tabs _tab, QWidget *parent) :
          | ^
    800 warnings generated.
    clang-tidy-18 -p=/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/fuzz/crypto_poly1305.cpp
    test/fuzz/crypto_poly1305.cpp:48:5: error: uninitialized record type: 'tag_full' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       48 |     std::array<std::byte, Poly1305::TAGLEN> tag_split, tag_full;
          |     ^                                                          
          |                                                                {}
    test/fuzz/crypto_poly1305.cpp:48:5: error: uninitialized record type: 'tag_split' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       48 |     std::array<std::byte, Poly1305::TAGLEN> tag_split, tag_full;
          |     ^                                                
          |                                                      {}
    559 warnings generated.
    test/serialize_tests.cpp:18:7: error: constructor does not initialize these fields: intval, boolval [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       18 | class CSerializeMethodsTestSingle
          |       ^
       19 | {
       20 | protected:
       21 |     int intval;
          |               
          |               {}
       22 |     bool boolval;
          |                 
          |                 {}
    test/serialize_tests.cpp:27:5: error: constructor does not initialize these fields: intval, boolval [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       27 |     CSerializeMethodsTestSingle() = default;
          |     ^
    test/serialize_tests.cpp:189:5: error: uninitialized record type: 'array2' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      189 |     std::array<uint8_t, 32> array2;
          |     ^                             
          |                                   {}
    test/serialize_tests.cpp:261:9: error: uninitialized record type: 'out' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      261 |         std::array<std::byte, 2> out;
          |         ^                           
          |                                     {}
    863 warnings generated.
    clang-tidy-18 -p=/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/netbase.cpp
    netbase.cpp:619:5: error: uninitialized record type: 'sockaddr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      619 |     struct sockaddr_storage sockaddr;
          |     ^                               
          |                                     {}
    netbase.cpp:651:5: error: uninitialized record type: 'addrun' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      651 |     struct sockaddr_un addrun;
          |     ^                        
          |                              {}
    qt/optionsmodel.cpp:153:1: error: constructor does not initialize these fields: m_show_tray_icon, fMinimizeToTray, fMinimizeOnClose, m_display_bitcoin_unit, fCoinControlFeatures, m_sub_fee_from_amount, m_enable_psbt_controls, m_mask_values [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      153 | OptionsModel::OptionsModel(interfaces::Node& node, QObject *parent) :
          | ^
    clang-tidy-18 -p=/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/key.cpp
    key.cpp:340:5: error: uninitialized record type: 'encoded_pubkey' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      340 |     std::array<std::byte, EllSwiftPubKey::size()> encoded_pubkey;
          |     ^                                                           
          |                                                                 {}
    util/time.cpp:50:5: error: uninitialized record type: 'epoch' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       50 |     struct tm epoch;
          |     ^              
          |                    {}
    util/time.cpp:100:5: error: uninitialized record type: 'ts' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      100 |     struct tm ts;
          |     ^           
          |                 {}
    util/time.cpp:113:5: error: uninitialized record type: 'ts' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      113 |     struct tm ts;
          |     ^           
          |                 {}
    util/time.cpp:127:5: error: uninitialized record type: 'timeout' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      127 |     struct timeval timeout;
          |     ^                     
          |                           {}
    qt/initexecutor.cpp:46:13: error: uninitialized record type: 'tip_info' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       46 |             interfaces::BlockAndHeaderTipInfo tip_info;
          |             ^                                         
          |                                                       {}
    qt/transactiontablemodel.cpp:63:8: error: constructor does not initialize these fields: status, showTransaction [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       63 | struct TransactionNotification
          |        ^
    qt/transactiontablemodel.cpp:223:13: error: uninitialized record type: 'wtx' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      223 |             interfaces::WalletTxStatus wtx;
          |             ^                             
          |                                           {}
    torcontrol.cpp:153:5: error: uninitialized record type: 'control_address' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      153 |     struct sockaddr_storage control_address;
          |     ^                                      
          |                                            {}
    torcontrol.cpp:712:5: error: uninitialized record type: 'onion_service_target' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      712 |     struct in_addr onion_service_target;
          |     ^                                  
          |                                        {}
    test/fuzz/versionbits.cpp:226:5: error: uninitialized record type: 'last_stats' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      226 |     BIP9Stats last_stats;
          |     ^                   
          |                         {}
    wallet/bdb.cpp:132:1: error: constructor does not initialize these fields: fDbEnvInit, fMockDb [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      132 | BerkeleyEnvironment::BerkeleyEnvironment(const fs::path& dir_path, bool use_shared_memory) : strPath(fs::PathToString(dir_path)), m_use_shared_memory(use_shared_memory)
          | ^
    wallet/bdb.cpp:715:1: error: constructor does not initialize these fields: m_cursor [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      715 | BerkeleyCursor::BerkeleyCursor(BerkeleyDatabase& database, const BerkeleyBatch& batch, Span<const std::byte> prefix)
          | ^
    test/fuzz/txrequest.cpp:91:12: error: constructor does not initialize these fields: m_time, m_sequence, m_preferred, m_is_wtxid, m_priority [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       91 |     struct Announcement
          |            ^
       92 |     {
       93 |         std::chrono::microseconds m_time;
          |                                         
          |                                         {}
       94 |         uint64_t m_sequence;
          |                            
          |                            {}
       95 |         State m_state{State::NOTHING};
       96 |         bool m_preferred;
          |                         
          |                         {}
       97 |         bool m_is_wtxid;
          |                        
          |                        {}
       98 |         uint64_t m_priority; //!< Precomputed priority.
          |                            
          |                            {}
    test/net_peer_connection_tests.cpp:41:5: error: uninitialized record type: 's' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       41 |     struct in_addr s;
          |     ^               
          |                     {}
    1010 warnings generated.
    test/fuzz/miniscript.cpp:193:12: error: constructor does not initialize these fields: is_hash [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      193 |     struct Key {
          |            ^
      194 |         bool is_hash;
          |                     
          |                     {}
    qt/walletframe.cpp:29:1: error: constructor does not initialize these fields: clientModel, bOutOfSync [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       29 | WalletFrame::WalletFrame(const PlatformStyle* _platformStyle, QWidget* parent)
          | ^
    clang-tidy-18 -p=/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/init.cpp
    init.cpp:416:5: error: uninitialized record type: 'sa' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      416 |     struct sigaction sa;
          |     ^                  
          |                        {}
    wallet/interfaces.cpp:92:5: error: uninitialized record type: 'result' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       92 |     WalletTxStatus result;
          |     ^                    
          |                          {}
    qt/bantablemodel.cpp:36:7: error: constructor does not initialize these fields: sortOrder [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       36 | class BanTablePriv
          |       ^
    node/caches.cpp:17:5: error: uninitialized record type: 'sizes' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       17 |     CacheSizes sizes;
          |     ^               
          |                     {}
    test/blockencodings_tests.cpp:121:5: error: constructor does not initialize these fields: nonce [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      117 |     uint64_t nonce;
          |                   
          |                   {}
      118 |     std::vector<uint64_t> shorttxids;
      119 |     std::vector<PrefilledTransaction> prefilledtxn;
      120 | 
      121 |     explicit TestHeaderAndShortIDs(const CBlockHeaderAndShortTxIDs& orig) {
          |     ^
    util/fs_helpers.cpp:169:5: error: uninitialized record type: 'limitFD' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      169 |     struct rlimit limitFD;
          |     ^                    
          |                          {}
    net.cpp:379:5: error: uninitialized record type: 'sockaddr_bind' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      379 |     struct sockaddr_storage sockaddr_bind;
          |     ^                                    
          |                                          {}
    net.cpp:682:1: error: constructor does not initialize these fields: in_data, nHdrPos, nDataPos [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      682 | V1Transport::V1Transport(const NodeId node_id) noexcept
          | ^
    net.cpp:1690:5: error: uninitialized record type: 'sockaddr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
     1690 |     struct sockaddr_storage sockaddr;
          |     ^                               
          |                                     {}
    net.cpp:2970:5: error: uninitialized record type: 'sockaddr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
     2970 |     struct sockaddr_storage sockaddr;
          |     ^                               
          |                                     {}
    net.cpp:3097:1: error: constructor does not initialize these fields: nMaxOutboundLimit, m_peer_connect_timeout, nLocalServices, m_max_automatic_connections, m_max_outbound_full_relay, m_max_outbound_block_relay, m_max_automatic_outbound, m_max_inbound, m_use_addrman_outgoing, m_client_interface, m_msgproc, m_banman, fMsgProcWake, whitelist_forcerelay, whitelist_relay [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
     3097 | CConnman::CConnman(uint64_t nSeed0In, uint64_t nSeed1In, AddrMan& addrman_in,
          | ^
    net.cpp:3160:9: error: uninitialized record type: 'inaddr_any' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
     3160 |         struct in_addr inaddr_any;
          |         ^                        
          |                                  {}
    qt/addresstablemodel.cpp:22:8: error: constructor does not initialize these fields: type [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       22 | struct AddressTableEntry
          |        ^
    test/fuzz/asmap.cpp:56:9: error: uninitialized record type: 'ipv4' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       56 |         in_addr ipv4;
          |         ^           
          |                     {}
    clang-tidy-18 -p=/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/streams.cpp
    streams.cpp:54:9: error: uninitialized record type: 'buf' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       54 |         std::array<std::byte, 4096> buf;
          |         ^                              
          |                                        {}
    test/fuzz/crypto_common.cpp:26:5: error: uninitialized record type: 'writele16_arr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       26 |     std::array<uint8_t, 2> writele16_arr;
          |     ^                                   
          |                                         {}
    test/fuzz/crypto_common.cpp:30:5: error: uninitialized record type: 'writele32_arr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       30 |     std::array<uint8_t, 4> writele32_arr;
          |     ^                                   
          |                                         {}
    test/fuzz/crypto_common.cpp:34:5: error: uninitialized record type: 'writele64_arr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       34 |     std::array<uint8_t, 8> writele64_arr;
          |     ^                                   
          |                                         {}
    test/fuzz/crypto_common.cpp:38:5: error: uninitialized record type: 'writebe32_arr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       38 |     std::array<uint8_t, 4> writebe32_arr;
          |     ^                                   
          |                                         {}
    test/fuzz/crypto_common.cpp:42:5: error: uninitialized record type: 'writebe64_arr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       42 |     std::array<uint8_t, 8> writebe64_arr;
          |     ^                                   
          |                                         {}
    test/fuzz/crypto_common.cpp:47:5: error: uninitialized record type: 'readle16_arr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       47 |     std::array<uint8_t, 2> readle16_arr;
          |     ^                                  
          |                                        {}
    test/fuzz/crypto_common.cpp:52:5: error: uninitialized record type: 'readle32_arr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       52 |     std::array<uint8_t, 4> readle32_arr;
          |     ^                                  
          |                                        {}
    test/fuzz/crypto_common.cpp:57:5: error: uninitialized record type: 'readle64_arr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       57 |     std::array<uint8_t, 8> readle64_arr;
          |     ^                                  
          |                                        {}
    test/fuzz/crypto_common.cpp:62:5: error: uninitialized record type: 'readbe32_arr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       62 |     std::array<uint8_t, 4> readbe32_arr;
          |     ^                                  
          |                                        {}
    test/fuzz/crypto_common.cpp:67:5: error: uninitialized record type: 'readbe64_arr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       67 |     std::array<uint8_t, 8> readbe64_arr;
          |     ^                                  
          |                                        {}
    common/bloom.cpp:162:1: error: constructor does not initialize these fields: nEntriesThisGeneration, nGeneration, nTweak [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      162 | CRollingBloomFilter::CRollingBloomFilter(const unsigned int nElements, const double fpRate)
          | ^
    qt/transactionview.cpp:43:1: error: constructor does not initialize these fields: dateRangeWidget, dateFrom, dateTo [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       43 | TransactionView::TransactionView(const PlatformStyle *platformStyle, QWidget *parent)
          | ^
    test/bip32_tests.cpp:19:8: error: constructor does not initialize these fields: nChild [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       19 | struct TestDerivation {
          |        ^
       20 |     std::string pub;
       21 |     std::string prv;
       22 |     unsigned int nChild;
          |                        
          |                        {}
    crypto/aes.cpp:13:1: error: constructor does not initialize these fields: ctx [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       13 | AES256Encrypt::AES256Encrypt(const unsigned char key[32])
          | ^
    crypto/aes.cpp:28:1: error: constructor does not initialize these fields: ctx [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       28 | AES256Decrypt::AES256Decrypt(const unsigned char key[32])
          | ^
    node/miner.cpp:67:1: error: constructor does not initialize these fields: nBlockWeight, nBlockTx, nBlockSigOpsCost, nFees, nHeight, m_lock_time_cutoff [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       67 | BlockAssembler::BlockAssembler(Chainstate& chainstate, const CTxMemPool* mempool, const Options& options)
          | ^
    bench/bip324_ecdh.cpp:20:5: error: uninitialized record type: 'key_data' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       20 |     std::array<std::byte, 32> key_data;
          |     ^                                 
          |                                       {}
    bench/bip324_ecdh.cpp:21:5: error: uninitialized record type: 'our_ellswift_data' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       21 |     std::array<std::byte, EllSwiftPubKey::size()> our_ellswift_data;
          |     ^                                                              
          |                                                                    {}
    bench/bip324_ecdh.cpp:22:5: error: uninitialized record type: 'their_ellswift_data' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       22 |     std::array<std::byte, EllSwiftPubKey::size()> their_ellswift_data;
          |     ^                                                                
          |                                                                      {}
    bench/wallet_create_tx.cpp:21:8: error: constructor does not initialize these fields: prev_block_time, tip_height [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       21 | struct TipBlock
          |        ^
       22 | {
       23 |     uint256 prev_block_hash;
       24 |     int64_t prev_block_time;
          |                            
          |                            {}
       25 |     int tip_height;
          |                   
          |                   {}
    compat/stdin.cpp:32:5: error: uninitialized record type: 'tty' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       32 |     struct termios tty;
          |     ^                 
          |                       {}
    compat/stdin.cpp:60:5: error: uninitialized record type: 'fds' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       60 |     struct pollfd fds;
          |     ^                
          |                      {}
    qt/coincontroldialog.cpp:43:1: error: constructor does not initialize these fields: sortColumn, sortOrder, contextMenuItem [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       43 | CoinControlDialog::CoinControlDialog(CCoinControl& coin_control, WalletModel* _model, const PlatformStyle *_platformStyle, QWidget *parent) :
          | ^
    test/net_tests.cpp:55:5: error: uninitialized record type: 'ipv4Addr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       55 |     in_addr ipv4Addr;
          |     ^               
          |                     {}
    test/net_tests.cpp:609:5: error: uninitialized record type: 'raw_addr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      609 |     in_addr raw_addr;
          |     ^               
          |                     {}
    test/net_tests.cpp:614:9: error: uninitialized record type: 'lsi' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      614 |         LocalServiceInfo lsi;
          |         ^                   
          |                             {}
    test/net_tests.cpp:621:5: error: uninitialized record type: 'ipv4AddrPeer' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      621 |     in_addr ipv4AddrPeer;
          |     ^                   
          |                         {}
    test/net_tests.cpp:636:5: error: uninitialized record type: 'ipv6AddrLocal' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      636 |     in6_addr ipv6AddrLocal;
          |     ^                     
          |                           {}
    test/net_tests.cpp:671:5: error: uninitialized record type: 'peer_us_addr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      671 |     in_addr peer_us_addr;
          |     ^                   
          |                         {}
    test/net_tests.cpp:676:5: error: uninitialized record type: 'peer_out_in_addr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      676 |     in_addr peer_out_in_addr;
          |     ^                       
          |                             {}
    test/net_tests.cpp:697:5: error: uninitialized record type: 'peer_in_in_addr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      697 |     in_addr peer_in_in_addr;
          |     ^                      
          |                            {}
    test/net_tests.cpp:776:5: error: uninitialized record type: 'sa' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      776 |     struct sockaddr_in sa;
          |     ^                    
          |                          {}
    test/net_tests.cpp:829:5: error: uninitialized record type: 'peer_us_addr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      829 |     in_addr peer_us_addr;
          |     ^                   
          |                         {}
    test/net_tests.cpp:834:5: error: uninitialized record type: 'peer_in_addr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      834 |     in_addr peer_in_addr;
          |     ^                   
          |                         {}
    qt/notificator.cpp:71:7: error: constructor does not initialize these fields: width, height, stride, hasAlpha, channels, bitsPerSample [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       71 | class FreedesktopImage
          |       ^
       72 | {
       73 | public:
       74 |     FreedesktopImage() = default;
       75 |     explicit FreedesktopImage(const QImage &img);
       76 | 
       77 |     // Image to variant that can be marshalled over DBus
       78 |     static QVariant toVariant(const QImage &img);
       79 | 
       80 | private:
       81 |     int width, height, stride;
          |                              
          |              {}      {}      {}
       82 |     bool hasAlpha;
          |                  
          |                  {}
       83 |     int channels;
          |                 
          |                 {}
       84 |     int bitsPerSample;
          |                      
          |                      {}
    qt/notificator.cpp:74:5: error: constructor does not initialize these fields: width, height, stride, hasAlpha, channels, bitsPerSample [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       74 |     FreedesktopImage() = default;
          |     ^
    test/crypto_tests.cpp:926:13: error: uninitialized record type: 'tag' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      926 |             std::array<std::byte, Poly1305::TAGLEN> tag;
          |             ^                                          
          |                                                        {}
    881 warnings generated.
    1237 warnings generated.
    clang-tidy-18 -p=/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/peerman_tests.cpp
    clang-tidy-18 -p=/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/bip324.cpp
    bip324.cpp:25:1: error: constructor does not initialize these fields: m_our_pubkey, m_session_id, m_send_garbage_terminator, m_recv_garbage_terminator [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       25 | BIP324Cipher::BIP324Cipher(const CKey& key, Span<const std::byte> ent32) noexcept :
          | ^
    bip324.cpp:31:1: error: constructor does not initialize these fields: m_session_id, m_send_garbage_terminator, m_recv_garbage_terminator [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       31 | BIP324Cipher::BIP324Cipher(const CKey& key, const EllSwiftPubKey& pubkey) noexcept :
          | ^
    bip324.cpp:46:5: error: uninitialized record type: 'hkdf_32_okm' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       46 |     std::array<std::byte, 32> hkdf_32_okm;
          |     ^                                    
          |                                          {}
    dbwrapper.cpp:198:8: error: constructor does not initialize these fields: penv, pdb [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      198 | struct LevelDBContext {
          |        ^
      199 |     //! custom environment this database is using (may be nullptr in case of default environment)
      200 |     leveldb::Env* penv;
          |                       
          |                       {}
    support/lockedpool.cpp:266:5: error: uninitialized record type: 'rlim' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      266 |     struct rlimit rlim;
          |     ^                 
          |                       {}
    bench/addrman.cpp:36:9: error: uninitialized record type: 'addr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       36 |         in6_addr addr;
          |         ^            
          |                      {}
    638 warnings generated.
    clang-tidy-18 -p=/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/util/fs.cpp
    util/fs.cpp:70:5: error: uninitialized record type: 'lock' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       70 |     struct flock lock;
          |     ^                
          |                      {}
    httpserver.cpp:728:9: error: uninitialized record type: 'params_q' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      728 |         struct evkeyvalq params_q;
          |         ^                        
          |                                  {}
    clang-tidy-18 -p=/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/httprpc.cpp
    httprpc.cpp:38:9: error: uninitialized record type: 'tv' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       38 |         struct timeval tv;
          |         ^                
          |                          {}
    index/coinstatsindex.cpp:29:8: error: constructor does not initialize these fields: transaction_output_count, bogo_size, total_amount, total_subsidy, total_unspendable_amount, total_prevout_spent_amount, total_new_outputs_ex_coinbase_amount, total_coinbase_amount, total_unspendables_genesis_block, total_unspendables_bip30, total_unspendables_scripts, total_unspendables_unclaimed_rewards [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       29 | struct DBVal {
          |        ^
       30 |     uint256 muhash;
       31 |     uint64_t transaction_output_count;
          |                                      
          |                                      {}
       32 |     uint64_t bogo_size;
          |                       
          |                       {}
       33 |     CAmount total_amount;
          |                         
          |                         {}
       34 |     CAmount total_subsidy;
          |                          
          |                          {}
       35 |     CAmount total_unspendable_amount;
          |                                     
          |                                     {}
       36 |     CAmount total_prevout_spent_amount;
          |                                       
          |                                       {}
       37 |     CAmount total_new_outputs_ex_coinbase_amount;
          |                                                 
          |                                                 {}
       38 |     CAmount total_coinbase_amount;
          |                                  
          |                                  {}
       39 |     CAmount total_unspendables_genesis_block;
          |                                             
          |                                             {}
       40 |     CAmount total_unspendables_bip30;
          |                                     
          |                                     {}
       41 |     CAmount total_unspendables_scripts;
          |                                       
          |                                       {}
       42 |     CAmount total_unspendables_unclaimed_rewards;
          |                                                 
          |                                                 {}
    script/signingprovider.cpp:439:12: error: constructor does not initialize these fields: inner [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      439 |     struct TreeNode {
          |            ^
      440 |         /** Hash of this node, if known; 0 otherwise. */
      441 |         uint256 hash;
      442 |         /** The left and right subtrees (note that their order is irrelevant). */
      443 |         std::unique_ptr<TreeNode> sub[2];
      444 |         /** If this is known to be a leaf node, a pointer to the (script, leaf_ver) pair.
      445 |          *  nullptr otherwise. */
      446 |         const std::pair<std::vector<unsigned char>, int>* leaf = nullptr;
      447 |         /** Whether or not this node has been explored (is known to be a leaf, or known to have children). */
      448 |         bool explored = false;
      449 |         /** Whether or not this node is an inner node (unknown until explored = true). */
      450 |         bool inner;
          |                   
          |                   {}
    clang-tidy-18 -p=/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/pubkey.cpp
    pubkey.cpp:346:1: error: constructor does not initialize these fields: m_pubkey [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      346 | EllSwiftPubKey::EllSwiftPubKey(Span<const std::byte> ellswift) noexcept
          | ^
    pubkey.cpp:358:5: error: uninitialized record type: 'vch_bytes' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      358 |     std::array<uint8_t, CPubKey::COMPRESSED_SIZE> vch_bytes;
          |     ^                                                      
          |                                                            {}
    clang-tidy-18 -p=/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/random.cpp
    random.cpp:688:1: error: constructor does not initialize these fields: bitbuf [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      688 | FastRandomContext::FastRandomContext(const uint256& seed) noexcept : requires_seed(false), rng(MakeByteSpan(seed)), bitbuf_size(0) {}
          | ^
    random.cpp:738:1: error: constructor does not initialize these fields: bitbuf [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      738 | FastRandomContext::FastRandomContext(bool fDeterministic) noexcept : requires_seed(!fDeterministic), rng(ZERO_KEY), bitbuf_size(0)
          | ^
    validation.cpp:602:9: error: constructor does not initialize these fields: m_vsize, m_base_fees, m_modified_fees [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      602 |         explicit Workspace(const CTransactionRef& ptx) : m_ptx(ptx), m_hash(ptx->GetHash()) {}
          |         ^
    qt/transactiondesc.cpp:106:5: error: uninitialized record type: 'status' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      106 |     interfaces::WalletTxStatus status;
          |     ^                                
          |                                      {}
    1081 warnings generated.
    clang-tidy-18 -p=/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/mapport.cpp
    mapport.cpp:127:5: error: uninitialized record type: 'external_ipv4_addr' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      127 |     struct in_addr external_ipv4_addr;
          |     ^                                
          |                                      {}
    mapport.cpp:163:5: error: uninitialized record type: 'urls' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      163 |     struct UPNPUrls urls;
          |     ^                   
          |                         {}
    mapport.cpp:164:5: error: uninitialized record type: 'data' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      164 |     struct IGDdatas data;
          |     ^                   
          |                         {}
    randomenv.cpp:384:5: error: uninitialized record type: 'name' [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      384 |     struct utsname name;
          |     ^                  
          |                        {}
    422 warnings generated.
    clang-tidy-18 -p=/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/script/miniscript.cpp
    492 warnings generated.
    clang-tidy-18 -p=/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/timedata.cpp
    624 warnings generated.
    clang-tidy-18 -p=/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/logging.cpp
    logging.cpp:145:8: error: constructor does not initialize these fields: flag [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      145 | struct CLogCategoryDesc {
          |        ^
    qt/guiutil.cpp:840:1: error: constructor does not initialize these fields: m_pixmap_width, m_pixmap_height [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
      840 | ThemedLabel::ThemedLabel(const PlatformStyle* platform_style, QWidget* parent)
          | ^
    rpc/blockchain.cpp:65:8: error: constructor does not initialize these fields: height [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
       65 | struct CUpdatedBlock
          |        ^
       66 | {
       67 |     uint256 hash;
       68 |     int height;
    

    </details>

  4. willcl-ark added the label Feature on Jan 16, 2026
  5. willcl-ark added the label Scripts and tools on Jan 16, 2026

github-metadata-mirror

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

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