Avoid memset warning in one case.
authorCaolan McNamara <caolanm@redhat.com>
Tue, 10 Nov 2009 14:29:13 +0000 (06:29 -0800)
committerUlrich Drepper <drepper@redhat.com>
Tue, 10 Nov 2009 14:29:13 +0000 (06:29 -0800)
ChangeLog
string/bits/string3.h

index 705e83f..ac8baf1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-11-10  Ulrich Drepper  <drepper@redhat.com>
+
+       * string/bits/string3.h (memset): If the second parameter is constant
+       and zero there is likely no transposition.
+
 2009-11-04  Philippe De Muyter  <phdm@macqel.be>
 
        * sysdeps/powerpc/fpu/e_sqrt.c: Fix spelling of (Newton-)Raphson.
index a5593e3..1d759f1 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -77,7 +77,8 @@ __NTH (mempcpy (void *__restrict __dest, __const void *__restrict __src,
 __extern_always_inline void *
 __NTH (memset (void *__dest, int __ch, size_t __len))
 {
-  if (__builtin_constant_p (__len) && __len == 0)
+  if (__builtin_constant_p (__len) && __len == 0
+      && (!__builtin_constant_p (__ch) || __ch != 0))
     {
       __warn_memset_zero_len ();
       return __dest;