This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Change 24733 allows several pointers to be NULL. Therefore this
[perl5.git] / embed.fnc
index 02b75ec..05ea88a 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -24,9 +24,8 @@
 :      b               binary backward compatibility; function is a macro
 :                      but has also Perl_ implementation (which is exported)
 :      U               suppress usage example in autogenerated documentation
-:      a               allocates memory a la malloc/calloc
-:      R               Return value must not be ignored.  All "a" functions
-:                      get this automatically.
+:      a               allocates memory a la malloc/calloc.  Is also "R".
+:      R               Return value must not be ignored.
 :      P               pure function: no effects except the return value;
 :                      return value depends only on parms and/or globals
 :
@@ -72,7 +71,7 @@ Aanop |Malloc_t|calloc        |MEM_SIZE elements|MEM_SIZE size
 Aanop  |Malloc_t|realloc       |Malloc_t where|MEM_SIZE nbytes
 Anop   |Free_t |mfree          |Malloc_t where
 #if defined(MYMALLOC)
-np     |MEM_SIZE|malloced_size |void *p
+npR    |MEM_SIZE|malloced_size |void *p
 #endif
 
 Anp    |void*  |get_context
@@ -106,6 +105,7 @@ ApdR        |SV*    |av_shift       |AV* ar
 Apd    |SV**   |av_store       |AV* ar|I32 key|SV* val
 Apd    |void   |av_undef       |AV* ar
 Apd    |void   |av_unshift     |AV* ar|I32 num
+Apo    |SV**   |av_arylen_p    |AV* av
 pR     |OP*    |bind_match     |I32 type|NN OP* left|NN OP* pat
 pR     |OP*    |block_end      |I32 floor|OP* seq
 ApR    |I32    |block_gimme
@@ -304,9 +304,9 @@ p   |void   |init_debugger
 Ap     |void   |init_stacks
 Ap     |void   |init_tm        |struct tm *ptm
 pd     |U32    |intro_my
-ApP    |char*  |instr          |NN const char* big|NN const char* little
-p      |bool   |io_close       |IO* io|bool not_implicit
-p      |OP*    |invert         |OP* cmd
+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
 ApR    |I32    |is_lvalue_sub
 ApPR   |U32    |to_uni_upper_lc|U32 c
@@ -346,23 +346,24 @@ ApPR      |bool   |is_uni_punct_lc|UV c
 ApPR   |bool   |is_uni_xdigit_lc|UV c
 Apd    |STRLEN |is_utf8_char   |NN const U8 *p
 Apd    |bool   |is_utf8_string |NN const U8 *s|STRLEN len
-Apd    |bool   |is_utf8_string_loc|NN const U8 *s|STRLEN len|NN const U8 **p
-Ap     |bool   |is_utf8_alnum  |NN const U8 *p
-Ap     |bool   |is_utf8_alnumc |NN const U8 *p
-Ap     |bool   |is_utf8_idfirst|NN const U8 *p
-Ap     |bool   |is_utf8_idcont |NN const U8 *p
-Ap     |bool   |is_utf8_alpha  |NN const U8 *p
-Ap     |bool   |is_utf8_ascii  |NN const U8 *p
-Ap     |bool   |is_utf8_space  |NN const U8 *p
-Ap     |bool   |is_utf8_cntrl  |NN const U8 *p
-Ap     |bool   |is_utf8_digit  |NN const U8 *p
-Ap     |bool   |is_utf8_graph  |NN const U8 *p
-Ap     |bool   |is_utf8_upper  |NN const U8 *p
-Ap     |bool   |is_utf8_lower  |NN const U8 *p
-Ap     |bool   |is_utf8_print  |NN const U8 *p
-Ap     |bool   |is_utf8_punct  |NN const U8 *p
-Ap     |bool   |is_utf8_xdigit |NN const U8 *p
-Ap     |bool   |is_utf8_mark   |NN const U8 *p
+Apd    |bool   |is_utf8_string_loc|NN const U8 *s|STRLEN len|const U8 **p
+Apd    |bool   |is_utf8_string_loclen|NN const U8 *s|STRLEN len|const U8 **ep|STRLEN *el
+ApR    |bool   |is_utf8_alnum  |NN const U8 *p
+ApR    |bool   |is_utf8_alnumc |NN const U8 *p
+ApR    |bool   |is_utf8_idfirst|NN const U8 *p
+ApR    |bool   |is_utf8_idcont |NN const U8 *p
+ApR    |bool   |is_utf8_alpha  |NN const U8 *p
+ApR    |bool   |is_utf8_ascii  |NN const U8 *p
+ApR    |bool   |is_utf8_space  |NN const U8 *p
+ApR    |bool   |is_utf8_cntrl  |NN const U8 *p
+ApR    |bool   |is_utf8_digit  |NN const U8 *p
+ApR    |bool   |is_utf8_graph  |NN const U8 *p
+ApR    |bool   |is_utf8_upper  |NN const U8 *p
+ApR    |bool   |is_utf8_lower  |NN const U8 *p
+ApR    |bool   |is_utf8_print  |NN const U8 *p
+ApR    |bool   |is_utf8_punct  |NN const U8 *p
+ApR    |bool   |is_utf8_xdigit |NN const U8 *p
+ApR    |bool   |is_utf8_mark   |NN const U8 *p
 p      |OP*    |jmaybe         |NN OP* arg
 pP     |I32    |keyword        |NN const char* d|I32 len
 Ap     |void   |leave_scope    |I32 base
@@ -413,9 +414,6 @@ p   |int    |magic_setamagic|SV* sv|MAGIC* mg
 p      |int    |magic_setarylen|SV* sv|MAGIC* mg
 p      |int    |magic_setbm    |SV* sv|MAGIC* mg
 p      |int    |magic_setdbline|SV* sv|MAGIC* mg
-#if defined(USE_LOCALE_COLLATE)
-p      |int    |magic_setcollxfrm|SV* sv|MAGIC* mg
-#endif
 p      |int    |magic_setdefelem|SV* sv|MAGIC* mg
 p      |int    |magic_setenv   |SV* sv|MAGIC* mg
 p      |int    |magic_setfm    |SV* sv|MAGIC* mg
@@ -438,6 +436,7 @@ p   |int    |magic_wipepack |SV* sv|MAGIC* mg
 p      |void   |magicname      |const char* sym|const char* name|I32 namlen
 Ap     |void   |markstack_grow
 #if defined(USE_LOCALE_COLLATE)
+p      |int    |magic_setcollxfrm|SV* sv|MAGIC* mg
 p      |char*  |mem_collxfrm   |const char* s|STRLEN len|STRLEN* xlen
 #endif
 Afp    |SV*    |mess           |const char* pat|...
@@ -525,7 +524,7 @@ Apa |OP*    |newLISTOP      |I32 type|I32 flags|OP* first|OP* last
 Apa    |OP*    |newPADOP       |I32 type|I32 flags|SV* sv
 Apa    |OP*    |newPMOP        |I32 type|I32 flags
 Apa    |OP*    |newPVOP        |I32 type|I32 flags|char* pv
-Apa    |SV*    |newRV          |SV* pref
+Apa    |SV*    |newRV          |NN SV* pref
 Apda   |SV*    |newRV_noinc    |NN SV *sv
 Apda   |SV*    |newSV          |STRLEN len
 Apa    |OP*    |newSVREF       |NN OP* o
@@ -535,6 +534,7 @@ Apda        |SV*    |newSVuv        |UV u
 Apda   |SV*    |newSVnv        |NV n
 Apda   |SV*    |newSVpv        |const char* s|STRLEN len
 Apda   |SV*    |newSVpvn       |const char* s|STRLEN len
+Apda   |SV*    |newSVhek       |const HEK *hek
 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
@@ -563,8 +563,8 @@ pd  |PADOFFSET|pad_alloc    |I32 optype|U32 tmptype
 p      |PADOFFSET|allocmy      |NN char* name
 pd     |PADOFFSET|pad_findmy   |NN const char* name
 Ap     |PADOFFSET|find_rundefsvoffset  |
-p      |OP*    |oopsAV         |NN OP* o
-p      |OP*    |oopsHV         |NN OP* o
+pR     |OP*    |oopsAV         |NN OP* o
+pR     |OP*    |oopsHV         |NN OP* o
 pd     |void   |pad_leavemy
 Apd    |SV*    |pad_sv         |PADOFFSET po
 pd     |void   |pad_free       |PADOFFSET po
@@ -624,7 +624,7 @@ Ap  |SV*    |re_intuit_string|regexp* prog
 Ap     |I32    |regexec_flags  |NN regexp* prog|NN char* stringarg \
                                |NN char* strend|NN char* strbeg|I32 minend \
                                |SV* screamer|void* data|U32 flags
-Ap     |regnode*|regnext       |regnode* p
+ApR    |regnode*|regnext       |NN regnode* p
 Ep     |void   |regprop        |SV* sv|const regnode* o
 Ap     |void   |repeatcpy      |NN char* to|NN const char* from|I32 len|I32 count
 ApP    |char*  |rninstr        |NN const char* big|NN const char* bigend \
@@ -712,11 +712,11 @@ Amb       |IV     |sv_2iv         |NN SV* sv
 Apd    |IV     |sv_2iv_flags   |NN SV* sv|I32 flags
 Apd    |SV*    |sv_2mortal     |NN SV* sv
 Apd    |NV     |sv_2nv         |NN SV* sv
-Amb    |char*  |sv_2pv         |NN SV* sv|NN STRLEN* lp
-Apd    |char*  |sv_2pv_flags   |NN SV* sv|NN STRLEN* lp|I32 flags
-Apd    |char*  |sv_2pvutf8     |NN SV* sv|NN STRLEN* lp
-Apd    |char*  |sv_2pvbyte     |NN SV* sv|NN STRLEN* lp
-Ap     |char*  |sv_pvn_nomg    |NN SV* sv|NN STRLEN* lp
+Amb    |char*  |sv_2pv         |NN SV* sv|STRLEN* lp
+Apd    |char*  |sv_2pv_flags   |NN SV* sv|STRLEN* lp|I32 flags
+Apd    |char*  |sv_2pvutf8     |NN SV* sv|STRLEN* lp
+Apd    |char*  |sv_2pvbyte     |NN SV* sv|STRLEN* lp
+Ap     |char*  |sv_pvn_nomg    |NN SV* sv|STRLEN* lp
 Amb    |UV     |sv_2uv         |NN SV* sv
 Apd    |UV     |sv_2uv_flags   |NN SV* sv|I32 flags
 Apd    |IV     |sv_iv          |NN SV* sv
@@ -741,7 +741,7 @@ Apd |void   |sv_clear       |NN SV* sv
 Apd    |I32    |sv_cmp         |NN SV* sv1|NN SV* sv2
 Apd    |I32    |sv_cmp_locale  |NN SV* sv1|NN SV* sv2
 #if defined(USE_LOCALE_COLLATE)
-Apd    |char*  |sv_collxfrm    |NN SV* sv|STRLEN* nxp
+Apd    |char*  |sv_collxfrm    |NN SV* sv|NN STRLEN* nxp
 #endif
 Ap     |OP*    |sv_compile_2op |NN SV* sv|NN OP** startp|NN const char* code|NN PAD** padp
 Apd    |int    |getcwd_sv      |NN SV* sv
@@ -769,8 +769,8 @@ Apd |SV*    |sv_mortalcopy  |NN SV* oldsv
 ApdR   |SV*    |sv_newmortal
 Apd    |SV*    |sv_newref      |SV* sv
 Ap     |char*  |sv_peek        |SV* sv
-Apd    |void   |sv_pos_u2b     |SV* sv|I32* offsetp|I32* lenp
-Apd    |void   |sv_pos_b2u     |SV* sv|I32* offsetp
+Apd    |void   |sv_pos_u2b     |SV* sv|NN I32* offsetp|I32* lenp
+Apd    |void   |sv_pos_b2u     |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
@@ -780,11 +780,11 @@ Apd       |bool   |sv_cat_decode  |SV* dsv|SV *encoding|SV *ssv|int *offset \
 ApdR   |char*  |sv_reftype     |NN const SV* sv|int ob
 Apd    |void   |sv_replace     |NN SV* sv|NN SV* nsv
 Apd    |void   |sv_report_used
