From 14035e5fadff19efb17069c6dc463670a8e8b6c1 Mon Sep 17 00:00:00 2001 From: Andy Green Date: Tue, 22 May 2018 09:24:12 +0800 Subject: [PATCH] eal/x86: fix type of variable in memcpy function GCC 8.1 warned: rte_memcpy.h:793:2: note: in expansion of macro 'MOVEUNALIGNED_LEFT47' MOVEUNALIGNED_LEFT47(dst, src, n, srcofs); ^~~~~~~~~~~~~~~~~~~~ rte_memcpy.h:649:51: warning: conversion from 'size_t' {aka 'long unsigned int'} to 'int' may change value [-Wconversion] case 0x0B: MOVEUNALIGNED_LEFT47_IMM(dst, src, n, 0x0B); break; ^ rte_memcpy.h:616:15: note: in definition of macro 'MOVEUNALIGNED_LEFT47_IMM' tmp = len; ^~~ rte_memcpy.h:793:2: note: in expansion of macro 'MOVEUNALIGNED_LEFT47' MOVEUNALIGNED_LEFT47(dst, src, n, srcofs); ^~~~~~~~~~~~~~~~~~~~ rte_memcpy.h:618:13: warning: conversion to 'size_t' {aka 'long unsigned int'} from 'int' may change the sign of the result [-Wsign-conversion] tmp -= len; ^~ rte_memcpy.h:649:16: note: in expansion of macro 'MOVEUNALIGNED_LEFT47_IMM' case 0x0B: MOVEUNALIGNED_LEFT47_IMM(dst, src, n, 0x0B); break; ^~~~~~~~~~~~~~~~~~~~~~~~ rte_memcpy.h:793:2: note: in expansion of macro 'MOVEUNALIGNED_LEFT47' MOVEUNALIGNED_LEFT47(dst, src, n, srcofs); ^~~~~~~~~~~~~~~~~~~~ rte_memcpy.h:618:13: warning: conversion to 'size_t' {aka 'long unsigned int'} from 'int' may change the sign of the result [-Wsign-conversion] tmp -= len; ^~ We can eliminate the problems by setting the type of tmp to size_t in the first place. Fixes: d35cc1fe6a ("eal/x86: revert select optimized memcpy at run-time") Cc: stable@dpdk.org Suggested-by: Bruce Richardson Signed-off-by: Andy Green Acked-by: Bruce Richardson --- lib/librte_eal/common/include/arch/x86/rte_memcpy.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h index 5ead68ab2c..7b758094df 100644 --- a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h +++ b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h @@ -574,7 +574,7 @@ rte_mov256(uint8_t *dst, const uint8_t *src) */ #define MOVEUNALIGNED_LEFT47_IMM(dst, src, len, offset) \ __extension__ ({ \ - int tmp; \ + size_t tmp; \ while (len >= 128 + 16 - offset) { \ xmm0 = _mm_loadu_si128((const __m128i *)((const uint8_t *)src - offset + 0 * 16)); \ len -= 128; \ -- 2.20.1