/* functions with flag 'n' should come before here */
START_EXTERN_C
# include "pp_proto.h"
-Ap |SV* |amagic_call |SV* left|SV* right|int method|int dir
+Ap |SV* |amagic_call |NN SV* left|NN SV* right|int method|int dir
Ap |bool |Gv_AMupdate |NN HV* stash
ApR |CV* |gv_handler |NULLOK HV* stash|I32 id
p |OP* |append_elem |I32 optype|NULLOK OP* first|NULLOK OP* last
#if !defined(HAS_GETENV_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 |void |gp_free |NULLOK GV* gv
+Ap |GP* |gp_ref |NULLOK GP* gp
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
+ApR |GV* |gv_autoload4 |NULLOK HV* stash|NN const char* name|STRLEN len|I32 method
+Ap |void |gv_check |NN HV* stash
+Ap |void |gv_efullname |NN SV* sv|NN const GV* gv
+Apmb |void |gv_efullname3 |NN SV* sv|NN const GV* gv|NULLOK const char* prefix
+Ap |void |gv_efullname4 |NN SV* sv|NN const GV* gv|NULLOK const char* prefix|bool keepmain
Ap |GV* |gv_fetchfile |NN const char* name
Apd |GV* |gv_fetchmeth |HV* stash|const char* name|STRLEN len \
|I32 level
Apd |void |sv_catpv |NN SV* sv|const char* ptr
Amdb |void |sv_catpvn |NN SV* sv|const char* ptr|STRLEN len
Amdb |void |sv_catsv |NN SV* dsv|SV* ssv
-Apd |void |sv_chop |NN SV* sv|const char* ptr
+Apd |void |sv_chop |NN SV* sv|NULLOK const char* ptr
pd |I32 |sv_clean_all
pd |void |sv_clean_objs
Apd |void |sv_clear |NN SV* sv
Ap |void |tmps_grow |I32 n
Apd |SV* |sv_rvweaken |NN SV *sv
p |int |magic_killbackrefs|NN SV *sv|NN MAGIC *mg
-Ap |OP* |newANONATTRSUB |I32 floor|OP *proto|OP *attrs|OP *block
-Ap |CV* |newATTRSUB |I32 floor|OP *o|OP *proto|OP *attrs|OP *block
-Apr |void |newMYSUB |I32 floor|OP *o|OP *proto|OP *attrs|OP *block
-p |OP * |my_attrs |NN OP *o|OP *attrs
+Ap |OP* |newANONATTRSUB |I32 floor|NULLOK OP *proto|NULLOK OP *attrs|NULLOK OP *block
+Ap |CV* |newATTRSUB |I32 floor|NULLOK OP *o|NULLOK OP *proto|NULLOK OP *attrs|OP *block
+Apr |void |newMYSUB |I32 floor|NULLOK OP *o|NULLOK OP *proto|NULLOK OP *attrs|NULLOK OP *block
+p |OP * |my_attrs |NN OP *o|NULLOK OP *attrs
p |void |boot_core_xsutils
#if defined(USE_ITHREADS)
Apa |PERL_CONTEXT*|cx_dup |PERL_CONTEXT* cx|I32 ix|I32 max|CLONE_PARAMS* param
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 |OP* |modkids |NULLOK OP *o|I32 type
s |OP* |scalarboolean |NN OP *o
sR |OP* |newDEFSVOP
sR |OP* |new_logop |I32 type|I32 flags|NN OP **firstp|NN OP **otherp
#endif
#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
-sR |OP* |docatch |OP *o
+sR |OP* |docatch |NULLOK OP *o
s |void |docatch_body
sR |OP* |dofindlabel |OP *o|const char *label|OP **opstack|OP **oplimit
sR |OP* |doparseform |SV *sv
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
-sR |OP* |doeval |int gimme|OP** startop|CV* outside|U32 seq
+s |void |save_lines |NULLOK AV *array|NN SV *sv
+sR |OP* |doeval |int gimme|NULLOK OP** startop|NULLOK 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 |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
+sR |SV* |method_common |NN SV* meth|NULLOK U32* hashp
#endif
#if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
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
+ |NN 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
Es |I32 |add_data |struct RExC_state_t*|I32 n|const char *s
-rs |void |re_croak2 |const char* pat1|const char* pat2|...
+rs |void |re_croak2 |NN const char* pat1|NN const char* pat2|...
Es |I32 |regpposixcc |struct RExC_state_t*|I32 value
Es |void |checkposixcc |struct RExC_state_t*
ERs |I32 |regmatch |NN regnode *prog
ERs |I32 |regrepeat |NN const regnode *p|I32 max
ERs |I32 |regrepeat_hard |NN regnode *p|I32 max|NN I32 *lp
-ERs |I32 |regtry |regexp *prog|char *startpos
-ERs |bool |reginclass |NN const regnode *n|NN const U8 *p|STRLEN *lenp|bool do_utf8sv_is_utf8
+ERs |I32 |regtry |NN regexp *prog|NN char *startpos
+ERs |bool |reginclass |NN const regnode *n|NN const U8 *p|NULLOK STRLEN *lenp\
+ |bool do_utf8sv_is_utf8
Es |CHECKPOINT|regcppush |I32 parenfloor
Es |char*|regcppop
Es |char*|regcp_set_to |I32 ss
-Es |void |cache_re |regexp *prog
+Es |void |cache_re |NN regexp *prog
ERs |U8* |reghop |U8 *pos|I32 off
ERs |U8* |reghop3 |U8 *pos|I32 off|U8 *lim
ERs |U8* |reghopmaybe |U8 *pos|I32 off
#if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT)
s |CV* |deb_curcv |I32 ix
-s |void |debprof |const OP *o
+s |void |debprof |NN const OP *o
#endif
#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
-s |SV* |save_scalar_at |SV **sptr
+s |SV* |save_scalar_at |NN SV **sptr
#endif
#if defined(PERL_IN_GV_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
sR |SV * |varname |NULLOK GV *gv|const char gvtype|PADOFFSET targ \
|NULLOK SV *keyname|I32 aindex|int subscript_type
# ifdef DEBUGGING
-s |void |del_sv |SV *p
+s |void |del_sv |NN SV *p
# endif
# if !defined(NV_PRESERVES_UV)
-s |int |sv_2iuv_non_preserve |SV *sv|I32 numtype
+s |int |sv_2iuv_non_preserve |NN SV *sv|I32 numtype
# endif
sR |I32 |expect_number |NN char** pattern
#
#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
s |void |check_uni
s |void |force_next |I32 type
-s |char* |force_version |char *start|int guessing
-s |char* |force_word |char *start|int token|int check_keyword \
+s |char* |force_version |NN char *start|int guessing
+s |char* |force_word |NN char *start|int token|int check_keyword \
|int allow_pack|int allow_tick
-s |SV* |tokeq |SV *sv
+s |SV* |tokeq |NN SV *sv
s |int |pending_ident
-s |char* |scan_const |NN char *start
-s |char* |scan_formline |NN char *s
-s |char* |scan_heredoc |NN char *s
+sR |char* |scan_const |NN char *start
+sR |char* |scan_formline |NN char *s
+sR |char* |scan_heredoc |NN char *s
s |char* |scan_ident |NN char *s|NN const char *send|NN char *dest \
|STRLEN destlen|I32 ck_uni
-s |char* |scan_inputsymbol|char *start
-s |char* |scan_pat |char *start|I32 type
-s |char* |scan_str |char *start|int keep_quoted|int keep_delims
-s |char* |scan_subst |char *start
-s |char* |scan_trans |char *start
-s |char* |scan_word |char *s|char *dest|STRLEN destlen \
- |int allow_package|STRLEN *slp
-s |char* |skipspace |char *s
-s |char* |swallow_bom |U8 *s
+sR |char* |scan_inputsymbol|NN char *start
+sR |char* |scan_pat |NN char *start|I32 type
+sR |char* |scan_str |NN char *start|int keep_quoted|int keep_delims
+sR |char* |scan_subst |NN char *start
+sR |char* |scan_trans |NN char *start
+s |char* |scan_word |NN char *s|NN char *dest|STRLEN destlen \
+ |int allow_package|NN STRLEN *slp
+sR |char* |skipspace |NN char *s
+sR |char* |swallow_bom |NN U8 *s
s |void |checkcomma |NN char *s|NN const char *name|NN const char *what
-s |void |force_ident |const char *s|int kind
-s |void |incline |char *s
-s |int |intuit_method |char *s|GV *gv
-s |int |intuit_more |char *s
-s |I32 |lop |I32 f|int x|char *s
-rs |void |missingterm |char *s
-s |void |no_op |const char *what|char *s
+s |void |force_ident |NN const char *s|int kind
+s |void |incline |NN char *s
+s |int |intuit_method |NN char *s|NN GV *gv
+s |int |intuit_more |NN char *s
+s |I32 |lop |I32 f|int x|NN char *s
+rs |void |missingterm |NULLOK char *s
+s |void |no_op |NN const char *what|NULLOK char *s
s |void |set_csh
-s |I32 |sublex_done
-s |I32 |sublex_push
-s |I32 |sublex_start
+sR |I32 |sublex_done
+sR |I32 |sublex_push
+sR |I32 |sublex_start
sR |char * |filter_gets |NN SV *sv|NN PerlIO *fp|STRLEN append
sR |HV * |find_in_my_stash|NN const char *pkgname|I32 len
s |SV* |new_constant |const char *s|STRLEN len|const char *key|SV *sv \
|SV *pv|const char *type
# if defined(DEBUGGING)
-s |int |tokereport |const char *s|I32 rv
+s |int |tokereport |NN const char *s|I32 rv
# endif
s |int |ao |int toketype
s |void |depcom
#endif
#if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
-s |SV*|isa_lookup |HV *stash|const char *name|HV *name_stash|int len|int level
+s |SV*|isa_lookup |NULLOK HV *stash|NN const char *name|NULLOK HV *name_stash|int len|int level
#endif
#if defined(PERL_IN_LOCALE_C) || defined(PERL_DECL_PROT)
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 |void |sv_catsv_flags |NN SV* dsv|NULLOK SV* ssv|I32 flags
Apd |STRLEN |sv_utf8_upgrade_flags|NN SV *sv|I32 flags
-Apd |char* |sv_pvn_force_flags|SV* sv|STRLEN* lp|I32 flags
+Apd |char* |sv_pvn_force_flags|NN SV* sv|NULLOK 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]
#ifdef PERL_OLD_COPY_ON_WRITE
-pMXE |SV* |sv_setsv_cow |SV* dsv|SV* ssv
+pMXE |SV* |sv_setsv_cow |NN SV* dsv|NN SV* ssv
#endif
#if defined(USE_PERLIO) && !defined(USE_SFIO)
-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 |int |PerlIO_close |NULLOK PerlIO *f
+Ap |int |PerlIO_fill |NULLOK PerlIO *f
+Ap |int |PerlIO_fileno |NULLOK PerlIO *f
+Ap |int |PerlIO_eof |NULLOK PerlIO *f
+Ap |int |PerlIO_error |NULLOK PerlIO *f
+Ap |int |PerlIO_flush |NULLOK PerlIO *f
+Ap |void |PerlIO_clearerr |NULLOK PerlIO *f
+Ap |void |PerlIO_set_cnt |NULLOK PerlIO *f|int cnt
+Ap |void |PerlIO_set_ptrcnt |NULLOK PerlIO *f|NN STDCHAR *ptr|int cnt
+Ap |void |PerlIO_setlinebuf |NULLOK PerlIO *f
+Ap |SSize_t|PerlIO_read |NULLOK PerlIO *f|NN void *buf|Size_t count
+Ap |SSize_t|PerlIO_write |NULLOK PerlIO *f|NN const void *buf|Size_t count
+Ap |SSize_t|PerlIO_unread |NULLOK PerlIO *f|NN const void *buf|Size_t count
+Ap |Off_t |PerlIO_tell |NULLOK PerlIO *f
+Ap |int |PerlIO_seek |NULLOK PerlIO *f|Off_t offset|int whence
-Ap |STDCHAR *|PerlIO_get_base |PerlIO *f
-Ap |STDCHAR *|PerlIO_get_ptr |PerlIO *f
-ApR |int |PerlIO_get_bufsiz |PerlIO *f
-ApR |int |PerlIO_get_cnt |PerlIO *f
+Ap |STDCHAR *|PerlIO_get_base |NULLOK PerlIO *f
+Ap |STDCHAR *|PerlIO_get_ptr |NULLOK PerlIO *f
+ApR |int |PerlIO_get_bufsiz |NULLOK PerlIO *f
+ApR |int |PerlIO_get_cnt |NULLOK PerlIO *f
-Ap |PerlIO *|PerlIO_stdin
-Ap |PerlIO *|PerlIO_stdout
-Ap |PerlIO *|PerlIO_stderr
+ApR |PerlIO *|PerlIO_stdin
+ApR |PerlIO *|PerlIO_stdout
+ApR |PerlIO *|PerlIO_stderr
#endif /* PERLIO_LAYERS */
p |void |deb_stack_all
pd |void |pad_block_start|int full
pd |void |pad_tidy |padtidy_type type
pd |void |do_dump_pad |I32 level|NN PerlIO *file|NULLOK PADLIST *padlist|int full
-pd |void |pad_fixup_inner_anons|NN PADLIST *padlist|CV *old_cv|CV *new_cv
+pd |void |pad_fixup_inner_anons|NN PADLIST *padlist|NN CV *old_cv|NN CV *new_cv
pd |void |pad_push |NN PADLIST *padlist|int depth
pR |HV* |pad_compname_type|const PADOFFSET po
pdR |CV* |find_runcv |NULLOK U32 *db_seqp
p |void |free_tied_hv_pool
#if defined(DEBUGGING)
-pR |int |get_debug_opts |const char **s|bool givehelp
+pR |int |get_debug_opts |NN const char **s|bool givehelp
#endif
-Ap |void |save_set_svflags|SV* sv|U32 mask|U32 val
+Ap |void |save_set_svflags|NULLOK SV* sv|U32 mask|U32 val
Apod |void |hv_assert |NN HV* tb
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
+Apo |void |hv_eiter_set |NN HV* hv|NULLOK HE* eiter
+Apo |void |hv_name_set |NN HV* hv|NULLOK 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
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
+p |void |dump_sv_child |NN SV *sv
#endif
#ifdef PERL_DONT_CREATE_GVSV
void
Perl_gv_efullname4(pTHX_ SV *sv, const GV *gv, const char *prefix, bool keepmain)
{
- const GV *egv = GvEGV(gv);
- if (!egv)
- egv = gv;
- gv_fullname4(sv, egv, prefix, keepmain);
+ const GV * const egv = GvEGV(gv);
+ gv_fullname4(sv, egv ? egv : gv, prefix, keepmain);
}
void
if ((name = HvNAME_get(hv))) {
if(PL_stashcache)
hv_delete(PL_stashcache, name, HvNAMELEN_get(hv), G_DISCARD);
- Perl_hv_name_set(aTHX_ hv, 0, 0, 0);
+ Perl_hv_name_set(aTHX_ hv, Nullch, 0, 0);
}
SvFLAGS(hv) &= ~SVf_OOK;
Safefree(HvARRAY(hv));
{
struct xpvhv_aux *iter;
U32 hash;
- (void)flags;
+
+ PERL_UNUSED_ARG(flags);
if (SvOOK(hv)) {
iter = HvAUX(hv);
STATIC const char*
S_gv_ename(pTHX_ GV *gv)
{
- SV* tmpsv = sv_newmortal();
+ SV* const tmpsv = sv_newmortal();
gv_efullname3(tmpsv, gv, Nullch);
return SvPV_nolen_const(tmpsv);
}
OP* o;
const bool once = block && block->op_flags & OPf_SPECIAL &&
(block->op_type == OP_ENTERSUB || block->op_type == OP_NULL);
- (void)debuggable;
+
+ PERL_UNUSED_ARG(debuggable);
if (expr) {
if (once && expr->op_type == OP_CONST && !SvTRUE(((SVOP*)expr)->op_sv))
expr = newUNOP(OP_DEFINED, 0,
newASSIGNOP(0, newDEFSVOP(), 0, expr) );
} else if (expr->op_flags & OPf_KIDS) {
- const OP *k1 = ((UNOP*)expr)->op_first;
- const OP *k2 = (k1) ? k1->op_sibling : NULL;
+ const OP * const k1 = ((UNOP*)expr)->op_first;
+ const OP * const k2 = k1 ? k1->op_sibling : NULL;
switch (expr->op_type) {
case OP_NULL:
if (k2 && k2->op_type == OP_READLINE
OP *listop;
OP *o;
U8 loopflags = 0;
- (void)debuggable;
+
+ PERL_UNUSED_ARG(debuggable);
if (expr && (expr->op_type == OP_READLINE || expr->op_type == OP_GLOB
|| (expr->op_type == OP_NULL && expr->op_targ == OP_GLOB))) {
expr = newUNOP(OP_DEFINED, 0,
newASSIGNOP(0, newDEFSVOP(), 0, expr) );
} else if (expr && (expr->op_flags & OPf_KIDS)) {
- const OP *k1 = ((UNOP*)expr)->op_first;
- const OP *k2 = (k1) ? k1->op_sibling : NULL;
+ const OP * const k1 = ((UNOP*)expr)->op_first;
+ const OP * const k2 = (k1) ? k1->op_sibling : NULL;
switch (expr->op_type) {
case OP_NULL:
if (k2 && k2->op_type == OP_READLINE
void
Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
{
- (void)floor;
+ PERL_UNUSED_ARG(floor);
+
if (o)
SAVEFREEOP(o);
if (proto)
{
Perl_croak(aTHX_ "NOT IMPL LINE %d",__LINE__);
/* STUB */
- (void)o;
+ PERL_UNUSED_ARG(o);
NORETURN_FUNCTION_END;
}
dVAR;
PL_hints |= HINT_BLOCK_SCOPE;
if (o->op_flags & OPf_KIDS) {
- SVOP *kid = (SVOP*)cUNOPo->op_first;
+ SVOP * const kid = (SVOP*)cUNOPo->op_first;
if (!kid) {
o->op_flags &= ~OPf_KIDS;
{
o = ck_fun(o);
if (o->op_flags & OPf_KIDS) {
- OP *kid = cUNOPo->op_first;
+ OP * const kid = cUNOPo->op_first;
if (kid->op_type == OP_ENTERSUB) {
(void) ref(kid, o->op_type);
if (kid->op_type != OP_RV2CV && !PL_error_count)
if (namesv && namesv != &PL_sv_undef
&& *SvPVX_const(namesv) == '&')
{
- CV *innercv = (CV*)curpad[ix];
+ CV * const innercv = (CV*)curpad[ix];
assert(CvWEAKOUTSIDE(innercv));
assert(CvOUTSIDE(innercv) == old_cv);
CvOUTSIDE(innercv) = new_cv;
/* Call the callback or PerlIOBase, and return failure. */
#define Perl_PerlIO_or_Base(f, callback, base, failure, args) \
if (PerlIOValid(f)) { \
- const PerlIO_funcs *tab = PerlIOBase(f)->tab; \
+ const PerlIO_funcs * const tab = PerlIOBase(f)->tab;\
if (tab && tab->callback) \
return (*tab->callback) args; \
else \
/* Call the callback or fail, and return failure. */
#define Perl_PerlIO_or_fail(f, callback, failure, args) \
if (PerlIOValid(f)) { \
- const PerlIO_funcs *tab = PerlIOBase(f)->tab; \
+ const PerlIO_funcs * const tab = PerlIOBase(f)->tab;\
if (tab && tab->callback) \
return (*tab->callback) args; \
SETERRNO(EINVAL, LIB_INVARG); \
/* Call the callback or PerlIOBase, and be void. */
#define Perl_PerlIO_or_Base_void(f, callback, base, args) \
if (PerlIOValid(f)) { \
- const PerlIO_funcs *tab = PerlIOBase(f)->tab; \
+ const PerlIO_funcs * const tab = PerlIOBase(f)->tab;\
if (tab && tab->callback) \
(*tab->callback) args; \
else \
/* Call the callback or fail, and be void. */
#define Perl_PerlIO_or_fail_void(f, callback, args) \
if (PerlIOValid(f)) { \
- const PerlIO_funcs *tab = PerlIOBase(f)->tab; \
+ const PerlIO_funcs * const tab = PerlIOBase(f)->tab;\
if (tab && tab->callback) \
(*tab->callback) args; \
else \
if ((SSize_t) len <= 0)
len = strlen(name);
for (i = 0; i < PL_known_layers->cur; i++) {
- PerlIO_funcs *f = PL_known_layers->array[i].funcs;
+ PerlIO_funcs * const f = PL_known_layers->array[i].funcs;
if (memEQ(f->name, name, len) && f->name[len] == 0) {
PerlIO_debug("%.*s => %p\n", (int) len, name, (void*)f);
return f;
Perl_croak(aTHX_ "Recursive call to Perl_load_module in PerlIO_find_layer");
return NULL;
} else {
- SV *pkgsv = newSVpvn("PerlIO", 6);
- SV *layer = newSVpvn(name, len);
- CV *cv = get_cv("PerlIO::Layer::NoWarnings", FALSE);
- ENTER;
+ SV * const pkgsv = newSVpvn("PerlIO", 6);
+ SV * const layer = newSVpvn(name, len);
+ CV * const cv = get_cv("PerlIO::Layer::NoWarnings", FALSE);
+ ENTER;
SAVEINT(PL_in_load_module);
if (cv) {
SAVEGENERICSV(PL_warnhook);
SV *
PerlIO_tab_sv(pTHX_ PerlIO_funcs *tab)
{
- HV *stash = gv_stashpv("PerlIO::Layer", TRUE);
- SV *sv = sv_bless(newRV_noinc(newSViv(PTR2IV(tab))), stash);
+ HV * const stash = gv_stashpv("PerlIO::Layer", TRUE);
+ SV * const sv = sv_bless(newRV_noinc(newSViv(PTR2IV(tab))), stash);
return sv;
}
Perl_croak(aTHX_ "Usage class->find(name[,load])");
else {
STRLEN len;
- const char *name = SvPV_const(ST(1), len);
+ const char * const name = SvPV_const(ST(1), len);
const bool load = (items > 2) ? SvTRUE(ST(2)) : 0;
- PerlIO_funcs *layer = PerlIO_find_layer(aTHX_ name, len, load);
+ PerlIO_funcs * const layer = PerlIO_find_layer(aTHX_ name, len, load);
ST(0) =
(layer) ? sv_2mortal(PerlIO_tab_sv(aTHX_ layer)) :
&PL_sv_undef;
}
}
if (e > s) {
- PerlIO_funcs *layer =
+ PerlIO_funcs * const layer =
PerlIO_find_layer(aTHX_ s, llen, 1);
if (layer) {
PerlIO_list_push(aTHX_ av, layer,
PerlIO_funcs *
PerlIO_default_layer(pTHX_ I32 n)
{
- PerlIO_list_t *av = PerlIO_default_layers(aTHX);
+ PerlIO_list_t * const av = PerlIO_default_layers(aTHX);
if (n < 0)
n += av->cur;
return PerlIO_layer_fetch(aTHX_ av, n, PERLIO_FUNCS_CAST(&PerlIO_stdio));
PerlIO__close(pTHX_ PerlIO *f)
{
if (PerlIOValid(f)) {
- PerlIO_funcs *tab = PerlIOBase(f)->tab;
+ PerlIO_funcs * const tab = PerlIOBase(f)->tab;
if (tab && tab->Close)
return (*tab->Close)(aTHX_ f);
else
* for it
*/
if (SvROK(arg) && !sv_isobject(arg)) {
- PerlIO_funcs *handler = PerlIO_layer_from_ref(aTHX_ SvRV(arg));
+ PerlIO_funcs * const handler = PerlIO_layer_from_ref(aTHX_ SvRV(arg));
if (handler) {
def = PerlIO_list_alloc(aTHX);
PerlIO_list_push(aTHX_ def, handler, &PL_sv_undef);
PerlIOl *l = *f;
layera = PerlIO_list_alloc(aTHX);
while (l) {
- SV *arg = (l->tab->Getarg)
+ SV * const arg = (l->tab->Getarg)
? (*l->tab->Getarg) (aTHX_ &l, NULL, 0)
: &PL_sv_undef;
PerlIO_list_push(aTHX_ layera, l->tab, arg);
*/
n = layera->cur - 1;
while (n >= 0) {
- PerlIO_funcs *t = PerlIO_layer_fetch(aTHX_ layera, n, NULL);
+ PerlIO_funcs * const t = PerlIO_layer_fetch(aTHX_ layera, n, NULL);
if (t && t->Open) {
tab = t;
break;
PerlIO_has_base(PerlIO *f)
{
if (PerlIOValid(f)) {
- const PerlIO_funcs *tab = PerlIOBase(f)->tab;
+ const PerlIO_funcs * const tab = PerlIOBase(f)->tab;
if (tab)
return (tab->Get_base != NULL);
PerlIO_fast_gets(PerlIO *f)
{
if (PerlIOValid(f) && (PerlIOBase(f)->flags & PERLIO_F_FASTGETS)) {
- const PerlIO_funcs *tab = PerlIOBase(f)->tab;
+ const PerlIO_funcs * const tab = PerlIOBase(f)->tab;
if (tab)
return (tab->Set_ptrcnt != NULL);
PerlIO_has_cntptr(PerlIO *f)
{
if (PerlIOValid(f)) {
- const PerlIO_funcs *tab = PerlIOBase(f)->tab;
+ const PerlIO_funcs * const tab = PerlIOBase(f)->tab;
if (tab)
return (tab->Get_ptr != NULL && tab->Get_cnt != NULL);
PerlIO_canset_cnt(PerlIO *f)
{
if (PerlIOValid(f)) {
- const PerlIO_funcs *tab = PerlIOBase(f)->tab;
+ const PerlIO_funcs * const tab = PerlIOBase(f)->tab;
if (tab)
return (tab->Set_ptrcnt != NULL);
{
PerlIO *n;
if (PerlIOValid(f) && PerlIOValid(n = PerlIONext(f))) {
- PerlIO_funcs *toptab = PerlIOBase(n)->tab;
+ PerlIO_funcs * const toptab = PerlIOBase(n)->tab;
if (toptab == tab) {
/* Top is already stdio - pop self (duplicate) and use original */
PerlIO_pop(aTHX_ f);
S_doeval(pTHX_ int gimme, OP** startop, CV* outside, U32 seq)
{
dVAR; dSP;
- OP *saveop = PL_op;
+ OP * const saveop = PL_op;
PL_in_eval = ((saveop && saveop->op_type == OP_REQUIRE)
? (EVAL_INREQUIRE | (PL_in_eval & EVAL_INEVAL))
STATIC SV *
S_method_common(pTHX_ SV* meth, U32* hashp)
{
- SV* sv;
SV* ob;
GV* gv;
HV* stash;
STRLEN namelen;
- const char* packname = 0;
+ const char* packname = Nullch;
SV *packsv = Nullsv;
STRLEN packlen;
- const char *name = SvPV_const(meth, namelen);
-
- sv = *(PL_stack_base + TOPMARK + 1);
+ const char * const name = SvPV_const(meth, namelen);
+ SV * const sv = *(PL_stack_base + TOPMARK + 1);
if (!sv)
Perl_croak(aTHX_ "Can't call method \"%s\" on an undefined value", name);
GV* iogv;
/* this isn't a reference */
- packname = Nullch;
-
if(SvOK(sv) && (packname = SvPV_const(sv, packlen))) {
const HE* const he = hv_fetch_ent(PL_stashcache, sv, 0, 0);
if (he) {
packname = CopSTASHPV(PL_curcop);
}
else if (stash) {
- HEK *packhek = HvNAME_HEK(stash);
+ HEK * const packhek = HvNAME_HEK(stash);
if (packhek) {
packname = HEK_KEY(packhek);
packlen = HEK_LEN(packhek);
/* functions with flag 'n' should come before here */
START_EXTERN_C
# include "pp_proto.h"
-PERL_CALLCONV SV* Perl_amagic_call(pTHX_ SV* left, SV* right, int method, int dir);
+PERL_CALLCONV SV* Perl_amagic_call(pTHX_ SV* left, SV* right, int method, int dir)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+
PERL_CALLCONV bool Perl_Gv_AMupdate(pTHX_ HV* stash)
__attribute__nonnull__(pTHX_1);
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_2);
-PERL_CALLCONV void Perl_gv_check(pTHX_ HV* stash);
-PERL_CALLCONV void Perl_gv_efullname(pTHX_ SV* sv, const GV* gv);
-/* PERL_CALLCONV void Perl_gv_efullname3(pTHX_ SV* sv, const GV* gv, const char* prefix); */
-PERL_CALLCONV void Perl_gv_efullname4(pTHX_ SV* sv, const GV* gv, const char* prefix, bool keepmain);
+PERL_CALLCONV void Perl_gv_check(pTHX_ HV* stash)
+ __attribute__nonnull__(pTHX_1);
+
+PERL_CALLCONV void Perl_gv_efullname(pTHX_ SV* sv, const GV* gv)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+
+/* PERL_CALLCONV void Perl_gv_efullname3(pTHX_ SV* sv, const GV* gv, const char* prefix)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2); */
+
+PERL_CALLCONV void Perl_gv_efullname4(pTHX_ SV* sv, const GV* gv, const char* prefix, bool keepmain)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+
PERL_CALLCONV GV* Perl_gv_fetchfile(pTHX_ const char* name)
__attribute__nonnull__(pTHX_1);
STATIC I32 S_dopoptosub_at(pTHX_ const PERL_CONTEXT* cxstk, I32 startingblock)
__attribute__warn_unused_result__;
-STATIC void S_save_lines(pTHX_ AV *array, SV *sv);
+STATIC void S_save_lines(pTHX_ AV *array, SV *sv)
+ __attribute__nonnull__(pTHX_2);
+
STATIC OP* S_doeval(pTHX_ int gimme, OP** startop, CV* outside, U32 seq)
__attribute__warn_unused_result__;
__attribute__nonnull__(pTHX_2);
STATIC void S_cl_and(pTHX_ struct regnode_charclass_class *cl, const struct regnode_charclass_class *and_with)
- __attribute__nonnull__(pTHX_1);
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
STATIC void S_cl_or(pTHX_ struct RExC_state_t*, struct regnode_charclass_class *cl, const struct regnode_charclass_class *or_with)
__attribute__nonnull__(pTHX_1)
STATIC I32 S_study_chunk(pTHX_ struct RExC_state_t*, regnode **scanp, I32 *deltap, regnode *last, struct scan_data_t *data, U32 flags, U32 depth);
STATIC I32 S_add_data(pTHX_ struct RExC_state_t*, I32 n, const char *s);
STATIC void S_re_croak2(pTHX_ const char* pat1, const char* pat2, ...)
- __attribute__noreturn__;
+ __attribute__noreturn__
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
STATIC I32 S_regpposixcc(pTHX_ struct RExC_state_t*, I32 value);
STATIC void S_checkposixcc(pTHX_ struct RExC_state_t*);
__attribute__nonnull__(pTHX_3);
STATIC I32 S_regtry(pTHX_ regexp *prog, char *startpos)
- __attribute__warn_unused_result__;
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
STATIC bool S_reginclass(pTHX_ const regnode *n, const U8 *p, STRLEN *lenp, bool do_utf8sv_is_utf8)
__attribute__warn_unused_result__
STATIC CHECKPOINT S_regcppush(pTHX_ I32 parenfloor);
STATIC char* S_regcppop(pTHX);
STATIC char* S_regcp_set_to(pTHX_ I32 ss);
-STATIC void S_cache_re(pTHX_ regexp *prog);
+STATIC void S_cache_re(pTHX_ regexp *prog)
+ __attribute__nonnull__(pTHX_1);
+
STATIC U8* S_reghop(pTHX_ U8 *pos, I32 off)
__attribute__warn_unused_result__;
#if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT)
STATIC CV* S_deb_curcv(pTHX_ I32 ix);
-STATIC void S_debprof(pTHX_ const OP *o);
+STATIC void S_debprof(pTHX_ const OP *o)
+ __attribute__nonnull__(pTHX_1);
+
#endif
#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
-STATIC SV* S_save_scalar_at(pTHX_ SV **sptr);
+STATIC SV* S_save_scalar_at(pTHX_ SV **sptr)
+ __attribute__nonnull__(pTHX_1);
+
#endif
#if defined(PERL_IN_GV_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
__attribute__warn_unused_result__;
# ifdef DEBUGGING
-STATIC void S_del_sv(pTHX_ SV *p);
+STATIC void S_del_sv(pTHX_ SV *p)
+ __attribute__nonnull__(pTHX_1);
+
# endif
# if !defined(NV_PRESERVES_UV)
-STATIC int S_sv_2iuv_non_preserve(pTHX_ SV *sv, I32 numtype);
+STATIC int S_sv_2iuv_non_preserve(pTHX_ SV *sv, I32 numtype)
+ __attribute__nonnull__(pTHX_1);
+
# endif
STATIC I32 S_expect_number(pTHX_ char** pattern)
__attribute__warn_unused_result__
#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
STATIC void S_check_uni(pTHX);
STATIC void S_force_next(pTHX_ I32 type);
-STATIC char* S_force_version(pTHX_ char *start, int guessing);
-STATIC char* S_force_word(pTHX_ char *start, int token, int check_keyword, int allow_pack, int allow_tick);
-STATIC SV* S_tokeq(pTHX_ SV *sv);
+STATIC char* S_force_version(pTHX_ char *start, int guessing)
+ __attribute__nonnull__(pTHX_1);
+
+STATIC char* S_force_word(pTHX_ char *start, int token, int check_keyword, int allow_pack, int allow_tick)
+ __attribute__nonnull__(pTHX_1);
+
+STATIC SV* S_tokeq(pTHX_ SV *sv)
+ __attribute__nonnull__(pTHX_1);
+
STATIC int S_pending_ident(pTHX);
STATIC char* S_scan_const(pTHX_ char *start)
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
STATIC char* S_scan_formline(pTHX_ char *s)
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
STATIC char* S_scan_heredoc(pTHX_ char *s)
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
STATIC char* S_scan_ident(pTHX_ char *s, const char *send, char *dest, STRLEN destlen, I32 ck_uni)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
-STATIC char* S_scan_inputsymbol(pTHX_ char *start);
-STATIC char* S_scan_pat(pTHX_ char *start, I32 type);
-STATIC char* S_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims);
-STATIC char* S_scan_subst(pTHX_ char *start);
-STATIC char* S_scan_trans(pTHX_ char *start);
-STATIC char* S_scan_word(pTHX_ char *s, char *dest, STRLEN destlen, int allow_package, STRLEN *slp);
-STATIC char* S_skipspace(pTHX_ char *s);
-STATIC char* S_swallow_bom(pTHX_ U8 *s);
+STATIC char* S_scan_inputsymbol(pTHX_ char *start)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+
+STATIC char* S_scan_pat(pTHX_ char *start, I32 type)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+
+STATIC char* S_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+
+STATIC char* S_scan_subst(pTHX_ char *start)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+
+STATIC char* S_scan_trans(pTHX_ char *start)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+
+STATIC char* S_scan_word(pTHX_ char *s, char *dest, STRLEN destlen, int allow_package, STRLEN *slp)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_5);
+
+STATIC char* S_skipspace(pTHX_ char *s)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+
+STATIC char* S_swallow_bom(pTHX_ U8 *s)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+
STATIC void S_checkcomma(pTHX_ char *s, const char *name, const char *what)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
-STATIC void S_force_ident(pTHX_ const char *s, int kind);
-STATIC void S_incline(pTHX_ char *s);
-STATIC int S_intuit_method(pTHX_ char *s, GV *gv);
-STATIC int S_intuit_more(pTHX_ char *s);
-STATIC I32 S_lop(pTHX_ I32 f, int x, char *s);
+STATIC void S_force_ident(pTHX_ const char *s, int kind)
+ __attribute__nonnull__(pTHX_1);
+
+STATIC void S_incline(pTHX_ char *s)
+ __attribute__nonnull__(pTHX_1);
+
+STATIC int S_intuit_method(pTHX_ char *s, GV *gv)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+
+STATIC int S_intuit_more(pTHX_ char *s)
+ __attribute__nonnull__(pTHX_1);
+
+STATIC I32 S_lop(pTHX_ I32 f, int x, char *s)
+ __attribute__nonnull__(pTHX_3);
+
STATIC void S_missingterm(pTHX_ char *s)
__attribute__noreturn__;
-STATIC void S_no_op(pTHX_ const char *what, char *s);
+STATIC void S_no_op(pTHX_ const char *what, char *s)
+ __attribute__nonnull__(pTHX_1);
+
STATIC void S_set_csh(pTHX);
-STATIC I32 S_sublex_done(pTHX);
-STATIC I32 S_sublex_push(pTHX);
-STATIC I32 S_sublex_start(pTHX);
+STATIC I32 S_sublex_done(pTHX)
+ __attribute__warn_unused_result__;
+
+STATIC I32 S_sublex_push(pTHX)
+ __attribute__warn_unused_result__;
+
+STATIC I32 S_sublex_start(pTHX)
+ __attribute__warn_unused_result__;
+
STATIC char * S_filter_gets(pTHX_ SV *sv, PerlIO *fp, STRLEN append)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1)
STATIC SV* S_new_constant(pTHX_ const char *s, STRLEN len, const char *key, SV *sv, SV *pv, const char *type);
# if defined(DEBUGGING)
-STATIC int S_tokereport(pTHX_ const char *s, I32 rv);
+STATIC int S_tokereport(pTHX_ const char *s, I32 rv)
+ __attribute__nonnull__(pTHX_1);
+
# endif
STATIC int S_ao(pTHX_ int toketype);
STATIC void S_depcom(pTHX);
#endif
#if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
-STATIC SV* S_isa_lookup(pTHX_ HV *stash, const char *name, HV *name_stash, int len, int level);
+STATIC SV* S_isa_lookup(pTHX_ HV *stash, const char *name, HV *name_stash, int len, int level)
+ __attribute__nonnull__(pTHX_2);
+
#endif
#if defined(PERL_IN_LOCALE_C) || defined(PERL_DECL_PROT)
PERL_CALLCONV STRLEN Perl_sv_utf8_upgrade_flags(pTHX_ SV *sv, I32 flags)
__attribute__nonnull__(pTHX_1);
-PERL_CALLCONV char* Perl_sv_pvn_force_flags(pTHX_ SV* sv, STRLEN* lp, I32 flags);
+PERL_CALLCONV char* Perl_sv_pvn_force_flags(pTHX_ SV* sv, STRLEN* lp, I32 flags)
+ __attribute__nonnull__(pTHX_1);
+
PERL_CALLCONV void Perl_sv_copypv(pTHX_ SV* dsv, SV* ssv)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
PERL_CALLCONV int Perl_my_socketpair(int family, int type, int protocol, int fd[2]);
#ifdef PERL_OLD_COPY_ON_WRITE
-PERL_CALLCONV SV* Perl_sv_setsv_cow(pTHX_ SV* dsv, SV* ssv);
+PERL_CALLCONV SV* Perl_sv_setsv_cow(pTHX_ SV* dsv, SV* ssv)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+
#endif
#if defined(USE_PERLIO) && !defined(USE_SFIO)
__attribute__warn_unused_result__;
-PERL_CALLCONV PerlIO * Perl_PerlIO_stdin(pTHX);
-PERL_CALLCONV PerlIO * Perl_PerlIO_stdout(pTHX);
-PERL_CALLCONV PerlIO * Perl_PerlIO_stderr(pTHX);
+PERL_CALLCONV PerlIO * Perl_PerlIO_stdin(pTHX)
+ __attribute__warn_unused_result__;
+
+PERL_CALLCONV PerlIO * Perl_PerlIO_stdout(pTHX)
+ __attribute__warn_unused_result__;
+
+PERL_CALLCONV PerlIO * Perl_PerlIO_stderr(pTHX)
+ __attribute__warn_unused_result__;
+
#endif /* PERLIO_LAYERS */
PERL_CALLCONV void Perl_deb_stack_all(pTHX);
__attribute__nonnull__(pTHX_2);
PERL_CALLCONV void Perl_pad_fixup_inner_anons(pTHX_ PADLIST *padlist, CV *old_cv, CV *new_cv)
- __attribute__nonnull__(pTHX_1);
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
PERL_CALLCONV void Perl_pad_push(pTHX_ PADLIST *padlist, int depth)
PERL_CALLCONV void Perl_free_tied_hv_pool(pTHX);
#if defined(DEBUGGING)
PERL_CALLCONV int Perl_get_debug_opts(pTHX_ const char **s, bool givehelp)
- __attribute__warn_unused_result__;
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
#endif
PERL_CALLCONV void Perl_save_set_svflags(pTHX_ SV* sv, U32 mask, U32 val);
#ifdef DEBUG_LEAKING_SCALARS_FORK_DUMP
-PERL_CALLCONV void Perl_dump_sv_child(pTHX_ SV *sv);
+PERL_CALLCONV void Perl_dump_sv_child(pTHX_ SV *sv)
+ __attribute__nonnull__(pTHX_1);
+
#endif
#ifdef PERL_DONT_CREATE_GVSV
{
register char *d;
register char *e;
- char *bracket = 0;
+ char *bracket = Nullch;
char funny = *s++;
if (isSPACE(*s))
char *s = scan_str(start,FALSE,FALSE);
if (!s) {
- char *delimiter = skipspace(start);
+ char * const delimiter = skipspace(start);
Perl_croak(aTHX_ *delimiter == '?'
? "Search pattern not terminated or ternary operator parsed as search pattern"
: "Search pattern not terminated" );