diff mbox

[ovs-dev] Fix format specifier technicalities.

Message ID 20170307235634.11058-1-blp@ovn.org
State Accepted
Headers show

Commit Message

Ben Pfaff March 7, 2017, 11:56 p.m. UTC
Various printf() format specifiers in the tree had minor technical issues
which the Mac OS build reported, e.g. here:
https://s3.amazonaws.com/archive.travis-ci.org/jobs/208718342/log.txt

These tend to fall into two categories of harmless warnings:

1. Wrong width for types that are all promoted to 'int'.  For example,
both uint8_t and uint16_t are both promoted to 'int' as part of a call
to printf(), but using PRIu8 for a uint16_t causes a warning.

2. Wrong format specifier for type promoted to 'int' due to arithmetic.
For example, if 'x' is a uint8_t, then x >> 1 has type 'int' due to
C's promotion rules, so the correct format specifier is %d and using
PRIu8 will cause a warning.

This commit fixes the warnings.  I didn't see anything that rose to the
level of a bug.

These warnings only showed up on Mac OS X because of differences in the
format specifiers that Mac OS uses for PRI*.

Reported-by: Shu Shen <shu.shen@gmail.com>
Signed-off-by: Ben Pfaff <blp@ovn.org>
---
 lib/bfd.c                    |  4 ++--
 lib/match.c                  |  6 +++---
 lib/multipath.c              |  4 ++--
 lib/odp-util.c               | 10 +++++-----
 lib/ofp-actions.c            | 12 ++++++------
 lib/ofp-print.c              |  2 +-
 lib/ofp-util.c               |  2 +-
 lib/ovs-router.c             |  4 ++--
 ofproto/ofproto-dpif-xlate.c |  2 +-
 tests/test-netflow.c         |  4 ++--
 utilities/ovs-ofctl.c        |  2 +-
 vswitchd/bridge.c            |  4 ++--
 12 files changed, 28 insertions(+), 28 deletions(-)

Comments

