mirror of
https://github.com/git/git
synced 2024-11-04 16:17:49 +00:00
Merge branch 'jc/varargs-attributes'
Varargs functions that are unannotated as printf-like or execl-like have been annotated as such. * jc/varargs-attributes: __attribute__: add a few missing format attributes __attribute__: mark some functions with LAST_ARG_MUST_BE_NULL __attribute__: remove redundant attribute declaration for git_die_config() __attribute__: trace2_region_enter_printf() is like "printf"
This commit is contained in:
commit
cff3b034d5
9 changed files with 11 additions and 2 deletions
|
@ -299,6 +299,7 @@ static void err(struct add_p_state *s, const char *fmt, ...)
|
||||||
va_end(args);
|
va_end(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LAST_ARG_MUST_BE_NULL
|
||||||
static void setup_child_process(struct add_p_state *s,
|
static void setup_child_process(struct add_p_state *s,
|
||||||
struct child_process *cp, ...)
|
struct child_process *cp, ...)
|
||||||
{
|
{
|
||||||
|
|
2
attr.h
2
attr.h
|
@ -190,6 +190,8 @@ struct attr_check {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct attr_check *attr_check_alloc(void);
|
struct attr_check *attr_check_alloc(void);
|
||||||
|
|
||||||
|
LAST_ARG_MUST_BE_NULL
|
||||||
struct attr_check *attr_check_initl(const char *, ...);
|
struct attr_check *attr_check_initl(const char *, ...);
|
||||||
struct attr_check *attr_check_dup(const struct attr_check *check);
|
struct attr_check *attr_check_dup(const struct attr_check *check);
|
||||||
|
|
||||||
|
|
1
config.c
1
config.c
|
@ -2844,7 +2844,6 @@ void git_die_config_linenr(const char *key, const char *filename, int linenr)
|
||||||
key, filename, linenr);
|
key, filename, linenr);
|
||||||
}
|
}
|
||||||
|
|
||||||
NORETURN __attribute__((format(printf, 2, 3)))
|
|
||||||
void git_die_config(const char *key, const char *err, ...)
|
void git_die_config(const char *key, const char *err, ...)
|
||||||
{
|
{
|
||||||
const struct string_list *values;
|
const struct string_list *values;
|
||||||
|
|
1
hook.h
1
hook.h
|
@ -86,5 +86,6 @@ int run_hooks(const char *hook_name);
|
||||||
* argument. These things will be used as positional arguments to the
|
* argument. These things will be used as positional arguments to the
|
||||||
* hook. This function behaves like the old run_hook_le() API.
|
* hook. This function behaves like the old run_hook_le() API.
|
||||||
*/
|
*/
|
||||||
|
LAST_ARG_MUST_BE_NULL
|
||||||
int run_hooks_l(const char *hook_name, ...);
|
int run_hooks_l(const char *hook_name, ...);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -50,6 +50,7 @@ char *mem_pool_strndup(struct mem_pool *pool, const char *str, size_t len);
|
||||||
/*
|
/*
|
||||||
* Allocate memory from the memory pool and format a string into it.
|
* Allocate memory from the memory pool and format a string into it.
|
||||||
*/
|
*/
|
||||||
|
__attribute__((format (printf, 2, 3)))
|
||||||
char *mem_pool_strfmt(struct mem_pool *pool, const char *fmt, ...);
|
char *mem_pool_strfmt(struct mem_pool *pool, const char *fmt, ...);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -1756,7 +1756,8 @@ void run_processes_parallel(const struct run_process_parallel_opts *opts)
|
||||||
|
|
||||||
if (do_trace2)
|
if (do_trace2)
|
||||||
trace2_region_enter_printf(tr2_category, tr2_label, NULL,
|
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);
|
pp_init(&pp, opts, &pp_sig);
|
||||||
while (1) {
|
while (1) {
|
||||||
|
|
2
scalar.c
2
scalar.c
|
@ -70,6 +70,7 @@ static void setup_enlistment_directory(int argc, const char **argv,
|
||||||
strbuf_release(&path);
|
strbuf_release(&path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LAST_ARG_MUST_BE_NULL
|
||||||
static int run_git(const char *arg, ...)
|
static int run_git(const char *arg, ...)
|
||||||
{
|
{
|
||||||
struct child_process cmd = CHILD_PROCESS_INIT;
|
struct child_process cmd = CHILD_PROCESS_INIT;
|
||||||
|
@ -288,6 +289,7 @@ static int unregister_dir(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* printf-style interface, expects `<key>=<value>` argument */
|
/* printf-style interface, expects `<key>=<value>` argument */
|
||||||
|
__attribute__((format (printf, 1, 2)))
|
||||||
static int set_config(const char *fmt, ...)
|
static int set_config(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
struct strbuf buf = STRBUF_INIT;
|
struct strbuf buf = STRBUF_INIT;
|
||||||
|
|
1
trace2.h
1
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), \
|
trace2_region_enter_printf_va_fl(__FILE__, __LINE__, (category), \
|
||||||
(label), (repo), (fmt), (ap))
|
(label), (repo), (fmt), (ap))
|
||||||
|
|
||||||
|
__attribute__((format (printf, 6, 7)))
|
||||||
void trace2_region_enter_printf_fl(const char *file, int line,
|
void trace2_region_enter_printf_fl(const char *file, int line,
|
||||||
const char *category, const char *label,
|
const char *category, const char *label,
|
||||||
const struct repository *repo,
|
const struct repository *repo,
|
||||||
|
|
|
@ -126,6 +126,7 @@ void status_printf(struct wt_status *s, const char *color,
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__attribute__((format (printf, 3, 4)))
|
||||||
static void status_printf_more(struct wt_status *s, const char *color,
|
static void status_printf_more(struct wt_status *s, const char *color,
|
||||||
const char *fmt, ...)
|
const char *fmt, ...)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue