HomePhabricator

lint: support cross-platform macros in format specifiers

Description

lint: support cross-platform macros in format specifiers

Summary:
I'm getting a linter error when touching src/seeder/main.cpp:

$ test/lint/lint-format-strings.py src/seeder/*cpp
src/seeder/main.cpp: Expected 10 argument(s) after format string but found 12 argument(s): tfm::format( d, "%-47s %4d %11" PRId64 " %6.2f%% %6.2f%% %6.2f%% %6.2f%% %6.2f%% %6i %08" PRIx64 " %5i \"%s\"\n", rep.ip.ToString(), rep.reliabilityStatus == ReliabilityStatus::OK ? 1 : 0, rep.lastSuccess, 100.0 * rep.uptime[0], 100.0 * rep.uptime[1], 100.0 * rep.uptime[2], 100.0 * rep.uptime[3], 100.0 * rep.uptime[4], rep.blocks, rep.services, rep.clientVersion, rep.clientSubVersion)

fix it by replacing the PRIx64 ...etc macros by something easier to parse by the existing linter.
Depends on D18660

Test Plan:

test/lint/lint-format-strings.py src/seeder/*cpp

Reviewers: #bitcoin_abc, Fabien

Reviewed By: #bitcoin_abc, Fabien

Subscribers: Fabien

Differential Revision: https://reviews.bitcoinabc.org/D18661

Details

Provenance
PiRKAuthored on Sep 22 2025, 13:09
PiRKPushed on Sep 23 2025, 09:26
Reviewer
Restricted Project
Differential Revision
D18661: lint: support cross-platform macros in format specifiers
Parents
rABCa94c961835fc: clang-tidy: cover fuzzers and chronik cpp code
Branches
Unknown
Tags
Unknown