git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 0/4] varargs functions with __attributes__(())

From
Jeff King <peff@peff.net>
Date
Jun 11, 2024, 08:17 UTC
Message-ID
<20240611081735.GI3248245@coredump.intra.peff.net>
In-Reply-To
<20240608183747.2084294-1-gitster@pobox.com>
On Sat, Jun 08, 2024 at 11:37:43AM -0700, Junio C Hamano wrote:
Show 9 quoted lines
> 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.

-Peff
Previous: Junio C HamanoNext: Junio C Hamano
Message 8 of 9 in “varargs functions with __attributes__(())”
  1. 0/4 varargs functions with __attributes__(())Junio C Hamano, Jun 8, 2024
  2. 1/4 __attribute__: trace2_region_enter_printf() is like "printf"Junio C Hamano, Jun 8, 2024
  3. Patrick SteinhardtJun 10, 2024
  4. Junio C HamanoJun 10, 2024
  5. 2/4 __attribute__: remove redundant attribute declaration for git_die_config()Junio C Hamano, Jun 8, 2024
  6. 3/4 __attribute__: mark some functions with LAST_ARG_MUST_BE_NULLJunio C Hamano, Jun 8, 2024
  7. 4/4 __attribute__: add a few missing format attributesJunio C Hamano, Jun 8, 2024
  8. Jeff KingJun 11, 2024
  9. Junio C HamanoJun 11, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.