From b83218de2623c0bbe9af355a81ae8385d7f30cfc Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 9 May 2018 12:56:41 -0700
Subject: [PATCH] Disable gcc8 warnings

This is needed until
https://bugzilla.redhat.com/show_bug.cgi?id=1553958

Fix super0.c issue which is triggered only in DEBUG_BUILD with -O1 (or any
configuration without -ftree-vrp or with -fno-tree-vrp)

super0.c: In function 'examine_super0':
super0.c:238:32: error: 'snprintf' output may be truncated before the last format character [-Werror=format-truncation=]
   snprintf(nb, sizeof(nb), "%4d", d);
                                ^

Upstream-Status: Inappropriate [Workaround]

Signed-off-by: Khem Raj <raj.khem@gmail.com>

---
 Monitor.c     | 4 +++-
 mdopen.c      | 4 ++++
 super-ddf.c   | 4 ++++
 super-intel.c | 6 ++++++
 super1.c      | 5 +++++
 super0.c      | 2 +-
 6 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/super0.c b/super0.c
index f5b4507..264b598 100644
--- a/super0.c
+++ b/super0.c
@@ -231,7 +231,7 @@
 	     d++) {
 		mdp_disk_t *dp;
 		char *dv;
-		char nb[11];
+		char nb[12];
 		int wonly, failfast;
 		if (d>=0) dp = &sb->disks[d];
 		else dp = &sb->this_disk;
diff --git a/Monitor.c b/Monitor.c
index 802a9d9..23b246b 100644
--- a/Monitor.c
+++ b/Monitor.c
@@ -441,7 +441,8 @@ static void alert(char *event, char *dev, char *disc, struct alert_info *info)
 			       event, dev);
 	}
 }
-
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat-truncation"
 static int check_array(struct state *st, struct mdstat_ent *mdstat,
 		       int test, struct alert_info *ainfo,
 		       int increments, char *prefer)
@@ -683,6 +684,7 @@ static int check_array(struct state *st, struct mdstat_ent *mdstat,
 		return 1;
 	return 0;
 }
+#pragma GCC diagnostic pop
 
 static int add_new_arrays(struct mdstat_ent *mdstat, struct state **statelist,
 			  int test, struct alert_info *info)
diff --git a/mdopen.c b/mdopen.c
index 685ca32..406aba4 100644
--- a/mdopen.c
+++ b/mdopen.c
@@ -26,6 +26,9 @@
 #include "md_p.h"
 #include <ctype.h>
 
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat-truncation"
+
 void make_parts(char *dev, int cnt)
 {
 	/* make 'cnt' partition devices for 'dev'
@@ -99,6 +102,7 @@ void make_parts(char *dev, int cnt)
 	}
 	free(name);
 }
+#pragma GCC diagnostic pop
 
 /*
  * We need a new md device to assemble/build/create an array.
diff --git a/super-ddf.c b/super-ddf.c
index 1707ad1..e08d289 100644
--- a/super-ddf.c
+++ b/super-ddf.c
@@ -2846,6 +2846,9 @@ static void _set_config_size(struct phys_disk_entry *pde, const struct dl *dl)
 		(unsigned long long)cfs, (unsigned long long)(dl->size-cfs));
 }
 
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat-overflow"
+
 /* Add a device to a container, either while creating it or while
  * expanding a pre-existing container
  */
@@ -2981,6 +2984,7 @@ static int add_to_super_ddf(struct supertype *st,
 
 	return 0;
 }
+#pragma GCC diagnostic pop
 
 static int remove_from_super_ddf(struct supertype *st, mdu_disk_info_t *dk)
 {
diff --git a/super-intel.c b/super-intel.c
index 00a2925..44fbead 100644
--- a/super-intel.c
+++ b/super-intel.c
@@ -298,6 +298,11 @@ struct md_list {
 };
 
 #define pr_vrb(fmt, arg...) (void) (verbose && pr_err(fmt, ##arg))
+#pragma GCC diagnostic push
+# if __GNUC__ == 8
+# pragma GCC diagnostic ignored "-Wstringop-truncation"
+# endif
+#pragma GCC diagnostic ignored "-Wformat-truncation"
 
 static __u8 migr_type(struct imsm_dev *dev)
 {
@@ -11618,3 +11623,4 @@ struct superswitch super_imsm = {
 	.get_bad_blocks   = imsm_get_badblocks,
 #endif /* MDASSEMBLE */
 };
+#pragma GCC diagnostic pop
diff --git a/super1.c b/super1.c
index 87a74cb..71c515f 100644
--- a/super1.c
+++ b/super1.c
@@ -1091,6 +1091,10 @@ static struct mdinfo *container_content1(struct supertype *st, char *subarray)
 	return info;
 }
 
+#pragma GCC diagnostic push
+# if __GNUC__ == 8
+# pragma GCC diagnostic ignored "-Wstringop-truncation"
+#endif
 static int update_super1(struct supertype *st, struct mdinfo *info,
 			 char *update,
 			 char *devname, int verbose,
@@ -1473,6 +1477,7 @@ static int init_super1(struct supertype *st, mdu_array_info_t *info,
 
 	return 1;
 }
+#pragma GCC diagnostic pop
 
 struct devinfo {
 	int fd;
