[Skiboot] [PATCH] hw/xive.c: Fix memcmp() in DEBUG build to compare struct not ptr

Stewart Smith stewart at linux.ibm.com
Tue May 21 09:51:06 AEST 2019


With GCC9:

hw/xive.c: In function ‘xive_check_eq_update’:
hw/xive.c:3034:29: error: argument to ‘sizeof’ in ‘__builtin_memcmp’ call is the same expression as the first source; did you mean to dereference it? [-Werror=sizeof-pointer-memaccess]
  if (memcmp(eq, &eq2, sizeof(eq)) != 0) {
                             ^
hw/xive.c: In function ‘xive_check_vpc_update’:
hw/xive.c:3056:29: error: argument to ‘sizeof’ in ‘__builtin_memcmp’ call is the same expression as the first source; did you mean to dereference it? [-Werror=sizeof-pointer-memaccess]
  if (memcmp(vp, &vp2, sizeof(vp)) != 0) {
                             ^
cc1: all warnings being treated as errors

Fixes: 2eea386767728
Signed-off-by: Stewart Smith <stewart at linux.ibm.com>
---
 hw/xive.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/hw/xive.c b/hw/xive.c
index 5edcaedf5875..a9f1e7707ac9 100644
--- a/hw/xive.c
+++ b/hw/xive.c
@@ -3027,7 +3027,7 @@ static bool xive_check_eq_update(struct xive *x, uint32_t idx, struct xive_eq *e
 
 	assert(eq_p);
 	eq2 = *eq_p;
-	if (memcmp(eq, &eq2, sizeof(eq)) != 0) {
+	if (memcmp(eq, &eq2, sizeof(struct xive_eq)) != 0) {
 		xive_err(x, "EQ update mismatch idx %d\n", idx);
 		xive_err(x, "want: %08x %08x %08x %08x\n",
 			 eq->w0, eq->w1, eq->w2, eq->w3);
@@ -3049,7 +3049,7 @@ static bool xive_check_vpc_update(struct xive *x, uint32_t idx, struct xive_vp *
 
 	assert(vp_p);
 	vp2 = *vp_p;
-	if (memcmp(vp, &vp2, sizeof(vp)) != 0) {
+	if (memcmp(vp, &vp2, sizeof(struct xive_vp)) != 0) {
 		xive_err(x, "VP update mismatch idx %d\n", idx);
 		xive_err(x, "want: %08x %08x %08x %08x\n",
 			 vp->w0, vp->w1, vp->w2, vp->w3);
-- 
2.21.0



More information about the Skiboot mailing list