-Apd    |void   |sv_reset       |const char* s|HV* stash
+Apd    |void   |sv_reset       |NN const char* s|HV* stash
 Afpd   |void   |sv_setpvf      |SV* sv|const char* pat|...
 Apd    |void   |sv_vsetpvf     |SV* sv|const char* pat|va_list* args
 Apd    |void   |sv_setiv       |SV* sv|IV num
-Apdb   |void   |sv_setpviv     |SV* sv|IV num
+Apdb   |void   |sv_setpviv     |NN SV* sv|IV num
 Apd    |void   |sv_setuv       |SV* sv|UV num
 Apd    |void   |sv_setnv       |SV* sv|NV num
 Apd    |SV*    |sv_setref_iv   |SV* rv|const char* classname|IV iv
@@ -889,7 +889,7 @@ Apd |void   |sv_catsv_mg    |SV *dstr|SV *sstr
 Afpd   |void   |sv_setpvf_mg   |SV *sv|const char* pat|...
 Apd    |void   |sv_vsetpvf_mg  |SV* sv|const char* pat|va_list* args
 Apd    |void   |sv_setiv_mg    |SV *sv|IV i
-Apdb   |void   |sv_setpviv_mg  |SV *sv|IV iv
+Apdb   |void   |sv_setpviv_mg  |NN SV *sv|IV iv
 Apd    |void   |sv_setuv_mg    |SV *sv|UV u
 Apd    |void   |sv_setnv_mg    |SV *sv|NV num
 Apd    |void   |sv_setpv_mg    |SV *sv|const char *ptr
@@ -939,6 +939,7 @@ 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
@@ -946,16 +947,15 @@ 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
-#if defined(HAVE_INTERP_INTERN)
-Ap     |void   |sys_intern_dup |struct interp_intern* src \
-                               |struct interp_intern* dst
-#endif
 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
 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
+#  if defined(HAVE_INTERP_INTERN)
+Ap     |void   |sys_intern_dup |NN struct interp_intern* src|NN struct interp_intern* dst
+#  endif
 #endif
 #if defined(HAVE_INTERP_INTERN)
 Ap     |void   |sys_intern_clear
@@ -993,45 +993,87 @@ s |void   |require_errno  |NN GV *gv
 #if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
 s      |void   |hsplit         |HV *hv
 s      |void   |hfreeentries   |HV *hv
-s      |HE*    |new_he
-s      |void   |del_he         |HE *p
-s      |HEK*   |save_hek_flags |const char *str|I32 len|U32 hash|int flags
-s      |void   |hv_magic_check |HV *hv|bool *needs_copy|bool *needs_store
-s      |void   |unshare_hek_or_pvn|HEK* hek|const char* sv|I32 len|U32 hash
-s      |HEK*   |share_hek_flags|const char* sv|I32 len|U32 hash|int flags
-rs     |void   |hv_notallowed  |int flags|const char *key|I32 klen|const char *msg
+sR     |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
+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
+rs     |void   |hv_notallowed  |int flags|NN const char *key|I32 klen|NN const char *msg
+s      |struct xpvhv_aux*|hv_auxinit|HV *hv
 #endif
 
 #if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT)
-s      |void   |save_magic     |I32 mgs_ix|SV *sv
-s      |int    |magic_methpack |SV *sv|const MAGIC *mg|const char *meth
-s      |int    |magic_methcall |SV *sv|const MAGIC *mg|const char *meth|I32 f \
+s      |void   |save_magic     |I32 mgs_ix|NN SV *sv
+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
 #endif
 
 #if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-s      |I32    |list_assignment|const OP *o
-s      |void   |bad_type       |I32 n|const char *t|const char *name|const OP *kid
-s      |void   |cop_free       |COP *cop
+pR     |OP*    |ck_anoncode    |NN OP *o
+pR     |OP*    |ck_bitop       |NN OP *o
+pR     |OP*    |ck_concat      |NN OP *o
+pR     |OP*    |ck_defined     |NN OP *o
+pR     |OP*    |ck_delete      |NN OP *o
+pR     |OP*    |ck_die         |NN OP *o
+pR     |OP*    |ck_eof         |NN OP *o
+pR     |OP*    |ck_eval        |NN OP *o
+pR     |OP*    |ck_exec        |NN OP *o
+pR     |OP*    |ck_exists      |NN OP *o
+pR     |OP*    |ck_exit        |NN OP *o
+pR     |OP*    |ck_ftst        |NN OP *o
+pR     |OP*    |ck_fun         |NN OP *o
+pR     |OP*    |ck_glob        |NN OP *o
+pR     |OP*    |ck_grep        |NN OP *o
+pR     |OP*    |ck_index       |NN OP *o
+pR     |OP*    |ck_join        |NN OP *o
+pR     |OP*    |ck_lengthconst |NN OP *o
+pR     |OP*    |ck_lfun        |NN OP *o
+pR     |OP*    |ck_listiob     |NN OP *o
+pR     |OP*    |ck_match       |NN OP *o
+pR     |OP*    |ck_method      |NN OP *o
+pR     |OP*    |ck_null        |NN OP *o
+pR     |OP*    |ck_open        |NN OP *o
+pR     |OP*    |ck_repeat      |NN OP *o
+pR     |OP*    |ck_require     |NN OP *o
+pR     |OP*    |ck_retarget    |NN OP *o
+pR     |OP*    |ck_return      |NN OP *o
+pR     |OP*    |ck_rfun        |NN OP *o
+pR     |OP*    |ck_rvconst     |NN OP *o
+pR     |OP*    |ck_sassign     |NN OP *o
+pR     |OP*    |ck_select      |NN OP *o
+pR     |OP*    |ck_shift       |NN OP *o
+pR     |OP*    |ck_sort        |NN OP *o
+pR     |OP*    |ck_spair       |NN OP *o
+pR     |OP*    |ck_split       |NN OP *o
+pR     |OP*    |ck_subr        |NN OP *o
+pR     |OP*    |ck_substr      |NN OP *o
+pR     |OP*    |ck_svconst     |NN OP *o
+pR     |OP*    |ck_trunc       |NN OP *o
+pR     |OP*    |ck_unpack      |NN OP *o
+sR     |bool   |is_handle_constructor|NN const OP *o|I32 numargs
+sR     |I32    |is_list_assignment|const OP *o
+s      |void   |cop_free       |NN COP *cop
 s      |OP*    |modkids        |OP *o|I32 type
-s      |void   |no_bareword_allowed|const OP *o
-s      |OP*    |no_fh_allowed  |OP *o
-s      |OP*    |scalarboolean  |OP *o
-s      |OP*    |too_few_arguments|OP *o|const char* name
-s      |OP*    |too_many_arguments|OP *o|const char* name
-s      |OP*    |newDEFSVOP
-s      |OP*    |new_logop      |I32 type|I32 flags|OP **firstp|OP **otherp
-s      |void   |simplify_sort  |OP *o
-s      |bool   |is_handle_constructor  |const OP *o|I32 argnum
+s      |OP*    |scalarboolean  |NN OP *o
+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      |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
 s      |void   |apply_attrs    |HV *stash|SV *target|OP *attrs|bool for_my
 s      |void   |apply_attrs_my |HV *stash|OP *target|OP *attrs|OP **imopsp
+s      |void   |bad_type       |I32 n|NN const char *t|NN const char *name|NN const OP *kid
+s      |void   |no_bareword_allowed|NN const OP *o
+sR     |OP*    |no_fh_allowed|NN OP *o
+sR     |OP*    |too_few_arguments|NN OP *o|NN const char* name
+sR     |OP*    |too_many_arguments|NN OP *o|NN const char* name
 #endif
 #if defined(PL_OP_SLAB_ALLOC)
-Ap     |void*  |Slab_Alloc     |int m|size_t sz
+ApR    |void*  |Slab_Alloc     |int m|size_t sz
 Ap     |void   |Slab_Free      |void *op
 #endif
 
@@ -1070,7 +1112,7 @@ s |SV **  |pack_rec       |SV *cat|struct tempsym* symptr|SV **beglist|SV **endlist
 s      |SV*    |mul128         |NN SV *sv|U8 m
 s      |I32    |measure_struct |NN struct tempsym* symptr
 s      |bool   |next_symbol    |NN struct tempsym* symptr
-s      |SV*    |is_an_int      |NN const char *s|STRLEN l
+sR     |SV*    |is_an_int      |NN const char *s|STRLEN l
 s      |int    |div128         |NN SV *pnum|NN bool *done
 s      |const char *|group_end |NN const char *pat|NN const char *patend|char ender
 s      |const char *|get_num   |NN const char *ppat|NN I32 *lenptr
@@ -1100,10 +1142,10 @@ s       |SV*    |method_common  |SV* meth|U32* hashp
 #endif
 
 #if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
-s      |OP*    |doform         |CV *cv|GV *gv|OP *retop
-s      |int    |emulate_eaccess|const char* path|Mode_t mode
+s      |OP*    |doform         |NN CV *cv|NN GV *gv|NN OP *retop
+sr     |int    |emulate_eaccess|NN const char* path|Mode_t mode
 #  if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
-s      |int    |dooneliner     |char *cmd|char *filename
+sR     |int    |dooneliner     |NN const char *cmd|NN const char *filename
 #  endif
 #endif
 
@@ -1120,12 +1162,12 @@ 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 *|char *
-Es     |char*|nextchar |struct RExC_state_t*
+Es     |char*  |regwhite       |char *p|const char *e
+Es     |char*  |nextchar       |struct RExC_state_t*
 #  ifdef DEBUGGING
 Es     |regnode*|dumpuntil     |regnode *start|regnode *node \
                                |regnode *last|SV* sv|I32 l
-Es     |void   |put_byte       |SV* sv|int c
+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
@@ -1180,7 +1222,6 @@ s |SV*    |save_scalar_at |SV **sptr
 #if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
 s      |IV     |asIV           |SV* sv
 s      |UV     |asUV           |SV* sv
-s      |XPVIV* |new_xiv
 s      |XPVNV* |new_xnv
 s      |XPV*   |new_xpv
 s      |XPVIV* |new_xpviv
@@ -1192,8 +1233,6 @@ s |XPVMG* |new_xpvmg
 s      |XPVGV* |new_xpvgv
 s      |XPVLV* |new_xpvlv
 s      |XPVBM* |new_xpvbm
-s      |XRV*   |new_xrv
-s      |void   |del_xiv        |XPVIV* p
 s      |void   |del_xnv        |XPVNV* p
 s      |void   |del_xpv        |XPV* p
 s      |void   |del_xpviv      |XPVIV* p
@@ -1205,7 +1244,6 @@ 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   |del_xrv        |XRV* p
 s      |void   |sv_unglob      |SV* sv
 s      |void   |not_a_number   |SV *sv
 s      |I32    |visit          |SVFUNC_t f|U32 flags|U32 mask
@@ -1230,7 +1268,7 @@ s |bool   |utf8_mg_pos    |NN SV *sv|NN MAGIC **mgp|NN STRLEN **cachep \
 s      |bool   |utf8_mg_pos_init       |NN SV *sv|NN MAGIC **mgp|NN STRLEN **cachep \
                                |I32 i|I32 offsetp|NN U8 *s|NN U8 *start
 #if defined(PERL_COPY_ON_WRITE)
-sM     |void   |sv_release_COW |SV *sv|char *pvx|STRLEN cur|STRLEN len \
+sM     |void   |sv_release_COW |SV *sv|const char *pvx|STRLEN cur|STRLEN len \
                                |U32 hash|SV *after
 #endif
 #endif
@@ -1307,6 +1345,10 @@ s        |SV*    |mess_alloc
 sn     |NV|mulexp10    |NV value|I32 exponent
 #endif
 
+#if defined(PERL_IN_UTF8_C) || defined(PERL_DECL_PROT)
+s      |STRLEN |is_utf8_char_slow|NN const U8 *s|const STRLEN len
+#endif
+
 START_EXTERN_C
 
 Apd    |void   |sv_setsv_flags |NN SV* dsv|SV* ssv|I32 flags
@@ -1322,26 +1364,26 @@ pMXE    |SV*    |sv_setsv_cow   |SV* dsv|SV* ssv
 #endif
 
 #if defined(USE_PERLIO) && !defined(USE_SFIO)
-Ap     |int    |PerlIO_close           |PerlIO *
-Ap     |int    |PerlIO_fill            |PerlIO *
-Ap     |int    |PerlIO_fileno          |PerlIO *
-Ap     |int    |PerlIO_eof             |PerlIO *
-Ap     |int    |PerlIO_error           |PerlIO *
-Ap     |int    |PerlIO_flush           |PerlIO *
-Ap     |void   |PerlIO_clearerr        |PerlIO *
-Ap     |void   |PerlIO_set_cnt         |PerlIO *|int
-Ap     |void   |PerlIO_set_ptrcnt      |PerlIO *|STDCHAR *|int
-Ap     |void   |PerlIO_setlinebuf      |PerlIO *
-Ap     |SSize_t|PerlIO_read            |PerlIO *|void *|Size_t
-Ap     |SSize_t|PerlIO_write           |PerlIO *|const void *|Size_t
-Ap     |SSize_t|PerlIO_unread          |PerlIO *|const void *|Size_t
-Ap     |Off_t  |PerlIO_tell            |PerlIO *
-Ap     |int    |PerlIO_seek            |PerlIO *|Off_t|int
+Ap     |int    |PerlIO_close           |PerlIO *f
+Ap     |int    |PerlIO_fill            |PerlIO *f
+Ap     |int    |PerlIO_fileno          |PerlIO *f
+Ap     |int    |PerlIO_eof             |PerlIO *f
+Ap     |int    |PerlIO_error           |PerlIO *f
+Ap     |int    |PerlIO_flush           |PerlIO *f
+Ap     |void   |PerlIO_clearerr        |PerlIO *f
+Ap     |void   |PerlIO_set_cnt         |PerlIO *f|int cnt
+Ap     |void   |PerlIO_set_ptrcnt      |PerlIO *f|NN STDCHAR *ptr|int cnt
+Ap     |void   |PerlIO_setlinebuf      |PerlIO *f
+Ap     |SSize_t|PerlIO_read            |PerlIO *f|NN void *buf|Size_t count
+Ap     |SSize_t|PerlIO_write           |PerlIO *f|NN const void *buf|Size_t count
+Ap     |SSize_t|PerlIO_unread          |PerlIO *f|NN const void *buf|Size_t count
+Ap     |Off_t  |PerlIO_tell            |PerlIO *f
+Ap     |int    |PerlIO_seek            |PerlIO *f|Off_t offset|int whence
 
-Ap     |STDCHAR *|PerlIO_get_base      |PerlIO *
-Ap     |STDCHAR *|PerlIO_get_ptr       |PerlIO *
-Ap     |int      |PerlIO_get_bufsiz    |PerlIO *
-Ap     |int      |PerlIO_get_cnt       |PerlIO *
+Ap     |STDCHAR *|PerlIO_get_base      |PerlIO *f
+Ap     |STDCHAR *|PerlIO_get_ptr       |PerlIO *f
+Ap     |int      |PerlIO_get_bufsiz    |PerlIO *f
+Ap     |int      |PerlIO_get_cnt       |PerlIO *f
 
 Ap     |PerlIO *|PerlIO_stdin
 Ap     |PerlIO *|PerlIO_stdout
@@ -1354,23 +1396,22 @@ s       |void   |deb_stack_n    |SV** stack_base|I32 stack_min \
                                |I32 stack_max|I32 mark_min|I32 mark_max
 #endif
 
-pd     |PADLIST*|pad_new       |int flags
+pda    |PADLIST*|pad_new       |int flags
 pd     |void   |pad_undef      |CV* cv
 pd     |PADOFFSET|pad_add_name |NN const char *name\
                                |HV* typestash|HV* ourstash \
                                |bool clone
 pd     |PADOFFSET|pad_add_anon |SV* sv|OPCODE op_type
-pd     |void   |pad_check_dup  |const char* name|bool is_our|const HV* ourstash
+pd     |void   |pad_check_dup  |NN const char* name|bool is_our|NN const HV* ourstash
 #ifdef DEBUGGING
-pd     |void   |pad_setsv      |PADOFFSET po|SV* sv
+pd     |void   |pad_setsv      |PADOFFSET po|NN SV* sv
 #endif
 pd     |void   |pad_block_start|int full
 pd     |void   |pad_tidy       |padtidy_type type
-pd     |void   |do_dump_pad    |I32 level|PerlIO *file \
-                               |PADLIST *padlist|int full
-pd     |void   |pad_fixup_inner_anons|PADLIST *padlist|CV *old_cv|CV *new_cv
+pd     |void   |do_dump_pad    |I32 level|NN PerlIO *file|PADLIST *padlist|int full
+pd     |void   |pad_fixup_inner_anons|NN PADLIST *padlist|CV *old_cv|CV *new_cv
 
-pd     |void   |pad_push       |PADLIST *padlist|int depth
+pd     |void   |pad_push       |NN PADLIST *padlist|int depth
 p      |HV*    |pad_compname_type|const PADOFFSET po
 
 #if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
@@ -1378,7 +1419,7 @@ sd        |PADOFFSET|pad_findlex  |const char *name|const CV* cv|U32 seq|int warn \
                                |SV** out_capture|SV** out_name_sv \
                                |int *out_flags
 #  if defined(DEBUGGING)
-sd     |void   |cv_dump        |const CV *cv|const char *title
+sd     |void   |cv_dump        |NN const CV *cv|NN const char *title
 #  endif
 #endif
 pdR    |CV*    |find_runcv     |U32 *db_seqp
@@ -1387,27 +1428,25 @@ p       |void   |free_tied_hv_pool
 p      |int    |get_debug_opts |const char **s|bool givehelp
 #endif
 Ap     |void   |save_set_svflags|SV* sv|U32 mask|U32 val
-Apod   |void   |hv_assert      |HV* tb
+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
 
-Apd    |void   |hv_clear_placeholders|HV* hb
-
-Apd    |SV*    |hv_scalar      |HV* hv|
-Apo    |I32*   |hv_riter_p     |HV* hv
-Apo    |HE**   |hv_eiter_p     |HV* hv
-Apo    |void   |hv_riter_set   |HV* hv|I32 riter
-Apo    |void   |hv_eiter_set   |HV* hv|HE* eiter
-Apo    |char** |hv_name_p      |HV* hv
-Apo    |void   |hv_name_set    |HV* hv|const char *|STRLEN len|int flags
-Apo    |I32*   |hv_placeholders_p      |HV* hv
-Apo    |I32    |hv_placeholders_get    |HV* hv
-Apo    |void   |hv_placeholders_set    |HV* hv|I32 ph
+ApdR   |SV*    |hv_scalar      |NN HV* hv
+ApoR   |I32*   |hv_riter_p     |NN HV* hv
+ApoR   |HE**   |hv_eiter_p     |NN HV* hv
+Apo    |void   |hv_riter_set   |NN HV* hv|I32 riter
+Apo    |void   |hv_eiter_set   |NN HV* hv|HE* eiter
+Apo    |void   |hv_name_set    |NN HV* hv|const char *name|I32 len|int flags
+Apd    |void   |hv_clear_placeholders  |NN HV* hb
+ApoR   |I32*   |hv_placeholders_p      |NN HV* hv
+ApoR   |I32    |hv_placeholders_get    |NN HV* hv
+Apo    |void   |hv_placeholders_set    |NN HV* hv|I32 ph
 
-p      |SV*    |magic_scalarpack|HV* hv|MAGIC* mg
+p      |SV*    |magic_scalarpack|NN HV* hv|NN MAGIC* mg
 #ifdef PERL_IN_SV_C
 sMd    |SV*    |find_uninit_var|OP* obase|SV* uninit_sv|bool top
 #endif
@@ -1490,8 +1529,11 @@ np       |void   |my_swabn       |void* ptr|int n
 
 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
-dp     |bool   |is_gv_magical_sv|SV *name|U32 flags
+dpR    |bool   |is_gv_magical_sv|SV *name|U32 flags
 
 Apd    |char*  |savesvpv       |SV* sv
 
 END_EXTERN_C
+/*
+ * ex: set ts=8 sts=4 sw=4 noet:
+ */