aboutsummaryrefslogtreecommitdiff
path: root/string/bits/string2.h
diff options
context:
space:
mode:
Diffstat (limited to 'string/bits/string2.h')
-rw-r--r--string/bits/string2.h13
1 files changed, 7 insertions, 6 deletions
diff --git a/string/bits/string2.h b/string/bits/string2.h
index 8779e35..403bcca 100644
--- a/string/bits/string2.h
+++ b/string/bits/string2.h
@@ -86,7 +86,8 @@ __STRING2_COPY_TYPE (8);
#endif
/* Dereferencing a pointer arg to run sizeof on it fails for the
- void pointer case, so we use this instead. */
+ void pointer case, so we use this instead. Note that the argument
+ must not contain any side effects. */
#define __string2_1bptr_p(x) (((size_t) ((x) + 1) - (size_t) (x)) == 1)
@@ -430,13 +431,13 @@ __STRING2_COPY_TYPE (8);
? memcmp (s1, s2, (strlen (s1) < strlen (s2) \
? strlen (s1) : strlen (s2)) + 1) \
: (__builtin_constant_p (s1) && __string2_1bptr_p (s1) \
- && __string2_1bptr_p (s2) && strlen (s1) < 4 \
- ? (__builtin_constant_p (s2) \
+ && strlen (s1) < 4 \
+ ? (__builtin_constant_p (s2) && __string2_1bptr_p (s2) \
? __strcmp_cc (s1, s2, strlen (s1)) \
: __strcmp_cg (s1, s2, strlen (s1))) \
- : (__builtin_constant_p (s2) && __string2_1bptr_p (s1) \
- && __string2_1bptr_p (s2) && strlen (s2) < 4 \
- ? (__builtin_constant_p (s1) \
+ : (__builtin_constant_p (s2) && __string2_1bptr_p (s2) \
+ && strlen (s2) < 4 \
+ ? (__builtin_constant_p (s1) && __string2_1bptr_p (s1)\
? __strcmp_cc (s1, s2, strlen (s2)) \
: __strcmp_gc (s1, s2, strlen (s2))) \
: strcmp (s1, s2)))))