aboutsummaryrefslogtreecommitdiff
path: root/posix/regcomp.c
diff options
context:
space:
mode:
Diffstat (limited to 'posix/regcomp.c')
-rw-r--r--posix/regcomp.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/posix/regcomp.c b/posix/regcomp.c
index a762859f8c..9f56b389df 100644
--- a/posix/regcomp.c
+++ b/posix/regcomp.c
@@ -964,7 +964,7 @@ static void
optimize_utf8 (dfa)
re_dfa_t *dfa;
{
- int node;
+ int node, i;
for (node = 0; node < dfa->nodes_len; ++node)
switch (dfa->nodes[node].type)
@@ -999,6 +999,12 @@ optimize_utf8 (dfa)
case OP_OPEN_SUBEXP:
case OP_CLOSE_SUBEXP:
break;
+ case SIMPLE_BRACKET:
+ /* Just double check. */
+ for (i = 0x80 / UINT_BITS; i < BITSET_UINTS; ++i)
+ if (dfa->nodes[node].opr.sbcset[i])
+ return;
+ break;
default:
return;
}