Thread (33 messages) flat view 33 messages, 8 authors, 2019-02-14

Re: [PATCH] KEYS: trusted: fix -Wvarags warning

From: Nick Desaulniers <ndesaulniers@google.com>
Date: 2018-10-12 17:06:02
Also in: keyrings, linux-integrity, lkml

On Fri, Oct 12, 2018 at 8:14 AM Denis Kenzior [off-list ref] wrote:
Hi James,
quoted
quoted
So can't we simply use 'bool' or uint32 as the type for h3 instead
of re-ordering everything
The problem is the standard is ambiguious.  The only thing that's
guaranteed to work for all time is a char *.  If you want to keep the
order, what I'd suggest is inserting a dummy pointer argument which is
always expected to be NULL between the h3 and the varargs.
So maybe I'm misunderstanding something, but the issue seems to be that
unsigned char is promoted to 'unsigned char *' by Clang and probably
unsigned int or int by gcc.
No. This is extremely well defined behavior in C.  In C, integral
types are NEVER promoted to pointer to integer types, only to larger
integral types through rules more complicated than the correct flags
to pass to `tar`.
https://xkcd.com/1168/
So instead of having unsigned char h3, can't we simply have bool h3 or
unsigned int h3?
int is the default argument promotion. Proposed:
https://github.com/ClangBuiltLinux/linux/issues/41#issuecomment-428365339
Regards,
-Denis

-- 
Thanks,
~Nick Desaulniers
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help