Hi mclow.lists, EricWF,

Android can't use ctype_base::mask for its char_class_type because the bionic 
ctype implementation comes from openbsd, which uses an 8-bit ctype mask which 
isn't large enough to encode the standard ctypes and __regex_word.

This change depends on http://reviews.llvm.org/D4642.

http://reviews.llvm.org/D4648

Files:
  include/regex

Index: include/regex
===================================================================
--- include/regex
+++ include/regex
@@ -962,9 +962,18 @@
     typedef _CharT                  char_type;
     typedef basic_string<char_type> string_type;
     typedef locale                  locale_type;
+#ifdef __ANDROID__
+    typedef uint16_t                char_class_type;
+#else
     typedef ctype_base::mask        char_class_type;
+#endif
 
+#ifdef __ANDROID__
+    static const char_class_type __regex_word = 0x8000;
+#else
     static const char_class_type __regex_word = 0x80;
+#endif
+
 private:
     locale __loc_;
     const ctype<char_type>* __ct_;
Index: include/regex
===================================================================
--- include/regex
+++ include/regex
@@ -962,9 +962,18 @@
     typedef _CharT                  char_type;
     typedef basic_string<char_type> string_type;
     typedef locale                  locale_type;
+#ifdef __ANDROID__
+    typedef uint16_t                char_class_type;
+#else
     typedef ctype_base::mask        char_class_type;
+#endif
 
+#ifdef __ANDROID__
+    static const char_class_type __regex_word = 0x8000;
+#else
     static const char_class_type __regex_word = 0x80;
+#endif
+
 private:
     locale __loc_;
     const ctype<char_type>* __ct_;
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to