summaryrefslogtreecommitdiffstats
path: root/libcxx/src/regex.cpp
diff options
context:
space:
mode:
authorDan Albert <danalbert@google.com>2014-07-29 19:23:39 +0000
committerDan Albert <danalbert@google.com>2014-07-29 19:23:39 +0000
commit15c010a37e28f28b85fc08a3fa5c3b8090217500 (patch)
tree99d13a684a6a5a943f50f8b453ef8baa58f7f38c /libcxx/src/regex.cpp
parent924e9e0226662e0673545d97ea6f3394a81388ad (diff)
Base regex code on char_class_type.
__get_classname() and __bracket_expression were assuming that char_class_type was ctype_base::mask rather than using regex_traits<_CharT>::char_class_type. This change allows char_class_type to be defined to something other than ctype_base::mask so that the implementation will still work for platforms with an 8-bit ctype mask (such as Android and OpenBSD). llvm-svn: 214201
Diffstat (limited to 'libcxx/src/regex.cpp')
-rw-r--r--libcxx/src/regex.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/libcxx/src/regex.cpp b/libcxx/src/regex.cpp
index fb820e2bfedc..17dd6eaa60a7 100644
--- a/libcxx/src/regex.cpp
+++ b/libcxx/src/regex.cpp
@@ -207,7 +207,7 @@ const collationnames collatenames[] =
struct classnames
{
const char* elem_;
- ctype_base::mask mask_;
+ regex_traits<char>::char_class_type mask_;
};
#if defined(__clang__)
@@ -254,12 +254,12 @@ __get_collation_name(const char* s)
return r;
}
-ctype_base::mask
+regex_traits<char>::char_class_type
__get_classname(const char* s, bool __icase)
{
const classnames* i =
_VSTD::lower_bound(begin(ClassNames), end(ClassNames), s, use_strcmp());
- ctype_base::mask r = 0;
+ regex_traits<char>::char_class_type r = 0;
if (i != end(ClassNames) && strcmp(s, i->elem_) == 0)
{
r = i->mask_;