X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/afdbe55d0c4f11409419f813c4360c8ab300a779..e606678100532d04b0a202d11e1d0f8323bd1564:/proto.h diff --git a/proto.h b/proto.h index a24a9cb..054387a 100644 --- a/proto.h +++ b/proto.h @@ -1,16 +1,16 @@ -/* -*- buffer-read-only: t -*- +/* -*- buffer-read-only: t -*- * * proto.h * - * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, by Larry Wall and others + * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + * 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * * !!!!!!! DO NOT EDIT THIS FILE !!!!!!! * This file is built by regen/embed.pl from data in embed.fnc, - * regen/embed.pl, pp.sym, intrpvar.h, and perlvars.h. + * regen/embed.pl, regen/opcodes, intrpvar.h and perlvars.h. * Any changes made here will be lost! * * Edit those files and run 'make regen_headers' to effect changes. @@ -23,11 +23,23 @@ PERL_CALLCONV int Perl_Gv_AMupdate(pTHX_ HV* stash, bool destructing) assert(stash) PERL_CALLCONV const char * Perl_PerlIO_context_layers(pTHX_ const char *mode); -PERL_CALLCONV HV* Perl__swash_inversion_hash(pTHX_ SV *swash) +PERL_CALLCONV bool Perl__is_utf8__perl_idstart(pTHX_ const U8 *p) __attribute__warn_unused_result__ __attribute__nonnull__(pTHX_1); -#define PERL_ARGS_ASSERT__SWASH_INVERSION_HASH \ - assert(swash) +#define PERL_ARGS_ASSERT__IS_UTF8__PERL_IDSTART \ + assert(p) + +PERL_CALLCONV UV Perl__to_uni_fold_flags(pTHX_ UV c, U8 *p, STRLEN *lenp, U8 flags) + __attribute__nonnull__(pTHX_2) + __attribute__nonnull__(pTHX_3); +#define PERL_ARGS_ASSERT__TO_UNI_FOLD_FLAGS \ + assert(p); assert(lenp) + +PERL_CALLCONV UV Perl__to_utf8_fold_flags(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp, U8 flags) + __attribute__nonnull__(pTHX_1) + __attribute__nonnull__(pTHX_2); +#define PERL_ARGS_ASSERT__TO_UTF8_FOLD_FLAGS \ + assert(p); assert(ustrp) PERL_CALLCONV PADOFFSET Perl_allocmy(pTHX_ const char *const name, const STRLEN len, const U32 flags) __attribute__nonnull__(pTHX_1); @@ -255,6 +267,11 @@ PERL_CALLCONV U32 Perl_cast_ulong(pTHX_ NV f) PERL_CALLCONV UV Perl_cast_uv(pTHX_ NV f) __attribute__warn_unused_result__; +PERL_CALLCONV bool Perl_check_utf8_print(pTHX_ const U8 *s, const STRLEN len) + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_CHECK_UTF8_PRINT \ + assert(s) + PERL_CALLCONV OP * Perl_ck_anoncode(pTHX_ OP *o) __attribute__warn_unused_result__ __attribute__nonnull__(pTHX_1); @@ -303,6 +320,13 @@ PERL_CALLCONV OP * Perl_ck_each(pTHX_ OP *o) #define PERL_ARGS_ASSERT_CK_EACH \ assert(o) +PERL_CALLCONV OP* Perl_ck_entersub_args_core(pTHX_ OP *entersubop, GV *namegv, SV *protosv) + __attribute__nonnull__(pTHX_1) + __attribute__nonnull__(pTHX_2) + __attribute__nonnull__(pTHX_3); +#define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_CORE \ + assert(entersubop); assert(namegv); assert(protosv) + PERL_CALLCONV OP* Perl_ck_entersub_args_list(pTHX_ OP *entersubop) __attribute__nonnull__(pTHX_1); #define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_LIST \ @@ -424,12 +448,6 @@ PERL_CALLCONV OP * Perl_ck_open(pTHX_ OP *o) #define PERL_ARGS_ASSERT_CK_OPEN \ assert(o) -PERL_CALLCONV OP * Perl_ck_push(pTHX_ OP *o) - __attribute__warn_unused_result__ - __attribute__nonnull__(pTHX_1); -#define PERL_ARGS_ASSERT_CK_PUSH \ - assert(o) - PERL_CALLCONV OP * Perl_ck_readline(pTHX_ OP *o) __attribute__warn_unused_result__ __attribute__nonnull__(pTHX_1); @@ -532,12 +550,6 @@ PERL_CALLCONV OP * Perl_ck_trunc(pTHX_ OP *o) #define PERL_ARGS_ASSERT_CK_TRUNC \ assert(o) -PERL_CALLCONV OP * Perl_ck_unpack(pTHX_ OP *o) - __attribute__warn_unused_result__ - __attribute__nonnull__(pTHX_1); -#define PERL_ARGS_ASSERT_CK_UNPACK \ - assert(o) - PERL_CALLCONV void Perl_ck_warner(pTHX_ U32 err, const char* pat, ...) __attribute__format__(__printf__,pTHX_2,pTHX_3) __attribute__nonnull__(pTHX_2); @@ -555,6 +567,27 @@ PERL_CALLCONV bool Perl_ckwarn_d(pTHX_ U32 w); PERL_CALLCONV OP* Perl_convert(pTHX_ I32 optype, I32 flags, OP* o) __attribute__warn_unused_result__; +PERL_CALLCONV const char * Perl_cop_fetch_label(pTHX_ COP *const cop, STRLEN *len, U32 *flags) + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_COP_FETCH_LABEL \ + assert(cop) + +PERL_CALLCONV void Perl_cop_store_label(pTHX_ COP *const cop, const char *label, STRLEN len, U32 flags) + __attribute__nonnull__(pTHX_1) + __attribute__nonnull__(pTHX_2); +#define PERL_ARGS_ASSERT_COP_STORE_LABEL \ + assert(cop); assert(label) + +PERL_CALLCONV SV * Perl_core_prototype(pTHX_ SV *sv, const char *name, const int code, int * const opnum) + __attribute__nonnull__(pTHX_2); +#define PERL_ARGS_ASSERT_CORE_PROTOTYPE \ + assert(name) + +PERL_CALLCONV OP * Perl_coresub_op(pTHX_ SV *coreargssv, const int code, const int opnum) + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_CORESUB_OP \ + assert(coreargssv) + PERL_CALLCONV PERL_CONTEXT* Perl_create_eval_scope(pTHX_ U32 flags); PERL_CALLCONV void Perl_croak(pTHX_ const char* pat, ...) __attribute__noreturn__ @@ -707,17 +740,6 @@ PERL_CALLCONV int Perl_do_binmode(pTHX_ PerlIO *fp, int iotype, int mode) #define PERL_ARGS_ASSERT_DO_BINMODE \ assert(fp) -PERL_CALLCONV I32 Perl_do_chomp(pTHX_ SV* sv) - __attribute__nonnull__(pTHX_1); -#define PERL_ARGS_ASSERT_DO_CHOMP \ - assert(sv) - -PERL_CALLCONV void Perl_do_chop(pTHX_ SV *astr, SV *sv) - __attribute__nonnull__(pTHX_1) - __attribute__nonnull__(pTHX_2); -#define PERL_ARGS_ASSERT_DO_CHOP \ - assert(astr); assert(sv) - PERL_CALLCONV bool Perl_do_close(pTHX_ GV* gv, bool not_implicit); PERL_CALLCONV void Perl_do_dump_pad(pTHX_ I32 level, PerlIO *file, PADLIST *padlist, int full) __attribute__nonnull__(pTHX_2); @@ -756,13 +778,19 @@ PERL_CALLCONV void Perl_do_join(pTHX_ SV *sv, SV *delim, SV **mark, SV **sp) #define PERL_ARGS_ASSERT_DO_JOIN \ assert(sv); assert(delim); assert(mark); assert(sp) -PERL_CALLCONV OP* Perl_do_kv(pTHX); PERL_CALLCONV void Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, const MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim) __attribute__nonnull__(pTHX_2) __attribute__nonnull__(pTHX_3); #define PERL_ARGS_ASSERT_DO_MAGIC_DUMP \ assert(file); assert(mg) +PERL_CALLCONV I32 Perl_do_ncmp(pTHX_ SV *const left, SV *const right) + __attribute__warn_unused_result__ + __attribute__nonnull__(pTHX_1) + __attribute__nonnull__(pTHX_2); +#define PERL_ARGS_ASSERT_DO_NCMP \ + assert(left); assert(right) + PERL_CALLCONV void Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, const OP *o) __attribute__nonnull__(pTHX_2); #define PERL_ARGS_ASSERT_DO_OP_DUMP \ @@ -932,10 +960,10 @@ PERL_CALLCONV char* Perl_fbm_instr(pTHX_ unsigned char* big, unsigned char* bige #define PERL_ARGS_ASSERT_FBM_INSTR \ assert(big); assert(bigend); assert(littlestr) -PERL_CALLCONV const char * Perl_fetch_cop_label(pTHX_ COP *const cop, STRLEN *len, U32 *flags) +PERL_CALLCONV bool Perl_feature_is_enabled(pTHX_ const char *const name, STRLEN namelen) __attribute__nonnull__(pTHX_1); -#define PERL_ARGS_ASSERT_FETCH_COP_LABEL \ - assert(cop) +#define PERL_ARGS_ASSERT_FEATURE_IS_ENABLED \ + assert(name) PERL_CALLCONV SV* Perl_filter_add(pTHX_ filter_t funcp, SV* datasv); PERL_CALLCONV void Perl_filter_del(pTHX_ filter_t funcp) @@ -949,10 +977,20 @@ PERL_CALLCONV I32 Perl_filter_read(pTHX_ int idx, SV *buf_sv, int maxlen) #define PERL_ARGS_ASSERT_FILTER_READ \ assert(buf_sv) +PERL_CALLCONV void Perl_finalize_optree(pTHX_ OP* o) + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_FINALIZE_OPTREE \ + assert(o) + PERL_CALLCONV CV* Perl_find_runcv(pTHX_ U32 *db_seqp) __attribute__warn_unused_result__; PERL_CALLCONV SV* Perl_find_rundefsv(pTHX); +PERL_CALLCONV SV* Perl_find_rundefsv2(pTHX_ CV *cv, U32 seq) + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_FIND_RUNDEFSV2 \ + assert(cv) + PERL_CALLCONV PADOFFSET Perl_find_rundefsvoffset(pTHX) __attribute__deprecated__; @@ -968,6 +1006,13 @@ PERL_CALLCONV I32 Perl_foldEQ(const char* a, const char* b, I32 len) #define PERL_ARGS_ASSERT_FOLDEQ \ assert(a); assert(b) +PERL_CALLCONV I32 Perl_foldEQ_latin1(const char* a, const char* b, I32 len) + __attribute__pure__ + __attribute__nonnull__(1) + __attribute__nonnull__(2); +#define PERL_ARGS_ASSERT_FOLDEQ_LATIN1 \ + assert(a); assert(b) + PERL_CALLCONV I32 Perl_foldEQ_locale(const char* a, const char* b, I32 len) __attribute__pure__ __attribute__nonnull__(1) @@ -975,10 +1020,14 @@ PERL_CALLCONV I32 Perl_foldEQ_locale(const char* a, const char* b, I32 len) #define PERL_ARGS_ASSERT_FOLDEQ_LOCALE \ assert(a); assert(b) -PERL_CALLCONV I32 Perl_foldEQ_utf8(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2) +/* PERL_CALLCONV I32 foldEQ_utf8(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2) + __attribute__nonnull__(pTHX_1) + __attribute__nonnull__(pTHX_5); */ + +PERL_CALLCONV I32 Perl_foldEQ_utf8_flags(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2, U32 flags) __attribute__nonnull__(pTHX_1) __attribute__nonnull__(pTHX_5); -#define PERL_ARGS_ASSERT_FOLDEQ_UTF8 \ +#define PERL_ARGS_ASSERT_FOLDEQ_UTF8_FLAGS \ assert(s1); assert(s2) PERL_CALLCONV char* Perl_form(pTHX_ const char* pat, ...) @@ -1063,18 +1112,6 @@ PERL_CALLCONV UV Perl_grok_bin(pTHX_ const char* start, STRLEN* len_p, I32* flag #define PERL_ARGS_ASSERT_GROK_BIN \ assert(start); assert(len_p); assert(flags) -PERL_CALLCONV char Perl_grok_bslash_c(pTHX_ const char source, const bool output_warning) - __attribute__warn_unused_result__; - -PERL_CALLCONV bool Perl_grok_bslash_o(pTHX_ const char* s, UV* uv, STRLEN* len, const char** error_msg, const bool output_warning) - __attribute__warn_unused_result__ - __attribute__nonnull__(pTHX_1) - __attribute__nonnull__(pTHX_2) - __attribute__nonnull__(pTHX_3) - __attribute__nonnull__(pTHX_4); -#define PERL_ARGS_ASSERT_GROK_BSLASH_O \ - assert(s); assert(uv); assert(len); assert(error_msg) - PERL_CALLCONV UV Perl_grok_hex(pTHX_ const char* start, STRLEN* len_p, I32* flags, NV *result) __attribute__nonnull__(pTHX_1) __attribute__nonnull__(pTHX_2) @@ -1219,12 +1256,24 @@ PERL_CALLCONV void Perl_gv_fullname4(pTHX_ SV* sv, const GV* gv, const char* pre PERL_CALLCONV CV* Perl_gv_handler(pTHX_ HV* stash, I32 id) __attribute__warn_unused_result__; -PERL_CALLCONV void Perl_gv_init(pTHX_ GV* gv, HV* stash, const char* name, STRLEN len, int multi) +PERL_CALLCONV void Perl_gv_init_pv(pTHX_ GV* gv, HV* stash, const char* name, int multi, U32 flags) + __attribute__nonnull__(pTHX_1) + __attribute__nonnull__(pTHX_3); +#define PERL_ARGS_ASSERT_GV_INIT_PV \ + assert(gv); assert(name) + +PERL_CALLCONV void Perl_gv_init_pvn(pTHX_ GV* gv, HV* stash, const char* name, STRLEN len, int multi, U32 flags) __attribute__nonnull__(pTHX_1) __attribute__nonnull__(pTHX_3); -#define PERL_ARGS_ASSERT_GV_INIT \ +#define PERL_ARGS_ASSERT_GV_INIT_PVN \ assert(gv); assert(name) +PERL_CALLCONV void Perl_gv_init_sv(pTHX_ GV* gv, HV* stash, SV* namesv, int multi, U32 flags) + __attribute__nonnull__(pTHX_1) + __attribute__nonnull__(pTHX_3); +#define PERL_ARGS_ASSERT_GV_INIT_SV \ + assert(gv); assert(namesv) + PERL_CALLCONV void Perl_gv_name_set(pTHX_ GV* gv, const char *name, U32 len, U32 flags) __attribute__nonnull__(pTHX_1) __attribute__nonnull__(pTHX_2); @@ -1297,13 +1346,13 @@ PERL_CALLCONV void Perl_hv_eiter_set(pTHX_ HV *hv, HE *eiter) #define PERL_ARGS_ASSERT_HV_EITER_SET \ assert(hv) -PERL_CALLCONV void Perl_hv_ename_add(pTHX_ HV *hv, const char *name, U32 len) +PERL_CALLCONV void Perl_hv_ename_add(pTHX_ HV *hv, const char *name, U32 len, U32 flags) __attribute__nonnull__(pTHX_1) __attribute__nonnull__(pTHX_2); #define PERL_ARGS_ASSERT_HV_ENAME_ADD \ assert(hv); assert(name) -PERL_CALLCONV void Perl_hv_ename_delete(pTHX_ HV *hv, const char *name, U32 len) +PERL_CALLCONV void Perl_hv_ename_delete(pTHX_ HV *hv, const char *name, U32 len, U32 flags) __attribute__nonnull__(pTHX_1) __attribute__nonnull__(pTHX_2); #define PERL_ARGS_ASSERT_HV_ENAME_DELETE \ @@ -1489,12 +1538,6 @@ PERL_CALLCONV bool Perl_is_ascii_string(const U8 *s, STRLEN len) #define PERL_ARGS_ASSERT_IS_ASCII_STRING \ assert(s) -PERL_CALLCONV bool Perl_is_gv_magical_sv(pTHX_ SV *const name_sv, U32 flags) - __attribute__warn_unused_result__ - __attribute__nonnull__(pTHX_1); -#define PERL_ARGS_ASSERT_IS_GV_MAGICAL_SV \ - assert(name_sv) - PERL_CALLCONV I32 Perl_is_lvalue_sub(pTHX) __attribute__warn_unused_result__; @@ -1790,6 +1833,18 @@ PERL_CALLCONV bool Perl_is_utf8_xdigit(pTHX_ const U8 *p) #define PERL_ARGS_ASSERT_IS_UTF8_XDIGIT \ assert(p) +PERL_CALLCONV bool Perl_is_utf8_xidcont(pTHX_ const U8 *p) + __attribute__warn_unused_result__ + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_IS_UTF8_XIDCONT \ + assert(p) + +PERL_CALLCONV bool Perl_is_utf8_xidfirst(pTHX_ const U8 *p) + __attribute__warn_unused_result__ + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_IS_UTF8_XIDFIRST \ + assert(p) + PERL_CALLCONV OP* Perl_jmaybe(pTHX_ OP *o) __attribute__nonnull__(pTHX_1); #define PERL_ARGS_ASSERT_JMAYBE \ @@ -2201,6 +2256,9 @@ PERL_CALLCONV int Perl_mg_copy(pTHX_ SV *sv, SV *nsv, const char *key, I32 klen) PERL_CALLCONV MAGIC* Perl_mg_find(pTHX_ const SV* sv, int type) __attribute__warn_unused_result__; +PERL_CALLCONV MAGIC* Perl_mg_findext(pTHX_ const SV* sv, int type, const MGVTBL *vtbl) + __attribute__warn_unused_result__; + PERL_CALLCONV int Perl_mg_free(pTHX_ SV* sv) __attribute__nonnull__(pTHX_1); #define PERL_ARGS_ASSERT_MG_FREE \ @@ -2341,13 +2399,6 @@ PERL_CALLCONV I32 Perl_my_fflush_all(pTHX); PERL_CALLCONV Pid_t Perl_my_fork(void); /* PERL_CALLCONV I32 Perl_my_lstat(pTHX); */ PERL_CALLCONV I32 Perl_my_lstat_flags(pTHX_ const U32 flags); -PERL_CALLCONV I32 Perl_my_pclose(pTHX_ PerlIO* ptr); -PERL_CALLCONV PerlIO* Perl_my_popen(pTHX_ const char* cmd, const char* mode) - __attribute__nonnull__(pTHX_1) - __attribute__nonnull__(pTHX_2); -#define PERL_ARGS_ASSERT_MY_POPEN \ - assert(cmd); assert(mode) - PERL_CALLCONV PerlIO* Perl_my_popen_list(pTHX_ const char* mode, int n, SV ** args) __attribute__nonnull__(pTHX_1) __attribute__nonnull__(pTHX_3); @@ -2732,7 +2783,8 @@ PERL_CALLCONV OP* Perl_op_linklist(pTHX_ OP *o) #define PERL_ARGS_ASSERT_OP_LINKLIST \ assert(o) -PERL_CALLCONV OP* Perl_op_lvalue(pTHX_ OP* o, I32 type); +/* PERL_CALLCONV OP* op_lvalue(pTHX_ OP* o, I32 type); */ +PERL_CALLCONV OP* Perl_op_lvalue_flags(pTHX_ OP* o, I32 type, U32 flags); PERL_CALLCONV void Perl_op_null(pTHX_ OP* o) __attribute__nonnull__(pTHX_1); #define PERL_ARGS_ASSERT_OP_NULL \ @@ -2766,14 +2818,24 @@ PERL_CALLCONV void Perl_packlist(pTHX_ SV *cat, const char *pat, const char *pat #define PERL_ARGS_ASSERT_PACKLIST \ assert(cat); assert(pat); assert(patend); assert(beglist); assert(endlist) -PERL_CALLCONV PADOFFSET Perl_pad_add_anon(pTHX_ SV* sv, OPCODE op_type) +PERL_CALLCONV PADOFFSET Perl_pad_add_anon(pTHX_ CV* func, I32 optype) __attribute__nonnull__(pTHX_1); #define PERL_ARGS_ASSERT_PAD_ADD_ANON \ - assert(sv) + assert(func) -PERL_CALLCONV PADOFFSET Perl_pad_add_name(pTHX_ const char *name, const STRLEN len, const U32 flags, HV *typestash, HV *ourstash) +PERL_CALLCONV PADOFFSET Perl_pad_add_name_pv(pTHX_ const char *name, const U32 flags, HV *typestash, HV *ourstash) __attribute__nonnull__(pTHX_1); -#define PERL_ARGS_ASSERT_PAD_ADD_NAME \ +#define PERL_ARGS_ASSERT_PAD_ADD_NAME_PV \ + assert(name) + +PERL_CALLCONV PADOFFSET Perl_pad_add_name_pvn(pTHX_ const char *namepv, STRLEN namelen, U32 flags, HV *typestash, HV *ourstash) + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_PAD_ADD_NAME_PVN \ + assert(namepv) + +PERL_CALLCONV PADOFFSET Perl_pad_add_name_sv(pTHX_ SV *name, U32 flags, HV *typestash, HV *ourstash) + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_PAD_ADD_NAME_SV \ assert(name) PERL_CALLCONV PADOFFSET Perl_pad_alloc(pTHX_ I32 optype, U32 tmptype); @@ -2781,10 +2843,22 @@ PERL_CALLCONV void Perl_pad_block_start(pTHX_ int full); PERL_CALLCONV HV* Perl_pad_compname_type(pTHX_ const PADOFFSET po) __attribute__warn_unused_result__; -PERL_CALLCONV PADOFFSET Perl_pad_findmy(pTHX_ const char* name, STRLEN len, U32 flags) +PERL_CALLCONV PADOFFSET Perl_pad_findmy_pv(pTHX_ const char* name, U32 flags) __attribute__warn_unused_result__ __attribute__nonnull__(pTHX_1); -#define PERL_ARGS_ASSERT_PAD_FINDMY \ +#define PERL_ARGS_ASSERT_PAD_FINDMY_PV \ + assert(name) + +PERL_CALLCONV PADOFFSET Perl_pad_findmy_pvn(pTHX_ const char* namepv, STRLEN namelen, U32 flags) + __attribute__warn_unused_result__ + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_PAD_FINDMY_PVN \ + assert(namepv) + +PERL_CALLCONV PADOFFSET Perl_pad_findmy_sv(pTHX_ SV* name, U32 flags) + __attribute__warn_unused_result__ + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_PAD_FINDMY_SV \ assert(name) PERL_CALLCONV void Perl_pad_fixup_inner_anons(pTHX_ PADLIST *padlist, CV *old_cv, CV *new_cv) @@ -2807,11 +2881,15 @@ PERL_CALLCONV void Perl_pad_push(pTHX_ PADLIST *padlist, int depth) PERL_CALLCONV void Perl_pad_swipe(pTHX_ PADOFFSET po, bool refadjust); PERL_CALLCONV void Perl_pad_tidy(pTHX_ padtidy_type type); +PERL_CALLCONV OP* Perl_parse_arithexpr(pTHX_ U32 flags); PERL_CALLCONV OP* Perl_parse_barestmt(pTHX_ U32 flags); PERL_CALLCONV OP* Perl_parse_block(pTHX_ U32 flags); +PERL_CALLCONV OP* Perl_parse_fullexpr(pTHX_ U32 flags); PERL_CALLCONV OP* Perl_parse_fullstmt(pTHX_ U32 flags); PERL_CALLCONV SV* Perl_parse_label(pTHX_ U32 flags); +PERL_CALLCONV OP* Perl_parse_listexpr(pTHX_ U32 flags); PERL_CALLCONV OP* Perl_parse_stmtseq(pTHX_ U32 flags); +PERL_CALLCONV OP* Perl_parse_termexpr(pTHX_ U32 flags); PERL_CALLCONV U32 Perl_parse_unicode_opts(pTHX_ const char **popt) __attribute__nonnull__(pTHX_1); #define PERL_ARGS_ASSERT_PARSE_UNICODE_OPTS \ @@ -2862,371 +2940,6 @@ PERL_CALLCONV void Perl_populate_isa(pTHX_ const char *name, STRLEN len, ...) #define PERL_ARGS_ASSERT_POPULATE_ISA \ assert(name) -PERL_CALLCONV OP * Perl_pp_aassign(pTHX); -PERL_CALLCONV OP * Perl_pp_abs(pTHX); -PERL_CALLCONV OP * Perl_pp_accept(pTHX); -PERL_CALLCONV OP * Perl_pp_add(pTHX); -PERL_CALLCONV OP * Perl_pp_aeach(pTHX); -PERL_CALLCONV OP * Perl_pp_aelem(pTHX); -PERL_CALLCONV OP * Perl_pp_aelemfast(pTHX); -PERL_CALLCONV OP * Perl_pp_akeys(pTHX); -PERL_CALLCONV OP * Perl_pp_alarm(pTHX); -PERL_CALLCONV OP * Perl_pp_and(pTHX); -PERL_CALLCONV OP * Perl_pp_andassign(pTHX); -PERL_CALLCONV OP * Perl_pp_anoncode(pTHX); -PERL_CALLCONV OP * Perl_pp_anonhash(pTHX); -PERL_CALLCONV OP * Perl_pp_anonlist(pTHX); -PERL_CALLCONV OP * Perl_pp_aslice(pTHX); -PERL_CALLCONV OP * Perl_pp_atan2(pTHX); -PERL_CALLCONV OP * Perl_pp_av2arylen(pTHX); -PERL_CALLCONV OP * Perl_pp_avalues(pTHX); -PERL_CALLCONV OP * Perl_pp_backtick(pTHX); -PERL_CALLCONV OP * Perl_pp_bind(pTHX); -PERL_CALLCONV OP * Perl_pp_binmode(pTHX); -PERL_CALLCONV OP * Perl_pp_bit_and(pTHX); -PERL_CALLCONV OP * Perl_pp_bit_or(pTHX); -PERL_CALLCONV OP * Perl_pp_bit_xor(pTHX); -PERL_CALLCONV OP * Perl_pp_bless(pTHX); -PERL_CALLCONV OP * Perl_pp_boolkeys(pTHX); -PERL_CALLCONV OP * Perl_pp_break(pTHX); -PERL_CALLCONV OP * Perl_pp_caller(pTHX); -PERL_CALLCONV OP * Perl_pp_chdir(pTHX); -PERL_CALLCONV OP * Perl_pp_chmod(pTHX); -PERL_CALLCONV OP * Perl_pp_chomp(pTHX); -PERL_CALLCONV OP * Perl_pp_chop(pTHX); -PERL_CALLCONV OP * Perl_pp_chown(pTHX); -PERL_CALLCONV OP * Perl_pp_chr(pTHX); -PERL_CALLCONV OP * Perl_pp_chroot(pTHX); -PERL_CALLCONV OP * Perl_pp_close(pTHX); -PERL_CALLCONV OP * Perl_pp_closedir(pTHX); -PERL_CALLCONV OP * Perl_pp_complement(pTHX); -PERL_CALLCONV OP * Perl_pp_concat(pTHX); -PERL_CALLCONV OP * Perl_pp_cond_expr(pTHX); -PERL_CALLCONV OP * Perl_pp_connect(pTHX); -PERL_CALLCONV OP * Perl_pp_const(pTHX); -PERL_CALLCONV OP * Perl_pp_continue(pTHX); -PERL_CALLCONV OP * Perl_pp_cos(pTHX); -PERL_CALLCONV OP * Perl_pp_crypt(pTHX); -PERL_CALLCONV OP * Perl_pp_dbmclose(pTHX); -PERL_CALLCONV OP * Perl_pp_dbmopen(pTHX); -PERL_CALLCONV OP * Perl_pp_dbstate(pTHX); -PERL_CALLCONV OP * Perl_pp_defined(pTHX); -PERL_CALLCONV OP * Perl_pp_delete(pTHX); -PERL_CALLCONV OP * Perl_pp_die(pTHX); -PERL_CALLCONV OP * Perl_pp_divide(pTHX); -PERL_CALLCONV OP * Perl_pp_dofile(pTHX); -PERL_CALLCONV OP * Perl_pp_dor(pTHX); -PERL_CALLCONV OP * Perl_pp_dorassign(pTHX); -PERL_CALLCONV OP * Perl_pp_dump(pTHX); -PERL_CALLCONV OP * Perl_pp_each(pTHX); -PERL_CALLCONV OP * Perl_pp_egrent(pTHX); -PERL_CALLCONV OP * Perl_pp_ehostent(pTHX); -PERL_CALLCONV OP * Perl_pp_enetent(pTHX); -PERL_CALLCONV OP * Perl_pp_enter(pTHX); -PERL_CALLCONV OP * Perl_pp_entereval(pTHX); -PERL_CALLCONV OP * Perl_pp_entergiven(pTHX); -PERL_CALLCONV OP * Perl_pp_enteriter(pTHX); -PERL_CALLCONV OP * Perl_pp_enterloop(pTHX); -PERL_CALLCONV OP * Perl_pp_entersub(pTHX); -PERL_CALLCONV OP * Perl_pp_entertry(pTHX); -PERL_CALLCONV OP * Perl_pp_enterwhen(pTHX); -PERL_CALLCONV OP * Perl_pp_enterwrite(pTHX); -PERL_CALLCONV OP * Perl_pp_eof(pTHX); -PERL_CALLCONV OP * Perl_pp_eprotoent(pTHX); -PERL_CALLCONV OP * Perl_pp_epwent(pTHX); -PERL_CALLCONV OP * Perl_pp_eq(pTHX); -PERL_CALLCONV OP * Perl_pp_eservent(pTHX); -PERL_CALLCONV OP * Perl_pp_exec(pTHX); -PERL_CALLCONV OP * Perl_pp_exists(pTHX); -PERL_CALLCONV OP * Perl_pp_exit(pTHX); -PERL_CALLCONV OP * Perl_pp_exp(pTHX); -PERL_CALLCONV OP * Perl_pp_fcntl(pTHX); -PERL_CALLCONV OP * Perl_pp_fileno(pTHX); -PERL_CALLCONV OP * Perl_pp_flip(pTHX); -PERL_CALLCONV OP * Perl_pp_flock(pTHX); -PERL_CALLCONV OP * Perl_pp_flop(pTHX); -PERL_CALLCONV OP * Perl_pp_fork(pTHX); -PERL_CALLCONV OP * Perl_pp_formline(pTHX); -PERL_CALLCONV OP * Perl_pp_ftatime(pTHX); -PERL_CALLCONV OP * Perl_pp_ftbinary(pTHX); -PERL_CALLCONV OP * Perl_pp_ftblk(pTHX); -PERL_CALLCONV OP * Perl_pp_ftchr(pTHX); -PERL_CALLCONV OP * Perl_pp_ftctime(pTHX); -PERL_CALLCONV OP * Perl_pp_ftdir(pTHX); -PERL_CALLCONV OP * Perl_pp_fteexec(pTHX); -PERL_CALLCONV OP * Perl_pp_fteowned(pTHX); -PERL_CALLCONV OP * Perl_pp_fteread(pTHX); -PERL_CALLCONV OP * Perl_pp_ftewrite(pTHX); -PERL_CALLCONV OP * Perl_pp_ftfile(pTHX); -PERL_CALLCONV OP * Perl_pp_ftis(pTHX); -PERL_CALLCONV OP * Perl_pp_ftlink(pTHX); -PERL_CALLCONV OP * Perl_pp_ftmtime(pTHX); -PERL_CALLCONV OP * Perl_pp_ftpipe(pTHX); -PERL_CALLCONV OP * Perl_pp_ftrexec(pTHX); -PERL_CALLCONV OP * Perl_pp_ftrowned(pTHX); -PERL_CALLCONV OP * Perl_pp_ftrread(pTHX); -PERL_CALLCONV OP * Perl_pp_ftrwrite(pTHX); -PERL_CALLCONV OP * Perl_pp_ftsgid(pTHX); -PERL_CALLCONV OP * Perl_pp_ftsize(pTHX); -PERL_CALLCONV OP * Perl_pp_ftsock(pTHX); -PERL_CALLCONV OP * Perl_pp_ftsuid(pTHX); -PERL_CALLCONV OP * Perl_pp_ftsvtx(pTHX); -PERL_CALLCONV OP * Perl_pp_fttext(pTHX); -PERL_CALLCONV OP * Perl_pp_fttty(pTHX); -PERL_CALLCONV OP * Perl_pp_ftzero(pTHX); -PERL_CALLCONV OP * Perl_pp_ge(pTHX); -PERL_CALLCONV OP * Perl_pp_gelem(pTHX); -PERL_CALLCONV OP * Perl_pp_getc(pTHX); -PERL_CALLCONV OP * Perl_pp_getlogin(pTHX); -PERL_CALLCONV OP * Perl_pp_getpeername(pTHX); -PERL_CALLCONV OP * Perl_pp_getpgrp(pTHX); -PERL_CALLCONV OP * Perl_pp_getppid(pTHX); -PERL_CALLCONV OP * Perl_pp_getpriority(pTHX); -PERL_CALLCONV OP * Perl_pp_getsockname(pTHX); -PERL_CALLCONV OP * Perl_pp_ggrent(pTHX); -PERL_CALLCONV OP * Perl_pp_ggrgid(pTHX); -PERL_CALLCONV OP * Perl_pp_ggrnam(pTHX); -PERL_CALLCONV OP * Perl_pp_ghbyaddr(pTHX); -PERL_CALLCONV OP * Perl_pp_ghbyname(pTHX); -PERL_CALLCONV OP * Perl_pp_ghostent(pTHX); -PERL_CALLCONV OP * Perl_pp_glob(pTHX); -PERL_CALLCONV OP * Perl_pp_gmtime(pTHX); -PERL_CALLCONV OP * Perl_pp_gnbyaddr(pTHX); -PERL_CALLCONV OP * Perl_pp_gnbyname(pTHX); -PERL_CALLCONV OP * Perl_pp_gnetent(pTHX); -PERL_CALLCONV OP * Perl_pp_goto(pTHX); -PERL_CALLCONV OP * Perl_pp_gpbyname(pTHX); -PERL_CALLCONV OP * Perl_pp_gpbynumber(pTHX); -PERL_CALLCONV OP * Perl_pp_gprotoent(pTHX); -PERL_CALLCONV OP * Perl_pp_gpwent(pTHX); -PERL_CALLCONV OP * Perl_pp_gpwnam(pTHX); -PERL_CALLCONV OP * Perl_pp_gpwuid(pTHX); -PERL_CALLCONV OP * Perl_pp_grepstart(pTHX); -PERL_CALLCONV OP * Perl_pp_grepwhile(pTHX); -PERL_CALLCONV OP * Perl_pp_gsbyname(pTHX); -PERL_CALLCONV OP * Perl_pp_gsbyport(pTHX); -PERL_CALLCONV OP * Perl_pp_gservent(pTHX); -PERL_CALLCONV OP * Perl_pp_gsockopt(pTHX); -PERL_CALLCONV OP * Perl_pp_gt(pTHX); -PERL_CALLCONV OP * Perl_pp_gv(pTHX); -PERL_CALLCONV OP * Perl_pp_gvsv(pTHX); -PERL_CALLCONV OP * Perl_pp_helem(pTHX); -PERL_CALLCONV OP * Perl_pp_hex(pTHX); -PERL_CALLCONV OP * Perl_pp_hintseval(pTHX); -PERL_CALLCONV OP * Perl_pp_hslice(pTHX); -PERL_CALLCONV OP * Perl_pp_i_add(pTHX); -PERL_CALLCONV OP * Perl_pp_i_divide(pTHX); -PERL_CALLCONV OP * Perl_pp_i_eq(pTHX); -PERL_CALLCONV OP * Perl_pp_i_ge(pTHX); -PERL_CALLCONV OP * Perl_pp_i_gt(pTHX); -PERL_CALLCONV OP * Perl_pp_i_le(pTHX); -PERL_CALLCONV OP * Perl_pp_i_lt(pTHX); -PERL_CALLCONV OP * Perl_pp_i_modulo(pTHX); -PERL_CALLCONV OP * Perl_pp_i_multiply(pTHX); -PERL_CALLCONV OP * Perl_pp_i_ncmp(pTHX); -PERL_CALLCONV OP * Perl_pp_i_ne(pTHX); -PERL_CALLCONV OP * Perl_pp_i_negate(pTHX); -PERL_CALLCONV OP * Perl_pp_i_subtract(pTHX); -PERL_CALLCONV OP * Perl_pp_index(pTHX); -PERL_CALLCONV OP * Perl_pp_int(pTHX); -PERL_CALLCONV OP * Perl_pp_ioctl(pTHX); -PERL_CALLCONV OP * Perl_pp_iter(pTHX); -PERL_CALLCONV OP * Perl_pp_join(pTHX); -PERL_CALLCONV OP * Perl_pp_keys(pTHX); -PERL_CALLCONV OP * Perl_pp_kill(pTHX); -PERL_CALLCONV OP * Perl_pp_last(pTHX); -PERL_CALLCONV OP * Perl_pp_lc(pTHX); -PERL_CALLCONV OP * Perl_pp_lcfirst(pTHX); -PERL_CALLCONV OP * Perl_pp_le(pTHX); -PERL_CALLCONV OP * Perl_pp_leave(pTHX); -PERL_CALLCONV OP * Perl_pp_leaveeval(pTHX); -PERL_CALLCONV OP * Perl_pp_leavegiven(pTHX); -PERL_CALLCONV OP * Perl_pp_leaveloop(pTHX); -PERL_CALLCONV OP * Perl_pp_leavesub(pTHX); -PERL_CALLCONV OP * Perl_pp_leavesublv(pTHX); -PERL_CALLCONV OP * Perl_pp_leavetry(pTHX); -PERL_CALLCONV OP * Perl_pp_leavewhen(pTHX); -PERL_CALLCONV OP * Perl_pp_leavewrite(pTHX); -PERL_CALLCONV OP * Perl_pp_left_shift(pTHX); -PERL_CALLCONV OP * Perl_pp_length(pTHX); -PERL_CALLCONV OP * Perl_pp_lineseq(pTHX); -PERL_CALLCONV OP * Perl_pp_link(pTHX); -PERL_CALLCONV OP * Perl_pp_list(pTHX); -PERL_CALLCONV OP * Perl_pp_listen(pTHX); -PERL_CALLCONV OP * Perl_pp_localtime(pTHX); -PERL_CALLCONV OP * Perl_pp_lock(pTHX); -PERL_CALLCONV OP * Perl_pp_log(pTHX); -PERL_CALLCONV OP * Perl_pp_lslice(pTHX); -PERL_CALLCONV OP * Perl_pp_lstat(pTHX); -PERL_CALLCONV OP * Perl_pp_lt(pTHX); -PERL_CALLCONV OP * Perl_pp_mapstart(pTHX); -PERL_CALLCONV OP * Perl_pp_mapwhile(pTHX); -PERL_CALLCONV OP * Perl_pp_match(pTHX); -PERL_CALLCONV OP * Perl_pp_method(pTHX); -PERL_CALLCONV OP * Perl_pp_method_named(pTHX); -PERL_CALLCONV OP * Perl_pp_mkdir(pTHX); -PERL_CALLCONV OP * Perl_pp_modulo(pTHX); -PERL_CALLCONV OP * Perl_pp_msgctl(pTHX); -PERL_CALLCONV OP * Perl_pp_msgget(pTHX); -PERL_CALLCONV OP * Perl_pp_msgrcv(pTHX); -PERL_CALLCONV OP * Perl_pp_msgsnd(pTHX); -PERL_CALLCONV OP * Perl_pp_multiply(pTHX); -PERL_CALLCONV OP * Perl_pp_ncmp(pTHX); -PERL_CALLCONV OP * Perl_pp_ne(pTHX); -PERL_CALLCONV OP * Perl_pp_negate(pTHX); -PERL_CALLCONV OP * Perl_pp_next(pTHX); -PERL_CALLCONV OP * Perl_pp_nextstate(pTHX); -PERL_CALLCONV OP * Perl_pp_not(pTHX); -PERL_CALLCONV OP * Perl_pp_null(pTHX); -PERL_CALLCONV OP * Perl_pp_oct(pTHX); -PERL_CALLCONV OP * Perl_pp_once(pTHX); -PERL_CALLCONV OP * Perl_pp_open(pTHX); -PERL_CALLCONV OP * Perl_pp_open_dir(pTHX); -PERL_CALLCONV OP * Perl_pp_or(pTHX); -PERL_CALLCONV OP * Perl_pp_orassign(pTHX); -PERL_CALLCONV OP * Perl_pp_ord(pTHX); -PERL_CALLCONV OP * Perl_pp_pack(pTHX); -PERL_CALLCONV OP * Perl_pp_padany(pTHX); -PERL_CALLCONV OP * Perl_pp_padav(pTHX); -PERL_CALLCONV OP * Perl_pp_padhv(pTHX); -PERL_CALLCONV OP * Perl_pp_padsv(pTHX); -PERL_CALLCONV OP * Perl_pp_pipe_op(pTHX); -PERL_CALLCONV OP * Perl_pp_pop(pTHX); -PERL_CALLCONV OP * Perl_pp_pos(pTHX); -PERL_CALLCONV OP * Perl_pp_postdec(pTHX); -PERL_CALLCONV OP * Perl_pp_postinc(pTHX); -PERL_CALLCONV OP * Perl_pp_pow(pTHX); -PERL_CALLCONV OP * Perl_pp_predec(pTHX); -PERL_CALLCONV OP * Perl_pp_preinc(pTHX); -PERL_CALLCONV OP * Perl_pp_print(pTHX); -PERL_CALLCONV OP * Perl_pp_prototype(pTHX); -PERL_CALLCONV OP * Perl_pp_prtf(pTHX); -PERL_CALLCONV OP * Perl_pp_push(pTHX); -PERL_CALLCONV OP * Perl_pp_pushmark(pTHX); -PERL_CALLCONV OP * Perl_pp_pushre(pTHX); -PERL_CALLCONV OP * Perl_pp_qr(pTHX); -PERL_CALLCONV OP * Perl_pp_quotemeta(pTHX); -PERL_CALLCONV OP * Perl_pp_rand(pTHX); -PERL_CALLCONV OP * Perl_pp_range(pTHX); -PERL_CALLCONV OP * Perl_pp_rcatline(pTHX); -PERL_CALLCONV OP * Perl_pp_reach(pTHX); -PERL_CALLCONV OP * Perl_pp_read(pTHX); -PERL_CALLCONV OP * Perl_pp_readdir(pTHX); -PERL_CALLCONV OP * Perl_pp_readline(pTHX); -PERL_CALLCONV OP * Perl_pp_readlink(pTHX); -PERL_CALLCONV OP * Perl_pp_recv(pTHX); -PERL_CALLCONV OP * Perl_pp_redo(pTHX); -PERL_CALLCONV OP * Perl_pp_ref(pTHX); -PERL_CALLCONV OP * Perl_pp_refgen(pTHX); -PERL_CALLCONV OP * Perl_pp_regcmaybe(pTHX); -PERL_CALLCONV OP * Perl_pp_regcomp(pTHX); -PERL_CALLCONV OP * Perl_pp_regcreset(pTHX); -PERL_CALLCONV OP * Perl_pp_rename(pTHX); -PERL_CALLCONV OP * Perl_pp_repeat(pTHX); -PERL_CALLCONV OP * Perl_pp_require(pTHX); -PERL_CALLCONV OP * Perl_pp_reset(pTHX); -PERL_CALLCONV OP * Perl_pp_return(pTHX); -PERL_CALLCONV OP * Perl_pp_reverse(pTHX); -PERL_CALLCONV OP * Perl_pp_rewinddir(pTHX); -PERL_CALLCONV OP * Perl_pp_right_shift(pTHX); -PERL_CALLCONV OP * Perl_pp_rindex(pTHX); -PERL_CALLCONV OP * Perl_pp_rkeys(pTHX); -PERL_CALLCONV OP * Perl_pp_rmdir(pTHX); -PERL_CALLCONV OP * Perl_pp_rv2av(pTHX); -PERL_CALLCONV OP * Perl_pp_rv2cv(pTHX); -PERL_CALLCONV OP * Perl_pp_rv2gv(pTHX); -PERL_CALLCONV OP * Perl_pp_rv2hv(pTHX); -PERL_CALLCONV OP * Perl_pp_rv2sv(pTHX); -PERL_CALLCONV OP * Perl_pp_rvalues(pTHX); -PERL_CALLCONV OP * Perl_pp_sassign(pTHX); -PERL_CALLCONV OP * Perl_pp_say(pTHX); -PERL_CALLCONV OP * Perl_pp_scalar(pTHX); -PERL_CALLCONV OP * Perl_pp_schomp(pTHX); -PERL_CALLCONV OP * Perl_pp_schop(pTHX); -PERL_CALLCONV OP * Perl_pp_scmp(pTHX); -PERL_CALLCONV OP * Perl_pp_scope(pTHX); -PERL_CALLCONV OP * Perl_pp_seek(pTHX); -PERL_CALLCONV OP * Perl_pp_seekdir(pTHX); -PERL_CALLCONV OP * Perl_pp_select(pTHX); -PERL_CALLCONV OP * Perl_pp_semctl(pTHX); -PERL_CALLCONV OP * Perl_pp_semget(pTHX); -PERL_CALLCONV OP * Perl_pp_semop(pTHX); -PERL_CALLCONV OP * Perl_pp_send(pTHX); -PERL_CALLCONV OP * Perl_pp_seq(pTHX); -PERL_CALLCONV OP * Perl_pp_setpgrp(pTHX); -PERL_CALLCONV OP * Perl_pp_setpriority(pTHX); -PERL_CALLCONV OP * Perl_pp_sge(pTHX); -PERL_CALLCONV OP * Perl_pp_sgrent(pTHX); -PERL_CALLCONV OP * Perl_pp_sgt(pTHX); -PERL_CALLCONV OP * Perl_pp_shift(pTHX); -PERL_CALLCONV OP * Perl_pp_shmctl(pTHX); -PERL_CALLCONV OP * Perl_pp_shmget(pTHX); -PERL_CALLCONV OP * Perl_pp_shmread(pTHX); -PERL_CALLCONV OP * Perl_pp_shmwrite(pTHX); -PERL_CALLCONV OP * Perl_pp_shostent(pTHX); -PERL_CALLCONV OP * Perl_pp_shutdown(pTHX); -PERL_CALLCONV OP * Perl_pp_sin(pTHX); -PERL_CALLCONV OP * Perl_pp_sle(pTHX); -PERL_CALLCONV OP * Perl_pp_sleep(pTHX); -PERL_CALLCONV OP * Perl_pp_slt(pTHX); -PERL_CALLCONV OP * Perl_pp_smartmatch(pTHX); -PERL_CALLCONV OP * Perl_pp_sne(pTHX); -PERL_CALLCONV OP * Perl_pp_snetent(pTHX); -PERL_CALLCONV OP * Perl_pp_socket(pTHX); -PERL_CALLCONV OP * Perl_pp_sockpair(pTHX); -PERL_CALLCONV OP * Perl_pp_sort(pTHX); -PERL_CALLCONV OP * Perl_pp_splice(pTHX); -PERL_CALLCONV OP * Perl_pp_split(pTHX); -PERL_CALLCONV OP * Perl_pp_sprintf(pTHX); -PERL_CALLCONV OP * Perl_pp_sprotoent(pTHX); -PERL_CALLCONV OP * Perl_pp_spwent(pTHX); -PERL_CALLCONV OP * Perl_pp_sqrt(pTHX); -PERL_CALLCONV OP * Perl_pp_srand(pTHX); -PERL_CALLCONV OP * Perl_pp_srefgen(pTHX); -PERL_CALLCONV OP * Perl_pp_sselect(pTHX); -PERL_CALLCONV OP * Perl_pp_sservent(pTHX); -PERL_CALLCONV OP * Perl_pp_ssockopt(pTHX); -PERL_CALLCONV OP * Perl_pp_stat(pTHX); -PERL_CALLCONV OP * Perl_pp_stringify(pTHX); -PERL_CALLCONV OP * Perl_pp_stub(pTHX); -PERL_CALLCONV OP * Perl_pp_study(pTHX); -PERL_CALLCONV OP * Perl_pp_subst(pTHX); -PERL_CALLCONV OP * Perl_pp_substcont(pTHX); -PERL_CALLCONV OP * Perl_pp_substr(pTHX); -PERL_CALLCONV OP * Perl_pp_subtract(pTHX); -PERL_CALLCONV OP * Perl_pp_symlink(pTHX); -PERL_CALLCONV OP * Perl_pp_syscall(pTHX); -PERL_CALLCONV OP * Perl_pp_sysopen(pTHX); -PERL_CALLCONV OP * Perl_pp_sysread(pTHX); -PERL_CALLCONV OP * Perl_pp_sysseek(pTHX); -PERL_CALLCONV OP * Perl_pp_system(pTHX); -PERL_CALLCONV OP * Perl_pp_syswrite(pTHX); -PERL_CALLCONV OP * Perl_pp_tell(pTHX); -PERL_CALLCONV OP * Perl_pp_telldir(pTHX); -PERL_CALLCONV OP * Perl_pp_tie(pTHX); -PERL_CALLCONV OP * Perl_pp_tied(pTHX); -PERL_CALLCONV OP * Perl_pp_time(pTHX); -PERL_CALLCONV OP * Perl_pp_tms(pTHX); -PERL_CALLCONV OP * Perl_pp_trans(pTHX); -PERL_CALLCONV OP * Perl_pp_transr(pTHX); -PERL_CALLCONV OP * Perl_pp_truncate(pTHX); -PERL_CALLCONV OP * Perl_pp_uc(pTHX); -PERL_CALLCONV OP * Perl_pp_ucfirst(pTHX); -PERL_CALLCONV OP * Perl_pp_umask(pTHX); -PERL_CALLCONV OP * Perl_pp_undef(pTHX); -PERL_CALLCONV OP * Perl_pp_unlink(pTHX); -PERL_CALLCONV OP * Perl_pp_unpack(pTHX); -PERL_CALLCONV OP * Perl_pp_unshift(pTHX); -PERL_CALLCONV OP * Perl_pp_unstack(pTHX); -PERL_CALLCONV OP * Perl_pp_untie(pTHX); -PERL_CALLCONV OP * Perl_pp_utime(pTHX); -PERL_CALLCONV OP * Perl_pp_values(pTHX); -PERL_CALLCONV OP * Perl_pp_vec(pTHX); -PERL_CALLCONV OP * Perl_pp_wait(pTHX); -PERL_CALLCONV OP * Perl_pp_waitpid(pTHX); -PERL_CALLCONV OP * Perl_pp_wantarray(pTHX); -PERL_CALLCONV OP * Perl_pp_warn(pTHX); -PERL_CALLCONV OP * Perl_pp_xor(pTHX); PERL_CALLCONV REGEXP* Perl_pregcomp(pTHX_ SV * const pattern, const U32 flags) __attribute__nonnull__(pTHX_1); #define PERL_ARGS_ASSERT_PREGCOMP \ @@ -3475,8 +3188,9 @@ PERL_CALLCONV void Perl_repeatcpy(char* to, const char* from, I32 len, I32 count #define PERL_ARGS_ASSERT_REPEATCPY \ assert(to); assert(from) -PERL_CALLCONV void Perl_report_evil_fh(pTHX_ const GV *gv, const IO *io, I32 op); +PERL_CALLCONV void Perl_report_evil_fh(pTHX_ const GV *gv); PERL_CALLCONV void Perl_report_uninit(pTHX_ const SV *uninit_sv); +PERL_CALLCONV void Perl_report_wrongway_fh(pTHX_ const GV *gv, const char have); PERL_CALLCONV void Perl_require_pv(pTHX_ const char* pv) __attribute__nonnull__(pTHX_1); #define PERL_ARGS_ASSERT_REQUIRE_PV \ @@ -3843,12 +3557,6 @@ PERL_CALLCONV bool Perl_stashpv_hvname_match(pTHX_ const COP *c, const HV *hv) #define PERL_ARGS_ASSERT_STASHPV_HVNAME_MATCH \ assert(c); assert(hv) -PERL_CALLCONV void Perl_store_cop_label(pTHX_ COP *const cop, const char *label, STRLEN len, U32 flags) - __attribute__nonnull__(pTHX_1) - __attribute__nonnull__(pTHX_2); -#define PERL_ARGS_ASSERT_STORE_COP_LABEL \ - assert(cop); assert(label) - PERL_CALLCONV NV Perl_str_to_version(pTHX_ SV *sv) __attribute__warn_unused_result__ __attribute__nonnull__(pTHX_1); @@ -4020,6 +3728,7 @@ PERL_CALLCONV I32 Perl_sv_cmp_flags(pTHX_ SV *const sv1, SV *const sv2, const U3 PERL_CALLCONV I32 Perl_sv_cmp_locale(pTHX_ SV *const sv1, SV *const sv2); PERL_CALLCONV I32 Perl_sv_cmp_locale_flags(pTHX_ SV *const sv1, SV *const sv2, const U32 flags); PERL_CALLCONV OP* Perl_sv_compile_2op(pTHX_ SV *sv, OP **startop, const char *code, PAD **padp) + __attribute__deprecated__ __attribute__nonnull__(pTHX_1) __attribute__nonnull__(pTHX_2) __attribute__nonnull__(pTHX_3) @@ -4027,6 +3736,14 @@ PERL_CALLCONV OP* Perl_sv_compile_2op(pTHX_ SV *sv, OP **startop, const char *co #define PERL_ARGS_ASSERT_SV_COMPILE_2OP \ assert(sv); assert(startop); assert(code); assert(padp) +PERL_CALLCONV OP* Perl_sv_compile_2op_is_broken(pTHX_ SV *sv, OP **startop, const char *code, PAD **padp) + __attribute__nonnull__(pTHX_1) + __attribute__nonnull__(pTHX_2) + __attribute__nonnull__(pTHX_3) + __attribute__nonnull__(pTHX_4); +#define PERL_ARGS_ASSERT_SV_COMPILE_2OP_IS_BROKEN \ + assert(sv); assert(startop); assert(code); assert(padp) + PERL_CALLCONV void Perl_sv_copypv(pTHX_ SV *const dsv, SV *const ssv) __attribute__nonnull__(pTHX_1) __attribute__nonnull__(pTHX_2); @@ -4389,6 +4106,11 @@ PERL_CALLCONV int Perl_sv_unmagic(pTHX_ SV *const sv, const int type) #define PERL_ARGS_ASSERT_SV_UNMAGIC \ assert(sv) +PERL_CALLCONV int Perl_sv_unmagicext(pTHX_ SV *const sv, const int type, MGVTBL *vtbl) + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_SV_UNMAGICEXT \ + assert(sv) + /* PERL_CALLCONV void Perl_sv_unref(pTHX_ SV* sv) __attribute__nonnull__(pTHX_1); */ #define PERL_ARGS_ASSERT_SV_UNREF \ @@ -4529,12 +4251,18 @@ PERL_CALLCONV void Perl_taint_proper(pTHX_ const char* f, const char *const s) #define PERL_ARGS_ASSERT_TAINT_PROPER \ assert(s) +PERL_CALLCONV OP * Perl_tied_method(pTHX_ const char *const methname, SV **sp, SV *const sv, const MAGIC *const mg, const U32 flags, U32 argc, ...) + __attribute__nonnull__(pTHX_1) + __attribute__nonnull__(pTHX_2) + __attribute__nonnull__(pTHX_3) + __attribute__nonnull__(pTHX_4); +#define PERL_ARGS_ASSERT_TIED_METHOD \ + assert(methname); assert(sp); assert(sv); assert(mg) + PERL_CALLCONV void Perl_tmps_grow(pTHX_ I32 n); -PERL_CALLCONV UV Perl_to_uni_fold(pTHX_ UV c, U8 *p, STRLEN *lenp) +/* PERL_CALLCONV UV Perl_to_uni_fold(pTHX_ UV c, U8 *p, STRLEN *lenp) __attribute__nonnull__(pTHX_2) - __attribute__nonnull__(pTHX_3); -#define PERL_ARGS_ASSERT_TO_UNI_FOLD \ - assert(p); assert(lenp) + __attribute__nonnull__(pTHX_3); */ PERL_CALLCONV UV Perl_to_uni_lower(pTHX_ UV c, U8 *p, STRLEN *lenp) __attribute__nonnull__(pTHX_2) @@ -4570,16 +4298,13 @@ PERL_CALLCONV UV Perl_to_utf8_case(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp, S __attribute__nonnull__(pTHX_1) __attribute__nonnull__(pTHX_2) __attribute__nonnull__(pTHX_4) - __attribute__nonnull__(pTHX_5) - __attribute__nonnull__(pTHX_6); + __attribute__nonnull__(pTHX_5); #define PERL_ARGS_ASSERT_TO_UTF8_CASE \ - assert(p); assert(ustrp); assert(swashp); assert(normal); assert(special) + assert(p); assert(ustrp); assert(swashp); assert(normal) -PERL_CALLCONV UV Perl_to_utf8_fold(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp) +/* PERL_CALLCONV UV Perl_to_utf8_fold(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp) __attribute__nonnull__(pTHX_1) - __attribute__nonnull__(pTHX_2); -#define PERL_ARGS_ASSERT_TO_UTF8_FOLD \ - assert(p); assert(ustrp) + __attribute__nonnull__(pTHX_2); */ PERL_CALLCONV UV Perl_to_utf8_lower(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp) __attribute__nonnull__(pTHX_1) @@ -4721,7 +4446,8 @@ PERL_CALLCONV void Perl_vivify_defelem(pTHX_ SV* sv) #define PERL_ARGS_ASSERT_VIVIFY_DEFELEM \ assert(sv) -PERL_CALLCONV void Perl_vivify_ref(pTHX_ SV* sv, U32 to_what) +PERL_CALLCONV SV* Perl_vivify_ref(pTHX_ SV* sv, U32 to_what) + __attribute__warn_unused_result__ __attribute__nonnull__(pTHX_1); #define PERL_ARGS_ASSERT_VIVIFY_REF \ assert(sv) @@ -4795,6 +4521,9 @@ PERL_CALLCONV void Perl_warner(pTHX_ U32 err, const char* pat, ...) #define PERL_ARGS_ASSERT_WARNER \ assert(pat) +PERL_CALLCONV I32 Perl_was_lvalue_sub(pTHX) + __attribute__warn_unused_result__; + PERL_CALLCONV void Perl_watch(pTHX_ char** addr) __attribute__nonnull__(pTHX_1); #define PERL_ARGS_ASSERT_WATCH \ @@ -4987,6 +4716,26 @@ STATIC PerlIO * S_doopen_pm(pTHX_ SV *name) # endif #endif +#if !defined(PERL_IMPLICIT_SYS) +PERL_CALLCONV I32 Perl_my_pclose(pTHX_ PerlIO* ptr); +PERL_CALLCONV PerlIO* Perl_my_popen(pTHX_ const char* cmd, const char* mode) + __attribute__nonnull__(pTHX_1) + __attribute__nonnull__(pTHX_2); +#define PERL_ARGS_ASSERT_MY_POPEN \ + assert(cmd); assert(mode) + +#endif +#if !defined(PERL_IS_MINIPERL) +# if defined(PERL_IN_PERL_C) +STATIC SV * S_incpush_if_exists(pTHX_ AV *const av, SV *dir, SV *const stem) + __attribute__nonnull__(pTHX_1) + __attribute__nonnull__(pTHX_2) + __attribute__nonnull__(pTHX_3); +#define PERL_ARGS_ASSERT_INCPUSH_IF_EXISTS \ + assert(av); assert(dir); assert(stem) + +# endif +#endif #if !defined(PERL_NO_UTF16_FILTER) # if defined(PERL_IN_TOKE_C) STATIC U8* S_add_utf16_textfilter(pTHX_ U8 *const s, bool reversed) @@ -5294,8 +5043,6 @@ PERL_CALLCONV void Perl_pending_Slabs_to_ro(pTHX); #if defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION) /* PERL_CALLCONV bool Perl_do_exec(pTHX_ const char* cmd) __attribute__nonnull__(pTHX_1); */ -#define PERL_ARGS_ASSERT_DO_EXEC \ - assert(cmd) #endif #if defined(PERL_DONT_CREATE_GVSV) @@ -5508,6 +5255,27 @@ STATIC I32 S_do_trans_simple_utf8(pTHX_ SV * const sv) assert(sv) #endif +#if defined(PERL_IN_DQUOTE_STATIC_C) +STATIC char S_grok_bslash_c(pTHX_ const char source, const bool utf8, const bool output_warning) + __attribute__warn_unused_result__; + +STATIC bool S_grok_bslash_o(pTHX_ const char* s, UV* uv, STRLEN* len, const char** error_msg, const bool output_warning) + __attribute__warn_unused_result__ + __attribute__nonnull__(pTHX_1) + __attribute__nonnull__(pTHX_2) + __attribute__nonnull__(pTHX_3) + __attribute__nonnull__(pTHX_4); +#define PERL_ARGS_ASSERT_GROK_BSLASH_O \ + assert(s); assert(uv); assert(len); assert(error_msg) + +PERL_STATIC_INLINE I32 S_regcurly(pTHX_ const char *s) + __attribute__warn_unused_result__ + __attribute__pure__ + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_REGCURLY \ + assert(s) + +#endif #if defined(PERL_IN_DUMP_C) STATIC CV* S_deb_curcv(pTHX_ const I32 ix); STATIC void S_debprof(pTHX_ const OP *o) @@ -5546,9 +5314,9 @@ STATIC HV* S_gv_get_super_pkg(pTHX_ const char* name, I32 namelen) #define PERL_ARGS_ASSERT_GV_GET_SUPER_PKG \ assert(name) -STATIC void S_gv_init_sv(pTHX_ GV *gv, const svtype sv_type) +STATIC void S_gv_init_svtype(pTHX_ GV *gv, const svtype sv_type) __attribute__nonnull__(pTHX_1); -#define PERL_ARGS_ASSERT_GV_INIT_SV \ +#define PERL_ARGS_ASSERT_GV_INIT_SVTYPE \ assert(gv) STATIC void S_gv_magicalize_isa(pTHX_ GV *gv) @@ -5600,6 +5368,11 @@ STATIC struct xpvhv_aux* S_hv_auxinit(HV *hv) assert(hv) STATIC SV* S_hv_delete_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen, int k_flags, I32 d_flags, U32 hash); +STATIC SV* S_hv_free_ent_ret(pTHX_ HV *hv, HE *entryK) + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_HV_FREE_ENT_RET \ + assert(hv) + STATIC void S_hv_magic_check(HV *hv, bool *needs_copy, bool *needs_store) __attribute__nonnull__(1) __attribute__nonnull__(2) @@ -5645,6 +5418,14 @@ PERL_CALLCONV void Perl_sv_kill_backrefs(pTHX_ SV *const sv, AV *const av) assert(sv) #endif +#if defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C) +PERL_CALLCONV SV* Perl_hfree_next_entry(pTHX_ HV *hv, STRLEN *indexp) + __attribute__nonnull__(pTHX_1) + __attribute__nonnull__(pTHX_2); +#define PERL_ARGS_ASSERT_HFREE_NEXT_ENTRY \ + assert(hv); assert(indexp) + +#endif #if defined(PERL_IN_LOCALE_C) # if defined(USE_LOCALE_NUMERIC) || defined(USE_LOCALE_COLLATE) STATIC char* S_stdize_locale(pTHX_ char* locs) @@ -5684,12 +5465,12 @@ STATIC void S_mro_clean_isarev(pTHX_ HV * const isa, const char * const name, co #define PERL_ARGS_ASSERT_MRO_CLEAN_ISAREV \ assert(isa); assert(name) -STATIC void S_mro_gather_and_rename(pTHX_ HV * const stashes, HV * const seen_stashes, HV *stash, HV *oldstash, const char *name, I32 namlen) +STATIC void S_mro_gather_and_rename(pTHX_ HV * const stashes, HV * const seen_stashes, HV *stash, HV *oldstash, SV *namesv) __attribute__nonnull__(pTHX_1) __attribute__nonnull__(pTHX_2) __attribute__nonnull__(pTHX_5); #define PERL_ARGS_ASSERT_MRO_GATHER_AND_RENAME \ - assert(stashes); assert(seen_stashes); assert(name) + assert(stashes); assert(seen_stashes); assert(namesv) STATIC AV* S_mro_get_linear_isa_dfs(pTHX_ HV* stash, U32 level) __attribute__nonnull__(pTHX_1); @@ -5701,6 +5482,7 @@ STATIC AV* S_mro_get_linear_isa_dfs(pTHX_ HV* stash, U32 level) STATIC NV S_mulexp10(NV value, I32 exponent); #endif #if defined(PERL_IN_OP_C) +PERL_STATIC_INLINE bool S_aassign_common_vars(pTHX_ OP* o); STATIC void S_apply_attrs(pTHX_ HV *stash, SV *target, OP *attrs, bool for_my) __attribute__nonnull__(pTHX_1) __attribute__nonnull__(pTHX_2); @@ -5731,6 +5513,11 @@ STATIC OP * S_dup_attrlist(pTHX_ OP *o) #define PERL_ARGS_ASSERT_DUP_ATTRLIST \ assert(o) +STATIC void S_finalize_op(pTHX_ OP* o) + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_FINALIZE_OP \ + assert(o) + STATIC void S_find_and_forget_pmops(pTHX_ OP *o) __attribute__nonnull__(pTHX_1); #define PERL_ARGS_ASSERT_FIND_AND_FORGET_PMOPS \ @@ -5748,17 +5535,17 @@ STATIC const char* S_gv_ename(pTHX_ GV *gv) #define PERL_ARGS_ASSERT_GV_ENAME \ assert(gv) +STATIC void S_inplace_aassign(pTHX_ OP* o) + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_INPLACE_AASSIGN \ + assert(o) + STATIC bool S_is_handle_constructor(const OP *o, I32 numargs) __attribute__warn_unused_result__ __attribute__nonnull__(1); #define PERL_ARGS_ASSERT_IS_HANDLE_CONSTRUCTOR \ assert(o) -STATIC OP* S_is_inplace_av(pTHX_ OP* o, OP* oright) - __attribute__nonnull__(pTHX_1); -#define PERL_ARGS_ASSERT_IS_INPLACE_AV \ - assert(o) - STATIC I32 S_is_list_assignment(pTHX_ const OP *o) __attribute__warn_unused_result__; @@ -5789,7 +5576,7 @@ STATIC OP* S_new_logop(pTHX_ I32 type, I32 flags, OP **firstp, OP **otherp) #define PERL_ARGS_ASSERT_NEW_LOGOP \ assert(firstp); assert(otherp) -STATIC void S_no_bareword_allowed(pTHX_ const OP *o) +STATIC void S_no_bareword_allowed(pTHX_ OP *o) __attribute__nonnull__(pTHX_1); #define PERL_ARGS_ASSERT_NO_BAREWORD_ALLOWED \ assert(o) @@ -5800,6 +5587,16 @@ STATIC OP* S_no_fh_allowed(pTHX_ OP *o) #define PERL_ARGS_ASSERT_NO_FH_ALLOWED \ assert(o) +PERL_STATIC_INLINE OP* S_op_integerize(pTHX_ OP *o) + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_OP_INTEGERIZE \ + assert(o) + +PERL_STATIC_INLINE OP* S_op_std_init(pTHX_ OP *o) + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_OP_STD_INIT \ + assert(o) + STATIC OP* S_opt_scalarhv(pTHX_ OP* rep_op) __attribute__nonnull__(pTHX_1); #define PERL_ARGS_ASSERT_OPT_SCALARHV \ @@ -5822,10 +5619,7 @@ STATIC void S_process_special_blocks(pTHX_ const char *const fullname, GV *const STATIC OP* S_ref_array_or_hash(pTHX_ OP* cond); STATIC OP* S_refkids(pTHX_ OP* o, I32 type); STATIC bool S_scalar_mod_type(const OP *o, I32 type) - __attribute__warn_unused_result__ - __attribute__nonnull__(1); -#define PERL_ARGS_ASSERT_SCALAR_MOD_TYPE \ - assert(o) + __attribute__warn_unused_result__; STATIC OP* S_scalarboolean(pTHX_ OP *o) __attribute__nonnull__(pTHX_1); @@ -5853,7 +5647,6 @@ STATIC OP* S_too_few_arguments(pTHX_ OP *o, const char* name) assert(o); assert(name) STATIC OP* S_too_many_arguments(pTHX_ OP *o, const char* name) - __attribute__warn_unused_result__ __attribute__nonnull__(pTHX_1) __attribute__nonnull__(pTHX_2); #define PERL_ARGS_ASSERT_TOO_MANY_ARGUMENTS \ @@ -5868,23 +5661,23 @@ STATIC void S_forget_pmop(pTHX_ PMOP *const o, U32 flags) # endif #endif #if defined(PERL_IN_PAD_C) -STATIC PADOFFSET S_pad_add_name_sv(pTHX_ SV *namesv, const U32 flags, HV *typestash, HV *ourstash) +STATIC PADOFFSET S_pad_alloc_name(pTHX_ SV *namesv, U32 flags, HV *typestash, HV *ourstash) __attribute__nonnull__(pTHX_1); -#define PERL_ARGS_ASSERT_PAD_ADD_NAME_SV \ +#define PERL_ARGS_ASSERT_PAD_ALLOC_NAME \ assert(namesv) -STATIC void S_pad_check_dup(pTHX_ SV *name, const U32 flags, const HV *ourstash) +STATIC void S_pad_check_dup(pTHX_ SV *name, U32 flags, const HV *ourstash) __attribute__nonnull__(pTHX_1); #define PERL_ARGS_ASSERT_PAD_CHECK_DUP \ assert(name) -STATIC PADOFFSET S_pad_findlex(pTHX_ const char *name, const CV* cv, U32 seq, int warn, SV** out_capture, SV** out_name_sv, int *out_flags) +STATIC PADOFFSET S_pad_findlex(pTHX_ const char *namepv, STRLEN namelen, U32 flags, const CV* cv, U32 seq, int warn, SV** out_capture, SV** out_name_sv, int *out_flags) __attribute__nonnull__(pTHX_1) - __attribute__nonnull__(pTHX_2) - __attribute__nonnull__(pTHX_6) - __attribute__nonnull__(pTHX_7); + __attribute__nonnull__(pTHX_4) + __attribute__nonnull__(pTHX_8) + __attribute__nonnull__(pTHX_9); #define PERL_ARGS_ASSERT_PAD_FINDLEX \ - assert(name); assert(cv); assert(out_name_sv); assert(out_flags) + assert(namepv); assert(cv); assert(out_name_sv); assert(out_flags) STATIC void S_pad_reset(pTHX); #endif @@ -5901,13 +5694,6 @@ STATIC void S_incpush(pTHX_ const char *const dir, STRLEN len, U32 flags) #define PERL_ARGS_ASSERT_INCPUSH \ assert(dir) -STATIC SV * S_incpush_if_exists(pTHX_ AV *const av, SV *dir, SV *const stem) - __attribute__nonnull__(pTHX_1) - __attribute__nonnull__(pTHX_2) - __attribute__nonnull__(pTHX_3); -#define PERL_ARGS_ASSERT_INCPUSH_IF_EXISTS \ - assert(av); assert(dir); assert(stem) - STATIC void S_incpush_use_sep(pTHX_ const char *p, STRLEN len, U32 flags) __attribute__nonnull__(pTHX_1); #define PERL_ARGS_ASSERT_INCPUSH_USE_SEP \ @@ -5945,6 +5731,12 @@ STATIC void S_usage(pTHX_ const char *name) #endif #if defined(PERL_IN_PP_C) +STATIC void S_do_chomp(pTHX_ SV *retval, SV *sv, bool chomping) + __attribute__nonnull__(pTHX_1) + __attribute__nonnull__(pTHX_2); +#define PERL_ARGS_ASSERT_DO_CHOMP \ + assert(retval); assert(sv) + STATIC OP* S_do_delete_local(pTHX); STATIC SV* S_refto(pTHX_ SV* sv) __attribute__warn_unused_result__ @@ -5964,6 +5756,13 @@ PERL_CALLCONV GV* Perl_softref2xv(pTHX_ SV *const sv, const char *const what, co #endif #if defined(PERL_IN_PP_CTL_C) +STATIC SV ** S_adjust_stack_on_leave(pTHX_ SV **newsp, SV **sp, SV **mark, I32 gimme, U32 flags) + __attribute__nonnull__(pTHX_1) + __attribute__nonnull__(pTHX_2) + __attribute__nonnull__(pTHX_3); +#define PERL_ARGS_ASSERT_ADJUST_STACK_ON_LEAVE \ + assert(newsp); assert(sp); assert(mark) + STATIC PerlIO * S_check_type_and_open(pTHX_ SV *name) __attribute__warn_unused_result__ __attribute__nonnull__(pTHX_1); @@ -5975,7 +5774,7 @@ STATIC void S_destroy_matcher(pTHX_ PMOP* matcher) #define PERL_ARGS_ASSERT_DESTROY_MATCHER \ assert(matcher) -STATIC OP* S_do_smartmatch(pTHX_ HV* seen_this, HV* seen_other); +STATIC OP* S_do_smartmatch(pTHX_ HV* seen_this, HV* seen_other, const bool copied); STATIC OP* S_docatch(pTHX_ OP *o) __attribute__warn_unused_result__; @@ -5989,8 +5788,7 @@ STATIC OP* S_dofindlabel(pTHX_ OP *o, const char *label, OP **opstack, OP **opli #define PERL_ARGS_ASSERT_DOFINDLABEL \ assert(o); assert(label); assert(opstack); assert(oplimit) -STATIC OP* S_doparseform(pTHX_ SV *sv) - __attribute__warn_unused_result__ +STATIC MAGIC * S_doparseform(pTHX_ SV *sv) __attribute__nonnull__(pTHX_1); #define PERL_ARGS_ASSERT_DOPARSEFORM \ assert(sv) @@ -6236,16 +6034,23 @@ STATIC SV * S_space_join_names_mortal(pTHX_ char *const *array) #define PERL_ARGS_ASSERT_SPACE_JOIN_NAMES_MORTAL \ assert(array) -STATIC OP * S_tied_handle_method(pTHX_ const char *const methname, SV **sp, IO *const io, MAGIC *const mg, const U32 flags, ...) - __attribute__nonnull__(pTHX_1) - __attribute__nonnull__(pTHX_2) - __attribute__nonnull__(pTHX_3) - __attribute__nonnull__(pTHX_4); -#define PERL_ARGS_ASSERT_TIED_HANDLE_METHOD \ - assert(methname); assert(sp); assert(io); assert(mg) - #endif #if defined(PERL_IN_REGCOMP_C) +PERL_STATIC_INLINE UV* S__invlist_array_init(pTHX_ SV* const invlist, const bool will_have_0) + __attribute__warn_unused_result__ + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT__INVLIST_ARRAY_INIT \ + assert(invlist) + +STATIC void S_add_alternate(pTHX_ AV** alternate_ptr, U8* string, STRLEN len) + __attribute__nonnull__(pTHX_1) + __attribute__nonnull__(pTHX_2); +#define PERL_ARGS_ASSERT_ADD_ALTERNATE \ + assert(alternate_ptr); assert(string) + +PERL_STATIC_INLINE SV* S_add_cp_to_invlist(pTHX_ SV* invlist, const UV cp) + __attribute__warn_unused_result__; + STATIC U32 S_add_data(struct RExC_state_t *pRExC_state, U32 n, const char *s) __attribute__warn_unused_result__ __attribute__nonnull__(1) @@ -6253,6 +6058,9 @@ STATIC U32 S_add_data(struct RExC_state_t *pRExC_state, U32 n, const char *s) #define PERL_ARGS_ASSERT_ADD_DATA \ assert(pRExC_state); assert(s) +STATIC SV* S_add_range_to_invlist(pTHX_ SV* invlist, const UV start, const UV end) + __attribute__warn_unused_result__; + STATIC void S_checkposixcc(pTHX_ struct RExC_state_t *pRExC_state) __attribute__nonnull__(pTHX_1); #define PERL_ARGS_ASSERT_CHECKPOSIXCC \ @@ -6276,12 +6084,6 @@ STATIC void S_cl_init(const struct RExC_state_t *pRExC_state, struct regnode_cha #define PERL_ARGS_ASSERT_CL_INIT \ assert(pRExC_state); assert(cl) -STATIC void S_cl_init_zero(const struct RExC_state_t *pRExC_state, struct regnode_charclass_class *cl) - __attribute__nonnull__(1) - __attribute__nonnull__(2); -#define PERL_ARGS_ASSERT_CL_INIT_ZERO \ - assert(pRExC_state); assert(cl) - STATIC int S_cl_is_anything(const struct regnode_charclass_class *cl) __attribute__warn_unused_result__ __attribute__nonnull__(1); @@ -6295,6 +6097,76 @@ STATIC void S_cl_or(const struct RExC_state_t *pRExC_state, struct regnode_charc #define PERL_ARGS_ASSERT_CL_OR \ assert(pRExC_state); assert(cl); assert(or_with) +PERL_STATIC_INLINE UV* S_get_invlist_iter_addr(pTHX_ SV* invlist) + __attribute__warn_unused_result__ + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_GET_INVLIST_ITER_ADDR \ + assert(invlist) + +PERL_STATIC_INLINE UV* S_get_invlist_len_addr(pTHX_ SV* invlist) + __attribute__warn_unused_result__ + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_GET_INVLIST_LEN_ADDR \ + assert(invlist) + +PERL_STATIC_INLINE UV* S_get_invlist_zero_addr(pTHX_ SV* invlist) + __attribute__warn_unused_result__ + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_GET_INVLIST_ZERO_ADDR \ + assert(invlist) + +PERL_STATIC_INLINE UV* S_invlist_array(pTHX_ SV* const invlist) + __attribute__warn_unused_result__ + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_INVLIST_ARRAY \ + assert(invlist) + +PERL_STATIC_INLINE SV* S_invlist_clone(pTHX_ SV* const invlist) + __attribute__warn_unused_result__ + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_INVLIST_CLONE \ + assert(invlist) + +STATIC void S_invlist_extend(pTHX_ SV* const invlist, const UV len) + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_INVLIST_EXTEND \ + assert(invlist) + +PERL_STATIC_INLINE void S_invlist_iterinit(pTHX_ SV* invlist) + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_INVLIST_ITERINIT \ + assert(invlist) + +STATIC bool S_invlist_iternext(pTHX_ SV* invlist, UV* start, UV* end) + __attribute__warn_unused_result__ + __attribute__nonnull__(pTHX_1) + __attribute__nonnull__(pTHX_2) + __attribute__nonnull__(pTHX_3); +#define PERL_ARGS_ASSERT_INVLIST_ITERNEXT \ + assert(invlist); assert(start); assert(end) + +PERL_STATIC_INLINE UV S_invlist_len(pTHX_ SV* const invlist) + __attribute__warn_unused_result__ + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_INVLIST_LEN \ + assert(invlist) + +PERL_STATIC_INLINE UV S_invlist_max(pTHX_ SV* const invlist) + __attribute__warn_unused_result__ + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_INVLIST_MAX \ + assert(invlist) + +PERL_STATIC_INLINE void S_invlist_set_len(pTHX_ SV* const invlist, const UV len) + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_INVLIST_SET_LEN \ + assert(invlist) + +PERL_STATIC_INLINE void S_invlist_trim(pTHX_ SV* const invlist) + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_INVLIST_TRIM \ + assert(invlist) + STATIC U32 S_join_exact(pTHX_ struct RExC_state_t *pRExC_state, regnode *scan, I32 *min, U32 flags, regnode *val, U32 depth) __attribute__nonnull__(pTHX_1) __attribute__nonnull__(pTHX_2) @@ -6336,7 +6208,7 @@ STATIC regnode* S_reg(pTHX_ struct RExC_state_t *pRExC_state, I32 paren, I32 *fl #define PERL_ARGS_ASSERT_REG \ assert(pRExC_state); assert(flagp) -STATIC regnode* S_reg_namedseq(pTHX_ struct RExC_state_t *pRExC_state, UV *valuep, I32 *flagp) +STATIC regnode* S_reg_namedseq(pTHX_ struct RExC_state_t *pRExC_state, UV *valuep, I32 *flagp, U32 depth) __attribute__nonnull__(pTHX_1); #define PERL_ARGS_ASSERT_REG_NAMEDSEQ \ assert(pRExC_state) @@ -6427,6 +6299,22 @@ STATIC void S_scan_commit(pTHX_ const struct RExC_state_t *pRExC_state, struct s #define PERL_ARGS_ASSERT_SCAN_COMMIT \ assert(pRExC_state); assert(data); assert(minlenp) +PERL_STATIC_INLINE U8 S_set_regclass_bit(pTHX_ struct RExC_state_t* pRExC_state, regnode* node, const U8 value, SV** invlist_ptr, AV** alternate_ptr) + __attribute__nonnull__(pTHX_1) + __attribute__nonnull__(pTHX_2) + __attribute__nonnull__(pTHX_4) + __attribute__nonnull__(pTHX_5); +#define PERL_ARGS_ASSERT_SET_REGCLASS_BIT \ + assert(pRExC_state); assert(node); assert(invlist_ptr); assert(alternate_ptr) + +STATIC U8 S_set_regclass_bit_fold(pTHX_ struct RExC_state_t *pRExC_state, regnode* node, const U8 value, SV** invlist_ptr, AV** alternate_ptr) + __attribute__nonnull__(pTHX_1) + __attribute__nonnull__(pTHX_2) + __attribute__nonnull__(pTHX_4) + __attribute__nonnull__(pTHX_5); +#define PERL_ARGS_ASSERT_SET_REGCLASS_BIT_FOLD \ + assert(pRExC_state); assert(node); assert(invlist_ptr); assert(alternate_ptr) + STATIC I32 S_study_chunk(pTHX_ struct RExC_state_t *pRExC_state, regnode **scanp, I32 *minlenp, I32 *deltap, regnode *last, struct scan_data_t *data, I32 stopparen, U8* recursed, struct regnode_charclass_class *and_withp, U32 flags, U32 depth) __attribute__nonnull__(pTHX_1) __attribute__nonnull__(pTHX_2) @@ -6437,6 +6325,59 @@ STATIC I32 S_study_chunk(pTHX_ struct RExC_state_t *pRExC_state, regnode **scanp assert(pRExC_state); assert(scanp); assert(minlenp); assert(deltap); assert(last) #endif +#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C) +PERL_CALLCONV void Perl__append_range_to_invlist(pTHX_ SV* const invlist, const UV start, const UV end) + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT__APPEND_RANGE_TO_INVLIST \ + assert(invlist) + +PERL_CALLCONV void Perl__invlist_intersection(pTHX_ SV* const a, SV* const b, SV** i) + __attribute__nonnull__(pTHX_1) + __attribute__nonnull__(pTHX_2) + __attribute__nonnull__(pTHX_3); +#define PERL_ARGS_ASSERT__INVLIST_INTERSECTION \ + assert(a); assert(b); assert(i) + +PERL_CALLCONV void Perl__invlist_invert(pTHX_ SV* const invlist) + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT__INVLIST_INVERT \ + assert(invlist) + +PERL_CALLCONV void Perl__invlist_invert_prop(pTHX_ SV* const invlist) + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT__INVLIST_INVERT_PROP \ + assert(invlist) + +PERL_CALLCONV void Perl__invlist_subtract(pTHX_ SV* const a, SV* const b, SV** result) + __attribute__nonnull__(pTHX_1) + __attribute__nonnull__(pTHX_2) + __attribute__nonnull__(pTHX_3); +#define PERL_ARGS_ASSERT__INVLIST_SUBTRACT \ + assert(a); assert(b); assert(result) + +PERL_CALLCONV void Perl__invlist_union(pTHX_ SV* const a, SV* const b, SV** output) + __attribute__nonnull__(pTHX_1) + __attribute__nonnull__(pTHX_2) + __attribute__nonnull__(pTHX_3); +#define PERL_ARGS_ASSERT__INVLIST_UNION \ + assert(a); assert(b); assert(output) + +PERL_CALLCONV SV* Perl__new_invlist(pTHX_ IV initial_size) + __attribute__warn_unused_result__; + +PERL_CALLCONV HV* Perl__swash_inversion_hash(pTHX_ SV* const swash) + __attribute__warn_unused_result__ + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT__SWASH_INVERSION_HASH \ + assert(swash) + +PERL_CALLCONV SV* Perl__swash_to_invlist(pTHX_ SV* const swash) + __attribute__warn_unused_result__ + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT__SWASH_TO_INVLIST \ + assert(swash) + +#endif #if defined(PERL_IN_REGEXEC_C) STATIC char* S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s, const char *strend, regmatch_info *reginfo) __attribute__warn_unused_result__ @@ -6550,6 +6491,11 @@ STATIC void S_assert_uft8_cache_coherent(pTHX_ const char *const func, STRLEN fr #define PERL_ARGS_ASSERT_ASSERT_UFT8_CACHE_COHERENT \ assert(func); assert(sv) +STATIC bool S_curse(pTHX_ SV * const sv, const bool check_refcnt) + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_CURSE \ + assert(sv) + STATIC I32 S_expect_number(pTHX_ char **const pattern) __attribute__warn_unused_result__ __attribute__nonnull__(pTHX_1); @@ -6709,11 +6655,6 @@ STATIC void S_checkcomma(pTHX_ const char *s, const char *name, const char *what assert(s); assert(name); assert(what) STATIC int S_deprecate_commaless_var_list(pTHX); -STATIC bool S_feature_is_enabled(pTHX_ const char *const name, STRLEN namelen) - __attribute__nonnull__(pTHX_1); -#define PERL_ARGS_ASSERT_FEATURE_IS_ENABLED \ - assert(name) - STATIC char * S_filter_gets(pTHX_ SV *sv, STRLEN append) __attribute__warn_unused_result__ __attribute__nonnull__(pTHX_1); @@ -7259,7 +7200,7 @@ PERL_CALLCONV OP* Perl_newPADOP(pTHX_ I32 type, I32 flags, SV* sv) #define PERL_ARGS_ASSERT_NEWPADOP \ assert(sv) -PERL_CALLCONV AV* Perl_padlist_dup(pTHX_ AV *const srcpad, CLONE_PARAMS *const param) +PERL_CALLCONV AV* Perl_padlist_dup(pTHX_ AV *srcpad, CLONE_PARAMS *param) __attribute__warn_unused_result__ __attribute__nonnull__(pTHX_2); #define PERL_ARGS_ASSERT_PADLIST_DUP \ @@ -7420,5 +7361,9 @@ PERL_CALLCONV int Perl_do_spawn_nowait(pTHX_ char* cmd) assert(cmd) #endif +#ifdef PERL_CORE +# include "pp_proto.h" +#endif END_EXTERN_C + /* ex: set ro: */