Skip to content

GCC 15.1.1 new warnings #18793

@rzalamena

Description

@rzalamena

Here is a list of new gcc warnings in FRR:

  1. isisd/isis_tlvs.c:6979

       In function ‘restore_auth_md5’,
        inlined from ‘update_auth_hmac_md5’ at isisd/isis_tlvs.c:7006:3,
        inlined from ‘update_auth’ at isisd/isis_tlvs.c:7015:4,
        inlined from ‘isis_pack_tlvs’ at isisd/isis_tlvs.c:7186:2:
    isisd/isis_tlvs.c:6979:9: warning: ‘checksum’ may be used uninitialized [-Wmaybe-uninitialized]
     6979 |         memcpy(STREAM_DATA(s) + LSP_CHECKSUM_OFF, &checksum, sizeof(checksum));
          |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    isisd/isis_tlvs.c: In function ‘isis_pack_tlvs’:
    isisd/isis_tlvs.c:6986:18: note: ‘checksum’ was declared here
     6986 |         uint16_t checksum, rem_lifetime;
          |                  ^~~~~~~~
    In function ‘restore_auth_md5’,
        inlined from ‘update_auth_hmac_md5’ at isisd/isis_tlvs.c:7006:3,
        inlined from ‘update_auth’ at isisd/isis_tlvs.c:7015:4,
        inlined from ‘isis_pack_tlvs’ at isisd/isis_tlvs.c:7186:2:
    isisd/isis_tlvs.c:6977:9: warning: ‘rem_lifetime’ may be used uninitialized [-Wmaybe-uninitialized]
     6977 |         memcpy(STREAM_DATA(s) + LSP_REM_LIFETIME_OFF, &rem_lifetime,
          |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     6978 |                sizeof(rem_lifetime));
          |                ~~~~~~~~~~~~~~~~~~~~~
    isisd/isis_tlvs.c: In function ‘isis_pack_tlvs’:
    isisd/isis_tlvs.c:6986:28: note: ‘rem_lifetime’ was declared here
     6986 |         uint16_t checksum, rem_lifetime;
          |                            ^~~~~~~~~~~~
    
  2. lib/yang_wrappers.c:34

    In file included from ./lib/zebra.h:49,
                     from lib/yang_wrappers.c:7:
    lib/yang_wrappers.c: In function 'yang_dnode_get_bool':
    lib/yang_wrappers.c:23:34: warning: 'va_start' macro used with additional arguments other than identifier of the last named argument [-Wvarargs]
       23 |                 va_start(_Y__ap, (xpath_fmt));                                                     \
          |                                  ^~~~~~~~~~~
    lib/yang_wrappers.c:127:18: note: in expansion of macro 'YANG_DNODE_XPATH_GET_VALUE'
      127 |         dvalue = YANG_DNODE_XPATH_GET_VALUE(dnode, xpath_fmt);
          |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
    lib/yang_wrappers.c: In function 'yang_dnode_get_dec64':
    lib/yang_wrappers.c:23:34: warning: 'va_start' macro used with additional arguments other than identifier of the last named argument [-Wvarargs]
       23 |                 va_start(_Y__ap, (xpath_fmt));                                                     \
          |                                  ^~~~~~~~~~~
    lib/yang_wrappers.c:181:18: note: in expansion of macro 'YANG_DNODE_XPATH_GET_VALUE'
      181 |         dvalue = YANG_DNODE_XPATH_GET_VALUE(dnode, xpath_fmt);
          |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
    lib/yang_wrappers.c: In function 'yang_dnode_get_enum':
    lib/yang_wrappers.c:23:34: warning: 'va_start' macro used with additional arguments other than identifier of the last named argument [-Wvarargs]
       23 |                 va_start(_Y__ap, (xpath_fmt));                                                     \
          |                                  ^~~~~~~~~~~
    lib/yang_wrappers.c:279:18: note: in expansion of macro 'YANG_DNODE_XPATH_GET_VALUE'
      279 |         dvalue = YANG_DNODE_XPATH_GET_VALUE(dnode, xpath_fmt);
          |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
    lib/yang_wrappers.c: In function 'yang_dnode_get_int8':
    lib/yang_wrappers.c:23:34: warning: 'va_start' macro used with additional arguments other than identifier of the last named argument [-Wvarargs]
       23 |                 va_start(_Y__ap, (xpath_fmt));                                                     \
          |                                  ^~~~~~~~~~~
    lib/yang_wrappers.c:319:18: note: in expansion of macro 'YANG_DNODE_XPATH_GET_VALUE'
      319 |         dvalue = YANG_DNODE_XPATH_GET_VALUE(dnode, xpath_fmt);
          |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
    lib/yang_wrappers.c: In function 'yang_dnode_get_int16':
    lib/yang_wrappers.c:23:34: warning: 'va_start' macro used with additional arguments other than identifier of the last named argument [-Wvarargs]
       23 |                 va_start(_Y__ap, (xpath_fmt));                                                     \
          |                                  ^~~~~~~~~~~
    lib/yang_wrappers.c:358:18: note: in expansion of macro 'YANG_DNODE_XPATH_GET_VALUE'
      358 |         dvalue = YANG_DNODE_XPATH_GET_VALUE(dnode, xpath_fmt);
          |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
    lib/yang_wrappers.c: In function 'yang_dnode_get_int32':
    lib/yang_wrappers.c:23:34: warning: 'va_start' macro used with additional arguments other than identifier of the last named argument [-Wvarargs]
       23 |                 va_start(_Y__ap, (xpath_fmt));                                                     \
          |                                  ^~~~~~~~~~~
    lib/yang_wrappers.c:397:18: note: in expansion of macro 'YANG_DNODE_XPATH_GET_VALUE'
      397 |         dvalue = YANG_DNODE_XPATH_GET_VALUE(dnode, xpath_fmt);
          |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
    lib/yang_wrappers.c: In function 'yang_dnode_get_int64':
      CC       lib/zlog_5424.lo
    lib/yang_wrappers.c:23:34: warning: 'va_start' macro used with additional arguments other than identifier of the last named argument [-Wvarargs]
       23 |                 va_start(_Y__ap, (xpath_fmt));                                                     \
          |                                  ^~~~~~~~~~~
    lib/yang_wrappers.c:436:18: note: in expansion of macro 'YANG_DNODE_XPATH_GET_VALUE'
      436 |         dvalue = YANG_DNODE_XPATH_GET_VALUE(dnode, xpath_fmt);
          |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
    lib/yang_wrappers.c: In function 'yang_dnode_get_uint8':
    lib/yang_wrappers.c:23:34: warning: 'va_start' macro used with additional arguments other than identifier of the last named argument [-Wvarargs]
       23 |                 va_start(_Y__ap, (xpath_fmt));                                                     \
          |                                  ^~~~~~~~~~~
    lib/yang_wrappers.c:475:18: note: in expansion of macro 'YANG_DNODE_XPATH_GET_VALUE'
      475 |         dvalue = YANG_DNODE_XPATH_GET_VALUE(dnode, xpath_fmt);
          |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
    lib/yang_wrappers.c: In function 'yang_dnode_get_uint16':
    lib/yang_wrappers.c:23:34: warning: 'va_start' macro used with additional arguments other than identifier of the last named argument [-Wvarargs]
       23 |                 va_start(_Y__ap, (xpath_fmt));                                                     \
          |                                  ^~~~~~~~~~~
    lib/yang_wrappers.c:514:18: note: in expansion of macro 'YANG_DNODE_XPATH_GET_VALUE'
      514 |         dvalue = YANG_DNODE_XPATH_GET_VALUE(dnode, xpath_fmt);
          |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
    lib/yang_wrappers.c: In function 'yang_dnode_get_uint32':
    lib/yang_wrappers.c:23:34: warning: 'va_start' macro used with additional arguments other than identifier of the last named argument [-Wvarargs]
       23 |                 va_start(_Y__ap, (xpath_fmt));                                                     \
          |                                  ^~~~~~~~~~~
    lib/yang_wrappers.c:553:18: note: in expansion of macro 'YANG_DNODE_XPATH_GET_VALUE'
      553 |         dvalue = YANG_DNODE_XPATH_GET_VALUE(dnode, xpath_fmt);
          |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
    lib/yang_wrappers.c: In function 'yang_dnode_get_uint64':
    lib/yang_wrappers.c:23:34: warning: 'va_start' macro used with additional arguments other than identifier of the last named argument [-Wvarargs]
       23 |                 va_start(_Y__ap, (xpath_fmt));                                                     \
          |                                  ^~~~~~~~~~~
    lib/yang_wrappers.c:592:18: note: in expansion of macro 'YANG_DNODE_XPATH_GET_VALUE'
      592 |         dvalue = YANG_DNODE_XPATH_GET_VALUE(dnode, xpath_fmt);
          |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
    lib/yang_wrappers.c: In function 'yang_dnode_get_string':
    lib/yang_wrappers.c:34:34: warning: 'va_start' macro used with additional arguments other than identifier of the last named argument [-Wvarargs]
       34 |                 va_start(_y__ap, (xpath_fmt));                                                     \
          |                                  ^~~~~~~~~~~
    lib/yang_wrappers.c:624:16: note: in expansion of macro 'YANG_DNODE_XPATH_GET_CANON'
      624 |         return YANG_DNODE_XPATH_GET_CANON(dnode, xpath_fmt);
          |                ^~~~~~~~~~~~~~~~~~~~~~~~~~
    lib/yang_wrappers.c: In function 'yang_dnode_get_string_buf':
    lib/yang_wrappers.c:34:34: warning: 'va_start' macro used with additional arguments other than identifier of the last named argument [-Wvarargs]
       34 |                 va_start(_y__ap, (xpath_fmt));                                                     \
          |                                  ^~~~~~~~~~~
    lib/yang_wrappers.c:631:29: note: in expansion of macro 'YANG_DNODE_XPATH_GET_CANON'
      631 |         const char *canon = YANG_DNODE_XPATH_GET_CANON(dnode, xpath_fmt);
          |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~
    lib/yang_wrappers.c: In function 'yang_dnode_get_binary_buf':
    lib/yang_wrappers.c:34:34: warning: 'va_start' macro used with additional arguments other than identifier of the last named argument [-Wvarargs]
       34 |                 va_start(_y__ap, (xpath_fmt));                                                     \
          |                                  ^~~~~~~~~~~
    lib/yang_wrappers.c:708:17: note: in expansion of macro 'YANG_DNODE_XPATH_GET_CANON'
      708 |         canon = YANG_DNODE_XPATH_GET_CANON(dnode, xpath_fmt);
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
    lib/yang_wrappers.c: In function 'yang_dnode_get_prefix':
    lib/yang_wrappers.c:34:34: warning: 'va_start' macro used with additional arguments other than identifier of the last named argument [-Wvarargs]
       34 |                 va_start(_y__ap, (xpath_fmt));                                                     \
          |                                  ^~~~~~~~~~~
    lib/yang_wrappers.c:790:17: note: in expansion of macro 'YANG_DNODE_XPATH_GET_CANON'
      790 |         canon = YANG_DNODE_XPATH_GET_CANON(dnode, xpath_fmt);
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
    lib/yang_wrappers.c: In function 'yang_dnode_get_ipv4':
    lib/yang_wrappers.c:34:34: warning: 'va_start' macro used with additional arguments other than identifier of the last named argument [-Wvarargs]
       34 |                 va_start(_y__ap, (xpath_fmt));                                                     \
          |                                  ^~~~~~~~~~~
    lib/yang_wrappers.c:829:29: note: in expansion of macro 'YANG_DNODE_XPATH_GET_CANON'
      829 |         const char *canon = YANG_DNODE_XPATH_GET_CANON(dnode, xpath_fmt);
          |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~
    lib/yang_wrappers.c: In function 'yang_dnode_get_ipv4p':
    lib/yang_wrappers.c:34:34: warning: 'va_start' macro used with additional arguments other than identifier of the last named argument [-Wvarargs]
       34 |                 va_start(_y__ap, (xpath_fmt));                                                     \
          |                                  ^~~~~~~~~~~
    lib/yang_wrappers.c:872:29: note: in expansion of macro 'YANG_DNODE_XPATH_GET_CANON'
      872 |         const char *canon = YANG_DNODE_XPATH_GET_CANON(dnode, xpath_fmt);
          |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~
    lib/yang_wrappers.c: In function 'yang_dnode_get_ipv6':
    lib/yang_wrappers.c:34:34: warning: 'va_start' macro used with additional arguments other than identifier of the last named argument [-Wvarargs]
       34 |                 va_start(_y__ap, (xpath_fmt));                                                     \
          |                                  ^~~~~~~~~~~
    lib/yang_wrappers.c:911:29: note: in expansion of macro 'YANG_DNODE_XPATH_GET_CANON'
      911 |         const char *canon = YANG_DNODE_XPATH_GET_CANON(dnode, xpath_fmt);
          |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~
    lib/yang_wrappers.c: In function 'yang_dnode_get_ipv6p':
    lib/yang_wrappers.c:34:34: warning: 'va_start' macro used with additional arguments other than identifier of the last named argument [-Wvarargs]
       34 |                 va_start(_y__ap, (xpath_fmt));                                                     \
          |                                  ^~~~~~~~~~~
    lib/yang_wrappers.c:955:29: note: in expansion of macro 'YANG_DNODE_XPATH_GET_CANON'
      955 |         const char *canon = YANG_DNODE_XPATH_GET_CANON(dnode, xpath_fmt);
          |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~
    lib/yang_wrappers.c: In function 'yang_dnode_get_ip':
    lib/yang_wrappers.c:34:34: warning: 'va_start' macro used with additional arguments other than identifier of the last named argument [-Wvarargs]
       34 |                 va_start(_y__ap, (xpath_fmt));                                                     \
          |                                  ^~~~~~~~~~~
    lib/yang_wrappers.c:994:29: note: in expansion of macro 'YANG_DNODE_XPATH_GET_CANON'
      994 |         const char *canon = YANG_DNODE_XPATH_GET_CANON(dnode, xpath_fmt);
          |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~
    lib/yang_wrappers.c: In function 'yang_dnode_get_mac':
    lib/yang_wrappers.c:34:34: warning: 'va_start' macro used with additional arguments other than identifier of the last named argument [-Wvarargs]
       34 |                 va_start(_y__ap, (xpath_fmt));                                                     \
          |                                  ^~~~~~~~~~~
    lib/yang_wrappers.c:1029:29: note: in expansion of macro 'YANG_DNODE_XPATH_GET_CANON'
     1029 |         const char *canon = YANG_DNODE_XPATH_GET_CANON(dnode, xpath_fmt);
          |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~
    lib/yang_wrappers.c: In function 'yang_dnode_get_date_and_timespec':
    lib/yang_wrappers.c:34:34: warning: 'va_start' macro used with additional arguments other than identifier of the last named argument [-Wvarargs]
       34 |                 va_start(_y__ap, (xpath_fmt));                                                     \
          |                                  ^~~~~~~~~~~
    lib/yang_wrappers.c:1056:29: note: in expansion of macro 'YANG_DNODE_XPATH_GET_CANON'
     1056 |         const char *canon = YANG_DNODE_XPATH_GET_CANON(dnode, xpath_fmt);
          |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~
    lib/yang_wrappers.c: In function 'yang_dnode_get_date_and_time':
    lib/yang_wrappers.c:34:34: warning: 'va_start' macro used with additional arguments other than identifier of the last named argument [-Wvarargs]
       34 |                 va_start(_y__ap, (xpath_fmt));                                                     \
          |                                  ^~~~~~~~~~~
    lib/yang_wrappers.c:1069:29: note: in expansion of macro 'YANG_DNODE_XPATH_GET_CANON'
     1069 |         const char *canon = YANG_DNODE_XPATH_GET_CANON(dnode, xpath_fmt);
          |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~
    lib/yang_wrappers.c: In function 'yang_dnode_get_bandwidth_ieee_float32':
    lib/yang_wrappers.c:34:34: warning: 'va_start' macro used with additional arguments other than identifier of the last named argument [-Wvarargs]
       34 |                 va_start(_y__ap, (xpath_fmt));                                                     \
          |                                  ^~~~~~~~~~~
    lib/yang_wrappers.c:1082:29: note: in expansion of macro 'YANG_DNODE_XPATH_GET_CANON'
     1082 |         const char *canon = YANG_DNODE_XPATH_GET_CANON(dnode, xpath_fmt);
          |
    
  3. lib/northbound_oper.c:422

    In file included from ./lib/zebra.h:127,
                     from lib/northbound_oper.c:11:
    In function 'nb_op_xpath_to_trunk',
        inlined from 'nb_op_ys_init_node_infos' at lib/northbound_oper.c:569:8:
    lib/darr.h:110:55: warning: array subscript -1 is outside array bounds of 'char[]' [-Warray-bounds=]
      110 | #define darr_cap(A) (((A) == NULL) ? 0 : _darr_meta(A)->cap)
          |                                                       ^
    ./lib/assert/assert.h:58:39: note: in definition of macro 'assert'
       58 |                 if (__builtin_expect((expr_) ? 0 : 1, 0))                      \
          |                                       ^~~~~
    lib/darr.h:169:43: note: in expansion of macro 'darr_cap'
      169 |                         assert((long long)darr_cap(A) >= (long long)(L));      \
          |                                           ^~~~~~~~
    lib/darr.h:679:17: note: in expansion of macro 'darr_setlen'
      679 |                 darr_setlen((D), (size_t)_d__size);                                                \
          |                 ^~~~~~~~~~~
    lib/darr.h:682:30: note: in expansion of macro 'darr_in_strdup_cap'
      682 | #define darr_in_strdup(D, S) darr_in_strdup_cap(D, S, 1)
          |                              ^~~~~~~~~~~~~~~~~~
    lib/northbound_oper.c:422:9: note: in expansion of macro 'darr_in_strdup'
      422 |         darr_in_strdup(xpath, xpath_in);
          |         ^~~~~~~~~~~~~~
    
  4. bgpd/bgp_ecommunity.c:580:

      580 |         static const char str_color[5] = "color";
          |
    
  5. ospfd/ospf_zebra.c:1283

    In file included from ./lib/yang_wrappers.h:11,
                     from ./lib/yang.h:17,
                     from ./lib/northbound.h:14,
                     from ./lib/vty.h:26,
                     from ./lib/command.h:11,
                     from ospfd/ospf_zebra.c:10:
    In function ‘is_default_prefix4’,
        inlined from ‘is_default_prefix’ at ./lib/prefix.h:534:10,
        inlined from ‘ospf_zebra_read_route’ at ospfd/ospf_zebra.c:1316:7:
    ./lib/prefix.h:516:46: warning: ‘*(const struct prefix_ipv4 *)((char *)&pgen + offsetof(struct prefix, family)).prefixlen’ may be used uninitialized [-Wmaybe-uninitialized]
      516 |         return p && p->family == AF_INET && p->prefixlen == 0
          |                                             ~^~~~~~~~~~~
    ospfd/ospf_zebra.c: In function ‘ospf_zebra_read_route’:
    ospfd/ospf_zebra.c:1283:23: note: ‘pgen’ declared here
     1283 |         struct prefix pgen;
          |                       ^~~~
    In function ‘is_default_prefix6’,
        inlined from ‘is_default_prefix’ at ./lib/prefix.h:536:10,
        inlined from ‘ospf_zebra_read_route’ at ospfd/ospf_zebra.c:1316:7:
    ./lib/prefix.h:522:47: warning: ‘*(const struct prefix_ipv6 *)((char *)&pgen + offsetof(struct prefix, family)).prefixlen’ may be used uninitialized [-Wmaybe-uninitialized]
      522 |         return p && p->family == AF_INET6 && p->prefixlen == 0
          |                                              ~^~~~~~~~~~~
    ospfd/ospf_zebra.c: In function ‘ospf_zebra_read_route’:
    ospfd/ospf_zebra.c:1283:23: note: ‘pgen’ declared here
     1283 |         struct prefix pgen;
          |                       ^~~~
    
  6. lib/printf/vfprintf.c:184

    lib/printf/vfprintf.c: In function 'vbprintfrr':
    lib/printf/vfprintf.c:184:45: warning: initializer-string for array of 'char' truncates NUL terminator but destination lacks 'nonstring' attribute (17 chars into 16 available) [-Wunterminated-string-initialization]
      184 |         static const char xdigs_lower[16] = "0123456789abcdef";
          |                                             ^~~~~~~~~~~~~~~~~~
    lib/printf/vfprintf.c:185:45: warning: initializer-string for array of 'char' truncates NUL terminator but destination lacks 'nonstring' attribute (17 chars into 16 available) [-Wunterminated-string-initialization]
      185 |         static const char xdigs_upper[16] = "0123456789ABCDEF";
          |
    

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions