tag: explicitly initialize ‘fmt’

Fixes the following compiler warning/error:

  In file included from /usr/include/stdio.h:906,
                   from ../tag.c:6:
  In function ‘snprintf’,
      inlined from ‘tags_expand_template’ at ../tag.c:708:13:
  /usr/include/bits/stdio2.h:54:10: error: ‘fmt’ may be used uninitialized [-Werror=maybe-uninitialized]
     54 |   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
        |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     55 |                                    __glibc_objsize (__s), __fmt,
        |                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     56 |                                    __va_arg_pack ());
        |                                    ~~~~~~~~~~~~~~~~~
  ../tag.c: In function ‘tags_expand_template’:
  ../tag.c:677:25: note: ‘fmt’ was declared here
    677 |             const char *fmt;
        |                         ^~~
  cc1: all warnings being treated as errors

Closes #311
This commit is contained in:
Daniel Eklöf 2023-07-14 12:52:19 +02:00
parent 5db61745a4
commit e1fc3a0e29
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

4
tag.c
View file

@ -674,7 +674,7 @@ tags_expand_template(const char *template, const struct tag_set *tags)
const long max = tag->max(tag);
long value = kind == VALUE_MIN ? min : max;
const char *fmt;
const char *fmt = NULL;
switch (format) {
case FMT_DEFAULT: fmt = zero_pad ? "%0*ld" : "%*ld"; break;
case FMT_HEX: fmt = zero_pad ? "%0*lx" : "%*lx"; break;
@ -704,6 +704,8 @@ tags_expand_template(const char *template, const struct tag_set *tags)
}
}
assert(fmt != NULL);
char str[24];
snprintf(str, sizeof(str), fmt, digits, value);
sbuf_append(&formatted, str);