diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2018-10-14 22:20:08 -0500 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2018-10-14 23:36:55 -0500 |
commit | 620a5d4cb19f817ef0ed721c2a3fe27d72b12156 (patch) | |
tree | 87234984ff7e3356fef97f2ce955537351b9cd62 | |
parent | f4efbdfb44ebb7dfe4c19759c426153bdd48a1dd (diff) | |
download | glibc-620a5d4cb19f817ef0ed721c2a3fe27d72b12156.tar glibc-620a5d4cb19f817ef0ed721c2a3fe27d72b12156.tar.gz glibc-620a5d4cb19f817ef0ed721c2a3fe27d72b12156.tar.bz2 glibc-620a5d4cb19f817ef0ed721c2a3fe27d72b12156.zip |
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-- | ChangeLog | 6 | ||||
-rw-r--r-- | posix/regex_internal.h | 18 |
2 files changed, 7 insertions, 17 deletions
@@ -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> |