Hello, IMHO, considering that flexibility is what I love in C programming, and that this checking should be printf job (in that case), and many other things, I agree with Christian. Even more, still IMHO, a pointer is a pointer, no matter actually how it will be interpreted later.
Regards -- ian (i...@sibian.fr) -- développeur compulsif Le 21/06/2019 à 15:33, Christian Jullien a écrit : > > If I read you correctly, you want to protest if type does not strictly > match format directive. > > > > This is something even gcc does NOT ensure by default: > > > > #include <stdio.h> > > #include <stdlib.h> > > > > int > > main() { > > int i = 256; > > const char* s = "Hello"; > > const void* p = s; > > > > printf("%x\n", i); > > printf("%u %s\n", i, p); > > } > > > > > > $ gcc -std=c11 foo.c > > $ => Ok > > > > Only -Wformat (or -Wall) shows a warning on the 2nd printf, printf of > i (a signed) is always Ok. > > > > $ gcc -std=c11 -Wall foo.c > > foo.c: In function 'main': > > foo.c:11:21: warning: format '%s' expects argument of type 'char *', > but argument 3 has type 'const void *' [-Wformat=] > > printf("%u %s\n", i, p); > ~^ > > %p > > > > -----Original Message----- > From: Pascal Cuoq [mailto:c...@trust-in-soft.com] > Sent: Friday, June 21, 2019 15:17 > To: jull...@eligis.com; tinycc-devel@nongnu.org > Subject: Re: [Tinycc-devel] match formats and arguments exactly > > > > > > > On 21 Jun 2019, at 14:56, Christian Jullien <eli...@orange.fr> wrote: > > > > > > This is a valuable check but IMHO, it should be controlled by > -Wformat (as > > > GNU gcc) and set of false by default. > > > Otherwise, I suspect tcc users will have a lot a new warnings. > > > > I'm not implementing a new warning in TCC. I am only ensuring, by > following C11 7.21.6.1:8 to the letter, that the TCC source code > passes the strictest such checks that a C compiler could have, and > also that a very exotic C compiler does not produce a non-functional > binary when compiling TCC. > > > > Considering the amount of code that good warnings represent, I think > that a C compiler can either be tiny, or provide helpful warnings. The > patches I have been sending, including the last one, only make TCC not > exhibit undefined behavior, a more manageable goal that only requires > small changes and do not make TCC significantly larger. > > > > Pascal > > > > _______________________________________________ > Tinycc-devel mailing list > Tinycc-devel@nongnu.org > https://lists.nongnu.org/mailman/listinfo/tinycc-devel
_______________________________________________ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel