This patch has little to do with the general forrmating functions. Maybe the name of the patch is a bit misleading. Pascal are simply casting some values to the correct type, that are formatted in error messages. This so that no undefined behavior occurs.
Hope this sort things out. /cjw 21 juni 2019 17:24 av eli...@orange.fr: > Don't misunderstand me, this check is a very valuable addition. For an > uncounted number of years I use any possible warnings and my code (almost) > pass with all sanitizer, splint, code analyzers ... > You should also understand that many code slowly moved from K&R to ANSI, to > C98 .. C11 and it's a pain to port from one C version to another especially > when you're not the original author. > If you always do this check, suddenly a code w.o warning you develop with > tcc will display hundreds or thousands new warnings nobody will have the > energy to fix (very likely with a ugly cast on the argument). > Rigid (or pedantic) developers, as I am, certainly would like to activate > -Wformat and fix incorrect format string. Others, will be very happy to see > no more warning than they use to have. > > So I personally vote to add this check if it protest only with -Wformat. I > can also accept it exists only with -std=c11 even if it's not the gcc > behavior. > > IMHO gcc compatibility (or VC++ on Windows) should be a goal for tcc. We are > many to use tcc for its fast development cycle but gcc/vc remains the only > choice for release. > > > From: Tinycc-devel [mailto:tinycc-devel-bounces+eligis=orange...@nongnu.org] > On Behalf Of ian > Sent: Friday, June 21, 2019 16:54 > To: Tinycc-devel@nongnu.org > Subject: Re: [Tinycc-devel] match formats and arguments exactly > > Hi Pascal, > I *know* that (including the no-way part). > And I *know* too that this misuse is sometimes what's expected by > developers... > Anyway, I don't think it's desirable that kinds of pointers are checked. > Still my humble opinion. > -- ian (i...@sibian.fr) > -- développeur compulsif > Le 21/06/2019 à 16:47, Pascal Cuoq a écrit : > > On 21 Jun 2019, at 16:10, ian <sibian0...@gmail.com> wrote: > Hello,IMHO, considering that flexibility is what I love in C programming, > and that this checking should be printf job (in that case), > > Unfortunately, this is not how printf, or other variadic functions, work. > The way they work is: the non-variadic arguments (in the case of printf, the > format string) indicate what variadic arguments should be consumed with what > type. If the types of the arguments actually passed do not match the types > indicated by the non-variadic arguments, the behavior is undefined. > > Not only printf, and other variadic functions, have no obligation to warn > you if you misuse them, but on every existing platform (including the exotic > platforms where a pointer is not a pointer), they actually have no way to > warn you that you are misusing them. > > > > _______________________________________________ > 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