diff mbox

iproute2: Fix warnings with gcc 4.9 and clang 3.4

Message ID 284875ac93e0904c42a436cbf05cc57d@mail.lindev.ch
State Changes Requested, archived
Delegated to: stephen hemminger
Headers show

Commit Message

Bernhard Rosenkränzer March 7, 2014, 2 a.m. UTC
Hi,
the latest compilers (gcc 4.9 and clang 3.4) issue warnings when doing 
an incomplete struct initialization (e.g. "struct tc_sizespec s = 
{0};").

Since many people like to compile lower level bits and pieces with 
-Werror, this should probably be fixed. Patch attached.

ttyl
bero

Comments

Stephen Hemminger March 10, 2014, 8:25 p.m. UTC | #1
On Fri, 07 Mar 2014 03:00:53 +0100
Bernhard Rosenkränzer <bero@lindev.ch> wrote:

> Hi,
> the latest compilers (gcc 4.9 and clang 3.4) issue warnings when doing 
> an incomplete struct initialization (e.g. "struct tc_sizespec s = 
> {0};").
> 
> Since many people like to compile lower level bits and pieces with 
> -Werror, this should probably be fixed. Patch attached.
> 
> ttyl
> bero

Does not apply to current source, please update:
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Pádraig Brady March 11, 2014, 3:30 a.m. UTC | #2
On 03/07/2014 02:00 AM, Bernhard Rosenkränzer wrote:
> Hi,
> the latest compilers (gcc 4.9 and clang 3.4) issue warnings when doing an incomplete struct initialization (e.g. "struct tc_sizespec s = {0};").
> 
> Since many people like to compile lower level bits and pieces with -Werror, this should probably be fixed. Patch attached.

Sounds like newer compilers are reverting:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36750
Hopefully not.

thanks,
Pádraig.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

From: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
Subject: [PATCH] Fix compiler warnings with gcc 4.9 and clang 3.4

Current compilers (gcc 4.9 and clang 3.4) issue warnings when doing
an incomplete struct initialization (e.g. "struct tc_sizespec s = {0};").

Initialize the structs completely so we can build with -Werror.

Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
---

diff --git a/tc/tc_stab.c b/tc/tc_stab.c
index 47b4e5e..7407ce5 100644
--- a/tc/tc_stab.c
+++ b/tc/tc_stab.c
@@ -124,7 +124,7 @@ 
 	parse_rtattr_nested(tb, TCA_STAB_MAX, rta);
 
 	if (tb[TCA_STAB_BASE]) {
-		struct tc_sizespec s = {0};
+		struct tc_sizespec s = {0, 0, 0, 0, 0, 0, 0, 0};
 		memcpy(&s, RTA_DATA(tb[TCA_STAB_BASE]),
 				MIN(RTA_PAYLOAD(tb[TCA_STAB_BASE]), sizeof(s)));
 
diff --git a/tc/tc_util.c b/tc/tc_util.c
index 926ed08..548b728 100644
--- a/tc/tc_util.c
+++ b/tc/tc_util.c
@@ -139,7 +139,7 @@ 
 	{ "GBps",	8000000000. },
 	{ "TiBps",	8.*1024.*1024.*1024.*1024. },
 	{ "TBps",	8000000000000. },
-	{ NULL }
+	{ NULL, .0 }
 };
 
 
@@ -472,28 +472,28 @@ 
 	parse_rtattr_nested(tbs, TCA_STATS_MAX, rta);
 
 	if (tbs[TCA_STATS_BASIC]) {
-		struct gnet_stats_basic bs = {0};
+		struct gnet_stats_basic bs = {0, 0};
 		memcpy(&bs, RTA_DATA(tbs[TCA_STATS_BASIC]), MIN(RTA_PAYLOAD(tbs[TCA_STATS_BASIC]), sizeof(bs)));
 		fprintf(fp, "%sSent %llu bytes %u pkt",
 			prefix, (unsigned long long) bs.bytes, bs.packets);
 	}
 
 	if (tbs[TCA_STATS_QUEUE]) {
-		struct gnet_stats_queue q = {0};
+		struct gnet_stats_queue q = {0, 0, 0, 0, 0};
 		memcpy(&q, RTA_DATA(tbs[TCA_STATS_QUEUE]), MIN(RTA_PAYLOAD(tbs[TCA_STATS_QUEUE]), sizeof(q)));
 		fprintf(fp, " (dropped %u, overlimits %u requeues %u) ",
 			q.drops, q.overlimits, q.requeues);
 	}
 
 	if (tbs[TCA_STATS_RATE_EST]) {
-		struct gnet_stats_rate_est re = {0};
+		struct gnet_stats_rate_est re = {0, 0};
 		memcpy(&re, RTA_DATA(tbs[TCA_STATS_RATE_EST]), MIN(RTA_PAYLOAD(tbs[TCA_STATS_RATE_EST]), sizeof(re)));
 		fprintf(fp, "\n%srate %s %upps ",
 			prefix, sprint_rate(re.bps, b1), re.pps);
 	}
 
 	if (tbs[TCA_STATS_QUEUE]) {
-		struct gnet_stats_queue q = {0};
+		struct gnet_stats_queue q = {0, 0, 0, 0, 0};
 		memcpy(&q, RTA_DATA(tbs[TCA_STATS_QUEUE]), MIN(RTA_PAYLOAD(tbs[TCA_STATS_QUEUE]), sizeof(q)));
 		if (!tbs[TCA_STATS_RATE_EST])
 			fprintf(fp, "\n%s", prefix);