On Mon, Apr 21, 2025 at 01:30:36PM -0700, Junio C Hamano wrote: > Ahelenia Ziemiańska <nabijaczleweli@xxxxxxxxxxxxxxxxxx> writes: > > -static const char *blame_opt_usage[] = { > > +static const char *const blame_opt_usage[] = { > > blame_usage, > > "", > > N_("<rev-opts> are documented in git-rev-list(1)"), > > NULL > > }; > much looser to allow swapping the pointers in the array is *not* a > problem per-se, but as long as the compiler would not barf after > this patch, we know these callers that use these arrays are not > doing such mutations to these arrays themselves, so it is good. This built for me on Debian and the resulting binary worked so there's no obvious sneaky const-incorrectness; it only resulted in one error, where one of these variables was assigned to a const char * *opt_usage; instead of a const char *const *opt_usage; this has been obviously fixed and is part of this submission. I came across this as I was debugging some other issue (that ended up as me holding it wrong), static const char *s in library functions appeared quite pervasive, but those aren't really possible to identify and close semi-automatically (and it's unclear to me if a tighter analysis scope allows the compiler to actually put the static in .rodata or eliminate it outright). Best,
Attachment:
signature.asc
Description: PGP signature