diff mbox

[committed,2/2] regex: simplify by using intprops.h

Message ID 620a5d4cb19f817ef0ed721c2a3fe27d72b12156.1539578358.git.eggert@cs.ucla.edu
State Committed
Headers show

Commit Message

Paul Eggert Oct. 15, 2018, 4:41 a.m. UTC
[BZ#23744]
* posix/regex_internal.h [_LIBC]: Include intprops.h.
(TYPE_SIGNED, INT_ADD_WRAPV) [_LIBC]: Remove.
intprops.h defines them.
---
 ChangeLog              |  6 ++++++
 posix/regex_internal.h | 18 +-----------------
 2 files changed, 7 insertions(+), 17 deletions(-)
diff mbox

Patch

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>