[dpdk-dev] pipeline: use unsigned constants for left shift operations

Message ID 596c08913453daea0e9c98f25befba923a961216.1457617795.git.pmatilai@redhat.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers

Commit Message

Panu Matilainen March 10, 2016, 1:49 p.m. UTC
  Tell the compiler to use unsigned constants for left shift ops,
otherwise building with gcc >= 6.0 fails due to multiple warnings like:
warning: left shift of negative value [-Wshift-negative-value]

Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
---
 examples/ip_pipeline/pipeline/pipeline_common_fe.c | 4 ++--
 examples/ip_pipeline/pipeline/pipeline_firewall.c  | 4 ++--
 examples/ip_pipeline/pipeline/pipeline_routing.c   | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)
  

Comments

Cristian Dumitrescu March 10, 2016, 2:27 p.m. UTC | #1
> -----Original Message-----
> From: Panu Matilainen [mailto:pmatilai@redhat.com]
> Sent: Thursday, March 10, 2016 1:50 PM
> To: dev@dpdk.org
> Cc: Dumitrescu, Cristian <cristian.dumitrescu@intel.com>
> Subject: [PATCH] pipeline: use unsigned constants for left shift operations
> 
> Tell the compiler to use unsigned constants for left shift ops,
> otherwise building with gcc >= 6.0 fails due to multiple warnings like:
> warning: left shift of negative value [-Wshift-negative-value]
> 
> Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
> ---

Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
  
Thomas Monjalon March 13, 2016, 3:19 p.m. UTC | #2
2016-03-10 15:49, Panu Matilainen:
> --- a/examples/ip_pipeline/pipeline/pipeline_routing.c
> +++ b/examples/ip_pipeline/pipeline/pipeline_routing.c
> @@ -319,7 +319,7 @@ app_pipeline_routing_add_route(struct app_params *app,
>                 if ((depth == 0) || (depth > 32))
>                         return -1;
>  
> -               netmask = (~0) << (32 - depth);
> +               netmask = (~U0) << (32 - depth);

Typo: should be 0U.
  
Thomas Monjalon March 13, 2016, 3:23 p.m. UTC | #3
> > Tell the compiler to use unsigned constants for left shift ops,
> > otherwise building with gcc >= 6.0 fails due to multiple warnings like:
> > warning: left shift of negative value [-Wshift-negative-value]
> > 
> > Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
> 
> Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>

Applied with typo fixed, thanks
  

Patch

diff --git a/examples/ip_pipeline/pipeline/pipeline_common_fe.c b/examples/ip_pipeline/pipeline/pipeline_common_fe.c
index bffc9a4..a691d42 100644
--- a/examples/ip_pipeline/pipeline/pipeline_common_fe.c
+++ b/examples/ip_pipeline/pipeline/pipeline_common_fe.c
@@ -337,7 +337,7 @@  app_link_config(struct app_params *app,
 		return -1;
 	}
 
-	netmask = (~0) << (32 - depth);
+	netmask = (~0U) << (32 - depth);
 	host = ip & netmask;
 	bcast = host | (~netmask);
 
@@ -889,7 +889,7 @@  print_link_info(struct app_link_params *p)
 {
 	struct rte_eth_stats stats;
 	struct ether_addr *mac_addr;
-	uint32_t netmask = (~0) << (32 - p->depth);
+	uint32_t netmask = (~0U) << (32 - p->depth);
 	uint32_t host = p->ip & netmask;
 	uint32_t bcast = host | (~netmask);
 
diff --git a/examples/ip_pipeline/pipeline/pipeline_firewall.c b/examples/ip_pipeline/pipeline/pipeline_firewall.c
index 3d7ea7a..320b25d 100644
--- a/examples/ip_pipeline/pipeline/pipeline_firewall.c
+++ b/examples/ip_pipeline/pipeline/pipeline_firewall.c
@@ -256,10 +256,10 @@  app_pipeline_firewall_key_check_and_normalize(struct pipeline_firewall_key *key)
 			return -1;
 
 		if (src_ip_depth)
-			src_ip_netmask = (~0) << (32 - src_ip_depth);
+			src_ip_netmask = (~0U) << (32 - src_ip_depth);
 
 		if (dst_ip_depth)
-			dst_ip_netmask = ((~0) << (32 - dst_ip_depth));
+			dst_ip_netmask = ((~0U) << (32 - dst_ip_depth));
 
 		key->key.ipv4_5tuple.src_ip &= src_ip_netmask;
 		key->key.ipv4_5tuple.dst_ip &= dst_ip_netmask;
diff --git a/examples/ip_pipeline/pipeline/pipeline_routing.c b/examples/ip_pipeline/pipeline/pipeline_routing.c
index 6354730..62a5eec 100644
--- a/examples/ip_pipeline/pipeline/pipeline_routing.c
+++ b/examples/ip_pipeline/pipeline/pipeline_routing.c
@@ -319,7 +319,7 @@  app_pipeline_routing_add_route(struct app_params *app,
 		if ((depth == 0) || (depth > 32))
 			return -1;
 
-		netmask = (~0) << (32 - depth);
+		netmask = (~U0) << (32 - depth);
 		key->key.ipv4.ip &= netmask;
 
 		/* data */
@@ -421,7 +421,7 @@  app_pipeline_routing_delete_route(struct app_params *app,
 		if ((depth == 0) || (depth > 32))
 			return -1;
 
-		netmask = (~0) << (32 - depth);
+		netmask = (~0U) << (32 - depth);
 		key->key.ipv4.ip &= netmask;
 	}
 	break;