On Thu, Mar 13, 2014 at 6:30 PM, Ian Lance Taylor <i...@google.com> wrote: > On Thu, Mar 13, 2014 at 3:36 AM, Uros Bizjak <ubiz...@gmail.com> wrote: >> >> Attached patch changes the return value of the bzero macro to void, as >> defined in a 4.3BSD: >> >> void bzero(void *s, size_t n); >> >> As an additional benefit, the changed macro now generates warning when >> its return value is used (which is *not* the case in regex.c): > > I'm not worried about anybody using the return value incorrectly in > this file. I think we should just > > # define bzero(s, n) memset (s, '\0', n) > > I'll approve that change if it works.
Attached patch compiles without warnings as well. However, in some case, we have similar situation with unused return value of # define memcpy(d, s, n) (bcopy (s, d, n), (d)) so, I put (void) casts to memcpy call to avoid eventual "right-hand operand of comma expression has no effect" warnings there. 2014-03-13 Uros Bizjak <ubiz...@gmail.com> * regex.c (bzero) [!_LIBC]: Define without coma expression. (regerror): Cast the call to memcpy to (void) to avoid unused value warnings. Is this version acceptable for mainline? Uros.
Index: ChangeLog =================================================================== --- ChangeLog (revision 208550) +++ ChangeLog (working copy) @@ -1,3 +1,9 @@ +2014-03-13 Uros Bizjak <ubiz...@gmail.com> + + * regex.c (bzero) [!_LIBC]: Define without coma expression. + (regerror): Cast the call to memcpy to (void) to avoid unused + value warnings. + 2014-01-28 Thomas Schwinge <tho...@codesourcery.com> * cp-demangle.c (d_demangle_callback): Put an abort call in place, Index: regex.c =================================================================== --- regex.c (revision 208550) +++ regex.c (working copy) @@ -151,7 +151,7 @@ char *realloc (); # include <string.h> # ifndef bzero # ifndef _LIBC -# define bzero(s, n) (memset (s, '\0', n), (s)) +# define bzero(s, n) memset (s, '\0', n) # else # define bzero(s, n) __bzero (s, n) # endif @@ -8093,12 +8093,12 @@ regerror (int errcode, const regex_t *preg ATTRIBU #if defined HAVE_MEMPCPY || defined _LIBC *((char *) mempcpy (errbuf, msg, errbuf_size - 1)) = '\0'; #else - memcpy (errbuf, msg, errbuf_size - 1); + (void) memcpy (errbuf, msg, errbuf_size - 1); errbuf[errbuf_size - 1] = 0; #endif } else - memcpy (errbuf, msg, msg_size); + (void) memcpy (errbuf, msg, msg_size); } return msg_size;