On Tue, Feb 18, 2025 at 08:32:02AM -0800, Andre Muezerie wrote:
> Compiling with MSVC results in warnings like the one below:
> 
> app/test-pmd/csumonly.c(1085): warning C4477: 'printf' : format string
>     '%d' requires an argument of type 'int',
>     but variadic argument 1 has type 'uint64_t'
> 
> Signed-off-by: Andre Muezerie <andre...@linux.microsoft.com>
> Signed-off-by: Chengwen Feng <fengcheng...@huawei.com>
> ---
>  app/test-pmd/csumonly.c | 23 ++++++++++++-----------
>  1 file changed, 12 insertions(+), 11 deletions(-)
> 
> diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c
> index d77a140641..8de5ad6ad9 100644
> --- a/app/test-pmd/csumonly.c
> +++ b/app/test-pmd/csumonly.c
> @@ -1070,7 +1070,7 @@ pkt_burst_checksum_forward(struct fwd_stream *fs)
>                               info.l2_len, rte_be_to_cpu_16(info.ethertype),
>                               info.l3_len, info.l4_proto, info.l4_len, buf);
>                       if (rx_ol_flags & RTE_MBUF_F_RX_LRO)
> -                             printf("rx: m->lro_segsz=%u\n", m->tso_segsz);
> +                             printf("rx: m->lro_segsz=%" PRIu64 "\n", 
> (uint64_t)m->tso_segsz);

tso_segsz is already uint64_t, so no need for the cast.

>                       if (info.is_tunnel == 1)
>                               printf("rx: outer_l2_len=%d outer_ethertype=%x "
>                                       "outer_l3_len=%d\n", info.outer_l2_len,
> @@ -1082,28 +1082,29 @@ pkt_burst_checksum_forward(struct fwd_stream *fs)
>                                           RTE_ETH_TX_OFFLOAD_TCP_CKSUM |
>                                           RTE_ETH_TX_OFFLOAD_SCTP_CKSUM)) ||
>                               info.tso_segsz != 0)
> -                             printf("tx: m->l2_len=%d m->l3_len=%d "
> -                                     "m->l4_len=%d\n",
> -                                     m->l2_len, m->l3_len, m->l4_len);
> +                             printf("tx: m->l2_len=%" PRIu64 " m->l3_len=%" 
> PRIu64
> +                                     " m->l4_len=%" PRIu64 "\n",
> +                                     (uint64_t)m->l2_len, 
> (uint64_t)m->l3_len,
> +                                     (uint64_t)m->l4_len);

Same here, using casts and a changed print format seems wrong in the patch.
Either we change the format string to match the variable type, or we cast
the variables to match the format string. We should not do both, IMHO.

>                       if (info.is_tunnel == 1) {
>                               if ((tx_offloads &
>                                   RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM) ||
>                                   (tx_offloads &
>                                   RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM) ||
>                                   (tx_ol_flags & RTE_MBUF_F_TX_OUTER_IPV6))
> -                                     printf("tx: m->outer_l2_len=%d "
> -                                             "m->outer_l3_len=%d\n",
> -                                             m->outer_l2_len,
> -                                             m->outer_l3_len);
> +                                     printf("tx: m->outer_l2_len=%" PRIu64
> +                                             " m->outer_l3_len=%" PRIu64 
> "\n",
> +                                             (uint64_t)m->outer_l2_len,
> +                                             (uint64_t)m->outer_l3_len);
>                               if (info.tunnel_tso_segsz != 0 &&
>                                               (m->ol_flags & 
> (RTE_MBUF_F_TX_TCP_SEG |
>                                                       RTE_MBUF_F_TX_UDP_SEG)))
> -                                     printf("tx: m->tso_segsz=%d\n",
> -                                             m->tso_segsz);
> +                                     printf("tx: m->tso_segsz=%" PRIu64 "\n",
> +                                             (uint64_t)m->tso_segsz);
>                       } else if (info.tso_segsz != 0 &&
>                                       (m->ol_flags & (RTE_MBUF_F_TX_TCP_SEG |
>                                               RTE_MBUF_F_TX_UDP_SEG)))
> -                             printf("tx: m->tso_segsz=%d\n", m->tso_segsz);
> +                             printf("tx: m->tso_segsz=%" PRIu64 "\n", 
> (uint64_t)m->tso_segsz);
>                       rte_get_tx_ol_flag_list(m->ol_flags, buf, sizeof(buf));
>                       printf("tx: flags=%s", buf);
>                       printf("\n");
> -- 
> 2.48.1.vfs.0.0
> 

Reply via email to