diff mbox series

[1/4] __attribute__: trace2_region_enter_printf() is like "printf"

Message ID 20240608183747.2084294-2-gitster@pobox.com (mailing list archive)
State Accepted
Commit 89e78c7cdad1ac70d16c0ceb79b3ff95dfadd2bb
Headers show
Series varargs functions with __attributes__(()) | expand

Commit Message

Junio C Hamano June 8, 2024, 6:37 p.m. UTC
The last part of the parameter list the function takes is like
parameters to printf. mark it as such.

An existing call that formats a value of type size_t using "%d" was
found by the compiler with the help with this annotation; fix it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 run-command.c | 3 ++-
 trace2.h      | 1 +
 2 files changed, 3 insertions(+), 1 deletion(-)

Comments

Patrick Steinhardt June 10, 2024, 7:01 a.m. UTC | #1
On Sat, Jun 08, 2024 at 11:37:44AM -0700, Junio C Hamano wrote:
> The last part of the parameter list the function takes is like
> parameters to printf. mark it as such.

s/mark/Mark, or convert the dot to a semicolon.

> An existing call that formats a value of type size_t using "%d" was
> found by the compiler with the help with this annotation; fix it.

Makes sense, as do all the other patches in this series.

Patrick
Junio C Hamano June 10, 2024, 4:15 p.m. UTC | #2
Patrick Steinhardt <ps@pks.im> writes:

> On Sat, Jun 08, 2024 at 11:37:44AM -0700, Junio C Hamano wrote:
>> The last part of the parameter list the function takes is like
>> parameters to printf. mark it as such.
>
> s/mark/Mark, or convert the dot to a semicolon.
>
>> An existing call that formats a value of type size_t using "%d" was
>> found by the compiler with the help with this annotation; fix it.
>
> Makes sense, as do all the other patches in this series.

Thanks, will amend.
diff mbox series

Patch

diff --git a/run-command.c b/run-command.c
index 1b821042b4..ec2c12e98b 100644
--- a/run-command.c
+++ b/run-command.c
@@ -1753,7 +1753,8 @@  void run_processes_parallel(const struct run_process_parallel_opts *opts)
 
 	if (do_trace2)
 		trace2_region_enter_printf(tr2_category, tr2_label, NULL,
-					   "max:%d", opts->processes);
+					   "max:%"PRIuMAX,
+					   (uintmax_t)opts->processes);
 
 	pp_init(&pp, opts, &pp_sig);
 	while (1) {
diff --git a/trace2.h b/trace2.h
index 1f0669bbd2..19e04bf040 100644
--- a/trace2.h
+++ b/trace2.h
@@ -390,6 +390,7 @@  void trace2_region_enter_printf_va_fl(const char *file, int line,
 	trace2_region_enter_printf_va_fl(__FILE__, __LINE__, (category), \
 					 (label), (repo), (fmt), (ap))
 
+__attribute__((format (printf, 6, 7)))
 void trace2_region_enter_printf_fl(const char *file, int line,
 				   const char *category, const char *label,
 				   const struct repository *repo,