Fix leaky diagnostic ignored pragma#4588
Merged
vitaut merged 1 commit intofmtlib:masterfrom Oct 25, 2025
Merged
Conversation
Ignoring the `-Wconversion` diagnostic in `make_format_args` was leaking out of the header, resulting in that warning being ignored in downstream code that includes `fmt/base.h`. Instead, we should `push`/`pop` the diagnostics to ensure this is cleaned up.
Contributor
|
Thanks for the PR! The lint issue is preexisting and can be ignored - I'll fix it separately. |
netbsd-srcmastr
pushed a commit
to NetBSD/pkgsrc
that referenced
this pull request
Nov 2, 2025
# 12.1.0 - 2025-10-29 - Optimized `buffer::append`, resulting in up to ~16% improvement on spdlog benchmarks (fmtlib/fmt#4541). Thanks @fyrsta7. - Worked around an ABI incompatibility in `std::locale_ref` between clang and gcc (fmtlib/fmt#4573). - Made `std::variant` and `std::expected` formatters work with `format_as` (fmtlib/fmt#4574, fmtlib/fmt#4575). Thanks @phprus. - Made `fmt::join<string_view>` work with C++ modules (fmtlib/fmt#4379, fmtlib/fmt#4577). Thanks @Arghnews. - Exported `fmt::is_compiled_string` and `operator""_cf` from the module (fmtlib/fmt#4544). Thanks @CrackedMatter. - Fixed a compatibility issue with C++ modules in clang (fmtlib/fmt#4548). Thanks @tsarn. - Added support for cv-qualified types to the `std::optional` formatter (fmtlib/fmt#4561, fmtlib/fmt#4562). Thanks @OleksandrKvl. - Added demangling support (used in exception and `std::type_info` formatters) for libc++ and clang-cl (fmtlib/fmt#4542, fmtlib/fmt#4560, fmtlib/fmt#4568, fmtlib/fmt#4571). Thanks @FatihBAKIR and @rohitsutreja. - Switched to global `malloc`/`free` to enable allocator customization (fmtlib/fmt#4569, fmtlib/fmt#4570). Thanks @rohitsutreja. - Made the `FMT_USE_CONSTEVAL` macro configurable by users (fmtlib/fmt#4546). Thanks @SnapperTT. - Fixed compilation with locales disabled in the header-only mode (fmtlib/fmt#4550). - Fixed compilation with clang 21 and `-std=c++20` (fmtlib/fmt#4552). - Fixed a dynamic linking issue with clang-cl (fmtlib/fmt#4576, fmtlib/fmt#4584). Thanks @FatihBAKIR. - Fixed a warning suppression leakage on gcc (fmtlib/fmt#4588). Thanks @ZedThree. - Made more internal color APIs `constexpr` (fmtlib/fmt#4581). Thanks @ishani. - Fixed compatibility with clang as a host compiler for NVCC (fmtlib/fmt#4564). Thanks @valgur. - Fixed various warnings and lint issues (fmtlib/fmt#4565, fmtlib/fmt#4572, fmtlib/fmt#4557). Thanks @LiangHuDream and @teruyamato0731. - Improved documentation (fmtlib/fmt#4549, fmtlib/fmt#4551, fmtlib/fmt#4566, fmtlib/fmt#4567, fmtlib/fmt#4578,). Thanks @teruyamato0731, @petersteneteg and @zimmerman-dev.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ignoring the
-Wconversiondiagnostic inmake_format_argswas leaking out of the header, resulting in that warning being ignored in downstream code that includesfmt/base.h:fmt/include/fmt/base.h
Lines 2823 to 2828 in 9395ef5
We should
push/popthe diagnostics to ensure this is cleaned up (as is done for clang and for GCC options).See this Compiler Explorer reproducer for the problem. You can see that gcc doesn't raise a warning while clang does. Commenting out the
#include <fmt/base.h>restores the correct behaviour.