Only use strncmp optimization if count argument is constant.
authordrepper <drepper>
Tue, 16 Feb 1999 21:21:52 +0000 (21:21 +0000)
committerdrepper <drepper>
Tue, 16 Feb 1999 21:21:52 +0000 (21:21 +0000)
string/bits/string2.h

index 0c28b3e..3de175d 100644 (file)
@@ -687,12 +687,13 @@ __stpcpy_small (char *__dest,
 
 /* Compare N characters of S1 and S2.  */
 #ifndef _HAVE_STRING_ARCH_strncmp
-# define strncmp(s1, s2, n) \
-  (__extension__ (__builtin_constant_p (s1) && strlen (s1) < ((size_t) (n))   \
-                 ? strcmp (s1, s2)                                           \
-                 : (__builtin_constant_p (s2) && strlen (s2) < ((size_t) (n))\
-                    ? strcmp (s1, s2)                                        \
-                    : strncmp (s1, s2, n))))
+# define strncmp(s1, s2, n)                                                  \
+  (__extension__ (__builtin_constant_p (n)                                   \
+                 && ((__builtin_constant_p (s1)                              \
+                      && strlen (s1) < ((size_t) (n)))                       \
+                     || (__builtin_constant_p (s2)                           \
+                         && strlen (s2) < ((size_t) (n))))                   \
+                 ? strcmp (s1, s2) : strncmp (s1, s2, n)))
 #endif