[PATCH, libiberty]: Avoid 'right-hand operand of comma expression has no effect' when compiling regex.c
Uros Bizjak
ubizjak@gmail.com
Thu Mar 13 18:32:00 GMT 2014
On Thu, Mar 13, 2014 at 6:30 PM, Ian Lance Taylor <iant@google.com> wrote:
> On Thu, Mar 13, 2014 at 3:36 AM, Uros Bizjak <ubizjak@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 <ubizjak@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.
-------------- next part --------------
Index: ChangeLog
===================================================================
--- ChangeLog (revision 208550)
+++ ChangeLog (working copy)
@@ -1,3 +1,9 @@
+2014-03-13 Uros Bizjak <ubizjak@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 <thomas@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;
More information about the Gcc-patches
mailing list