[all-commits] [llvm/llvm-project] 4cdc33: Fix Clang bug that -Wformat-signedness is not repo...

DeanSturtevant1 via All-commits all-commits at lists.llvm.org
Wed Aug 13 08:03:49 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 4cdc3388b3964f72026091b17cd76e90d10144b6
      https://github.com/llvm/llvm-project/commit/4cdc3388b3964f72026091b17cd76e90d10144b6
  Author: DeanSturtevant1 <dsturtevant at google.com>
  Date:   2025-08-13 (Wed, 13 Aug 2025)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Sema/SemaChecking.cpp
    M clang/test/Sema/format-strings-signedness.c

  Log Message:
  -----------
  Fix Clang bug that -Wformat-signedness is not reported properly. (#150962)

The goal is to correctly identify diagnostics that are emitted by virtue
of -Wformat-signedness.

Before this change, diagnostic messages triggered by -Wformat-signedness
might look like:
format specifies type 'unsigned int' but the argument has type 'int'
[-Wformat]
signedness of format specifier 'u' is incompatible with 'c' [-Wformat]
With this change:
format specifies type 'unsigned int' but the argument has type 'int',
which differs in signedness [-Wformat-signedness]
signedness of format specifier 'u' is incompatible with 'c'
[-Wformat-signedness]

Fix:
- handleFormatSignedness can now return NoMatchSignedness. Callers
handle this.
- warn_format_conversion_argument_type extends the message it used to
emit by a string that
  mentions "signedness".
- warn_format_cmp_specifier_sign_mismatch is now correctly categorized
as a
  diagnostic controlled by -Wformat-signedness.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list