#36036 build: Bump clang minimum supported version to 19

full analysis

https://github.com/bitcoin/bitcoin/pull/36036 · maflcko · +19/-19 in 6 files, 3 commits · labels: Build system, CI failed · draft

Goal

  • Raise the minimum supported Clang version to 19 to enable newer C++20 features
  • Removes workarounds needed for older compilers and simplifies future codebase modernization

Bumps the minimum required Clang compiler version from 17.0 to 19.0. Updates the CMake feature checks from CTAD for aggregates to CTAD for alias templates, updates CI environments, and sets clang-format to use Standard: Latest.

Problem: Older Clang versions lack full C++20 support (such as CTAD for alias templates) and require workarounds in the codebase. Raising the baseline simplifies future modern C++ usage.

Category: Build and CI (#29 of 55)

P3 · cleanup

  • P3 because toolchain modernization benefits are deferred to a future release next year
  • Only enables C++20 CTAD for alias templates at this stage without immediate urgency

Routine toolchain modernization with a clear use case for future releases. The author notes that 'For this bump, only C++20 CTAD will become available' and 'This patch will only be released in version 33.x, next year (2027)', making review useful when convenient but reasonably deferrable.

Membership: Modifies compiler feature checks in CMake, minimum toolchain requirements, and CI test environments.

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

Reviewability: Stale: CI failing

  • CI is failing on the PR branch due to a workflow runner change

CI is failing on the PR branch, likely because of the workflow runner change to warp-ubuntu-2604-x64-8x.

Author status: active

Agreement: Crickets

  • No reviews or comments yet
  • Opened as a draft without feedback from other contributors

No reviews or comments yet.

PR was opened as a draft and has received no feedback from other contributors.

Review verdicts (DrahtBot): 0

Files

6 lines under test/bench/ci.

  • cmake/module/CheckCXXFeatures.cmake +8/-13
  • ci/test/00_setup_env_native_nowallet.sh +3/-3
  • doc/release-notes-36036.md +5/-0
  • .github/workflows/ci.yml +1/-1
  • doc/dependencies.md +1/-1
  • src/.clang-format +1/-1

Card

This PR raises the minimum supported Clang version to 19.0 and updates CMake C++ feature checks to test for CTAD with alias templates. It prepares the codebase for upcoming C++20 usage in version 33.0 and allows removing workarounds for older Clang bugs. No reviewers have commented yet, and CI is currently failing on an updated workflow runner.

Data

dossier JSON · extract JSON · model openrouter/google/gemini-3.8-flash, generated 2026-09-17T16:22, confidence high, input hash 6c5e36f86346b5ac