cjlano/tinyprintf — pull request #9 by DavidDecotigny (2014-08-17 20:33:44+00:00)
Title: work-around gcc 4.9 demotion to signed

when compiling the inlined version of this loop in ulli2a:
while (num / d >= p->base)
d *= p->base;
gcc 4.9 -O3 seems to be confused for base = 10 and base 16, seems to
consider "num" as signed, which means that ULLONG_MAX is considered <
p->base, and d stays == 1 instead of 100...00.

This patch asks gcc not to inline too much, so that it doesn't
specialize the function for bases 10, 16 and doesn't get confused with
signedness.

Tested:
make clean all with gcc 4.9.