Jeff King <peff@xxxxxxxx> writes: > On Sat, Jun 08, 2024 at 11:37:43AM -0700, Junio C Hamano wrote: > >> There are several varargs functions that take either NULL-terminated >> list of parameters, or printf-like format followed by list of >> parameters, that are not declared as such with __attributes__(()). >> >> Adding such a missing attribute to trace2_region_enter_printf() >> revealed that an existing call to it was trying to format a value of >> type size_t using "%d", which is not such an excellent idea. Other >> functions that were lacking attributes fortunately did not have any >> broken existing callers. > > Great, I am happy to see these. I assume you found them all by grepping? > > I wonder if there is a way to convince the compiler (or coccinelle) to > complain about any varargs function that does not have one of our > usual annotations. It's possible to have other conventions (e.g., an > "int" up front specifying the number of entries) but in practice I doubt > we would ever use one. > > Still, I suspect the answer is probably "no", there is not an easy way > to do it. I just went from grepping for fixed "...)" in *.[ch] files. I do admit I wished some form of automation, but didn't come up with one. I was happy that the exercise found a real bug ;-) I started it only as a clean-up topic.