On Fri, 2018-10-12 at 10:13 -0500, Denis Kenzior wrote: > Hi James, > > > > 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. > > So instead of having unsigned char h3, can't we simply have bool h3 > or unsigned int h3? Given the ambiguity in the standards, the safe thing that will work for all time and all potential compilers is a char * James