Revert "[libc++] ECMAScript IdentityEscape is ambiguous (2584)"
This reverts commit 6d2a66b10d458e34c852be46028092d2b46edc14.
The regex expressions in some lld tests need to be fixed. Reverting
until those are fixed.
diff --git a/libcxx/include/regex b/libcxx/include/regex
index a725dd2..433ba0f 100644
--- a/libcxx/include/regex
+++ b/libcxx/include/regex
@@ -4438,9 +4438,6 @@
__ml->__add_char('_');
++__first;
break;
- default:
- __ml = __start_matching_list(true);
- ++__first;
}
}
return __first;
diff --git a/libcxx/test/std/re/re.alg/re.alg.match/ecma.pass.cpp b/libcxx/test/std/re/re.alg/re.alg.match/ecma.pass.cpp
index 1e177eb..e15533d 100644
--- a/libcxx/test/std/re/re.alg/re.alg.match/ecma.pass.cpp
+++ b/libcxx/test/std/re/re.alg/re.alg.match/ecma.pass.cpp
@@ -1391,17 +1391,6 @@
assert(m.position(0) == 0);
assert(m.str(0) == s);
}
- {
- // LWG#2584: identity escapes. Match exact chars/strings.
- const std::regex r1("\\z");
- assert(std::regex_match("z", r1));
-
- const std::regex r2("\\zz");
- assert(std::regex_match("zz", r2));
-
- const std::regex r3("\\zx");
- assert(std::regex_match("zx", r3));
- }
return 0;
}
diff --git a/libcxx/test/std/re/re.regex/re.regex.construct/bad_escape.pass.cpp b/libcxx/test/std/re/re.regex/re.regex.construct/bad_escape.pass.cpp
index eb7d937..abb854e 100644
--- a/libcxx/test/std/re/re.regex/re.regex.construct/bad_escape.pass.cpp
+++ b/libcxx/test/std/re/re.regex/re.regex.construct/bad_escape.pass.cpp
@@ -32,11 +32,15 @@
int main(int, char**)
{
assert(error_escape_thrown("[\\a]"));
+ assert(error_escape_thrown("\\a"));
assert(error_escape_thrown("\\"));
assert(error_escape_thrown("[\\e]"));
+ assert(error_escape_thrown("\\e"));
assert(error_escape_thrown("[\\c:]"));
+ assert(error_escape_thrown("\\c:"));
+ assert(error_escape_thrown("\\c"));
assert(!error_escape_thrown("[\\cA]"));
assert(!error_escape_thrown("\\cA"));
diff --git a/libcxx/www/cxx1z_status.html b/libcxx/www/cxx1z_status.html
index ec0206c..8f3f883 100644
--- a/libcxx/www/cxx1z_status.html
+++ b/libcxx/www/cxx1z_status.html
@@ -392,7 +392,7 @@
<tr><td><a href="https://wg21.link/LWG2569">2569</a></td><td>conjunction and disjunction requirements are too strict</td><td>Issaquah</td><td>Complete</td></tr>
<tr><td><a href="https://wg21.link/LWG2570">2570</a></td><td>[fund.ts.v2] conjunction and disjunction requirements are too strict</td><td>Issaquah</td><td></td></tr>
<tr><td><a href="https://wg21.link/LWG2578">2578</a></td><td>Iterator requirements should reference iterator traits</td><td>Issaquah</td><td>Complete</td></tr>
- <tr><td><a href="https://wg21.link/LWG2584">2584</a></td><td><regex> ECMAScript IdentityEscape is ambiguous</td><td>Issaquah</td><td>Complete</td></tr>
+ <tr><td><a href="https://wg21.link/LWG2584">2584</a></td><td><regex> ECMAScript IdentityEscape is ambiguous</td><td>Issaquah</td><td></td></tr>
<tr><td><a href="https://wg21.link/LWG2587">2587</a></td><td>"Convertible to bool" requirement in conjunction and disjunction</td><td>Issaquah</td><td>Resolved by 2567</td></tr>
<tr><td><a href="https://wg21.link/LWG2588">2588</a></td><td>[fund.ts.v2] "Convertible to bool" requirement in conjunction and disjunction</td><td>Issaquah</td><td></td></tr>
<tr><td><a href="https://wg21.link/LWG2589">2589</a></td><td>match_results can't satisfy the requirements of a container</td><td>Issaquah</td><td>Complete</td></tr>