From: Richard Henderson Date: Wed, 1 Feb 2017 22:37:58 +0000 (-0800) Subject: alpha: Use saturating arithmetic in memchr X-Git-Tag: glibc-2.25~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9c8e64485360d08d95884bddc0958cf3a5ca9c5c;p=thirdparty%2Fglibc.git alpha: Use saturating arithmetic in memchr --- diff --git a/ChangeLog b/ChangeLog index f9b94fb58ca..b2f41e3da6c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2017-02-01 Richard Henderson + + * sysdeps/alpha/memchr.c (__memchr): Use saturating arithmetic + adjusting the byte count. + 2017-02-01 Andreas Schwab * conform/Makefile (linknamespace-libs): Define. diff --git a/sysdeps/alpha/memchr.c b/sysdeps/alpha/memchr.c index 82c42c07313..402088dc9e4 100644 --- a/sysdeps/alpha/memchr.c +++ b/sysdeps/alpha/memchr.c @@ -53,7 +53,10 @@ __memchr (const void *s, int xc, size_t n) /* Align the source, and decrement the count by the number of bytes searched in the first word. */ s_align = (const word *)((word)s & -8); - n += ((word)s & 7); + { + size_t inc = n + ((word)s & 7); + n = inc | -(inc < n); + } /* Deal with misalignment in the first word for the comparison. */ mask = (1ul << ((word)s & 7)) - 1;