ci, iwyu: Fix warnings in src/common and treat them as errors #34995

pull hebasto wants to merge 1 commits into bitcoin:master from hebasto:260403-iwyu-common changing 21 files +76 −39
  1. hebasto commented at 11:52 am on April 3, 2026: member

    This PR continues the ongoing effort to enforce IWYU warnings.

    See Developer Notes.

  2. ci, iwyu: Fix warnings in `src/common` and treat them as errors b3288c117c
  3. hebasto added the label Refactoring on Apr 3, 2026
  4. DrahtBot commented at 11:52 am on April 3, 2026: contributor

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    Approach ACK BrandonOdiwuor

    If your review is incorrectly listed, please copy-paste <!–meta-tag:bot-skip–> into the comment that the bot should ignore.

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #35011 (ci, iwyu: Fix warnings in src/script and treat them as errors by BrandonOdiwuor)
    • #34806 (refactor: logging: Various API improvements by ajtowns)
    • #34641 (node: scale default -dbcache with system RAM by l0rinc)
    • #34617 (fees: wallet: remove block policy fee estimator internals from wallet by ismaelsadeeq)
    • #34495 (Replace boost signals with minimal compatible implementation by theuni)
    • #32958 (wallet/refactor: change PSBTError to PSBTResult and remove std::optionalcommon::PSBTResult and return common::PSBTResult by kevkevinpal)
    • #31260 (scripted-diff: Type-safe settings retrieval by ryanofsky)

    If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

  5. hebasto marked this as a draft on Apr 3, 2026
  6. DrahtBot added the label CI failed on Apr 3, 2026
  7. DrahtBot commented at 12:27 pm on April 3, 2026: contributor

    🚧 At least one of the CI tasks failed. Task 32 bit ARM: https://github.com/bitcoin/bitcoin/actions/runs/23945242931/job/69839917221 LLM reason (✨ experimental): CI failed because compilation of bitcoin-wallet.cpp errored with fatal error: univalue.h: No such file or directory (missing univalue header/dependency).

    Try to run the tests locally, according to the documentation. However, a CI failure may still happen due to a number of reasons, for example:

    • Possibly due to a silent merge conflict (the changes in this pull request being incompatible with the current code in the target branch). If so, make sure to rebase on the latest commit of the target branch.

    • A sanitizer issue, which can only be found by compiling with the sanitizer and running the affected test.

    • An intermittent issue.

    Leave a comment here, if you need help tracking down a confusing failure.

  8. fanquake commented at 12:27 pm on April 3, 2026: member
    Seems like IWYU is passing but compilation is failing?
  9. in src/common/config.cpp:5 in b3288c117c
    1@@ -2,28 +2,25 @@
    2 // Distributed under the MIT software license, see the accompanying
    3 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
    4 
    5-#include <common/args.h>
    6+#include <common/args.h> // IWYU pragma: associated
    


    fanquake commented at 12:29 pm on April 3, 2026:
    Looks like this is the first usage of this pragma in our code. Reasoning/usage should be documented in the developer notes alongside pragma: export?
  10. in src/common/netif.cpp:14 in b3288c117c
     5@@ -6,13 +6,25 @@
     6 
     7 #include <common/netif.h>
     8 
     9+#include <compat/compat.h>
    10 #include <logging.h>
    11 #include <netbase.h>
    12 #include <util/check.h>
    13 #include <util/sock.h>
    14+#if defined(__APPLE__)
    


    fanquake commented at 12:30 pm on April 3, 2026:
    Unrelated to IWYU?
  11. in src/common/netif.cpp:47 in b3288c117c
    41@@ -30,12 +42,13 @@
    42 #endif
    43 
    44 #ifdef HAVE_IFADDRS
    45-#include <sys/types.h>
    46+// IWYU suggests removing `sys/types.h` because modern systems
    47+// treat `ifaddrs.h` as self-contained. We retain it per the
    48+// getifaddrs manual page to ensure broad cross-platform compatibility.
    


    fanquake commented at 12:33 pm on April 3, 2026:
    What are the “modern systems” here, and the ones that fall into “broad cross-platform compatibility”?

    fanquake commented at 12:34 pm on April 3, 2026:
    This also seems a bit like an IWYU bug, if it’s trying to remove headers that the manpage says you should include.
  12. BrandonOdiwuor commented at 11:53 am on April 4, 2026: contributor

    Approach ACK

    I was able to incorporate most of the iwyu suggestions except the following changes which cause compilation errors on Ubuntu 24.04

    1. bloom.h
    0+ #include <span>         // for span
    1- #include <span.h>  // lines 10-10
    
    1. settings.h
    0+ #include <univalue.h>  // for UniValue
    1- class UniValue;  // lines 15-15
    
    1. args.h
    0- #include <compat/compat.h>  // lines 9-9
    

    NB: removing #include <util/syserror.h> from `src/common/netif.cpp as suggested by IWYU causes the macOS based jobs to fail

    0/opt/homebrew/bin/ccache /usr/bin/c++ -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -I/Users/runner/work/bitcoin/bitcoin/repo_archive/ci/scratch/build-aarch64-apple-darwin24.6.0/src -I/Users/runner/work/bitcoin/bitcoin/repo_archive/src -I/Users/runner/work/bitcoin/bitcoin/repo_archive/src/univalue/include -I/Users/runner/work/bitcoin/bitcoin/repo_archive/src/secp256k1/include -isystem /opt/homebrew/Cellar/boost/1.90.0_1/include -O2 -g -std=c++20 -arch arm64 -fPIC -fvisibility=hidden -fmacro-prefix-map=/Users/runner/work/bitcoin/bitcoin/repo_archive/src=. -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -Wstack-protector -fstack-protector-all -mbranch-protection=bti -Wall -Wextra -Wgnu -Wcovered-switch-default -Wformat -Wformat-security -Wvla -Wshadow-field -Wthread-safety -Wloop-analysis -Wredundant-decls -Wunused-member-function -Wdate-time -Wconditional-uninitialized -Woverloaded-virtual -Wsuggest-override -Wimplicit-fallthrough -Wunreachable-code -Wdocumentation -Wself-assign -Wundef -Wno-unused-parameter -Werror -MD -MT src/CMakeFiles/bitcoin_common.dir/common/netif.cpp.o -MF src/CMakeFiles/bitcoin_common.dir/common/netif.cpp.o.d -o src/CMakeFiles/bitcoin_common.dir/common/netif.cpp.o -c /Users/runner/work/bitcoin/bitcoin/repo_archive/src/common/netif.cpp 
    1/Users/runner/work/bitcoin/bitcoin/repo_archive/src/common/netif.cpp:249:72: error: use of undeclared identifier 'SysErrorString'
    2  249 |         LogError("Could not get sysctl length of routing table: %s\n", SysErrorString(errno));
    3      |                                                                        ^
    4/Users/runner/work/bitcoin/bitcoin/repo_archive/src/common/netif.cpp:254:70: error: use of undeclared identifier 'SysErrorString'
    5  254 |         LogError("Could not get sysctl data of routing table: %s\n", SysErrorString(errno));
    
       0
       1+ run_iwyu compile_commands_iwyu_errors.json
       2+ mv /home/runner/work/_temp/build/compile_commands_iwyu_errors.json /home/runner/work/_temp/build/compile_commands.json
       3+ python3 /include-what-you-use/iwyu_tool.py -p /home/runner/work/_temp/build -j4 -- -Xiwyu --cxx17ns -Xiwyu --mapping_file=/home/runner/work/_temp/contrib/devtools/iwyu/bitcoin.core.imp -Xiwyu --max_line_length=160 -Xiwyu '--check_also=*/primitives/*.h'
       4+ tee /tmp/iwyu_ci.out
       5
       6(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
       7
       8(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
       9
      10(/home/runner/work/_temp/src/primitives/transaction.cpp has correct #includes/fwd-decls)
      11
      12
      13/home/runner/work/_temp/src/common/bloom.h should add these lines:
      14#include <cstdint>      // for uint64_t
      15#include <span>         // for span
      16
      17/home/runner/work/_temp/src/common/bloom.h should remove these lines:
      18- #include <span.h>  // lines 9-9
      19
      20The full include-list for /home/runner/work/_temp/src/common/bloom.h:
      21#include <serialize.h>  // for READWRITE, SERIALIZE_METHODS
      22#include <cstdint>      // for uint64_t
      23#include <span>         // for span
      24#include <vector>       // for vector
      25class COutPoint;  // lines 13-13
      26class CTransaction;  // lines 14-14
      27---
      28
      29(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
      30
      31(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
      32
      33/home/runner/work/_temp/src/common/bloom.cpp should add these lines:
      34#include <compare>                   // for operator<, strong_ordering
      35
      36/home/runner/work/_temp/src/common/bloom.cpp should remove these lines:
      37- #include <cstdlib>  // lines 19-19
      38- #include <limits>  // lines 20-20
      39
      40The full include-list for /home/runner/work/_temp/src/common/bloom.cpp:
      41#include <common/bloom.h>
      42#include <hash.h>                    // for MurmurHash3
      43#include <primitives/transaction.h>  // for COutPoint, CTxOut, CTransaction, CTxIn, Txid
      44#include <random.h>                  // for FastRandomContext
      45#include <script/script.h>           // for CScript, opcodetype
      46#include <script/solver.h>           // for TxoutType, Solver
      47#include <span.h>                    // for MakeUCharSpan
      48#include <streams.h>                 // for DataStream
      49#include <util/fastrange.h>          // for FastRange32
      50#include <util/overflow.h>           // for CeilDiv
      51#include <algorithm>                 // for min, fill, max
      52#include <cmath>                     // for log, ceil, exp, round
      53#include <compare>                   // for operator<, strong_ordering
      54#include <vector>                    // for vector
      55---
      56
      57
      58(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
      59
      60(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
      61
      62(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
      63
      64(/home/runner/work/_temp/src/primitives/block.cpp has correct #includes/fwd-decls)
      65
      66
      67/home/runner/work/_temp/src/common/args.h should add these lines:
      68
      69/home/runner/work/_temp/src/common/args.h should remove these lines:
      70- #include <compat/compat.h>  // lines 9-9
      71
      72The full include-list for /home/runner/work/_temp/src/common/args.h:
      73#include <common/settings.h>  // for SettingsValue, Settings
      74#include <sync.h>             // for EXCLUSIVE_LOCKS_REQUIRED, GUARDED_BY, LOCK, Mutex, UniqueLock
      75#include <util/chaintype.h>   // for ChainType
      76#include <util/fs.h>          // for path
      77#include <concepts>           // for integral
      78#include <cstdint>            // for int64_t, uint32_t
      79#include <iosfwd>             // for istream
      80#include <list>               // for list
      81#include <map>                // for map
      82#include <optional>           // for optional
      83#include <set>                // for set
      84#include <string>             // for string, basic_string
      85#include <variant>            // for variant
      86#include <vector>             // for vector
      87class ArgsManager;  // lines 25-25
      88---
      89
      90/home/runner/work/_temp/src/common/args.cpp should add these lines:
      91
      92/home/runner/work/_temp/src/common/args.cpp should remove these lines:
      93- #include <cassert>  // lines 26-26
      94- #include <cstdint>  // lines 27-27
      95
      96The full include-list for /home/runner/work/_temp/src/common/args.cpp:
      97#include <common/args.h>
      98#include <chainparamsbase.h>    // for BaseParams, CBaseChainParams
      99#include <common/settings.h>    // for SettingsValue, Settings, SettingsSpan, GetSetting, FindKey, GetSettingsList, OnlyHasDefaultSectionSetting, ReadSettings
     100#include <logging.h>            // for LogPrintFormatInternal, LogWarning, LogInfo
     101#include <sync.h>               // for LOCK, UniqueLock, AssertLockHeld, AssertLockHeldInternal
     102#include <tinyformat.h>         // for format, strprintf, formatValue, makeFormatList, formatTruncated
     103#include <univalue.h>           // for UniValue
     104#include <util/chaintype.h>     // for ChainType, ChainTypeToString, ChainTypeFromString
     105#include <util/check.h>         // for Assert, inline_assertion_check, assert
     106#include <util/fs.h>            // for path, PathToString, PathFromString, absolute, is_directory, AbsPathJoin, create_directories, operator+, operator/
     107#include <util/fs_helpers.h>    // for GetDefaultDataDir, RenameOver
     108#include <util/strencodings.h>  // for LocaleIndependentAtoi, FormatParagraph
     109#include <util/string.h>        // for Join
     110#include <algorithm>            // for any_of
     111#include <cstdlib>              // for size_t, getenv
     112#include <cstring>              // for strlen
     113#include <map>                  // for map, operator==
     114#include <optional>             // for optional, nullopt, nullopt_t
     115#include <stdexcept>            // for runtime_error, logic_error
     116#include <string>               // for basic_string, string, allocator, char_traits, operator+, operator<=>, operator==
     117#include <utility>              // for pair, get, move
     118#include <variant>              // for variant, get, get_if
     119---
     120
     121
     122/home/runner/work/_temp/src/common/config.cpp should add these lines:
     123
     124/home/runner/work/_temp/src/common/config.cpp should remove these lines:
     125- #include <util/chaintype.h>  // lines 12-12
     126- #include <filesystem>  // lines 19-19
     127- #include <memory>  // lines 25-25
     128
     129The full include-list for /home/runner/work/_temp/src/common/config.cpp:
     130#include <common/args.h>      // for ArgsManager, SectionInfo, KeyInfo, AbsPathForConfigVal, BITCOIN_CONF_FILENAME, CheckDataDirOption, InterpretKey, Interp...
     131#include <common/settings.h>  // for SettingsSpan, Settings, FindKey, SettingsValue
     132#include <logging.h>          // for LogPrintFormatInternal, LogWarning, LogInfo
     133#include <sync.h>             // for LOCK, UniqueLock
     134#include <tinyformat.h>       // for format, formatTruncated, formatValue, makeFormatList, strprintf, tfm, vformat
     135#include <univalue.h>         // for UniValue
     136#include <util/fs.h>          // for path, PathToString, AbsPathJoin, PathFromString, is_directory
     137#include <util/string.h>      // for TrimString, TrimStringView
     138#include <algorithm>          // for max
     139#include <cassert>            // for assert
     140#include <cstdlib>            // for size_t
     141#include <fstream>            // for basic_ifstream, basic_istream, ifstream, istream, istringstream
     142#include <iostream>           // for cerr
     143#include <list>               // for list
     144#include <map>                // for map
     145#include <optional>           // for optional
     146#include <sstream>            // for basic_istringstream
     147#include <string>             // for basic_string, string, char_traits, operator+, operator==, getline, operator<<, operator<=>
     148#include <string_view>        // for string_view
     149#include <utility>            // for pair
     150#include <vector>             // for vector
     151---
     152
     153
     154(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     155
     156(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     157
     158(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     159
     160(/home/runner/work/_temp/src/common/init.h has correct #includes/fwd-decls)
     161
     162/home/runner/work/_temp/src/common/init.cpp should add these lines:
     163
     164/home/runner/work/_temp/src/common/init.cpp should remove these lines:
     165- #include <algorithm>  // lines 13-13
     166
     167The full include-list for /home/runner/work/_temp/src/common/init.cpp:
     168#include <common/init.h>
     169#include <chainparams.h>       // for SelectParams
     170#include <common/args.h>       // for ArgsManager, BITCOIN_CONF_FILENAME, AbsPathForConfigVal, CheckDataDirOption
     171#include <logging.h>           // for LogPrintFormatInternal, LogInfo, LogWarning
     172#include <tinyformat.h>        // for format, makeFormatList, formatTruncated, formatValue, strprintf
     173#include <util/fs.h>           // for path, quoted, PathToString, exists, operator/, create_directories, equivalent
     174#include <util/translation.h>  // for TranslatedLiteral, _, BilingualFmt, Untranslated, bilingual_str
     175#include <exception>           // for exception
     176#include <optional>            // for optional
     177---
     178
     179
     180/home/runner/work/_temp/src/common/interfaces.cpp should add these lines:
     181#include <functional>                     // for function
     182#include <string>                         // for basic_string, string
     183
     184/home/runner/work/_temp/src/common/interfaces.cpp should remove these lines:
     185
     186The full include-list for /home/runner/work/_temp/src/common/interfaces.cpp:
     187#include <interfaces/echo.h>              // for Echo, MakeEcho
     188#include <interfaces/handler.h>           // for Handler, MakeCleanupHandler, MakeSignalHandler
     189#include <boost/signals2/connection.hpp>  // for scoped_connection, connection
     190#include <functional>                     // for function
     191#include <memory>                         // for unique_ptr, make_unique
     192#include <string>                         // for basic_string, string
     193#include <utility>                        // for move
     194---
     195
     196
     197/home/runner/work/_temp/src/common/messages.h should add these lines:
     198#include <utility>      // for pair
     199
     200/home/runner/work/_temp/src/common/messages.h should remove these lines:
     201
     202The full include-list for /home/runner/work/_temp/src/common/messages.h:
     203#include <string>       // for string
     204#include <string_view>  // for string_view
     205#include <utility>      // for pair
     206enum class FeeEstimateMode;  // lines 19-19
     207enum class FeeReason;  // lines 20-20
     208namespace common { enum class PSBTError; }  // lines 26-26
     209namespace node { enum class TransactionError; }  // lines 22-22
     210struct bilingual_str;  // lines 17-17
     211---
     212
     213(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     214
     215(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     216
     217(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     218
     219(/home/runner/work/_temp/src/common/messages.cpp has correct #includes/fwd-decls)
     220
     221
     222/home/runner/work/_temp/src/common/netif.h should add these lines:
     223#include <vector>        // for vector
     224
     225/home/runner/work/_temp/src/common/netif.h should remove these lines:
     226
     227The full include-list for /home/runner/work/_temp/src/common/netif.h:
     228#include <netaddress.h>  // for CNetAddr, Network
     229#include <optional>      // for optional
     230#include <vector>        // for vector
     231---
     232
     233/home/runner/work/_temp/src/common/netif.cpp should add these lines:
     234#include <compat/compat.h>         // for AF_INET, in6_addr, in_addr, AF_INET6, sa_family_t, socklen_t, AF_NETLINK, IFF_LOOPBACK, IFF_UP, SOCK_DGRAM, sockaddr
     235#include <linux/netlink.h>         // for nlmsghdr, nlattr, NLMSG_HDRLEN, NETLINK_ROUTE, NLMSG_DATA, NLMSG_DONE, NLMSG_LENGTH, NLMSG_NEXT, NLMSG_OK, NLM_F_DUMP
     236#include <cerrno>                  // for errno, EAGAIN, EINTR
     237#include <cstdint>                 // for int64_t
     238#include <cstring>                 // for memcpy
     239#include <functional>              // for function
     240#include <memory>                  // for unique_ptr
     241#include <string>                  // for basic_string
     242
     243/home/runner/work/_temp/src/common/netif.cpp should remove these lines:
     244- #include <util/syserror.h>  // lines 13-13
     245
     246The full include-list for /home/runner/work/_temp/src/common/netif.cpp:
     247#include <common/netif.h>
     248#include <bitcoin-build-config.h>  // for HAVE_IFADDRS
     249#include <compat/compat.h>         // for AF_INET, in6_addr, in_addr, AF_INET6, sa_family_t, socklen_t, AF_NETLINK, IFF_LOOPBACK, IFF_UP, SOCK_DGRAM, sockaddr
     250#include <ifaddrs.h>               // for ifaddrs, freeifaddrs, getifaddrs
     251#include <linux/netlink.h>         // for nlmsghdr, nlattr, NLMSG_HDRLEN, NETLINK_ROUTE, NLMSG_DATA, NLMSG_DONE, NLMSG_LENGTH, NLMSG_NEXT, NLMSG_OK, NLM_F_DUMP
     252#include <linux/rtnetlink.h>       // for rtmsg, RTA_DATA, RTA_PAYLOAD, rtattr_type_t, rtattr, RTA_NEXT, RTA_OK, RTM_GETROUTE, RTM_NEWROUTE, RTM_PAYLOAD
     253#include <logging.h>               // for LogPrintFormatInternal, LogError, LogWarning
     254#include <netbase.h>               // for CreateSock
     255#include <sys/types.h>             // for ssize_t, size_t
     256#include <util/check.h>            // for Assume, inline_assertion_check
     257#include <util/sock.h>             // for NetworkErrorString, Sock
     258#include <cerrno>                  // for errno, EAGAIN, EINTR
     259#include <cstdint>                 // for int64_t
     260#include <cstring>                 // for memcpy
     261#include <functional>              // for function
     262#include <memory>                  // for unique_ptr
     263#include <string>                  // for basic_string
     264#include <type_traits>             // for conditional_t, is_signed_v
     265---
     266
     267
     268(/home/runner/work/_temp/src/common/run_command.h has correct #includes/fwd-decls)
     269
     270/home/runner/work/_temp/src/common/run_command.cpp should add these lines:
     271#include <sstream>                 // for basic_istringstream, istringstream
     272#include <stdexcept>               // for runtime_error
     273#include <utility>                 // for get
     274
     275/home/runner/work/_temp/src/common/run_command.cpp should remove these lines:
     276
     277The full include-list for /home/runner/work/_temp/src/common/run_command.cpp:
     278#include <common/run_command.h>
     279#include <bitcoin-build-config.h>  // for ENABLE_EXTERNAL_SIGNER
     280#include <tinyformat.h>            // for format, formatTruncated, formatValue, makeFormatList, strprintf
     281#include <univalue.h>              // for UniValue
     282#include <util/string.h>           // for Join
     283#include <util/subprocess.h>       // for Popen, IOTYPE, error, input, output
     284#include <sstream>                 // for basic_istringstream, istringstream
     285#include <stdexcept>               // for runtime_error
     286#include <utility>                 // for get
     287---
     288
     289
     290/home/runner/work/_temp/src/common/pcp.h should add these lines:
     291#include <array>         // for array
     292#include <chrono>        // for milliseconds
     293#include <cstddef>       // for size_t
     294#include <cstdint>       // for uint32_t, uint8_t, uint16_t
     295#include <string>        // for string
     296class CThreadInterrupt;
     297
     298/home/runner/work/_temp/src/common/pcp.h should remove these lines:
     299- #include <util/threadinterrupt.h>  // lines 9-9
     300
     301The full include-list for /home/runner/work/_temp/src/common/pcp.h:
     302#include <netaddress.h>  // for CNetAddr (ptr only), CService
     303#include <array>         // for array
     304#include <chrono>        // for milliseconds
     305#include <cstddef>       // for size_t
     306#include <cstdint>       // for uint32_t, uint8_t, uint16_t
     307#include <string>        // for string
     308#include <variant>       // for variant
     309class CThreadInterrupt;
     310---
     311
     312/home/runner/work/_temp/src/common/pcp.cpp should add these lines:
     313#include <compat/compat.h>         // for sockaddr_storage, WSAGetLastError, in_addr, socklen_t, in6_addr, sockaddr_in, AF_INET, IPPROTO_UDP, SOCK_DGRAM
     314#include <crypto/hex_base.h>       // for HexStr
     315#include <tinyformat.h>            // for format, formatValue, formatTruncated, makeFormatList, strprintf
     316#include <util/string.h>           // for HasPrefix
     317#include <util/time.h>             // for MockableSteadyClock
     318#include <algorithm>               // for __equal_fn, equal
     319#include <compare>                 // for operator<, strong_ordering
     320#include <cstring>                 // for memcpy
     321#include <functional>              // for function
     322#include <map>                     // for map, operator==
     323#include <memory>                  // for unique_ptr
     324#include <optional>                // for optional, nullopt, nullopt_t
     325#include <span>                    // for span
     326#include <utility>                 // for pair
     327#include <vector>                  // for vector
     328
     329/home/runner/work/_temp/src/common/pcp.cpp should remove these lines:
     330- #include <common/netif.h>  // lines 8-8
     331- #include <random.h>  // lines 13-13
     332- #include <span.h>  // lines 14-14
     333- #include <util/readwritefile.h>  // lines 16-16
     334- #include <util/strencodings.h>  // lines 18-18
     335
     336The full include-list for /home/runner/work/_temp/src/common/pcp.cpp:
     337#include <common/pcp.h>
     338#include <compat/compat.h>         // for sockaddr_storage, WSAGetLastError, in_addr, socklen_t, in6_addr, sockaddr_in, AF_INET, IPPROTO_UDP, SOCK_DGRAM
     339#include <crypto/common.h>         // for ReadBE16, WriteBE16, ReadBE32, WriteBE32
     340#include <crypto/hex_base.h>       // for HexStr
     341#include <logging.h>               // for LogPrintFormatInternal, LogFlags, LogWarning, LogDebug
     342#include <netaddress.h>            // for CService, CNetAddr, ADDR_IPV6_SIZE, IPV4_IN_IPV6_PREFIX, ADDR_IPV4_SIZE
     343#include <netbase.h>               // for CreateSock
     344#include <tinyformat.h>            // for format, formatValue, formatTruncated, makeFormatList, strprintf
     345#include <util/check.h>            // for inline_assertion_check, Assume
     346#include <util/sock.h>             // for NetworkErrorString, Sock
     347#include <util/string.h>           // for HasPrefix
     348#include <util/threadinterrupt.h>  // for CThreadInterrupt
     349#include <util/time.h>             // for MockableSteadyClock
     350#include <algorithm>               // for __equal_fn, equal
     351#include <atomic>                  // for atomic
     352#include <compare>                 // for operator<, strong_ordering
     353#include <cstring>                 // for memcpy
     354#include <functional>              // for function
     355#include <map>                     // for map, operator==
     356#include <memory>                  // for unique_ptr
     357#include <optional>                // for optional, nullopt, nullopt_t
     358#include <span>                    // for span
     359#include <utility>                 // for pair
     360#include <vector>                  // for vector
     361---
     362
     363
     364/home/runner/work/_temp/src/common/settings.h should add these lines:
     365#include <univalue.h>  // for UniValue
     366
     367/home/runner/work/_temp/src/common/settings.h should remove these lines:
     368- class UniValue;  // lines 15-15
     369
     370The full include-list for /home/runner/work/_temp/src/common/settings.h:
     371#include <univalue.h>  // for UniValue
     372#include <util/fs.h>   // for path
     373#include <cstddef>     // for size_t
     374#include <map>         // for map
     375#include <string>      // for basic_string, string
     376#include <vector>      // for vector
     377---
     378
     379/home/runner/work/_temp/src/common/settings.cpp should add these lines:
     380
     381/home/runner/work/_temp/src/common/settings.cpp should remove these lines:
     382- #include <algorithm>  // lines 13-13
     383
     384The full include-list for /home/runner/work/_temp/src/common/settings.cpp:
     385#include <common/settings.h>
     386#include <bitcoin-build-config.h>  // for CLIENT_NAME
     387#include <tinyformat.h>            // for format, formatValue, makeFormatList, strprintf, formatTruncated
     388#include <univalue.h>              // for UniValue
     389#include <util/fs.h>               // for PathToString, path, exists
     390#include <fstream>                 // for basic_ifstream, basic_ofstream, basic_ostream, endl, ifstream, ofstream
     391#include <iterator>                // for istreambuf_iterator, operator==
     392#include <map>                     // for map
     393#include <string>                  // for basic_string, string, char_traits, operator<=>, operator<<
     394#include <utility>                 // for pair
     395#include <vector>                  // for vector
     396---
     397
     398
     399(/home/runner/work/_temp/src/common/url.h has correct #includes/fwd-decls)
     400
     401/home/runner/work/_temp/src/common/url.cpp should add these lines:
     402#include <cstddef>       // for size_t
     403
     404/home/runner/work/_temp/src/common/url.cpp should remove these lines:
     405
     406The full include-list for /home/runner/work/_temp/src/common/url.cpp:
     407#include <common/url.h>
     408#include <charconv>      // for from_chars_result, from_chars
     409#include <cstddef>       // for size_t
     410#include <string>        // for basic_string, string
     411#include <string_view>   // for string_view
     412#include <system_error>  // for errc
     413---
     414
     415
     416(/home/runner/work/_temp/src/common/signmessage.h has correct #includes/fwd-decls)
     417
     418(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     419
     420(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     421
     422(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     423
     424/home/runner/work/_temp/src/common/signmessage.cpp should add these lines:
     425#include <addresstype.h>        // for PKHash, CTxDestination, IsValidDestination
     426#include <span>                 // for span
     427
     428/home/runner/work/_temp/src/common/signmessage.cpp should remove these lines:
     429
     430The full include-list for /home/runner/work/_temp/src/common/signmessage.cpp:
     431#include <common/signmessage.h>
     432#include <addresstype.h>        // for PKHash, CTxDestination, IsValidDestination
     433#include <hash.h>               // for HashWriter
     434#include <key.h>                // for CKey
     435#include <key_io.h>             // for DecodeDestination
     436#include <pubkey.h>             // for CPubKey
     437#include <uint256.h>            // for uint256
     438#include <util/strencodings.h>  // for DecodeBase64, EncodeBase64
     439#include <cassert>              // for assert
     440#include <optional>             // for optional
     441#include <span>                 // for span
     442#include <string>               // for basic_string, string
     443#include <variant>              // for get_if
     444#include <vector>               // for vector
     445---
     446
     447
     448/home/runner/work/_temp/src/common/system.h should add these lines:
     449#include <cstddef>                 // for size_t
     450
     451/home/runner/work/_temp/src/common/system.h should remove these lines:
     452- #include <chrono>  // lines 12-12
     453- #include <cstdint>  // lines 13-13
     454
     455The full include-list for /home/runner/work/_temp/src/common/system.h:
     456#include <bitcoin-build-config.h>  // for HAVE_SYSTEM
     457#include <util/time.h>             // for SteadyClock
     458#include <cstddef>                 // for size_t
     459#include <optional>                // for optional
     460#include <string>                  // for string
     461---
     462
     463/home/runner/work/_temp/src/common/system.cpp should add these lines:
     464#include <sys/types.h>             // for mode_t
     465#include <limits>                  // for numeric_limits
     466
     467/home/runner/work/_temp/src/common/system.cpp should remove these lines:
     468
     469The full include-list for /home/runner/work/_temp/src/common/system.cpp:
     470#include <common/system.h>
     471#include <bitcoin-build-config.h>  // for HAVE_MALLOPT_ARENA_MAX, HAVE_SYSTEM
     472#include <logging.h>               // for LogPrintFormatInternal, LogWarning
     473#include <malloc.h>                // for M_ARENA_MAX, mallopt
     474#include <sys/stat.h>              // for umask
     475#include <sys/types.h>             // for mode_t
     476#include <unistd.h>                // for sysconf, _SC_PAGESIZE, _SC_PHYS_PAGES
     477#include <util/string.h>           // for ReplaceAll
     478#include <util/time.h>             // for SteadyClock, operator-
     479#include <algorithm>               // for min
     480#include <cstddef>                 // for size_t
     481#include <cstdint>                 // for uint64_t
     482#include <cstdlib>                 // for setenv, system
     483#include <limits>                  // for numeric_limits
     484#include <locale>                  // for locale
     485#include <optional>                // for optional, nullopt, nullopt_t
     486#include <stdexcept>               // for runtime_error
     487#include <string>                  // for allocator, basic_string, char_traits, string, operator+
     488#include <thread>                  // for thread
     489---
     490
     491
     492(/home/runner/work/_temp/src/core_io.h has correct #includes/fwd-decls)
     493
     494(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     495
     496(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     497
     498(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     499
     500(/home/runner/work/_temp/src/core_io.cpp has correct #includes/fwd-decls)
     501
     502
     503(/home/runner/work/_temp/src/kernel/chainparams.h has correct #includes/fwd-decls)
     504
     505(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     506
     507(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     508
     509(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     510
     511(/home/runner/work/_temp/src/kernel/chainparams.cpp has correct #includes/fwd-decls)
     512
     513
     514(/home/runner/work/_temp/src/index/base.h has correct #includes/fwd-decls)
     515
     516(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     517
     518(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     519
     520(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     521
     522(/home/runner/work/_temp/src/index/base.cpp has correct #includes/fwd-decls)
     523
     524
     525(/home/runner/work/_temp/src/index/blockfilterindex.h has correct #includes/fwd-decls)
     526
     527(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     528
     529(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     530
     531(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     532
     533(/home/runner/work/_temp/src/index/blockfilterindex.cpp has correct #includes/fwd-decls)
     534
     535
     536(/home/runner/work/_temp/src/index/coinstatsindex.h has correct #includes/fwd-decls)
     537
     538(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     539
     540(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     541
     542(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     543
     544(/home/runner/work/_temp/src/index/coinstatsindex.cpp has correct #includes/fwd-decls)
     545
     546
     547(/home/runner/work/_temp/src/index/txindex.h has correct #includes/fwd-decls)
     548
     549(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     550
     551(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     552
     553(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     554
     555(/home/runner/work/_temp/src/index/txindex.cpp has correct #includes/fwd-decls)
     556
     557
     558(/home/runner/work/_temp/src/kernel/chain.h has correct #includes/fwd-decls)
     559
     560(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     561
     562(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     563
     564(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     565
     566(/home/runner/work/_temp/src/kernel/chain.cpp has correct #includes/fwd-decls)
     567
     568
     569(/home/runner/work/_temp/src/kernel/checks.h has correct #includes/fwd-decls)
     570
     571(/home/runner/work/_temp/src/kernel/checks.cpp has correct #includes/fwd-decls)
     572
     573
     574(/home/runner/work/_temp/src/kernel/cs_main.h has correct #includes/fwd-decls)
     575
     576(/home/runner/work/_temp/src/kernel/cs_main.cpp has correct #includes/fwd-decls)
     577
     578
     579(/home/runner/work/_temp/src/index/txospenderindex.h has correct #includes/fwd-decls)
     580
     581(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     582
     583(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     584
     585(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     586
     587(/home/runner/work/_temp/src/index/txospenderindex.cpp has correct #includes/fwd-decls)
     588
     589
     590(/home/runner/work/_temp/src/kernel/context.h has correct #includes/fwd-decls)
     591
     592(/home/runner/work/_temp/src/kernel/context.cpp has correct #includes/fwd-decls)
     593
     594
     595(/home/runner/work/_temp/src/kernel/mempool_removal_reason.h has correct #includes/fwd-decls)
     596
     597(/home/runner/work/_temp/src/kernel/mempool_removal_reason.cpp has correct #includes/fwd-decls)
     598
     599
     600(/home/runner/work/_temp/src/kernel/disconnected_transactions.h has correct #includes/fwd-decls)
     601
     602(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     603
     604(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     605
     606(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     607
     608(/home/runner/work/_temp/src/kernel/disconnected_transactions.cpp has correct #includes/fwd-decls)
     609
     610
     611(/home/runner/work/_temp/src/kernel/coinstats.h has correct #includes/fwd-decls)
     612
     613(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     614
     615(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     616
     617(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     618
     619(/home/runner/work/_temp/src/kernel/coinstats.cpp has correct #includes/fwd-decls)
     620
     621
     622(/home/runner/work/_temp/src/univalue/include/univalue.h has correct #includes/fwd-decls)
     623
     624(/home/runner/work/_temp/src/univalue/lib/univalue.cpp has correct #includes/fwd-decls)
     625
     626
     627(/home/runner/work/_temp/src/signet.h has correct #includes/fwd-decls)
     628
     629(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     630
     631(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     632
     633(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     634
     635(/home/runner/work/_temp/src/signet.cpp has correct #includes/fwd-decls)
     636
     637
     638(/home/runner/work/_temp/src/univalue/lib/univalue_read.cpp has correct #includes/fwd-decls)
     639
     640
     641(/home/runner/work/_temp/src/univalue/lib/univalue_get.cpp has correct #includes/fwd-decls)
     642
     643
     644(/home/runner/work/_temp/src/univalue/lib/univalue_write.cpp has correct #includes/fwd-decls)
     645
     646
     647(/home/runner/work/_temp/src/node/utxo_snapshot.h has correct #includes/fwd-decls)
     648
     649(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     650
     651(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     652
     653(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     654
     655(/home/runner/work/_temp/src/node/utxo_snapshot.cpp has correct #includes/fwd-decls)
     656
     657
     658(/home/runner/work/_temp/src/univalue/test/unitester.cpp has correct #includes/fwd-decls)
     659
     660
     661(/home/runner/work/_temp/src/univalue/test/object.cpp has correct #includes/fwd-decls)
     662
     663
     664(/home/runner/work/_temp/src/crypto/aes.h has correct #includes/fwd-decls)
     665
     666(/home/runner/work/_temp/src/crypto/aes.cpp has correct #includes/fwd-decls)
     667
     668
     669(/home/runner/work/_temp/src/crypto/chacha20.h has correct #includes/fwd-decls)
     670
     671(/home/runner/work/_temp/src/crypto/chacha20.cpp has correct #includes/fwd-decls)
     672
     673
     674(/home/runner/work/_temp/src/crypto/chacha20poly1305.h has correct #includes/fwd-decls)
     675
     676(/home/runner/work/_temp/src/crypto/chacha20poly1305.cpp has correct #includes/fwd-decls)
     677
     678
     679(/home/runner/work/_temp/src/crypto/hkdf_sha256_32.h has correct #includes/fwd-decls)
     680
     681(/home/runner/work/_temp/src/crypto/hkdf_sha256_32.cpp has correct #includes/fwd-decls)
     682
     683
     684(/home/runner/work/_temp/src/crypto/hex_base.h has correct #includes/fwd-decls)
     685
     686(/home/runner/work/_temp/src/crypto/hex_base.cpp has correct #includes/fwd-decls)
     687
     688
     689(/home/runner/work/_temp/src/crypto/hmac_sha512.h has correct #includes/fwd-decls)
     690
     691(/home/runner/work/_temp/src/crypto/hmac_sha512.cpp has correct #includes/fwd-decls)
     692
     693
     694(/home/runner/work/_temp/src/crypto/hmac_sha256.h has correct #includes/fwd-decls)
     695
     696(/home/runner/work/_temp/src/crypto/hmac_sha256.cpp has correct #includes/fwd-decls)
     697
     698
     699(/home/runner/work/_temp/src/crypto/ripemd160.h has correct #includes/fwd-decls)
     700
     701(/home/runner/work/_temp/src/crypto/ripemd160.cpp has correct #includes/fwd-decls)
     702
     703
     704(/home/runner/work/_temp/src/crypto/poly1305.h has correct #includes/fwd-decls)
     705
     706(/home/runner/work/_temp/src/crypto/poly1305.cpp has correct #includes/fwd-decls)
     707
     708
     709(/home/runner/work/_temp/src/node/blockstorage.h has correct #includes/fwd-decls)
     710
     711(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     712
     713(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     714
     715(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     716
     717(/home/runner/work/_temp/src/node/blockstorage.cpp has correct #includes/fwd-decls)
     718
     719
     720(/home/runner/work/_temp/src/crypto/sha256_sse4.cpp has correct #includes/fwd-decls)
     721
     722
     723(/home/runner/work/_temp/src/crypto/sha1.h has correct #includes/fwd-decls)
     724
     725(/home/runner/work/_temp/src/crypto/sha1.cpp has correct #includes/fwd-decls)
     726
     727
     728(/home/runner/work/_temp/src/crypto/sha512.h has correct #includes/fwd-decls)
     729
     730(/home/runner/work/_temp/src/crypto/sha512.cpp has correct #includes/fwd-decls)
     731
     732
     733(/home/runner/work/_temp/src/crypto/sha3.h has correct #includes/fwd-decls)
     734
     735(/home/runner/work/_temp/src/crypto/sha3.cpp has correct #includes/fwd-decls)
     736
     737
     738(/home/runner/work/_temp/src/crypto/sha256.h has correct #includes/fwd-decls)
     739
     740(/home/runner/work/_temp/src/crypto/sha256.cpp has correct #includes/fwd-decls)
     741
     742
     743(/home/runner/work/_temp/src/crypto/muhash.h has correct #includes/fwd-decls)
     744
     745(/home/runner/work/_temp/src/crypto/muhash.cpp has correct #includes/fwd-decls)
     746
     747
     748(/home/runner/work/_temp/src/crypto/siphash.h has correct #includes/fwd-decls)
     749
     750(/home/runner/work/_temp/src/crypto/siphash.cpp has correct #includes/fwd-decls)
     751
     752
     753(/home/runner/work/_temp/src/crypto/sha256_sse41.cpp has correct #includes/fwd-decls)
     754
     755
     756(/home/runner/work/_temp/src/crypto/sha256_avx2.cpp has correct #includes/fwd-decls)
     757
     758
     759(/home/runner/work/_temp/src/crypto/sha256_x86_shani.cpp has correct #includes/fwd-decls)
     760
     761
     762(/home/runner/work/_temp/src/zmq/zmqabstractnotifier.h has correct #includes/fwd-decls)
     763
     764(/home/runner/work/_temp/src/zmq/zmqabstractnotifier.cpp has correct #includes/fwd-decls)
     765
     766
     767(/home/runner/work/_temp/src/zmq/zmqutil.h has correct #includes/fwd-decls)
     768
     769(/home/runner/work/_temp/src/zmq/zmqutil.cpp has correct #includes/fwd-decls)
     770
     771
     772(/home/runner/work/_temp/src/zmq/zmqnotificationinterface.h has correct #includes/fwd-decls)
     773
     774(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     775
     776(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     777
     778(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     779
     780(/home/runner/work/_temp/src/zmq/zmqnotificationinterface.cpp has correct #includes/fwd-decls)
     781
     782
     783(/home/runner/work/_temp/src/zmq/zmqpublishnotifier.h has correct #includes/fwd-decls)
     784
     785(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     786
     787(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     788
     789(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     790
     791(/home/runner/work/_temp/src/zmq/zmqpublishnotifier.cpp has correct #includes/fwd-decls)
     792
     793
     794(/home/runner/work/_temp/src/zmq/zmqrpc.h has correct #includes/fwd-decls)
     795
     796(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     797
     798(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     799
     800(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     801
     802(/home/runner/work/_temp/src/zmq/zmqrpc.cpp has correct #includes/fwd-decls)
     803
     804
     805(/home/runner/work/_temp/src/kernel/checks.h has correct #includes/fwd-decls)
     806
     807(/home/runner/work/_temp/src/kernel/checks.cpp has correct #includes/fwd-decls)
     808
     809
     810(/home/runner/work/_temp/src/kernel/chain.h has correct #includes/fwd-decls)
     811
     812(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     813
     814(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     815
     816(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     817
     818(/home/runner/work/_temp/src/kernel/chain.cpp has correct #includes/fwd-decls)
     819
     820
     821(/home/runner/work/_temp/src/kernel/context.h has correct #includes/fwd-decls)
     822
     823(/home/runner/work/_temp/src/kernel/context.cpp has correct #includes/fwd-decls)
     824
     825
     826(/home/runner/work/_temp/src/kernel/chainparams.h has correct #includes/fwd-decls)
     827
     828(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     829
     830(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     831
     832(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     833
     834(/home/runner/work/_temp/src/kernel/chainparams.cpp has correct #includes/fwd-decls)
     835
     836
     837(/home/runner/work/_temp/src/kernel/cs_main.h has correct #includes/fwd-decls)
     838
     839(/home/runner/work/_temp/src/kernel/cs_main.cpp has correct #includes/fwd-decls)
     840
     841
     842(/home/runner/work/_temp/src/kernel/bitcoinkernel.h has correct #includes/fwd-decls)
     843
     844(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     845
     846(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     847
     848(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     849
     850(/home/runner/work/_temp/src/kernel/bitcoinkernel.cpp has correct #includes/fwd-decls)
     851
     852
     853(/home/runner/work/_temp/src/kernel/mempool_removal_reason.h has correct #includes/fwd-decls)
     854
     855(/home/runner/work/_temp/src/kernel/mempool_removal_reason.cpp has correct #includes/fwd-decls)
     856
     857
     858(/home/runner/work/_temp/src/kernel/disconnected_transactions.h has correct #includes/fwd-decls)
     859
     860(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     861
     862(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     863
     864(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     865
     866(/home/runner/work/_temp/src/kernel/disconnected_transactions.cpp has correct #includes/fwd-decls)
     867
     868
     869(/home/runner/work/_temp/src/kernel/coinstats.h has correct #includes/fwd-decls)
     870
     871(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     872
     873(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     874
     875(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     876
     877(/home/runner/work/_temp/src/kernel/coinstats.cpp has correct #includes/fwd-decls)
     878
     879
     880(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     881
     882(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     883
     884(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     885
     886(/home/runner/work/_temp/src/primitives/block.cpp has correct #includes/fwd-decls)
     887
     888
     889(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     890
     891(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     892
     893(/home/runner/work/_temp/src/primitives/transaction.cpp has correct #includes/fwd-decls)
     894
     895
     896(/home/runner/work/_temp/src/node/utxo_snapshot.h has correct #includes/fwd-decls)
     897
     898(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     899
     900(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     901
     902(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     903
     904(/home/runner/work/_temp/src/node/utxo_snapshot.cpp has correct #includes/fwd-decls)
     905
     906
     907(/home/runner/work/_temp/src/node/blockstorage.h has correct #includes/fwd-decls)
     908
     909(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     910
     911(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     912
     913(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     914
     915(/home/runner/work/_temp/src/node/blockstorage.cpp has correct #includes/fwd-decls)
     916
     917
     918(/home/runner/work/_temp/src/signet.h has correct #includes/fwd-decls)
     919
     920(/home/runner/work/_temp/src/primitives/block.h has correct #includes/fwd-decls)
     921
     922(/home/runner/work/_temp/src/primitives/transaction.h has correct #includes/fwd-decls)
     923
     924(/home/runner/work/_temp/src/primitives/transaction_identifier.h has correct #includes/fwd-decls)
     925
     926(/home/runner/work/_temp/src/signet.cpp has correct #includes/fwd-decls)
     927
     928+ python3 /include-what-you-use/fix_includes.py --nosafe_headers
     929(skipping /home/runner/work/_temp/src/primitives/transaction.h: iwyu reports no contentful changes)
     930(skipping /home/runner/work/_temp/src/primitives/transaction_identifier.h: iwyu reports no contentful changes)
     931(skipping /home/runner/work/_temp/src/primitives/transaction.cpp: iwyu reports no contentful changes)
     932(skipping /home/runner/work/_temp/src/primitives/block.h: iwyu reports no contentful changes)
     933(skipping /home/runner/work/_temp/src/primitives/block.cpp: iwyu reports no contentful changes)
     934(skipping /home/runner/work/_temp/src/common/init.h: iwyu reports no contentful changes)
     935(skipping /home/runner/work/_temp/src/common/messages.cpp: iwyu reports no contentful changes)
     936(skipping /home/runner/work/_temp/src/common/run_command.h: iwyu reports no contentful changes)
     937(skipping /home/runner/work/_temp/src/common/url.h: iwyu reports no contentful changes)
     938(skipping /home/runner/work/_temp/src/common/signmessage.h: iwyu reports no contentful changes)
     939(skipping /home/runner/work/_temp/src/core_io.h: iwyu reports no contentful changes)
     940(skipping /home/runner/work/_temp/src/core_io.cpp: iwyu reports no contentful changes)
     941(skipping /home/runner/work/_temp/src/kernel/chainparams.h: iwyu reports no contentful changes)
     942(skipping /home/runner/work/_temp/src/kernel/chainparams.cpp: iwyu reports no contentful changes)
     943(skipping /home/runner/work/_temp/src/index/base.h: iwyu reports no contentful changes)
     944(skipping /home/runner/work/_temp/src/index/base.cpp: iwyu reports no contentful changes)
     945(skipping /home/runner/work/_temp/src/index/blockfilterindex.h: iwyu reports no contentful changes)
     946(skipping /home/runner/work/_temp/src/index/blockfilterindex.cpp: iwyu reports no contentful changes)
     947(skipping /home/runner/work/_temp/src/index/coinstatsindex.h: iwyu reports no contentful changes)
     948(skipping /home/runner/work/_temp/src/index/coinstatsindex.cpp: iwyu reports no contentful changes)
     949(skipping /home/runner/work/_temp/src/index/txindex.h: iwyu reports no contentful changes)
     950(skipping /home/runner/work/_temp/src/index/txindex.cpp: iwyu reports no contentful changes)
     951(skipping /home/runner/work/_temp/src/kernel/chain.h: iwyu reports no contentful changes)
     952(skipping /home/runner/work/_temp/src/kernel/chain.cpp: iwyu reports no contentful changes)
     953(skipping /home/runner/work/_temp/src/kernel/checks.h: iwyu reports no contentful changes)
     954(skipping /home/runner/work/_temp/src/kernel/checks.cpp: iwyu reports no contentful changes)
     955(skipping /home/runner/work/_temp/src/kernel/cs_main.h: iwyu reports no contentful changes)
     956(skipping /home/runner/work/_temp/src/kernel/cs_main.cpp: iwyu reports no contentful changes)
     957(skipping /home/runner/work/_temp/src/index/txospenderindex.h: iwyu reports no contentful changes)
     958(skipping /home/runner/work/_temp/src/index/txospenderindex.cpp: iwyu reports no contentful changes)
     959(skipping /home/runner/work/_temp/src/kernel/context.h: iwyu reports no contentful changes)
     960(skipping /home/runner/work/_temp/src/kernel/context.cpp: iwyu reports no contentful changes)
     961(skipping /home/runner/work/_temp/src/kernel/mempool_removal_reason.h: iwyu reports no contentful changes)
     962(skipping /home/runner/work/_temp/src/kernel/mempool_removal_reason.cpp: iwyu reports no contentful changes)
     963(skipping /home/runner/work/_temp/src/kernel/disconnected_transactions.h: iwyu reports no contentful changes)
     964(skipping /home/runner/work/_temp/src/kernel/disconnected_transactions.cpp: iwyu reports no contentful changes)
     965(skipping /home/runner/work/_temp/src/kernel/coinstats.h: iwyu reports no contentful changes)
     966(skipping /home/runner/work/_temp/src/kernel/coinstats.cpp: iwyu reports no contentful changes)
     967(skipping /home/runner/work/_temp/src/univalue/include/univalue.h: iwyu reports no contentful changes)
     968(skipping /home/runner/work/_temp/src/univalue/lib/univalue.cpp: iwyu reports no contentful changes)
     969(skipping /home/runner/work/_temp/src/signet.h: iwyu reports no contentful changes)
     970(skipping /home/runner/work/_temp/src/signet.cpp: iwyu reports no contentful changes)
     971(skipping /home/runner/work/_temp/src/univalue/lib/univalue_read.cpp: iwyu reports no contentful changes)
     972(skipping /home/runner/work/_temp/src/univalue/lib/univalue_get.cpp: iwyu reports no contentful changes)
     973(skipping /home/runner/work/_temp/src/univalue/lib/univalue_write.cpp: iwyu reports no contentful changes)
     974(skipping /home/runner/work/_temp/src/node/utxo_snapshot.h: iwyu reports no contentful changes)
     975(skipping /home/runner/work/_temp/src/node/utxo_snapshot.cpp: iwyu reports no contentful changes)
     976(skipping /home/runner/work/_temp/src/univalue/test/unitester.cpp: iwyu reports no contentful changes)
     977(skipping /home/runner/work/_temp/src/univalue/test/object.cpp: iwyu reports no contentful changes)
     978(skipping /home/runner/work/_temp/src/crypto/aes.h: iwyu reports no contentful changes)
     979(skipping /home/runner/work/_temp/src/crypto/aes.cpp: iwyu reports no contentful changes)
     980(skipping /home/runner/work/_temp/src/crypto/chacha20.h: iwyu reports no contentful changes)
     981(skipping /home/runner/work/_temp/src/crypto/chacha20.cpp: iwyu reports no contentful changes)
     982(skipping /home/runner/work/_temp/src/crypto/chacha20poly1305.h: iwyu reports no contentful changes)
     983(skipping /home/runner/work/_temp/src/crypto/chacha20poly1305.cpp: iwyu reports no contentful changes)
     984(skipping /home/runner/work/_temp/src/crypto/hkdf_sha256_32.h: iwyu reports no contentful changes)
     985(skipping /home/runner/work/_temp/src/crypto/hkdf_sha256_32.cpp: iwyu reports no contentful changes)
     986(skipping /home/runner/work/_temp/src/crypto/hex_base.h: iwyu reports no contentful changes)
     987(skipping /home/runner/work/_temp/src/crypto/hex_base.cpp: iwyu reports no contentful changes)
     988(skipping /home/runner/work/_temp/src/crypto/hmac_sha512.h: iwyu reports no contentful changes)
     989(skipping /home/runner/work/_temp/src/crypto/hmac_sha512.cpp: iwyu reports no contentful changes)
     990(skipping /home/runner/work/_temp/src/crypto/hmac_sha256.h: iwyu reports no contentful changes)
     991(skipping /home/runner/work/_temp/src/crypto/hmac_sha256.cpp: iwyu reports no contentful changes)
     992(skipping /home/runner/work/_temp/src/crypto/ripemd160.h: iwyu reports no contentful changes)
     993(skipping /home/runner/work/_temp/src/crypto/ripemd160.cpp: iwyu reports no contentful changes)
     994(skipping /home/runner/work/_temp/src/crypto/poly1305.h: iwyu reports no contentful changes)
     995(skipping /home/runner/work/_temp/src/crypto/poly1305.cpp: iwyu reports no contentful changes)
     996(skipping /home/runner/work/_temp/src/node/blockstorage.h: iwyu reports no contentful changes)
     997(skipping /home/runner/work/_temp/src/node/blockstorage.cpp: iwyu reports no contentful changes)
     998(skipping /home/runner/work/_temp/src/crypto/sha256_sse4.cpp: iwyu reports no contentful changes)
     999(skipping /home/runner/work/_temp/src/crypto/sha1.h: iwyu reports no contentful changes)
    1000(skipping /home/runner/work/_temp/src/crypto/sha1.cpp: iwyu reports no contentful changes)
    1001(skipping /home/runner/work/_temp/src/crypto/sha512.h: iwyu reports no contentful changes)
    1002(skipping /home/runner/work/_temp/src/crypto/sha512.cpp: iwyu reports no contentful changes)
    1003(skipping /home/runner/work/_temp/src/crypto/sha3.h: iwyu reports no contentful changes)
    1004(skipping /home/runner/work/_temp/src/crypto/sha3.cpp: iwyu reports no contentful changes)
    1005(skipping /home/runner/work/_temp/src/crypto/sha256.h: iwyu reports no contentful changes)
    1006(skipping /home/runner/work/_temp/src/crypto/sha256.cpp: iwyu reports no contentful changes)
    1007(skipping /home/runner/work/_temp/src/crypto/muhash.h: iwyu reports no contentful changes)
    1008(skipping /home/runner/work/_temp/src/crypto/muhash.cpp: iwyu reports no contentful changes)
    1009(skipping /home/runner/work/_temp/src/crypto/siphash.h: iwyu reports no contentful changes)
    1010(skipping /home/runner/work/_temp/src/crypto/siphash.cpp: iwyu reports no contentful changes)
    1011(skipping /home/runner/work/_temp/src/crypto/sha256_sse41.cpp: iwyu reports no contentful changes)
    1012(skipping /home/runner/work/_temp/src/crypto/sha256_avx2.cpp: iwyu reports no contentful changes)
    1013(skipping /home/runner/work/_temp/src/crypto/sha256_x86_shani.cpp: iwyu reports no contentful changes)
    1014(skipping /home/runner/work/_temp/src/zmq/zmqabstractnotifier.h: iwyu reports no contentful changes)
    1015(skipping /home/runner/work/_temp/src/zmq/zmqabstractnotifier.cpp: iwyu reports no contentful changes)
    1016(skipping /home/runner/work/_temp/src/zmq/zmqutil.h: iwyu reports no contentful changes)
    1017(skipping /home/runner/work/_temp/src/zmq/zmqutil.cpp: iwyu reports no contentful changes)
    1018(skipping /home/runner/work/_temp/src/zmq/zmqnotificationinterface.h: iwyu reports no contentful changes)
    1019(skipping /home/runner/work/_temp/src/zmq/zmqnotificationinterface.cpp: iwyu reports no contentful changes)
    1020(skipping /home/runner/work/_temp/src/zmq/zmqpublishnotifier.h: iwyu reports no contentful changes)
    1021(skipping /home/runner/work/_temp/src/zmq/zmqpublishnotifier.cpp: iwyu reports no contentful changes)
    1022(skipping /home/runner/work/_temp/src/zmq/zmqrpc.h: iwyu reports no contentful changes)
    1023(skipping /home/runner/work/_temp/src/zmq/zmqrpc.cpp: iwyu reports no contentful changes)
    1024(skipping /home/runner/work/_temp/src/kernel/bitcoinkernel.h: iwyu reports no contentful changes)
    1025(skipping /home/runner/work/_temp/src/kernel/bitcoinkernel.cpp: iwyu reports no contentful changes)
    1026>>> Fixing #includes in '/home/runner/work/_temp/src/common/bloom.h'
    1027>>> Fixing #includes in '/home/runner/work/_temp/src/common/bloom.cpp'
    1028>>> Fixing #includes in '/home/runner/work/_temp/src/common/args.h'
    1029>>> Fixing #includes in '/home/runner/work/_temp/src/common/args.cpp'
    1030>>> Fixing #includes in '/home/runner/work/_temp/src/common/config.cpp'
    1031>>> Fixing #includes in '/home/runner/work/_temp/src/common/init.cpp'
    1032>>> Fixing #includes in '/home/runner/work/_temp/src/common/interfaces.cpp'
    1033>>> Fixing #includes in '/home/runner/work/_temp/src/common/messages.h'
    1034>>> Fixing #includes in '/home/runner/work/_temp/src/common/netif.h'
    1035>>> Fixing #includes in '/home/runner/work/_temp/src/common/netif.cpp'
    1036>>> Fixing #includes in '/home/runner/work/_temp/src/common/run_command.cpp'
    1037>>> Fixing #includes in '/home/runner/work/_temp/src/common/pcp.h'
    1038>>> Fixing #includes in '/home/runner/work/_temp/src/common/pcp.cpp'
    1039>>> Fixing #includes in '/home/runner/work/_temp/src/common/settings.h'
    1040>>> Fixing #includes in '/home/runner/work/_temp/src/common/settings.cpp'
    1041>>> Fixing #includes in '/home/runner/work/_temp/src/common/url.cpp'
    1042>>> Fixing #includes in '/home/runner/work/_temp/src/common/signmessage.cpp'
    1043>>> Fixing #includes in '/home/runner/work/_temp/src/common/system.h'
    1044>>> Fixing #includes in '/home/runner/work/_temp/src/common/system.cpp'
    1045IWYU edited 19 files on your behalf.
    1046
    1047+ git diff -U1
    1048+ ./contrib/devtools/clang-format-diff.py -binary=clang-format-22 -p1 -i -v
    1049Formatting src/common/args.cpp
    1050Formatting src/common/args.h
    1051Formatting src/common/bloom.cpp
    1052Formatting src/common/bloom.h
    1053Formatting src/common/config.cpp
    1054Formatting src/common/init.cpp
    1055Formatting src/common/interfaces.cpp
    1056Formatting src/common/messages.h
    1057Formatting src/common/netif.cpp
    1058Formatting src/common/netif.h
    1059Formatting src/common/pcp.cpp
    1060Formatting src/common/pcp.h
    1061Formatting src/common/run_command.cpp
    1062Formatting src/common/settings.cpp
    1063Formatting src/common/settings.h
    1064Formatting src/common/signmessage.cpp
    1065Formatting src/common/system.cpp
    1066Formatting src/common/system.h
    1067Formatting src/common/url.cpp
    1068+ git --no-pager diff --exit-code
    1069diff --git a/src/common/args.cpp b/src/common/args.cpp
    1070index 12e0f26..101b4b7 100644
    1071--- a/src/common/args.cpp
    1072+++ b/src/common/args.cpp
    1073@@ -23,8 +23,6 @@
    1074 #endif
    1075 
    1076 #include <algorithm>
    1077-#include <cassert>
    1078-#include <cstdint>
    1079 #include <cstdlib>
    1080 #include <cstring>
    1081 #include <map>
    1082diff --git a/src/common/args.h b/src/common/args.h
    1083index de323d3..26ea241 100644
    1084--- a/src/common/args.h
    1085+++ b/src/common/args.h
    1086@@ -6,7 +6,6 @@
    1087 #define BITCOIN_COMMON_ARGS_H
    1088 
    1089 #include <common/settings.h>
    1090-#include <compat/compat.h>
    1091 #include <sync.h>
    1092 #include <util/chaintype.h>
    1093 #include <util/fs.h>
    1094diff --git a/src/common/bloom.cpp b/src/common/bloom.cpp
    1095index 3ee7899..c15c8f7 100644
    1096--- a/src/common/bloom.cpp
    1097+++ b/src/common/bloom.cpp
    1098@@ -16,8 +16,7 @@
    1099 
    1100 #include <algorithm>
    1101 #include <cmath>
    1102-#include <cstdlib>
    1103-#include <limits>
    1104+#include <compare>
    1105 #include <vector>
    1106 
    1107 static constexpr double LN2SQUARED = 0.4804530139182014246671025263266649717305529515945455;
    1108diff --git a/src/common/bloom.h b/src/common/bloom.h
    1109index 97007e1..c9ed89f 100644
    1110--- a/src/common/bloom.h
    1111+++ b/src/common/bloom.h
    1112@@ -6,8 +6,9 @@
    1113 #define BITCOIN_COMMON_BLOOM_H
    1114 
    1115 #include <serialize.h>
    1116-#include <span.h>
    1117 
    1118+#include <cstdint>
    1119+#include <span>
    1120 #include <vector>
    1121 
    1122 class COutPoint;
    1123diff --git a/src/common/config.cpp b/src/common/config.cpp
    1124index a05c20d..3c88e3a 100644
    1125--- a/src/common/config.cpp
    1126+++ b/src/common/config.cpp
    1127@@ -3,27 +3,23 @@
    1128 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
    1129 
    1130 #include <common/args.h>
    1131-
    1132 #include <common/settings.h>
    1133 #include <logging.h>
    1134 #include <sync.h>
    1135 #include <tinyformat.h>
    1136 #include <univalue.h>
    1137-#include <util/chaintype.h>
    1138 #include <util/fs.h>
    1139 #include <util/string.h>
    1140 
    1141 #include <algorithm>
    1142 #include <cassert>
    1143 #include <cstdlib>
    1144-#include <filesystem>
    1145 #include <fstream>
    1146 #include <iostream>
    1147-#include <sstream>
    1148 #include <list>
    1149 #include <map>
    1150-#include <memory>
    1151 #include <optional>
    1152+#include <sstream>
    1153 #include <string>
    1154 #include <string_view>
    1155 #include <utility>
    1156diff --git a/src/common/init.cpp b/src/common/init.cpp
    1157index 7a1d664..e6f49c3 100644
    1158--- a/src/common/init.cpp
    1159+++ b/src/common/init.cpp
    1160@@ -2,15 +2,15 @@
    1161 // Distributed under the MIT software license, see the accompanying
    1162 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
    1163 
    1164+#include <common/init.h>
    1165+
    1166 #include <chainparams.h>
    1167 #include <common/args.h>
    1168-#include <common/init.h>
    1169 #include <logging.h>
    1170 #include <tinyformat.h>
    1171 #include <util/fs.h>
    1172 #include <util/translation.h>
    1173 
    1174-#include <algorithm>
    1175 #include <exception>
    1176 #include <optional>
    1177 
    1178diff --git a/src/common/interfaces.cpp b/src/common/interfaces.cpp
    1179index ffd85e6..be97653 100644
    1180--- a/src/common/interfaces.cpp
    1181+++ b/src/common/interfaces.cpp
    1182@@ -6,7 +6,10 @@
    1183 #include <interfaces/handler.h>
    1184 
    1185 #include <boost/signals2/connection.hpp>
    1186+
    1187+#include <functional>
    1188 #include <memory>
    1189+#include <string>
    1190 #include <utility>
    1191 
    1192 namespace common {
    1193diff --git a/src/common/messages.h b/src/common/messages.h
    1194index 60fdaa1..6dc3212 100644
    1195--- a/src/common/messages.h
    1196+++ b/src/common/messages.h
    1197@@ -13,17 +13,19 @@
    1198 
    1199 #include <string>
    1200 #include <string_view>
    1201+#include <utility>
    1202 
    1203 struct bilingual_str;
    1204-
    1205 enum class FeeEstimateMode;
    1206 enum class FeeReason;
    1207+
    1208 namespace node {
    1209 enum class TransactionError;
    1210 } // namespace node
    1211 
    1212 namespace common {
    1213 enum class PSBTError;
    1214+
    1215 bool FeeModeFromString(std::string_view mode_string, FeeEstimateMode& fee_estimate_mode);
    1216 std::string StringForFeeReason(FeeReason reason);
    1217 std::string FeeModes(const std::string& delimiter);
    1218diff --git a/src/common/netif.cpp b/src/common/netif.cpp
    1219index 8c0c4fa..6d6a6e0 100644
    1220--- a/src/common/netif.cpp
    1221+++ b/src/common/netif.cpp
    1222@@ -6,11 +6,12 @@
    1223 
    1224 #include <common/netif.h>
    1225 
    1226+#include <compat/compat.h>
    1227+#include <linux/netlink.h>
    1228 #include <logging.h>
    1229 #include <netbase.h>
    1230 #include <util/check.h>
    1231 #include <util/sock.h>
    1232-#include <util/syserror.h>
    1233 
    1234 #if defined(__linux__)
    1235 #include <linux/rtnetlink.h>
    1236@@ -34,6 +35,12 @@
    1237 #include <ifaddrs.h>
    1238 #endif
    1239 
    1240+#include <cerrno>
    1241+ echo '^^^ ⚠️ Failure generated from IWYU'
    1242+ false
    1243+#include <cstdint>
    1244+#include <cstring>
    1245+#include <functional>
    1246+#include <memory>
    1247+#include <string>
    1248 #include <type_traits>
    1249 
    1250 namespace {
    1251diff --git a/src/common/netif.h b/src/common/netif.h
    1252index 769bcbc..84df00a 100644
    1253--- a/src/common/netif.h
    1254+++ b/src/common/netif.h
    1255@@ -8,6 +8,7 @@
    1256 #include <netaddress.h>
    1257 
    1258 #include <optional>
    1259+#include <vector>
    1260 
    1261 //! Query the OS for the default gateway for `network`. This only makes sense for NET_IPV4 and NET_IPV6.
    1262 //! Returns std::nullopt if it cannot be found, or there is no support for this OS.
    1263diff --git a/src/common/pcp.cpp b/src/common/pcp.cpp
    1264index a640b82..5fcbec4 100644
    1265--- a/src/common/pcp.cpp
    1266+++ b/src/common/pcp.cpp
    1267@@ -4,19 +4,30 @@
    1268 
    1269 #include <common/pcp.h>
    1270 
    1271-#include <atomic>
    1272-#include <common/netif.h>
    1273+#include <compat/compat.h>
    1274 #include <crypto/common.h>
    1275+#include <crypto/hex_base.h>
    1276 #include <logging.h>
    1277 #include <netaddress.h>
    1278 #include <netbase.h>
    1279-#include <random.h>
    1280-#include <span.h>
    1281+#include <tinyformat.h>
    1282 #include <util/check.h>
    1283-#include <util/readwritefile.h>
    1284 #include <util/sock.h>
    1285-#include <util/strencodings.h>
    1286+#include <util/string.h>
    1287 #include <util/threadinterrupt.h>
    1288+#include <util/time.h>
    1289+
    1290+#include <algorithm>
    1291+#include <atomic>
    1292+#include <compare>
    1293+#include <cstring>
    1294+#include <functional>
    1295+#include <map>
    1296+#include <memory>
    1297+#include <optional>
    1298+#include <span>
    1299+#include <utility>
    1300+#include <vector>
    1301 
    1302 namespace {
    1303 
    1304diff --git a/src/common/pcp.h b/src/common/pcp.h
    1305index 121349b..b703ccd 100644
    1306--- a/src/common/pcp.h
    1307+++ b/src/common/pcp.h
    1308@@ -6,10 +6,16 @@
    1309 #define BITCOIN_COMMON_PCP_H
    1310 
    1311 #include <netaddress.h>
    1312-#include <util/threadinterrupt.h>
    1313 
    1314+#include <array>
    1315+#include <chrono>
    1316+#include <cstddef>
    1317+#include <cstdint>
    1318+#include <string>
    1319 #include <variant>
    1320 
    1321+class CThreadInterrupt;
    1322+
    1323 // RFC6886 NAT-PMP and RFC6887 Port Control Protocol (PCP) implementation.
    1324 // NAT-PMP and PCP use network byte order (big-endian).
    1325 
    1326diff --git a/src/common/run_command.cpp b/src/common/run_command.cpp
    1327index 86f89e1..026e1ef 100644
    1328--- a/src/common/run_command.cpp
    1329+++ b/src/common/run_command.cpp
    1330@@ -10,6 +10,10 @@
    1331 #include <univalue.h>
    1332 #include <util/string.h>
    1333 
    1334+#include <sstream>
    1335+#include <stdexcept>
    1336+#include <utility>
    1337+
    1338 #ifdef ENABLE_EXTERNAL_SIGNER
    1339 #include <util/subprocess.h>
    1340 #endif // ENABLE_EXTERNAL_SIGNER
    1341diff --git a/src/common/settings.cpp b/src/common/settings.cpp
    1342index e9b9297..d8c627a 100644
    1343--- a/src/common/settings.cpp
    1344+++ b/src/common/settings.cpp
    1345@@ -2,15 +2,14 @@
    1346 // Distributed under the MIT software license, see the accompanying
    1347 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
    1348 
    1349-#include <common/settings.h>
    1350-
    1351 #include <bitcoin-build-config.h> // IWYU pragma: keep
    1352 
    1353+#include <common/settings.h>
    1354+
    1355 #include <tinyformat.h>
    1356 #include <univalue.h>
    1357 #include <util/fs.h>
    1358 
    1359-#include <algorithm>
    1360 #include <fstream>
    1361 #include <iterator>
    1362 #include <map>
    1363diff --git a/src/common/settings.h b/src/common/settings.h
    1364index bc7b89a..b326df7 100644
    1365--- a/src/common/settings.h
    1366+++ b/src/common/settings.h
    1367@@ -5,6 +5,7 @@
    1368 #ifndef BITCOIN_COMMON_SETTINGS_H
    1369 #define BITCOIN_COMMON_SETTINGS_H
    1370 
    1371+#include <univalue.h>
    1372 #include <util/fs.h>
    1373 
    1374 #include <cstddef>
    1375@@ -12,8 +13,6 @@
    1376 #include <string>
    1377 #include <vector>
    1378 
    1379-class UniValue;
    1380-
    1381 namespace common {
    1382 
    1383 //! Settings value type (string/integer/boolean/null variant).
    1384diff --git a/src/common/signmessage.cpp b/src/common/signmessage.cpp
    1385index 0f9e1f5..cae76ba 100644
    1386--- a/src/common/signmessage.cpp
    1387+++ b/src/common/signmessage.cpp
    1388@@ -4,6 +4,8 @@
    1389 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
    1390 
    1391 #include <common/signmessage.h>
    1392+
    1393+#include <addresstype.h>
    1394 #include <hash.h>
    1395 #include <key.h>
    1396 #include <key_io.h>
    1397@@ -13,6 +15,7 @@
    1398 
    1399 #include <cassert>
    1400 #include <optional>
    1401+#include <span>
    1402 #include <string>
    1403 #include <variant>
    1404 #include <vector>
    1405diff --git a/src/common/system.cpp b/src/common/system.cpp
    1406index 08c0c69..1d5396e 100644
    1407--- a/src/common/system.cpp
    1408+++ b/src/common/system.cpp
    1409@@ -8,14 +8,16 @@
    1410 #include <common/system.h>
    1411 
    1412 #include <logging.h>
    1413+#include <sys/types.h>
    1414 #include <util/string.h>
    1415 #include <util/time.h>
    1416 
    1417 #ifdef WIN32
    1418-#include <cassert>
    1419-#include <codecvt>
    1420 #include <compat/compat.h>
    1421 #include <windows.h>
    1422+
    1423+#include <cassert>
    1424+#include <codecvt>
    1425 #else
    1426 #include <sys/stat.h>
    1427 #include <unistd.h>
    1428@@ -29,6 +31,7 @@
    1429 #include <cstddef>
    1430 #include <cstdint>
    1431 #include <cstdlib>
    1432+#include <limits>
    1433 #include <locale>
    1434 #include <optional>
    1435 #include <stdexcept>
    1436diff --git a/src/common/system.h b/src/common/system.h
    1437index a3100fe..6fa6bd4 100644
    1438--- a/src/common/system.h
    1439+++ b/src/common/system.h
    1440@@ -7,10 +7,10 @@
    1441 #define BITCOIN_COMMON_SYSTEM_H
    1442 
    1443 #include <bitcoin-build-config.h> // IWYU pragma: keep
    1444+
    1445 #include <util/time.h>
    1446 
    1447-#include <chrono>
    1448-#include <cstdint>
    1449+#include <cstddef>
    1450 #include <optional>
    1451 #include <string>
    1452 
    1453diff --git a/src/common/url.cpp b/src/common/url.cpp
    1454index 30ac26a..adb5220 100644
    1455--- a/src/common/url.cpp
    1456+++ b/src/common/url.cpp
    1457@@ -5,6 +5,7 @@
    1458 #include <common/url.h>
    1459 
    1460 #include <charconv>
    1461+#include <cstddef>
    1462 #include <string>
    1463 #include <string_view>
    1464 #include <system_error>
    1465^^^ ⚠️ Failure generated from IWYU
    

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-04-08 00:13 UTC

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