Daniele Di Proietto March 10, 2017, 3 a.m. UTC | #1
2017-03-07 15:56 GMT-08:00 Ben Pfaff <blp@ovn.org>:
> Various printf() format specifiers in the tree had minor technical issues
> which the Mac OS build reported, e.g. here:
> https://s3.amazonaws.com/archive.travis-ci.org/jobs/208718342/log.txt
>
> These tend to fall into two categories of harmless warnings:
>
> 1. Wrong width for types that are all promoted to 'int'.  For example,
> both uint8_t and uint16_t are both promoted to 'int' as part of a call
> to printf(), but using PRIu8 for a uint16_t causes a warning.
>
> 2. Wrong format specifier for type promoted to 'int' due to arithmetic.
> For example, if 'x' is a uint8_t, then x >> 1 has type 'int' due to
> C's promotion rules, so the correct format specifier is %d and using
> PRIu8 will cause a warning.
>
> This commit fixes the warnings.  I didn't see anything that rose to the
> level of a bug.
>
> These warnings only showed up on Mac OS X because of differences in the
> format specifiers that Mac OS uses for PRI*.
>
> Reported-by: Shu Shen <shu.shen@gmail.com>
> Signed-off-by: Ben Pfaff <blp@ovn.org>
> ---
>  lib/bfd.c                    |  4 ++--
>  lib/match.c                  |  6 +++---
>  lib/multipath.c              |  4 ++--
>  lib/odp-util.c               | 10 +++++-----
>  lib/ofp-actions.c            | 12 ++++++------
>  lib/ofp-print.c              |  2 +-
>  lib/ofp-util.c               |  2 +-
>  lib/ovs-router.c             |  4 ++--
>  ofproto/ofproto-dpif-xlate.c |  2 +-
>  tests/test-netflow.c         |  4 ++--
>  utilities/ovs-ofctl.c        |  2 +-
>  vswitchd/bridge.c            |  4 ++--
>  12 files changed, 28 insertions(+), 28 deletions(-)
>
> diff --git a/lib/bfd.c b/lib/bfd.c
> index 87f3322ee461..1fb1cfb2bc34 100644
> --- a/lib/bfd.c
> +++ b/lib/bfd.c
> @@ -1,4 +1,4 @@
> -/* Copyright (c) 2013, 2014, 2015, 2016 Nicira, Inc.
> +/* Copyright (c) 2013, 2014, 2015, 2016, 2017 Nicira, Inc.
>   *
>   * Licensed under the Apache License, Version 2.0 (the "License");
>   * you may not use this file except in compliance with the License.
> @@ -1061,7 +1061,7 @@ log_msg(enum vlog_level level, const struct msg *p, const char *message,
>
>      ds_put_format(&ds,
>                    "%s: %s."
> -                  "\n\tvers:%"PRIu8" diag:\"%s\" state:%s mult:%"PRIu8
> +                  "\n\tvers:%d diag:\"%s\" state:%s mult:%"PRIu8
>                    " length:%"PRIu8
>                    "\n\tflags: %s"
>                    "\n\tmy_disc:0x%"PRIx32" your_disc:0x%"PRIx32
> diff --git a/lib/match.c b/lib/match.c
> index 3fcaec5b08ca..6bbd34820aa1 100644
> --- a/lib/match.c
> +++ b/lib/match.c
> @@ -1,5 +1,5 @@
>  /*
> - * Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Nicira, Inc.
> + * Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Nicira, Inc.
>   *
>   * Licensed under the Apache License, Version 2.0 (the "License");
>   * you may not use this file except in compliance with the License.
> @@ -1281,11 +1281,11 @@ match_format(const struct match *match, struct ds *s, int priority)
>                        colors.param, colors.end, f->nw_tos & IP_DSCP_MASK);

The above ds_put_format has the same problem as well.

With this I'm able to build without warnings on Mac OS X.
Perhaps we can also remove -Wno-error=format from .travis/osx-build.sh

Thanks

Acked-by: Daniele Di Proietto <diproiettod@vmware.com>

>      }
>      if (wc->masks.nw_tos & IP_ECN_MASK) {
> -        ds_put_format(s, "%snw_ecn=%s%"PRIu8",",
> +        ds_put_format(s, "%snw_ecn=%s%d,",
>                        colors.param, colors.end, f->nw_tos & IP_ECN_MASK);
>      }
>      if (wc->masks.nw_ttl) {
> -        ds_put_format(s, "%snw_ttl=%s%"PRIu8",",
> +        ds_put_format(s, "%snw_ttl=%s%d,",
>                        colors.param, colors.end, f->nw_ttl);
>      }
>      if (wc->masks.mpls_lse[0] & htonl(MPLS_LABEL_MASK)) {
> diff --git a/lib/multipath.c b/lib/multipath.c
> index 8a1d1fadcf74..7eb919423a15 100644
> --- a/lib/multipath.c
> +++ b/lib/multipath.c
> @@ -1,5 +1,5 @@
>  /*
> - * Copyright (c) 2010, 2011, 2012, 2013, 2014, 2016 Nicira, Inc.
> + * Copyright (c) 2010, 2011, 2012, 2013, 2014, 2016, 2017 Nicira, Inc.
>   *
>   * Licensed under the Apache License, Version 2.0 (the "License");
>   * you may not use this file except in compliance with the License.
> @@ -248,7 +248,7 @@ multipath_format(const struct ofpact_multipath *mp, struct ds *s)
>          algorithm = "<unknown>";
>      }
>
> -    ds_put_format(s, "%smultipath(%s%s,%"PRIu16",%s,%d,%"PRIu16",",
> +    ds_put_format(s, "%smultipath(%s%s,%"PRIu16",%s,%d,%"PRIu32",",
>                    colors.paren, colors.end, fields, mp->basis, algorithm,
>                    mp->max_link + 1, mp->arg);
>      mf_format_subfield(&mp->dst, s);
> diff --git a/lib/odp-util.c b/lib/odp-util.c
> index a8218566e05e..527496e4d68f 100644
> --- a/lib/odp-util.c
> +++ b/lib/odp-util.c
> @@ -1,5 +1,5 @@
>  /*
> - * Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Nicira, Inc.
> + * Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Nicira, Inc.
>   *
>   * Licensed under the Apache License, Version 2.0 (the "License");
>   * you may not use this file except in compliance with the License.
> @@ -183,7 +183,7 @@ format_generic_odp_action(struct ds *ds, const struct nlattr *a)
>  {
>      size_t len = nl_attr_get_size(a);
>
> -    ds_put_format(ds, "action%"PRId16, nl_attr_type(a));
> +    ds_put_format(ds, "action%d", nl_attr_type(a));
>      if (len) {
>          const uint8_t *unspec;
>          unsigned int i;
> @@ -315,7 +315,7 @@ format_odp_userspace_action(struct ds *ds, const struct nlattr *attr)
>              if (userdata_len == sizeof cookie.sflow
>                  && cookie.type == USER_ACTION_COOKIE_SFLOW) {
>                  ds_put_format(ds, ",sFlow("
> -                              "vid=%"PRIu16",pcp=%"PRIu8",output=%"PRIu32")",
> +                              "vid=%"PRIu16",pcp=%d,output=%"PRIu32")",
>                                vlan_tci_to_vid(cookie.sflow.vlan_tci),
>                                vlan_tci_to_pcp(cookie.sflow.vlan_tci),
>                                cookie.sflow.output);
> @@ -475,7 +475,7 @@ format_odp_tnl_push_header(struct ds *ds, struct ovs_action_push_tnl *data)
>      l3 = eth + 1;
>
>      /* Ethernet */
> -    ds_put_format(ds, "header(size=%"PRIu8",type=%"PRIu8",eth(dst=",
> +    ds_put_format(ds, "header(size=%"PRIu32",type=%"PRIu32",eth(dst=",
>                    data->header_len, data->tnl_type);
>      ds_put_format(ds, ETH_ADDR_FMT, ETH_ADDR_ARGS(eth->eth_dst));
>      ds_put_format(ds, ",src=");
> @@ -501,7 +501,7 @@ format_odp_tnl_push_header(struct ds *ds, struct ovs_action_push_tnl *data)
>          ipv6_format_addr(&ip6->ip6_src, ds);
>          ds_put_format(ds, ",dst=");
>          ipv6_format_addr(&ip6->ip6_dst, ds);
> -        ds_put_format(ds, ",label=%i,proto=%"PRIu8",tclass=0x%"PRIx8
> +        ds_put_format(ds, ",label=%i,proto=%"PRIu8",tclass=0x%"PRIx32
>                            ",hlimit=%"PRIu8"),",
>                        ntohl(ip6->ip6_flow) & IPV6_LABEL_MASK, ip6->ip6_nxt,
>                        (ntohl(ip6->ip6_flow) >> 20) & 0xff, ip6->ip6_hlim);
> diff --git a/lib/ofp-actions.c b/lib/ofp-actions.c
> index ce80f57e8df3..01dc571de584 100644
> --- a/lib/ofp-actions.c
> +++ b/lib/ofp-actions.c
> @@ -1312,7 +1312,7 @@ decode_bundle(bool load, const struct nx_action_bundle *nab,
>                 && bundle->algorithm != NX_BD_ALG_ACTIVE_BACKUP) {
>          VLOG_WARN_RL(&rl, "unsupported algorithm %d", (int) bundle->algorithm);
>      } else if (slave_type != mf_nxm_header(MFF_IN_PORT)) {
> -        VLOG_WARN_RL(&rl, "unsupported slave type %"PRIu16, slave_type);
> +        VLOG_WARN_RL(&rl, "unsupported slave type %"PRIu32, slave_type);
>      } else {
>          error = 0;
>      }
> @@ -1345,7 +1345,7 @@ decode_bundle(bool load, const struct nx_action_bundle *nab,
>      if (slaves_size < bundle->n_slaves * sizeof(ovs_be16)) {
>          VLOG_WARN_RL(&rl, "Nicira action %s only has %"PRIuSIZE" bytes "
>                       "allocated for slaves.  %"PRIuSIZE" bytes are required "
> -                     "for %"PRIu16" slaves.",
> +                     "for %u slaves.",
>                       load ? "bundle_load" : "bundle", slaves_size,
>                       bundle->n_slaves * sizeof(ovs_be16), bundle->n_slaves);
>          error = OFPERR_OFPBAC_BAD_LEN;
> @@ -1716,7 +1716,7 @@ static void
>  format_PUSH_VLAN(const struct ofpact_null *a OVS_UNUSED, struct ds *s)
>  {
>      /* XXX 802.1AD case*/
> -    ds_put_format(s, "%spush_vlan:%s%#"PRIx16,
> +    ds_put_format(s, "%spush_vlan:%s%#x",
>                    colors.param, colors.end, ETH_TYPE_VLAN_8021Q);
>  }
>
> @@ -3271,7 +3271,7 @@ decode_NXAST_RAW_DEC_TTL_CNT_IDS(const struct nx_action_cnt_ids *nac_ids,
>      if (ids_size < ids->n_controllers * sizeof(ovs_be16)) {
>          VLOG_WARN_RL(&rl, "Nicira action dec_ttl_cnt_ids only has %"PRIuSIZE" "
>                       "bytes allocated for controller ids.  %"PRIuSIZE" bytes "
> -                     "are required for %"PRIu16" controllers.",
> +                     "are required for %u controllers.",
>                       ids_size, ids->n_controllers * sizeof(ovs_be16),
>                       ids->n_controllers);
>          return OFPERR_OFPBAC_BAD_LEN;
> @@ -4554,7 +4554,7 @@ encode_CONJUNCTION(const struct ofpact_conjunction *oc,
>  static void
>  format_CONJUNCTION(const struct ofpact_conjunction *oc, struct ds *s)
>  {
> -    ds_put_format(s, "%sconjunction(%s%"PRIu32",%"PRIu8"/%"PRIu8"%s)%s",
> +    ds_put_format(s, "%sconjunction(%s%"PRIu32",%d/%"PRIu8"%s)%s",
>                    colors.paren, colors.end,
>                    oc->id, oc->clause + 1, oc->n_clauses,
>                    colors.paren, colors.end);
> @@ -5455,7 +5455,7 @@ parse_CT(char *arg, struct ofpbuf *ofpacts,
>          } else if (!strcmp(key, "table")) {
>              error = str_to_u8(value, "recirc_table", &oc->recirc_table);
>              if (!error && oc->recirc_table == NX_CT_RECIRC_NONE) {
> -                error = xasprintf("invalid table %#"PRIx16, oc->recirc_table);
> +                error = xasprintf("invalid table %#"PRIx8, oc->recirc_table);
>              }
>          } else if (!strcmp(key, "zone")) {
>              error = str_to_u16(value, "zone", &oc->zone_imm);
> diff --git a/lib/ofp-print.c b/lib/ofp-print.c
> index f7f7df26f5e1..3c357f7df863 100644
> --- a/lib/ofp-print.c
> +++ b/lib/ofp-print.c
> @@ -875,7 +875,7 @@ ofp_print_flow_mod(struct ds *s, const struct ofp_header *oh, int verbosity)
>          ds_put_format(s, "importance:%"PRIu16" ", fm.importance);
>      }
>      if (fm.priority != OFP_DEFAULT_PRIORITY && need_priority) {
> -        ds_put_format(s, "pri:%"PRIu16" ", fm.priority);
> +        ds_put_format(s, "pri:%d ", fm.priority);
>      }
>      if (fm.buffer_id != UINT32_MAX) {
>          ds_put_format(s, "buf:0x%"PRIx32" ", fm.buffer_id);
> diff --git a/lib/ofp-util.c b/lib/ofp-util.c
> index 0c9343ec400b..a8f4ae333e98 100644
> --- a/lib/ofp-util.c
> +++ b/lib/ofp-util.c
> @@ -7064,7 +7064,7 @@ ofputil_port_from_string(const char *s, ofp_port_t *portp)
>                             name, port32);
>          } else if (port32 < ofp11_to_u32(OFPP11_MAX)) {
>              VLOG_WARN("port %u is outside the supported range 0 through "
> -                      "%"PRIx16" or 0x%x through 0x%"PRIx32, port32,
> +                      "%x or 0x%x through 0x%"PRIx32, port32,
>                        UINT16_MAX, ofp11_to_u32(OFPP11_MAX), UINT32_MAX);
>              return false;
>          } else {
> diff --git a/lib/ovs-router.c b/lib/ovs-router.c
> index 0c5430af9d39..96871d1b6819 100644
> --- a/lib/ovs-router.c
> +++ b/lib/ovs-router.c
> @@ -1,5 +1,5 @@
>  /*
> - * Copyright (c) 2014, 2015, 2016 Nicira, Inc.
> + * Copyright (c) 2014, 2015, 2016, 2017 Nicira, Inc.
>   *
>   * Licensed under the Apache License, Version 2.0 (the "License");
>   * you may not use this file except in compliance with the License.
> @@ -411,7 +411,7 @@ ovs_router_show(struct unixctl_conn *conn, int argc OVS_UNUSED,
>          if (IN6_IS_ADDR_V4MAPPED(&rt->nw_addr)) {
>              plen -= 96;
>          }
> -        ds_put_format(&ds, "/%"PRIu16, plen);
> +        ds_put_format(&ds, "/%"PRIu8, plen);
>          if (rt->mark) {
>              ds_put_format(&ds, " MARK %"PRIu32, rt->mark);
>          }
> diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c
> index eda34f044192..de4ad0faa0fc 100644
> --- a/ofproto/ofproto-dpif-xlate.c
> +++ b/ofproto/ofproto-dpif-xlate.c
> @@ -1909,7 +1909,7 @@ input_vid_is_valid(const struct xlate_ctx *ctx,
>          if (vid) {
>              xlate_report_error(ctx, "dropping VLAN %"PRIu16" tagged "
>                                 "packet received on port %s configured as VLAN "
> -                               "%"PRIu16" access port", vid, in_xbundle->name,
> +                               "%d access port", vid, in_xbundle->name,
>                                 in_xbundle->vlan);
>              return false;
>          }
> diff --git a/tests/test-netflow.c b/tests/test-netflow.c
> index 6d199ba30261..692c4ddd2590 100644
> --- a/tests/test-netflow.c
> +++ b/tests/test-netflow.c
> @@ -1,5 +1,5 @@
>  /*
> - * Copyright (c) 2011, 2012, 2013, 2014, 2015 Nicira, Inc.
> + * Copyright (c) 2011, 2012, 2013, 2014, 2015, 2017 Nicira, Inc.
>   *
>   * Licensed under the Apache License, Version 2.0 (the "License");
>   * you may not use this file except in compliance with the License.
> @@ -106,7 +106,7 @@ print_netflow(struct ofpbuf *buf)
>              break;
>
>          case IPPROTO_ICMP:
> -            printf(", ICMP %"PRIu16":%"PRIu16,
> +            printf(", ICMP %u:%u",
>                     ntohs(rec->dst_port) >> 8,
>                     ntohs(rec->dst_port) & 0xff);
>              if (rec->src_port != htons(0)) {
> diff --git a/utilities/ovs-ofctl.c b/utilities/ovs-ofctl.c
> index 77332e0f8c16..83fbf8a1c7f8 100644
> --- a/utilities/ovs-ofctl.c
> +++ b/utilities/ovs-ofctl.c
> @@ -4189,7 +4189,7 @@ ofctl_check_vlan(struct ovs_cmdl_context *ctx)
>
>          printf("%04"PRIx16"/%04"PRIx16",", vid, mask);
>          if (vid && vlan_tci_to_pcp(nxm_match.wc.masks.vlan_tci)) {
> -            printf("%02"PRIx8"\n", vlan_tci_to_pcp(nxm_match.flow.vlan_tci));
> +            printf("%02x\n", vlan_tci_to_pcp(nxm_match.flow.vlan_tci));
>          } else {
>              printf("--\n");
>          }
> diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c
> index 2e1001350954..3d9774a69b26 100644
> --- a/vswitchd/bridge.c
> +++ b/vswitchd/bridge.c
> @@ -1,4 +1,4 @@
> -/* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Nicira, Inc.
> +/* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Nicira, Inc.
>   *
>   * Licensed under the Apache License, Version 2.0 (the "License");
>   * you may not use this file except in compliance with the License.
> @@ -2468,7 +2468,7 @@ port_refresh_stp_status(struct port *port)
>
>      /* Set Status column. */
>      smap_init(&smap);
> -    smap_add_format(&smap, "stp_port_id", STP_PORT_ID_FMT, status.port_id);
> +    smap_add_format(&smap, "stp_port_id", "%d", status.port_id);
>      smap_add(&smap, "stp_state", stp_state_name(status.state));
>      smap_add_format(&smap, "stp_sec_in_state", "%u", status.sec_in_state);
>      smap_add(&smap, "stp_role", stp_role_name(status.role));
> --
> 2.10.2
>
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
Ben Pfaff March 17, 2017, 8:42 p.m. UTC | #2
On Thu, Mar 09, 2017 at 07:00:28PM -0800, Daniele Di Proietto wrote:
> 2017-03-07 15:56 GMT-08:00 Ben Pfaff <blp@ovn.org>:
> > Various printf() format specifiers in the tree had minor technical issues
> > which the Mac OS build reported, e.g. here:
> > https://s3.amazonaws.com/archive.travis-ci.org/jobs/208718342/log.txt
> >
> > These tend to fall into two categories of harmless warnings:
> >
> > 1. Wrong width for types that are all promoted to 'int'.  For example,
> > both uint8_t and uint16_t are both promoted to 'int' as part of a call
> > to printf(), but using PRIu8 for a uint16_t causes a warning.
> >
> > 2. Wrong format specifier for type promoted to 'int' due to arithmetic.
> > For example, if 'x' is a uint8_t, then x >> 1 has type 'int' due to
> > C's promotion rules, so the correct format specifier is %d and using
> > PRIu8 will cause a warning.
> >
> > This commit fixes the warnings.  I didn't see anything that rose to the
> > level of a bug.
> >
> > These warnings only showed up on Mac OS X because of differences in the
> > format specifiers that Mac OS uses for PRI*.
> >
> > Reported-by: Shu Shen <shu.shen@gmail.com>
> > Signed-off-by: Ben Pfaff <blp@ovn.org>
> > ---
> >  lib/bfd.c                    |  4 ++--
> >  lib/match.c                  |  6 +++---
> >  lib/multipath.c              |  4 ++--
> >  lib/odp-util.c               | 10 +++++-----
> >  lib/ofp-actions.c            | 12 ++++++------
> >  lib/ofp-print.c              |  2 +-
> >  lib/ofp-util.c               |  2 +-
> >  lib/ovs-router.c             |  4 ++--
> >  ofproto/ofproto-dpif-xlate.c |  2 +-
> >  tests/test-netflow.c         |  4 ++--
> >  utilities/ovs-ofctl.c        |  2 +-
> >  vswitchd/bridge.c            |  4 ++--
> >  12 files changed, 28 insertions(+), 28 deletions(-)
> >
> > diff --git a/lib/bfd.c b/lib/bfd.c
> > index 87f3322ee461..1fb1cfb2bc34 100644
> > --- a/lib/bfd.c
> > +++ b/lib/bfd.c
> > @@ -1,4 +1,4 @@
> > -/* Copyright (c) 2013, 2014, 2015, 2016 Nicira, Inc.
> > +/* Copyright (c) 2013, 2014, 2015, 2016, 2017 Nicira, Inc.
> >   *
> >   * Licensed under the Apache License, Version 2.0 (the "License");
> >   * you may not use this file except in compliance with the License.
> > @@ -1061,7 +1061,7 @@ log_msg(enum vlog_level level, const struct msg *p, const char *message,
> >
> >      ds_put_format(&ds,
> >                    "%s: %s."
> > -                  "\n\tvers:%"PRIu8" diag:\"%s\" state:%s mult:%"PRIu8
> > +                  "\n\tvers:%d diag:\"%s\" state:%s mult:%"PRIu8
> >                    " length:%"PRIu8
> >                    "\n\tflags: %s"
> >                    "\n\tmy_disc:0x%"PRIx32" your_disc:0x%"PRIx32
> > diff --git a/lib/match.c b/lib/match.c
> > index 3fcaec5b08ca..6bbd34820aa1 100644
> > --- a/lib/match.c
> > +++ b/lib/match.c
> > @@ -1,5 +1,5 @@
> >  /*
> > - * Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Nicira, Inc.
> > + * Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Nicira, Inc.
> >   *
> >   * Licensed under the Apache License, Version 2.0 (the "License");
> >   * you may not use this file except in compliance with the License.
> > @@ -1281,11 +1281,11 @@ match_format(const struct match *match, struct ds *s, int priority)
> >                        colors.param, colors.end, f->nw_tos & IP_DSCP_MASK);
> 
> The above ds_put_format has the same problem as well.

Thanks, I fixed this too.

> With this I'm able to build without warnings on Mac OS X.
> Perhaps we can also remove -Wno-error=format from .travis/osx-build.sh

Good idea, I'll submit a separate patch for that.
diff mbox

Patch

diff --git a/lib/bfd.c b/lib/bfd.c
index 87f3322ee461..1fb1cfb2bc34 100644
--- a/lib/bfd.c
+++ b/lib/bfd.c
@@ -1,4 +1,4 @@ 
-/* Copyright (c) 2013, 2014, 2015, 2016 Nicira, Inc.
+/* Copyright (c) 2013, 2014, 2015, 2016, 2017 Nicira, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -1061,7 +1061,7 @@  log_msg(enum vlog_level level, const struct msg *p, const char *message,
 
     ds_put_format(&ds,
                   "%s: %s."
-                  "\n\tvers:%"PRIu8" diag:\"%s\" state:%s mult:%"PRIu8
+                  "\n\tvers:%d diag:\"%s\" state:%s mult:%"PRIu8
                   " length:%"PRIu8
                   "\n\tflags: %s"
                   "\n\tmy_disc:0x%"PRIx32" your_disc:0x%"PRIx32
diff --git a/lib/match.c b/lib/match.c
index 3fcaec5b08ca..6bbd34820aa1 100644
--- a/lib/match.c
+++ b/lib/match.c
@@ -1,5 +1,5 @@ 
 /*
- * Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Nicira, Inc.
+ * Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Nicira, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -1281,11 +1281,11 @@  match_format(const struct match *match, struct ds *s, int priority)
                       colors.param, colors.end, f->nw_tos & IP_DSCP_MASK);
     }
     if (wc->masks.nw_tos & IP_ECN_MASK) {
-        ds_put_format(s, "%snw_ecn=%s%"PRIu8",",
+        ds_put_format(s, "%snw_ecn=%s%d,",
                       colors.param, colors.end, f->nw_tos & IP_ECN_MASK);
     }
     if (wc->masks.nw_ttl) {
-        ds_put_format(s, "%snw_ttl=%s%"PRIu8",",
+        ds_put_format(s, "%snw_ttl=%s%d,",
                       colors.param, colors.end, f->nw_ttl);
     }
     if (wc->masks.mpls_lse[0] & htonl(MPLS_LABEL_MASK)) {
diff --git a/lib/multipath.c b/lib/multipath.c
index 8a1d1fadcf74..7eb919423a15 100644
--- a/lib/multipath.c
+++ b/lib/multipath.c
@@ -1,5 +1,5 @@ 
 /*
- * Copyright (c) 2010, 2011, 2012, 2013, 2014, 2016 Nicira, Inc.
+ * Copyright (c) 2010, 2011, 2012, 2013, 2014, 2016, 2017 Nicira, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -248,7 +248,7 @@  multipath_format(const struct ofpact_multipath *mp, struct ds *s)
         algorithm = "<unknown>";
     }
 
-    ds_put_format(s, "%smultipath(%s%s,%"PRIu16",%s,%d,%"PRIu16",",
+    ds_put_format(s, "%smultipath(%s%s,%"PRIu16",%s,%d,%"PRIu32",",
                   colors.paren, colors.end, fields, mp->basis, algorithm,
                   mp->max_link + 1, mp->arg);
     mf_format_subfield(&mp->dst, s);
diff --git a/lib/odp-util.c b/lib/odp-util.c
index a8218566e05e..527496e4d68f 100644
--- a/lib/odp-util.c
+++ b/lib/odp-util.c
@@ -1,5 +1,5 @@ 
 /*
- * Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Nicira, Inc.
+ * Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Nicira, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -183,7 +183,7 @@  format_generic_odp_action(struct ds *ds, const struct nlattr *a)
 {
     size_t len = nl_attr_get_size(a);
 
-    ds_put_format(ds, "action%"PRId16, nl_attr_type(a));
+    ds_put_format(ds, "action%d", nl_attr_type(a));
     if (len) {
         const uint8_t *unspec;
         unsigned int i;
@@ -315,7 +315,7 @@  format_odp_userspace_action(struct ds *ds, const struct nlattr *attr)
             if (userdata_len == sizeof cookie.sflow
                 && cookie.type == USER_ACTION_COOKIE_SFLOW) {
                 ds_put_format(ds, ",sFlow("
-                              "vid=%"PRIu16",pcp=%"PRIu8",output=%"PRIu32")",
+                              "vid=%"PRIu16",pcp=%d,output=%"PRIu32")",
                               vlan_tci_to_vid(cookie.sflow.vlan_tci),
                               vlan_tci_to_pcp(cookie.sflow.vlan_tci),
                               cookie.sflow.output);
@@ -475,7 +475,7 @@  format_odp_tnl_push_header(struct ds *ds, struct ovs_action_push_tnl *data)
     l3 = eth + 1;
 
     /* Ethernet */
-    ds_put_format(ds, "header(size=%"PRIu8",type=%"PRIu8",eth(dst=",
+    ds_put_format(ds, "header(size=%"PRIu32",type=%"PRIu32",eth(dst=",
                   data->header_len, data->tnl_type);
     ds_put_format(ds, ETH_ADDR_FMT, ETH_ADDR_ARGS(eth->eth_dst));
     ds_put_format(ds, ",src=");
@@ -501,7 +501,7 @@  format_odp_tnl_push_header(struct ds *ds, struct ovs_action_push_tnl *data)
         ipv6_format_addr(&ip6->ip6_src, ds);
         ds_put_format(ds, ",dst=");
         ipv6_format_addr(&ip6->ip6_dst, ds);
-        ds_put_format(ds, ",label=%i,proto=%"PRIu8",tclass=0x%"PRIx8
+        ds_put_format(ds, ",label=%i,proto=%"PRIu8",tclass=0x%"PRIx32
                           ",hlimit=%"PRIu8"),",
                       ntohl(ip6->ip6_flow) & IPV6_LABEL_MASK, ip6->ip6_nxt,
                       (ntohl(ip6->ip6_flow) >> 20) & 0xff, ip6->ip6_hlim);
diff --git a/lib/ofp-actions.c b/lib/ofp-actions.c
index ce80f57e8df3..01dc571de584 100644
--- a/lib/ofp-actions.c
+++ b/lib/ofp-actions.c
@@ -1312,7 +1312,7 @@  decode_bundle(bool load, const struct nx_action_bundle *nab,
                && bundle->algorithm != NX_BD_ALG_ACTIVE_BACKUP) {
         VLOG_WARN_RL(&rl, "unsupported algorithm %d", (int) bundle->algorithm);
     } else if (slave_type != mf_nxm_header(MFF_IN_PORT)) {
-        VLOG_WARN_RL(&rl, "unsupported slave type %"PRIu16, slave_type);
+        VLOG_WARN_RL(&rl, "unsupported slave type %"PRIu32, slave_type);
     } else {
         error = 0;
     }
@@ -1345,7 +1345,7 @@  decode_bundle(bool load, const struct nx_action_bundle *nab,
     if (slaves_size < bundle->n_slaves * sizeof(ovs_be16)) {
         VLOG_WARN_RL(&rl, "Nicira action %s only has %"PRIuSIZE" bytes "
                      "allocated for slaves.  %"PRIuSIZE" bytes are required "
-                     "for %"PRIu16" slaves.",
+                     "for %u slaves.",
                      load ? "bundle_load" : "bundle", slaves_size,
                      bundle->n_slaves * sizeof(ovs_be16), bundle->n_slaves);
         error = OFPERR_OFPBAC_BAD_LEN;
@@ -1716,7 +1716,7 @@  static void
 format_PUSH_VLAN(const struct ofpact_null *a OVS_UNUSED, struct ds *s)
 {
     /* XXX 802.1AD case*/
-    ds_put_format(s, "%spush_vlan:%s%#"PRIx16,
+    ds_put_format(s, "%spush_vlan:%s%#x",
                   colors.param, colors.end, ETH_TYPE_VLAN_8021Q);
 }
 
@@ -3271,7 +3271,7 @@  decode_NXAST_RAW_DEC_TTL_CNT_IDS(const struct nx_action_cnt_ids *nac_ids,
     if (ids_size < ids->n_controllers * sizeof(ovs_be16)) {
         VLOG_WARN_RL(&rl, "Nicira action dec_ttl_cnt_ids only has %"PRIuSIZE" "
                      "bytes allocated for controller ids.  %"PRIuSIZE" bytes "
-                     "are required for %"PRIu16" controllers.",
+                     "are required for %u controllers.",
                      ids_size, ids->n_controllers * sizeof(ovs_be16),
                      ids->n_controllers);
         return OFPERR_OFPBAC_BAD_LEN;
@@ -4554,7 +4554,7 @@  encode_CONJUNCTION(const struct ofpact_conjunction *oc,
 static void
 format_CONJUNCTION(const struct ofpact_conjunction *oc, struct ds *s)
 {
-    ds_put_format(s, "%sconjunction(%s%"PRIu32",%"PRIu8"/%"PRIu8"%s)%s",
+    ds_put_format(s, "%sconjunction(%s%"PRIu32",%d/%"PRIu8"%s)%s",
                   colors.paren, colors.end,
                   oc->id, oc->clause + 1, oc->n_clauses,
                   colors.paren, colors.end);
@@ -5455,7 +5455,7 @@  parse_CT(char *arg, struct ofpbuf *ofpacts,
         } else if (!strcmp(key, "table")) {
             error = str_to_u8(value, "recirc_table", &oc->recirc_table);
             if (!error && oc->recirc_table == NX_CT_RECIRC_NONE) {
-                error = xasprintf("invalid table %#"PRIx16, oc->recirc_table);
+                error = xasprintf("invalid table %#"PRIx8, oc->recirc_table);
             }
         } else if (!strcmp(key, "zone")) {
             error = str_to_u16(value, "zone", &oc->zone_imm);
diff --git a/lib/ofp-print.c b/lib/ofp-print.c
index f7f7df26f5e1..3c357f7df863 100644
--- a/lib/ofp-print.c
+++ b/lib/ofp-print.c
@@ -875,7 +875,7 @@  ofp_print_flow_mod(struct ds *s, const struct ofp_header *oh, int verbosity)
         ds_put_format(s, "importance:%"PRIu16" ", fm.importance);
     }
     if (fm.priority != OFP_DEFAULT_PRIORITY && need_priority) {
-        ds_put_format(s, "pri:%"PRIu16" ", fm.priority);
+        ds_put_format(s, "pri:%d ", fm.priority);
     }
     if (fm.buffer_id != UINT32_MAX) {
         ds_put_format(s, "buf:0x%"PRIx32" ", fm.buffer_id);
diff --git a/lib/ofp-util.c b/lib/ofp-util.c
index 0c9343ec400b..a8f4ae333e98 100644
--- a/lib/ofp-util.c
+++ b/lib/ofp-util.c
@@ -7064,7 +7064,7 @@  ofputil_port_from_string(const char *s, ofp_port_t *portp)
                            name, port32);
         } else if (port32 < ofp11_to_u32(OFPP11_MAX)) {
             VLOG_WARN("port %u is outside the supported range 0 through "
-                      "%"PRIx16" or 0x%x through 0x%"PRIx32, port32,
+                      "%x or 0x%x through 0x%"PRIx32, port32,
                       UINT16_MAX, ofp11_to_u32(OFPP11_MAX), UINT32_MAX);
             return false;
         } else {
diff --git a/lib/ovs-router.c b/lib/ovs-router.c
index 0c5430af9d39..96871d1b6819 100644
--- a/lib/ovs-router.c
+++ b/lib/ovs-router.c
@@ -1,5 +1,5 @@ 
 /*
- * Copyright (c) 2014, 2015, 2016 Nicira, Inc.
+ * Copyright (c) 2014, 2015, 2016, 2017 Nicira, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -411,7 +411,7 @@  ovs_router_show(struct unixctl_conn *conn, int argc OVS_UNUSED,
         if (IN6_IS_ADDR_V4MAPPED(&rt->nw_addr)) {
             plen -= 96;
         }
-        ds_put_format(&ds, "/%"PRIu16, plen);
+        ds_put_format(&ds, "/%"PRIu8, plen);
         if (rt->mark) {
             ds_put_format(&ds, " MARK %"PRIu32, rt->mark);
         }
diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c
index eda34f044192..de4ad0faa0fc 100644
--- a/ofproto/ofproto-dpif-xlate.c
+++ b/ofproto/ofproto-dpif-xlate.c
@@ -1909,7 +1909,7 @@  input_vid_is_valid(const struct xlate_ctx *ctx,
         if (vid) {
             xlate_report_error(ctx, "dropping VLAN %"PRIu16" tagged "
                                "packet received on port %s configured as VLAN "
-                               "%"PRIu16" access port", vid, in_xbundle->name,
+                               "%d access port", vid, in_xbundle->name,
                                in_xbundle->vlan);
             return false;
         }
diff --git a/tests/test-netflow.c b/tests/test-netflow.c
index 6d199ba30261..692c4ddd2590 100644
--- a/tests/test-netflow.c
+++ b/tests/test-netflow.c
@@ -1,5 +1,5 @@ 
 /*
- * Copyright (c) 2011, 2012, 2013, 2014, 2015 Nicira, Inc.
+ * Copyright (c) 2011, 2012, 2013, 2014, 2015, 2017 Nicira, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -106,7 +106,7 @@  print_netflow(struct ofpbuf *buf)
             break;
 
         case IPPROTO_ICMP:
-            printf(", ICMP %"PRIu16":%"PRIu16,
+            printf(", ICMP %u:%u",
                    ntohs(rec->dst_port) >> 8,
                    ntohs(rec->dst_port) & 0xff);
             if (rec->src_port != htons(0)) {
diff --git a/utilities/ovs-ofctl.c b/utilities/ovs-ofctl.c
index 77332e0f8c16..83fbf8a1c7f8 100644
--- a/utilities/ovs-ofctl.c
+++ b/utilities/ovs-ofctl.c
@@ -4189,7 +4189,7 @@  ofctl_check_vlan(struct ovs_cmdl_context *ctx)
 
         printf("%04"PRIx16"/%04"PRIx16",", vid, mask);
         if (vid && vlan_tci_to_pcp(nxm_match.wc.masks.vlan_tci)) {
-            printf("%02"PRIx8"\n", vlan_tci_to_pcp(nxm_match.flow.vlan_tci));
+            printf("%02x\n", vlan_tci_to_pcp(nxm_match.flow.vlan_tci));
         } else {
             printf("--\n");
         }
diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c
index 2e1001350954..3d9774a69b26 100644
--- a/vswitchd/bridge.c
+++ b/vswitchd/bridge.c
@@ -1,4 +1,4 @@ 
-/* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Nicira, Inc.
+/* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Nicira, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -2468,7 +2468,7 @@  port_refresh_stp_status(struct port *port)
 
     /* Set Status column. */
     smap_init(&smap);
-    smap_add_format(&smap, "stp_port_id", STP_PORT_ID_FMT, status.port_id);
+    smap_add_format(&smap, "stp_port_id", "%d", status.port_id);
     smap_add(&smap, "stp_state", stp_state_name(status.state));
     smap_add_format(&smap, "stp_sec_in_state", "%u", status.sec_in_state);
     smap_add(&smap, "stp_role", stp_role_name(status.role));