[PATCH] D132266: [Clang][SemaChecking] move %hh and %h -Wformat warnings to -Wformat-pedantic

Aaron Ballman via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Aug 22 07:33:49 PDT 2022


aaron.ballman added a comment.

In D132266#3739600 <https://reviews.llvm.org/D132266#3739600>, @inclyc wrote:

> What I'm confusing is
> Which of the following two explanations is the exact meaning of `hhd`?
>
> 1. consumes a 32-bit signed integer, then truncates it *inside* printf
> 2. consumes an 8-bit signed integer
>
> If it is the case 1, we should not emit this warning, but N2562 said that it still seems to be 2 ?

There's some confusion happening that we should clarify first. The sections you've been quoting so far are for the behavior of `fscanf` not `fprintf` and the requirements are different.

For `fprintf`, `hhd` means that `fprintf` consumes an `int`-sized object by calling effectively `signed char value = (signed char)va_arg(list, int);`.
For `fscanf`, `hhd` means that `fscanf` consumes a pointer in which to store the converted data by effectively calling `signed char *ptr = (signed char *)va_arg(list, signed char *); *ptr = value;`

This patch is currently handling only the `fprintf` cases and is not addressing the `fscanf` ones.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D132266/new/

https://reviews.llvm.org/D132266



More information about the cfe-commits mailing list