inclyc added a comment. In D132266#3739618 <https://reviews.llvm.org/D132266#3739618>, @aaron.ballman wrote:
> 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. Thanks! This completely solved my doubts. I mistakenly thought that `hhd` also corresponds to `signed char` in printf now. :) Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D132266/new/ https://reviews.llvm.org/D132266 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits