:
: Pointer parameters that must not be passed NULLs should be prefixed with NN.
:
+: Pointer parameters that may be NULL should be prefixed with NULLOK. This has
+: no effect on output yet. It's a notation for the maintainers to know "I have
+: defined whether NULL is OK or not" rather than having neither NULL or NULLOK,
+: which is ambiguous.
+:
: Individual flags may be separated by whitespace.
:
: New global functions should be added at the end for binary compatibility
Anod |int |perl_run |NN PerlInterpreter* interp
Anod |int |perl_parse |PerlInterpreter* interp|XSINIT_t xsinit \
|int argc|char** argv|char** env
-Anp |bool |doing_taint |int argc|char** argv|char** env
+AnpR |bool |doing_taint |int argc|char** argv|char** env
#if defined(USE_ITHREADS)
Anod |PerlInterpreter*|perl_clone|PerlInterpreter* interp|UV flags
# if defined(PERL_IMPLICIT_SYS)
p |I32 |apply |I32 type|SV** mark|SV** sp
ApM |void |apply_attrs_string|const char *stashpv|CV *cv|const char *attrstr|STRLEN len
Apd |void |av_clear |AV* ar
-ApdR |SV* |av_delete |AV* ar|I32 key|I32 flags
+Apd |SV* |av_delete |AV* ar|I32 key|I32 flags
ApdR |bool |av_exists |AV* ar|I32 key
Apd |void |av_extend |NN AV* ar|I32 key
pR |AV* |av_fake |I32 size|NN SV** svp
Apd |void |av_fill |AV* ar|I32 fill
ApdR |I32 |av_len |const AV* ar
ApdR |AV* |av_make |I32 size|NN SV** svp
-ApdR |SV* |av_pop |AV* ar
+Apd |SV* |av_pop |AV* ar
Apd |void |av_push |AV* ar|SV* val
p |void |av_reify |AV* ar
ApdR |SV* |av_shift |AV* ar
p |void |boot_core_PerlIO
Ap |void |call_list |I32 oldscope|NN AV* av_list
pR |bool |cando |Mode_t mode|Uid_t effective|NN const Stat_t* statbufp
-Ap |U32 |cast_ulong |NV f
-Ap |I32 |cast_i32 |NV f
-Ap |IV |cast_iv |NV f
-Ap |UV |cast_uv |NV f
+ApR |U32 |cast_ulong |NV f
+ApR |I32 |cast_i32 |NV f
+ApR |IV |cast_iv |NV f
+ApR |UV |cast_uv |NV f
#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
-Ap |I32 |my_chsize |int fd|Off_t length
+ApR |I32 |my_chsize |int fd|Off_t length
#endif
-p |OP* |convert |I32 optype|I32 flags|OP* o
+pR |OP* |convert |I32 optype|I32 flags|OP* o
Afprd |void |croak |const char* pat|...
Apr |void |vcroak |const char* pat|va_list* args
#if defined(PERL_IMPLICIT_CONTEXT)
p |SV* |op_const_sv |const OP* o|CV* cv
Apd |void |cv_undef |CV* cv
Ap |void |cx_dump |PERL_CONTEXT* cs
-Ap |SV* |filter_add |filter_t funcp|SV* datasv
+Ap |SV* |filter_add |NULLOK filter_t funcp|NULLOK SV* datasv
Ap |void |filter_del |filter_t funcp
Ap |I32 |filter_read |int idx|SV* buffer|int maxlen
ApPR |char** |get_op_descs
Ap |void |free_tmps
p |OP* |gen_constant_list|OP* o
#if !defined(HAS_GETENV_LEN)
-p |char* |getenv_len |const char* key|unsigned long *len
+p |char* |getenv_len |NN const char* key|NN unsigned long *len
#endif
Ap |void |gp_free |GV* gv
Ap |GP* |gp_ref |GP* gp
-Ap |GV* |gv_AVadd |GV* gv
-Ap |GV* |gv_HVadd |GV* gv
-Ap |GV* |gv_IOadd |GV* gv
-Ap |GV* |gv_autoload4 |HV* stash|const char* name|STRLEN len \
- |I32 method
+Ap |GV* |gv_AVadd |NN GV* gv
+Ap |GV* |gv_HVadd |NN GV* gv
+Ap |GV* |gv_IOadd |NN GV* gv
+ApR |GV* |gv_autoload4 |HV* stash|NN const char* name|STRLEN len|I32 method
Ap |void |gv_check |HV* stash
Ap |void |gv_efullname |SV* sv|const GV* gv
Apmb |void |gv_efullname3 |SV* sv|const GV* gv|const char* prefix
Ap |void |gv_efullname4 |SV* sv|const GV* gv|const char* prefix|bool keepmain
-Ap |GV* |gv_fetchfile |const char* name
+Ap |GV* |gv_fetchfile |NN const char* name
Apd |GV* |gv_fetchmeth |HV* stash|const char* name|STRLEN len \
|I32 level
Apd |GV* |gv_fetchmeth_autoload |HV* stash|const char* name|STRLEN len \
Ap |void |gv_fullname |SV* sv|const GV* gv
Apmb |void |gv_fullname3 |SV* sv|const GV* gv|const char* prefix
Ap |void |gv_fullname4 |SV* sv|const GV* gv|const char* prefix|bool keepmain
-Ap |void |gv_init |GV* gv|HV* stash|const char* name \
- |STRLEN len|int multi
+Ap |void |gv_init |NN GV* gv|HV* stash|NN const char* name|STRLEN len|int multi
Apd |HV* |gv_stashpv |const char* name|I32 create
Apd |HV* |gv_stashpvn |const char* name|U32 namelen|I32 create
Apd |HV* |gv_stashsv |SV* sv|I32 create
Ap |void |hv_delayfree_ent|HV* hv|HE* entry
Apd |SV* |hv_delete |HV* tb|const char* key|I32 klen|I32 flags
Apd |SV* |hv_delete_ent |HV* tb|SV* key|I32 flags|U32 hash
-Apd |bool |hv_exists |HV* tb|const char* key|I32 klen
-Apd |bool |hv_exists_ent |HV* tb|SV* key|U32 hash
+ApdR |bool |hv_exists |HV* tb|const char* key|I32 klen
+ApdR |bool |hv_exists_ent |HV* tb|SV* key|U32 hash
Apd |SV** |hv_fetch |HV* tb|const char* key|I32 klen|I32 lval
Apd |HE* |hv_fetch_ent |HV* tb|SV* key|I32 lval|U32 hash
Ap |void |hv_free_ent |NN HV* hv|HE* entry
ApPR |char* |instr |NN const char* big|NN const char* little
pR |bool |io_close |NN IO* io|bool not_implicit
pR |OP* |invert |OP* cmd
-dpR |bool |is_gv_magical |const char *name|STRLEN len|U32 flags
+dpR |bool |is_gv_magical |NN const char *name|STRLEN len|U32 flags
ApR |I32 |is_lvalue_sub
ApPR |U32 |to_uni_upper_lc|U32 c
ApPR |U32 |to_uni_title_lc|U32 c
Apd |UV |grok_bin |NN const char* start|NN STRLEN* len_p|NN I32* flags|NV *result
Apd |UV |grok_hex |NN const char* start|NN STRLEN* len_p|NN I32* flags|NV *result
Apd |int |grok_number |NN const char *pv|STRLEN len|UV *valuep
-Apd |bool |grok_numeric_radix|const char **sp|const char *send
+ApdR |bool |grok_numeric_radix|const char **sp|const char *send
Apd |UV |grok_oct |const char* start|STRLEN* len_p|I32* flags|NV *result
p |int |magic_clearenv |SV* sv|MAGIC* mg
p |int |magic_clear_all_env|SV* sv|MAGIC* mg
p |int |magic_freeregexp|SV* sv|MAGIC* mg
p |int |magic_freeovrld|SV* sv|MAGIC* mg
p |int |magic_get |SV* sv|MAGIC* mg
-p |int |magic_getarylen|SV* sv|MAGIC* mg
+p |int |magic_getarylen|NN SV* sv|NN const MAGIC* mg
p |int |magic_getdefelem|SV* sv|MAGIC* mg
p |int |magic_getglob |SV* sv|MAGIC* mg
p |int |magic_getnkeys |SV* sv|MAGIC* mg
p |int |magic_set |SV* sv|MAGIC* mg
p |int |magic_setamagic|SV* sv|MAGIC* mg
p |int |magic_setarylen|SV* sv|MAGIC* mg
+p |int |magic_freearylen_p|SV* sv|MAGIC* mg
p |int |magic_setbm |SV* sv|MAGIC* mg
p |int |magic_setdbline|SV* sv|MAGIC* mg
p |int |magic_setdefelem|SV* sv|MAGIC* mg
Apd |void |sortsv |SV ** array|size_t num_elts|SVCOMPARE_t cmp
Apd |int |mg_clear |SV* sv
Apd |int |mg_copy |SV* sv|SV* nsv|const char* key|I32 klen
+pd |void |mg_localize |SV* sv|SV* nsv
Apd |MAGIC* |mg_find |const SV* sv|int type
Apd |int |mg_free |SV* sv
Apd |int |mg_get |SV* sv
Apda |SV* |newSVpvn_share |const char* s|I32 len|U32 hash
Afpda |SV* |newSVpvf |const char* pat|...
Ap |SV* |vnewSVpvf |const char* pat|va_list* args
-Apda |SV* |newSVrv |SV* rv|const char* classname
-Apda |SV* |newSVsv |SV* old
+Apda |SV* |newSVrv |NN SV* rv|NULLOK const char* classname
+Apda |SV* |newSVsv |NULLOK SV* old
Apa |OP* |newUNOP |I32 type|I32 flags|OP* first
Apa |OP* |newWHILEOP |I32 flags|I32 debuggable|LOOP* loop \
|I32 whileline|OP* expr|OP* block|OP* cont \
|I32 has_my
Apa |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems
Ap |char* |scan_vstring |NN const char *vstr|NN SV *sv
-Apd |char* |scan_version |NN const char *vstr|NN SV *sv|bool qv
+Apd |const char* |scan_version |NN const char *vstr|NN SV *sv|bool qv
Apd |SV* |new_version |SV *ver
Apd |SV* |upg_version |SV *ver
Apd |SV* |vnumify |SV *vs
Apd |CV* |get_cv |const char* name|I32 create
Ap |int |init_i18nl10n |int printwarn
Ap |int |init_i18nl14n |int printwarn
-Ap |void |new_collate |NN char* newcoll
-Ap |void |new_ctype |NN char* newctype
-Ap |void |new_numeric |NN char* newcoll
+Ap |void |new_collate |NULLOK const char* newcoll
+Ap |void |new_ctype |NN const char* newctype
+Ap |void |new_numeric |NULLOK const char* newcoll
Ap |void |set_numeric_local
Ap |void |set_numeric_radix
Ap |void |set_numeric_standard
#if !defined(HAS_RENAME)
p |I32 |same_dirent |NN const char* a|NN const char* b
#endif
-Apd |char* |savepv |const char* pv
-Apd |char* |savesharedpv |const char* pv
-Apd |char* |savepvn |const char* pv|I32 len
+Apda |char* |savepv |NN const char* pv
+Apda |char* |savepvn |NN const char* pv|I32 len
+Apda |char* |savesharedpv |const char* pv
+Apda |char* |savesvpv |NN SV* sv
Ap |void |savestack_grow
Ap |void |savestack_grow_cnt |I32 need
Ap |void |save_aelem |const AV* av|I32 idx|SV **sptr
|NN const char* little|STRLEN littlelen
Apd |int |sv_isa |NN SV* sv|const char* name
Apd |int |sv_isobject |NN SV* sv
-Apd |STRLEN |sv_len |NN SV* sv
-Apd |STRLEN |sv_len_utf8 |NN SV* sv
+Apd |STRLEN |sv_len |NULLOK SV* sv
+Apd |STRLEN |sv_len_utf8 |NULLOK SV* sv
Apd |void |sv_magic |NN SV* sv|SV* obj|int how|const char* name \
|I32 namlen
Apd |MAGIC *|sv_magicext |NN SV* sv|SV* obj|int how|const MGVTBL *vtbl \
|const char* name|I32 namlen
-Apd |SV* |sv_mortalcopy |NN SV* oldsv
+ApdaR |SV* |sv_mortalcopy |NULLOK SV* oldsv
ApdR |SV* |sv_newmortal
-Apd |SV* |sv_newref |SV* sv
+Apd |SV* |sv_newref |NULLOK SV* sv
Ap |char* |sv_peek |SV* sv
-Apd |void |sv_pos_u2b |SV* sv|NN I32* offsetp|I32* lenp
-Apd |void |sv_pos_b2u |SV* sv|NN I32* offsetp
+Apd |void |sv_pos_u2b |NULLOK SV* sv|NN I32* offsetp|NULLOK I32* lenp
+Apd |void |sv_pos_b2u |NULLOK SV* sv|NN I32* offsetp
Amdb |char* |sv_pvn_force |SV* sv|STRLEN* lp
Apd |char* |sv_pvutf8n_force|SV* sv|STRLEN* lp
Apd |char* |sv_pvbyten_force|SV* sv|STRLEN* lp
Apd |SV* |sv_setref_iv |SV* rv|const char* classname|IV iv
Apd |SV* |sv_setref_uv |SV* rv|const char* classname|UV uv
Apd |SV* |sv_setref_nv |SV* rv|const char* classname|NV nv
-Apd |SV* |sv_setref_pv |SV* rv|const char* classname|void* pv
-Apd |SV* |sv_setref_pvn |SV* rv|const char* classname|char* pv \
- |STRLEN n
+Apd |SV* |sv_setref_pv |SV* rv|const char* classname|NULLOK void* pv
+Apd |SV* |sv_setref_pvn |SV* rv|const char* classname|NN const char* pv|STRLEN n
Apd |void |sv_setpv |SV* sv|const char* ptr
Apd |void |sv_setpvn |NN SV* sv|const char* ptr|STRLEN len
Amdb |void |sv_setsv |SV* dsv|SV* ssv
Apd |void |sv_taint |SV* sv
-Apd |bool |sv_tainted |SV* sv
+ApdR |bool |sv_tainted |SV* sv
Apd |int |sv_unmagic |NN SV* sv|int type
Apd |void |sv_unref |NN SV* sv
Apd |void |sv_unref_flags |NN SV* sv|U32 flags
Apd |void |sv_untaint |NN SV* sv
-Apd |bool |sv_upgrade |NN SV* sv|U32 mt
+Apd |void |sv_upgrade |NN SV* sv|U32 mt
Apd |void |sv_usepvn |NN SV* sv|char* ptr|STRLEN len
Apd |void |sv_vcatpvfn |NN SV* sv|NN const char* pat|STRLEN patlen \
|va_list* args|SV** svargs|I32 svmax \
Ap |SV* |swash_init |const char* pkg|const char* name|SV* listsv|I32 minbits|I32 none
Ap |UV |swash_fetch |SV *sv|const U8 *ptr|bool do_utf8
Ap |void |taint_env
-Ap |void |taint_proper |const char* f|const char* s
+Ap |void |taint_proper |NULLOK const char* f|NN const char* s
Apd |UV |to_utf8_case |NN const U8 *p|NN U8* ustrp|STRLEN *lenp|SV **swash|const char *normal|const char *special
Apd |UV |to_utf8_lower |NN const U8 *p|NN U8* ustrp|STRLEN *lenp
Apd |UV |to_utf8_upper |NN const U8 *p|NN U8* ustrp|STRLEN *lenp
Ap |MGVTBL*|get_vtbl |int vtbl_id
Ap |char* |pv_display |SV *dsv|const char *pv|STRLEN cur|STRLEN len \
|STRLEN pvlim
-Afp |void |dump_indent |I32 level|PerlIO *file|const char* pat|...
-Ap |void |dump_vindent |I32 level|PerlIO *file|const char* pat \
+Afp |void |dump_indent |I32 level|NN PerlIO *file|const char* pat|...
+Ap |void |dump_vindent |I32 level|NN PerlIO *file|const char* pat \
|va_list *args
-Ap |void |do_gv_dump |I32 level|PerlIO *file|const char *name|GV *sv
-Ap |void |do_gvgv_dump |I32 level|PerlIO *file|const char *name|GV *sv
-Ap |void |do_hv_dump |I32 level|PerlIO *file|const char *name|HV *sv
-Ap |void |do_magic_dump |I32 level|PerlIO *file|const MAGIC *mg|I32 nest \
+Ap |void |do_gv_dump |I32 level|NN PerlIO *file|const char *name|GV *sv
+Ap |void |do_gvgv_dump |I32 level|NN PerlIO *file|const char *name|GV *sv
+Ap |void |do_hv_dump |I32 level|NN PerlIO *file|const char *name|HV *sv
+Ap |void |do_magic_dump |I32 level|NN PerlIO *file|const MAGIC *mg|I32 nest \
|I32 maxnest|bool dumpops|STRLEN pvlim
-Ap |void |do_op_dump |I32 level|PerlIO *file|const OP *o
-Ap |void |do_pmop_dump |I32 level|PerlIO *file|const PMOP *pm
-Ap |void |do_sv_dump |I32 level|PerlIO *file|SV *sv|I32 nest \
+Ap |void |do_op_dump |I32 level|NN PerlIO *file|const OP *o
+Ap |void |do_pmop_dump |I32 level|NN PerlIO *file|const PMOP *pm
+Ap |void |do_sv_dump |I32 level|NN PerlIO *file|NULLOK SV *sv|I32 nest \
|I32 maxnest|bool dumpops|STRLEN pvlim
-Ap |void |magic_dump |const MAGIC *mg
+Ap |void |magic_dump |NULLOK const MAGIC *mg
Ap |void |reginitcolors
Apd |char* |sv_2pv_nolen |SV* sv
Apd |char* |sv_2pvutf8_nolen|SV* sv
p |OP * |my_attrs |NN OP *o|OP *attrs
p |void |boot_core_xsutils
#if defined(USE_ITHREADS)
-Ap |PERL_CONTEXT*|cx_dup |PERL_CONTEXT* cx|I32 ix|I32 max|CLONE_PARAMS* param
-Ap |PERL_SI*|si_dup |PERL_SI* si|CLONE_PARAMS* param
-Ap |ANY* |ss_dup |PerlInterpreter* proto_perl|CLONE_PARAMS* param
-Ap |void* |any_dup |void* v|PerlInterpreter* proto_perl
-Ap |HE* |he_dup |HE* e|bool shared|CLONE_PARAMS* param
-Ap |HEK* |hek_dup |HEK* e|CLONE_PARAMS* param
-Ap |REGEXP*|re_dup |REGEXP* r|CLONE_PARAMS* param
-Ap |PerlIO*|fp_dup |PerlIO* fp|char type|CLONE_PARAMS* param
-Ap |DIR* |dirp_dup |DIR* dp
-Ap |GP* |gp_dup |GP* gp|CLONE_PARAMS* param
-Ap |MAGIC* |mg_dup |MAGIC* mg|CLONE_PARAMS* param
-Ap |SV* |sv_dup |SV* sstr|CLONE_PARAMS* param
-Ap |void |rvpv_dup |SV* dstr|SV *sstr|CLONE_PARAMS* param
-Ap |PTR_TBL_t*|ptr_table_new
-Ap |void* |ptr_table_fetch|NN PTR_TBL_t *tbl|NN void *sv
-Ap |void |ptr_table_store|NN PTR_TBL_t *tbl|void *oldsv|void *newsv
+Apa |PERL_CONTEXT*|cx_dup |PERL_CONTEXT* cx|I32 ix|I32 max|CLONE_PARAMS* param
+Apa |PERL_SI*|si_dup |PERL_SI* si|CLONE_PARAMS* param
+Apa |ANY* |ss_dup |NN PerlInterpreter* proto_perl|CLONE_PARAMS* param
+Apa |void* |any_dup |void* v|NN const PerlInterpreter* proto_perl
+Apa |HE* |he_dup |HE* e|bool shared|CLONE_PARAMS* param
+Apa |HEK* |hek_dup |HEK* e|CLONE_PARAMS* param
+Apa |REGEXP*|re_dup |const REGEXP* r|CLONE_PARAMS* param
+Apa |PerlIO*|fp_dup |PerlIO* fp|char type|CLONE_PARAMS* param
+Apa |DIR* |dirp_dup |DIR* dp
+Apa |GP* |gp_dup |GP* gp|CLONE_PARAMS* param
+Apa |MAGIC* |mg_dup |NN MAGIC* mg|CLONE_PARAMS* param
+Apa |SV* |sv_dup |NN SV* sstr|CLONE_PARAMS* param
+Ap |void |rvpv_dup |NN SV* dstr|NN SV *sstr|CLONE_PARAMS* param
+Apa |PTR_TBL_t*|ptr_table_new
+Apa |void* |ptr_table_fetch|NN PTR_TBL_t *tbl|NN const void *sv
+Ap |void |ptr_table_store|NN PTR_TBL_t *tbl|const void *oldsv|NN void *newsv
Ap |void |ptr_table_split|NN PTR_TBL_t *tbl
Ap |void |ptr_table_clear|PTR_TBL_t *tbl
Ap |void |ptr_table_free|PTR_TBL_t *tbl
Ap |void |sys_intern_init
#endif
-Ap |char * |custom_op_name |NN const OP* op
-Ap |char * |custom_op_desc |NN const OP* op
+ApR |char * |custom_op_name |NN const OP* op
+ApR |char * |custom_op_desc |NN const OP* op
#if defined(PERL_OLD_COPY_ON_WRITE)
pMX |int |sv_release_IVX |SV *sv
END_EXTERN_C
#if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT)
-s |I32 |do_trans_simple |NN SV *sv
-s |I32 |do_trans_count |NN SV *sv
-s |I32 |do_trans_complex |NN SV *sv
-s |I32 |do_trans_simple_utf8 |NN SV *sv
-s |I32 |do_trans_count_utf8 |NN SV *sv
-s |I32 |do_trans_complex_utf8 |NN SV *sv
+sR |I32 |do_trans_simple |NN SV *sv
+sR |I32 |do_trans_count |NN SV *sv
+sR |I32 |do_trans_complex |NN SV *sv
+sR |I32 |do_trans_simple_utf8 |NN SV *sv
+sR |I32 |do_trans_count_utf8 |NN SV *sv
+sR |I32 |do_trans_complex_utf8 |NN SV *sv
#endif
#if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT)
-s |void |gv_init_sv |GV *gv|I32 sv_type
+s |void |gv_init_sv |NN GV *gv|I32 sv_type
s |void |require_errno |NN GV *gv
#endif
#if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
-s |void |hsplit |HV *hv
+s |void |hsplit |NN HV *hv
s |void |hfreeentries |HV *hv
-sR |HE* |new_he
+sa |HE* |new_he
s |void |del_he |NN HE *p
-sR |HEK* |save_hek_flags |NN const char *str|I32 len|U32 hash|int flags
+sa |HEK* |save_hek_flags |NN const char *str|I32 len|U32 hash|int flags
s |void |hv_magic_check |NN HV *hv|NN bool *needs_copy|NN bool *needs_store
-s |void |unshare_hek_or_pvn|HEK* hek|const char* str|I32 len|U32 hash
-sR |HE* |share_hek_flags|const char* sv|I32 len|U32 hash|int flags
+s |void |unshare_hek_or_pvn|NULLOK const HEK* hek|NULLOK const char* str|I32 len|U32 hash
+sR |HEK* |share_hek_flags|NN const char* sv|I32 len|U32 hash|int flags
rs |void |hv_notallowed |int flags|NN const char *key|I32 klen|NN const char *msg
-s |struct xpvhv_aux*|hv_auxinit|HV *hv
+s |struct xpvhv_aux*|hv_auxinit|NN HV *hv
+sM |SV* |hv_delete_common|HV* tb|SV* key_sv|const char* key|STRLEN klen|int k_flags|I32 d_flags|U32 hash
+sM |HE* |hv_fetch_common|HV* tb|SV* key_sv|const char* key|STRLEN klen|int flags|int action|SV* val|U32 hash
#endif
#if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT)
s |int |magic_methpack |NN SV *sv|NN const MAGIC *mg|NN const char *meth
s |int |magic_methcall |NN SV *sv|NN const MAGIC *mg|NN const char *meth|I32 f \
|int n|SV *val
+s |void |restore_magic |NN const void *p
+s |void |unwind_handler_stack|NN const void *p
+
#endif
#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
sR |OP* |newDEFSVOP
sR |OP* |new_logop |I32 type|I32 flags|NN OP **firstp|NN OP **otherp
s |void |simplify_sort |NN OP *o
-s |char* |gv_ename |GV *gv
+s |const char* |gv_ename |GV *gv
s |bool |scalar_mod_type|const OP *o|I32 type
s |OP * |my_kid |OP *o|OP *attrs|OP **imopsp
s |OP * |dup_attrlist |OP *o
#endif
#if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
-s |SV* |refto |SV* sv
+sR |SV* |refto |SV* sv
#endif
#if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT)
#endif
#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
-s |OP* |docatch |OP *o
-s |void* |docatch_body
-s |OP* |dofindlabel |OP *o|const char *label|OP **opstack|OP **oplimit
-s |OP* |doparseform |SV *sv
-sn |bool |num_overflow |NV value|I32 fldsize|I32 frcsize
-s |I32 |dopoptoeval |I32 startingblock
-s |I32 |dopoptolabel |NN const char *label
-s |I32 |dopoptoloop |I32 startingblock
-s |I32 |dopoptosub |I32 startingblock
-s |I32 |dopoptosub_at |PERL_CONTEXT* cxstk|I32 startingblock
+sR |OP* |docatch |OP *o
+s |void |docatch_body
+sR |OP* |dofindlabel |OP *o|const char *label|OP **opstack|OP **oplimit
+sR |OP* |doparseform |SV *sv
+snR |bool |num_overflow |NV value|I32 fldsize|I32 frcsize
+sR |I32 |dopoptoeval |I32 startingblock
+sR |I32 |dopoptolabel |NN const char *label
+sR |I32 |dopoptoloop |I32 startingblock
+sR |I32 |dopoptosub |I32 startingblock
+sR |I32 |dopoptosub_at |const PERL_CONTEXT* cxstk|I32 startingblock
s |void |save_lines |AV *array|SV *sv
-s |OP* |doeval |int gimme|OP** startop|CV* outside|U32 seq
-s |PerlIO *|doopen_pm |const char *name|const char *mode
-s |bool |path_is_absolute|NN const char *name
+sR |OP* |doeval |int gimme|OP** startop|CV* outside|U32 seq
+sR |PerlIO *|doopen_pm |const char *name|const char *mode
+sR |bool |path_is_absolute|NN const char *name
#endif
#if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
-s |void |do_oddball |HV *hash|SV **relem|SV **firstrelem
-s |CV* |get_db_sub |SV **svp|CV *cv
-s |SV* |method_common |SV* meth|U32* hashp
+s |void |do_oddball |NN HV *hash|NN SV **relem|NN SV **firstrelem
+sR |CV* |get_db_sub |NN SV **svp|NN CV *cv
+sR |SV* |method_common |NN SV* meth|U32* hashp
#endif
#if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
s |OP* |doform |NN CV *cv|NN GV *gv|NN OP *retop
-sr |int |emulate_eaccess|NN const char* path|Mode_t mode
+s |int |emulate_eaccess|NN const char* path|Mode_t mode
# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
sR |int |dooneliner |NN const char *cmd|NN const char *filename
# endif
#endif
#if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT)
-Es |regnode*|reg |struct RExC_state_t*|I32|I32 *
-Es |regnode*|reganode |struct RExC_state_t*|U8|U32
-Es |regnode*|regatom |struct RExC_state_t*|I32 *
-Es |regnode*|regbranch |struct RExC_state_t*|I32 *|I32
-Es |void |reguni |struct RExC_state_t*|UV|char *|STRLEN*
-Es |regnode*|regclass |struct RExC_state_t*
+Es |regnode*|reg |NN struct RExC_state_t *state|I32 paren|NN I32 *flagp
+Es |regnode*|reganode |NN struct RExC_state_t *state|U8 op|U32 arg
+Es |regnode*|regatom |NN struct RExC_state_t *state|NN I32 *flagp
+Es |regnode*|regbranch |NN struct RExC_state_t *state|NN I32 *flagp|I32 first
+Es |void |reguni |NN const struct RExC_state_t *state|UV uv|NN char *s|NN STRLEN *lenp
+Es |regnode*|regclass |NN struct RExC_state_t *state
ERs |I32 |regcurly |NN const char *
-Es |regnode*|reg_node |struct RExC_state_t*|U8
-Es |regnode*|regpiece |struct RExC_state_t*|I32 *
-Es |void |reginsert |struct RExC_state_t*|U8|regnode *
-Es |void |regoptail |struct RExC_state_t*|regnode *|regnode *
-Es |void |regtail |struct RExC_state_t*|regnode *|regnode *
-Es |char* |regwhite |char *p|const char *e
-Es |char* |nextchar |struct RExC_state_t*
+Es |regnode*|reg_node |NN struct RExC_state_t *state|U8 op
+Es |regnode*|regpiece |NN struct RExC_state_t *state|NN I32 *flagp
+Es |void |reginsert |NN struct RExC_state_t *state|U8 op|NN regnode *opnd
+Es |void |regoptail |NN struct RExC_state_t *state|NN regnode *p|NN regnode *val
+Es |void |regtail |NN struct RExC_state_t *state|NN regnode *p|NN regnode *val
+Es |char* |regwhite |NN char *p|NN const char *e
+Es |char* |nextchar |NN struct RExC_state_t*
# ifdef DEBUGGING
Es |regnode*|dumpuntil |regnode *start|regnode *node \
|regnode *last|SV* sv|I32 l
Es |void |put_byte |NN SV* sv|int c
# endif
Es |void |scan_commit |struct RExC_state_t*|struct scan_data_t *data
-Es |void |cl_anything |struct RExC_state_t*|struct regnode_charclass_class *cl
-Es |int |cl_is_anything |struct regnode_charclass_class *cl
-Es |void |cl_init |struct RExC_state_t*|struct regnode_charclass_class *cl
-Es |void |cl_init_zero |struct RExC_state_t*|struct regnode_charclass_class *cl
-Es |void |cl_and |struct regnode_charclass_class *cl \
- |struct regnode_charclass_class *and_with
-Es |void |cl_or |struct RExC_state_t*|struct regnode_charclass_class *cl \
- |struct regnode_charclass_class *or_with
+Es |void |cl_anything |NN struct RExC_state_t*|NN struct regnode_charclass_class *cl
+Es |int |cl_is_anything |NN const struct regnode_charclass_class *cl
+Es |void |cl_init |NN struct RExC_state_t*|NN struct regnode_charclass_class *cl
+Es |void |cl_init_zero |NN struct RExC_state_t*|NN struct regnode_charclass_class *cl
+Es |void |cl_and |NN struct regnode_charclass_class *cl \
+ |const struct regnode_charclass_class *and_with
+Es |void |cl_or |NN struct RExC_state_t*|NN struct regnode_charclass_class *cl \
+ |NN const struct regnode_charclass_class *or_with
Es |I32 |study_chunk |struct RExC_state_t*|regnode **scanp|I32 *deltap \
|regnode *last|struct scan_data_t *data \
|U32 flags|U32 depth
s |SV* |save_scalar_at |SV **sptr
#endif
+#if defined(PERL_IN_GV_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
+po |void |sv_add_backref |NN SV *tsv|NN SV *sv
+#endif
+
#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-s |IV |asIV |SV* sv
-s |UV |asUV |SV* sv
-s |XPVNV* |new_xnv
-s |XPV* |new_xpv
-s |XPVIV* |new_xpviv
-s |XPVNV* |new_xpvnv
-s |XPVCV* |new_xpvcv
-s |XPVAV* |new_xpvav
-s |XPVHV* |new_xpvhv
-s |XPVMG* |new_xpvmg
-s |XPVGV* |new_xpvgv
-s |XPVLV* |new_xpvlv
-s |XPVBM* |new_xpvbm
-s |void |del_xnv |XPVNV* p
-s |void |del_xpv |XPV* p
-s |void |del_xpviv |XPVIV* p
-s |void |del_xpvnv |XPVNV* p
-s |void |del_xpvcv |XPVCV* p
-s |void |del_xpvav |XPVAV* p
-s |void |del_xpvhv |XPVHV* p
-s |void |del_xpvmg |XPVMG* p
-s |void |del_xpvgv |XPVGV* p
-s |void |del_xpvlv |XPVLV* p
-s |void |del_xpvbm |XPVBM* p
-s |void |sv_unglob |SV* sv
-s |void |not_a_number |SV *sv
-s |I32 |visit |SVFUNC_t f|U32 flags|U32 mask
-s |void |sv_add_backref |SV *tsv|SV *sv
-s |void |sv_del_backref |SV *sv
-s |SV * |varname |GV *gv|NN const char *gvtype|PADOFFSET targ \
- |SV *keyname|I32 aindex|int subscript_type
+sR |IV |asIV |NN SV* sv
+sR |UV |asUV |NN SV* sv
+s |void |sv_unglob |NN SV* sv
+s |void |not_a_number |NN SV *sv
+s |I32 |visit |NN SVFUNC_t f|U32 flags|U32 mask
+s |void |sv_del_backref |NN SV *target|NN SV *ref
+sR |SV * |varname |NULLOK GV *gv|NN const char *gvtype|PADOFFSET targ \
+ |NULLOK SV *keyname|I32 aindex|int subscript_type
# ifdef DEBUGGING
s |void |del_sv |SV *p
# endif
# endif
sR |I32 |expect_number |NN char** pattern
#
-# if defined(USE_ITHREADS)
-s |SV* |gv_share |SV *sv|CLONE_PARAMS *param
-# endif
s |bool |utf8_mg_pos |NN SV *sv|NN MAGIC **mgp|NN STRLEN **cachep \
|I32 i|NN I32 *offsetp|I32 uoff \
|NN const U8 **sp|NN const U8 *start \
|NN STRLEN **cachep|I32 i|I32 offsetp \
|NN const U8 *s|NN const U8 *start
#if defined(PERL_OLD_COPY_ON_WRITE)
-sM |void |sv_release_COW |SV *sv|const char *pvx|STRLEN cur|STRLEN len \
- |U32 hash|SV *after
+sM |void |sv_release_COW |SV *sv|const char *pvx|STRLEN len|SV *after
#endif
#endif
s |I32 |utf16rev_textfilter|int idx|SV *sv|int maxlen
#endif
# if defined(PERL_CR_FILTER)
-s |I32 |cr_textfilter |int idx|SV *sv|int maxlen
+s |I32 |cr_textfilter |int idx|NULLOK SV *sv|int maxlen
# endif
#endif
#if defined(PERL_IN_LOCALE_C) || defined(PERL_DECL_PROT)
#if defined(USE_LOCALE_NUMERIC) || defined(USE_LOCALE_COLLATE)
-s |char* |stdize_locale |char* locs
+s |char* |stdize_locale |NN char* locs
#endif
#endif
#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
-s |COP* |closest_cop |COP *cop|OP *o
+s |COP* |closest_cop |NN COP *cop|NULLOK const OP *o
s |SV* |mess_alloc
#endif
START_EXTERN_C
-Apd |void |sv_setsv_flags |NN SV* dsv|SV* ssv|I32 flags
+Apd |void |sv_setsv_flags |NN SV* dsv|NULLOK SV* ssv|I32 flags
Apd |void |sv_catpvn_flags|NN SV* sv|NN const char* ptr|STRLEN len|I32 flags
Apd |void |sv_catsv_flags |NN SV* dsv|SV* ssv|I32 flags
Apd |STRLEN |sv_utf8_upgrade_flags|NN SV *sv|I32 flags
-Apd |char* |sv_pvn_force_flags|SV* sv|NN STRLEN* lp|I32 flags
+Apd |char* |sv_pvn_force_flags|SV* sv|STRLEN* lp|I32 flags
Apd |void |sv_copypv |NN SV* dsv|NN SV* ssv
Ap |char* |my_atof2 |NN const char *s|NN NV* value
Apn |int |my_socketpair |int family|int type|int protocol|int fd[2]
pd |void |pad_fixup_inner_anons|NN PADLIST *padlist|CV *old_cv|CV *new_cv
pd |void |pad_push |NN PADLIST *padlist|int depth
-p |HV* |pad_compname_type|const PADOFFSET po
+pR |HV* |pad_compname_type|const PADOFFSET po
#if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
sd |PADOFFSET|pad_findlex |const char *name|const CV* cv|U32 seq|int warn \
Ap |void |save_set_svflags|SV* sv|U32 mask|U32 val
Apod |void |hv_assert |NN HV* tb
-#if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
-sM |SV* |hv_delete_common|HV* tb|SV* key_sv|const char* key|STRLEN klen|int k_flags|I32 d_flags|U32 hash
-sM |HE* |hv_fetch_common|HV* tb|SV* key_sv|const char* key|STRLEN klen|int flags|int action|SV* val|U32 hash
-#endif
-
ApdR |SV* |hv_scalar |NN HV* hv
ApoR |I32* |hv_riter_p |NN HV* hv
ApoR |HE** |hv_eiter_p |NN HV* hv
Ap |GV* |gv_fetchpvn_flags|const char* name|STRLEN len|I32 flags|I32 sv_type
Ap |GV* |gv_fetchsv|SV *name|I32 flags|I32 sv_type
-dpR |bool |is_gv_magical_sv|SV *name|U32 flags
+dpR |bool |is_gv_magical_sv|NN SV *name|U32 flags
-Apd |char* |savesvpv |SV* sv
+ApR |bool |stashpv_hvname_match|NN const COP *cop|NN const HV *hv
+
+#ifdef DEBUG_LEAKING_SCALARS_FORK_DUMP
+p |void |dump_sv_child |SV *sv
+#endif
+
+#ifdef PERL_DONT_CREATE_GVSV
+Ap |GV* |gv_SVadd |NN GV* gv
+#endif
END_EXTERN_C
/*