[v7,07/12] app/test: clean LTO build warnings (maybe-uninitialized)
Checks
Commit Message
During LTO build compiler reports some 'false positive' warnings about
variables being possibly used uninitialized. This patch silences these
warnings.
Exemplary compiler warning to suppress (with LTO enabled):
error: ‘stats.greatest_free_size’ may be used uninitialized in this
function [-Werror=maybe-uninitialized]
return len - overhead;
Signed-off-by: Andrzej Ostruszka <aostruszka@marvell.com>
---
app/test/test_hash_readwrite.c | 2 +-
app/test/test_link_bonding_mode4.c | 8 +++++++-
app/test/test_memzone.c | 3 ++-
3 files changed, 10 insertions(+), 3 deletions(-)
Comments
>-----Original Message-----
>From: Andrzej Ostruszka [mailto:aostruszka@marvell.com]
>Sent: Thursday, November 7, 2019 7:03 AM
>To: dev@dpdk.org; Wang, Yipeng1 <yipeng1.wang@intel.com>; Gobriel, Sameh <sameh.gobriel@intel.com>; Richardson, Bruce
><bruce.richardson@intel.com>; Chas Williams <chas3@att.com>; Burakov, Anatoly <anatoly.burakov@intel.com>
>Cc: mattias.ronnblom@ericsson.com; stephen@networkplumber.org
>Subject: [PATCH v7 07/12] app/test: clean LTO build warnings (maybe-uninitialized)
>
>During LTO build compiler reports some 'false positive' warnings about
>variables being possibly used uninitialized. This patch silences these
>warnings.
>
>Exemplary compiler warning to suppress (with LTO enabled):
>error: ‘stats.greatest_free_size’ may be used uninitialized in this
>function [-Werror=maybe-uninitialized]
> return len - overhead;
>
>Signed-off-by: Andrzej Ostruszka <aostruszka@marvell.com>
>---
> app/test/test_hash_readwrite.c | 2 +-
> app/test/test_link_bonding_mode4.c | 8 +++++++-
> app/test/test_memzone.c | 3 ++-
> 3 files changed, 10 insertions(+), 3 deletions(-)
>
>diff --git a/app/test/test_hash_readwrite.c b/app/test/test_hash_readwrite.c
>index 4376b099b..615767fb6 100644
>--- a/app/test/test_hash_readwrite.c
>+++ b/app/test/test_hash_readwrite.c
>@@ -298,7 +298,7 @@ test_rw_reader(void *arg)
>
> begin = rte_rdtsc_precise();
> for (i = 0; i < read_cnt; i++) {
>- void *data;
>+ void *data = arg;
> rte_hash_lookup_data(tbl_rw_test_param.h,
> tbl_rw_test_param.keys + i,
> &data);
>diff --git a/app/test/test_link_bonding_mode4.c b/app/test/test_link_bonding_mode4.c
>index ff54d7b91..cf12f026d 100644
>--- a/app/test/test_link_bonding_mode4.c
>+++ b/app/test/test_link_bonding_mode4.c
>@@ -585,7 +585,13 @@ bond_get_update_timeout_ms(void)
> {
> struct rte_eth_bond_8023ad_conf conf;
>
>- rte_eth_bond_8023ad_conf_get(test_params.bonded_port_id, &conf);
>+ if (rte_eth_bond_8023ad_conf_get(test_params.bonded_port_id, &conf) < 0) {
>+ RTE_LOG(DEBUG, EAL, "Failed to get bonding configuration: "
>+ "%s at %d\n", __func__, __LINE__);
>+ RTE_TEST_TRACE_FAILURE(__FILE__, __LINE__, __func__);
>+ return 0;
>+ }
>+
> return conf.update_timeout_ms;
> }
>
>diff --git a/app/test/test_memzone.c b/app/test/test_memzone.c
>index 4d8744455..0343b0326 100644
>--- a/app/test/test_memzone.c
>+++ b/app/test/test_memzone.c
>@@ -475,7 +475,8 @@ find_max_block_free_size(unsigned int align, unsigned int socket_id)
> struct rte_malloc_socket_stats stats;
> size_t len, overhead;
>
>- rte_malloc_get_socket_stats(socket_id, &stats);
>+ if (rte_malloc_get_socket_stats(socket_id, &stats) < 0)
>+ return 0;
>
> len = stats.greatest_free_size;
> overhead = MALLOC_ELEM_OVERHEAD;
>--
>2.17.1
[Wang, Yipeng]
For the test_hash_readwrite.c file:
Acked-by: Yipeng Wang <yipeng1.wang@intel.com>
@@ -298,7 +298,7 @@ test_rw_reader(void *arg)
begin = rte_rdtsc_precise();
for (i = 0; i < read_cnt; i++) {
- void *data;
+ void *data = arg;
rte_hash_lookup_data(tbl_rw_test_param.h,
tbl_rw_test_param.keys + i,
&data);
@@ -585,7 +585,13 @@ bond_get_update_timeout_ms(void)
{
struct rte_eth_bond_8023ad_conf conf;
- rte_eth_bond_8023ad_conf_get(test_params.bonded_port_id, &conf);
+ if (rte_eth_bond_8023ad_conf_get(test_params.bonded_port_id, &conf) < 0) {
+ RTE_LOG(DEBUG, EAL, "Failed to get bonding configuration: "
+ "%s at %d\n", __func__, __LINE__);
+ RTE_TEST_TRACE_FAILURE(__FILE__, __LINE__, __func__);
+ return 0;
+ }
+
return conf.update_timeout_ms;
}
@@ -475,7 +475,8 @@ find_max_block_free_size(unsigned int align, unsigned int socket_id)
struct rte_malloc_socket_stats stats;
size_t len, overhead;
- rte_malloc_get_socket_stats(socket_id, &stats);
+ if (rte_malloc_get_socket_stats(socket_id, &stats) < 0)
+ return 0;
len = stats.greatest_free_size;
overhead = MALLOC_ELEM_OVERHEAD;