[clang] [Sema] Fix missing warnings for unused args with invalid printf specs. (PR #158514)

via cfe-commits cfe-commits at lists.llvm.org
Mon Sep 15 06:18:46 PDT 2025


lakreite wrote:

Thank you for the feedback. I think there's a bug, because...
With invalid conversion specifiers clang emits a warning:
```c
main.cpp:5:17: warning: invalid conversion specifier 'k' [-Wformat-invalid-specifier]
    5 |     printf("%d %k", 1, 1);
      |                ~^
main.cpp:5:24: warning: data argument not used by format string [-Wformat-extra-args]
    5 |     printf("%d %k", 1, 1);
      |            ~~~~~~~     ^
2 warnings generated.

```
With incomplete specifier not at the last position Clang emits a warning:
```c
main.cpp:5:15: warning: invalid conversion specifier ' ' [-Wformat-invalid-specifier]
    5 |     printf("%1 %d", 1, 1);
      |             ~~^
main.cpp:5:24: warning: data argument not used by format string [-Wformat-extra-args]
    5 |     printf("%1 %d", 1, 1);
      |            ~~~~~~~     ^
2 warnings generated.
```
So missing a warning looks strange:
```c
main.cpp:5:13: warning: incomplete format specifier [-Wformat]
    5 |     printf("%1", 1, 1, 1);
      |             ^~
1 warning generated.
```

https://github.com/llvm/llvm-project/pull/158514


More information about the cfe-commits mailing list