@@ -1981,19 +1981,22 @@ END_EXTERN_C
1981
1981
(((SvFLAGS(sv) & (SVf_POK|SVs_GMG)) == SVf_POK) || ((SvFLAGS(sv) & (SVf_IOK|SVp_POK|SVs_GMG)) == (SVf_IOK|SVp_POK)))
1982
1982
1983
1983
#define SvPV_flags (sv , len , flags ) \
1984
+ (STATIC_ASSERT_EXPR_(sizeof(len) == sizeof(STRLEN)), \
1984
1985
Perl_SvPV_helper(aTHX_ sv, &len, flags, SvPVnormal_type_, \
1985
- Perl_sv_2pv_flags, FALSE, 0)
1986
+ Perl_sv_2pv_flags, FALSE, 0))
1986
1987
#define SvPV_flags_const (sv , len , flags ) \
1988
+ (STATIC_ASSERT_EXPR_(sizeof(len) == sizeof(STRLEN)), \
1987
1989
((const char*) Perl_SvPV_helper(aTHX_ sv, &len, flags, SvPVnormal_type_, \
1988
1990
Perl_sv_2pv_flags, FALSE, \
1989
- SV_CONST_RETURN))
1991
+ SV_CONST_RETURN)))
1990
1992
#define SvPV_flags_const_nolen (sv , flags ) \
1991
1993
((const char*) Perl_SvPV_helper(aTHX_ sv, NULL, flags, SvPVnormal_type_, \
1992
1994
Perl_sv_2pv_flags, FALSE, \
1993
1995
SV_CONST_RETURN))
1994
1996
#define SvPV_flags_mutable (sv , len , flags ) \
1997
+ (STATIC_ASSERT_EXPR_(sizeof(len) == sizeof(STRLEN)), \
1995
1998
Perl_SvPV_helper(aTHX_ sv, &len, flags, SvPVnormal_type_, \
1996
- Perl_sv_2pv_flags, FALSE, SV_MUTABLE_RETURN)
1999
+ Perl_sv_2pv_flags, FALSE, SV_MUTABLE_RETURN))
1997
2000
1998
2001
#define SvPV_nolen (sv ) \
1999
2002
Perl_SvPV_helper(aTHX_ sv, NULL, SV_GMAGIC, SvPVnormal_type_, \
@@ -2013,14 +2016,16 @@ END_EXTERN_C
2013
2016
#define SvPV_nomg_const_nolen (sv ) SvPV_flags_const_nolen(sv, 0)
2014
2017
2015
2018
#define SvPV_force_flags (sv , len , flags ) \
2019
+ (STATIC_ASSERT_EXPR_(sizeof(len) == sizeof(STRLEN)), \
2016
2020
Perl_SvPV_helper(aTHX_ sv, &len, flags, SvPVforce_type_, \
2017
- Perl_sv_pvn_force_flags, FALSE, 0)
2021
+ Perl_sv_pvn_force_flags, FALSE, 0))
2018
2022
#define SvPV_force_flags_nolen (sv , flags ) \
2019
2023
Perl_SvPV_helper(aTHX_ sv, NULL, flags, SvPVforce_type_, \
2020
2024
Perl_sv_pvn_force_flags, FALSE, 0)
2021
2025
#define SvPV_force_flags_mutable (sv , len , flags ) \
2026
+ (STATIC_ASSERT_EXPR_(sizeof(len) == sizeof(STRLEN)), \
2022
2027
Perl_SvPV_helper(aTHX_ sv, &len, flags, SvPVforce_type_, \
2023
- Perl_sv_pvn_force_flags, FALSE, SV_MUTABLE_RETURN)
2028
+ Perl_sv_pvn_force_flags, FALSE, SV_MUTABLE_RETURN))
2024
2029
2025
2030
#define SvPV_force (sv , len ) SvPV_force_flags(sv, len, SV_GMAGIC)
2026
2031
#define SvPV_force_nolen (sv ) SvPV_force_flags_nolen(sv, SV_GMAGIC)
@@ -2031,44 +2036,54 @@ END_EXTERN_C
2031
2036
#define SvPV_force_nomg_nolen (sv ) SvPV_force_flags_nolen(sv, 0)
2032
2037
2033
2038
#define SvPVutf8 (sv , len ) \
2039
+ (STATIC_ASSERT_EXPR_(sizeof(len) == sizeof(STRLEN)), \
2034
2040
Perl_SvPV_helper(aTHX_ sv, &len, SV_GMAGIC, SvPVutf8_type_, \
2035
- Perl_sv_2pvutf8_flags, FALSE, 0)
2041
+ Perl_sv_2pvutf8_flags, FALSE, 0))
2036
2042
#define SvPVutf8_nomg (sv , len ) \
2043
+ (STATIC_ASSERT_EXPR_(sizeof(len) == sizeof(STRLEN)), \
2037
2044
Perl_SvPV_helper(aTHX_ sv, &len, 0, SvPVutf8_type_, \
2038
- Perl_sv_2pvutf8_flags, FALSE, 0)
2045
+ Perl_sv_2pvutf8_flags, FALSE, 0))
2039
2046
#define SvPVutf8_nolen (sv ) \
2040
2047
Perl_SvPV_helper(aTHX_ sv, NULL, SV_GMAGIC, SvPVutf8_type_, \
2041
2048
Perl_sv_2pvutf8_flags, FALSE, 0)
2042
2049
#define SvPVutf8_or_null (sv , len ) \
2050
+ (STATIC_ASSERT_EXPR_(sizeof(len) == sizeof(STRLEN)), \
2043
2051
Perl_SvPV_helper(aTHX_ sv, &len, SV_GMAGIC, SvPVutf8_type_, \
2044
- Perl_sv_2pvutf8_flags, TRUE, 0)
2052
+ Perl_sv_2pvutf8_flags, TRUE, 0))
2045
2053
#define SvPVutf8_or_null_nomg (sv , len ) \
2054
+ (STATIC_ASSERT_EXPR_(sizeof(len) == sizeof(STRLEN)), \
2046
2055
Perl_SvPV_helper(aTHX_ sv, &len, 0, SvPVutf8_type_, \
2047
- Perl_sv_2pvutf8_flags, TRUE, 0)
2056
+ Perl_sv_2pvutf8_flags, TRUE, 0))
2048
2057
2049
2058
#define SvPVbyte (sv , len ) \
2059
+ (STATIC_ASSERT_EXPR_(sizeof(len) == sizeof(STRLEN)), \
2050
2060
Perl_SvPV_helper(aTHX_ sv, &len, SV_GMAGIC, SvPVbyte_type_, \
2051
- Perl_sv_2pvbyte_flags, FALSE, 0)
2061
+ Perl_sv_2pvbyte_flags, FALSE, 0))
2052
2062
#define SvPVbyte_nomg (sv , len ) \
2063
+ (STATIC_ASSERT_EXPR_(sizeof(len) == sizeof(STRLEN)), \
2053
2064
Perl_SvPV_helper(aTHX_ sv, &len, 0, SvPVbyte_type_, \
2054
- Perl_sv_2pvbyte_flags, FALSE, 0)
2065
+ Perl_sv_2pvbyte_flags, FALSE, 0))
2055
2066
#define SvPVbyte_nolen (sv ) \
2056
2067
Perl_SvPV_helper(aTHX_ sv, NULL, SV_GMAGIC, SvPVbyte_type_, \
2057
2068
Perl_sv_2pvbyte_flags, FALSE, 0)
2058
2069
#define SvPVbyte_or_null (sv , len ) \
2070
+ (STATIC_ASSERT_EXPR_(sizeof(len) == sizeof(STRLEN)), \
2059
2071
Perl_SvPV_helper(aTHX_ sv, &len, SV_GMAGIC, SvPVbyte_type_, \
2060
- Perl_sv_2pvbyte_flags, TRUE, 0)
2072
+ Perl_sv_2pvbyte_flags, TRUE, 0))
2061
2073
#define SvPVbyte_or_null_nomg (sv , len ) \
2074
+ (STATIC_ASSERT_EXPR_(sizeof(len) == sizeof(STRLEN)), \
2062
2075
Perl_SvPV_helper(aTHX_ sv, &len, 0, SvPVbyte_type_, \
2063
- Perl_sv_2pvbyte_flags, TRUE, 0)
2076
+ Perl_sv_2pvbyte_flags, TRUE, 0))
2064
2077
2065
2078
#define SvPVutf8_force (sv , len ) \
2079
+ (STATIC_ASSERT_EXPR_(sizeof(len) == sizeof(STRLEN)), \
2066
2080
Perl_SvPV_helper(aTHX_ sv, &len, 0, SvPVutf8_pure_type_, \
2067
- Perl_sv_pvutf8n_force_wrapper, FALSE, 0)
2081
+ Perl_sv_pvutf8n_force_wrapper, FALSE, 0))
2068
2082
2069
2083
#define SvPVbyte_force (sv , len ) \
2084
+ (STATIC_ASSERT_EXPR_(sizeof(len) == sizeof(STRLEN)), \
2070
2085
Perl_SvPV_helper(aTHX_ sv, &len, 0, SvPVbyte_pure_type_, \
2071
- Perl_sv_pvbyten_force_wrapper, FALSE, 0)
2086
+ Perl_sv_pvbyten_force_wrapper, FALSE, 0))
2072
2087
2073
2088
/* define FOOx(): Before FOO(x) was inlined, these were idempotent versions of
2074
2089
* FOO(). */
0 commit comments