summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2018-10-14 22:20:08 -0500
committerPaul Eggert <eggert@cs.ucla.edu>2018-10-14 23:36:55 -0500
commit620a5d4cb19f817ef0ed721c2a3fe27d72b12156 (patch)
tree87234984ff7e3356fef97f2ce955537351b9cd62
parentf4efbdfb44ebb7dfe4c19759c426153bdd48a1dd (diff)
downloadglibc-620a5d4cb19f817ef0ed721c2a3fe27d72b12156.tar.gz
regex: simplify by using intprops.h
[BZ#23744] * posix/regex_internal.h [_LIBC]: Include intprops.h. (TYPE_SIGNED, INT_ADD_WRAPV) [_LIBC]: Remove. intprops.h defines them.
-rw-r--r--ChangeLog6
-rw-r--r--posix/regex_internal.h18
2 files changed, 7 insertions, 17 deletions
diff --git a/ChangeLog b/ChangeLog
index 52299e6c56..26017655f9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2018-10-14 Paul Eggert <eggert@cs.ucla.edu>
+ regex: simplify by using intprops.h
+ [BZ#23744]
+ * posix/regex_internal.h [_LIBC]: Include intprops.h.
+ (TYPE_SIGNED, INT_ADD_WRAPV) [_LIBC]: Remove.
+ intprops.h defines them.
+
regex: __builtin_expect → __glibc_unlikely
[BZ#23744]
This refactoring was prompted by a problem when the regex code is
diff --git a/posix/regex_internal.h b/posix/regex_internal.h
index de4bcbdc2d..f4b2702868 100644
--- a/posix/regex_internal.h
+++ b/posix/regex_internal.h
@@ -33,23 +33,7 @@
#include <stdbool.h>
#include <stdint.h>
-/* Properties of integers. Although Gnulib has intprops.h, glibc does
- without for now. */
-#ifndef _LIBC
-# include "intprops.h"
-#else
-/* True if the real type T is signed. */
-# define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
-
-/* True if adding the nonnegative Idx values A and B would overflow.
- If false, set *R to A + B. A, B, and R may be evaluated more than
- once, or zero times. Although this is not a full implementation of
- Gnulib INT_ADD_WRAPV, it is good enough for glibc regex code.
- FIXME: This implementation is a fragile stopgap, and this file would
- be simpler and more robust if intprops.h were migrated into glibc. */
-# define INT_ADD_WRAPV(a, b, r) \
- (IDX_MAX - (a) < (b) ? true : (*(r) = (a) + (b), false))
-#endif
+#include <intprops.h>
#ifdef _LIBC
# include <libc-lock.h>