Algorithm-MinPerfHashTwoLevel v0.16 Perl 5 v5.40.0 RC1 OpenBSD.amd64-openbsd

Status
Unknown
From
Carlos Guevara
Dist
Algorithm-MinPerfHashTwoLevel v0.16
Platform
Perl 5 v5.40.0 RC1 OpenBSD.amd64-openbsd
Date
2024-06-01 21:18:23
ID
7a28a4aa-205c-11ef-a938-e8f8b3a7be87
This distribution has been tested as part of the CPAN Testers
project, supporting the Perl programming language.  See
http://wiki.cpantesters.org/ for more information or email
questions to cpan-testers-discuss@perl.org


--
Dear Yves,

This is a computer-generated report for Algorithm-MinPerfHashTwoLevel-0.16
on perl 5.40.0, created by CPAN-Reporter-1.2019.

Thank you for uploading your work to CPAN.  However, attempting to
test your distribution gave an inconclusive result.

This could be because your distribution had an error during the make/build
stage, did not define tests, tests could not be found, because your tests were
interrupted before they finished, or because the results of the tests could not
be parsed.  You may wish to consult the CPAN Testers Wiki:

http://wiki.cpantesters.org/wiki/CPANAuthorNotes

Sections of this report:

    * Tester comments
    * Program output
    * Prerequisites
    * Environment and other context

------------------------------
TESTER COMMENTS
------------------------------

Additional comments from tester:

this report is from an automated smoke testing program
and was not reviewed by a human for accuracy

------------------------------
PROGRAM OUTPUT
------------------------------

Output from '/usr/bin/make':

cp lib/Tie/Hash/MinPerfHashTwoLevel/OnDisk.pm blib/lib/Tie/Hash/MinPerfHashTwoLevel/OnDisk.pm
cp lib/Algorithm/MinPerfHashTwoLevel.pm blib/lib/Algorithm/MinPerfHashTwoLevel.pm
Running Mkbootstrap for MinPerfHashTwoLevel ()
chmod 644 "MinPerfHashTwoLevel.bs"
"/home/cpan/bin/perl/bin/perl5.40.0" -MExtUtils::Command::MM -e 'cp_nonempty' -- MinPerfHashTwoLevel.bs blib/arch/auto/Algorithm/MinPerfHashTwoLevel/MinPerfHashTwoLevel.bs 644
"/home/cpan/bin/perl/bin/perl5.40.0" "/home/cpan/bin/perl/lib/5.40.0/ExtUtils/xsubpp"  -typemap '/home/cpan/bin/perl/lib/5.40.0/ExtUtils/typemap'  MinPerfHashTwoLevel.xs > MinPerfHashTwoLevel.xsc
mv MinPerfHashTwoLevel.xsc MinPerfHashTwoLevel.c
cc -c  -I.  -DNO_LOCALE_NUMERIC -DNO_LOCALE_COLLATE -DNO_LOCALE_MONETARY -DNO_LOCALE_TIME -DNO_LOCALE_MESSAGES -DLIBC_HANDLES_MISMATCHED_CTYPE -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -O3    -DVERSION=\"0.16\"  -DXS_VERSION=\"0.16\" -DPIC -fPIC  "-I/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE"   MinPerfHashTwoLevel.c
In file included from MinPerfHashTwoLevel.xs:17:
./mph_siphash.h:96:6: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    ,SIPROUND;
     ^~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/perl_siphash.h:18:3: note: expanded from macro 'SIPROUND'
  STMT_START {              \
  ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
./mph_siphash.h:47:5: note: expanded from macro 'MPH_SIPHASH_FNC'
    SIP_ROUNDS;                             \
    ^~~~~~~~~~
./mph_siphash.h:96:6: note: '{' token is here
    ,SIPROUND;
     ^~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/perl_siphash.h:18:14: note: expanded from macro 'SIPROUND'
  STMT_START {              \
             ^
./mph_siphash.h:47:5: note: expanded from macro 'MPH_SIPHASH_FNC'
    SIP_ROUNDS;                             \
    ^~~~~~~~~~
./mph_siphash.h:96:6: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    ,SIPROUND;
     ^~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/perl_siphash.h:23:3: note: expanded from macro 'SIPROUND'
  } STMT_END
  ^
./mph_siphash.h:47:5: note: expanded from macro 'MPH_SIPHASH_FNC'
    SIP_ROUNDS;                             \
    ^~~~~~~~~~
./mph_siphash.h:96:6: note: ')' token is here
    ,SIPROUND;
     ^~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/perl_siphash.h:23:5: note: expanded from macro 'SIPROUND'
  } STMT_END
    ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
./mph_siphash.h:47:5: note: expanded from macro 'MPH_SIPHASH_FNC'
    SIP_ROUNDS;                             \
    ^~~~~~~~~~
./mph_siphash.h:96:6: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    ,SIPROUND;
     ^~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/perl_siphash.h:18:3: note: expanded from macro 'SIPROUND'
  STMT_START {              \
  ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
./mph_siphash.h:66:3: note: expanded from macro 'MPH_SIPHASH_FNC'
  SIP_ROUNDS;                               \
  ^~~~~~~~~~
./mph_siphash.h:96:6: note: '{' token is here
    ,SIPROUND;
     ^~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/perl_siphash.h:18:14: note: expanded from macro 'SIPROUND'
  STMT_START {              \
             ^
./mph_siphash.h:66:3: note: expanded from macro 'MPH_SIPHASH_FNC'
  SIP_ROUNDS;                               \
  ^~~~~~~~~~
./mph_siphash.h:96:6: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    ,SIPROUND;
     ^~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/perl_siphash.h:23:3: note: expanded from macro 'SIPROUND'
  } STMT_END
  ^
./mph_siphash.h:66:3: note: expanded from macro 'MPH_SIPHASH_FNC'
  SIP_ROUNDS;                               \
  ^~~~~~~~~~
./mph_siphash.h:96:6: note: ')' token is here
    ,SIPROUND;
     ^~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/perl_siphash.h:23:5: note: expanded from macro 'SIPROUND'
  } STMT_END
    ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
./mph_siphash.h:66:3: note: expanded from macro 'MPH_SIPHASH_FNC'
  SIP_ROUNDS;                               \
  ^~~~~~~~~~
./mph_siphash.h:97:6: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    ,SIPROUND;SIPROUND;SIPROUND;
     ^~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/perl_siphash.h:18:3: note: expanded from macro 'SIPROUND'
  STMT_START {              \
  ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
./mph_siphash.h:72:3: note: expanded from macro 'MPH_SIPHASH_FNC'
  SIP_FINAL_ROUNDS                          \
  ^~~~~~~~~~~~~~~~
./mph_siphash.h:97:6: note: '{' token is here
    ,SIPROUND;SIPROUND;SIPROUND;
     ^~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/perl_siphash.h:18:14: note: expanded from macro 'SIPROUND'
  STMT_START {              \
             ^
./mph_siphash.h:72:3: note: expanded from macro 'MPH_SIPHASH_FNC'
  SIP_FINAL_ROUNDS                          \
  ^~~~~~~~~~~~~~~~
./mph_siphash.h:97:6: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    ,SIPROUND;SIPROUND;SIPROUND;
     ^~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/perl_siphash.h:23:3: note: expanded from macro 'SIPROUND'
  } STMT_END
  ^
./mph_siphash.h:72:3: note: expanded from macro 'MPH_SIPHASH_FNC'
  SIP_FINAL_ROUNDS                          \
  ^~~~~~~~~~~~~~~~
./mph_siphash.h:97:6: note: ')' token is here
    ,SIPROUND;SIPROUND;SIPROUND;
     ^~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/perl_siphash.h:23:5: note: expanded from macro 'SIPROUND'
  } STMT_END
    ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
./mph_siphash.h:72:3: note: expanded from macro 'MPH_SIPHASH_FNC'
  SIP_FINAL_ROUNDS                          \
  ^~~~~~~~~~~~~~~~
./mph_siphash.h:97:15: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    ,SIPROUND;SIPROUND;SIPROUND;
              ^~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/perl_siphash.h:18:3: note: expanded from macro 'SIPROUND'
  STMT_START {              \
  ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
./mph_siphash.h:72:3: note: expanded from macro 'MPH_SIPHASH_FNC'
  SIP_FINAL_ROUNDS                          \
  ^~~~~~~~~~~~~~~~
./mph_siphash.h:97:15: note: '{' token is here
    ,SIPROUND;SIPROUND;SIPROUND;
              ^~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/perl_siphash.h:18:14: note: expanded from macro 'SIPROUND'
  STMT_START {              \
             ^
./mph_siphash.h:72:3: note: expanded from macro 'MPH_SIPHASH_FNC'
  SIP_FINAL_ROUNDS                          \
  ^~~~~~~~~~~~~~~~
./mph_siphash.h:97:15: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    ,SIPROUND;SIPROUND;SIPROUND;
              ^~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/perl_siphash.h:23:3: note: expanded from macro 'SIPROUND'
  } STMT_END
  ^
./mph_siphash.h:72:3: note: expanded from macro 'MPH_SIPHASH_FNC'
  SIP_FINAL_ROUNDS                          \
  ^~~~~~~~~~~~~~~~
./mph_siphash.h:97:15: note: ')' token is here
    ,SIPROUND;SIPROUND;SIPROUND;
              ^~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/perl_siphash.h:23:5: note: expanded from macro 'SIPROUND'
  } STMT_END
    ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
