In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/de97954862ed37d913c4b9a48758aba578a8cf0c?hp=71ca73e5fa9639ac33e9f2e74cd0c32288a5040d>

- Log -----------------------------------------------------------------
commit de97954862ed37d913c4b9a48758aba578a8cf0c
Author: Petr Písař <[email protected]>
Date:   Mon Nov 28 13:06:24 2016 +0100

    Silent const correctnes warnings in utf8_hop functions
    
    GCC -Wcast-qual option reports a const violation in utf8_hop
    functions. They take a pointer to constant data but returns pointer to
    non-constant data.
    
    It's impossible to fix this without changing their prototype.
    Therefore this patch asks a compiler to ignore the violations.
    
    Signed-off-by: Petr Písař <[email protected]>

M       inline.h

commit 9f2eed981068e7abbcc52267863529bc59e9c8c0
Author: Petr Písař <[email protected]>
Date:   Thu Nov 24 17:12:41 2016 +0100

    Fix const correctness in utf8.h
    
    The original code was generated and then hand-tunes. Therefore
    I edited the code in place instead of fixing the regen/regcharclass.pl
    generator.
    
    Signed-off-by: Petr Písař <[email protected]>

M       utf8.h
M       utfebcdic.h

commit 463ddf34c08f2c97199b1bb242da1f17494d4d1a
Author: Petr Písař <[email protected]>
Date:   Thu Nov 24 16:34:09 2016 +0100

    Fix const correctness in hv_func.h
    
    Building an XS code with -Wcast-qual yielded warnings about discarding
    const qualifiers from pointer targets like:
    
    $ printf '#include "EXTERN.h"\n#include "perl.h"\n' | gcc -Wcast-qual 
-I/usr/lib64/perl5/CORE -c -x c -
    In file included from /usr/lib64/perl5/CORE/hv.h:629:0,
                     from /usr/lib64/perl5/CORE/perl.h:3740,
                     from <stdin>:2:
    /usr/lib64/perl5/CORE/hv_func.h: In function ‘S_perl_hash_siphash_2_4’:
    /usr/lib64/perl5/CORE/hv_func.h:213:17: warning: cast discards ‘const’ 
qualifier from pointer target type [-Wcast-qual]
       U64TYPE k0 = ((U64TYPE*)seed)[0];
                     ^
    
    Signed-off-by: Petr Písař <[email protected]>

M       hv_func.h
-----------------------------------------------------------------------

Summary of changes:
 hv_func.h   |  22 ++---
 inline.h    |  11 ++-
 utf8.h      | 114 ++++++++++++-------------
 utfebcdic.h | 276 ++++++++++++++++++++++++++++++------------------------------
 4 files changed, 216 insertions(+), 207 deletions(-)

diff --git a/hv_func.h b/hv_func.h
index 8866db909f..57b1ed1375 100644
--- a/hv_func.h
+++ b/hv_func.h
@@ -118,7 +118,7 @@
 
 #if (BYTEORDER == 0x1234 || BYTEORDER == 0x12345678) && U32SIZE == 4
   /* CPU endian matches murmurhash algorithm, so read 32-bit word directly */
-  #define U8TO32_LE(ptr)   (*((U32*)(ptr)))
+  #define U8TO32_LE(ptr)   (*((const U32*)(ptr)))
 #elif BYTEORDER == 0x4321 || BYTEORDER == 0x87654321
   /* TODO: Add additional cases below where a compiler provided bswap32 is 
available */
   #if defined(__GNUC__) && (__GNUC__>4 || (__GNUC__==4 && __GNUC_MINOR__>=3))
