#36268 refactor: prune unused semi-colons

full analysis

https://github.com/bitcoin/bitcoin/pull/36268 · fanquake · +97/-95 in 62 files, 4 commits · labels: Refactoring, CI failed · draft

Goal

  • Prevent compiler noise from redundant semicolons across the codebase
  • Enforce clean syntax automatically during builds

This pull request enables the `-Wextra-semi` compiler warning flag in CMakeLists.txt and removes redundant semicolons across 60+ source files. It also adjusts the `TRACEPOINT_SEMAPHORE` macro in `src/util/trace.h` so that a trailing semicolon does not trigger a warning.

Problem: Redundant semicolons throughout the codebase generate noise under strict compiler warning configurations but have previously not been flagged or enforced in the build system.

Category: Build and CI (#52 of 55)

P4 · cleanup

  • P4 because it is a cosmetic compiler hygiene improvement
  • Enforcing this warning does not fix build breakages, CI reliability, or binary integrity

P4 as a cosmetic compiler hygiene improvement. The PR author states the intent is to 'Enable -Wextra-semi and delete all the redundant semicolons.' Enabling a stylistic compiler warning does not resolve platform breakages, CI reliability issues, or binary integrity concerns.

Membership: Adds -Wextra-semi to the project compiler warning flags in CMakeLists.txt.

Factors: security/stability 0, bug 0, performance 0, user value 0, leverage 0

Reviewability: Paused: Waiting on subtree sync

  • Wait to review: author is waiting on a libmultiprocess subtree pull
  • CI is currently failing

The author noted in the description that the PR is 'Waiting on a pull of the libmultiprocess subtree' and included a '[nomerge] libmultiprocess fixups' commit. CI is also currently failing.

Author status: waiting for the libmultiprocess subtree update before final review

Agreement: Crickets

  • No reviews or comments yet
  • Opened recently as a draft without feedback

No reviews or comments yet

The PR was opened as a draft one day ago and has not received any reviews or concept discussion.

Review verdicts (DrahtBot): 0

Files

46 lines under test/bench/ci.

  • src/wallet/wallet.h +6/-7
  • src/net.h +6/-6
  • src/test/checkqueue_tests.cpp +5/-5
  • src/net_processing.cpp +4/-4
  • src/protocol.h +4/-4
  • src/script/miniscript.h +4/-4
  • src/test/cuckoocache_tests.cpp +3/-3
  • src/wallet/scriptpubkeyman.h +3/-3
  • src/init.cpp +2/-2
  • src/qt/addresstablemodel.cpp +2/-2
  • src/util/check.h +2/-2
  • src/util/time.cpp +2/-2
  • src/util/trace.h +3/-1
  • src/validationinterface.h +2/-2
  • src/wallet/test/walletload_tests.cpp +2/-2
  • src/addresstype.h +1/-1
  • src/bench/coin_selection.cpp +1/-1
  • src/blockencodings.h +1/-1
  • src/crypto/muhash.h +1/-1
  • src/cuckoocache.h +1/-1
  • src/dbwrapper.cpp +1/-1
  • src/dbwrapper.h +1/-1
  • src/headerssync.h +1/-1
  • src/index/blockfilterindex.cpp +1/-1
  • src/index/coinstatsindex.cpp +1/-1
  • src/ipc/capnp/protocol.cpp +1/-1
  • src/ipc/libmultiprocess/include/mp/proxy-types.h +1/-1
  • src/ipc/libmultiprocess/include/mp/type-function.h +1/-1
  • src/logging.h +1/-1
  • src/merkleblock.h +1/-1
  • src/netaddress.cpp +1/-1
  • src/netbase.h +1/-1
  • src/node/eviction.cpp +1/-1
  • src/node/interfaces.cpp +1/-1
  • src/node/kernel_notifications.cpp +1/-1
  • src/node/mempool_args.h +1/-1
  • src/primitives/transaction.h +1/-1
  • src/qt/notificator.cpp +1/-1
  • src/qt/splashscreen.h +1/-1
  • src/random.h +1/-1
  • src/rpc/request.h +1/-1
  • src/serialize.h +1/-1
  • src/test/fuzz/kitchen_sink.cpp +1/-1
  • src/test/fuzz/muhash.cpp +1/-1
  • src/test/fuzz/rpc.cpp +1/-1
  • src/test/fuzz/socks5.cpp +1/-1
  • src/test/pcp_tests.cpp +1/-1
  • src/test/rpc_tests.cpp +1/-1
  • src/test/settings_tests.cpp +1/-1
  • src/test/util/coins.cpp +1/-1
  • src/test/util/net.h +1/-1
  • src/test/util/setup_common.cpp +1/-1
  • src/txmempool.h +1/-1
  • src/txrequest.cpp +1/-1
  • src/util/fs.h +1/-1
  • src/util/sock.cpp +1/-1
  • src/validation.h +1/-1
  • src/wallet/scan.h +1/-1
  • src/wallet/spend.cpp +1/-1
  • src/wallet/test/fuzz/scriptpubkeyman.cpp +1/-1
  • src/wallet/test/util.cpp +1/-1
  • CMakeLists.txt +1/-0

Card

This PR adds the -Wextra-semi warning flag to the CMake build configuration and strips redundant semicolons across 60+ files in the repository. It addresses minor compiler hygiene by preventing unnecessary trailing semicolons from creeping into the codebase. Review is currently paused as the author explicitly noted they are waiting on a libmultiprocess subtree update before finalizing, and the branch contains a nomerge commit.

Data

dossier JSON · extract JSON · model openrouter/google/gemini-3.8-flash, generated 2026-09-17T15:59, confidence high, input hash 222a4beae98f18e7