./mph_siphash.h:72:3: note: expanded from macro 'MPH_SIPHASH_FNC'
  SIP_FINAL_ROUNDS                          \
  ^~~~~~~~~~~~~~~~
./mph_siphash.h:97:24: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    ,SIPROUND;SIPROUND;SIPROUND;
                       ^~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/perl_siphash.h:18:3: note: expanded from macro 'SIPROUND'
  STMT_START {              \
  ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
./mph_siphash.h:72:3: note: expanded from macro 'MPH_SIPHASH_FNC'
  SIP_FINAL_ROUNDS                          \
  ^~~~~~~~~~~~~~~~
./mph_siphash.h:97:24: note: '{' token is here
    ,SIPROUND;SIPROUND;SIPROUND;
                       ^~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/perl_siphash.h:18:14: note: expanded from macro 'SIPROUND'
  STMT_START {              \
             ^
./mph_siphash.h:72:3: note: expanded from macro 'MPH_SIPHASH_FNC'
  SIP_FINAL_ROUNDS                          \
  ^~~~~~~~~~~~~~~~
./mph_siphash.h:97:24: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    ,SIPROUND;SIPROUND;SIPROUND;
                       ^~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/perl_siphash.h:23:3: note: expanded from macro 'SIPROUND'
  } STMT_END
  ^
./mph_siphash.h:72:3: note: expanded from macro 'MPH_SIPHASH_FNC'
  SIP_FINAL_ROUNDS                          \
  ^~~~~~~~~~~~~~~~
./mph_siphash.h:97:24: note: ')' token is here
    ,SIPROUND;SIPROUND;SIPROUND;
                       ^~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/perl_siphash.h:23:5: note: expanded from macro 'SIPROUND'
  } STMT_END
    ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
./mph_siphash.h:72:3: note: expanded from macro 'MPH_SIPHASH_FNC'
  SIP_FINAL_ROUNDS                          \
  ^~~~~~~~~~~~~~~~
MinPerfHashTwoLevel.xs:31:13: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
            GETBITS(is_utf8,flags,idx,bits);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:148:38: note: expanded from macro 'GETBITS'
#define GETBITS(into,flags,idx,bits) STMT_START {           \
                                     ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:31:13: note: '{' token is here
            GETBITS(is_utf8,flags,idx,bits);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:148:49: note: expanded from macro 'GETBITS'
#define GETBITS(into,flags,idx,bits) STMT_START {           \
                                                ^
MinPerfHashTwoLevel.xs:31:13: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
            GETBITS(is_utf8,flags,idx,bits);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:150:61: note: expanded from macro 'GETBITS'
    into= ((flags)[bytepos] >> shift) & bitmask;            \
                                                            ^
MinPerfHashTwoLevel.xs:31:13: note: ')' token is here
            GETBITS(is_utf8,flags,idx,bits);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:151:3: note: expanded from macro 'GETBITS'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:110:9: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        HASH2INDEX(index,h2,bucket->xor_val,mph->num_buckets);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:128:47: note: expanded from macro 'HASH2INDEX'
#define HASH2INDEX(x,h2,xor_val,bucket_count) STMT_START {      \
                                              ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:110:9: note: '{' token is here
        HASH2INDEX(index,h2,bucket->xor_val,mph->num_buckets);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:128:58: note: expanded from macro 'HASH2INDEX'
#define HASH2INDEX(x,h2,xor_val,bucket_count) STMT_START {      \
                                                         ^
MinPerfHashTwoLevel.xs:110:9: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        HASH2INDEX(index,h2,bucket->xor_val,mph->num_buckets);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:135:73: note: expanded from macro 'HASH2INDEX'
        x %= bucket_count;                                              \
                                                                        ^
MinPerfHashTwoLevel.xs:110:9: note: ')' token is here
        HASH2INDEX(index,h2,bucket->xor_val,mph->num_buckets);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:136:3: note: expanded from macro 'HASH2INDEX'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:150:58: error: use of undeclared identifier 'MAP_PREFAULT_READ'
    ptr = mmap(NULL, st.st_size, PROT_READ, MAP_SHARED | MPH_MAP_POPULATE, fd, 0);
                                                         ^
./mph2l.h:14:26: note: expanded from macro 'MPH_MAP_POPULATE'
#define MPH_MAP_POPULATE MAP_PREFAULT_READ
                         ^
