]> Savannah Git Hosting - gnulib.git/commitdiff
regex: fix bug with >=16 subexpressions
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 22 Jan 2020 01:59:10 +0000 (17:59 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 22 Jan 2020 02:47:31 +0000 (18:47 -0800)
* lib/regex_internal.h (struct re_backref_cache_entry):
Use bitset_word_t as the type of eps_reachable_subexps_map,
instead of unsigned short int.  This fixes a bug I introduced
to glibc in 2005-09-28T17:33:18Z!drepper@redhat.com (glibc commit
2c05d33f90861d074dc12808dafbde30f487b1a0, BZ #1302).
Remove unused member 'unused'.

ChangeLog
lib/regex_internal.h

index df8d996c268fe13954bae2beffd2b9de8c33e5b2..2336126b099608e08a69a772037f68a9023b0d19 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2020-01-21  Paul Eggert  <eggert@cs.ucla.edu>
 
+       regex: fix bug with >=16 subexpressions
+       * lib/regex_internal.h (struct re_backref_cache_entry):
+       Use bitset_word_t as the type of eps_reachable_subexps_map,
+       instead of unsigned short int.  This fixes a bug I introduced
+       to glibc in 2005-09-28T17:33:18Z!drepper@redhat.com (glibc commit
+       2c05d33f90861d074dc12808dafbde30f487b1a0, BZ #1302).
+       Remove unused member 'unused'.
+
        regex: simplify definition of BITSET_WORD_BITS
        * config/srclist.txt: Remove regex.c, regex_internal.h temporarily.
        * lib/regex.c (__STDC_WANT_IEC_60559_BFP_EXT__): Define.
index 30e921fefb62aca391820aa68b264bbde6bf9bb0..13e15e21ec18796e19f96eee49c1d0814e9e633a 100644 (file)
@@ -573,9 +573,8 @@ struct re_backref_cache_entry
   Idx str_idx;
   Idx subexp_from;
   Idx subexp_to;
+  bitset_word_t eps_reachable_subexps_map;
   char more;
-  char unused;
-  unsigned short int eps_reachable_subexps_map;
 };
 
 typedef struct