[U-Boot] [PATCH 4/5] sh: Do not provide strncmp
Marek Vasut
marek.vasut at gmail.com
Mon Feb 19 04:43:31 UTC 2018
On 02/17/2018 11:30 PM, Tom Rini wrote:
> With modern GCC, we get warnings such as:
> cmd/jffs2.c: In function 'mtdparts_init':
> arch/sh/include/asm/string.h:110:38:
> warning: array subscript is above array bounds [-Warray-bounds]
> : "0" (__cs), "1" (__ct), "r" (__cs+__n)
> ~~~~^~~~
>
> This results in a small size reduction as well.
>
> Cc: Nobuhiro Iwamatsu <iwamatsu at nigauri.org>
> Signed-off-by: Tom Rini <trini at konsulko.com>
> ---
> arch/sh/include/asm/string.h | 33 ++-------------------------------
> 1 file changed, 2 insertions(+), 31 deletions(-)
>
> diff --git a/arch/sh/include/asm/string.h b/arch/sh/include/asm/string.h
> index 27d981b79af8..999febcb6b7d 100644
> --- a/arch/sh/include/asm/string.h
> +++ b/arch/sh/include/asm/string.h
> @@ -81,37 +81,8 @@ static inline int strcmp(const char *__cs, const char *__ct)
> return __res;
> }
>
> -#define __HAVE_ARCH_STRNCMP
> -static inline int strncmp(const char *__cs, const char *__ct, size_t __n)
> -{
> - register int __res;
> - unsigned long __dummy;
> -
> - if (__n == 0)
> - return 0;
> -
> - __asm__ __volatile__(
> - "mov.b @%1+, %3\n"
> - "1:\n\t"
> - "mov.b @%0+, %2\n\t"
> - "cmp/eq %6, %0\n\t"
> - "bt/s 2f\n\t"
> - " cmp/eq #0, %3\n\t"
> - "bt/s 3f\n\t"
> - " cmp/eq %3, %2\n\t"
> - "bt/s 1b\n\t"
> - " mov.b @%1+, %3\n\t"
> - "add #-2, %1\n\t"
> - "mov.b @%1, %3\n"
> - "2:\n\t"
> - "sub %3, %2\n"
> - "3:"
> - :"=r" (__cs), "=r" (__ct), "=&r" (__res), "=&z" (__dummy)
> - : "0" (__cs), "1" (__ct), "r" (__cs+__n)
> - : "t");
> -
> - return __res;
> -}
> +#undef __HAVE_ARCH_STRNCMP
> +extern int strncmp(const char *__cs, const char *__ct, size_t __n);
>
> #undef __HAVE_ARCH_MEMSET
> extern void *memset(void *__s, int __c, size_t __count);
>
Applied, thanks
--
Best regards,
Marek Vasut
More information about the U-Boot
mailing list