MinPerfHashTwoLevel.xs:278:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
    while (he= hv_iternext(source_hv)) {
           ~~^~~~~~~~~~~~~~~~~~~~~~~~
MinPerfHashTwoLevel.xs:278:14: note: place parentheses around the assignment to silence this warning
    while (he= hv_iternext(source_hv)) {
             ^
           (                         )
MinPerfHashTwoLevel.xs:278:14: note: use '==' to turn this assignment into an equality comparison
    while (he= hv_iternext(source_hv)) {
             ^
             ==
MinPerfHashTwoLevel.xs:366:13: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
            SvRV_set(*got_psv,(SV *)av);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1514:9: note: expanded from macro 'SvRV_set'
        STMT_START { \
        ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:366:13: note: '{' token is here
            SvRV_set(*got_psv,(SV *)av);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1514:20: note: expanded from macro 'SvRV_set'
        STMT_START { \
                   ^
MinPerfHashTwoLevel.xs:366:13: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
            SvRV_set(*got_psv,(SV *)av);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1521:9: note: expanded from macro 'SvRV_set'
        } STMT_END
        ^
MinPerfHashTwoLevel.xs:366:13: note: ')' token is here
            SvRV_set(*got_psv,(SV *)av);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1521:11: note: expanded from macro 'SvRV_set'
        } STMT_END
          ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:415:9: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        SvRV_set(*buckets_rvp,(SV *)idx1_hv);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1514:9: note: expanded from macro 'SvRV_set'
        STMT_START { \
        ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:415:9: note: '{' token is here
        SvRV_set(*buckets_rvp,(SV *)idx1_hv);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1514:20: note: expanded from macro 'SvRV_set'
        STMT_START { \
                   ^
MinPerfHashTwoLevel.xs:415:9: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        SvRV_set(*buckets_rvp,(SV *)idx1_hv);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1521:9: note: expanded from macro 'SvRV_set'
        } STMT_END
        ^
MinPerfHashTwoLevel.xs:415:9: note: ')' token is here
        SvRV_set(*buckets_rvp,(SV *)idx1_hv);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1521:11: note: expanded from macro 'SvRV_set'
        } STMT_END
          ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:421:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    hv_setuv_with_keysv(idx1_hv,MPH_KEYSV_XOR_VAL,xor_val);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:122:73: note: expanded from macro 'hv_setuv_with_keysv'
#define hv_setuv_with_keysv(hv,keysv_idx,uv)                            \
                                                                        ^
./ppport.h:4185:31: note: expanded from macro '\
STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:421:5: note: '{' token is here
    hv_setuv_with_keysv(idx1_hv,MPH_KEYSV_XOR_VAL,xor_val);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:123:12: note: expanded from macro 'hv_setuv_with_keysv'
STMT_START {                                                            \
           ^
MinPerfHashTwoLevel.xs:421:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    hv_setuv_with_keysv(idx1_hv,MPH_KEYSV_XOR_VAL,xor_val);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:125:73: note: expanded from macro 'hv_setuv_with_keysv'
    if (got_he) sv_setuv(HeVAL(got_he),uv);                             \
                                                                        ^
MinPerfHashTwoLevel.xs:421:5: note: ')' token is here
    hv_setuv_with_keysv(idx1_hv,MPH_KEYSV_XOR_VAL,xor_val);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:126:3: note: expanded from macro 'hv_setuv_with_keysv'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:422:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    hv_setuv_with_keysv(idx1_hv,MPH_KEYSV_H1_KEYS,keys_in_bucket_count);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:122:73: note: expanded from macro 'hv_setuv_with_keysv'
#define hv_setuv_with_keysv(hv,keysv_idx,uv)                            \
                                                                        ^
./ppport.h:4185:31: note: expanded from macro '\
STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:422:5: note: '{' token is here
    hv_setuv_with_keysv(idx1_hv,MPH_KEYSV_H1_KEYS,keys_in_bucket_count);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:123:12: note: expanded from macro 'hv_setuv_with_keysv'
STMT_START {                                                            \
           ^
MinPerfHashTwoLevel.xs:422:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    hv_setuv_with_keysv(idx1_hv,MPH_KEYSV_H1_KEYS,keys_in_bucket_count);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:125:73: note: expanded from macro 'hv_setuv_with_keysv'
    if (got_he) sv_setuv(HeVAL(got_he),uv);                             \
                                                                        ^
MinPerfHashTwoLevel.xs:422:5: note: ')' token is here
    hv_setuv_with_keysv(idx1_hv,MPH_KEYSV_H1_KEYS,keys_in_bucket_count);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:126:3: note: expanded from macro 'hv_setuv_with_keysv'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:444:13: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
            hv_copy_with_keysv(idx2_hv,keys_hv,MPH_KEYSV_XOR_VAL);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:113:47: note: expanded from macro 'hv_copy_with_keysv'
#define hv_copy_with_keysv(hv1,hv2,keysv_idx) STMT_START {              \
                                              ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:444:13: note: '{' token is here
            hv_copy_with_keysv(idx2_hv,keys_hv,MPH_KEYSV_XOR_VAL);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:113:58: note: expanded from macro 'hv_copy_with_keysv'
#define hv_copy_with_keysv(hv1,hv2,keysv_idx) STMT_START {              \
                                                         ^
MinPerfHashTwoLevel.xs:444:13: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
            hv_copy_with_keysv(idx2_hv,keys_hv,MPH_KEYSV_XOR_VAL);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:119:73: note: expanded from macro 'hv_copy_with_keysv'
    }                                                                   \
                                                                        ^
MinPerfHashTwoLevel.xs:444:13: note: ')' token is here
            hv_copy_with_keysv(idx2_hv,keys_hv,MPH_KEYSV_XOR_VAL);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:120:3: note: expanded from macro 'hv_copy_with_keysv'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:445:13: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
            hv_copy_with_keysv(idx2_hv,keys_hv,MPH_KEYSV_H1_KEYS);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:113:47: note: expanded from macro 'hv_copy_with_keysv'
#define hv_copy_with_keysv(hv1,hv2,keysv_idx) STMT_START {              \
                                              ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:445:13: note: '{' token is here
            hv_copy_with_keysv(idx2_hv,keys_hv,MPH_KEYSV_H1_KEYS);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:113:58: note: expanded from macro 'hv_copy_with_keysv'
#define hv_copy_with_keysv(hv1,hv2,keysv_idx) STMT_START {              \
                                                         ^
MinPerfHashTwoLevel.xs:445:13: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
            hv_copy_with_keysv(idx2_hv,keys_hv,MPH_KEYSV_H1_KEYS);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:119:73: note: expanded from macro 'hv_copy_with_keysv'
    }                                                                   \
                                                                        ^
MinPerfHashTwoLevel.xs:445:13: note: ')' token is here
            hv_copy_with_keysv(idx2_hv,keys_hv,MPH_KEYSV_H1_KEYS);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:120:3: note: expanded from macro 'hv_copy_with_keysv'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:449:9: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        SvRV_set(*buckets_rvp,(SV*)keys_hv);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1514:9: note: expanded from macro 'SvRV_set'
        STMT_START { \
        ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:449:9: note: '{' token is here
        SvRV_set(*buckets_rvp,(SV*)keys_hv);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1514:20: note: expanded from macro 'SvRV_set'
        STMT_START { \
                   ^
MinPerfHashTwoLevel.xs:449:9: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        SvRV_set(*buckets_rvp,(SV*)keys_hv);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1521:9: note: expanded from macro 'SvRV_set'
        } STMT_END
        ^
MinPerfHashTwoLevel.xs:449:9: note: ')' token is here
        SvRV_set(*buckets_rvp,(SV*)keys_hv);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1521:11: note: expanded from macro 'SvRV_set'
        } STMT_END
          ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:453:9: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        hv_setuv_with_keysv(keys_hv,MPH_KEYSV_IDX,*idx2);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:122:73: note: expanded from macro 'hv_setuv_with_keysv'
#define hv_setuv_with_keysv(hv,keysv_idx,uv)                            \
                                                                        ^
./ppport.h:4185:31: note: expanded from macro '\
STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:453:9: note: '{' token is here
        hv_setuv_with_keysv(keys_hv,MPH_KEYSV_IDX,*idx2);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:123:12: note: expanded from macro 'hv_setuv_with_keysv'
STMT_START {                                                            \
           ^
MinPerfHashTwoLevel.xs:453:9: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        hv_setuv_with_keysv(keys_hv,MPH_KEYSV_IDX,*idx2);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:125:73: note: expanded from macro 'hv_setuv_with_keysv'
    if (got_he) sv_setuv(HeVAL(got_he),uv);                             \
                                                                        ^
MinPerfHashTwoLevel.xs:453:9: note: ')' token is here
        hv_setuv_with_keysv(keys_hv,MPH_KEYSV_IDX,*idx2);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:126:3: note: expanded from macro 'hv_setuv_with_keysv'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:506:17: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
                HASH2INDEX(idx2,*h2_ptr,xor_val,bucket_count);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:128:47: note: expanded from macro 'HASH2INDEX'
#define HASH2INDEX(x,h2,xor_val,bucket_count) STMT_START {      \
                                              ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:506:17: note: '{' token is here
                HASH2INDEX(idx2,*h2_ptr,xor_val,bucket_count);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:128:58: note: expanded from macro 'HASH2INDEX'
#define HASH2INDEX(x,h2,xor_val,bucket_count) STMT_START {      \
                                                         ^
MinPerfHashTwoLevel.xs:506:17: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
                HASH2INDEX(idx2,*h2_ptr,xor_val,bucket_count);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:135:73: note: expanded from macro 'HASH2INDEX'
        x %= bucket_count;                                              \
                                                                        ^
MinPerfHashTwoLevel.xs:506:17: note: ')' token is here
                HASH2INDEX(idx2,*h2_ptr,xor_val,bucket_count);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:136:3: note: expanded from macro 'HASH2INDEX'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.c:823:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        PUSHu((UV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:557:18: note: expanded from macro 'PUSHu'
#define PUSHu(u)        STMT_START { TARGu(u,1); PUSHs(TARG); } STMT_END
                        ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.c:823:2: note: '{' token is here
        PUSHu((UV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:557:29: note: expanded from macro 'PUSHu'
#define PUSHu(u)        STMT_START { TARGu(u,1); PUSHs(TARG); } STMT_END
                                   ^
MinPerfHashTwoLevel.c:823:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        PUSHu((UV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:557:31: note: expanded from macro 'PUSHu'
#define PUSHu(u)        STMT_START { TARGu(u,1); PUSHs(TARG); } STMT_END
                                     ^~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:505:5: note: expanded from macro 'TARGu'
    STMT_START {                                                        \
    ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.c:823:2: note: '{' token is here
        PUSHu((UV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:557:31: note: expanded from macro 'PUSHu'
#define PUSHu(u)        STMT_START { TARGu(u,1); PUSHs(TARG); } STMT_END
                                     ^~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:505:16: note: expanded from macro 'TARGu'
    STMT_START {                                                        \
               ^
MinPerfHashTwoLevel.c:823:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        PUSHu((UV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:557:31: note: expanded from macro 'PUSHu'
#define PUSHu(u)        STMT_START { TARGu(u,1); PUSHs(TARG); } STMT_END
                                     ^~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:523:5: note: expanded from macro 'TARGu'
    } STMT_END
    ^
MinPerfHashTwoLevel.c:823:2: note: ')' token is here
        PUSHu((UV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:557:31: note: expanded from macro 'PUSHu'
#define PUSHu(u)        STMT_START { TARGu(u,1); PUSHs(TARG); } STMT_END
                                     ^~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:523:7: note: expanded from macro 'TARGu'
    } STMT_END
      ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.c:823:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        PUSHu((UV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:557:56: note: expanded from macro 'PUSHu'
#define PUSHu(u)        STMT_START { TARGu(u,1); PUSHs(TARG); } STMT_END
                                                              ^
MinPerfHashTwoLevel.c:823:2: note: ')' token is here
        PUSHu((UV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:557:58: note: expanded from macro 'PUSHu'
#define PUSHu(u)        STMT_START { TARGu(u,1); PUSHs(TARG); } STMT_END
                                                                ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.c:825:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:325:5: note: expanded from macro 'XSRETURN'
    STMT_START {                                        \
    ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.c:825:5: note: '{' token is here
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:325:16: note: expanded from macro 'XSRETURN'
    STMT_START {                                        \
               ^
MinPerfHashTwoLevel.c:825:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:330:5: note: expanded from macro 'XSRETURN'
    } STMT_END
    ^
MinPerfHashTwoLevel.c:825:5: note: ')' token is here
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:330:7: note: expanded from macro 'XSRETURN'
    } STMT_END
      ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:706:9: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        SvCUR_set(seed_sv,MPH_SEED_BYTES);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1529:9: note: expanded from macro 'SvCUR_set'
        STMT_START { \
        ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:706:9: note: '{' token is here
        SvCUR_set(seed_sv,MPH_SEED_BYTES);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1529:20: note: expanded from macro 'SvCUR_set'
        STMT_START { \
                   ^
MinPerfHashTwoLevel.xs:706:9: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        SvCUR_set(seed_sv,MPH_SEED_BYTES);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1534:57: note: expanded from macro 'SvCUR_set'
                (((XPV*)  SvANY(sv))->xpv_cur = (val)); } STMT_END
                                                        ^
MinPerfHashTwoLevel.xs:706:9: note: ')' token is here
        SvCUR_set(seed_sv,MPH_SEED_BYTES);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1534:59: note: expanded from macro 'SvCUR_set'
                (((XPV*)  SvANY(sv))->xpv_cur = (val)); } STMT_END
                                                          ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:713:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    SvCUR_set(RETVAL,MPH_STATE_BYTES);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1529:9: note: expanded from macro 'SvCUR_set'
        STMT_START { \
        ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:713:5: note: '{' token is here
    SvCUR_set(RETVAL,MPH_STATE_BYTES);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1529:20: note: expanded from macro 'SvCUR_set'
        STMT_START { \
                   ^
MinPerfHashTwoLevel.xs:713:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    SvCUR_set(RETVAL,MPH_STATE_BYTES);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1534:57: note: expanded from macro 'SvCUR_set'
                (((XPV*)  SvANY(sv))->xpv_cur = (val)); } STMT_END
                                                        ^
MinPerfHashTwoLevel.xs:713:5: note: ')' token is here
    SvCUR_set(RETVAL,MPH_STATE_BYTES);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1534:59: note: expanded from macro 'SvCUR_set'
                (((XPV*)  SvANY(sv))->xpv_cur = (val)); } STMT_END
                                                          ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.c:888:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:325:5: note: expanded from macro 'XSRETURN'
    STMT_START {                                        \
    ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.c:888:5: note: '{' token is here
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:325:16: note: expanded from macro 'XSRETURN'
    STMT_START {                                        \
               ^
MinPerfHashTwoLevel.c:888:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:330:5: note: expanded from macro 'XSRETURN'
    } STMT_END
    ^
MinPerfHashTwoLevel.c:888:5: note: ')' token is here
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:330:7: note: expanded from macro 'XSRETURN'
    } STMT_END
      ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.c:906:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        STMT_START {
        ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.c:906:13: note: '{' token is here
        STMT_START {
                   ^
MinPerfHashTwoLevel.c:917:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        } STMT_END
        ^
MinPerfHashTwoLevel.c:917:4: note: ')' token is here
        } STMT_END
          ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:806:9: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        SvRV_set(rv,(SV*)buckets_av);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1514:9: note: expanded from macro 'SvRV_set'
        STMT_START { \
        ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:806:9: note: '{' token is here
        SvRV_set(rv,(SV*)buckets_av);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1514:20: note: expanded from macro 'SvRV_set'
        STMT_START { \
                   ^
MinPerfHashTwoLevel.xs:806:9: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        SvRV_set(rv,(SV*)buckets_av);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1521:9: note: expanded from macro 'SvRV_set'
        } STMT_END
        ^
MinPerfHashTwoLevel.xs:806:9: note: ')' token is here
        SvRV_set(rv,(SV*)buckets_av);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1521:11: note: expanded from macro 'SvRV_set'
        } STMT_END
          ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.c:1036:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        PUSHu((UV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:557:18: note: expanded from macro 'PUSHu'
#define PUSHu(u)        STMT_START { TARGu(u,1); PUSHs(TARG); } STMT_END
                        ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.c:1036:2: note: '{' token is here
        PUSHu((UV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:557:29: note: expanded from macro 'PUSHu'
#define PUSHu(u)        STMT_START { TARGu(u,1); PUSHs(TARG); } STMT_END
                                   ^
MinPerfHashTwoLevel.c:1036:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        PUSHu((UV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:557:31: note: expanded from macro 'PUSHu'
#define PUSHu(u)        STMT_START { TARGu(u,1); PUSHs(TARG); } STMT_END
                                     ^~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:505:5: note: expanded from macro 'TARGu'
    STMT_START {                                                        \
    ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.c:1036:2: note: '{' token is here
        PUSHu((UV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:557:31: note: expanded from macro 'PUSHu'
#define PUSHu(u)        STMT_START { TARGu(u,1); PUSHs(TARG); } STMT_END
                                     ^~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:505:16: note: expanded from macro 'TARGu'
    STMT_START {                                                        \
               ^
MinPerfHashTwoLevel.c:1036:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        PUSHu((UV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:557:31: note: expanded from macro 'PUSHu'
#define PUSHu(u)        STMT_START { TARGu(u,1); PUSHs(TARG); } STMT_END
                                     ^~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:523:5: note: expanded from macro 'TARGu'
    } STMT_END
    ^
MinPerfHashTwoLevel.c:1036:2: note: ')' token is here
        PUSHu((UV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:557:31: note: expanded from macro 'PUSHu'
#define PUSHu(u)        STMT_START { TARGu(u,1); PUSHs(TARG); } STMT_END
                                     ^~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:523:7: note: expanded from macro 'TARGu'
    } STMT_END
      ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.c:1036:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        PUSHu((UV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:557:56: note: expanded from macro 'PUSHu'
#define PUSHu(u)        STMT_START { TARGu(u,1); PUSHs(TARG); } STMT_END
                                                              ^
MinPerfHashTwoLevel.c:1036:2: note: ')' token is here
        PUSHu((UV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:557:58: note: expanded from macro 'PUSHu'
#define PUSHu(u)        STMT_START { TARGu(u,1); PUSHs(TARG); } STMT_END
                                                                ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.c:1038:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:325:5: note: expanded from macro 'XSRETURN'
    STMT_START {                                        \
    ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.c:1038:5: note: '{' token is here
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:325:16: note: expanded from macro 'XSRETURN'
    STMT_START {                                        \
               ^
MinPerfHashTwoLevel.c:1038:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:330:5: note: expanded from macro 'XSRETURN'
    } STMT_END
    ^
MinPerfHashTwoLevel.c:1038:5: note: ')' token is here
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:330:7: note: expanded from macro 'XSRETURN'
    } STMT_END
      ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.c:1065:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        STMT_START {
        ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.c:1065:13: note: '{' token is here
        STMT_START {
                   ^
MinPerfHashTwoLevel.c:1076:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        } STMT_END
        ^
MinPerfHashTwoLevel.c:1076:4: note: ')' token is here
        } STMT_END
          ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:937:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    SvCUR_set(sv_buf,total_size);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1529:9: note: expanded from macro 'SvCUR_set'
        STMT_START { \
        ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:937:5: note: '{' token is here
    SvCUR_set(sv_buf,total_size);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1529:20: note: expanded from macro 'SvCUR_set'
        STMT_START { \
                   ^
MinPerfHashTwoLevel.xs:937:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    SvCUR_set(sv_buf,total_size);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1534:57: note: expanded from macro 'SvCUR_set'
                (((XPV*)  SvANY(sv))->xpv_cur = (val)); } STMT_END
                                                        ^
MinPerfHashTwoLevel.xs:937:5: note: ')' token is here
    SvCUR_set(sv_buf,total_size);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1534:59: note: expanded from macro 'SvCUR_set'
                (((XPV*)  SvANY(sv))->xpv_cur = (val)); } STMT_END
                                                          ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:981:9: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        SETOFS(i,key_normalized_he,table,key_ofs,key_len,str_buf_start,str_buf_pos,str_buf_end,str_ofs_hv);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MinPerfHashTwoLevel.xs:597:96: note: expanded from macro 'SETOFS'
#define SETOFS(i,he,table,key_ofs,key_len,str_buf_start,str_buf_pos,str_buf_end,str_ofs_hv)    \
                                                                                               ^
./ppport.h:4185:31: note: expanded from macro '\
STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:981:9: note: '{' token is here
        SETOFS(i,key_normalized_he,table,key_ofs,key_len,str_buf_start,str_buf_pos,str_buf_end,str_ofs_hv);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MinPerfHashTwoLevel.xs:598:12: note: expanded from macro 'SETOFS'
STMT_START {                                                                \
           ^
MinPerfHashTwoLevel.xs:981:9: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        SETOFS(i,key_normalized_he,table,key_ofs,key_len,str_buf_start,str_buf_pos,str_buf_end,str_ofs_hv);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MinPerfHashTwoLevel.xs:637:77: note: expanded from macro 'SETOFS'
        }                                                                   \
                                                                            ^
MinPerfHashTwoLevel.xs:981:9: note: ')' token is here
        SETOFS(i,key_normalized_he,table,key_ofs,key_len,str_buf_start,str_buf_pos,str_buf_end,str_ofs_hv);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MinPerfHashTwoLevel.xs:638:3: note: expanded from macro 'SETOFS'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:982:9: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        SETOFS(i,val_normalized_he,table,val_ofs,val_len,str_buf_start,str_buf_pos,str_buf_end,str_ofs_hv);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MinPerfHashTwoLevel.xs:597:96: note: expanded from macro 'SETOFS'
#define SETOFS(i,he,table,key_ofs,key_len,str_buf_start,str_buf_pos,str_buf_end,str_ofs_hv)    \
                                                                                               ^
./ppport.h:4185:31: note: expanded from macro '\
STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:982:9: note: '{' token is here
        SETOFS(i,val_normalized_he,table,val_ofs,val_len,str_buf_start,str_buf_pos,str_buf_end,str_ofs_hv);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MinPerfHashTwoLevel.xs:598:12: note: expanded from macro 'SETOFS'
STMT_START {                                                                \
           ^
MinPerfHashTwoLevel.xs:982:9: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        SETOFS(i,val_normalized_he,table,val_ofs,val_len,str_buf_start,str_buf_pos,str_buf_end,str_ofs_hv);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MinPerfHashTwoLevel.xs:637:77: note: expanded from macro 'SETOFS'
        }                                                                   \
                                                                            ^
MinPerfHashTwoLevel.xs:982:9: note: ')' token is here
        SETOFS(i,val_normalized_he,table,val_ofs,val_len,str_buf_start,str_buf_pos,str_buf_end,str_ofs_hv);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MinPerfHashTwoLevel.xs:638:3: note: expanded from macro 'SETOFS'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:987:17: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
                SETBITS(u,key_flags,i,2);
                ^~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:153:39: note: expanded from macro 'SETBITS'
#define SETBITS(value,flags,idx,bits) STMT_START {          \
                                      ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:987:17: note: '{' token is here
                SETBITS(u,key_flags,i,2);
                ^~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:153:50: note: expanded from macro 'SETBITS'
#define SETBITS(value,flags,idx,bits) STMT_START {          \
                                                 ^
MinPerfHashTwoLevel.xs:987:17: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
                SETBITS(u,key_flags,i,2);
                ^~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:157:61: note: expanded from macro 'SETBITS'
    (flags)[bytepos] |= ((v & bitmask) << shift);           \
                                                            ^
MinPerfHashTwoLevel.xs:987:17: note: ')' token is here
                SETBITS(u,key_flags,i,2);
                ^~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:158:3: note: expanded from macro 'SETBITS'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:996:17: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
                SETBITS(u,val_flags,i,1);
                ^~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:153:39: note: expanded from macro 'SETBITS'
#define SETBITS(value,flags,idx,bits) STMT_START {          \
                                      ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:996:17: note: '{' token is here
                SETBITS(u,val_flags,i,1);
                ^~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:153:50: note: expanded from macro 'SETBITS'
#define SETBITS(value,flags,idx,bits) STMT_START {          \
                                                 ^
MinPerfHashTwoLevel.xs:996:17: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
                SETBITS(u,val_flags,i,1);
                ^~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:157:61: note: expanded from macro 'SETBITS'
    (flags)[bytepos] |= ((v & bitmask) << shift);           \
                                                            ^
MinPerfHashTwoLevel.xs:996:17: note: ')' token is here
                SETBITS(u,val_flags,i,1);
                ^~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:158:3: note: expanded from macro 'SETBITS'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:1013:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    SvCUR_set(sv_buf, str_buf_pos - start);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1529:9: note: expanded from macro 'SvCUR_set'
        STMT_START { \
        ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:1013:5: note: '{' token is here
    SvCUR_set(sv_buf, str_buf_pos - start);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1529:20: note: expanded from macro 'SvCUR_set'
        STMT_START { \
                   ^
MinPerfHashTwoLevel.xs:1013:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    SvCUR_set(sv_buf, str_buf_pos - start);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1534:57: note: expanded from macro 'SvCUR_set'
                (((XPV*)  SvANY(sv))->xpv_cur = (val)); } STMT_END
                                                        ^
MinPerfHashTwoLevel.xs:1013:5: note: ')' token is here
    SvCUR_set(sv_buf, str_buf_pos - start);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/sv.h:1534:59: note: expanded from macro 'SvCUR_set'
                (((XPV*)  SvANY(sv))->xpv_cur = (val)); } STMT_END
                                                          ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.c:1238:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:325:5: note: expanded from macro 'XSRETURN'
    STMT_START {                                        \
    ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.c:1238:5: note: '{' token is here
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:325:16: note: expanded from macro 'XSRETURN'
    STMT_START {                                        \
               ^
MinPerfHashTwoLevel.c:1238:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:330:5: note: expanded from macro 'XSRETURN'
    } STMT_END
    ^
MinPerfHashTwoLevel.c:1238:5: note: ')' token is here
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:330:7: note: expanded from macro 'XSRETURN'
    } STMT_END
      ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:1003:20: warning: implicit conversion from 'int' to 'char' changes value from 128 to -128 [-Wconstant-conversion]
    *str_buf_pos = 128; str_buf_pos++;
                 ~ ^~~
MinPerfHashTwoLevel.xs:1033:9: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        XSRETURN_UNDEF;
        ^~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:339:27: note: expanded from macro 'XSRETURN_UNDEF'
#define XSRETURN_UNDEF    STMT_START { XST_mUNDEF(0);   XSRETURN(1); } STMT_END
                          ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:1033:9: note: '{' token is here
        XSRETURN_UNDEF;
        ^~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:339:38: note: expanded from macro 'XSRETURN_UNDEF'
#define XSRETURN_UNDEF    STMT_START { XST_mUNDEF(0);   XSRETURN(1); } STMT_END
                                     ^
MinPerfHashTwoLevel.xs:1033:9: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        XSRETURN_UNDEF;
        ^~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:339:57: note: expanded from macro 'XSRETURN_UNDEF'
#define XSRETURN_UNDEF    STMT_START { XST_mUNDEF(0);   XSRETURN(1); } STMT_END
                                                        ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:325:5: note: expanded from macro 'XSRETURN'
    STMT_START {                                        \
    ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:1033:9: note: '{' token is here
        XSRETURN_UNDEF;
        ^~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:339:57: note: expanded from macro 'XSRETURN_UNDEF'
#define XSRETURN_UNDEF    STMT_START { XST_mUNDEF(0);   XSRETURN(1); } STMT_END
                                                        ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:325:16: note: expanded from macro 'XSRETURN'
    STMT_START {                                        \
               ^
MinPerfHashTwoLevel.xs:1033:9: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        XSRETURN_UNDEF;
        ^~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:339:57: note: expanded from macro 'XSRETURN_UNDEF'
#define XSRETURN_UNDEF    STMT_START { XST_mUNDEF(0);   XSRETURN(1); } STMT_END
                                                        ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:330:5: note: expanded from macro 'XSRETURN'
    } STMT_END
    ^
MinPerfHashTwoLevel.xs:1033:9: note: ')' token is here
        XSRETURN_UNDEF;
        ^~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:339:57: note: expanded from macro 'XSRETURN_UNDEF'
#define XSRETURN_UNDEF    STMT_START { XST_mUNDEF(0);   XSRETURN(1); } STMT_END
                                                        ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:330:7: note: expanded from macro 'XSRETURN'
    } STMT_END
      ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:1033:9: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        XSRETURN_UNDEF;
        ^~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:339:70: note: expanded from macro 'XSRETURN_UNDEF'
#define XSRETURN_UNDEF    STMT_START { XST_mUNDEF(0);   XSRETURN(1); } STMT_END
                                                                     ^
MinPerfHashTwoLevel.xs:1033:9: note: ')' token is here
        XSRETURN_UNDEF;
        ^~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:339:72: note: expanded from macro 'XSRETURN_UNDEF'
#define XSRETURN_UNDEF    STMT_START { XST_mUNDEF(0);   XSRETURN(1); } STMT_END
                                                                       ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.c:1274:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:325:5: note: expanded from macro 'XSRETURN'
    STMT_START {                                        \
    ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.c:1274:5: note: '{' token is here
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:325:16: note: expanded from macro 'XSRETURN'
    STMT_START {                                        \
               ^
MinPerfHashTwoLevel.c:1274:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:330:5: note: expanded from macro 'XSRETURN'
    } STMT_END
    ^
MinPerfHashTwoLevel.c:1274:5: note: ')' token is here
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:330:7: note: expanded from macro 'XSRETURN'
    } STMT_END
      ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.c:1295:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    XSRETURN_EMPTY;
    ^~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:340:27: note: expanded from macro 'XSRETURN_EMPTY'
#define XSRETURN_EMPTY    STMT_START {                  XSRETURN(0); } STMT_END
                          ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.c:1295:5: note: '{' token is here
    XSRETURN_EMPTY;
    ^~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:340:38: note: expanded from macro 'XSRETURN_EMPTY'
#define XSRETURN_EMPTY    STMT_START {                  XSRETURN(0); } STMT_END
                                     ^
MinPerfHashTwoLevel.c:1295:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    XSRETURN_EMPTY;
    ^~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:340:57: note: expanded from macro 'XSRETURN_EMPTY'
#define XSRETURN_EMPTY    STMT_START {                  XSRETURN(0); } STMT_END
                                                        ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:325:5: note: expanded from macro 'XSRETURN'
    STMT_START {                                        \
    ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.c:1295:5: note: '{' token is here
    XSRETURN_EMPTY;
    ^~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:340:57: note: expanded from macro 'XSRETURN_EMPTY'
#define XSRETURN_EMPTY    STMT_START {                  XSRETURN(0); } STMT_END
                                                        ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:325:16: note: expanded from macro 'XSRETURN'
    STMT_START {                                        \
               ^
MinPerfHashTwoLevel.c:1295:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    XSRETURN_EMPTY;
    ^~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:340:57: note: expanded from macro 'XSRETURN_EMPTY'
#define XSRETURN_EMPTY    STMT_START {                  XSRETURN(0); } STMT_END
                                                        ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:330:5: note: expanded from macro 'XSRETURN'
    } STMT_END
    ^
MinPerfHashTwoLevel.c:1295:5: note: ')' token is here
    XSRETURN_EMPTY;
    ^~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:340:57: note: expanded from macro 'XSRETURN_EMPTY'
#define XSRETURN_EMPTY    STMT_START {                  XSRETURN(0); } STMT_END
                                                        ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:330:7: note: expanded from macro 'XSRETURN'
    } STMT_END
      ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.c:1295:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    XSRETURN_EMPTY;
    ^~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:340:70: note: expanded from macro 'XSRETURN_EMPTY'
#define XSRETURN_EMPTY    STMT_START {                  XSRETURN(0); } STMT_END
                                                                     ^
MinPerfHashTwoLevel.c:1295:5: note: ')' token is here
    XSRETURN_EMPTY;
    ^~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:340:72: note: expanded from macro 'XSRETURN_EMPTY'
#define XSRETURN_EMPTY    STMT_START {                  XSRETURN(0); } STMT_END
                                                                       ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.c:1324:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        PUSHi((IV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:556:18: note: expanded from macro 'PUSHi'
#define PUSHi(i)        STMT_START { TARGi(i,1); PUSHs(TARG); } STMT_END
                        ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.c:1324:2: note: '{' token is here
        PUSHi((IV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:556:29: note: expanded from macro 'PUSHi'
#define PUSHi(i)        STMT_START { TARGi(i,1); PUSHs(TARG); } STMT_END
                                   ^
MinPerfHashTwoLevel.c:1324:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        PUSHi((IV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:556:31: note: expanded from macro 'PUSHi'
#define PUSHi(i)        STMT_START { TARGi(i,1); PUSHs(TARG); } STMT_END
                                     ^~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:483:5: note: expanded from macro 'TARGi'
    STMT_START {                                                        \
    ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.c:1324:2: note: '{' token is here
        PUSHi((IV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:556:31: note: expanded from macro 'PUSHi'
#define PUSHi(i)        STMT_START { TARGi(i,1); PUSHs(TARG); } STMT_END
                                     ^~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:483:16: note: expanded from macro 'TARGi'
    STMT_START {                                                        \
               ^
MinPerfHashTwoLevel.c:1324:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        PUSHi((IV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:556:31: note: expanded from macro 'PUSHi'
#define PUSHi(i)        STMT_START { TARGi(i,1); PUSHs(TARG); } STMT_END
                                     ^~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:500:5: note: expanded from macro 'TARGi'
    } STMT_END
    ^
MinPerfHashTwoLevel.c:1324:2: note: ')' token is here
        PUSHi((IV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:556:31: note: expanded from macro 'PUSHi'
#define PUSHi(i)        STMT_START { TARGi(i,1); PUSHs(TARG); } STMT_END
                                     ^~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:500:7: note: expanded from macro 'TARGi'
    } STMT_END
      ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.c:1324:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        PUSHi((IV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:556:56: note: expanded from macro 'PUSHi'
#define PUSHi(i)        STMT_START { TARGi(i,1); PUSHs(TARG); } STMT_END
                                                              ^
MinPerfHashTwoLevel.c:1324:2: note: ')' token is here
        PUSHi((IV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:556:58: note: expanded from macro 'PUSHi'
#define PUSHi(i)        STMT_START { TARGi(i,1); PUSHs(TARG); } STMT_END
                                                                ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.c:1326:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:325:5: note: expanded from macro 'XSRETURN'
    STMT_START {                                        \
    ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.c:1326:5: note: '{' token is here
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:325:16: note: expanded from macro 'XSRETURN'
    STMT_START {                                        \
               ^
MinPerfHashTwoLevel.c:1326:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:330:5: note: expanded from macro 'XSRETURN'
    } STMT_END
    ^
MinPerfHashTwoLevel.c:1326:5: note: ')' token is here
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:330:7: note: expanded from macro 'XSRETURN'
    } STMT_END
      ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.c:1354:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        PUSHi((IV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:556:18: note: expanded from macro 'PUSHi'
#define PUSHi(i)        STMT_START { TARGi(i,1); PUSHs(TARG); } STMT_END
                        ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.c:1354:2: note: '{' token is here
        PUSHi((IV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:556:29: note: expanded from macro 'PUSHi'
#define PUSHi(i)        STMT_START { TARGi(i,1); PUSHs(TARG); } STMT_END
                                   ^
MinPerfHashTwoLevel.c:1354:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        PUSHi((IV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:556:31: note: expanded from macro 'PUSHi'
#define PUSHi(i)        STMT_START { TARGi(i,1); PUSHs(TARG); } STMT_END
                                     ^~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:483:5: note: expanded from macro 'TARGi'
    STMT_START {                                                        \
    ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.c:1354:2: note: '{' token is here
        PUSHi((IV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:556:31: note: expanded from macro 'PUSHi'
#define PUSHi(i)        STMT_START { TARGi(i,1); PUSHs(TARG); } STMT_END
                                     ^~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:483:16: note: expanded from macro 'TARGi'
    STMT_START {                                                        \
               ^
MinPerfHashTwoLevel.c:1354:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        PUSHi((IV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:556:31: note: expanded from macro 'PUSHi'
#define PUSHi(i)        STMT_START { TARGi(i,1); PUSHs(TARG); } STMT_END
                                     ^~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:500:5: note: expanded from macro 'TARGi'
    } STMT_END
    ^
MinPerfHashTwoLevel.c:1354:2: note: ')' token is here
        PUSHi((IV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:556:31: note: expanded from macro 'PUSHi'
#define PUSHi(i)        STMT_START { TARGi(i,1); PUSHs(TARG); } STMT_END
                                     ^~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:500:7: note: expanded from macro 'TARGi'
    } STMT_END
      ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.c:1354:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        PUSHi((IV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:556:56: note: expanded from macro 'PUSHi'
#define PUSHi(i)        STMT_START { TARGi(i,1); PUSHs(TARG); } STMT_END
                                                              ^
MinPerfHashTwoLevel.c:1354:2: note: ')' token is here
        PUSHi((IV)RETVAL);
        ^~~~~~~~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/pp.h:556:58: note: expanded from macro 'PUSHi'
#define PUSHi(i)        STMT_START { TARGi(i,1); PUSHs(TARG); } STMT_END
                                                                ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.c:1356:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:325:5: note: expanded from macro 'XSRETURN'
    STMT_START {                                        \
    ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.c:1356:5: note: '{' token is here
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:325:16: note: expanded from macro 'XSRETURN'
    STMT_START {                                        \
               ^
MinPerfHashTwoLevel.c:1356:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:330:5: note: expanded from macro 'XSRETURN'
    } STMT_END
    ^
MinPerfHashTwoLevel.c:1356:5: note: ')' token is here
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:330:7: note: expanded from macro 'XSRETURN'
    } STMT_END
      ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.c:1374:2: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        STMT_START {
        ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.c:1374:13: note: '{' token is here
        STMT_START {
                   ^
MinPerfHashTwoLevel.c:1385:2: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
        } STMT_END
        ^
MinPerfHashTwoLevel.c:1385:4: note: ')' token is here
        } STMT_END
          ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.c:1419:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:325:5: note: expanded from macro 'XSRETURN'
    STMT_START {                                        \
    ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.c:1419:5: note: '{' token is here
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:325:16: note: expanded from macro 'XSRETURN'
    STMT_START {                                        \
               ^
MinPerfHashTwoLevel.c:1419:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:330:5: note: expanded from macro 'XSRETURN'
    } STMT_END
    ^
MinPerfHashTwoLevel.c:1419:5: note: ')' token is here
    XSRETURN(1);
    ^~~~~~~~~~~
/home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd/CORE/XSUB.h:330:7: note: expanded from macro 'XSRETURN'
    } STMT_END
      ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:645:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:44:30: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
#define MPH_INIT_ALL_KEYSV() STMT_START {\
                             ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:645:5: note: '{' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:44:41: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
#define MPH_INIT_ALL_KEYSV() STMT_START {\
                                        ^
MinPerfHashTwoLevel.xs:645:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:46:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_IDX,"idx");                        \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:34: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                 ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:645:5: note: '{' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:46:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_IDX,"idx");                        \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:45: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                            ^
MinPerfHashTwoLevel.xs:645:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:46:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_IDX,"idx");                        \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:41:73: note: expanded from macro 'MPH_INIT_KEYSV'
    PERL_HASH(MY_CXT.keysv[idx].hash, (str ""), (sizeof(str) - 1));     \
                                                                        ^
MinPerfHashTwoLevel.xs:645:5: note: ')' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:46:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_IDX,"idx");                        \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:42:3: note: expanded from macro 'MPH_INIT_KEYSV'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:645:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:47:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_H1_KEYS,"h1_keys");                \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:34: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                 ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:645:5: note: '{' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:47:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_H1_KEYS,"h1_keys");                \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:45: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                            ^
MinPerfHashTwoLevel.xs:645:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:47:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_H1_KEYS,"h1_keys");                \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:41:73: note: expanded from macro 'MPH_INIT_KEYSV'
    PERL_HASH(MY_CXT.keysv[idx].hash, (str ""), (sizeof(str) - 1));     \
                                                                        ^
MinPerfHashTwoLevel.xs:645:5: note: ')' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:47:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_H1_KEYS,"h1_keys");                \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:42:3: note: expanded from macro 'MPH_INIT_KEYSV'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:645:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:48:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_XOR_VAL,"xor_val");                \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:34: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                 ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:645:5: note: '{' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:48:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_XOR_VAL,"xor_val");                \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:45: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                            ^
MinPerfHashTwoLevel.xs:645:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:48:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_XOR_VAL,"xor_val");                \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:41:73: note: expanded from macro 'MPH_INIT_KEYSV'
    PERL_HASH(MY_CXT.keysv[idx].hash, (str ""), (sizeof(str) - 1));     \
                                                                        ^
MinPerfHashTwoLevel.xs:645:5: note: ')' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:48:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_XOR_VAL,"xor_val");                \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:42:3: note: expanded from macro 'MPH_INIT_KEYSV'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:645:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:49:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_H0,"h0");                          \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:34: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                 ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:645:5: note: '{' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:49:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_H0,"h0");                          \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:45: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                            ^
MinPerfHashTwoLevel.xs:645:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:49:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_H0,"h0");                          \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:41:73: note: expanded from macro 'MPH_INIT_KEYSV'
    PERL_HASH(MY_CXT.keysv[idx].hash, (str ""), (sizeof(str) - 1));     \
                                                                        ^
MinPerfHashTwoLevel.xs:645:5: note: ')' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:49:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_H0,"h0");                          \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:42:3: note: expanded from macro 'MPH_INIT_KEYSV'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:645:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:50:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_KEY,"key");                        \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:34: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                 ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:645:5: note: '{' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:50:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_KEY,"key");                        \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:45: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                            ^
MinPerfHashTwoLevel.xs:645:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:50:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_KEY,"key");                        \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:41:73: note: expanded from macro 'MPH_INIT_KEYSV'
    PERL_HASH(MY_CXT.keysv[idx].hash, (str ""), (sizeof(str) - 1));     \
                                                                        ^
MinPerfHashTwoLevel.xs:645:5: note: ')' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:50:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_KEY,"key");                        \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:42:3: note: expanded from macro 'MPH_INIT_KEYSV'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:645:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:51:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_KEY_NORMALIZED,"key_normalized");  \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:34: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                 ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:645:5: note: '{' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:51:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_KEY_NORMALIZED,"key_normalized");  \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:45: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                            ^
MinPerfHashTwoLevel.xs:645:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:51:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_KEY_NORMALIZED,"key_normalized");  \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:41:73: note: expanded from macro 'MPH_INIT_KEYSV'
    PERL_HASH(MY_CXT.keysv[idx].hash, (str ""), (sizeof(str) - 1));     \
                                                                        ^
MinPerfHashTwoLevel.xs:645:5: note: ')' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:51:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_KEY_NORMALIZED,"key_normalized");  \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:42:3: note: expanded from macro 'MPH_INIT_KEYSV'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:645:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:52:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_KEY_IS_UTF8,"key_is_utf8");        \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:34: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                 ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:645:5: note: '{' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:52:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_KEY_IS_UTF8,"key_is_utf8");        \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:45: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                            ^
MinPerfHashTwoLevel.xs:645:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:52:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_KEY_IS_UTF8,"key_is_utf8");        \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:41:73: note: expanded from macro 'MPH_INIT_KEYSV'
    PERL_HASH(MY_CXT.keysv[idx].hash, (str ""), (sizeof(str) - 1));     \
                                                                        ^
MinPerfHashTwoLevel.xs:645:5: note: ')' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:52:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_KEY_IS_UTF8,"key_is_utf8");        \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:42:3: note: expanded from macro 'MPH_INIT_KEYSV'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:645:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:53:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_VAL,"val");                        \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:34: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                 ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:645:5: note: '{' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:53:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_VAL,"val");                        \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:45: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                            ^
MinPerfHashTwoLevel.xs:645:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:53:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_VAL,"val");                        \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:41:73: note: expanded from macro 'MPH_INIT_KEYSV'
    PERL_HASH(MY_CXT.keysv[idx].hash, (str ""), (sizeof(str) - 1));     \
                                                                        ^
MinPerfHashTwoLevel.xs:645:5: note: ')' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:53:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_VAL,"val");                        \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:42:3: note: expanded from macro 'MPH_INIT_KEYSV'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:645:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:54:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_VAL_NORMALIZED,"val_normalized");  \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:34: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                 ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:645:5: note: '{' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:54:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_VAL_NORMALIZED,"val_normalized");  \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:45: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                            ^
MinPerfHashTwoLevel.xs:645:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:54:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_VAL_NORMALIZED,"val_normalized");  \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:41:73: note: expanded from macro 'MPH_INIT_KEYSV'
    PERL_HASH(MY_CXT.keysv[idx].hash, (str ""), (sizeof(str) - 1));     \
                                                                        ^
MinPerfHashTwoLevel.xs:645:5: note: ')' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:54:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_VAL_NORMALIZED,"val_normalized");  \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:42:3: note: expanded from macro 'MPH_INIT_KEYSV'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:645:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:55:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_VAL_IS_UTF8,"val_is_utf8");        \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:34: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                 ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:645:5: note: '{' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:55:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_VAL_IS_UTF8,"val_is_utf8");        \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:45: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                            ^
MinPerfHashTwoLevel.xs:645:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:55:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_VAL_IS_UTF8,"val_is_utf8");        \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:41:73: note: expanded from macro 'MPH_INIT_KEYSV'
    PERL_HASH(MY_CXT.keysv[idx].hash, (str ""), (sizeof(str) - 1));     \
                                                                        ^
MinPerfHashTwoLevel.xs:645:5: note: ')' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:55:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_VAL_IS_UTF8,"val_is_utf8");        \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:42:3: note: expanded from macro 'MPH_INIT_KEYSV'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:645:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:57:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_VARIANT,"variant");                \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:34: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                 ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:645:5: note: '{' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:57:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_VARIANT,"variant");                \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:45: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                            ^
MinPerfHashTwoLevel.xs:645:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:57:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_VARIANT,"variant");                \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:41:73: note: expanded from macro 'MPH_INIT_KEYSV'
    PERL_HASH(MY_CXT.keysv[idx].hash, (str ""), (sizeof(str) - 1));     \
                                                                        ^
MinPerfHashTwoLevel.xs:645:5: note: ')' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:57:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_VARIANT,"variant");                \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:42:3: note: expanded from macro 'MPH_INIT_KEYSV'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:645:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:58:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_COMPUTE_FLAGS,"compute_flags");    \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:34: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                 ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:645:5: note: '{' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:58:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_COMPUTE_FLAGS,"compute_flags");    \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:45: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                            ^
MinPerfHashTwoLevel.xs:645:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:58:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_COMPUTE_FLAGS,"compute_flags");    \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:41:73: note: expanded from macro 'MPH_INIT_KEYSV'
    PERL_HASH(MY_CXT.keysv[idx].hash, (str ""), (sizeof(str) - 1));     \
                                                                        ^
MinPerfHashTwoLevel.xs:645:5: note: ')' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:58:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_COMPUTE_FLAGS,"compute_flags");    \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:42:3: note: expanded from macro 'MPH_INIT_KEYSV'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:645:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:59:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_STATE,"state");                    \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:34: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                 ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:645:5: note: '{' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:59:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_STATE,"state");                    \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:45: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                            ^
MinPerfHashTwoLevel.xs:645:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:59:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_STATE,"state");                    \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:41:73: note: expanded from macro 'MPH_INIT_KEYSV'
    PERL_HASH(MY_CXT.keysv[idx].hash, (str ""), (sizeof(str) - 1));     \
                                                                        ^
MinPerfHashTwoLevel.xs:645:5: note: ')' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:59:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_STATE,"state");                    \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:42:3: note: expanded from macro 'MPH_INIT_KEYSV'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:645:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:60:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_SOURCE_HASH,"source_hash");        \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:34: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                 ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:645:5: note: '{' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:60:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_SOURCE_HASH,"source_hash");        \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:45: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                            ^
MinPerfHashTwoLevel.xs:645:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:60:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_SOURCE_HASH,"source_hash");        \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:41:73: note: expanded from macro 'MPH_INIT_KEYSV'
    PERL_HASH(MY_CXT.keysv[idx].hash, (str ""), (sizeof(str) - 1));     \
                                                                        ^
MinPerfHashTwoLevel.xs:645:5: note: ')' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:60:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_SOURCE_HASH,"source_hash");        \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:42:3: note: expanded from macro 'MPH_INIT_KEYSV'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:645:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:61:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_BUF_LENGTH,"buf_length");          \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:34: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                 ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:645:5: note: '{' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:61:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_BUF_LENGTH,"buf_length");          \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:45: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                            ^
MinPerfHashTwoLevel.xs:645:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:61:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_BUF_LENGTH,"buf_length");          \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:41:73: note: expanded from macro 'MPH_INIT_KEYSV'
    PERL_HASH(MY_CXT.keysv[idx].hash, (str ""), (sizeof(str) - 1));     \
                                                                        ^
MinPerfHashTwoLevel.xs:645:5: note: ')' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:61:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_BUF_LENGTH,"buf_length");          \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:42:3: note: expanded from macro 'MPH_INIT_KEYSV'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:645:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:62:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_BUCKETS,"buckets");                \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:34: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                 ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:645:5: note: '{' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:62:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_BUCKETS,"buckets");                \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:45: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                            ^
MinPerfHashTwoLevel.xs:645:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:62:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_BUCKETS,"buckets");                \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:41:73: note: expanded from macro 'MPH_INIT_KEYSV'
    PERL_HASH(MY_CXT.keysv[idx].hash, (str ""), (sizeof(str) - 1));     \
                                                                        ^
MinPerfHashTwoLevel.xs:645:5: note: ')' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:62:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_BUCKETS,"buckets");                \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:42:3: note: expanded from macro 'MPH_INIT_KEYSV'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:645:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:63:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_MOUNT,"mount");                    \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:34: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                 ^~~~~~~~~~
./ppport.h:4185:31: note: expanded from macro 'STMT_START'
#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
                              ^
MinPerfHashTwoLevel.xs:645:5: note: '{' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:63:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_MOUNT,"mount");                    \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:39:45: note: expanded from macro 'MPH_INIT_KEYSV'
#define MPH_INIT_KEYSV(idx, str) STMT_START {                           \
                                            ^
MinPerfHashTwoLevel.xs:645:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:63:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_MOUNT,"mount");                    \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:41:73: note: expanded from macro 'MPH_INIT_KEYSV'
    PERL_HASH(MY_CXT.keysv[idx].hash, (str ""), (sizeof(str) - 1));     \
                                                                        ^
MinPerfHashTwoLevel.xs:645:5: note: ')' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:63:5: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_MOUNT,"mount");                    \
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mph2l.h:42:3: note: expanded from macro 'MPH_INIT_KEYSV'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
MinPerfHashTwoLevel.xs:645:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:63:65: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
    MPH_INIT_KEYSV(MPH_KEYSV_MOUNT,"mount");                    \
                                                                ^
MinPerfHashTwoLevel.xs:645:5: note: ')' token is here
    MPH_INIT_ALL_KEYSV();
    ^~~~~~~~~~~~~~~~~~~~
./mph2l.h:64:3: note: expanded from macro 'MPH_INIT_ALL_KEYSV'
} STMT_END
  ^~~~~~~~
./ppport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
134 warnings and 1 error generated.
*** Error 1 in /home/cpan/.cpan/build/Algorithm-MinPerfHashTwoLevel-0.16-0 (Makefile:344 'MinPerfHashTwoLevel.o')

------------------------------
PREREQUISITES
------------------------------

Prerequisite modules loaded:

build_requires:

    Module              Need     Have    
    ------------------- -------- --------
    ExtUtils::MakeMaker 7.36     7.70    
    Test::More          1.302164 1.302199

configure_requires:

    Module              Need     Have    
    ------------------- -------- --------
    ExtUtils::MakeMaker 0        7.70    


------------------------------
ENVIRONMENT AND OTHER CONTEXT
------------------------------

Environment variables:

    AUTOMATED_TESTING = 1
    DATE_MANIP_TEST_DM5 = 1
    LC_ALL = C
    NONINTERACTIVE_TESTING = 1
    NO_NETWORK_TESTING = 1
    PATH = /home/cpan/bin/perl/bin:/home/cpan/bin:/home/cpan/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
    PERL = /home/cpan/bin/perl/bin/perl5.40.0
    PERL5LIB = 
    PERL5OPT = 
    PERL5_CPANPLUS_IS_RUNNING = 85231
    PERL5_CPAN_IS_RUNNING = 85231
    PERL_MM_USE_DEFAULT = 1
    PERL_USE_UNSAFE_INC = 1
    SHELL = /usr/local/bin/bash
    TERM = screen
    TMPDIR = /home/cpan/tmp

Perl special variables (and OS-specific diagnostics, for MSWin32):

    $^X = /home/cpan/bin/perl/bin/perl5.40.0
    $UID/$EUID = 1001 / 1001
    $GID = 1001 1001
    $EGID = 1001 1001

Perl module toolchain versions installed:

    Module              Have    
    ------------------- --------
    CPAN                2.36    
    CPAN::Meta          2.150010
    Cwd                 3.90    
    ExtUtils::CBuilder  0.280240
    ExtUtils::Command   7.70    
    ExtUtils::Install   2.22    
    ExtUtils::MakeMaker 7.70    
    ExtUtils::Manifest  1.75    
    ExtUtils::ParseXS   3.51    
    File::Spec          3.90    
    JSON                4.10    
    JSON::PP            4.16    
    Module::Build       0.4234  
    Module::Signature   n/a     
    Parse::CPAN::Meta   2.150010
    Test2               1.302199
    Test::Harness       3.48    
    Test::More          1.302199
    YAML                1.31    
    YAML::Syck          1.34    
    version             0.9930  


--

Summary of my perl5 (revision 5 version 40 subversion 0) configuration:
  Commit id: 121cb45e8f6c507d1bac1c67fc71be0dbda02c18
  Platform:
    osname=openbsd
    osvers=7.5
    archname=OpenBSD.amd64-openbsd
    uname='openbsd cjg-openbsd7 7.5 generic#79 amd64 '
    config_args='-des -Dprefix=/home/cpan/bin/perl -Dscriptdir=/home/cpan/bin/perl/bin -Dusedevel -Duse64bitall'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=undef
    usemultiplicity=undef
    use64bitint=define
    use64bitall=define
    uselongdouble=undef
    usemymalloc=n
    default_inc_excludes_dot=define
  Compiler:
    cc='cc'
    ccflags ='-DNO_LOCALE_NUMERIC -DNO_LOCALE_COLLATE -DNO_LOCALE_MONETARY -DNO_LOCALE_TIME -DNO_LOCALE_MESSAGES -DLIBC_HANDLES_MISMATCHED_CTYPE -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
    optimize='-O2'
    cppflags='-DNO_LOCALE_NUMERIC -DNO_LOCALE_COLLATE -DNO_LOCALE_MONETARY -DNO_LOCALE_TIME -DNO_LOCALE_MESSAGES -DLIBC_HANDLES_MISMATCHED_CTYPE -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
    ccversion=''
    gccversion='OpenBSD Clang 16.0.6'
    gccosandvers=''
    intsize=4
    longsize=8
    ptrsize=8
    doublesize=8
    byteorder=12345678
    doublekind=3
    d_longlong=define
    longlongsize=8
    d_longdbl=define
    longdblsize=16
    longdblkind=3
    ivtype='long'
    ivsize=8
    nvtype='double'
    nvsize=8
    Off_t='off_t'
    lseeksize=8
    alignbytes=8
    prototype=define
  Linker and Libraries:
    ld='cc'
    ldflags ='-Wl,-E  -fstack-protector-strong -L/usr/local/lib'
    libpth=/usr/lib/clang/16/lib /usr/lib /usr/local/lib
    libs=-lpthread -lm -lutil -lc
    perllibs=-lpthread -lm -lutil -lc
    libc=/usr/lib/libc.so.99.0
    so=so
    useshrplib=false
    libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=so
    d_dlsymun=undef
    ccdlflags=' '
    cccdlflags='-DPIC -fPIC '
    lddlflags='-shared -fPIC  -L/usr/local/lib -fstack-protector-strong'


Characteristics of this binary (from libperl): 
  Compile-time options:
    HAS_LONG_DOUBLE
    HAS_STRTOLD
    HAS_TIMES
    PERLIO_LAYERS
    PERL_COPY_ON_WRITE
    PERL_DONT_CREATE_GVSV
    PERL_HASH_FUNC_SIPHASH13
    PERL_HASH_USE_SBOX32
    PERL_MALLOC_WRAP
    PERL_OP_PARENT
    PERL_PRESERVE_IVUV
    PERL_USE_DEVEL
    PERL_USE_SAFE_PUTENV
    USE_64_BIT_ALL
    USE_64_BIT_INT
    USE_LARGE_FILES
    USE_LOCALE
    USE_LOCALE_CTYPE
    USE_PERLIO
    USE_PERL_ATOF
  Locally applied patches:
    RC1
  Built under openbsd
  Compiled at Jun  1 2024 14:09:12
  %ENV:
    PERL="/home/cpan/bin/perl/bin/perl5.40.0"
    PERL5LIB=""
    PERL5OPT=""
    PERL5_CPANPLUS_IS_RUNNING="85231"
    PERL5_CPAN_IS_RUNNING="85231"
    PERL_MM_USE_DEFAULT="1"
    PERL_USE_UNSAFE_INC="1"
  @INC:
    /home/cpan/bin/perl/lib/site_perl/5.40.0/OpenBSD.amd64-openbsd
    /home/cpan/bin/perl/lib/site_perl/5.40.0
    /home/cpan/bin/perl/lib/5.40.0/OpenBSD.amd64-openbsd
    /home/cpan/bin/perl/lib/5.40.0
    .