@@ -210,8 +210,8 @@ S_perl_hash_siphash_2_4(const unsigned char * const seed, 
const unsigned char *i
   U64 v3 = UINT64_C(0x7465646279746573);
 
   U64 b;
-  U64 k0 = ((U64*)seed)[0];
-  U64 k1 = ((U64*)seed)[1];
+  U64 k0 = ((const U64*)seed)[0];
+  U64 k1 = ((const U64*)seed)[1];
   U64 m;
   const int left = inlen & 7;
   const U8 *end = in + inlen - left;
@@ -269,7 +269,7 @@ S_perl_hash_siphash_2_4(const unsigned char * const seed, 
const unsigned char *i
 
 PERL_STATIC_INLINE U32
 S_perl_hash_superfast(const unsigned char * const seed, const unsigned char 
*str, STRLEN len) {
-    U32 hash = *((U32*)seed) + (U32)len;
+    U32 hash = *((const U32*)seed) + (U32)len;
     U32 tmp;
     int rem= len & 3;
     len >>= 2;
@@ -373,7 +373,7 @@ S_perl_hash_superfast(const unsigned char * const seed, 
const unsigned char *str
 /* now we create the hash function */
 PERL_STATIC_INLINE U32
 S_perl_hash_murmur3(const unsigned char * const seed, const unsigned char 
*ptr, STRLEN len) {
-    U32 h1 = *((U32*)seed);
+    U32 h1 = *((const U32*)seed);
     U32 k1;
     U32 carry = 0;
 
@@ -467,7 +467,7 @@ S_perl_hash_murmur3(const unsigned char * const seed, const 
unsigned char *ptr,
 PERL_STATIC_INLINE U32
 S_perl_hash_djb2(const unsigned char * const seed, const unsigned char *str, 
const STRLEN len) {
     const unsigned char * const end = (const unsigned char *)str + len;
-    U32 hash = *((U32*)seed) + (U32)len;
+    U32 hash = *((const U32*)seed) + (U32)len;
     while (str < end) {
         hash = ((hash << 5) + hash) + *str++;
     }
@@ -477,7 +477,7 @@ S_perl_hash_djb2(const unsigned char * const seed, const 
unsigned char *str, con
 PERL_STATIC_INLINE U32
 S_perl_hash_sdbm(const unsigned char * const seed, const unsigned char *str, 
const STRLEN len) {
     const unsigned char * const end = (const unsigned char *)str + len;
-    U32 hash = *((U32*)seed) + (U32)len;
+    U32 hash = *((const U32*)seed) + (U32)len;
     while (str < end) {
         hash = (hash << 6) + (hash << 16) - hash + *str++;
     }
@@ -503,7 +503,7 @@ S_perl_hash_sdbm(const unsigned char * const seed, const 
unsigned char *str, con
 PERL_STATIC_INLINE U32
 S_perl_hash_one_at_a_time(const unsigned char * const seed, const unsigned 
char *str, const STRLEN len) {
     const unsigned char * const end = (const unsigned char *)str + len;
-    U32 hash = *((U32*)seed) + (U32)len;
+    U32 hash = *((const U32*)seed) + (U32)len;
     while (str < end) {
         hash += *str++;
         hash += (hash << 10);
@@ -518,7 +518,7 @@ S_perl_hash_one_at_a_time(const unsigned char * const seed, 
const unsigned char
 PERL_STATIC_INLINE U32
 S_perl_hash_one_at_a_time_hard(const unsigned char * const seed, const 
unsigned char *str, const STRLEN len) {
     const unsigned char * const end = (const unsigned char *)str + len;
-    U32 hash = *((U32*)seed) + (U32)len;
+    U32 hash = *((const U32*)seed) + (U32)len;
     
     while (str < end) {
         hash += (hash << 10);
@@ -553,7 +553,7 @@ S_perl_hash_one_at_a_time_hard(const unsigned char * const 
seed, const unsigned
 PERL_STATIC_INLINE U32
 S_perl_hash_old_one_at_a_time(const unsigned char * const seed, const unsigned 
char *str, const STRLEN len) {
     const unsigned char * const end = (const unsigned char *)str + len;
-    U32 hash = *((U32*)seed);
+    U32 hash = *((const U32*)seed);
     while (str < end) {
         hash += *str++;
         hash += (hash << 10);
@@ -581,7 +581,7 @@ S_perl_hash_murmur_hash_64a (const unsigned char * const 
seed, const unsigned ch
 {
         const U64 m = UINT64_C(0xc6a4a7935bd1e995);
         const int r = 47;
-        U64 h = *((U64*)seed) ^ len;
+        U64 h = *((const U64*)seed) ^ len;
         const U64 * data = (const U64 *)str;
         const U64 * end = data + (len/8);
         const unsigned char * data2;
diff --git a/inline.h b/inline.h
index 346dcdc4cf..acd19e5fb6 100644
--- a/inline.h
+++ b/inline.h
@@ -916,7 +916,9 @@ Perl_utf8_hop(const U8 *s, SSize_t off)
                s--;
        }
     }
+    GCC_DIAG_IGNORE(-Wcast-qual);
     return (U8 *)s;
+    GCC_DIAG_RESTORE;
 }
 
 /*
@@ -950,12 +952,17 @@ Perl_utf8_hop_forward(const U8 *s, SSize_t off, const U8 
*end)
 
     while (off--) {
         STRLEN skip = UTF8SKIP(s);
-        if ((STRLEN)(end - s) <= skip)
+        if ((STRLEN)(end - s) <= skip) {
+            GCC_DIAG_IGNORE(-Wcast-qual);
             return (U8 *)end;
+            GCC_DIAG_RESTORE;
+        }
         s += skip;
     }
 
+    GCC_DIAG_IGNORE(-Wcast-qual);
     return (U8 *)s;
+    GCC_DIAG_RESTORE;
 }
 
 /*
@@ -993,7 +1000,9 @@ Perl_utf8_hop_back(const U8 *s, SSize_t off, const U8 
*start)
             s--;
     }
     
+    GCC_DIAG_IGNORE(-Wcast-qual);
     return (U8 *)s;
+    GCC_DIAG_RESTORE;
 }
 
 /*
diff --git a/utf8.h b/utf8.h
index a93519a166..4b51450c6c 100644
--- a/utf8.h
+++ b/utf8.h
@@ -320,15 +320,15 @@ C<cp> is Unicode if above 255; otherwise is 
platform-native.
 */
 /*** GENERATED CODE ***/
 #define is_UTF8_CHAR_utf8_no_length_checks(s)                               \
-( ( 0xC2 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xDF ) ?                          \
-    ( LIKELY( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) ? 2 : 0 )                    \
-: ( 0xE0 == ((U8*)s)[0] ) ?                                                 \
-    ( LIKELY( ( ( ((U8*)s)[1] & 0xE0 ) == 0xA0 ) && ( ( ((U8*)s)[2] & 0xC0 ) 
== 0x80 ) ) ? 3 : 0 )\
-: ( 0xE1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xEF ) ?                          \
-    ( LIKELY( ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) && ( ( ((U8*)s)[2] & 0xC0 ) 
== 0x80 ) ) ? 3 : 0 )\
-: ( 0xF0 == ((U8*)s)[0] ) ?                                                 \
-    ( LIKELY( ( ( 0x90 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0xBF ) && ( ( 
((U8*)s)[2] & 0xC0 ) == 0x80 ) ) && ( ( ((U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 
0 )\
-: ( ( ( ( 0xF1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xF7 ) && LIKELY( ( 
((U8*)s)[1] & 0xC0 ) == 0x80 ) ) && LIKELY( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) 
&& LIKELY( ( ((U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 :  ... [3 chars truncated]
+( ( 0xC2 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xDF ) ?                 
         \
+    ( LIKELY( ( ((const U8*)s)[1] & 0xC0 ) == 0x80 ) ? 2 : 0 )                 
   \
+: ( 0xE0 == ((const U8*)s)[0] ) ?                                              
   \
+    ( LIKELY( ( ( ((const U8*)s)[1] & 0xE0 ) == 0xA0 ) && ( ( ((const 
U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
+: ( 0xE1 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xEF ) ?                 
         \
+    ( LIKELY( ( ( ((const U8*)s)[1] & 0xC0 ) == 0x80 ) && ( ( ((const 
U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
+: ( 0xF0 == ((const U8*)s)[0] ) ?                                              
   \
+    ( LIKELY( ( ( 0x90 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0xBF ) && 
( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ) && ( ( ((const U8*)s)[3] & 0xC0 ) == 
0x80 ) ) ? 4 : 0 )\
+: ( ( ( ( 0xF1 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xF7 ) && LIKELY( 
( ((const U8*)s)[1] & 0xC0 ) == 0x80 ) ) && LIKELY( ( ((const U8*)s)[2] & 0xC0 
) == 0x80 ) ) && LIKELY( ( ((const U8*)s)[ ... [33 chars truncated]
 
 /* The above macro handles UTF-8 that has this start byte as the maximum */
 #define _IS_UTF8_CHAR_HIGHEST_START_BYTE 0xF7
@@ -342,43 +342,43 @@ C<cp> is Unicode if above 255; otherwise is 
platform-native.
 */
 /*** GENERATED CODE ***/
 #define is_STRICT_UTF8_CHAR_utf8_no_length_checks(s)                        \
-( ( 0xC2 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xDF ) ?                          \
-    ( LIKELY( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) ? 2 : 0 )                       
   \
-: ( 0xE0 == ((U8*)s)[0] ) ?                                                 \
-    ( LIKELY( ( ( ((U8*)s)[1] & 0xE0 ) == 0xA0 ) && ( ( ((U8*)s)[2] & 0xC0 ) 
== 0x80 ) ) ? 3 : 0 )\
-: ( ( 0xE1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xEC ) || 0xEE == ((U8*)s)[0] ) ?\
-    ( ( ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 
) ) ? 3 : 0 )\
-: ( 0xED == ((U8*)s)[0] ) ?                                                 \
-    ( LIKELY( ( ( ((U8*)s)[1] & 0xE0 ) == 0x80 ) && ( ( ((U8*)s)[2] & 0xC0 ) 
== 0x80 ) ) ? 3 : 0 )\
-: ( 0xEF == ((U8*)s)[0] ) ?                                                 \
-    ( ( ( 0x80 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0xB6 ) || ( 0xB8 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0xBE ) ) ?\
-       ( LIKELY( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ? 3 : 0 )                    
  \
-    : ( 0xB7 == ((U8*)s)[1] ) ?                                             \
-       ( LIKELY( ( ((U8*)s)[2] & 0xF0 ) == 0x80 || ( ((U8*)s)[2] & 0xF0 ) == 
0xB0 ) ? 3 : 0 )\
-    : ( ( 0xBF == ((U8*)s)[1] ) && ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 
0xBD ) ) ? 3 : 0 )\
-: ( 0xF0 == ((U8*)s)[0] ) ?                                                 \
-    ( ( ( 0x90 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x9E ) || ( 0xA0 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0xAE ) || ( 0xB0 <= ((U8*)s)[1] && ((U8*)s)[1] <= 
0xBE ) ) ?\
-       ( LIKELY( ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) && ( ( ((U8*)s)[3] & 0xC0 
) == 0x80 ) ) ? 4 : 0 )\
-    : ( ((U8*)s)[1] == 0x9F || ( ( ((U8*)s)[1] & 0xEF ) == 0xAF ) ) ?       \
-       ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBE ) ?                  \
-           ( LIKELY( ( ((U8*)s)[3] & 0xC0 ) == 0x80 ) ? 4 : 0 )                
  \
-       : LIKELY( ( 0xBF == ((U8*)s)[2] ) && ( 0x80 <= ((U8*)s)[3] && 
((U8*)s)[3] <= 0xBD ) ) ? 4 : 0 )\
+( ( 0xC2 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xDF ) ?                 
         \
+    ( LIKELY( ( ((const U8*)s)[1] & 0xC0 ) == 0x80 ) ? 2 : 0 )                 
         \
+: ( 0xE0 == ((const U8*)s)[0] ) ?                                              
   \
+    ( LIKELY( ( ( ((const U8*)s)[1] & 0xE0 ) == 0xA0 ) && ( ( ((const 
U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
+: ( ( 0xE1 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xEC ) || 0xEE == 
((const U8*)s)[0] ) ?\
+    ( ( ( ( ((const U8*)s)[1] & 0xC0 ) == 0x80 ) && ( ( ((const U8*)s)[2] & 
0xC0 ) == 0x80 ) ) ? 3 : 0 )\
+: ( 0xED == ((const U8*)s)[0] ) ?                                              
   \
+    ( LIKELY( ( ( ((const U8*)s)[1] & 0xE0 ) == 0x80 ) && ( ( ((const 
U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
+: ( 0xEF == ((const U8*)s)[0] ) ?                                              
   \
+    ( ( ( 0x80 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0xB6 ) || ( 0xB8 
<= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0xBE ) ) ?\
+       ( LIKELY( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ? 3 : 0 )              
        \
+    : ( 0xB7 == ((const U8*)s)[1] ) ?                                          
   \
+       ( LIKELY( ( ((const U8*)s)[2] & 0xF0 ) == 0x80 || ( ((const U8*)s)[2] & 
0xF0 ) == 0xB0 ) ? 3 : 0 )\
+    : ( ( 0xBF == ((const U8*)s)[1] ) && ( 0x80 <= ((const U8*)s)[2] && 
((const U8*)s)[2] <= 0xBD ) ) ? 3 : 0 )\
+: ( 0xF0 == ((const U8*)s)[0] ) ?                                              
   \
+    ( ( ( 0x90 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x9E ) || ( 0xA0 
<= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0xAE ) || ( 0xB0 <= ((const 
U8*)s)[1] && ((const U8*)s)[1] <= 0xBE ) ) ?\
+       ( LIKELY( ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) && ( ( ((const 
U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 0 )\
+    : ( ((const U8*)s)[1] == 0x9F || ( ( ((const U8*)s)[1] & 0xEF ) == 0xAF ) 
) ?       \
+       ( ( 0x80 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xBE ) ?          
        \
+           ( LIKELY( ( ((const U8*)s)[3] & 0xC0 ) == 0x80 ) ? 4 : 0 )          
        \
+       : LIKELY( ( 0xBF == ((const U8*)s)[2] ) && ( 0x80 <= ((const U8*)s)[3] 
&& ((const U8*)s)[3] <= 0xBD ) ) ? 4 : 0 )\
     : 0 )                                                                   \
-: ( 0xF1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xF3 ) ?                          \
-    ( ( ( ( ((U8*)s)[1] & 0xC8 ) == 0x80 ) || ( ( ((U8*)s)[1] & 0xCC ) == 0x88 
) || ( ( ((U8*)s)[1] & 0xCE ) == 0x8C ) || ( ( ((U8*)s)[1] & 0xCF ) == 0x8E ) ) 
?\
-       ( LIKELY( ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) && ( ( ((U8*)s)[3] & 0xC0 
) == 0x80 ) ) ? 4 : 0 )\
-    : ( ( ((U8*)s)[1] & 0xCF ) == 0x8F ) ?                                  \
-       ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBE ) ?                  \
-           ( LIKELY( ( ((U8*)s)[3] & 0xC0 ) == 0x80 ) ? 4 : 0 )                
  \
-       : LIKELY( ( 0xBF == ((U8*)s)[2] ) && ( 0x80 <= ((U8*)s)[3] && 
((U8*)s)[3] <= 0xBD ) ) ? 4 : 0 )\
+: ( 0xF1 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xF3 ) ?                 
         \
+    ( ( ( ( ((const U8*)s)[1] & 0xC8 ) == 0x80 ) || ( ( ((const U8*)s)[1] & 
0xCC ) == 0x88 ) || ( ( ((const U8*)s)[1] & 0xCE ) == 0x8C ) || ( ( ((const 
U8*)s)[1] & 0xCF ) == 0x8E ) ) ?\
+       ( LIKELY( ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) && ( ( ((const 
U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 0 )\
+    : ( ( ((const U8*)s)[1] & 0xCF ) == 0x8F ) ?                               
   \
+       ( ( 0x80 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xBE ) ?          
        \
+           ( LIKELY( ( ((const U8*)s)[3] & 0xC0 ) == 0x80 ) ? 4 : 0 )          
        \
+       : LIKELY( ( 0xBF == ((const U8*)s)[2] ) && ( 0x80 <= ((const U8*)s)[3] 
&& ((const U8*)s)[3] <= 0xBD ) ) ? 4 : 0 )\
     : 0 )                                                                   \
-: ( 0xF4 == ((U8*)s)[0] ) ?                                                 \
-    ( ( 0x80 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x8E ) ?                      \
-       ( LIKELY( ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) && ( ( ((U8*)s)[3] & 0xC0 
) == 0x80 ) ) ? 4 : 0 )\
-    : ( 0x8F == ((U8*)s)[1] ) ?                                             \
-       ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBE ) ?                  \
-           ( LIKELY( ( ((U8*)s)[3] & 0xC0 ) == 0x80 ) ? 4 : 0 )                
  \
-       : LIKELY( ( 0xBF == ((U8*)s)[2] ) && ( 0x80 <= ((U8*)s)[3] && 
((U8*)s)[3] <= 0xBD ) ) ? 4 : 0 )\
+: ( 0xF4 == ((const U8*)s)[0] ) ?                                              
   \
+    ( ( 0x80 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x8E ) ?             
         \
+       ( LIKELY( ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) && ( ( ((const 
U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 0 )\
+    : ( 0x8F == ((const U8*)s)[1] ) ?                                          
   \
+       ( ( 0x80 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xBE ) ?          
        \
+           ( LIKELY( ( ((const U8*)s)[3] & 0xC0 ) == 0x80 ) ? 4 : 0 )          
        \
+       : LIKELY( ( 0xBF == ((const U8*)s)[2] ) && ( 0x80 <= ((const U8*)s)[3] 
&& ((const U8*)s)[3] <= 0xBD ) ) ? 4 : 0 )\
     : 0 )                                                                   \
 : 0 )
 
@@ -390,19 +390,19 @@ C<cp> is Unicode if above 255; otherwise is 
platform-native.
 */
 /*** GENERATED CODE ***/
 #define is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks(s)                     \
-( ( 0xC2 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xDF ) ?                          \
-    ( LIKELY( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) ? 2 : 0 )                    \
-: ( 0xE0 == ((U8*)s)[0] ) ?                                                 \
-    ( LIKELY( ( ( ((U8*)s)[1] & 0xE0 ) == 0xA0 ) && ( ( ((U8*)s)[2] & 0xC0 ) 
== 0x80 ) ) ? 3 : 0 )\
-: ( ( 0xE1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xEC ) || ( ((U8*)s)[0] & 0xFE ) 
== 0xEE ) ?\
-    ( LIKELY( ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) && ( ( ((U8*)s)[2] & 0xC0 ) 
== 0x80 ) ) ? 3 : 0 )\
-: ( 0xED == ((U8*)s)[0] ) ?                                                 \
-    ( LIKELY( ( ( ((U8*)s)[1] & 0xE0 ) == 0x80 ) && ( ( ((U8*)s)[2] & 0xC0 ) 
== 0x80 ) ) ? 3 : 0 )\
-: ( 0xF0 == ((U8*)s)[0] ) ?                                                 \
-    ( LIKELY( ( ( 0x90 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0xBF ) && ( ( 
((U8*)s)[2] & 0xC0 ) == 0x80 ) ) && ( ( ((U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 
0 )\
-: ( 0xF1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xF3 ) ?                          \
-    ( LIKELY( ( ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) && ( ( ((U8*)s)[2] & 0xC0 ) 
== 0x80 ) ) && ( ( ((U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 0 )\
-: LIKELY( ( ( ( 0xF4 == ((U8*)s)[0] ) && ( ( ((U8*)s)[1] & 0xF0 ) == 0x80 ) ) 
&& ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) && ( ( ((U8*)s)[3] & 0xC0 ) == 0x80 ) ) 
? 4 : 0 )
+( ( 0xC2 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xDF ) ?                 
         \
+    ( LIKELY( ( ((const U8*)s)[1] & 0xC0 ) == 0x80 ) ? 2 : 0 )                 
   \
+: ( 0xE0 == ((const U8*)s)[0] ) ?                                              
   \
+    ( LIKELY( ( ( ((const U8*)s)[1] & 0xE0 ) == 0xA0 ) && ( ( ((const 
U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
+: ( ( 0xE1 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xEC ) || ( ((const 
U8*)s)[0] & 0xFE ) == 0xEE ) ?\
+    ( LIKELY( ( ( ((const U8*)s)[1] & 0xC0 ) == 0x80 ) && ( ( ((const 
U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
+: ( 0xED == ((const U8*)s)[0] ) ?                                              
   \
+    ( LIKELY( ( ( ((const U8*)s)[1] & 0xE0 ) == 0x80 ) && ( ( ((const 
U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
+: ( 0xF0 == ((const U8*)s)[0] ) ?                                              
   \
+    ( LIKELY( ( ( 0x90 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0xBF ) && 
( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ) && ( ( ((const U8*)s)[3] & 0xC0 ) == 
0x80 ) ) ? 4 : 0 )\
+: ( 0xF1 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xF3 ) ?                 
         \
+    ( LIKELY( ( ( ( ((const U8*)s)[1] & 0xC0 ) == 0x80 ) && ( ( ((const 
U8*)s)[2] & 0xC0 ) == 0x80 ) ) && ( ( ((const U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 
4 : 0 )\
+: LIKELY( ( ( ( 0xF4 == ((const U8*)s)[0] ) && ( ( ((const U8*)s)[1] & 0xF0 ) 
== 0x80 ) ) && ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ) && ( ( ((const 
U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 0 )
 
 #endif /* EBCDIC vs ASCII */
 
diff --git a/utfebcdic.h b/utfebcdic.h
index fd247af157..07d45b7888 100644
--- a/utfebcdic.h
+++ b/utfebcdic.h
@@ -293,55 +293,55 @@ explicitly forbidden, and the shortest possible encoding 
should always be used
 
 /*** GENERATED CODE ***/
 #define is_UTF8_CHAR_utf8_no_length_checks(s)                               \
-( ( 0x80 == ((U8*)s)[0] || ( 0x8A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x90 ) || ( 
0x9A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((U8*)s)[0] && 
((U8*)s)[0] <= 0xAC ) || ( 0xAE <= ((U8*)s)[0]  ... [29 chars truncated]
-    ( LIKELY( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 
0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) ?  ... [8 chars truncated]
-: ( ( ( ((U8*)s)[0] & 0xFC ) == 0xB8 ) || ((U8*)s)[0] == 0xBC || ( ( 
((U8*)s)[0] & 0xFE ) == 0xBE ) || ( ( ((U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( 
((U8*)s)[0] & 0xFC ) == 0xCC ) ) ?\
-    ( LIKELY( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 
0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 )  ... [200 chars truncated]
+( ( 0x80 == ((const U8*)s)[0] || ( 0x8A <= ((const U8*)s)[0] && ((const 
U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xA0 
) || ( 0xAA <= ((const U8*)s)[0] && ((const U8* ... [83 chars truncated]
+    ( LIKELY( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 
0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const 
U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ... [50 chars truncated]
+: ( ( ( ((const U8*)s)[0] & 0xFC ) == 0xB8 ) || ((const U8*)s)[0] == 0xBC || ( 
( ((const U8*)s)[0] & 0xFE ) == 0xBE ) || ( ( ((const U8*)s)[0] & 0xEE ) == 
0xCA ) || ( ( ((const U8*)s)[0] & 0xFC ) ==  ... [11 chars truncated]
+    ( LIKELY( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || 
( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const 
U8*)s)[1] && ((const U8*)s)[1] <= 0x6A )  ... [284 chars truncated]
 : ( 0xDC == ((U8*)s)[0] ) ?                                                 \
-    ( LIKELY( ( ( ( 0x57 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 
0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4 ... [342 chars truncated]
-: ( ( 0xDD <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xDF ) || 0xE1 == ((U8*)s)[0] || ( 
0xEA <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xEC ) ) ?\
-    ( LIKELY( ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 
0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70  ... [392 chars truncated]
-: ( 0xED == ((U8*)s)[0] ) ?                                                 \
-    ( LIKELY( ( ( ( ( 0x49 == ((U8*)s)[1] || 0x4A == ((U8*)s)[1] ) || ( 0x51 
<= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] 
<= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x7 ... [584 chars truncated]
-: ( ( ( ( ( 0xEE == ((U8*)s)[0] ) && LIKELY( ( 0x41 <= ((U8*)s)[1] && 
((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 
0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( (( ... [628 chars truncated]
+    ( LIKELY( ( ( ( 0x57 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) 
|| ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const 
U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((c ... [456 chars truncated]
+: ( ( 0xDD <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xDF ) || 0xE1 == 
((const U8*)s)[0] || ( 0xEA <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xEC ) 
) ?\
+    ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) 
|| ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= 
((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A  ... [518 chars truncated]
+: ( 0xED == ((const U8*)s)[0] ) ?                                              
   \
+    ( LIKELY( ( ( ( ( 0x49 == ((const U8*)s)[1] || 0x4A == ((const U8*)s)[1] ) 
|| ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= 
((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6 ... [752 chars truncated]
+: ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && LIKELY( ( 0x41 <= ((const U8*)s)[1] 
&& ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const 
U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s) ... [802 chars truncated]
 
 /*      UTF8_CHAR_STRICT: Matches legal Unicode UTF-8 variant code points, no
                           surrrogates nor non-character code points */
 /*** GENERATED CODE ***/
 #define is_STRICT_UTF8_CHAR_utf8_no_length_checks_part0(s)                  \
-( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && 
((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 
0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72  ... [6 chars truncated]
-       ( LIKELY( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 
0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) &&  ... [197 chars truncated]
-    : ( 0x73 == ((U8*)s)[1] ) ?                                             \
-       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 
0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ... [7 chars truncated]
-           ( LIKELY( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 
<= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] 
<= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? ... [9 chars truncated]
-       : LIKELY( ( 0x73 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && 
((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 
0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s ... [36 chars 
truncated]
+( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= 
((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] 
&& ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ... [54 chars truncated]
+       ( LIKELY( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) 
|| ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= 
((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) ||  ... [281 chars truncated]
+    : ( 0x73 == ((const U8*)s)[1] ) ?                                          
   \
+       ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 
0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const 
U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 < ... [55 chars truncated]
+           ( LIKELY( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A 
) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= 
((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) | ... [51 chars truncated]
+       : LIKELY( ( 0x73 == ((const U8*)s)[2] ) && ( ( 0x41 <= ((const 
U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && 
((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] & ... [84 chars 
truncated]
     : 0 )
 
 
 /*** GENERATED CODE ***/
 #define is_STRICT_UTF8_CHAR_utf8_no_length_checks_part1(s)                  \
-( ( 0xED == ((U8*)s)[0] ) ?                                                 \
-    ( ( ( ( ((U8*)s)[1] & 0xEF ) == 0x49 ) || ( ( ((U8*)s)[1] & 0xF9 ) == 0x51 
) || ((U8*)s)[1] == 0x63 || ( ( ((U8*)s)[1] & 0xFD ) == 0x65 ) || ((U8*)s)[1] 
== 0x69 || ( ( ((U8*)s)[1] & 0xFD ) == 0x7 ... [8 chars truncated]
-       ( LIKELY( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 
<= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] 
<= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) & ... [389 chars truncated]
-    : ( ((U8*)s)[1] == 0x4A || ((U8*)s)[1] == 0x52 || ( ( ((U8*)s)[1] & 0xFD ) 
== 0x54 ) || ((U8*)s)[1] == 0x58 || ((U8*)s)[1] == 0x62 || ( ( ((U8*)s)[1] & 
0xFD ) == 0x64 ) || ( ( ((U8*)s)[1] & 0xFD  ... [54 chars truncated]
-       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 
0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ... [7 chars truncated]
-           ( LIKELY( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 
0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && 
((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ... [201 chars 
truncated]
-       : ( 0x73 == ((U8*)s)[2] ) ?                                         \
-           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 
0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <=  ... [11 chars truncated]
-               ( LIKELY( ( 0x41 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x4A ) || ( 
0x51 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((U8*)s)[4] && 
((U8*)s)[4] <= 0x6A ) || ( ((U8*)s)[4] & 0xFC ) == 0x70 ) ? 5  ... [6 chars 
truncated]
-           : LIKELY( ( 0x73 == ((U8*)s)[3] ) && ( ( 0x41 <= ((U8*)s)[4] && 
((U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x59 ) || ( 
0x62 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x6A ) || ( ((U ... [40 chars truncated]
+( ( 0xED == ((const U8*)s)[0] ) ?                                              
   \
+    ( ( ( ( ((const U8*)s)[1] & 0xEF ) == 0x49 ) || ( ( ((const U8*)s)[1] & 
0xF9 ) == 0x51 ) || ((const U8*)s)[1] == 0x63 || ( ( ((const U8*)s)[1] & 0xFD ) 
== 0x65 ) || ((const U8*)s)[1] == 0x69 || ( ... [44 chars truncated]
+       ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A 
) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= 
((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) | ... [515 chars truncated]
+    : ( ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x52 || ( ( ((const 
U8*)s)[1] & 0xFD ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ((const U8*)s)[1] 
== 0x62 || ( ( ((const U8*)s)[1] & 0xFD )  ... [102 chars truncated]
+       ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 
0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const 
U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 < ... [55 chars truncated]
+           ( LIKELY( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 
0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 
<= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) ... [285 chars truncated]
+       : ( 0x73 == ((const U8*)s)[2] ) ?                                       
  \
+           ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 
0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const 
U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x ... [59 chars truncated]
+               ( LIKELY( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 
0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 
<= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ... [48 chars 
truncated]
+           : LIKELY( ( 0x73 == ((const U8*)s)[3] ) && ( ( 0x41 <= ((const 
U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && 
((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[ ... [88 chars 
truncated]
        : 0 )                                                               \
     : 0 )                                                                   \
-: ( 0xEE == ((U8*)s)[0] ) ?                                                 \
-    ( ( 0x41 == ((U8*)s)[1] ) ?                                             \
-       ( LIKELY( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 
<= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] 
<= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) & ... [389 chars truncated]
-    : ( 0x42 == ((U8*)s)[1] ) ?                                             \
-       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 
0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ... [7 chars truncated]
-           ( LIKELY( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 
0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && 
((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ... [201 chars 
truncated]
-       : ( 0x73 == ((U8*)s)[2] ) ?                                         \
-           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 
0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <=  ... [11 chars truncated]
-               ( LIKELY( ( 0x41 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x4A ) || ( 
0x51 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((U8*)s)[4] && 
((U8*)s)[4] <= 0x6A ) || ( ((U8*)s)[4] & 0xFC ) == 0x70 ) ? 5  ... [6 chars 
truncated]
-           : LIKELY( ( 0x73 == ((U8*)s)[3] ) && ( ( 0x41 <= ((U8*)s)[4] && 
((U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x59 ) || ( 
0x62 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x6A ) || ( ((U ... [40 chars truncated]
+: ( 0xEE == ((const U8*)s)[0] ) ?                                              
   \
+    ( ( 0x41 == ((const U8*)s)[1] ) ?                                          
   \
+       ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A 
) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= 
((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) | ... [515 chars truncated]
+    : ( 0x42 == ((const U8*)s)[1] ) ?                                          
   \
+       ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 
0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const 
U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 < ... [55 chars truncated]
+           ( LIKELY( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 
0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 
<= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) ... [285 chars truncated]
+       : ( 0x73 == ((const U8*)s)[2] ) ?                                       
  \
+           ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 
0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const 
U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x ... [59 chars truncated]
+               ( LIKELY( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 
0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 
<= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ... [48 chars 
truncated]
+           : LIKELY( ( 0x73 == ((const U8*)s)[3] ) && ( ( 0x41 <= ((const 
U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && 
((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[ ... [88 chars 
truncated]
        : 0 )                                                               \
     : 0 )                                                                   \
 : 0 )
@@ -349,27 +349,27 @@ explicitly forbidden, and the shortest possible encoding 
should always be used
 
 /*** GENERATED CODE ***/
 #define is_STRICT_UTF8_CHAR_utf8_no_length_checks(s)                        \
-( ( 0x80 == ((U8*)s)[0] || ( 0x8A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x90 ) || ( 
0x9A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((U8*)s)[0] && 
((U8*)s)[0] <= 0xAC ) || ( 0xAE <= ((U8*)s)[0]  ... [29 chars truncated]
-    ( LIKELY( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 
0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) ?  ... [8 chars truncated]
-: ( ( ( ((U8*)s)[0] & 0xFC ) == 0xB8 ) || ((U8*)s)[0] == 0xBC || ( ( 
((U8*)s)[0] & 0xFE ) == 0xBE ) || ( ( ((U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( 
((U8*)s)[0] & 0xFC ) == 0xCC ) ) ?\
-    ( LIKELY( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 
0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 )  ... [200 chars truncated]
-: ( 0xDC == ((U8*)s)[0] ) ?                                                 \
-    ( LIKELY( ( ( ( 0x57 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 
0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4 ... [342 chars truncated]
-: ( 0xDD == ((U8*)s)[0] ) ?                                                 \
-    ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 
0x64 ) || ( 0x67 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0 ... [60 chars truncated]
-       ( LIKELY( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 
0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) &&  ... [197 chars truncated]
-    : ( 0x73 == ((U8*)s)[1] ) ?                                             \
-       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[2] && ((U8*)s)[2] <= 0x54 ) || ( 0x57 <= ((U8*)s)[2] && ((U8*)s)[2] <= 
0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ... [57 chars truncated]
-           ( LIKELY( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 
<= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] 
<= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? ... [9 chars truncated]
-       : ( 0x55 == ((U8*)s)[2] ) ?                                         \
-           ( LIKELY( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 
<= ((U8*)s)[3] && ((U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
-       : ( 0x56 == ((U8*)s)[2] ) ?                                         \
-           ( LIKELY( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 
<= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 
: 0 )\
-       : LIKELY( ( 0x73 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && 
((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 
0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s ... [36 chars 
truncated]
+( ( 0x80 == ((const U8*)s)[0] || ( 0x8A <= ((const U8*)s)[0] && ((const 
U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xA0 
) || ( 0xAA <= ((const U8*)s)[0] && ((const U8* ... [83 chars truncated]
+    ( LIKELY( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 
0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const 
U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ... [50 chars truncated]
+: ( ( ( ((const U8*)s)[0] & 0xFC ) == 0xB8 ) || ((const U8*)s)[0] == 0xBC || ( 
( ((const U8*)s)[0] & 0xFE ) == 0xBE ) || ( ( ((const U8*)s)[0] & 0xEE ) == 
0xCA ) || ( ( ((const U8*)s)[0] & 0xFC ) ==  ... [11 chars truncated]
+    ( LIKELY( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || 
( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const 
U8*)s)[1] && ((const U8*)s)[1] <= 0x6A )  ... [284 chars truncated]
+: ( 0xDC == ((const U8*)s)[0] ) ?                                              
   \
+    ( LIKELY( ( ( ( 0x57 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) 
|| ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const 
U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((c ... [456 chars truncated]
+: ( 0xDD == ((const U8*)s)[0] ) ?                                              
   \
+    ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 
<= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const 
U8*)s)[1] && ((const U8*)s)[1] <= 0x64 ) || ( 0x6 ... [120 chars truncated]
+       ( LIKELY( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) 
|| ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= 
((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) ||  ... [281 chars truncated]
+    : ( 0x73 == ((const U8*)s)[1] ) ?                                          
   \
+       ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 
0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x54 ) || ( 0x57 <= ((const 
U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 < ... [117 chars truncated]
+           ( LIKELY( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A 
) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= 
((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) | ... [51 chars truncated]
+       : ( 0x55 == ((const U8*)s)[2] ) ?                                       
  \
+           ( LIKELY( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A 
) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
+       : ( 0x56 == ((const U8*)s)[2] ) ?                                       
  \
+           ( LIKELY( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 
) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const 
U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
+       : LIKELY( ( 0x73 == ((const U8*)s)[2] ) && ( ( 0x41 <= ((const 
U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && 
((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] & ... [84 chars 
truncated]
     : 0 )                                                                   \
-: ( 0xDE == ((U8*)s)[0] || 0xE1 == ((U8*)s)[0] || 0xEB == ((U8*)s)[0] ) ?   \
-    ( LIKELY( ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 
0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70  ... [392 chars truncated]
-: ( 0xDF == ((U8*)s)[0] || 0xEA == ((U8*)s)[0] || 0xEC == ((U8*)s)[0] ) ? 
is_STRICT_UTF8_CHAR_utf8_no_length_checks_part0(s) : 
is_STRICT_UTF8_CHAR_utf8_no_length_checks_part1(s) )
+: ( 0xDE == ((const U8*)s)[0] || 0xE1 == ((const U8*)s)[0] || 0xEB == ((const 
U8*)s)[0] ) ?   \
+    ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) 
|| ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= 
((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A  ... [518 chars truncated]
+: ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const 
U8*)s)[0] ) ? is_STRICT_UTF8_CHAR_utf8_no_length_checks_part0(s) : 
is_STRICT_UTF8_CHAR_utf8_no_length_checks_part1(s) )
 
 /*      C9_STRICT_UTF8_CHAR: Matches legal Unicode UTF-8 variant code points
                              including non-character code points, no surrogates
@@ -378,19 +378,19 @@ explicitly forbidden, and the shortest possible encoding 
should always be used
 */
 /*** GENERATED CODE ***/
 #define is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks(s)             \
-( ( 0x80 == ((U8*)s)[0] || ( 0x8A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x90 ) || ( 
0x9A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((U8*)s)[0] && 
((U8*)s)[0] <= 0xAC ) || ( 0xAE <= ((U8*)s)[0]  ... [29 chars truncated]
-    ( LIKELY( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 
0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) ?  ... [8 chars truncated]
-: ( ( ( ((U8*)s)[0] & 0xFC ) == 0xB8 ) || ((U8*)s)[0] == 0xBC || ( ( 
((U8*)s)[0] & 0xFE ) == 0xBE ) || ( ( ((U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( 
((U8*)s)[0] & 0xFC ) == 0xCC ) ) ?\
-    ( LIKELY( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 
0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 )  ... [200 chars truncated]
-: ( 0xDC == ((U8*)s)[0] ) ?                                                 \
-    ( LIKELY( ( ( ( 0x57 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 
0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4 ... [342 chars truncated]
-: ( 0xDD == ((U8*)s)[0] ) ?                                                 \
-    ( LIKELY( ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 
0x64 ) || ( 0x67 <= ((U8*)s)[1] && ((U8*) ... [442 chars truncated]
-: ( ( ((U8*)s)[0] & 0xFE ) == 0xDE || 0xE1 == ((U8*)s)[0] || ( 0xEA <= 
((U8*)s)[0] && ((U8*)s)[0] <= 0xEC ) ) ?\
-    ( LIKELY( ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 
0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70  ... [392 chars truncated]
-: ( 0xED == ((U8*)s)[0] ) ?                                                 \
-    ( LIKELY( ( ( ( ( 0x49 == ((U8*)s)[1] || 0x4A == ((U8*)s)[1] ) || ( 0x51 
<= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] 
<= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x7 ... [584 chars truncated]
-: LIKELY( ( ( ( ( 0xEE == ((U8*)s)[0] ) && ( 0x41 == ((U8*)s)[1] || 0x42 == 
((U8*)s)[1] ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 
<= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || (  ... [472 chars truncated]
+( ( 0x80 == ((const U8*)s)[0] || ( 0x8A <= ((const U8*)s)[0] && ((const 
U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xA0 
) || ( 0xAA <= ((const U8*)s)[0] && ((const U8* ... [83 chars truncated]
+    ( LIKELY( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 
0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const 
U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ... [50 chars truncated]
+: ( ( ( ((const U8*)s)[0] & 0xFC ) == 0xB8 ) || ((const U8*)s)[0] == 0xBC || ( 
( ((const U8*)s)[0] & 0xFE ) == 0xBE ) || ( ( ((const U8*)s)[0] & 0xEE ) == 
0xCA ) || ( ( ((const U8*)s)[0] & 0xFC ) ==  ... [11 chars truncated]
+    ( LIKELY( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || 
( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const 
U8*)s)[1] && ((const U8*)s)[1] <= 0x6A )  ... [284 chars truncated]
+: ( 0xDC == ((const U8*)s)[0] ) ?                                              
   \
+    ( LIKELY( ( ( ( 0x57 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) 
|| ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const 
U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((c ... [456 chars truncated]
+: ( 0xDD == ((const U8*)s)[0] ) ?                                              
   \
+    ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) 
|| ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= 
((const U8*)s)[1] && ((const U8*)s)[1] <= 0x64  ... [580 chars truncated]
+: ( ( ((const U8*)s)[0] & 0xFE ) == 0xDE || 0xE1 == ((const U8*)s)[0] || ( 
0xEA <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xEC ) ) ?\
+    ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) 
|| ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= 
((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A  ... [518 chars truncated]
+: ( 0xED == ((const U8*)s)[0] ) ?                                              
   \
+    ( LIKELY( ( ( ( ( 0x49 == ((const U8*)s)[1] || 0x4A == ((const U8*)s)[1] ) 
|| ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= 
((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6 ... [752 chars truncated]
+: LIKELY( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] 
|| 0x42 == ((const U8*)s)[1] ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const 
U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*) ... [616 chars truncated]
 
 #endif
 
@@ -398,53 +398,53 @@ explicitly forbidden, and the shortest possible encoding 
should always be used
 
 /*** GENERATED CODE ***/
 #define is_UTF8_CHAR_utf8_no_length_checks(s)                               \
-( ( 0x78 == ((U8*)s)[0] || 0x80 == ((U8*)s)[0] || ( 0x8A <= ((U8*)s)[0] && 
((U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xA0 ) || ( 
0xAA <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xAF ) || ... [52 chars truncated]
-    ( LIKELY( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= (( ... [47 chars truncated]
-: ( ((U8*)s)[0] == 0xB7 || ( ( ((U8*)s)[0] & 0xFE ) == 0xB8 ) || ( ( 
((U8*)s)[0] & 0xFC ) == 0xBC ) || ( ( ((U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( 
((U8*)s)[0] & 0xFC ) == 0xCC ) ) ?\
-    ( LIKELY( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <=  ... [278 chars truncated]
-: ( 0xDC == ((U8*)s)[0] ) ?                                                 \
-    ( LIKELY( ( ( ( 0x57 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == 
((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) && ( ( 0x ... [459 chars truncated]
-: ( ( 0xDD <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xDF ) || 0xE1 == ((U8*)s)[0] || ( 
0xEA <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xEC ) ) ?\
-    ( LIKELY( ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 < ... [509 chars truncated]
-: ( 0xED == ((U8*)s)[0] ) ?                                                 \
-    ( LIKELY( ( ( ( ( 0x49 == ((U8*)s)[1] || 0x4A == ((U8*)s)[1] ) || ( 0x51 
<= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 ... [740 chars truncated]
-: ( ( ( ( ( 0xEE == ((U8*)s)[0] ) && LIKELY( ( 0x41 <= ((U8*)s)[1] && 
((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F 
== ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*) ... [784 chars truncated]
+( ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || ( 0x8A <= 
((const U8*)s)[0] && ((const U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((const U8*)s)[0] 
&& ((const U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((c ... [112 chars truncated]
+    ( LIKELY( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 
0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const 
U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ( ... [101 chars truncated]
+: ( ((const U8*)s)[0] == 0xB7 || ( ( ((const U8*)s)[0] & 0xFE ) == 0xB8 ) || ( 
( ((const U8*)s)[0] & 0xFC ) == 0xBC ) || ( ( ((const U8*)s)[0] & 0xEE ) == 
0xCA ) || ( ( ((const U8*)s)[0] & 0xFC ) ==  ... [11 chars truncated]
+    ( LIKELY( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || 
( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const 
U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ... [386 chars truncated]
+: ( 0xDC == ((const U8*)s)[0] ) ?                                              
   \
+    ( LIKELY( ( ( ( 0x57 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) 
|| 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const 
U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1]  ... [609 chars truncated]
+: ( ( 0xDD <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xDF ) || 0xE1 == 
((const U8*)s)[0] || ( 0xEA <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xEC ) 
) ?\
+    ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) 
|| ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == 
((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1]  ... [671 chars truncated]
+: ( 0xED == ((const U8*)s)[0] ) ?                                              
   \
+    ( LIKELY( ( ( ( ( 0x49 == ((const U8*)s)[1] || 0x4A == ((const U8*)s)[1] ) 
|| ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == 
((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1 ... [956 chars truncated]
+: ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && LIKELY( ( 0x41 <= ((const U8*)s)[1] 
&& ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const 
U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1 ... [1006 chars truncated]
 
 /*** GENERATED CODE ***/
 #define is_STRICT_UTF8_CHAR_utf8_no_length_checks_part0(s)                  \
-( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && 
((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && 
((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFE ) ... [13 chars truncated]
-       ( LIKELY( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= 
((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U ... [275 chars truncated]
-    : ( 0x72 == ((U8*)s)[1] ) ?                                             \
-       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= 
((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFE  ... [14 chars 
truncated]
-           ( LIKELY( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 
<= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= 
((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ( ... [48 chars truncated]
-       : LIKELY( ( 0x72 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && 
((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F 
== ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] ... [48 chars truncated]
+( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= 
((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] 
|| ( 0x62 <= ((const U8*)s)[1] && ((const U8* ... [61 chars truncated]
+       ( LIKELY( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) 
|| ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == 
((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && (( ... [383 chars truncated]
+    : ( 0x72 == ((const U8*)s)[1] ) ?                                          
   \
+       ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 
0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const 
U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8 ... [62 chars truncated]
+           ( LIKELY( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A 
) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == 
((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] &&  ... [102 chars truncated]
+       : LIKELY( ( 0x72 == ((const U8*)s)[2] ) && ( ( 0x41 <= ((const 
U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && 
((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] ||  ... [102 chars 
truncated]
     : 0 )
 
 
 /*** GENERATED CODE ***/
 #define is_STRICT_UTF8_CHAR_utf8_no_length_checks_part1(s)                  \
-( ( 0xED == ((U8*)s)[0] ) ?                                                 \
-    ( ( ( ( ((U8*)s)[1] & 0xEF ) == 0x49 ) || ( ( ((U8*)s)[1] & 0xF9 ) == 0x51 
) || ((U8*)s)[1] == 0x62 || ( ( ((U8*)s)[1] & 0xFD ) == 0x64 ) || ( ( 
((U8*)s)[1] & 0xFD ) == 0x68 ) || ((U8*)s)[1] == 0 ... [8 chars truncated]
-       ( LIKELY( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 
<= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= 
((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ( ... [506 chars truncated]
-    : ( ((U8*)s)[1] == 0x4A || ((U8*)s)[1] == 0x52 || ( ( ((U8*)s)[1] & 0xFD ) 
== 0x54 ) || ((U8*)s)[1] == 0x58 || ((U8*)s)[1] == 0x5F || ((U8*)s)[1] == 0x63 
|| ( ( ((U8*)s)[1] & 0xFD ) == 0x65 ) ||  ... [62 chars truncated]
-       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= 
((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFE  ... [14 chars 
truncated]
-           ( LIKELY( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 
0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 
<= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ... [279 chars truncated]
-       : ( 0x72 == ((U8*)s)[2] ) ?                                         \
-           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= 
((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0 ... [18 chars 
truncated]
-               ( LIKELY( ( 0x41 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x4A ) || ( 
0x51 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x59 ) || 0x5F == ((U8*)s)[4] || ( 0x62 
<= ((U8*)s)[4] && ((U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((U8 ... [45 chars 
truncated]
-           : LIKELY( ( 0x72 == ((U8*)s)[3] ) && ( ( 0x41 <= ((U8*)s)[4] && 
((U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x59 ) || 0x5F 
== ((U8*)s)[4] || ( 0x62 <= ((U8*)s)[4] && ((U8*)s ... [52 chars truncated]
+( ( 0xED == ((const U8*)s)[0] ) ?                                              
   \
+    ( ( ( ( ((const U8*)s)[1] & 0xEF ) == 0x49 ) || ( ( ((const U8*)s)[1] & 
0xF9 ) == 0x51 ) || ((const U8*)s)[1] == 0x62 || ( ( ((const U8*)s)[1] & 0xFD ) 
== 0x64 ) || ( ( ((const U8*)s)[1] & 0xFD ) ... [44 chars truncated]
+       ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A 
) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == 
((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] &&  ... [668 chars truncated]
+    : ( ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x52 || ( ( ((const 
U8*)s)[1] & 0xFD ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ((const U8*)s)[1] 
== 0x5F || ((const U8*)s)[1] == 0x63 || (  ... [116 chars truncated]
+       ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 
0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const 
U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8 ... [62 chars truncated]
+           ( LIKELY( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 
0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == 
((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] & ... [387 chars truncated]
+       : ( 0x72 == ((const U8*)s)[2] ) ?                                       
  \
+           ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 
0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const 
U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((cons ... [66 chars truncated]
+               ( LIKELY( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 
0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == 
((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((c ... [99 chars truncated]
+           : LIKELY( ( 0x72 == ((const U8*)s)[3] ) && ( ( 0x41 <= ((const 
U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && 
((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] ... [106 chars 
truncated]
        : 0 )                                                               \
     : 0 )                                                                   \
-: ( 0xEE == ((U8*)s)[0] ) ?                                                 \
-    ( ( 0x41 == ((U8*)s)[1] ) ?                                             \
-       ( LIKELY( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 
<= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= 
((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ( ... [506 chars truncated]
-    : ( 0x42 == ((U8*)s)[1] ) ?                                             \
-       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= 
((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFE  ... [14 chars 
truncated]
-           ( LIKELY( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 
0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 
<= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ... [279 chars truncated]
-       : ( 0x72 == ((U8*)s)[2] ) ?                                         \
-           ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= 
((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0 ... [18 chars 
truncated]
-               ( LIKELY( ( 0x41 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x4A ) || ( 
0x51 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x59 ) || 0x5F == ((U8*)s)[4] || ( 0x62 
<= ((U8*)s)[4] && ((U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((U8 ... [45 chars 
truncated]
-           : LIKELY( ( 0x72 == ((U8*)s)[3] ) && ( ( 0x41 <= ((U8*)s)[4] && 
((U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x59 ) || 0x5F 
== ((U8*)s)[4] || ( 0x62 <= ((U8*)s)[4] && ((U8*)s ... [52 chars truncated]
+: ( 0xEE == ((const U8*)s)[0] ) ?                                              
   \
+    ( ( 0x41 == ((const U8*)s)[1] ) ?                                          
   \
+       ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A 
) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == 
((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] &&  ... [668 chars truncated]
+    : ( 0x42 == ((const U8*)s)[1] ) ?                                          
   \
+       ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 
0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const 
U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8 ... [62 chars truncated]
+           ( LIKELY( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 
0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == 
((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] & ... [387 chars truncated]
+       : ( 0x72 == ((const U8*)s)[2] ) ?                                       
  \
+           ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 
0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const 
U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((cons ... [66 chars truncated]
+               ( LIKELY( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 
0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == 
((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((c ... [99 chars truncated]
+           : LIKELY( ( 0x72 == ((const U8*)s)[3] ) && ( ( 0x41 <= ((const 
U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && 
((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] ... [106 chars 
truncated]
        : 0 )                                                               \
     : 0 )                                                                   \
 : 0 )
@@ -452,27 +452,27 @@ explicitly forbidden, and the shortest possible encoding 
should always be used
 
 /*** GENERATED CODE ***/
 #define is_STRICT_UTF8_CHAR_utf8_no_length_checks(s)                        \
-( ( 0x78 == ((U8*)s)[0] || 0x80 == ((U8*)s)[0] || ( 0x8A <= ((U8*)s)[0] && 
((U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xA0 ) || ( 
0xAA <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xAF ) || ... [52 chars truncated]
-    ( LIKELY( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= (( ... [47 chars truncated]
-: ( ((U8*)s)[0] == 0xB7 || ( ( ((U8*)s)[0] & 0xFE ) == 0xB8 ) || ( ( 
((U8*)s)[0] & 0xFC ) == 0xBC ) || ( ( ((U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( 
((U8*)s)[0] & 0xFC ) == 0xCC ) ) ?\
-    ( LIKELY( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <=  ... [278 chars truncated]
-: ( 0xDC == ((U8*)s)[0] ) ?                                                 \
-    ( LIKELY( ( ( ( 0x57 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == 
((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) && ( ( 0x ... [459 chars truncated]
-: ( 0xDD == ((U8*)s)[0] ) ?                                                 \
-    ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( ((U8*)s)[1] & 
0xFE ) == 0x62 || ( 0x66 <= ((U8*)s)[1] && ((U8*)s)[ ... [51 chars truncated]
-       ( LIKELY( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= 
((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U ... [275 chars truncated]
-    : ( 0x72 == ((U8*)s)[1] ) ?                                             \
-       ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[2] && ((U8*)s)[2] <= 0x54 ) || ( 0x57 <= ((U8*)s)[2] && ((U8*)s)[2] <= 
0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] ... [64 chars truncated]
-           ( LIKELY( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 
<= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= 
((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ( ... [48 chars truncated]
-       : ( 0x55 == ((U8*)s)[2] ) ?                                         \
-           ( LIKELY( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 
<= ((U8*)s)[3] && ((U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
-       : ( 0x56 == ((U8*)s)[2] ) ?                                         \
-           ( LIKELY( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == 
((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= 
((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
-       : LIKELY( ( 0x72 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && 
((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F 
== ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] ... [48 chars truncated]
+( ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || ( 0x8A <= 
((const U8*)s)[0] && ((const U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((const U8*)s)[0] 
&& ((const U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((c ... [112 chars truncated]
+    ( LIKELY( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 
0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const 
U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ( ... [101 chars truncated]
+: ( ((const U8*)s)[0] == 0xB7 || ( ( ((const U8*)s)[0] & 0xFE ) == 0xB8 ) || ( 
( ((const U8*)s)[0] & 0xFC ) == 0xBC ) || ( ( ((const U8*)s)[0] & 0xEE ) == 
0xCA ) || ( ( ((const U8*)s)[0] & 0xFC ) ==  ... [11 chars truncated]
+    ( LIKELY( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || 
( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const 
U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ... [386 chars truncated]
+: ( 0xDC == ((const U8*)s)[0] ) ?                                              
   \
+    ( LIKELY( ( ( ( 0x57 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) 
|| 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const 
U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1]  ... [609 chars truncated]
+: ( 0xDD == ((const U8*)s)[0] ) ?                                              
   \
+    ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 
<= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const 
U8*)s)[1] || ( ((const U8*)s)[1] & 0xFE ) == 0x62 | ... [105 chars truncated]
+       ( LIKELY( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) 
|| ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == 
((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && (( ... [383 chars truncated]
+    : ( 0x72 == ((const U8*)s)[1] ) ?                                          
   \
+       ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 
0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x54 ) || ( 0x57 <= ((const 
U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F ==  ... [124 chars truncated]
+           ( LIKELY( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A 
) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == 
((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] &&  ... [102 chars truncated]
+       : ( 0x55 == ((const U8*)s)[2] ) ?                                       
  \
+           ( LIKELY( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A 
) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
+       : ( 0x56 == ((const U8*)s)[2] ) ?                                       
  \
+           ( LIKELY( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 
) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const 
U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] &&  ... [40 chars truncated]
+       : LIKELY( ( 0x72 == ((const U8*)s)[2] ) && ( ( 0x41 <= ((const 
U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && 
((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] ||  ... [102 chars 
truncated]
     : 0 )                                                                   \
-: ( 0xDE == ((U8*)s)[0] || 0xE1 == ((U8*)s)[0] || 0xEB == ((U8*)s)[0] ) ?   \
-    ( LIKELY( ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 < ... [509 chars truncated]
-: ( 0xDF == ((U8*)s)[0] || 0xEA == ((U8*)s)[0] || 0xEC == ((U8*)s)[0] ) ? 
is_STRICT_UTF8_CHAR_utf8_no_length_checks_part0(s) : 
is_STRICT_UTF8_CHAR_utf8_no_length_checks_part1(s) )
+: ( 0xDE == ((const U8*)s)[0] || 0xE1 == ((const U8*)s)[0] || 0xEB == ((const 
U8*)s)[0] ) ?   \
+    ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) 
|| ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == 
((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1]  ... [671 chars truncated]
+: ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const 
U8*)s)[0] ) ? is_STRICT_UTF8_CHAR_utf8_no_length_checks_part0(s) : 
is_STRICT_UTF8_CHAR_utf8_no_length_checks_part1(s) )
 
 /*      C9_STRICT_UTF8_CHAR: Matches legal Unicode UTF-8 variant code points
                              including non-character code points, no surrogates
@@ -481,19 +481,19 @@ explicitly forbidden, and the shortest possible encoding 
should always be used
 */
 /*** GENERATED CODE ***/
 #define is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks(s)             \
-( ( 0x78 == ((U8*)s)[0] || 0x80 == ((U8*)s)[0] || ( 0x8A <= ((U8*)s)[0] && 
((U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xA0 ) || ( 
0xAA <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xAF ) || ... [52 chars truncated]
-    ( LIKELY( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= (( ... [47 chars truncated]
-: ( ((U8*)s)[0] == 0xB7 || ( ( ((U8*)s)[0] & 0xFE ) == 0xB8 ) || ( ( 
((U8*)s)[0] & 0xFC ) == 0xBC ) || ( ( ((U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( 
((U8*)s)[0] & 0xFC ) == 0xCC ) ) ?\
-    ( LIKELY( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <=  ... [278 chars truncated]
-: ( 0xDC == ((U8*)s)[0] ) ?                                                 \
-    ( LIKELY( ( ( ( 0x57 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == 
((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) && ( ( 0x ... [459 chars truncated]
-: ( 0xDD == ((U8*)s)[0] ) ?                                                 \
-    ( LIKELY( ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( ((U8*)s)[1] & 
0xFE ) == 0x62 || ( 0x66 <= ((U8*)s)[1] && ... [543 chars truncated]
-: ( ( ((U8*)s)[0] & 0xFE ) == 0xDE || 0xE1 == ((U8*)s)[0] || ( 0xEA <= 
((U8*)s)[0] && ((U8*)s)[0] <= 0xEC ) ) ?\
-    ( LIKELY( ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 < ... [509 chars truncated]
+( ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || ( 0x8A <= 
((const U8*)s)[0] && ((const U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((const U8*)s)[0] 
&& ((const U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((c ... [112 chars truncated]
+    ( LIKELY( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 
0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const 
U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ( ... [101 chars truncated]
+: ( ((const U8*)s)[0] == 0xB7 || ( ( ((const U8*)s)[0] & 0xFE ) == 0xB8 ) || ( 
( ((const U8*)s)[0] & 0xFC ) == 0xBC ) || ( ( ((const U8*)s)[0] & 0xEE ) == 
0xCA ) || ( ( ((const U8*)s)[0] & 0xFC ) ==  ... [11 chars truncated]
+    ( LIKELY( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || 
( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const 
U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ... [386 chars truncated]
+: ( 0xDC == ((const U8*)s)[0] ) ?                                              
   \
+    ( LIKELY( ( ( ( 0x57 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) 
|| 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const 
U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1]  ... [609 chars truncated]
+: ( 0xDD == ((const U8*)s)[0] ) ?                                              
   \
+    ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) 
|| ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == 
((const U8*)s)[1] || ( ((const U8*)s)[1] & 0xFE ) ... [711 chars truncated]
+: ( ( ((const U8*)s)[0] & 0xFE ) == 0xDE || 0xE1 == ((const U8*)s)[0] || ( 
0xEA <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xEC ) ) ?\
+    ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) 
|| ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == 
((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1]  ... [671 chars truncated]
 : ( 0xED == ((U8*)s)[0] ) ?                                                 \
-    ( LIKELY( ( ( ( ( 0x49 == ((U8*)s)[1] || 0x4A == ((U8*)s)[1] ) || ( 0x51 
<= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= 
((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 ... [740 chars truncated]
-: LIKELY( ( ( ( ( 0xEE == ((U8*)s)[0] ) && ( 0x41 == ((U8*)s)[1] || 0x42 == 
((U8*)s)[1] ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 
<= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x ... [589 chars truncated]
+    ( LIKELY( ( ( ( ( 0x49 == ((const U8*)s)[1] || 0x4A == ((const U8*)s)[1] ) 
|| ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == 
((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1 ... [956 chars truncated]
+: LIKELY( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] 
|| 0x42 == ((const U8*)s)[1] ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const 
U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*) ... [769 chars truncated]
 
 #endif
 

--
Perl5 Master Repository

Reply via email to