1 /* -*- mode: C; buffer-read-only: t -*- 2 * 3 * proto.h 4 * 5 * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 6 * 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 7 * 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 8 * by Larry Wall and others 9 * 10 * You may distribute under the terms of either the GNU General Public 11 * License or the Artistic License, as specified in the README file. 12 * 13 * !!!!!!! DO NOT EDIT THIS FILE !!!!!!! 14 * This file is built by regen/embed.pl from embed.fnc, intrpvar.h, 15 * perlvars.h, regen/opcodes, regen/embed.pl, regen/embed_lib.pl and 16 * regen/HeaderParser.pm. 17 * Any changes made here will be lost! 18 * 19 * Edit those files and run 'make regen_headers' to effect changes. 20 */ 21 22 START_EXTERN_C 23 PERL_CALLCONV int 24 Perl_Gv_AMupdate(pTHX_ HV *stash, bool destructing); 25 #define PERL_ARGS_ASSERT_GV_AMUPDATE \ 26 assert(stash) 27 28 PERL_CALLCONV const char * 29 Perl_PerlIO_context_layers(pTHX_ const char *mode); 30 #define PERL_ARGS_ASSERT_PERLIO_CONTEXT_LAYERS 31 32 PERL_CALLCONV int 33 Perl_PerlLIO_dup2_cloexec(pTHX_ int oldfd, int newfd) 34 __attribute__visibility__("hidden"); 35 #define PERL_ARGS_ASSERT_PERLLIO_DUP2_CLOEXEC 36 37 PERL_CALLCONV int 38 Perl_PerlLIO_dup_cloexec(pTHX_ int oldfd) 39 __attribute__warn_unused_result__ 40 __attribute__visibility__("hidden"); 41 #define PERL_ARGS_ASSERT_PERLLIO_DUP_CLOEXEC 42 43 PERL_CALLCONV int 44 Perl_PerlLIO_open3_cloexec(pTHX_ const char *file, int flag, int perm) 45 __attribute__warn_unused_result__ 46 __attribute__visibility__("hidden"); 47 #define PERL_ARGS_ASSERT_PERLLIO_OPEN3_CLOEXEC \ 48 assert(file) 49 50 PERL_CALLCONV int 51 Perl_PerlLIO_open_cloexec(pTHX_ const char *file, int flag) 52 __attribute__warn_unused_result__ 53 __attribute__visibility__("hidden"); 54 #define PERL_ARGS_ASSERT_PERLLIO_OPEN_CLOEXEC \ 55 assert(file) 56 57 /* PERL_CALLCONV const XOP * 58 Perl_custom_op_xop(pTHX_ const OP *o); */ 59 60 PERL_CALLCONV HV * 61 Perl_localeconv(pTHX); 62 #define PERL_ARGS_ASSERT_PERL_LOCALECONV 63 64 PERL_CALLCONV const char * 65 Perl_setlocale(const int category, const char *locale); 66 #define PERL_ARGS_ASSERT_PERL_SETLOCALE 67 68 PERL_CALLCONV void * 69 Perl_Slab_Alloc(pTHX_ size_t sz) 70 __attribute__warn_unused_result__; 71 #define PERL_ARGS_ASSERT_SLAB_ALLOC 72 73 PERL_CALLCONV void 74 Perl_Slab_Free(pTHX_ void *op); 75 #define PERL_ARGS_ASSERT_SLAB_FREE \ 76 assert(op) 77 78 /* PERL_CALLCONV void 79 SvREFCNT_dec_set_NULL(pTHX_ SV *sv); */ 80 81 PERL_CALLCONV char * 82 Perl__byte_dump_string(pTHX_ const U8 * const start, const STRLEN len, const bool format); 83 #define PERL_ARGS_ASSERT__BYTE_DUMP_STRING \ 84 assert(start) 85 86 PERL_CALLCONV void 87 Perl__force_out_malformed_utf8_message(pTHX_ const U8 * const p, const U8 * const e, const U32 flags, const bool die_here); 88 #define PERL_ARGS_ASSERT__FORCE_OUT_MALFORMED_UTF8_MESSAGE \ 89 assert(p); assert(e) 90 91 PERL_CALLCONV Size_t 92 Perl__inverse_folds(pTHX_ const UV cp, U32 *first_folds_to, const U32 **remaining_folds_to) 93 __attribute__warn_unused_result__; 94 #define PERL_ARGS_ASSERT__INVERSE_FOLDS \ 95 assert(first_folds_to); assert(remaining_folds_to) 96 97 PERL_CALLCONV bool 98 Perl__is_in_locale_category(pTHX_ const bool compiling, const int category); 99 #define PERL_ARGS_ASSERT__IS_IN_LOCALE_CATEGORY 100 101 PERL_CALLCONV bool 102 Perl__is_uni_FOO(pTHX_ const U8 classnum, const UV c) 103 __attribute__warn_unused_result__; 104 #define PERL_ARGS_ASSERT__IS_UNI_FOO 105 106 PERL_CALLCONV bool 107 Perl__is_uni_perl_idcont(pTHX_ UV c) 108 __attribute__warn_unused_result__; 109 #define PERL_ARGS_ASSERT__IS_UNI_PERL_IDCONT 110 111 PERL_CALLCONV bool 112 Perl__is_uni_perl_idstart(pTHX_ UV c) 113 __attribute__warn_unused_result__; 114 #define PERL_ARGS_ASSERT__IS_UNI_PERL_IDSTART 115 116 PERL_CALLCONV bool 117 Perl__is_utf8_FOO(pTHX_ const U8 classnum, const U8 *p, const U8 * const e) 118 __attribute__warn_unused_result__; 119 #define PERL_ARGS_ASSERT__IS_UTF8_FOO \ 120 assert(p); assert(e) 121 122 PERL_CALLCONV bool 123 Perl__is_utf8_perl_idcont(pTHX_ const U8 *p, const U8 * const e) 124 __attribute__warn_unused_result__; 125 #define PERL_ARGS_ASSERT__IS_UTF8_PERL_IDCONT \ 126 assert(p); assert(e) 127 128 PERL_CALLCONV bool 129 Perl__is_utf8_perl_idstart(pTHX_ const U8 *p, const U8 * const e) 130 __attribute__warn_unused_result__; 131 #define PERL_ARGS_ASSERT__IS_UTF8_PERL_IDSTART \ 132 assert(p); assert(e) 133 134 PERL_CALLCONV UV 135 Perl__to_uni_fold_flags(pTHX_ UV c, U8 *p, STRLEN *lenp, U8 flags); 136 #define PERL_ARGS_ASSERT__TO_UNI_FOLD_FLAGS \ 137 assert(p); assert(lenp) 138 139 PERL_CALLCONV UV 140 Perl__to_utf8_fold_flags(pTHX_ const U8 *p, const U8 *e, U8 *ustrp, STRLEN *lenp, U8 flags); 141 #define PERL_ARGS_ASSERT__TO_UTF8_FOLD_FLAGS \ 142 assert(p); assert(ustrp) 143 144 PERL_CALLCONV UV 145 Perl__to_utf8_lower_flags(pTHX_ const U8 *p, const U8 *e, U8 *ustrp, STRLEN *lenp, bool flags); 146 #define PERL_ARGS_ASSERT__TO_UTF8_LOWER_FLAGS \ 147 assert(p); assert(ustrp) 148 149 PERL_CALLCONV UV 150 Perl__to_utf8_title_flags(pTHX_ const U8 *p, const U8 *e, U8 *ustrp, STRLEN *lenp, bool flags); 151 #define PERL_ARGS_ASSERT__TO_UTF8_TITLE_FLAGS \ 152 assert(p); assert(ustrp) 153 154 PERL_CALLCONV UV 155 Perl__to_utf8_upper_flags(pTHX_ const U8 *p, const U8 *e, U8 *ustrp, STRLEN *lenp, bool flags); 156 #define PERL_ARGS_ASSERT__TO_UTF8_UPPER_FLAGS \ 157 assert(p); assert(ustrp) 158 159 PERL_CALLCONV UV 160 Perl__utf8n_to_uvchr_msgs_helper(const U8 *s, STRLEN curlen, STRLEN *retlen, const U32 flags, U32 *errors, AV **msgs); 161 #define PERL_ARGS_ASSERT__UTF8N_TO_UVCHR_MSGS_HELPER \ 162 assert(s) 163 164 PERL_CALLCONV void 165 Perl__warn_problematic_locale(void); 166 #define PERL_ARGS_ASSERT__WARN_PROBLEMATIC_LOCALE 167 168 PERL_CALLCONV_NO_RET void 169 Perl_abort_execution(pTHX_ SV *msg_sv, const char * const name) 170 __attribute__noreturn__ 171 __attribute__visibility__("hidden"); 172 #define PERL_ARGS_ASSERT_ABORT_EXECUTION \ 173 assert(name) 174 175 PERL_CALLCONV LOGOP * 176 Perl_alloc_LOGOP(pTHX_ I32 type, OP *first, OP *other) 177 __attribute__visibility__("hidden"); 178 #define PERL_ARGS_ASSERT_ALLOC_LOGOP 179 180 PERL_CALLCONV PADOFFSET 181 Perl_allocmy(pTHX_ const char * const name, const STRLEN len, const U32 flags) 182 __attribute__visibility__("hidden"); 183 #define PERL_ARGS_ASSERT_ALLOCMY \ 184 assert(name) 185 186 PERL_CALLCONV bool 187 Perl_amagic_applies(pTHX_ SV *sv, int method, int flags); 188 #define PERL_ARGS_ASSERT_AMAGIC_APPLIES \ 189 assert(sv) 190 191 PERL_CALLCONV SV * 192 Perl_amagic_call(pTHX_ SV *left, SV *right, int method, int dir); 193 #define PERL_ARGS_ASSERT_AMAGIC_CALL \ 194 assert(left); assert(right) 195 196 PERL_CALLCONV SV * 197 Perl_amagic_deref_call(pTHX_ SV *ref, int method); 198 #define PERL_ARGS_ASSERT_AMAGIC_DEREF_CALL \ 199 assert(ref) 200 201 PERL_CALLCONV bool 202 Perl_amagic_is_enabled(pTHX_ int method) 203 __attribute__visibility__("hidden"); 204 #define PERL_ARGS_ASSERT_AMAGIC_IS_ENABLED 205 206 PERL_CALLCONV I32 207 Perl_apply(pTHX_ I32 type, SV **mark, SV **sp) 208 __attribute__visibility__("hidden"); 209 #define PERL_ARGS_ASSERT_APPLY \ 210 assert(mark); assert(sp) 211 212 PERL_CALLCONV void 213 Perl_apply_attrs_string(pTHX_ const char *stashpv, CV *cv, const char *attrstr, STRLEN len); 214 #define PERL_ARGS_ASSERT_APPLY_ATTRS_STRING \ 215 assert(stashpv); assert(cv); assert(attrstr) 216 217 PERL_CALLCONV OP * 218 Perl_apply_builtin_cv_attributes(pTHX_ CV *cv, OP *attrlist); 219 #define PERL_ARGS_ASSERT_APPLY_BUILTIN_CV_ATTRIBUTES \ 220 assert(cv) 221 222 PERL_CALLCONV void 223 Perl_atfork_lock(void); 224 #define PERL_ARGS_ASSERT_ATFORK_LOCK 225 226 PERL_CALLCONV void 227 Perl_atfork_unlock(void); 228 #define PERL_ARGS_ASSERT_ATFORK_UNLOCK 229 230 PERL_CALLCONV SV ** 231 Perl_av_arylen_p(pTHX_ AV *av); 232 #define PERL_ARGS_ASSERT_AV_ARYLEN_P \ 233 assert(av) 234 235 PERL_CALLCONV void 236 Perl_av_clear(pTHX_ AV *av); 237 #define PERL_ARGS_ASSERT_AV_CLEAR \ 238 assert(av) 239 240 PERL_CALLCONV void 241 Perl_av_create_and_push(pTHX_ AV ** const avp, SV * const val); 242 #define PERL_ARGS_ASSERT_AV_CREATE_AND_PUSH \ 243 assert(avp); assert(val) 244 245 PERL_CALLCONV SV ** 246 Perl_av_create_and_unshift_one(pTHX_ AV ** const avp, SV * const val); 247 #define PERL_ARGS_ASSERT_AV_CREATE_AND_UNSHIFT_ONE \ 248 assert(avp); assert(val) 249 250 PERL_CALLCONV SV * 251 Perl_av_delete(pTHX_ AV *av, SSize_t key, I32 flags); 252 #define PERL_ARGS_ASSERT_AV_DELETE \ 253 assert(av) 254 255 PERL_CALLCONV void 256 Perl_av_dump(pTHX_ AV *av); 257 #define PERL_ARGS_ASSERT_AV_DUMP 258 259 PERL_CALLCONV bool 260 Perl_av_exists(pTHX_ AV *av, SSize_t key) 261 __attribute__warn_unused_result__; 262 #define PERL_ARGS_ASSERT_AV_EXISTS \ 263 assert(av) 264 265 PERL_CALLCONV void 266 Perl_av_extend(pTHX_ AV *av, SSize_t key); 267 #define PERL_ARGS_ASSERT_AV_EXTEND \ 268 assert(av) 269 270 PERL_CALLCONV void 271 Perl_av_extend_guts(pTHX_ AV *av, SSize_t key, SSize_t *maxp, SV ***allocp, SV ***arrayp) 272 __attribute__visibility__("hidden"); 273 #define PERL_ARGS_ASSERT_AV_EXTEND_GUTS \ 274 assert(maxp); assert(allocp); assert(arrayp) 275 276 PERL_CALLCONV SV ** 277 Perl_av_fetch(pTHX_ AV *av, SSize_t key, I32 lval) 278 __attribute__warn_unused_result__; 279 #define PERL_ARGS_ASSERT_AV_FETCH \ 280 assert(av) 281 282 PERL_CALLCONV void 283 Perl_av_fill(pTHX_ AV *av, SSize_t fill); 284 #define PERL_ARGS_ASSERT_AV_FILL \ 285 assert(av) 286 287 PERL_CALLCONV IV * 288 Perl_av_iter_p(pTHX_ AV *av); 289 #define PERL_ARGS_ASSERT_AV_ITER_P \ 290 assert(av) 291 292 PERL_CALLCONV SSize_t 293 Perl_av_len(pTHX_ AV *av) 294 __attribute__warn_unused_result__; 295 #define PERL_ARGS_ASSERT_AV_LEN \ 296 assert(av) 297 298 PERL_CALLCONV AV * 299 Perl_av_make(pTHX_ SSize_t size, SV **strp) 300 __attribute__warn_unused_result__; 301 #define PERL_ARGS_ASSERT_AV_MAKE \ 302 assert(strp) 303 304 PERL_CALLCONV SV * 305 Perl_av_nonelem(pTHX_ AV *av, SSize_t ix) 306 __attribute__visibility__("hidden"); 307 #define PERL_ARGS_ASSERT_AV_NONELEM \ 308 assert(av) 309 310 PERL_CALLCONV SV * 311 Perl_av_pop(pTHX_ AV *av); 312 #define PERL_ARGS_ASSERT_AV_POP \ 313 assert(av) 314 315 PERL_CALLCONV void 316 Perl_av_push(pTHX_ AV *av, SV *val); 317 #define PERL_ARGS_ASSERT_AV_PUSH \ 318 assert(av); assert(val) 319 320 PERL_CALLCONV void 321 Perl_av_reify(pTHX_ AV *av); 322 #define PERL_ARGS_ASSERT_AV_REIFY \ 323 assert(av) 324 325 PERL_CALLCONV SV * 326 Perl_av_shift(pTHX_ AV *av) 327 __attribute__warn_unused_result__; 328 #define PERL_ARGS_ASSERT_AV_SHIFT \ 329 assert(av) 330 331 PERL_CALLCONV SV ** 332 Perl_av_store(pTHX_ AV *av, SSize_t key, SV *val); 333 #define PERL_ARGS_ASSERT_AV_STORE \ 334 assert(av) 335 336 /* PERL_CALLCONV SSize_t 337 av_tindex(pTHX_ AV *av) 338 __attribute__warn_unused_result__; */ 339 340 /* PERL_CALLCONV SSize_t 341 av_top_index(pTHX_ AV *av) 342 __attribute__warn_unused_result__; */ 343 344 PERL_CALLCONV void 345 Perl_av_undef(pTHX_ AV *av); 346 #define PERL_ARGS_ASSERT_AV_UNDEF \ 347 assert(av) 348 349 PERL_CALLCONV void 350 Perl_av_unshift(pTHX_ AV *av, SSize_t num); 351 #define PERL_ARGS_ASSERT_AV_UNSHIFT \ 352 assert(av) 353 354 PERL_CALLCONV OP * 355 Perl_bind_match(pTHX_ I32 type, OP *left, OP *right) 356 __attribute__warn_unused_result__ 357 __attribute__visibility__("hidden"); 358 #define PERL_ARGS_ASSERT_BIND_MATCH \ 359 assert(left); assert(right) 360 361 PERL_CALLCONV OP * 362 Perl_block_end(pTHX_ I32 floor, OP *seq) 363 __attribute__warn_unused_result__; 364 #define PERL_ARGS_ASSERT_BLOCK_END 365 366 PERL_CALLCONV U8 367 Perl_block_gimme(pTHX) 368 __attribute__warn_unused_result__; 369 #define PERL_ARGS_ASSERT_BLOCK_GIMME 370 371 PERL_CALLCONV int 372 Perl_block_start(pTHX_ int full) 373 __attribute__warn_unused_result__; 374 #define PERL_ARGS_ASSERT_BLOCK_START 375 376 PERL_CALLCONV void 377 Perl_blockhook_register(pTHX_ BHK *hk); 378 #define PERL_ARGS_ASSERT_BLOCKHOOK_REGISTER \ 379 assert(hk) 380 381 PERL_CALLCONV void 382 Perl_boot_core_PerlIO(pTHX) 383 __attribute__visibility__("hidden"); 384 #define PERL_ARGS_ASSERT_BOOT_CORE_PERLIO 385 386 PERL_CALLCONV void 387 Perl_boot_core_UNIVERSAL(pTHX) 388 __attribute__visibility__("hidden"); 389 #define PERL_ARGS_ASSERT_BOOT_CORE_UNIVERSAL 390 391 PERL_CALLCONV void 392 Perl_boot_core_builtin(pTHX) 393 __attribute__visibility__("hidden"); 394 #define PERL_ARGS_ASSERT_BOOT_CORE_BUILTIN 395 396 PERL_CALLCONV void 397 Perl_boot_core_mro(pTHX) 398 __attribute__visibility__("hidden"); 399 #define PERL_ARGS_ASSERT_BOOT_CORE_MRO 400 401 PERL_CALLCONV OP * 402 Perl_build_infix_plugin(pTHX_ OP *lhs, OP *rhs, void *tokendata) 403 __attribute__visibility__("hidden"); 404 #define PERL_ARGS_ASSERT_BUILD_INFIX_PLUGIN \ 405 assert(lhs); assert(rhs); assert(tokendata) 406 407 PERL_CALLCONV int 408 Perl_bytes_cmp_utf8(pTHX_ const U8 *b, STRLEN blen, const U8 *u, STRLEN ulen); 409 #define PERL_ARGS_ASSERT_BYTES_CMP_UTF8 \ 410 assert(b); assert(u) 411 412 PERL_CALLCONV U8 * 413 Perl_bytes_from_utf8(pTHX_ const U8 *s, STRLEN *lenp, bool *is_utf8p); 414 #define PERL_ARGS_ASSERT_BYTES_FROM_UTF8 \ 415 assert(s); assert(lenp); assert(is_utf8p) 416 417 PERL_CALLCONV U8 * 418 Perl_bytes_from_utf8_loc(const U8 *s, STRLEN *lenp, bool *is_utf8p, const U8 **first_unconverted); 419 #define PERL_ARGS_ASSERT_BYTES_FROM_UTF8_LOC \ 420 assert(s); assert(lenp); assert(is_utf8p) 421 422 PERL_CALLCONV U8 * 423 Perl_bytes_to_utf8(pTHX_ const U8 *s, STRLEN *lenp); 424 #define PERL_ARGS_ASSERT_BYTES_TO_UTF8 \ 425 assert(s); assert(lenp) 426 427 PERL_CALLCONV I32 428 Perl_call_argv(pTHX_ const char *sub_name, I32 flags, char **argv); 429 #define PERL_ARGS_ASSERT_CALL_ARGV \ 430 assert(sub_name); assert(argv) 431 432 PERL_CALLCONV void 433 Perl_call_atexit(pTHX_ ATEXIT_t fn, void *ptr); 434 #define PERL_ARGS_ASSERT_CALL_ATEXIT 435 436 PERL_CALLCONV void 437 Perl_call_list(pTHX_ I32 oldscope, AV *paramList); 438 #define PERL_ARGS_ASSERT_CALL_LIST \ 439 assert(paramList) 440 441 PERL_CALLCONV I32 442 Perl_call_method(pTHX_ const char *methname, I32 flags); 443 #define PERL_ARGS_ASSERT_CALL_METHOD \ 444 assert(methname) 445 446 PERL_CALLCONV I32 447 Perl_call_pv(pTHX_ const char *sub_name, I32 flags); 448 #define PERL_ARGS_ASSERT_CALL_PV \ 449 assert(sub_name) 450 451 PERL_CALLCONV I32 452 Perl_call_sv(pTHX_ SV *sv, volatile I32 flags); 453 #define PERL_ARGS_ASSERT_CALL_SV \ 454 assert(sv) 455 456 PERL_CALLCONV const PERL_CONTEXT * 457 Perl_caller_cx(pTHX_ I32 level, const PERL_CONTEXT **dbcxp); 458 #define PERL_ARGS_ASSERT_CALLER_CX 459 460 PERL_CALLCONV Malloc_t 461 Perl_calloc(MEM_SIZE elements, MEM_SIZE size) 462 __attribute__malloc__ 463 __attribute__warn_unused_result__; 464 #define PERL_ARGS_ASSERT_CALLOC 465 466 PERL_CALLCONV bool 467 Perl_cando(pTHX_ Mode_t mode, bool effective, const Stat_t *statbufp) 468 __attribute__warn_unused_result__ 469 __attribute__visibility__("hidden"); 470 #define PERL_ARGS_ASSERT_CANDO \ 471 assert(statbufp) 472 473 PERL_CALLCONV I32 474 Perl_cast_i32(NV f) 475 __attribute__warn_unused_result__; 476 #define PERL_ARGS_ASSERT_CAST_I32 477 478 PERL_CALLCONV IV 479 Perl_cast_iv(NV f) 480 __attribute__warn_unused_result__; 481 #define PERL_ARGS_ASSERT_CAST_IV 482 483 PERL_CALLCONV U32 484 Perl_cast_ulong(NV f) 485 __attribute__warn_unused_result__; 486 #define PERL_ARGS_ASSERT_CAST_ULONG 487 488 PERL_CALLCONV UV 489 Perl_cast_uv(NV f) 490 __attribute__warn_unused_result__; 491 #define PERL_ARGS_ASSERT_CAST_UV 492 493 PERL_CALLCONV bool 494 Perl_check_utf8_print(pTHX_ const U8 *s, const STRLEN len) 495 __attribute__visibility__("hidden"); 496 #define PERL_ARGS_ASSERT_CHECK_UTF8_PRINT \ 497 assert(s) 498 499 PERL_CALLCONV OP * 500 Perl_ck_entersub_args_core(pTHX_ OP *entersubop, GV *namegv, SV *protosv) 501 __attribute__visibility__("hidden"); 502 #define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_CORE \ 503 assert(entersubop); assert(namegv); assert(protosv) 504 505 PERL_CALLCONV OP * 506 Perl_ck_entersub_args_list(pTHX_ OP *entersubop); 507 #define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_LIST \ 508 assert(entersubop) 509 510 PERL_CALLCONV OP * 511 Perl_ck_entersub_args_proto(pTHX_ OP *entersubop, GV *namegv, SV *protosv); 512 #define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_PROTO \ 513 assert(entersubop); assert(namegv); assert(protosv) 514 515 PERL_CALLCONV OP * 516 Perl_ck_entersub_args_proto_or_list(pTHX_ OP *entersubop, GV *namegv, SV *protosv); 517 #define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_PROTO_OR_LIST \ 518 assert(entersubop); assert(namegv); assert(protosv) 519 520 PERL_CALLCONV void 521 Perl_ck_warner(pTHX_ U32 err, const char *pat, ...) 522 __attribute__format__(__printf__,pTHX_2,pTHX_3); 523 #define PERL_ARGS_ASSERT_CK_WARNER \ 524 assert(pat) 525 526 PERL_CALLCONV void 527 Perl_ck_warner_d(pTHX_ U32 err, const char *pat, ...) 528 __attribute__format__(__printf__,pTHX_2,pTHX_3); 529 #define PERL_ARGS_ASSERT_CK_WARNER_D \ 530 assert(pat) 531 532 PERL_CALLCONV bool 533 Perl_ckwarn(pTHX_ U32 w) 534 __attribute__warn_unused_result__ 535 __attribute__pure__; 536 #define PERL_ARGS_ASSERT_CKWARN 537 538 PERL_CALLCONV bool 539 Perl_ckwarn_d(pTHX_ U32 w) 540 __attribute__warn_unused_result__ 541 __attribute__pure__; 542 #define PERL_ARGS_ASSERT_CKWARN_D 543 544 PERL_CALLCONV void 545 Perl_clear_defarray(pTHX_ AV *av, bool abandon); 546 #define PERL_ARGS_ASSERT_CLEAR_DEFARRAY \ 547 assert(av) 548 549 PERL_CALLCONV const COP * 550 Perl_closest_cop(pTHX_ const COP *cop, const OP *o, const OP *curop, bool opnext) 551 __attribute__visibility__("hidden"); 552 #define PERL_ARGS_ASSERT_CLOSEST_COP \ 553 assert(cop) 554 555 PERL_CALLCONV OP * 556 Perl_cmpchain_extend(pTHX_ I32 type, OP *ch, OP *right) 557 __attribute__warn_unused_result__ 558 __attribute__visibility__("hidden"); 559 #define PERL_ARGS_ASSERT_CMPCHAIN_EXTEND \ 560 assert(ch) 561 562 PERL_CALLCONV OP * 563 Perl_cmpchain_finish(pTHX_ OP *ch) 564 __attribute__warn_unused_result__ 565 __attribute__visibility__("hidden"); 566 #define PERL_ARGS_ASSERT_CMPCHAIN_FINISH \ 567 assert(ch) 568 569 PERL_CALLCONV OP * 570 Perl_cmpchain_start(pTHX_ I32 type, OP *left, OP *right) 571 __attribute__warn_unused_result__ 572 __attribute__visibility__("hidden"); 573 #define PERL_ARGS_ASSERT_CMPCHAIN_START 574 575 PERL_CALLCONV const char * 576 Perl_cntrl_to_mnemonic(const U8 c) 577 __attribute__warn_unused_result__; 578 #define PERL_ARGS_ASSERT_CNTRL_TO_MNEMONIC 579 580 PERL_CALLCONV const char * 581 Perl_cop_fetch_label(pTHX_ COP * const cop, STRLEN *len, U32 *flags); 582 #define PERL_ARGS_ASSERT_COP_FETCH_LABEL \ 583 assert(cop) 584 585 PERL_CALLCONV void 586 Perl_cop_store_label(pTHX_ COP * const cop, const char *label, STRLEN len, U32 flags); 587 #define PERL_ARGS_ASSERT_COP_STORE_LABEL \ 588 assert(cop); assert(label) 589 590 PERL_CALLCONV SV * 591 Perl_core_prototype(pTHX_ SV *sv, const char *name, const int code, int * const opnum) 592 __attribute__visibility__("hidden"); 593 #define PERL_ARGS_ASSERT_CORE_PROTOTYPE \ 594 assert(name) 595 596 PERL_CALLCONV OP * 597 Perl_coresub_op(pTHX_ SV * const coreargssv, const int code, const int opnum) 598 __attribute__visibility__("hidden"); 599 #define PERL_ARGS_ASSERT_CORESUB_OP \ 600 assert(coreargssv) 601 602 PERL_CALLCONV void 603 Perl_create_eval_scope(pTHX_ OP *retop, U32 flags) 604 __attribute__visibility__("hidden"); 605 #define PERL_ARGS_ASSERT_CREATE_EVAL_SCOPE 606 607 PERL_CALLCONV_NO_RET void 608 Perl_croak(pTHX_ const char *pat, ...) 609 __attribute__noreturn__ 610 __attribute__format__null_ok__(__printf__,pTHX_1,pTHX_2); 611 #define PERL_ARGS_ASSERT_CROAK 612 613 PERL_CALLCONV_NO_RET void 614 Perl_croak_caller(const char *pat, ...) 615 __attribute__noreturn__ 616 __attribute__visibility__("hidden") 617 __attribute__format__null_ok__(__printf__,1,2); 618 #define PERL_ARGS_ASSERT_CROAK_CALLER 619 620 PERL_STATIC_NO_RET void 621 Perl_croak_memory_wrap(void) 622 __attribute__noreturn__; 623 #define PERL_ARGS_ASSERT_CROAK_MEMORY_WRAP 624 625 PERL_CALLCONV_NO_RET void 626 Perl_croak_no_mem(void) 627 __attribute__noreturn__ 628 __attribute__visibility__("hidden"); 629 #define PERL_ARGS_ASSERT_CROAK_NO_MEM 630 631 PERL_CALLCONV_NO_RET void 632 Perl_croak_no_modify(void) 633 __attribute__noreturn__; 634 #define PERL_ARGS_ASSERT_CROAK_NO_MODIFY 635 636 PERL_CALLCONV_NO_RET void 637 Perl_croak_popstack(void) 638 __attribute__noreturn__; 639 #define PERL_ARGS_ASSERT_CROAK_POPSTACK 640 641 PERL_CALLCONV_NO_RET void 642 Perl_croak_sv(pTHX_ SV *baseex) 643 __attribute__noreturn__; 644 #define PERL_ARGS_ASSERT_CROAK_SV \ 645 assert(baseex) 646 647 PERL_CALLCONV_NO_RET void 648 Perl_croak_xs_usage(const CV * const cv, const char * const params) 649 __attribute__noreturn__; 650 #define PERL_ARGS_ASSERT_CROAK_XS_USAGE \ 651 assert(cv); assert(params) 652 653 PERL_CALLCONV Signal_t 654 Perl_csighandler1(int sig); 655 #define PERL_ARGS_ASSERT_CSIGHANDLER1 656 657 PERL_CALLCONV Signal_t 658 Perl_csighandler3(int sig, Siginfo_t *info, void *uap); 659 #define PERL_ARGS_ASSERT_CSIGHANDLER3 660 661 PERL_CALLCONV regexp_engine const * 662 Perl_current_re_engine(pTHX); 663 #define PERL_ARGS_ASSERT_CURRENT_RE_ENGINE 664 665 PERL_CALLCONV XOPRETANY 666 Perl_custom_op_get_field(pTHX_ const OP *o, const xop_flags_enum field) 667 __attribute__warn_unused_result__; 668 #define PERL_ARGS_ASSERT_CUSTOM_OP_GET_FIELD \ 669 assert(o) 670 671 PERL_CALLCONV void 672 Perl_custom_op_register(pTHX_ Perl_ppaddr_t ppaddr, const XOP *xop); 673 #define PERL_ARGS_ASSERT_CUSTOM_OP_REGISTER \ 674 assert(ppaddr); assert(xop) 675 676 PERL_CALLCONV void 677 Perl_cv_ckproto_len_flags(pTHX_ const CV *cv, const GV *gv, const char *p, const STRLEN len, const U32 flags); 678 #define PERL_ARGS_ASSERT_CV_CKPROTO_LEN_FLAGS \ 679 assert(cv) 680 681 PERL_CALLCONV CV * 682 Perl_cv_clone(pTHX_ CV *proto); 683 #define PERL_ARGS_ASSERT_CV_CLONE \ 684 assert(proto) 685 686 PERL_CALLCONV CV * 687 Perl_cv_clone_into(pTHX_ CV *proto, CV *target) 688 __attribute__visibility__("hidden"); 689 #define PERL_ARGS_ASSERT_CV_CLONE_INTO \ 690 assert(proto); assert(target) 691 692 PERL_CALLCONV SV * 693 Perl_cv_const_sv(const CV * const cv) 694 __attribute__warn_unused_result__; 695 #define PERL_ARGS_ASSERT_CV_CONST_SV 696 697 PERL_CALLCONV SV * 698 Perl_cv_const_sv_or_av(const CV * const cv) 699 __attribute__warn_unused_result__ 700 __attribute__visibility__("hidden"); 701 #define PERL_ARGS_ASSERT_CV_CONST_SV_OR_AV 702 703 PERL_CALLCONV void 704 Perl_cv_forget_slab(pTHX_ CV *cv) 705 __attribute__visibility__("hidden"); 706 #define PERL_ARGS_ASSERT_CV_FORGET_SLAB 707 708 PERL_CALLCONV void 709 Perl_cv_get_call_checker(pTHX_ CV *cv, Perl_call_checker *ckfun_p, SV **ckobj_p); 710 #define PERL_ARGS_ASSERT_CV_GET_CALL_CHECKER \ 711 assert(cv); assert(ckfun_p); assert(ckobj_p) 712 713 PERL_CALLCONV void 714 Perl_cv_get_call_checker_flags(pTHX_ CV *cv, U32 gflags, Perl_call_checker *ckfun_p, SV **ckobj_p, U32 *ckflags_p); 715 #define PERL_ARGS_ASSERT_CV_GET_CALL_CHECKER_FLAGS \ 716 assert(cv); assert(ckfun_p); assert(ckobj_p); assert(ckflags_p) 717 718 PERL_CALLCONV SV * 719 Perl_cv_name(pTHX_ CV *cv, SV *sv, U32 flags); 720 #define PERL_ARGS_ASSERT_CV_NAME \ 721 assert(cv) 722 723 PERL_CALLCONV void 724 Perl_cv_set_call_checker(pTHX_ CV *cv, Perl_call_checker ckfun, SV *ckobj); 725 #define PERL_ARGS_ASSERT_CV_SET_CALL_CHECKER \ 726 assert(cv); assert(ckfun); assert(ckobj) 727 728 PERL_CALLCONV void 729 Perl_cv_set_call_checker_flags(pTHX_ CV *cv, Perl_call_checker ckfun, SV *ckobj, U32 ckflags); 730 #define PERL_ARGS_ASSERT_CV_SET_CALL_CHECKER_FLAGS \ 731 assert(cv); assert(ckfun); assert(ckobj) 732 733 PERL_CALLCONV void 734 Perl_cv_undef(pTHX_ CV *cv); 735 #define PERL_ARGS_ASSERT_CV_UNDEF \ 736 assert(cv) 737 738 PERL_CALLCONV void 739 Perl_cv_undef_flags(pTHX_ CV *cv, U32 flags) 740 __attribute__visibility__("hidden"); 741 #define PERL_ARGS_ASSERT_CV_UNDEF_FLAGS \ 742 assert(cv) 743 744 PERL_CALLCONV GV * 745 Perl_cvgv_from_hek(pTHX_ CV *cv); 746 #define PERL_ARGS_ASSERT_CVGV_FROM_HEK \ 747 assert(cv) 748 749 PERL_CALLCONV void 750 Perl_cvgv_set(pTHX_ CV *cv, GV *gv); 751 #define PERL_ARGS_ASSERT_CVGV_SET \ 752 assert(cv) 753 754 PERL_CALLCONV void 755 Perl_cvstash_set(pTHX_ CV *cv, HV *stash); 756 #define PERL_ARGS_ASSERT_CVSTASH_SET \ 757 assert(cv) 758 759 PERL_CALLCONV void 760 Perl_cx_dump(pTHX_ PERL_CONTEXT *cx); 761 #define PERL_ARGS_ASSERT_CX_DUMP \ 762 assert(cx) 763 764 PERL_CALLCONV I32 765 Perl_cxinc(pTHX) 766 __attribute__warn_unused_result__; 767 #define PERL_ARGS_ASSERT_CXINC 768 769 PERL_CALLCONV void 770 Perl_deb(pTHX_ const char *pat, ...) 771 __attribute__format__(__printf__,pTHX_1,pTHX_2); 772 #define PERL_ARGS_ASSERT_DEB \ 773 assert(pat) 774 775 PERL_CALLCONV void 776 Perl_deb_stack_all(pTHX) 777 __attribute__visibility__("hidden"); 778 #define PERL_ARGS_ASSERT_DEB_STACK_ALL 779 780 PERL_CALLCONV I32 781 Perl_debop(pTHX_ const OP *o); 782 #define PERL_ARGS_ASSERT_DEBOP \ 783 assert(o) 784 785 PERL_CALLCONV void 786 Perl_debprofdump(pTHX); 787 #define PERL_ARGS_ASSERT_DEBPROFDUMP 788 789 PERL_CALLCONV I32 790 Perl_debstack(pTHX); 791 #define PERL_ARGS_ASSERT_DEBSTACK 792 793 PERL_CALLCONV I32 794 Perl_debstackptrs(pTHX); 795 #define PERL_ARGS_ASSERT_DEBSTACKPTRS 796 797 PERL_CALLCONV void 798 Perl_debug_hash_seed(pTHX_ bool via_debug_h) 799 __attribute__visibility__("hidden"); 800 #define PERL_ARGS_ASSERT_DEBUG_HASH_SEED 801 802 PERL_CALLCONV SV * 803 Perl_defelem_target(pTHX_ SV *sv, MAGIC *mg) 804 __attribute__warn_unused_result__ 805 __attribute__visibility__("hidden"); 806 #define PERL_ARGS_ASSERT_DEFELEM_TARGET \ 807 assert(sv) 808 809 PERL_CALLCONV void 810 Perl_delete_eval_scope(pTHX) 811 __attribute__visibility__("hidden"); 812 #define PERL_ARGS_ASSERT_DELETE_EVAL_SCOPE 813 814 PERL_CALLCONV char * 815 Perl_delimcpy(char *to, const char *to_end, const char *from, const char *from_end, const int delim, I32 *retlen); 816 #define PERL_ARGS_ASSERT_DELIMCPY \ 817 assert(to); assert(to_end); assert(from); assert(from_end); assert(retlen) 818 819 PERL_CALLCONV char * 820 Perl_delimcpy_no_escape(char *to, const char *to_end, const char *from, const char *from_end, const int delim, I32 *retlen); 821 #define PERL_ARGS_ASSERT_DELIMCPY_NO_ESCAPE \ 822 assert(to); assert(to_end); assert(from); assert(from_end); assert(retlen) 823 824 PERL_CALLCONV void 825 Perl_despatch_signals(pTHX); 826 #define PERL_ARGS_ASSERT_DESPATCH_SIGNALS 827 828 PERL_CALLCONV_NO_RET OP * 829 Perl_die(pTHX_ const char *pat, ...) 830 __attribute__noreturn__ 831 __attribute__format__null_ok__(__printf__,pTHX_1,pTHX_2); 832 #define PERL_ARGS_ASSERT_DIE 833 834 PERL_CALLCONV_NO_RET OP * 835 Perl_die_sv(pTHX_ SV *baseex) 836 __attribute__noreturn__; 837 #define PERL_ARGS_ASSERT_DIE_SV \ 838 assert(baseex) 839 840 PERL_CALLCONV_NO_RET void 841 Perl_die_unwind(pTHX_ SV *msv) 842 __attribute__noreturn__ 843 __attribute__visibility__("hidden"); 844 #define PERL_ARGS_ASSERT_DIE_UNWIND \ 845 assert(msv) 846 847 PERL_CALLCONV bool 848 Perl_do_aexec5(pTHX_ SV *really, SV **mark, SV **sp, int fd, int do_report) 849 __attribute__visibility__("hidden"); 850 #define PERL_ARGS_ASSERT_DO_AEXEC5 \ 851 assert(mark); assert(sp) 852 853 PERL_CALLCONV bool 854 Perl_do_close(pTHX_ GV *gv, bool is_explicit); 855 #define PERL_ARGS_ASSERT_DO_CLOSE 856 857 PERL_CALLCONV void 858 Perl_do_dump_pad(pTHX_ I32 level, PerlIO *file, PADLIST *padlist, int full) 859 __attribute__visibility__("hidden"); 860 #define PERL_ARGS_ASSERT_DO_DUMP_PAD \ 861 assert(file) 862 863 PERL_CALLCONV bool 864 Perl_do_eof(pTHX_ GV *gv) 865 __attribute__visibility__("hidden"); 866 #define PERL_ARGS_ASSERT_DO_EOF \ 867 assert(gv) 868 869 PERL_CALLCONV void 870 Perl_do_gv_dump(pTHX_ I32 level, PerlIO *file, const char *name, GV *sv); 871 #define PERL_ARGS_ASSERT_DO_GV_DUMP \ 872 assert(file); assert(name) 873 874 PERL_CALLCONV void 875 Perl_do_gvgv_dump(pTHX_ I32 level, PerlIO *file, const char *name, GV *sv); 876 #define PERL_ARGS_ASSERT_DO_GVGV_DUMP \ 877 assert(file); assert(name) 878 879 PERL_CALLCONV void 880 Perl_do_hv_dump(pTHX_ I32 level, PerlIO *file, const char *name, HV *sv); 881 #define PERL_ARGS_ASSERT_DO_HV_DUMP \ 882 assert(file); assert(name) 883 884 PERL_CALLCONV void 885 Perl_do_join(pTHX_ SV *sv, SV *delim, SV **mark, SV **sp); 886 #define PERL_ARGS_ASSERT_DO_JOIN \ 887 assert(sv); assert(delim); assert(mark); assert(sp) 888 889 PERL_CALLCONV void 890 Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, const MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim); 891 #define PERL_ARGS_ASSERT_DO_MAGIC_DUMP \ 892 assert(file) 893 894 PERL_CALLCONV I32 895 Perl_do_ncmp(pTHX_ SV * const left, SV * const right) 896 __attribute__warn_unused_result__ 897 __attribute__visibility__("hidden"); 898 #define PERL_ARGS_ASSERT_DO_NCMP \ 899 assert(left); assert(right) 900 901 PERL_CALLCONV void 902 Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, const OP *o); 903 #define PERL_ARGS_ASSERT_DO_OP_DUMP \ 904 assert(file) 905 906 PERL_CALLCONV bool 907 Perl_do_open6(pTHX_ GV *gv, const char *oname, STRLEN len, PerlIO *supplied_fp, SV **svp, U32 num) 908 __attribute__visibility__("hidden"); 909 #define PERL_ARGS_ASSERT_DO_OPEN6 \ 910 assert(gv); assert(oname) 911 912 PERL_CALLCONV bool 913 Perl_do_open_raw(pTHX_ GV *gv, const char *oname, STRLEN len, int rawmode, int rawperm, Stat_t *statbufp) 914 __attribute__visibility__("hidden"); 915 #define PERL_ARGS_ASSERT_DO_OPEN_RAW \ 916 assert(gv); assert(oname) 917 918 PERL_CALLCONV bool 919 Perl_do_openn(pTHX_ GV *gv, const char *oname, I32 len, int as_raw, int rawmode, int rawperm, PerlIO *supplied_fp, SV **svp, I32 num); 920 #define PERL_ARGS_ASSERT_DO_OPENN \ 921 assert(gv); assert(oname) 922 923 PERL_CALLCONV void 924 Perl_do_pmop_dump(pTHX_ I32 level, PerlIO *file, const PMOP *pm); 925 #define PERL_ARGS_ASSERT_DO_PMOP_DUMP \ 926 assert(file) 927 928 PERL_CALLCONV bool 929 Perl_do_print(pTHX_ SV *sv, PerlIO *fp) 930 __attribute__visibility__("hidden"); 931 #define PERL_ARGS_ASSERT_DO_PRINT \ 932 assert(fp) 933 934 PERL_CALLCONV OP * 935 Perl_do_readline(pTHX) 936 __attribute__warn_unused_result__ 937 __attribute__visibility__("hidden"); 938 #define PERL_ARGS_ASSERT_DO_READLINE 939 940 PERL_CALLCONV bool 941 Perl_do_seek(pTHX_ GV *gv, Off_t pos, int whence) 942 __attribute__visibility__("hidden"); 943 #define PERL_ARGS_ASSERT_DO_SEEK 944 945 PERL_CALLCONV void 946 Perl_do_sprintf(pTHX_ SV *sv, SSize_t len, SV **sarg); 947 #define PERL_ARGS_ASSERT_DO_SPRINTF \ 948 assert(sv); assert(sarg) 949 950 PERL_CALLCONV void 951 Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim); 952 #define PERL_ARGS_ASSERT_DO_SV_DUMP \ 953 assert(file) 954 955 PERL_CALLCONV Off_t 956 Perl_do_sysseek(pTHX_ GV *gv, Off_t pos, int whence) 957 __attribute__visibility__("hidden"); 958 #define PERL_ARGS_ASSERT_DO_SYSSEEK \ 959 assert(gv) 960 961 PERL_CALLCONV Off_t 962 Perl_do_tell(pTHX_ GV *gv) 963 __attribute__warn_unused_result__ 964 __attribute__visibility__("hidden"); 965 #define PERL_ARGS_ASSERT_DO_TELL \ 966 assert(gv) 967 968 PERL_CALLCONV Size_t 969 Perl_do_trans(pTHX_ SV *sv) 970 __attribute__visibility__("hidden"); 971 #define PERL_ARGS_ASSERT_DO_TRANS \ 972 assert(sv) 973 974 PERL_CALLCONV I16 975 Perl_do_uniprop_match(const char * const key, const U16 key_len) 976 __attribute__warn_unused_result__; 977 #define PERL_ARGS_ASSERT_DO_UNIPROP_MATCH \ 978 assert(key) 979 980 PERL_CALLCONV UV 981 Perl_do_vecget(pTHX_ SV *sv, STRLEN offset, int size) 982 __attribute__visibility__("hidden"); 983 #define PERL_ARGS_ASSERT_DO_VECGET \ 984 assert(sv) 985 986 PERL_CALLCONV void 987 Perl_do_vecset(pTHX_ SV *sv) 988 __attribute__visibility__("hidden"); 989 #define PERL_ARGS_ASSERT_DO_VECSET \ 990 assert(sv) 991 992 PERL_CALLCONV void 993 Perl_do_vop(pTHX_ I32 optype, SV *sv, SV *left, SV *right) 994 __attribute__visibility__("hidden"); 995 #define PERL_ARGS_ASSERT_DO_VOP \ 996 assert(sv); assert(left); assert(right) 997 998 PERL_CALLCONV OP * 999 Perl_dofile(pTHX_ OP *term, I32 force_builtin) 1000 __attribute__visibility__("hidden"); 1001 #define PERL_ARGS_ASSERT_DOFILE \ 1002 assert(term) 1003 1004 PERL_CALLCONV bool 1005 Perl_doing_taint(int argc, char **argv, char **env) 1006 __attribute__warn_unused_result__; 1007 #define PERL_ARGS_ASSERT_DOING_TAINT 1008 1009 PERL_CALLCONV OP * 1010 Perl_doref(pTHX_ OP *o, I32 type, bool set_op_ref); 1011 #define PERL_ARGS_ASSERT_DOREF \ 1012 assert(o) 1013 1014 PERL_CALLCONV void 1015 Perl_dounwind(pTHX_ I32 cxix); 1016 #define PERL_ARGS_ASSERT_DOUNWIND 1017 1018 PERL_CALLCONV U8 1019 Perl_dowantarray(pTHX) 1020 __attribute__deprecated__ 1021 __attribute__warn_unused_result__; 1022 #define PERL_ARGS_ASSERT_DOWANTARRAY 1023 1024 PERL_CALLCONV void 1025 Perl_drand48_init_r(perl_drand48_t *random_state, U32 seed); 1026 #define PERL_ARGS_ASSERT_DRAND48_INIT_R \ 1027 assert(random_state) 1028 1029 PERL_CALLCONV double 1030 Perl_drand48_r(perl_drand48_t *random_state); 1031 #define PERL_ARGS_ASSERT_DRAND48_R \ 1032 assert(random_state) 1033 1034 PERL_CALLCONV void 1035 Perl_dump_all(pTHX); 1036 #define PERL_ARGS_ASSERT_DUMP_ALL 1037 1038 PERL_CALLCONV void 1039 Perl_dump_all_perl(pTHX_ bool justperl) 1040 __attribute__visibility__("hidden"); 1041 #define PERL_ARGS_ASSERT_DUMP_ALL_PERL 1042 1043 PERL_CALLCONV void 1044 Perl_dump_eval(pTHX); 1045 #define PERL_ARGS_ASSERT_DUMP_EVAL 1046 1047 PERL_CALLCONV void 1048 Perl_dump_form(pTHX_ const GV *gv); 1049 #define PERL_ARGS_ASSERT_DUMP_FORM \ 1050 assert(gv) 1051 1052 PERL_CALLCONV void 1053 Perl_dump_indent(pTHX_ I32 level, PerlIO *file, const char *pat, ...) 1054 __attribute__format__(__printf__,pTHX_3,pTHX_4); 1055 #define PERL_ARGS_ASSERT_DUMP_INDENT \ 1056 assert(file); assert(pat) 1057 1058 PERL_CALLCONV void 1059 Perl_dump_packsubs(pTHX_ const HV *stash); 1060 #define PERL_ARGS_ASSERT_DUMP_PACKSUBS \ 1061 assert(stash) 1062 1063 PERL_CALLCONV void 1064 Perl_dump_packsubs_perl(pTHX_ const HV *stash, bool justperl) 1065 __attribute__visibility__("hidden"); 1066 #define PERL_ARGS_ASSERT_DUMP_PACKSUBS_PERL \ 1067 assert(stash) 1068 1069 PERL_CALLCONV void 1070 Perl_dump_sub(pTHX_ const GV *gv); 1071 #define PERL_ARGS_ASSERT_DUMP_SUB \ 1072 assert(gv) 1073 1074 PERL_CALLCONV void 1075 Perl_dump_sub_perl(pTHX_ const GV *gv, bool justperl) 1076 __attribute__visibility__("hidden"); 1077 #define PERL_ARGS_ASSERT_DUMP_SUB_PERL \ 1078 assert(gv) 1079 1080 PERL_CALLCONV void 1081 Perl_dump_vindent(pTHX_ I32 level, PerlIO *file, const char *pat, va_list *args); 1082 #define PERL_ARGS_ASSERT_DUMP_VINDENT \ 1083 assert(file); assert(pat) 1084 1085 PERL_CALLCONV char * 1086 Perl_dup_warnings(pTHX_ char *warnings); 1087 #define PERL_ARGS_ASSERT_DUP_WARNINGS 1088 1089 PERL_CALLCONV void 1090 Perl_emulate_cop_io(pTHX_ const COP * const c, SV * const sv); 1091 #define PERL_ARGS_ASSERT_EMULATE_COP_IO \ 1092 assert(c); assert(sv) 1093 1094 PERL_CALLCONV SV * 1095 Perl_eval_pv(pTHX_ const char *p, I32 croak_on_error); 1096 #define PERL_ARGS_ASSERT_EVAL_PV \ 1097 assert(p) 1098 1099 PERL_CALLCONV I32 1100 Perl_eval_sv(pTHX_ SV *sv, I32 flags); 1101 #define PERL_ARGS_ASSERT_EVAL_SV \ 1102 assert(sv) 1103 1104 PERL_CALLCONV void 1105 Perl_fbm_compile(pTHX_ SV *sv, U32 flags); 1106 #define PERL_ARGS_ASSERT_FBM_COMPILE \ 1107 assert(sv) 1108 1109 PERL_CALLCONV char * 1110 Perl_fbm_instr(pTHX_ unsigned char *big, unsigned char *bigend, SV *littlestr, U32 flags) 1111 __attribute__warn_unused_result__; 1112 #define PERL_ARGS_ASSERT_FBM_INSTR \ 1113 assert(big); assert(bigend); assert(littlestr) 1114 1115 PERL_CALLCONV SV * 1116 Perl_filter_add(pTHX_ filter_t funcp, SV *datasv); 1117 #define PERL_ARGS_ASSERT_FILTER_ADD 1118 1119 PERL_CALLCONV void 1120 Perl_filter_del(pTHX_ filter_t funcp); 1121 #define PERL_ARGS_ASSERT_FILTER_DEL \ 1122 assert(funcp) 1123 1124 PERL_CALLCONV I32 1125 Perl_filter_read(pTHX_ int idx, SV *buf_sv, int maxlen) 1126 __attribute__warn_unused_result__; 1127 #define PERL_ARGS_ASSERT_FILTER_READ \ 1128 assert(buf_sv) 1129 1130 PERL_CALLCONV CV * 1131 Perl_find_lexical_cv(pTHX_ PADOFFSET off) 1132 __attribute__visibility__("hidden"); 1133 #define PERL_ARGS_ASSERT_FIND_LEXICAL_CV 1134 1135 PERL_CALLCONV CV * 1136 Perl_find_runcv(pTHX_ U32 *db_seqp) 1137 __attribute__warn_unused_result__; 1138 #define PERL_ARGS_ASSERT_FIND_RUNCV 1139 1140 PERL_CALLCONV CV * 1141 Perl_find_runcv_where(pTHX_ U8 cond, IV arg, U32 *db_seqp) 1142 __attribute__warn_unused_result__ 1143 __attribute__visibility__("hidden"); 1144 #define PERL_ARGS_ASSERT_FIND_RUNCV_WHERE 1145 1146 PERL_CALLCONV SV * 1147 Perl_find_rundefsv(pTHX); 1148 #define PERL_ARGS_ASSERT_FIND_RUNDEFSV 1149 1150 PERL_CALLCONV char * 1151 Perl_find_script(pTHX_ const char *scriptname, bool dosearch, const char * const * const search_ext, I32 flags) 1152 __attribute__visibility__("hidden"); 1153 #define PERL_ARGS_ASSERT_FIND_SCRIPT \ 1154 assert(scriptname) 1155 1156 /* PERL_CALLCONV I32 1157 foldEQ_utf8(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2); */ 1158 1159 PERL_CALLCONV I32 1160 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); 1161 #define PERL_ARGS_ASSERT_FOLDEQ_UTF8_FLAGS \ 1162 assert(s1); assert(s2) 1163 1164 PERL_CALLCONV void 1165 Perl_forbid_outofblock_ops(pTHX_ OP *o, const char *blockname); 1166 #define PERL_ARGS_ASSERT_FORBID_OUTOFBLOCK_OPS \ 1167 assert(o); assert(blockname) 1168 1169 PERL_CALLCONV void 1170 Perl_force_locale_unlock(void) 1171 __attribute__visibility__("hidden"); 1172 #define PERL_ARGS_ASSERT_FORCE_LOCALE_UNLOCK 1173 1174 PERL_CALLCONV char * 1175 Perl_form(pTHX_ const char *pat, ...) 1176 __attribute__format__(__printf__,pTHX_1,pTHX_2); 1177 #define PERL_ARGS_ASSERT_FORM \ 1178 assert(pat) 1179 1180 PERL_CALLCONV void 1181 Perl_free_tied_hv_pool(pTHX) 1182 __attribute__visibility__("hidden"); 1183 #define PERL_ARGS_ASSERT_FREE_TIED_HV_POOL 1184 1185 PERL_CALLCONV void 1186 Perl_free_tmps(pTHX); 1187 #define PERL_ARGS_ASSERT_FREE_TMPS 1188 1189 PERL_CALLCONV SV * 1190 Perl_get_and_check_backslash_N_name(pTHX_ const char *s, const char *e, const bool is_utf8, const char **error_msg) 1191 __attribute__warn_unused_result__; 1192 #define PERL_ARGS_ASSERT_GET_AND_CHECK_BACKSLASH_N_NAME \ 1193 assert(s); assert(e); assert(error_msg) 1194 1195 PERL_CALLCONV AV * 1196 Perl_get_av(pTHX_ const char *name, I32 flags); 1197 #define PERL_ARGS_ASSERT_GET_AV \ 1198 assert(name) 1199 1200 PERL_CALLCONV CV * 1201 Perl_get_cv(pTHX_ const char *name, I32 flags); 1202 #define PERL_ARGS_ASSERT_GET_CV \ 1203 assert(name) 1204 1205 PERL_CALLCONV CV * 1206 Perl_get_cvn_flags(pTHX_ const char *name, STRLEN len, I32 flags); 1207 #define PERL_ARGS_ASSERT_GET_CVN_FLAGS \ 1208 assert(name) 1209 1210 PERL_CALLCONV void 1211 Perl_get_db_sub(pTHX_ SV **svp, CV *cv); 1212 #define PERL_ARGS_ASSERT_GET_DB_SUB \ 1213 assert(cv) 1214 1215 PERL_CALLCONV const char * 1216 Perl_get_deprecated_property_msg(const Size_t warning_offset) 1217 __attribute__warn_unused_result__; 1218 #define PERL_ARGS_ASSERT_GET_DEPRECATED_PROPERTY_MSG 1219 1220 PERL_CALLCONV int 1221 Perl_get_extended_os_errno(void) 1222 __attribute__visibility__("hidden"); 1223 #define PERL_ARGS_ASSERT_GET_EXTENDED_OS_ERRNO 1224 1225 PERL_CALLCONV void 1226 Perl_get_hash_seed(pTHX_ unsigned char * const seed_buffer) 1227 __attribute__visibility__("hidden"); 1228 #define PERL_ARGS_ASSERT_GET_HASH_SEED \ 1229 assert(seed_buffer) 1230 1231 PERL_CALLCONV HV * 1232 Perl_get_hv(pTHX_ const char *name, I32 flags); 1233 #define PERL_ARGS_ASSERT_GET_HV \ 1234 assert(name) 1235 1236 PERL_CALLCONV const char * 1237 Perl_get_no_modify(pTHX) 1238 __attribute__deprecated__ 1239 __attribute__warn_unused_result__ 1240 __attribute__pure__ 1241 __attribute__visibility__("hidden"); 1242 #define PERL_ARGS_ASSERT_GET_NO_MODIFY 1243 1244 PERL_CALLCONV char ** 1245 Perl_get_op_descs(pTHX) 1246 __attribute__deprecated__ 1247 __attribute__warn_unused_result__ 1248 __attribute__pure__; 1249 #define PERL_ARGS_ASSERT_GET_OP_DESCS 1250 1251 PERL_CALLCONV char ** 1252 Perl_get_op_names(pTHX) 1253 __attribute__deprecated__ 1254 __attribute__warn_unused_result__ 1255 __attribute__pure__; 1256 #define PERL_ARGS_ASSERT_GET_OP_NAMES 1257 1258 PERL_CALLCONV U32 * 1259 Perl_get_opargs(pTHX) 1260 __attribute__deprecated__ 1261 __attribute__warn_unused_result__ 1262 __attribute__pure__ 1263 __attribute__visibility__("hidden"); 1264 #define PERL_ARGS_ASSERT_GET_OPARGS 1265 1266 PERL_CALLCONV PPADDR_t * 1267 Perl_get_ppaddr(pTHX) 1268 __attribute__deprecated__ 1269 __attribute__warn_unused_result__ 1270 __attribute__pure__; 1271 #define PERL_ARGS_ASSERT_GET_PPADDR 1272 1273 PERL_CALLCONV SV * 1274 Perl_get_prop_definition(pTHX_ const int table_index) 1275 __attribute__warn_unused_result__; 1276 #define PERL_ARGS_ASSERT_GET_PROP_DEFINITION 1277 1278 PERL_CALLCONV const char * const * 1279 Perl_get_prop_values(const int table_index) 1280 __attribute__warn_unused_result__; 1281 #define PERL_ARGS_ASSERT_GET_PROP_VALUES 1282 1283 PERL_CALLCONV REGEXP * 1284 Perl_get_re_arg(pTHX_ SV *sv); 1285 #define PERL_ARGS_ASSERT_GET_RE_ARG 1286 1287 PERL_CALLCONV SV * 1288 Perl_get_sv(pTHX_ const char *name, I32 flags); 1289 #define PERL_ARGS_ASSERT_GET_SV \ 1290 assert(name) 1291 1292 PERL_CALLCONV int 1293 Perl_getcwd_sv(pTHX_ SV *sv); 1294 #define PERL_ARGS_ASSERT_GETCWD_SV \ 1295 assert(sv) 1296 1297 PERL_CALLCONV void 1298 Perl_gp_free(pTHX_ GV *gv); 1299 #define PERL_ARGS_ASSERT_GP_FREE 1300 1301 PERL_CALLCONV GP * 1302 Perl_gp_ref(pTHX_ GP *gp); 1303 #define PERL_ARGS_ASSERT_GP_REF 1304 1305 PERL_CALLCONV bool 1306 Perl_grok_atoUV(const char *pv, UV *valptr, const char **endptr); 1307 #define PERL_ARGS_ASSERT_GROK_ATOUV \ 1308 assert(pv); assert(valptr) 1309 1310 PERL_CALLCONV UV 1311 Perl_grok_bin(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result); 1312 #define PERL_ARGS_ASSERT_GROK_BIN \ 1313 assert(start); assert(len_p); assert(flags) 1314 1315 PERL_CALLCONV UV 1316 Perl_grok_bin_oct_hex(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result, const unsigned shift, const U8 lookup_bit, const char prefix); 1317 #define PERL_ARGS_ASSERT_GROK_BIN_OCT_HEX \ 1318 assert(start); assert(len_p); assert(flags) 1319 1320 PERL_CALLCONV UV 1321 Perl_grok_hex(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result); 1322 #define PERL_ARGS_ASSERT_GROK_HEX \ 1323 assert(start); assert(len_p); assert(flags) 1324 1325 PERL_CALLCONV int 1326 Perl_grok_infnan(pTHX_ const char **sp, const char *send); 1327 #define PERL_ARGS_ASSERT_GROK_INFNAN \ 1328 assert(sp); assert(send) 1329 1330 PERL_CALLCONV int 1331 Perl_grok_number(pTHX_ const char *pv, STRLEN len, UV *valuep); 1332 #define PERL_ARGS_ASSERT_GROK_NUMBER \ 1333 assert(pv) 1334 1335 PERL_CALLCONV int 1336 Perl_grok_number_flags(pTHX_ const char *pv, STRLEN len, UV *valuep, U32 flags); 1337 #define PERL_ARGS_ASSERT_GROK_NUMBER_FLAGS \ 1338 assert(pv) 1339 1340 PERL_CALLCONV bool 1341 Perl_grok_numeric_radix(pTHX_ const char **sp, const char *send) 1342 __attribute__warn_unused_result__; 1343 #define PERL_ARGS_ASSERT_GROK_NUMERIC_RADIX \ 1344 assert(sp); assert(send) 1345 1346 PERL_CALLCONV UV 1347 Perl_grok_oct(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result); 1348 #define PERL_ARGS_ASSERT_GROK_OCT \ 1349 assert(start); assert(len_p); assert(flags) 1350 1351 PERL_CALLCONV GV * 1352 Perl_gv_add_by_type(pTHX_ GV *gv, svtype type); 1353 #define PERL_ARGS_ASSERT_GV_ADD_BY_TYPE 1354 1355 /* PERL_CALLCONV GV * 1356 gv_autoload4(pTHX_ HV *stash, const char *name, STRLEN len, I32 method) 1357 __attribute__warn_unused_result__; */ 1358 1359 PERL_CALLCONV GV * 1360 Perl_gv_autoload_pv(pTHX_ HV *stash, const char *namepv, U32 flags) 1361 __attribute__warn_unused_result__; 1362 #define PERL_ARGS_ASSERT_GV_AUTOLOAD_PV \ 1363 assert(namepv) 1364 1365 PERL_CALLCONV GV * 1366 Perl_gv_autoload_pvn(pTHX_ HV *stash, const char *name, STRLEN len, U32 flags) 1367 __attribute__warn_unused_result__; 1368 #define PERL_ARGS_ASSERT_GV_AUTOLOAD_PVN \ 1369 assert(name) 1370 1371 PERL_CALLCONV GV * 1372 Perl_gv_autoload_sv(pTHX_ HV *stash, SV *namesv, U32 flags) 1373 __attribute__warn_unused_result__; 1374 #define PERL_ARGS_ASSERT_GV_AUTOLOAD_SV \ 1375 assert(namesv) 1376 1377 PERL_CALLCONV void 1378 Perl_gv_check(pTHX_ HV *stash); 1379 #define PERL_ARGS_ASSERT_GV_CHECK \ 1380 assert(stash) 1381 1382 PERL_CALLCONV SV * 1383 Perl_gv_const_sv(pTHX_ GV *gv) 1384 __attribute__warn_unused_result__; 1385 #define PERL_ARGS_ASSERT_GV_CONST_SV \ 1386 assert(gv) 1387 1388 PERL_CALLCONV void 1389 Perl_gv_dump(pTHX_ GV *gv); 1390 #define PERL_ARGS_ASSERT_GV_DUMP 1391 1392 PERL_CALLCONV void 1393 Perl_gv_efullname4(pTHX_ SV *sv, const GV *gv, const char *prefix, bool keepmain); 1394 #define PERL_ARGS_ASSERT_GV_EFULLNAME4 \ 1395 assert(sv); assert(gv) 1396 1397 PERL_CALLCONV GV * 1398 Perl_gv_fetchfile(pTHX_ const char *name); 1399 #define PERL_ARGS_ASSERT_GV_FETCHFILE \ 1400 assert(name) 1401 1402 PERL_CALLCONV GV * 1403 Perl_gv_fetchfile_flags(pTHX_ const char * const name, const STRLEN len, const U32 flags); 1404 #define PERL_ARGS_ASSERT_GV_FETCHFILE_FLAGS \ 1405 assert(name) 1406 1407 /* PERL_CALLCONV GV * 1408 gv_fetchmeth(pTHX_ HV *stash, const char *name, STRLEN len, I32 level); */ 1409 1410 /* PERL_CALLCONV GV * 1411 gv_fetchmeth_autoload(pTHX_ HV *stash, const char *name, STRLEN len, I32 level); */ 1412 1413 PERL_CALLCONV GV * 1414 Perl_gv_fetchmeth_pv(pTHX_ HV *stash, const char *name, I32 level, U32 flags); 1415 #define PERL_ARGS_ASSERT_GV_FETCHMETH_PV \ 1416 assert(name) 1417 1418 PERL_CALLCONV GV * 1419 Perl_gv_fetchmeth_pv_autoload(pTHX_ HV *stash, const char *name, I32 level, U32 flags); 1420 #define PERL_ARGS_ASSERT_GV_FETCHMETH_PV_AUTOLOAD \ 1421 assert(name) 1422 1423 PERL_CALLCONV GV * 1424 Perl_gv_fetchmeth_pvn(pTHX_ HV *stash, const char *name, STRLEN len, I32 level, U32 flags); 1425 #define PERL_ARGS_ASSERT_GV_FETCHMETH_PVN \ 1426 assert(name) 1427 1428 PERL_CALLCONV GV * 1429 Perl_gv_fetchmeth_pvn_autoload(pTHX_ HV *stash, const char *name, STRLEN len, I32 level, U32 flags); 1430 #define PERL_ARGS_ASSERT_GV_FETCHMETH_PVN_AUTOLOAD \ 1431 assert(name) 1432 1433 PERL_CALLCONV GV * 1434 Perl_gv_fetchmeth_sv(pTHX_ HV *stash, SV *namesv, I32 level, U32 flags); 1435 #define PERL_ARGS_ASSERT_GV_FETCHMETH_SV \ 1436 assert(namesv) 1437 1438 PERL_CALLCONV GV * 1439 Perl_gv_fetchmeth_sv_autoload(pTHX_ HV *stash, SV *namesv, I32 level, U32 flags); 1440 #define PERL_ARGS_ASSERT_GV_FETCHMETH_SV_AUTOLOAD \ 1441 assert(namesv) 1442 1443 PERL_CALLCONV GV * 1444 Perl_gv_fetchmethod_autoload(pTHX_ HV *stash, const char *name, I32 autoload); 1445 #define PERL_ARGS_ASSERT_GV_FETCHMETHOD_AUTOLOAD \ 1446 assert(stash); assert(name) 1447 1448 PERL_CALLCONV GV * 1449 Perl_gv_fetchmethod_pv_flags(pTHX_ HV *stash, const char *name, U32 flags); 1450 #define PERL_ARGS_ASSERT_GV_FETCHMETHOD_PV_FLAGS \ 1451 assert(stash); assert(name) 1452 1453 PERL_CALLCONV GV * 1454 Perl_gv_fetchmethod_pvn_flags(pTHX_ HV *stash, const char *name, const STRLEN len, U32 flags); 1455 #define PERL_ARGS_ASSERT_GV_FETCHMETHOD_PVN_FLAGS \ 1456 assert(stash); assert(name) 1457 1458 PERL_CALLCONV GV * 1459 Perl_gv_fetchmethod_sv_flags(pTHX_ HV *stash, SV *namesv, U32 flags); 1460 #define PERL_ARGS_ASSERT_GV_FETCHMETHOD_SV_FLAGS \ 1461 assert(stash); assert(namesv) 1462 1463 PERL_CALLCONV GV * 1464 Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 flags, const svtype sv_type); 1465 #define PERL_ARGS_ASSERT_GV_FETCHPV \ 1466 assert(nambeg) 1467 1468 PERL_CALLCONV GV * 1469 Perl_gv_fetchpvn_flags(pTHX_ const char *name, STRLEN len, I32 flags, const svtype sv_type); 1470 #define PERL_ARGS_ASSERT_GV_FETCHPVN_FLAGS \ 1471 assert(name) 1472 1473 PERL_CALLCONV GV * 1474 Perl_gv_fetchsv(pTHX_ SV *name, I32 flags, const svtype sv_type); 1475 #define PERL_ARGS_ASSERT_GV_FETCHSV \ 1476 assert(name) 1477 1478 PERL_CALLCONV void 1479 Perl_gv_fullname4(pTHX_ SV *sv, const GV *gv, const char *prefix, bool keepmain); 1480 #define PERL_ARGS_ASSERT_GV_FULLNAME4 \ 1481 assert(sv); assert(gv) 1482 1483 PERL_CALLCONV CV * 1484 Perl_gv_handler(pTHX_ HV *stash, I32 id) 1485 __attribute__warn_unused_result__; 1486 #define PERL_ARGS_ASSERT_GV_HANDLER 1487 1488 /* PERL_CALLCONV void 1489 gv_init(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len, int multi); */ 1490 1491 PERL_CALLCONV void 1492 Perl_gv_init_pv(pTHX_ GV *gv, HV *stash, const char *name, U32 flags); 1493 #define PERL_ARGS_ASSERT_GV_INIT_PV \ 1494 assert(gv); assert(name) 1495 1496 PERL_CALLCONV void 1497 Perl_gv_init_pvn(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len, U32 flags); 1498 #define PERL_ARGS_ASSERT_GV_INIT_PVN \ 1499 assert(gv); assert(name) 1500 1501 PERL_CALLCONV void 1502 Perl_gv_init_sv(pTHX_ GV *gv, HV *stash, SV *namesv, U32 flags); 1503 #define PERL_ARGS_ASSERT_GV_INIT_SV \ 1504 assert(gv); assert(namesv) 1505 1506 PERL_CALLCONV void 1507 Perl_gv_name_set(pTHX_ GV *gv, const char *name, U32 len, U32 flags); 1508 #define PERL_ARGS_ASSERT_GV_NAME_SET \ 1509 assert(gv); assert(name) 1510 1511 PERL_CALLCONV GV * 1512 Perl_gv_override(pTHX_ const char * const name, const STRLEN len); 1513 #define PERL_ARGS_ASSERT_GV_OVERRIDE \ 1514 assert(name) 1515 1516 PERL_CALLCONV void 1517 Perl_gv_setref(pTHX_ SV * const dsv, SV * const ssv) 1518 __attribute__visibility__("hidden"); 1519 #define PERL_ARGS_ASSERT_GV_SETREF \ 1520 assert(dsv); assert(ssv) 1521 1522 PERL_CALLCONV HV * 1523 Perl_gv_stashpv(pTHX_ const char *name, I32 flags); 1524 #define PERL_ARGS_ASSERT_GV_STASHPV \ 1525 assert(name) 1526 1527 PERL_CALLCONV HV * 1528 Perl_gv_stashpvn(pTHX_ const char *name, U32 namelen, I32 flags); 1529 #define PERL_ARGS_ASSERT_GV_STASHPVN \ 1530 assert(name) 1531 1532 PERL_CALLCONV HV * 1533 Perl_gv_stashsv(pTHX_ SV *sv, I32 flags); 1534 #define PERL_ARGS_ASSERT_GV_STASHSV \ 1535 assert(sv) 1536 1537 PERL_CALLCONV void 1538 Perl_gv_try_downgrade(pTHX_ GV *gv); 1539 #define PERL_ARGS_ASSERT_GV_TRY_DOWNGRADE \ 1540 assert(gv) 1541 1542 PERL_CALLCONV struct xpvhv_aux * 1543 Perl_hv_auxalloc(pTHX_ HV *hv) 1544 __attribute__visibility__("hidden"); 1545 #define PERL_ARGS_ASSERT_HV_AUXALLOC \ 1546 assert(hv) 1547 1548 PERL_CALLCONV AV ** 1549 Perl_hv_backreferences_p(pTHX_ HV *hv) 1550 __attribute__visibility__("hidden"); 1551 #define PERL_ARGS_ASSERT_HV_BACKREFERENCES_P \ 1552 assert(hv) 1553 1554 PERL_CALLCONV SV * 1555 Perl_hv_bucket_ratio(pTHX_ HV *hv) 1556 __attribute__warn_unused_result__; 1557 #define PERL_ARGS_ASSERT_HV_BUCKET_RATIO \ 1558 assert(hv) 1559 1560 PERL_CALLCONV void 1561 Perl_hv_clear(pTHX_ HV *hv); 1562 #define PERL_ARGS_ASSERT_HV_CLEAR 1563 1564 PERL_CALLCONV void 1565 Perl_hv_clear_placeholders(pTHX_ HV *hv); 1566 #define PERL_ARGS_ASSERT_HV_CLEAR_PLACEHOLDERS \ 1567 assert(hv) 1568 1569 PERL_CALLCONV void * 1570 Perl_hv_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen, int flags, int action, SV *val, U32 hash); 1571 #define PERL_ARGS_ASSERT_HV_COMMON 1572 1573 PERL_CALLCONV void * 1574 Perl_hv_common_key_len(pTHX_ HV *hv, const char *key, I32 klen_i32, const int action, SV *val, const U32 hash); 1575 #define PERL_ARGS_ASSERT_HV_COMMON_KEY_LEN \ 1576 assert(key) 1577 1578 PERL_CALLCONV HV * 1579 Perl_hv_copy_hints_hv(pTHX_ HV * const ohv) 1580 __attribute__warn_unused_result__; 1581 #define PERL_ARGS_ASSERT_HV_COPY_HINTS_HV 1582 1583 PERL_CALLCONV void 1584 Perl_hv_delayfree_ent(pTHX_ HV *notused, HE *entry); 1585 #define PERL_ARGS_ASSERT_HV_DELAYFREE_ENT 1586 1587 PERL_CALLCONV void 1588 Perl_hv_dump(pTHX_ HV *hv); 1589 #define PERL_ARGS_ASSERT_HV_DUMP 1590 1591 PERL_CALLCONV HE ** 1592 Perl_hv_eiter_p(pTHX_ HV *hv) 1593 __attribute__warn_unused_result__; 1594 #define PERL_ARGS_ASSERT_HV_EITER_P \ 1595 assert(hv) 1596 1597 PERL_CALLCONV void 1598 Perl_hv_eiter_set(pTHX_ HV *hv, HE *eiter); 1599 #define PERL_ARGS_ASSERT_HV_EITER_SET \ 1600 assert(hv) 1601 1602 PERL_CALLCONV void 1603 Perl_hv_ename_add(pTHX_ HV *hv, const char *name, U32 len, U32 flags) 1604 __attribute__visibility__("hidden"); 1605 #define PERL_ARGS_ASSERT_HV_ENAME_ADD \ 1606 assert(hv); assert(name) 1607 1608 PERL_CALLCONV void 1609 Perl_hv_ename_delete(pTHX_ HV *hv, const char *name, U32 len, U32 flags) 1610 __attribute__visibility__("hidden"); 1611 #define PERL_ARGS_ASSERT_HV_ENAME_DELETE \ 1612 assert(hv); assert(name) 1613 1614 PERL_CALLCONV STRLEN 1615 Perl_hv_fill(pTHX_ HV * const hv); 1616 #define PERL_ARGS_ASSERT_HV_FILL \ 1617 assert(hv) 1618 1619 PERL_CALLCONV void 1620 Perl_hv_free_ent(pTHX_ HV *notused, HE *entry); 1621 #define PERL_ARGS_ASSERT_HV_FREE_ENT 1622 1623 PERL_CALLCONV I32 1624 Perl_hv_iterinit(pTHX_ HV *hv); 1625 #define PERL_ARGS_ASSERT_HV_ITERINIT \ 1626 assert(hv) 1627 1628 PERL_CALLCONV char * 1629 Perl_hv_iterkey(pTHX_ HE *entry, I32 *retlen) 1630 __attribute__warn_unused_result__; 1631 #define PERL_ARGS_ASSERT_HV_ITERKEY \ 1632 assert(entry); assert(retlen) 1633 1634 PERL_CALLCONV SV * 1635 Perl_hv_iterkeysv(pTHX_ HE *entry) 1636 __attribute__warn_unused_result__; 1637 #define PERL_ARGS_ASSERT_HV_ITERKEYSV \ 1638 assert(entry) 1639 1640 PERL_CALLCONV HE * 1641 Perl_hv_iternext_flags(pTHX_ HV *hv, I32 flags) 1642 __attribute__warn_unused_result__; 1643 #define PERL_ARGS_ASSERT_HV_ITERNEXT_FLAGS \ 1644 assert(hv) 1645 1646 PERL_CALLCONV SV * 1647 Perl_hv_iternextsv(pTHX_ HV *hv, char **key, I32 *retlen) 1648 __attribute__warn_unused_result__; 1649 #define PERL_ARGS_ASSERT_HV_ITERNEXTSV \ 1650 assert(hv); assert(key); assert(retlen) 1651 1652 PERL_CALLCONV SV * 1653 Perl_hv_iterval(pTHX_ HV *hv, HE *entry) 1654 __attribute__warn_unused_result__; 1655 #define PERL_ARGS_ASSERT_HV_ITERVAL \ 1656 assert(hv); assert(entry) 1657 1658 PERL_CALLCONV void 1659 Perl_hv_ksplit(pTHX_ HV *hv, IV newmax); 1660 #define PERL_ARGS_ASSERT_HV_KSPLIT \ 1661 assert(hv) 1662 1663 PERL_CALLCONV void 1664 Perl_hv_name_set(pTHX_ HV *hv, const char *name, U32 len, U32 flags); 1665 #define PERL_ARGS_ASSERT_HV_NAME_SET \ 1666 assert(hv) 1667 1668 PERL_CALLCONV I32 1669 Perl_hv_placeholders_get(pTHX_ const HV *hv) 1670 __attribute__warn_unused_result__; 1671 #define PERL_ARGS_ASSERT_HV_PLACEHOLDERS_GET \ 1672 assert(hv) 1673 1674 PERL_CALLCONV SSize_t * 1675 Perl_hv_placeholders_p(pTHX_ HV *hv) 1676 __attribute__warn_unused_result__; 1677 #define PERL_ARGS_ASSERT_HV_PLACEHOLDERS_P \ 1678 assert(hv) 1679 1680 PERL_CALLCONV void 1681 Perl_hv_placeholders_set(pTHX_ HV *hv, I32 ph); 1682 #define PERL_ARGS_ASSERT_HV_PLACEHOLDERS_SET \ 1683 assert(hv) 1684 1685 PERL_CALLCONV void 1686 Perl_hv_pushkv(pTHX_ HV *hv, U32 flags) 1687 __attribute__visibility__("hidden"); 1688 #define PERL_ARGS_ASSERT_HV_PUSHKV \ 1689 assert(hv) 1690 1691 PERL_CALLCONV void 1692 Perl_hv_rand_set(pTHX_ HV *hv, U32 new_xhv_rand); 1693 #define PERL_ARGS_ASSERT_HV_RAND_SET \ 1694 assert(hv) 1695 1696 PERL_CALLCONV I32 * 1697 Perl_hv_riter_p(pTHX_ HV *hv) 1698 __attribute__warn_unused_result__; 1699 #define PERL_ARGS_ASSERT_HV_RITER_P \ 1700 assert(hv) 1701 1702 PERL_CALLCONV void 1703 Perl_hv_riter_set(pTHX_ HV *hv, I32 riter); 1704 #define PERL_ARGS_ASSERT_HV_RITER_SET \ 1705 assert(hv) 1706 1707 PERL_CALLCONV SV * 1708 Perl_hv_scalar(pTHX_ HV *hv) 1709 __attribute__warn_unused_result__; 1710 #define PERL_ARGS_ASSERT_HV_SCALAR \ 1711 assert(hv) 1712 1713 /* PERL_CALLCONV SV ** 1714 hv_stores(pTHX_ HV *hv, const char * const key, SV *val); */ 1715 1716 /* PERL_CALLCONV void 1717 hv_undef(pTHX_ HV *hv); */ 1718 1719 PERL_CALLCONV void 1720 Perl_hv_undef_flags(pTHX_ HV *hv, U32 flags); 1721 #define PERL_ARGS_ASSERT_HV_UNDEF_FLAGS 1722 1723 /* PERL_CALLCONV I32 1724 ibcmp(pTHX_ const char *a, const char *b, I32 len) 1725 __attribute__warn_unused_result__ 1726 __attribute__pure__; */ 1727 1728 /* PERL_CALLCONV I32 1729 ibcmp_locale(pTHX_ const char *a, const char *b, I32 len) 1730 __attribute__warn_unused_result__ 1731 __attribute__pure__; */ 1732 1733 /* PERL_CALLCONV I32 1734 ibcmp_utf8(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2); */ 1735 1736 PERL_CALLCONV STRLEN 1737 Perl_infix_plugin_standard(pTHX_ char *operator_ptr, STRLEN operator_len, struct Perl_custom_infix **def); 1738 #define PERL_ARGS_ASSERT_INFIX_PLUGIN_STANDARD \ 1739 assert(operator_ptr); assert(def) 1740 1741 PERL_CALLCONV void 1742 Perl_init_argv_symbols(pTHX_ int argc, char **argv) 1743 __attribute__visibility__("hidden"); 1744 #define PERL_ARGS_ASSERT_INIT_ARGV_SYMBOLS \ 1745 assert(argv) 1746 1747 PERL_CALLCONV void 1748 Perl_init_constants(pTHX) 1749 __attribute__visibility__("hidden"); 1750 #define PERL_ARGS_ASSERT_INIT_CONSTANTS 1751 1752 PERL_CALLCONV void 1753 Perl_init_dbargs(pTHX) 1754 __attribute__visibility__("hidden"); 1755 #define PERL_ARGS_ASSERT_INIT_DBARGS 1756 1757 PERL_CALLCONV void 1758 Perl_init_debugger(pTHX) 1759 __attribute__visibility__("hidden"); 1760 #define PERL_ARGS_ASSERT_INIT_DEBUGGER 1761 1762 PERL_CALLCONV int 1763 Perl_init_i18nl10n(pTHX_ int printwarn); 1764 #define PERL_ARGS_ASSERT_INIT_I18NL10N 1765 1766 PERL_CALLCONV void 1767 Perl_init_named_cv(pTHX_ CV *cv, OP *nameop); 1768 #define PERL_ARGS_ASSERT_INIT_NAMED_CV \ 1769 assert(cv); assert(nameop) 1770 1771 PERL_CALLCONV void 1772 Perl_init_stacks(pTHX); 1773 #define PERL_ARGS_ASSERT_INIT_STACKS 1774 1775 PERL_CALLCONV void 1776 Perl_init_tm(pTHX_ struct tm *ptm); 1777 #define PERL_ARGS_ASSERT_INIT_TM \ 1778 assert(ptm) 1779 1780 PERL_CALLCONV void 1781 Perl_init_uniprops(pTHX) 1782 __attribute__visibility__("hidden"); 1783 #define PERL_ARGS_ASSERT_INIT_UNIPROPS 1784 1785 PERL_CALLCONV U32 1786 Perl_intro_my(pTHX); 1787 #define PERL_ARGS_ASSERT_INTRO_MY 1788 1789 PERL_CALLCONV OP * 1790 Perl_invert(pTHX_ OP *cmd) 1791 __attribute__warn_unused_result__ 1792 __attribute__visibility__("hidden"); 1793 #define PERL_ARGS_ASSERT_INVERT 1794 1795 PERL_CALLCONV void 1796 Perl_invmap_dump(pTHX_ SV *invlist, UV *map) 1797 __attribute__visibility__("hidden"); 1798 #define PERL_ARGS_ASSERT_INVMAP_DUMP \ 1799 assert(invlist); assert(map) 1800 1801 PERL_CALLCONV bool 1802 Perl_io_close(pTHX_ IO *io, GV *gv, bool is_explicit, bool warn_on_fail) 1803 __attribute__visibility__("hidden"); 1804 #define PERL_ARGS_ASSERT_IO_CLOSE \ 1805 assert(io) 1806 1807 /* PERL_CALLCONV bool 1808 is_ascii_string(const U8 * const s, STRLEN len) 1809 __attribute__warn_unused_result__ 1810 __attribute__pure__; */ 1811 1812 /* PERL_CALLCONV bool 1813 is_c9strict_utf8_string(const U8 *s, STRLEN len) 1814 __attribute__warn_unused_result__; */ 1815 1816 /* PERL_CALLCONV bool 1817 is_c9strict_utf8_string_loc(const U8 *s, STRLEN len, const U8 **ep); */ 1818 1819 /* PERL_CALLCONV bool 1820 is_invariant_string(const U8 * const s, STRLEN len) 1821 __attribute__warn_unused_result__ 1822 __attribute__pure__; */ 1823 1824 PERL_CALLCONV I32 1825 Perl_is_lvalue_sub(pTHX) 1826 __attribute__warn_unused_result__; 1827 #define PERL_ARGS_ASSERT_IS_LVALUE_SUB 1828 1829 /* PERL_CALLCONV bool 1830 is_strict_utf8_string(const U8 *s, STRLEN len) 1831 __attribute__warn_unused_result__; */ 1832 1833 /* PERL_CALLCONV bool 1834 is_strict_utf8_string_loc(const U8 *s, STRLEN len, const U8 **ep); */ 1835 1836 PERL_CALLCONV Size_t 1837 Perl_is_utf8_FF_helper_(const U8 * const s0, const U8 * const e, const bool require_partial) 1838 __attribute__warn_unused_result__ 1839 __attribute__pure__; 1840 #define PERL_ARGS_ASSERT_IS_UTF8_FF_HELPER_ \ 1841 assert(s0); assert(e) 1842 1843 PERL_CALLCONV STRLEN 1844 Perl_is_utf8_char_helper_(const U8 * const s, const U8 *e, const U32 flags) 1845 __attribute__warn_unused_result__ 1846 __attribute__pure__; 1847 #define PERL_ARGS_ASSERT_IS_UTF8_CHAR_HELPER_ \ 1848 assert(s); assert(e) 1849 1850 /* PERL_CALLCONV bool 1851 is_utf8_fixed_width_buf_flags(const U8 * const s, STRLEN len, const U32 flags); */ 1852 1853 /* PERL_CALLCONV bool 1854 is_utf8_fixed_width_buf_loc_flags(const U8 * const s, STRLEN len, const U8 **ep, const U32 flags); */ 1855 1856 /* PERL_CALLCONV bool 1857 is_utf8_invariant_string(const U8 * const s, STRLEN len) 1858 __attribute__warn_unused_result__; */ 1859 1860 /* PERL_CALLCONV bool 1861 is_utf8_string(const U8 *s, STRLEN len) 1862 __attribute__warn_unused_result__; */ 1863 1864 /* PERL_CALLCONV bool 1865 is_utf8_string_loc_flags(const U8 *s, STRLEN len, const U8 **ep, const U32 flags); */ 1866 1867 /* PERL_CALLCONV bool 1868 is_utf8_valid_partial_char(const U8 * const s0, const U8 * const e) 1869 __attribute__warn_unused_result__ 1870 __attribute__pure__; */ 1871 1872 PERL_CALLCONV bool 1873 Perl_isinfnan(NV nv) 1874 __attribute__warn_unused_result__ 1875 __attribute__pure__; 1876 #define PERL_ARGS_ASSERT_ISINFNAN 1877 1878 PERL_CALLCONV bool 1879 Perl_isinfnansv(pTHX_ SV *sv) 1880 __attribute__visibility__("hidden"); 1881 #define PERL_ARGS_ASSERT_ISINFNANSV \ 1882 assert(sv) 1883 1884 PERL_CALLCONV OP * 1885 Perl_jmaybe(pTHX_ OP *o) 1886 __attribute__visibility__("hidden"); 1887 #define PERL_ARGS_ASSERT_JMAYBE \ 1888 assert(o) 1889 1890 PERL_CALLCONV I32 1891 Perl_keyword(pTHX_ const char *name, I32 len, bool all_keywords) 1892 __attribute__warn_unused_result__ 1893 __attribute__pure__ 1894 __attribute__visibility__("hidden"); 1895 #define PERL_ARGS_ASSERT_KEYWORD \ 1896 assert(name) 1897 1898 PERL_CALLCONV int 1899 Perl_keyword_plugin_standard(pTHX_ char *keyword_ptr, STRLEN keyword_len, OP **op_ptr); 1900 #define PERL_ARGS_ASSERT_KEYWORD_PLUGIN_STANDARD \ 1901 assert(keyword_ptr); assert(op_ptr) 1902 1903 PERL_CALLCONV void 1904 Perl_leave_adjust_stacks(pTHX_ SV **from_sp, SV **to_sp, U8 gimme, int filter); 1905 #define PERL_ARGS_ASSERT_LEAVE_ADJUST_STACKS \ 1906 assert(from_sp); assert(to_sp) 1907 1908 PERL_CALLCONV void 1909 Perl_leave_scope(pTHX_ I32 base); 1910 #define PERL_ARGS_ASSERT_LEAVE_SCOPE 1911 1912 PERL_CALLCONV bool 1913 Perl_lex_bufutf8(pTHX); 1914 #define PERL_ARGS_ASSERT_LEX_BUFUTF8 1915 1916 PERL_CALLCONV void 1917 Perl_lex_discard_to(pTHX_ char *ptr); 1918 #define PERL_ARGS_ASSERT_LEX_DISCARD_TO \ 1919 assert(ptr) 1920 1921 PERL_CALLCONV char * 1922 Perl_lex_grow_linestr(pTHX_ STRLEN len); 1923 #define PERL_ARGS_ASSERT_LEX_GROW_LINESTR 1924 1925 PERL_CALLCONV bool 1926 Perl_lex_next_chunk(pTHX_ U32 flags); 1927 #define PERL_ARGS_ASSERT_LEX_NEXT_CHUNK 1928 1929 PERL_CALLCONV I32 1930 Perl_lex_peek_unichar(pTHX_ U32 flags); 1931 #define PERL_ARGS_ASSERT_LEX_PEEK_UNICHAR 1932 1933 PERL_CALLCONV void 1934 Perl_lex_read_space(pTHX_ U32 flags); 1935 #define PERL_ARGS_ASSERT_LEX_READ_SPACE 1936 1937 PERL_CALLCONV void 1938 Perl_lex_read_to(pTHX_ char *ptr); 1939 #define PERL_ARGS_ASSERT_LEX_READ_TO \ 1940 assert(ptr) 1941 1942 PERL_CALLCONV I32 1943 Perl_lex_read_unichar(pTHX_ U32 flags); 1944 #define PERL_ARGS_ASSERT_LEX_READ_UNICHAR 1945 1946 PERL_CALLCONV void 1947 Perl_lex_start(pTHX_ SV *line, PerlIO *rsfp, U32 flags); 1948 #define PERL_ARGS_ASSERT_LEX_START 1949 1950 PERL_CALLCONV void 1951 Perl_lex_stuff_pv(pTHX_ const char *pv, U32 flags); 1952 #define PERL_ARGS_ASSERT_LEX_STUFF_PV \ 1953 assert(pv) 1954 1955 PERL_CALLCONV void 1956 Perl_lex_stuff_pvn(pTHX_ const char *pv, STRLEN len, U32 flags); 1957 #define PERL_ARGS_ASSERT_LEX_STUFF_PVN \ 1958 assert(pv) 1959 1960 PERL_CALLCONV void 1961 Perl_lex_stuff_sv(pTHX_ SV *sv, U32 flags); 1962 #define PERL_ARGS_ASSERT_LEX_STUFF_SV \ 1963 assert(sv) 1964 1965 PERL_CALLCONV void 1966 Perl_lex_unstuff(pTHX_ char *ptr); 1967 #define PERL_ARGS_ASSERT_LEX_UNSTUFF \ 1968 assert(ptr) 1969 1970 PERL_CALLCONV OP * 1971 Perl_list(pTHX_ OP *o) 1972 __attribute__visibility__("hidden"); 1973 #define PERL_ARGS_ASSERT_LIST 1974 1975 PERL_CALLCONV HV * 1976 Perl_load_charnames(pTHX_ SV *char_name, const char *context, const STRLEN context_len, const char **error_msg) 1977 __attribute__warn_unused_result__; 1978 #define PERL_ARGS_ASSERT_LOAD_CHARNAMES \ 1979 assert(char_name); assert(context); assert(error_msg) 1980 1981 PERL_CALLCONV void 1982 Perl_load_module(pTHX_ U32 flags, SV *name, SV *ver, ...); 1983 #define PERL_ARGS_ASSERT_LOAD_MODULE \ 1984 assert(name) 1985 1986 PERL_CALLCONV_NO_RET void 1987 Perl_locale_panic(const char *msg, const char *file_name, const line_t line, const int errnum) 1988 __attribute__noreturn__; 1989 #define PERL_ARGS_ASSERT_LOCALE_PANIC \ 1990 assert(msg); assert(file_name) 1991 1992 PERL_CALLCONV OP * 1993 Perl_localize(pTHX_ OP *o, I32 lex) 1994 __attribute__visibility__("hidden"); 1995 #define PERL_ARGS_ASSERT_LOCALIZE \ 1996 assert(o) 1997 1998 PERL_CALLCONV I32 1999 Perl_looks_like_number(pTHX_ SV * const sv) 2000 __attribute__warn_unused_result__; 2001 #define PERL_ARGS_ASSERT_LOOKS_LIKE_NUMBER \ 2002 assert(sv) 2003 2004 PERL_CALLCONV int 2005 Perl_magic_clear_all_env(pTHX_ SV *sv, MAGIC *mg) 2006 __attribute__visibility__("hidden"); 2007 #define PERL_ARGS_ASSERT_MAGIC_CLEAR_ALL_ENV \ 2008 assert(sv); assert(mg) 2009 2010 PERL_CALLCONV int 2011 Perl_magic_cleararylen_p(pTHX_ SV *sv, MAGIC *mg) 2012 __attribute__visibility__("hidden"); 2013 #define PERL_ARGS_ASSERT_MAGIC_CLEARARYLEN_P \ 2014 assert(sv); assert(mg) 2015 2016 PERL_CALLCONV int 2017 Perl_magic_clearenv(pTHX_ SV *sv, MAGIC *mg) 2018 __attribute__visibility__("hidden"); 2019 #define PERL_ARGS_ASSERT_MAGIC_CLEARENV \ 2020 assert(sv); assert(mg) 2021 2022 PERL_CALLCONV int 2023 Perl_magic_clearhint(pTHX_ SV *sv, MAGIC *mg) 2024 __attribute__visibility__("hidden"); 2025 #define PERL_ARGS_ASSERT_MAGIC_CLEARHINT \ 2026 assert(sv); assert(mg) 2027 2028 PERL_CALLCONV int 2029 Perl_magic_clearhints(pTHX_ SV *sv, MAGIC *mg) 2030 __attribute__visibility__("hidden"); 2031 #define PERL_ARGS_ASSERT_MAGIC_CLEARHINTS \ 2032 assert(sv); assert(mg) 2033 2034 PERL_CALLCONV int 2035 Perl_magic_clearhook(pTHX_ SV *sv, MAGIC *mg) 2036 __attribute__visibility__("hidden"); 2037 #define PERL_ARGS_ASSERT_MAGIC_CLEARHOOK \ 2038 assert(mg) 2039 2040 PERL_CALLCONV int 2041 Perl_magic_clearhookall(pTHX_ SV *sv, MAGIC *mg) 2042 __attribute__visibility__("hidden"); 2043 #define PERL_ARGS_ASSERT_MAGIC_CLEARHOOKALL \ 2044 assert(mg) 2045 2046 PERL_CALLCONV int 2047 Perl_magic_clearisa(pTHX_ SV *sv, MAGIC *mg) 2048 __attribute__visibility__("hidden"); 2049 #define PERL_ARGS_ASSERT_MAGIC_CLEARISA \ 2050 assert(mg) 2051 2052 PERL_CALLCONV int 2053 Perl_magic_clearpack(pTHX_ SV *sv, MAGIC *mg) 2054 __attribute__visibility__("hidden"); 2055 #define PERL_ARGS_ASSERT_MAGIC_CLEARPACK \ 2056 assert(sv); assert(mg) 2057 2058 PERL_CALLCONV int 2059 Perl_magic_clearsig(pTHX_ SV *sv, MAGIC *mg) 2060 __attribute__visibility__("hidden"); 2061 #define PERL_ARGS_ASSERT_MAGIC_CLEARSIG \ 2062 assert(sv); assert(mg) 2063 2064 PERL_CALLCONV int 2065 Perl_magic_copycallchecker(pTHX_ SV *sv, MAGIC *mg, SV *nsv, const char *name, I32 namlen) 2066 __attribute__visibility__("hidden"); 2067 #define PERL_ARGS_ASSERT_MAGIC_COPYCALLCHECKER \ 2068 assert(sv); assert(mg); assert(nsv) 2069 2070 PERL_CALLCONV void 2071 Perl_magic_dump(pTHX_ const MAGIC *mg); 2072 #define PERL_ARGS_ASSERT_MAGIC_DUMP 2073 2074 PERL_CALLCONV int 2075 Perl_magic_existspack(pTHX_ SV *sv, const MAGIC *mg) 2076 __attribute__visibility__("hidden"); 2077 #define PERL_ARGS_ASSERT_MAGIC_EXISTSPACK \ 2078 assert(sv); assert(mg) 2079 2080 PERL_CALLCONV int 2081 Perl_magic_freearylen_p(pTHX_ SV *sv, MAGIC *mg) 2082 __attribute__visibility__("hidden"); 2083 #define PERL_ARGS_ASSERT_MAGIC_FREEARYLEN_P \ 2084 assert(sv); assert(mg) 2085 2086 PERL_CALLCONV int 2087 Perl_magic_freedestruct(pTHX_ SV *sv, MAGIC *mg) 2088 __attribute__visibility__("hidden"); 2089 #define PERL_ARGS_ASSERT_MAGIC_FREEDESTRUCT \ 2090 assert(sv); assert(mg) 2091 2092 PERL_CALLCONV int 2093 Perl_magic_freemglob(pTHX_ SV *sv, MAGIC *mg) 2094 __attribute__visibility__("hidden"); 2095 #define PERL_ARGS_ASSERT_MAGIC_FREEMGLOB \ 2096 assert(sv); assert(mg) 2097 2098 PERL_CALLCONV int 2099 Perl_magic_freeovrld(pTHX_ SV *sv, MAGIC *mg) 2100 __attribute__visibility__("hidden"); 2101 #define PERL_ARGS_ASSERT_MAGIC_FREEOVRLD \ 2102 assert(sv); assert(mg) 2103 2104 PERL_CALLCONV int 2105 Perl_magic_freeutf8(pTHX_ SV *sv, MAGIC *mg) 2106 __attribute__visibility__("hidden"); 2107 #define PERL_ARGS_ASSERT_MAGIC_FREEUTF8 \ 2108 assert(sv); assert(mg) 2109 2110 PERL_CALLCONV int 2111 Perl_magic_get(pTHX_ SV *sv, MAGIC *mg) 2112 __attribute__visibility__("hidden"); 2113 #define PERL_ARGS_ASSERT_MAGIC_GET \ 2114 assert(sv); assert(mg) 2115 2116 PERL_CALLCONV int 2117 Perl_magic_getarylen(pTHX_ SV *sv, const MAGIC *mg) 2118 __attribute__visibility__("hidden"); 2119 #define PERL_ARGS_ASSERT_MAGIC_GETARYLEN \ 2120 assert(sv); assert(mg) 2121 2122 PERL_CALLCONV int 2123 Perl_magic_getdebugvar(pTHX_ SV *sv, MAGIC *mg) 2124 __attribute__visibility__("hidden"); 2125 #define PERL_ARGS_ASSERT_MAGIC_GETDEBUGVAR \ 2126 assert(sv); assert(mg) 2127 2128 PERL_CALLCONV int 2129 Perl_magic_getdefelem(pTHX_ SV *sv, MAGIC *mg) 2130 __attribute__visibility__("hidden"); 2131 #define PERL_ARGS_ASSERT_MAGIC_GETDEFELEM \ 2132 assert(sv); assert(mg) 2133 2134 PERL_CALLCONV int 2135 Perl_magic_getnkeys(pTHX_ SV *sv, MAGIC *mg) 2136 __attribute__visibility__("hidden"); 2137 #define PERL_ARGS_ASSERT_MAGIC_GETNKEYS \ 2138 assert(sv); assert(mg) 2139 2140 PERL_CALLCONV int 2141 Perl_magic_getpack(pTHX_ SV *sv, MAGIC *mg) 2142 __attribute__visibility__("hidden"); 2143 #define PERL_ARGS_ASSERT_MAGIC_GETPACK \ 2144 assert(sv); assert(mg) 2145 2146 PERL_CALLCONV int 2147 Perl_magic_getpos(pTHX_ SV *sv, MAGIC *mg) 2148 __attribute__visibility__("hidden"); 2149 #define PERL_ARGS_ASSERT_MAGIC_GETPOS \ 2150 assert(sv); assert(mg) 2151 2152 PERL_CALLCONV int 2153 Perl_magic_getsig(pTHX_ SV *sv, MAGIC *mg) 2154 __attribute__visibility__("hidden"); 2155 #define PERL_ARGS_ASSERT_MAGIC_GETSIG \ 2156 assert(sv); assert(mg) 2157 2158 PERL_CALLCONV int 2159 Perl_magic_getsubstr(pTHX_ SV *sv, MAGIC *mg) 2160 __attribute__visibility__("hidden"); 2161 #define PERL_ARGS_ASSERT_MAGIC_GETSUBSTR \ 2162 assert(sv); assert(mg) 2163 2164 PERL_CALLCONV int 2165 Perl_magic_gettaint(pTHX_ SV *sv, MAGIC *mg) 2166 __attribute__visibility__("hidden"); 2167 #define PERL_ARGS_ASSERT_MAGIC_GETTAINT \ 2168 assert(sv); assert(mg) 2169 2170 PERL_CALLCONV int 2171 Perl_magic_getuvar(pTHX_ SV *sv, MAGIC *mg) 2172 __attribute__visibility__("hidden"); 2173 #define PERL_ARGS_ASSERT_MAGIC_GETUVAR \ 2174 assert(sv); assert(mg) 2175 2176 PERL_CALLCONV int 2177 Perl_magic_getvec(pTHX_ SV *sv, MAGIC *mg) 2178 __attribute__visibility__("hidden"); 2179 #define PERL_ARGS_ASSERT_MAGIC_GETVEC \ 2180 assert(sv); assert(mg) 2181 2182 PERL_CALLCONV int 2183 Perl_magic_killbackrefs(pTHX_ SV *sv, MAGIC *mg) 2184 __attribute__visibility__("hidden"); 2185 #define PERL_ARGS_ASSERT_MAGIC_KILLBACKREFS \ 2186 assert(sv); assert(mg) 2187 2188 PERL_CALLCONV SV * 2189 Perl_magic_methcall(pTHX_ SV *sv, const MAGIC *mg, SV *meth, U32 flags, U32 argc, ...) 2190 __attribute__visibility__("hidden"); 2191 #define PERL_ARGS_ASSERT_MAGIC_METHCALL \ 2192 assert(sv); assert(mg); assert(meth) 2193 2194 PERL_CALLCONV int 2195 Perl_magic_nextpack(pTHX_ SV *sv, MAGIC *mg, SV *key) 2196 __attribute__visibility__("hidden"); 2197 #define PERL_ARGS_ASSERT_MAGIC_NEXTPACK \ 2198 assert(sv); assert(mg); assert(key) 2199 2200 PERL_CALLCONV U32 2201 Perl_magic_regdata_cnt(pTHX_ SV *sv, MAGIC *mg) 2202 __attribute__visibility__("hidden"); 2203 #define PERL_ARGS_ASSERT_MAGIC_REGDATA_CNT \ 2204 assert(sv); assert(mg) 2205 2206 PERL_CALLCONV int 2207 Perl_magic_regdatum_get(pTHX_ SV *sv, MAGIC *mg) 2208 __attribute__visibility__("hidden"); 2209 #define PERL_ARGS_ASSERT_MAGIC_REGDATUM_GET \ 2210 assert(sv); assert(mg) 2211 2212 PERL_CALLCONV SV * 2213 Perl_magic_scalarpack(pTHX_ HV *hv, MAGIC *mg) 2214 __attribute__visibility__("hidden"); 2215 #define PERL_ARGS_ASSERT_MAGIC_SCALARPACK \ 2216 assert(hv); assert(mg) 2217 2218 PERL_CALLCONV int 2219 Perl_magic_set(pTHX_ SV *sv, MAGIC *mg) 2220 __attribute__visibility__("hidden"); 2221 #define PERL_ARGS_ASSERT_MAGIC_SET \ 2222 assert(sv); assert(mg) 2223 2224 PERL_CALLCONV int 2225 Perl_magic_set_all_env(pTHX_ SV *sv, MAGIC *mg) 2226 __attribute__visibility__("hidden"); 2227 #define PERL_ARGS_ASSERT_MAGIC_SET_ALL_ENV \ 2228 assert(sv); assert(mg) 2229 2230 PERL_CALLCONV int 2231 Perl_magic_setarylen(pTHX_ SV *sv, MAGIC *mg) 2232 __attribute__visibility__("hidden"); 2233 #define PERL_ARGS_ASSERT_MAGIC_SETARYLEN \ 2234 assert(sv); assert(mg) 2235 2236 PERL_CALLCONV int 2237 Perl_magic_setdbline(pTHX_ SV *sv, MAGIC *mg) 2238 __attribute__visibility__("hidden"); 2239 #define PERL_ARGS_ASSERT_MAGIC_SETDBLINE \ 2240 assert(sv); assert(mg) 2241 2242 PERL_CALLCONV int 2243 Perl_magic_setdebugvar(pTHX_ SV *sv, MAGIC *mg) 2244 __attribute__visibility__("hidden"); 2245 #define PERL_ARGS_ASSERT_MAGIC_SETDEBUGVAR \ 2246 assert(sv); assert(mg) 2247 2248 PERL_CALLCONV int 2249 Perl_magic_setdefelem(pTHX_ SV *sv, MAGIC *mg) 2250 __attribute__visibility__("hidden"); 2251 #define PERL_ARGS_ASSERT_MAGIC_SETDEFELEM \ 2252 assert(sv); assert(mg) 2253 2254 PERL_CALLCONV int 2255 Perl_magic_setenv(pTHX_ SV *sv, MAGIC *mg) 2256 __attribute__visibility__("hidden"); 2257 #define PERL_ARGS_ASSERT_MAGIC_SETENV \ 2258 assert(sv); assert(mg) 2259 2260 PERL_CALLCONV int 2261 Perl_magic_sethint(pTHX_ SV *sv, MAGIC *mg) 2262 __attribute__visibility__("hidden"); 2263 #define PERL_ARGS_ASSERT_MAGIC_SETHINT \ 2264 assert(sv); assert(mg) 2265 2266 PERL_CALLCONV int 2267 Perl_magic_sethook(pTHX_ SV *sv, MAGIC *mg) 2268 __attribute__visibility__("hidden"); 2269 #define PERL_ARGS_ASSERT_MAGIC_SETHOOK \ 2270 assert(mg) 2271 2272 PERL_CALLCONV int 2273 Perl_magic_sethookall(pTHX_ SV *sv, MAGIC *mg) 2274 __attribute__visibility__("hidden"); 2275 #define PERL_ARGS_ASSERT_MAGIC_SETHOOKALL \ 2276 assert(sv); assert(mg) 2277 2278 PERL_CALLCONV int 2279 Perl_magic_setisa(pTHX_ SV *sv, MAGIC *mg) 2280 __attribute__visibility__("hidden"); 2281 #define PERL_ARGS_ASSERT_MAGIC_SETISA \ 2282 assert(sv); assert(mg) 2283 2284 PERL_CALLCONV int 2285 Perl_magic_setlvref(pTHX_ SV *sv, MAGIC *mg) 2286 __attribute__visibility__("hidden"); 2287 #define PERL_ARGS_ASSERT_MAGIC_SETLVREF \ 2288 assert(sv); assert(mg) 2289 2290 PERL_CALLCONV int 2291 Perl_magic_setmglob(pTHX_ SV *sv, MAGIC *mg) 2292 __attribute__visibility__("hidden"); 2293 #define PERL_ARGS_ASSERT_MAGIC_SETMGLOB \ 2294 assert(sv); assert(mg) 2295 2296 PERL_CALLCONV int 2297 Perl_magic_setnkeys(pTHX_ SV *sv, MAGIC *mg) 2298 __attribute__visibility__("hidden"); 2299 #define PERL_ARGS_ASSERT_MAGIC_SETNKEYS \ 2300 assert(sv); assert(mg) 2301 2302 PERL_CALLCONV int 2303 Perl_magic_setnonelem(pTHX_ SV *sv, MAGIC *mg) 2304 __attribute__visibility__("hidden"); 2305 #define PERL_ARGS_ASSERT_MAGIC_SETNONELEM \ 2306 assert(sv); assert(mg) 2307 2308 PERL_CALLCONV int 2309 Perl_magic_setpack(pTHX_ SV *sv, MAGIC *mg) 2310 __attribute__visibility__("hidden"); 2311 #define PERL_ARGS_ASSERT_MAGIC_SETPACK \ 2312 assert(sv); assert(mg) 2313 2314 PERL_CALLCONV int 2315 Perl_magic_setpos(pTHX_ SV *sv, MAGIC *mg) 2316 __attribute__visibility__("hidden"); 2317 #define PERL_ARGS_ASSERT_MAGIC_SETPOS \ 2318 assert(sv); assert(mg) 2319 2320 PERL_CALLCONV int 2321 Perl_magic_setregexp(pTHX_ SV *sv, MAGIC *mg) 2322 __attribute__visibility__("hidden"); 2323 #define PERL_ARGS_ASSERT_MAGIC_SETREGEXP \ 2324 assert(sv); assert(mg) 2325 2326 PERL_CALLCONV int 2327 Perl_magic_setsig(pTHX_ SV *sv, MAGIC *mg) 2328 __attribute__visibility__("hidden"); 2329 #define PERL_ARGS_ASSERT_MAGIC_SETSIG \ 2330 assert(mg) 2331 2332 PERL_CALLCONV int 2333 Perl_magic_setsigall(pTHX_ SV *sv, MAGIC *mg) 2334 __attribute__visibility__("hidden"); 2335 #define PERL_ARGS_ASSERT_MAGIC_SETSIGALL \ 2336 assert(sv); assert(mg) 2337 2338 PERL_CALLCONV int 2339 Perl_magic_setsubstr(pTHX_ SV *sv, MAGIC *mg) 2340 __attribute__visibility__("hidden"); 2341 #define PERL_ARGS_ASSERT_MAGIC_SETSUBSTR \ 2342 assert(sv); assert(mg) 2343 2344 PERL_CALLCONV int 2345 Perl_magic_settaint(pTHX_ SV *sv, MAGIC *mg) 2346 __attribute__visibility__("hidden"); 2347 #define PERL_ARGS_ASSERT_MAGIC_SETTAINT \ 2348 assert(sv); assert(mg) 2349 2350 PERL_CALLCONV int 2351 Perl_magic_setutf8(pTHX_ SV *sv, MAGIC *mg) 2352 __attribute__visibility__("hidden"); 2353 #define PERL_ARGS_ASSERT_MAGIC_SETUTF8 \ 2354 assert(sv); assert(mg) 2355 2356 PERL_CALLCONV int 2357 Perl_magic_setuvar(pTHX_ SV *sv, MAGIC *mg) 2358 __attribute__visibility__("hidden"); 2359 #define PERL_ARGS_ASSERT_MAGIC_SETUVAR \ 2360 assert(sv); assert(mg) 2361 2362 PERL_CALLCONV int 2363 Perl_magic_setvec(pTHX_ SV *sv, MAGIC *mg) 2364 __attribute__visibility__("hidden"); 2365 #define PERL_ARGS_ASSERT_MAGIC_SETVEC \ 2366 assert(sv); assert(mg) 2367 2368 PERL_CALLCONV U32 2369 Perl_magic_sizepack(pTHX_ SV *sv, MAGIC *mg) 2370 __attribute__visibility__("hidden"); 2371 #define PERL_ARGS_ASSERT_MAGIC_SIZEPACK \ 2372 assert(sv); assert(mg) 2373 2374 PERL_CALLCONV int 2375 Perl_magic_wipepack(pTHX_ SV *sv, MAGIC *mg) 2376 __attribute__visibility__("hidden"); 2377 #define PERL_ARGS_ASSERT_MAGIC_WIPEPACK \ 2378 assert(sv); assert(mg) 2379 2380 PERL_CALLCONV Malloc_t 2381 Perl_malloc(MEM_SIZE nbytes) 2382 __attribute__malloc__ 2383 __attribute__warn_unused_result__; 2384 #define PERL_ARGS_ASSERT_MALLOC 2385 2386 PERL_CALLCONV I32 * 2387 Perl_markstack_grow(pTHX); 2388 #define PERL_ARGS_ASSERT_MARKSTACK_GROW 2389 2390 PERL_CALLCONV int 2391 Perl_mbtowc_(pTHX_ const wchar_t *pwc, const char *s, const Size_t len); 2392 #define PERL_ARGS_ASSERT_MBTOWC_ 2393 2394 PERL_CALLCONV SV * 2395 Perl_mess(pTHX_ const char *pat, ...) 2396 __attribute__format__(__printf__,pTHX_1,pTHX_2); 2397 #define PERL_ARGS_ASSERT_MESS \ 2398 assert(pat) 2399 2400 PERL_CALLCONV SV * 2401 Perl_mess_sv(pTHX_ SV *basemsg, bool consume); 2402 #define PERL_ARGS_ASSERT_MESS_SV \ 2403 assert(basemsg) 2404 2405 PERL_CALLCONV Free_t 2406 Perl_mfree(Malloc_t where); 2407 #define PERL_ARGS_ASSERT_MFREE 2408 2409 PERL_CALLCONV int 2410 Perl_mg_clear(pTHX_ SV *sv); 2411 #define PERL_ARGS_ASSERT_MG_CLEAR \ 2412 assert(sv) 2413 2414 PERL_CALLCONV int 2415 Perl_mg_copy(pTHX_ SV *sv, SV *nsv, const char *key, I32 klen); 2416 #define PERL_ARGS_ASSERT_MG_COPY \ 2417 assert(sv); assert(nsv) 2418 2419 PERL_CALLCONV MAGIC * 2420 Perl_mg_find(const SV *sv, int type) 2421 __attribute__warn_unused_result__; 2422 #define PERL_ARGS_ASSERT_MG_FIND 2423 2424 PERL_CALLCONV MAGIC * 2425 Perl_mg_find_mglob(pTHX_ SV *sv) 2426 __attribute__warn_unused_result__; 2427 #define PERL_ARGS_ASSERT_MG_FIND_MGLOB \ 2428 assert(sv) 2429 2430 PERL_CALLCONV MAGIC * 2431 Perl_mg_findext(const SV *sv, int type, const MGVTBL *vtbl) 2432 __attribute__warn_unused_result__; 2433 #define PERL_ARGS_ASSERT_MG_FINDEXT 2434 2435 PERL_CALLCONV int 2436 Perl_mg_free(pTHX_ SV *sv); 2437 #define PERL_ARGS_ASSERT_MG_FREE \ 2438 assert(sv) 2439 2440 PERL_CALLCONV void 2441 Perl_mg_free_type(pTHX_ SV *sv, int how); 2442 #define PERL_ARGS_ASSERT_MG_FREE_TYPE \ 2443 assert(sv) 2444 2445 PERL_CALLCONV void 2446 Perl_mg_freeext(pTHX_ SV *sv, int how, const MGVTBL *vtbl); 2447 #define PERL_ARGS_ASSERT_MG_FREEEXT \ 2448 assert(sv) 2449 2450 PERL_CALLCONV int 2451 Perl_mg_get(pTHX_ SV *sv); 2452 #define PERL_ARGS_ASSERT_MG_GET \ 2453 assert(sv) 2454 2455 PERL_CALLCONV void 2456 Perl_mg_localize(pTHX_ SV *sv, SV *nsv, bool setmagic) 2457 __attribute__visibility__("hidden"); 2458 #define PERL_ARGS_ASSERT_MG_LOCALIZE \ 2459 assert(sv); assert(nsv) 2460 2461 PERL_CALLCONV void 2462 Perl_mg_magical(SV *sv); 2463 #define PERL_ARGS_ASSERT_MG_MAGICAL \ 2464 assert(sv) 2465 2466 PERL_CALLCONV int 2467 Perl_mg_set(pTHX_ SV *sv); 2468 #define PERL_ARGS_ASSERT_MG_SET \ 2469 assert(sv) 2470 2471 PERL_CALLCONV I32 2472 Perl_mg_size(pTHX_ SV *sv); 2473 #define PERL_ARGS_ASSERT_MG_SIZE \ 2474 assert(sv) 2475 2476 PERL_CALLCONV void 2477 Perl_mini_mktime(struct tm *ptm); 2478 #define PERL_ARGS_ASSERT_MINI_MKTIME \ 2479 assert(ptm) 2480 2481 PERL_CALLCONV int 2482 Perl_mode_from_discipline(pTHX_ const char *s, STRLEN len) 2483 __attribute__visibility__("hidden"); 2484 #define PERL_ARGS_ASSERT_MODE_FROM_DISCIPLINE 2485 2486 PERL_CALLCONV void * 2487 Perl_more_bodies(pTHX_ const svtype sv_type, const size_t body_size, const size_t arena_size); 2488 #define PERL_ARGS_ASSERT_MORE_BODIES 2489 2490 PERL_CALLCONV const char * 2491 Perl_moreswitches(pTHX_ const char *s); 2492 #define PERL_ARGS_ASSERT_MORESWITCHES \ 2493 assert(s) 2494 2495 PERL_CALLCONV void 2496 Perl_mortal_destructor_sv(pTHX_ SV *coderef, SV *args); 2497 #define PERL_ARGS_ASSERT_MORTAL_DESTRUCTOR_SV \ 2498 assert(coderef) 2499 2500 PERL_CALLCONV void 2501 Perl_mortal_svfunc_x(pTHX_ SVFUNC_t f, SV *p); 2502 #define PERL_ARGS_ASSERT_MORTAL_SVFUNC_X 2503 2504 PERL_CALLCONV const struct mro_alg * 2505 Perl_mro_get_from_name(pTHX_ SV *name); 2506 #define PERL_ARGS_ASSERT_MRO_GET_FROM_NAME \ 2507 assert(name) 2508 2509 PERL_CALLCONV AV * 2510 Perl_mro_get_linear_isa(pTHX_ HV *stash); 2511 #define PERL_ARGS_ASSERT_MRO_GET_LINEAR_ISA \ 2512 assert(stash) 2513 2514 PERL_CALLCONV SV * 2515 Perl_mro_get_private_data(pTHX_ struct mro_meta * const smeta, const struct mro_alg * const which); 2516 #define PERL_ARGS_ASSERT_MRO_GET_PRIVATE_DATA \ 2517 assert(smeta); assert(which) 2518 2519 PERL_CALLCONV void 2520 Perl_mro_isa_changed_in(pTHX_ HV *stash) 2521 __attribute__visibility__("hidden"); 2522 #define PERL_ARGS_ASSERT_MRO_ISA_CHANGED_IN \ 2523 assert(stash) 2524 2525 PERL_CALLCONV struct mro_meta * 2526 Perl_mro_meta_init(pTHX_ HV *stash); 2527 #define PERL_ARGS_ASSERT_MRO_META_INIT \ 2528 assert(stash) 2529 2530 PERL_CALLCONV void 2531 Perl_mro_method_changed_in(pTHX_ HV *stash); 2532 #define PERL_ARGS_ASSERT_MRO_METHOD_CHANGED_IN \ 2533 assert(stash) 2534 2535 PERL_CALLCONV void 2536 Perl_mro_package_moved(pTHX_ HV * const stash, HV * const oldstash, const GV * const gv, U32 flags); 2537 #define PERL_ARGS_ASSERT_MRO_PACKAGE_MOVED \ 2538 assert(gv) 2539 2540 PERL_CALLCONV void 2541 Perl_mro_register(pTHX_ const struct mro_alg *mro); 2542 #define PERL_ARGS_ASSERT_MRO_REGISTER \ 2543 assert(mro) 2544 2545 PERL_CALLCONV void 2546 Perl_mro_set_mro(pTHX_ struct mro_meta * const meta, SV * const name); 2547 #define PERL_ARGS_ASSERT_MRO_SET_MRO \ 2548 assert(meta); assert(name) 2549 2550 PERL_CALLCONV SV * 2551 Perl_mro_set_private_data(pTHX_ struct mro_meta * const smeta, const struct mro_alg * const which, SV * const data); 2552 #define PERL_ARGS_ASSERT_MRO_SET_PRIVATE_DATA \ 2553 assert(smeta); assert(which); assert(data) 2554 2555 PERL_CALLCONV SV * 2556 Perl_multiconcat_stringify(pTHX_ const OP *o); 2557 #define PERL_ARGS_ASSERT_MULTICONCAT_STRINGIFY \ 2558 assert(o) 2559 2560 PERL_CALLCONV SV * 2561 Perl_multideref_stringify(pTHX_ const OP *o, CV *cv); 2562 #define PERL_ARGS_ASSERT_MULTIDEREF_STRINGIFY \ 2563 assert(o) 2564 2565 PERL_CALLCONV NV 2566 Perl_my_atof(pTHX_ const char *s); 2567 #define PERL_ARGS_ASSERT_MY_ATOF \ 2568 assert(s) 2569 2570 PERL_CALLCONV char * 2571 Perl_my_atof2(pTHX_ const char *orig, NV *value); 2572 #define PERL_ARGS_ASSERT_MY_ATOF2 \ 2573 assert(orig); assert(value) 2574 2575 PERL_CALLCONV char * 2576 Perl_my_atof3(pTHX_ const char *orig, NV *value, const STRLEN len); 2577 #define PERL_ARGS_ASSERT_MY_ATOF3 \ 2578 assert(orig); assert(value) 2579 2580 PERL_CALLCONV OP * 2581 Perl_my_attrs(pTHX_ OP *o, OP *attrs) 2582 __attribute__visibility__("hidden"); 2583 #define PERL_ARGS_ASSERT_MY_ATTRS \ 2584 assert(o) 2585 2586 PERL_CALLCONV void 2587 Perl_my_clearenv(pTHX); 2588 #define PERL_ARGS_ASSERT_MY_CLEARENV 2589 2590 PERL_CALLCONV int 2591 Perl_my_dirfd(DIR *dir); 2592 #define PERL_ARGS_ASSERT_MY_DIRFD 2593 2594 PERL_CALLCONV_NO_RET void 2595 Perl_my_exit(pTHX_ U32 status) 2596 __attribute__noreturn__; 2597 #define PERL_ARGS_ASSERT_MY_EXIT 2598 2599 PERL_CALLCONV_NO_RET void 2600 Perl_my_failure_exit(pTHX) 2601 __attribute__noreturn__; 2602 #define PERL_ARGS_ASSERT_MY_FAILURE_EXIT 2603 2604 PERL_CALLCONV I32 2605 Perl_my_fflush_all(pTHX); 2606 #define PERL_ARGS_ASSERT_MY_FFLUSH_ALL 2607 2608 PERL_CALLCONV Pid_t 2609 Perl_my_fork(void); 2610 #define PERL_ARGS_ASSERT_MY_FORK 2611 2612 /* PERL_CALLCONV I32 2613 my_lstat(pTHX); */ 2614 2615 PERL_CALLCONV I32 2616 Perl_my_lstat_flags(pTHX_ const U32 flags); 2617 #define PERL_ARGS_ASSERT_MY_LSTAT_FLAGS 2618 2619 PERL_CALLCONV int 2620 Perl_my_mkostemp_cloexec(char *templte, int flags) 2621 __attribute__warn_unused_result__ 2622 __attribute__visibility__("hidden"); 2623 #define PERL_ARGS_ASSERT_MY_MKOSTEMP_CLOEXEC \ 2624 assert(templte) 2625 2626 PERL_CALLCONV int 2627 Perl_my_mkstemp_cloexec(char *templte) 2628 __attribute__warn_unused_result__ 2629 __attribute__visibility__("hidden"); 2630 #define PERL_ARGS_ASSERT_MY_MKSTEMP_CLOEXEC \ 2631 assert(templte) 2632 2633 PERL_CALLCONV PerlIO * 2634 Perl_my_popen_list(pTHX_ const char *mode, int n, SV **args); 2635 #define PERL_ARGS_ASSERT_MY_POPEN_LIST \ 2636 assert(mode); assert(args) 2637 2638 PERL_CALLCONV void 2639 Perl_my_setenv(pTHX_ const char *nam, const char *val); 2640 #define PERL_ARGS_ASSERT_MY_SETENV 2641 2642 PERL_CALLCONV int 2643 Perl_my_snprintf(char *buffer, const Size_t len, const char *format, ...) 2644 __attribute__format__(__printf__,3,4); 2645 #define PERL_ARGS_ASSERT_MY_SNPRINTF \ 2646 assert(buffer); assert(format) 2647 2648 PERL_CALLCONV int 2649 Perl_my_socketpair(int family, int type, int protocol, int fd[2]); 2650 #define PERL_ARGS_ASSERT_MY_SOCKETPAIR 2651 2652 /* PERL_CALLCONV I32 2653 my_stat(pTHX); */ 2654 2655 PERL_CALLCONV I32 2656 Perl_my_stat_flags(pTHX_ const U32 flags); 2657 #define PERL_ARGS_ASSERT_MY_STAT_FLAGS 2658 2659 PERL_CALLCONV const char * 2660 Perl_my_strerror(pTHX_ const int errnum, utf8ness_t *utf8ness) 2661 __attribute__visibility__("hidden"); 2662 #define PERL_ARGS_ASSERT_MY_STRERROR \ 2663 assert(utf8ness) 2664 2665 PERL_CALLCONV char * 2666 Perl_my_strftime(pTHX_ const char *fmt, int sec, int min, int hour, int mday, int mon, int year, int wday, int yday, int isdst) 2667 __attribute__format__(__strftime__,pTHX_1,0); 2668 #define PERL_ARGS_ASSERT_MY_STRFTIME \ 2669 assert(fmt) 2670 2671 PERL_CALLCONV char * 2672 Perl_my_strftime8_temp(pTHX_ const char *fmt, int sec, int min, int hour, int mday, int mon, int year, int wday, int yday, int isdst, utf8ness_t *utf8ness) 2673 __attribute__format__(__strftime__,pTHX_1,0); 2674 #define PERL_ARGS_ASSERT_MY_STRFTIME8_TEMP \ 2675 assert(fmt) 2676 2677 PERL_CALLCONV NV 2678 Perl_my_strtod(const char * const s, char **e) 2679 __attribute__warn_unused_result__; 2680 #define PERL_ARGS_ASSERT_MY_STRTOD \ 2681 assert(s) 2682 2683 PERL_CALLCONV void 2684 Perl_my_unexec(pTHX) 2685 __attribute__visibility__("hidden"); 2686 #define PERL_ARGS_ASSERT_MY_UNEXEC 2687 2688 PERL_CALLCONV int 2689 Perl_my_vsnprintf(char *buffer, const Size_t len, const char *format, va_list ap); 2690 #define PERL_ARGS_ASSERT_MY_VSNPRINTF \ 2691 assert(buffer); assert(format) 2692 2693 PERL_CALLCONV OP * 2694 Perl_newANONATTRSUB(pTHX_ I32 floor, OP *proto, OP *attrs, OP *block); 2695 #define PERL_ARGS_ASSERT_NEWANONATTRSUB 2696 2697 PERL_CALLCONV OP * 2698 Perl_newANONHASH(pTHX_ OP *o) 2699 __attribute__warn_unused_result__; 2700 #define PERL_ARGS_ASSERT_NEWANONHASH 2701 2702 PERL_CALLCONV OP * 2703 Perl_newANONLIST(pTHX_ OP *o) 2704 __attribute__warn_unused_result__; 2705 #define PERL_ARGS_ASSERT_NEWANONLIST 2706 2707 PERL_CALLCONV OP * 2708 Perl_newANONSUB(pTHX_ I32 floor, OP *proto, OP *block); 2709 #define PERL_ARGS_ASSERT_NEWANONSUB 2710 2711 PERL_CALLCONV OP * 2712 Perl_newARGDEFELEMOP(pTHX_ I32 flags, OP *expr, I32 argindex) 2713 __attribute__warn_unused_result__; 2714 #define PERL_ARGS_ASSERT_NEWARGDEFELEMOP \ 2715 assert(expr) 2716 2717 PERL_CALLCONV OP * 2718 Perl_newASSIGNOP(pTHX_ I32 flags, OP *left, I32 optype, OP *right) 2719 __attribute__warn_unused_result__; 2720 #define PERL_ARGS_ASSERT_NEWASSIGNOP 2721 2722 /* PERL_CALLCONV CV * 2723 newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block); */ 2724 2725 PERL_CALLCONV CV * 2726 Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block, bool o_is_gv); 2727 #define PERL_ARGS_ASSERT_NEWATTRSUB_X 2728 2729 PERL_CALLCONV OP * 2730 Perl_newAVREF(pTHX_ OP *o) 2731 __attribute__warn_unused_result__; 2732 #define PERL_ARGS_ASSERT_NEWAVREF \ 2733 assert(o) 2734 2735 /* PERL_CALLCONV AV * 2736 newAV_alloc_x(pTHX_ SSize_t size) 2737 __attribute__warn_unused_result__; */ 2738 2739 /* PERL_CALLCONV AV * 2740 newAV_alloc_xz(pTHX_ SSize_t size) 2741 __attribute__warn_unused_result__; */ 2742 2743 PERL_CALLCONV AV * 2744 Perl_newAVav(pTHX_ AV *oav) 2745 __attribute__warn_unused_result__; 2746 #define PERL_ARGS_ASSERT_NEWAVAV 2747 2748 PERL_CALLCONV AV * 2749 Perl_newAVhv(pTHX_ HV *ohv) 2750 __attribute__warn_unused_result__; 2751 #define PERL_ARGS_ASSERT_NEWAVHV 2752 2753 PERL_CALLCONV OP * 2754 Perl_newBINOP(pTHX_ I32 type, I32 flags, OP *first, OP *last) 2755 __attribute__warn_unused_result__; 2756 #define PERL_ARGS_ASSERT_NEWBINOP 2757 2758 PERL_CALLCONV OP * 2759 Perl_newCONDOP(pTHX_ I32 flags, OP *first, OP *trueop, OP *falseop) 2760 __attribute__warn_unused_result__; 2761 #define PERL_ARGS_ASSERT_NEWCONDOP \ 2762 assert(first) 2763 2764 PERL_CALLCONV CV * 2765 Perl_newCONSTSUB(pTHX_ HV *stash, const char *name, SV *sv); 2766 #define PERL_ARGS_ASSERT_NEWCONSTSUB 2767 2768 PERL_CALLCONV CV * 2769 Perl_newCONSTSUB_flags(pTHX_ HV *stash, const char *name, STRLEN len, U32 flags, SV *sv); 2770 #define PERL_ARGS_ASSERT_NEWCONSTSUB_FLAGS 2771 2772 PERL_CALLCONV OP * 2773 Perl_newCVREF(pTHX_ I32 flags, OP *o) 2774 __attribute__warn_unused_result__; 2775 #define PERL_ARGS_ASSERT_NEWCVREF 2776 2777 PERL_CALLCONV OP * 2778 Perl_newDEFEROP(pTHX_ I32 flags, OP *block) 2779 __attribute__warn_unused_result__; 2780 #define PERL_ARGS_ASSERT_NEWDEFEROP \ 2781 assert(block) 2782 2783 PERL_CALLCONV OP * 2784 Perl_newDEFSVOP(pTHX) 2785 __attribute__warn_unused_result__; 2786 #define PERL_ARGS_ASSERT_NEWDEFSVOP 2787 2788 PERL_CALLCONV void 2789 Perl_newFORM(pTHX_ I32 floor, OP *o, OP *block); 2790 #define PERL_ARGS_ASSERT_NEWFORM 2791 2792 PERL_CALLCONV OP * 2793 Perl_newFOROP(pTHX_ I32 flags, OP *sv, OP *expr, OP *block, OP *cont) 2794 __attribute__warn_unused_result__; 2795 #define PERL_ARGS_ASSERT_NEWFOROP \ 2796 assert(expr) 2797 2798 PERL_CALLCONV OP * 2799 Perl_newGIVENOP(pTHX_ OP *cond, OP *block, PADOFFSET defsv_off) 2800 __attribute__warn_unused_result__; 2801 #define PERL_ARGS_ASSERT_NEWGIVENOP \ 2802 assert(cond); assert(block) 2803 2804 PERL_CALLCONV GP * 2805 Perl_newGP(pTHX_ GV * const gv); 2806 #define PERL_ARGS_ASSERT_NEWGP \ 2807 assert(gv) 2808 2809 PERL_CALLCONV OP * 2810 Perl_newGVOP(pTHX_ I32 type, I32 flags, GV *gv) 2811 __attribute__warn_unused_result__; 2812 #define PERL_ARGS_ASSERT_NEWGVOP \ 2813 assert(gv) 2814 2815 PERL_CALLCONV OP * 2816 Perl_newGVREF(pTHX_ I32 type, OP *o) 2817 __attribute__warn_unused_result__; 2818 #define PERL_ARGS_ASSERT_NEWGVREF 2819 2820 /* PERL_CALLCONV GV * 2821 newGVgen(pTHX_ const char *pack); */ 2822 2823 PERL_CALLCONV GV * 2824 Perl_newGVgen_flags(pTHX_ const char *pack, U32 flags) 2825 __attribute__warn_unused_result__; 2826 #define PERL_ARGS_ASSERT_NEWGVGEN_FLAGS \ 2827 assert(pack) 2828 2829 PERL_CALLCONV OP * 2830 Perl_newHVREF(pTHX_ OP *o) 2831 __attribute__warn_unused_result__; 2832 #define PERL_ARGS_ASSERT_NEWHVREF \ 2833 assert(o) 2834 2835 PERL_CALLCONV HV * 2836 Perl_newHVhv(pTHX_ HV *hv) 2837 __attribute__warn_unused_result__; 2838 #define PERL_ARGS_ASSERT_NEWHVHV 2839 2840 PERL_CALLCONV OP * 2841 Perl_newLISTOP(pTHX_ I32 type, I32 flags, OP *first, OP *last) 2842 __attribute__warn_unused_result__; 2843 #define PERL_ARGS_ASSERT_NEWLISTOP 2844 2845 PERL_CALLCONV OP * 2846 Perl_newLOGOP(pTHX_ I32 optype, I32 flags, OP *first, OP *other) 2847 __attribute__warn_unused_result__; 2848 #define PERL_ARGS_ASSERT_NEWLOGOP \ 2849 assert(first); assert(other) 2850 2851 PERL_CALLCONV OP * 2852 Perl_newLOOPEX(pTHX_ I32 type, OP *label) 2853 __attribute__warn_unused_result__; 2854 #define PERL_ARGS_ASSERT_NEWLOOPEX \ 2855 assert(label) 2856 2857 PERL_CALLCONV OP * 2858 Perl_newLOOPOP(pTHX_ I32 flags, I32 debuggable, OP *expr, OP *block) 2859 __attribute__warn_unused_result__; 2860 #define PERL_ARGS_ASSERT_NEWLOOPOP \ 2861 assert(expr) 2862 2863 PERL_CALLCONV OP * 2864 Perl_newMETHOP(pTHX_ I32 type, I32 flags, OP *dynamic_meth) 2865 __attribute__warn_unused_result__; 2866 #define PERL_ARGS_ASSERT_NEWMETHOP \ 2867 assert(dynamic_meth) 2868 2869 PERL_CALLCONV OP * 2870 Perl_newMETHOP_named(pTHX_ I32 type, I32 flags, SV * const_meth) 2871 __attribute__warn_unused_result__; 2872 #define PERL_ARGS_ASSERT_NEWMETHOP_NAMED \ 2873 assert(const_meth) 2874 2875 PERL_CALLCONV CV * 2876 Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block); 2877 #define PERL_ARGS_ASSERT_NEWMYSUB \ 2878 assert(o) 2879 2880 PERL_CALLCONV OP * 2881 Perl_newNULLLIST(pTHX) 2882 __attribute__warn_unused_result__; 2883 #define PERL_ARGS_ASSERT_NEWNULLLIST 2884 2885 PERL_CALLCONV OP * 2886 Perl_newOP(pTHX_ I32 optype, I32 flags) 2887 __attribute__warn_unused_result__; 2888 #define PERL_ARGS_ASSERT_NEWOP 2889 2890 PERL_CALLCONV PADNAMELIST * 2891 Perl_newPADNAMELIST(size_t max) 2892 __attribute__warn_unused_result__; 2893 #define PERL_ARGS_ASSERT_NEWPADNAMELIST 2894 2895 PERL_CALLCONV PADNAME * 2896 Perl_newPADNAMEouter(PADNAME *outer) 2897 __attribute__warn_unused_result__; 2898 #define PERL_ARGS_ASSERT_NEWPADNAMEOUTER \ 2899 assert(outer) 2900 2901 PERL_CALLCONV PADNAME * 2902 Perl_newPADNAMEpvn(const char *s, STRLEN len) 2903 __attribute__warn_unused_result__; 2904 #define PERL_ARGS_ASSERT_NEWPADNAMEPVN \ 2905 assert(s) 2906 2907 PERL_CALLCONV OP * 2908 Perl_newPMOP(pTHX_ I32 type, I32 flags) 2909 __attribute__warn_unused_result__; 2910 #define PERL_ARGS_ASSERT_NEWPMOP 2911 2912 PERL_CALLCONV void 2913 Perl_newPROG(pTHX_ OP *o); 2914 #define PERL_ARGS_ASSERT_NEWPROG \ 2915 assert(o) 2916 2917 PERL_CALLCONV OP * 2918 Perl_newPVOP(pTHX_ I32 type, I32 flags, char *pv) 2919 __attribute__warn_unused_result__; 2920 #define PERL_ARGS_ASSERT_NEWPVOP 2921 2922 PERL_CALLCONV OP * 2923 Perl_newRANGE(pTHX_ I32 flags, OP *left, OP *right) 2924 __attribute__warn_unused_result__; 2925 #define PERL_ARGS_ASSERT_NEWRANGE \ 2926 assert(left); assert(right) 2927 2928 PERL_CALLCONV SV * 2929 Perl_newRV(pTHX_ SV * const sv) 2930 __attribute__warn_unused_result__; 2931 #define PERL_ARGS_ASSERT_NEWRV \ 2932 assert(sv) 2933 2934 PERL_CALLCONV OP * 2935 Perl_newSLICEOP(pTHX_ I32 flags, OP *subscript, OP *listop) 2936 __attribute__warn_unused_result__; 2937 #define PERL_ARGS_ASSERT_NEWSLICEOP 2938 2939 PERL_CALLCONV OP * 2940 Perl_newSTATEOP(pTHX_ I32 flags, char *label, OP *o) 2941 __attribute__warn_unused_result__; 2942 #define PERL_ARGS_ASSERT_NEWSTATEOP 2943 2944 PERL_CALLCONV CV * 2945 Perl_newSTUB(pTHX_ GV *gv, bool fake) 2946 __attribute__visibility__("hidden"); 2947 #define PERL_ARGS_ASSERT_NEWSTUB \ 2948 assert(gv) 2949 2950 PERL_CALLCONV SV * 2951 Perl_newSV(pTHX_ const STRLEN len) 2952 __attribute__warn_unused_result__; 2953 #define PERL_ARGS_ASSERT_NEWSV 2954 2955 PERL_CALLCONV OP * 2956 Perl_newSVOP(pTHX_ I32 type, I32 flags, SV *sv) 2957 __attribute__warn_unused_result__; 2958 #define PERL_ARGS_ASSERT_NEWSVOP \ 2959 assert(sv) 2960 2961 PERL_CALLCONV OP * 2962 Perl_newSVREF(pTHX_ OP *o) 2963 __attribute__warn_unused_result__; 2964 #define PERL_ARGS_ASSERT_NEWSVREF \ 2965 assert(o) 2966 2967 PERL_CALLCONV SV * 2968 Perl_newSV_false(pTHX) 2969 __attribute__warn_unused_result__; 2970 #define PERL_ARGS_ASSERT_NEWSV_FALSE 2971 2972 PERL_CALLCONV SV * 2973 Perl_newSV_true(pTHX) 2974 __attribute__warn_unused_result__; 2975 #define PERL_ARGS_ASSERT_NEWSV_TRUE 2976 2977 PERL_CALLCONV SV * 2978 Perl_newSVavdefelem(pTHX_ AV *av, SSize_t ix, bool extendible) 2979 __attribute__warn_unused_result__ 2980 __attribute__visibility__("hidden"); 2981 #define PERL_ARGS_ASSERT_NEWSVAVDEFELEM \ 2982 assert(av) 2983 2984 PERL_CALLCONV SV * 2985 Perl_newSVbool(pTHX_ const bool bool_val) 2986 __attribute__warn_unused_result__; 2987 #define PERL_ARGS_ASSERT_NEWSVBOOL 2988 2989 PERL_CALLCONV SV * 2990 Perl_newSVhek(pTHX_ const HEK * const hek) 2991 __attribute__warn_unused_result__; 2992 #define PERL_ARGS_ASSERT_NEWSVHEK 2993 2994 PERL_CALLCONV SV * 2995 Perl_newSVhek_mortal(pTHX_ const HEK * const hek) 2996 __attribute__warn_unused_result__; 2997 #define PERL_ARGS_ASSERT_NEWSVHEK_MORTAL 2998 2999 PERL_CALLCONV SV * 3000 Perl_newSViv(pTHX_ const IV i) 3001 __attribute__warn_unused_result__; 3002 #define PERL_ARGS_ASSERT_NEWSVIV 3003 3004 PERL_CALLCONV SV * 3005 Perl_newSVnv(pTHX_ const NV n) 3006 __attribute__warn_unused_result__; 3007 #define PERL_ARGS_ASSERT_NEWSVNV 3008 3009 PERL_CALLCONV SV * 3010 Perl_newSVpv(pTHX_ const char * const s, const STRLEN len) 3011 __attribute__warn_unused_result__; 3012 #define PERL_ARGS_ASSERT_NEWSVPV 3013 3014 PERL_CALLCONV SV * 3015 Perl_newSVpv_share(pTHX_ const char *s, U32 hash) 3016 __attribute__warn_unused_result__; 3017 #define PERL_ARGS_ASSERT_NEWSVPV_SHARE 3018 3019 PERL_CALLCONV SV * 3020 Perl_newSVpvf(pTHX_ const char * const pat, ...) 3021 __attribute__warn_unused_result__ 3022 __attribute__format__(__printf__,pTHX_1,pTHX_2); 3023 #define PERL_ARGS_ASSERT_NEWSVPVF \ 3024 assert(pat) 3025 3026 PERL_CALLCONV SV * 3027 Perl_newSVpvn(pTHX_ const char * const buffer, const STRLEN len) 3028 __attribute__warn_unused_result__; 3029 #define PERL_ARGS_ASSERT_NEWSVPVN 3030 3031 PERL_CALLCONV SV * 3032 Perl_newSVpvn_flags(pTHX_ const char * const s, const STRLEN len, const U32 flags) 3033 __attribute__warn_unused_result__; 3034 #define PERL_ARGS_ASSERT_NEWSVPVN_FLAGS 3035 3036 PERL_CALLCONV SV * 3037 Perl_newSVpvn_share(pTHX_ const char *s, I32 len, U32 hash) 3038 __attribute__warn_unused_result__; 3039 #define PERL_ARGS_ASSERT_NEWSVPVN_SHARE 3040 3041 PERL_CALLCONV SV * 3042 Perl_newSVrv(pTHX_ SV * const rv, const char * const classname); 3043 #define PERL_ARGS_ASSERT_NEWSVRV \ 3044 assert(rv) 3045 3046 PERL_CALLCONV SV * 3047 Perl_newSVsv_flags(pTHX_ SV * const old, I32 flags) 3048 __attribute__warn_unused_result__; 3049 #define PERL_ARGS_ASSERT_NEWSVSV_FLAGS 3050 3051 /* PERL_CALLCONV SV * 3052 newSVsv_nomg(pTHX_ SV * const old) 3053 __attribute__warn_unused_result__; */ 3054 3055 PERL_CALLCONV SV * 3056 Perl_newSVuv(pTHX_ const UV u) 3057 __attribute__warn_unused_result__; 3058 #define PERL_ARGS_ASSERT_NEWSVUV 3059 3060 PERL_CALLCONV OP * 3061 Perl_newTRYCATCHOP(pTHX_ I32 flags, OP *tryblock, OP *catchvar, OP *catchblock) 3062 __attribute__warn_unused_result__; 3063 #define PERL_ARGS_ASSERT_NEWTRYCATCHOP \ 3064 assert(tryblock); assert(catchvar); assert(catchblock) 3065 3066 PERL_CALLCONV OP * 3067 Perl_newUNOP(pTHX_ I32 type, I32 flags, OP *first) 3068 __attribute__warn_unused_result__; 3069 #define PERL_ARGS_ASSERT_NEWUNOP 3070 3071 PERL_CALLCONV OP * 3072 Perl_newUNOP_AUX(pTHX_ I32 type, I32 flags, OP *first, UNOP_AUX_item *aux) 3073 __attribute__warn_unused_result__; 3074 #define PERL_ARGS_ASSERT_NEWUNOP_AUX 3075 3076 PERL_CALLCONV OP * 3077 Perl_newWHENOP(pTHX_ OP *cond, OP *block) 3078 __attribute__warn_unused_result__; 3079 #define PERL_ARGS_ASSERT_NEWWHENOP \ 3080 assert(block) 3081 3082 PERL_CALLCONV OP * 3083 Perl_newWHILEOP(pTHX_ I32 flags, I32 debuggable, LOOP *loop, OP *expr, OP *block, OP *cont, I32 has_my) 3084 __attribute__warn_unused_result__; 3085 #define PERL_ARGS_ASSERT_NEWWHILEOP 3086 3087 PERL_CALLCONV CV * 3088 Perl_newXS(pTHX_ const char *name, XSUBADDR_t subaddr, const char *filename); 3089 #define PERL_ARGS_ASSERT_NEWXS \ 3090 assert(subaddr); assert(filename) 3091 3092 PERL_CALLCONV CV * 3093 Perl_newXS_deffile(pTHX_ const char *name, XSUBADDR_t subaddr); 3094 #define PERL_ARGS_ASSERT_NEWXS_DEFFILE \ 3095 assert(name); assert(subaddr) 3096 3097 PERL_CALLCONV CV * 3098 Perl_newXS_flags(pTHX_ const char *name, XSUBADDR_t subaddr, const char * const filename, const char * const proto, U32 flags); 3099 #define PERL_ARGS_ASSERT_NEWXS_FLAGS \ 3100 assert(subaddr); assert(filename) 3101 3102 PERL_CALLCONV CV * 3103 Perl_newXS_len_flags(pTHX_ const char *name, STRLEN len, XSUBADDR_t subaddr, const char * const filename, const char * const proto, SV ** const_svp, U32 flags) 3104 __attribute__visibility__("hidden"); 3105 #define PERL_ARGS_ASSERT_NEWXS_LEN_FLAGS \ 3106 assert(subaddr) 3107 3108 PERL_CALLCONV PERL_SI * 3109 Perl_new_stackinfo(pTHX_ I32 stitems, I32 cxitems) 3110 __attribute__warn_unused_result__; 3111 #define PERL_ARGS_ASSERT_NEW_STACKINFO 3112 3113 PERL_CALLCONV SV * 3114 Perl_new_version(pTHX_ SV *ver); 3115 #define PERL_ARGS_ASSERT_NEW_VERSION \ 3116 assert(ver) 3117 3118 PERL_CALLCONV char * 3119 Perl_new_warnings_bitfield(pTHX_ char *buffer, const char * const bits, STRLEN size) 3120 __attribute__warn_unused_result__; 3121 #define PERL_ARGS_ASSERT_NEW_WARNINGS_BITFIELD \ 3122 assert(bits) 3123 3124 PERL_CALLCONV PerlIO * 3125 Perl_nextargv(pTHX_ GV *gv, bool nomagicopen) 3126 __attribute__visibility__("hidden"); 3127 #define PERL_ARGS_ASSERT_NEXTARGV \ 3128 assert(gv) 3129 3130 PERL_CALLCONV char * 3131 Perl_ninstr(const char *big, const char *bigend, const char *little, const char *lend) 3132 __attribute__warn_unused_result__ 3133 __attribute__pure__; 3134 #define PERL_ARGS_ASSERT_NINSTR \ 3135 assert(big); assert(bigend); assert(little); assert(lend) 3136 3137 PERL_CALLCONV void 3138 Perl_no_bareword_filehandle(pTHX_ const char *fhname) 3139 __attribute__visibility__("hidden"); 3140 #define PERL_ARGS_ASSERT_NO_BAREWORD_FILEHANDLE \ 3141 assert(fhname) 3142 3143 PERL_CALLCONV_NO_RET void 3144 Perl_noperl_die(const char *pat, ...) 3145 __attribute__noreturn__ 3146 __attribute__format__(__printf__,1,2); 3147 #define PERL_ARGS_ASSERT_NOPERL_DIE \ 3148 assert(pat) 3149 3150 PERL_CALLCONV int 3151 Perl_nothreadhook(pTHX); 3152 #define PERL_ARGS_ASSERT_NOTHREADHOOK 3153 3154 PERL_CALLCONV void 3155 Perl_notify_parser_that_changed_to_utf8(pTHX) 3156 __attribute__visibility__("hidden"); 3157 #define PERL_ARGS_ASSERT_NOTIFY_PARSER_THAT_CHANGED_TO_UTF8 3158 3159 PERL_CALLCONV OP * 3160 Perl_oopsAV(pTHX_ OP *o) 3161 __attribute__warn_unused_result__ 3162 __attribute__visibility__("hidden"); 3163 #define PERL_ARGS_ASSERT_OOPSAV \ 3164 assert(o) 3165 3166 PERL_CALLCONV OP * 3167 Perl_oopsHV(pTHX_ OP *o) 3168 __attribute__warn_unused_result__ 3169 __attribute__visibility__("hidden"); 3170 #define PERL_ARGS_ASSERT_OOPSHV \ 3171 assert(o) 3172 3173 PERL_CALLCONV OP * 3174 Perl_op_append_elem(pTHX_ I32 optype, OP *first, OP *last); 3175 #define PERL_ARGS_ASSERT_OP_APPEND_ELEM 3176 3177 PERL_CALLCONV OP * 3178 Perl_op_append_list(pTHX_ I32 optype, OP *first, OP *last); 3179 #define PERL_ARGS_ASSERT_OP_APPEND_LIST 3180 3181 PERL_CALLCONV OPclass 3182 Perl_op_class(pTHX_ const OP *o); 3183 #define PERL_ARGS_ASSERT_OP_CLASS 3184 3185 PERL_CALLCONV void 3186 Perl_op_clear(pTHX_ OP *o); 3187 #define PERL_ARGS_ASSERT_OP_CLEAR \ 3188 assert(o) 3189 3190 PERL_CALLCONV OP * 3191 Perl_op_contextualize(pTHX_ OP *o, I32 context); 3192 #define PERL_ARGS_ASSERT_OP_CONTEXTUALIZE \ 3193 assert(o) 3194 3195 PERL_CALLCONV OP * 3196 Perl_op_convert_list(pTHX_ I32 optype, I32 flags, OP *o) 3197 __attribute__warn_unused_result__; 3198 #define PERL_ARGS_ASSERT_OP_CONVERT_LIST 3199 3200 PERL_CALLCONV void 3201 Perl_op_dump(pTHX_ const OP *o); 3202 #define PERL_ARGS_ASSERT_OP_DUMP \ 3203 assert(o) 3204 3205 PERL_CALLCONV OP * 3206 Perl_op_force_list(pTHX_ OP *o); 3207 #define PERL_ARGS_ASSERT_OP_FORCE_LIST 3208 3209 PERL_CALLCONV void 3210 Perl_op_free(pTHX_ OP *arg); 3211 #define PERL_ARGS_ASSERT_OP_FREE 3212 3213 PERL_CALLCONV OP * 3214 Perl_op_linklist(pTHX_ OP *o); 3215 #define PERL_ARGS_ASSERT_OP_LINKLIST \ 3216 assert(o) 3217 3218 /* PERL_CALLCONV OP * 3219 op_lvalue(pTHX_ OP *o, I32 type); */ 3220 3221 PERL_CALLCONV OP * 3222 Perl_op_lvalue_flags(pTHX_ OP *o, I32 type, U32 flags); 3223 #define PERL_ARGS_ASSERT_OP_LVALUE_FLAGS 3224 3225 PERL_CALLCONV void 3226 Perl_op_null(pTHX_ OP *o); 3227 #define PERL_ARGS_ASSERT_OP_NULL \ 3228 assert(o) 3229 3230 PERL_CALLCONV OP * 3231 Perl_op_parent(OP *o); 3232 #define PERL_ARGS_ASSERT_OP_PARENT \ 3233 assert(o) 3234 3235 PERL_CALLCONV OP * 3236 Perl_op_prepend_elem(pTHX_ I32 optype, OP *first, OP *last); 3237 #define PERL_ARGS_ASSERT_OP_PREPEND_ELEM 3238 3239 PERL_CALLCONV void 3240 Perl_op_refcnt_lock(pTHX); 3241 #define PERL_ARGS_ASSERT_OP_REFCNT_LOCK 3242 3243 PERL_CALLCONV void 3244 Perl_op_refcnt_unlock(pTHX); 3245 #define PERL_ARGS_ASSERT_OP_REFCNT_UNLOCK 3246 3247 PERL_CALLCONV OP * 3248 Perl_op_scope(pTHX_ OP *o); 3249 #define PERL_ARGS_ASSERT_OP_SCOPE 3250 3251 PERL_CALLCONV OP * 3252 Perl_op_sibling_splice(OP *parent, OP *start, int del_count, OP *insert); 3253 #define PERL_ARGS_ASSERT_OP_SIBLING_SPLICE 3254 3255 PERL_CALLCONV OP * 3256 Perl_op_unscope(pTHX_ OP *o) 3257 __attribute__visibility__("hidden"); 3258 #define PERL_ARGS_ASSERT_OP_UNSCOPE 3259 3260 PERL_CALLCONV OP * 3261 Perl_op_wrap_finally(pTHX_ OP *block, OP *finally) 3262 __attribute__warn_unused_result__; 3263 #define PERL_ARGS_ASSERT_OP_WRAP_FINALLY \ 3264 assert(block); assert(finally) 3265 3266 PERL_CALLCONV void 3267 Perl_package(pTHX_ OP *o) 3268 __attribute__visibility__("hidden"); 3269 #define PERL_ARGS_ASSERT_PACKAGE \ 3270 assert(o) 3271 3272 PERL_CALLCONV void 3273 Perl_package_version(pTHX_ OP *v) 3274 __attribute__visibility__("hidden"); 3275 #define PERL_ARGS_ASSERT_PACKAGE_VERSION \ 3276 assert(v) 3277 3278 PERL_CALLCONV void 3279 Perl_packlist(pTHX_ SV *cat, const char *pat, const char *patend, SV **beglist, SV **endlist); 3280 #define PERL_ARGS_ASSERT_PACKLIST \ 3281 assert(cat); assert(pat); assert(patend); assert(beglist); assert(endlist) 3282 3283 PERL_CALLCONV PADOFFSET 3284 Perl_pad_add_anon(pTHX_ CV *func, I32 optype); 3285 #define PERL_ARGS_ASSERT_PAD_ADD_ANON \ 3286 assert(func) 3287 3288 PERL_CALLCONV PADOFFSET 3289 Perl_pad_add_name_pv(pTHX_ const char *name, const U32 flags, HV *typestash, HV *ourstash); 3290 #define PERL_ARGS_ASSERT_PAD_ADD_NAME_PV \ 3291 assert(name) 3292 3293 PERL_CALLCONV PADOFFSET 3294 Perl_pad_add_name_pvn(pTHX_ const char *namepv, STRLEN namelen, U32 flags, HV *typestash, HV *ourstash); 3295 #define PERL_ARGS_ASSERT_PAD_ADD_NAME_PVN \ 3296 assert(namepv) 3297 3298 PERL_CALLCONV PADOFFSET 3299 Perl_pad_add_name_sv(pTHX_ SV *name, U32 flags, HV *typestash, HV *ourstash); 3300 #define PERL_ARGS_ASSERT_PAD_ADD_NAME_SV \ 3301 assert(name) 3302 3303 PERL_CALLCONV void 3304 Perl_pad_add_weakref(pTHX_ CV *func) 3305 __attribute__visibility__("hidden"); 3306 #define PERL_ARGS_ASSERT_PAD_ADD_WEAKREF \ 3307 assert(func) 3308 3309 PERL_CALLCONV PADOFFSET 3310 Perl_pad_alloc(pTHX_ I32 optype, U32 tmptype); 3311 #define PERL_ARGS_ASSERT_PAD_ALLOC 3312 3313 PERL_CALLCONV void 3314 Perl_pad_block_start(pTHX_ int full) 3315 __attribute__visibility__("hidden"); 3316 #define PERL_ARGS_ASSERT_PAD_BLOCK_START 3317 3318 PERL_CALLCONV PADOFFSET 3319 Perl_pad_findmy_pv(pTHX_ const char *name, U32 flags); 3320 #define PERL_ARGS_ASSERT_PAD_FINDMY_PV \ 3321 assert(name) 3322 3323 PERL_CALLCONV PADOFFSET 3324 Perl_pad_findmy_pvn(pTHX_ const char *namepv, STRLEN namelen, U32 flags); 3325 #define PERL_ARGS_ASSERT_PAD_FINDMY_PVN \ 3326 assert(namepv) 3327 3328 PERL_CALLCONV PADOFFSET 3329 Perl_pad_findmy_sv(pTHX_ SV *name, U32 flags); 3330 #define PERL_ARGS_ASSERT_PAD_FINDMY_SV \ 3331 assert(name) 3332 3333 PERL_CALLCONV void 3334 Perl_pad_fixup_inner_anons(pTHX_ PADLIST *padlist, CV *old_cv, CV *new_cv) 3335 __attribute__visibility__("hidden"); 3336 #define PERL_ARGS_ASSERT_PAD_FIXUP_INNER_ANONS \ 3337 assert(padlist); assert(old_cv); assert(new_cv) 3338 3339 PERL_CALLCONV void 3340 Perl_pad_free(pTHX_ PADOFFSET po) 3341 __attribute__visibility__("hidden"); 3342 #define PERL_ARGS_ASSERT_PAD_FREE 3343 3344 PERL_CALLCONV OP * 3345 Perl_pad_leavemy(pTHX) 3346 __attribute__visibility__("hidden"); 3347 #define PERL_ARGS_ASSERT_PAD_LEAVEMY 3348 3349 PERL_CALLCONV PADLIST * 3350 Perl_pad_new(pTHX_ int flags) 3351 __attribute__warn_unused_result__; 3352 #define PERL_ARGS_ASSERT_PAD_NEW 3353 3354 PERL_CALLCONV void 3355 Perl_pad_push(pTHX_ PADLIST *padlist, int depth); 3356 #define PERL_ARGS_ASSERT_PAD_PUSH \ 3357 assert(padlist) 3358 3359 PERL_CALLCONV void 3360 Perl_pad_swipe(pTHX_ PADOFFSET po, bool refadjust) 3361 __attribute__visibility__("hidden"); 3362 #define PERL_ARGS_ASSERT_PAD_SWIPE 3363 3364 PERL_CALLCONV void 3365 Perl_pad_tidy(pTHX_ padtidy_type type); 3366 #define PERL_ARGS_ASSERT_PAD_TIDY 3367 3368 PERL_CALLCONV PAD ** 3369 Perl_padlist_store(pTHX_ PADLIST *padlist, I32 key, PAD *val) 3370 __attribute__visibility__("hidden"); 3371 #define PERL_ARGS_ASSERT_PADLIST_STORE \ 3372 assert(padlist) 3373 3374 PERL_CALLCONV void 3375 Perl_padname_free(pTHX_ PADNAME *pn); 3376 #define PERL_ARGS_ASSERT_PADNAME_FREE \ 3377 assert(pn) 3378 3379 PERL_CALLCONV PADNAME * 3380 Perl_padnamelist_fetch(PADNAMELIST *pnl, SSize_t key) 3381 __attribute__warn_unused_result__; 3382 #define PERL_ARGS_ASSERT_PADNAMELIST_FETCH \ 3383 assert(pnl) 3384 3385 PERL_CALLCONV void 3386 Perl_padnamelist_free(pTHX_ PADNAMELIST *pnl); 3387 #define PERL_ARGS_ASSERT_PADNAMELIST_FREE \ 3388 assert(pnl) 3389 3390 PERL_CALLCONV PADNAME ** 3391 Perl_padnamelist_store(pTHX_ PADNAMELIST *pnl, SSize_t key, PADNAME *val); 3392 #define PERL_ARGS_ASSERT_PADNAMELIST_STORE \ 3393 assert(pnl) 3394 3395 PERL_CALLCONV OP * 3396 Perl_parse_arithexpr(pTHX_ U32 flags); 3397 #define PERL_ARGS_ASSERT_PARSE_ARITHEXPR 3398 3399 PERL_CALLCONV OP * 3400 Perl_parse_barestmt(pTHX_ U32 flags); 3401 #define PERL_ARGS_ASSERT_PARSE_BARESTMT 3402 3403 PERL_CALLCONV OP * 3404 Perl_parse_block(pTHX_ U32 flags); 3405 #define PERL_ARGS_ASSERT_PARSE_BLOCK 3406 3407 PERL_CALLCONV OP * 3408 Perl_parse_fullexpr(pTHX_ U32 flags); 3409 #define PERL_ARGS_ASSERT_PARSE_FULLEXPR 3410 3411 PERL_CALLCONV OP * 3412 Perl_parse_fullstmt(pTHX_ U32 flags); 3413 #define PERL_ARGS_ASSERT_PARSE_FULLSTMT 3414 3415 PERL_CALLCONV SV * 3416 Perl_parse_label(pTHX_ U32 flags); 3417 #define PERL_ARGS_ASSERT_PARSE_LABEL 3418 3419 PERL_CALLCONV OP * 3420 Perl_parse_listexpr(pTHX_ U32 flags); 3421 #define PERL_ARGS_ASSERT_PARSE_LISTEXPR 3422 3423 PERL_CALLCONV OP * 3424 Perl_parse_stmtseq(pTHX_ U32 flags); 3425 #define PERL_ARGS_ASSERT_PARSE_STMTSEQ 3426 3427 PERL_CALLCONV OP * 3428 Perl_parse_subsignature(pTHX_ U32 flags); 3429 #define PERL_ARGS_ASSERT_PARSE_SUBSIGNATURE 3430 3431 PERL_CALLCONV OP * 3432 Perl_parse_termexpr(pTHX_ U32 flags); 3433 #define PERL_ARGS_ASSERT_PARSE_TERMEXPR 3434 3435 PERL_CALLCONV U32 3436 Perl_parse_unicode_opts(pTHX_ const char **popt) 3437 __attribute__visibility__("hidden"); 3438 #define PERL_ARGS_ASSERT_PARSE_UNICODE_OPTS \ 3439 assert(popt) 3440 3441 PERL_CALLCONV void 3442 Perl_parser_free(pTHX_ const yy_parser *parser) 3443 __attribute__visibility__("hidden"); 3444 #define PERL_ARGS_ASSERT_PARSER_FREE \ 3445 assert(parser) 3446 3447 PERL_CALLCONV void 3448 Perl_peep(pTHX_ OP *o) 3449 __attribute__visibility__("hidden"); 3450 #define PERL_ARGS_ASSERT_PEEP 3451 3452 PERL_CALLCONV PerlInterpreter * 3453 perl_alloc(void); 3454 #define PERL_ARGS_ASSERT_PERL_ALLOC 3455 3456 PERL_CALLCONV void 3457 perl_construct(PerlInterpreter *my_perl); 3458 #define PERL_ARGS_ASSERT_PERL_CONSTRUCT \ 3459 assert(my_perl) 3460 3461 PERL_CALLCONV int 3462 perl_destruct(PerlInterpreter *my_perl); 3463 #define PERL_ARGS_ASSERT_PERL_DESTRUCT \ 3464 assert(my_perl) 3465 3466 PERL_CALLCONV void 3467 perl_free(PerlInterpreter *my_perl); 3468 #define PERL_ARGS_ASSERT_PERL_FREE \ 3469 assert(my_perl) 3470 3471 PERL_CALLCONV int 3472 perl_parse(PerlInterpreter *my_perl, XSINIT_t xsinit, int argc, char **argv, char **env); 3473 #define PERL_ARGS_ASSERT_PERL_PARSE \ 3474 assert(my_perl) 3475 3476 PERL_CALLCONV int 3477 perl_run(PerlInterpreter *my_perl); 3478 #define PERL_ARGS_ASSERT_PERL_RUN \ 3479 assert(my_perl) 3480 3481 PERL_CALLCONV Signal_t 3482 Perl_perly_sighandler(int sig, Siginfo_t *info, void *uap, bool safe); 3483 #define PERL_ARGS_ASSERT_PERLY_SIGHANDLER 3484 3485 /* PERL_CALLCONV const char * const 3486 phase_name(pTHX_ enum perl_phase); */ 3487 3488 PERL_CALLCONV void 3489 Perl_pmop_dump(pTHX_ PMOP *pm); 3490 #define PERL_ARGS_ASSERT_PMOP_DUMP 3491 3492 PERL_CALLCONV OP * 3493 Perl_pmruntime(pTHX_ OP *o, OP *expr, OP *repl, UV flags, I32 floor) 3494 __attribute__visibility__("hidden"); 3495 #define PERL_ARGS_ASSERT_PMRUNTIME \ 3496 assert(o); assert(expr) 3497 3498 PERL_CALLCONV void 3499 Perl_pop_scope(pTHX); 3500 #define PERL_ARGS_ASSERT_POP_SCOPE 3501 3502 PERL_CALLCONV void 3503 Perl_populate_isa(pTHX_ const char *name, STRLEN len, ...) 3504 __attribute__visibility__("hidden"); 3505 #define PERL_ARGS_ASSERT_POPULATE_ISA \ 3506 assert(name) 3507 3508 PERL_CALLCONV REGEXP * 3509 Perl_pregcomp(pTHX_ SV * const pattern, const U32 flags); 3510 #define PERL_ARGS_ASSERT_PREGCOMP \ 3511 assert(pattern) 3512 3513 PERL_CALLCONV I32 3514 Perl_pregexec(pTHX_ REGEXP * const prog, char *stringarg, char *strend, char *strbeg, SSize_t minend, SV *screamer, U32 nosave); 3515 #define PERL_ARGS_ASSERT_PREGEXEC \ 3516 assert(prog); assert(stringarg); assert(strend); assert(strbeg); \ 3517 assert(screamer) 3518 3519 PERL_CALLCONV void 3520 Perl_pregfree(pTHX_ REGEXP *r); 3521 #define PERL_ARGS_ASSERT_PREGFREE 3522 3523 PERL_CALLCONV void 3524 Perl_pregfree2(pTHX_ REGEXP *rx); 3525 #define PERL_ARGS_ASSERT_PREGFREE2 \ 3526 assert(rx) 3527 3528 PERL_CALLCONV const char * 3529 Perl_prescan_version(pTHX_ const char *s, bool strict, const char **errstr, bool *sqv, int *ssaw_decimal, int *swidth, bool *salpha); 3530 #define PERL_ARGS_ASSERT_PRESCAN_VERSION \ 3531 assert(s) 3532 3533 PERL_CALLCONV void * 3534 Perl_ptr_table_fetch(pTHX_ PTR_TBL_t * const tbl, const void * const sv) 3535 __attribute__warn_unused_result__; 3536 #define PERL_ARGS_ASSERT_PTR_TABLE_FETCH \ 3537 assert(tbl) 3538 3539 PERL_CALLCONV void 3540 Perl_ptr_table_free(pTHX_ PTR_TBL_t * const tbl); 3541 #define PERL_ARGS_ASSERT_PTR_TABLE_FREE 3542 3543 PERL_CALLCONV PTR_TBL_t * 3544 Perl_ptr_table_new(pTHX) 3545 __attribute__warn_unused_result__; 3546 #define PERL_ARGS_ASSERT_PTR_TABLE_NEW 3547 3548 PERL_CALLCONV void 3549 Perl_ptr_table_split(pTHX_ PTR_TBL_t * const tbl); 3550 #define PERL_ARGS_ASSERT_PTR_TABLE_SPLIT \ 3551 assert(tbl) 3552 3553 PERL_CALLCONV void 3554 Perl_ptr_table_store(pTHX_ PTR_TBL_t * const tbl, const void * const oldsv, void * const newsv); 3555 #define PERL_ARGS_ASSERT_PTR_TABLE_STORE \ 3556 assert(tbl); assert(newsv) 3557 3558 PERL_CALLCONV void 3559 Perl_push_scope(pTHX); 3560 #define PERL_ARGS_ASSERT_PUSH_SCOPE 3561 3562 PERL_CALLCONV char * 3563 Perl_pv_display(pTHX_ SV *dsv, const char *pv, STRLEN cur, STRLEN len, STRLEN pvlim); 3564 #define PERL_ARGS_ASSERT_PV_DISPLAY \ 3565 assert(dsv); assert(pv) 3566 3567 PERL_CALLCONV char * 3568 Perl_pv_escape(pTHX_ SV *dsv, char const * const str, const STRLEN count, STRLEN max, STRLEN * const escaped, U32 flags); 3569 #define PERL_ARGS_ASSERT_PV_ESCAPE \ 3570 assert(str) 3571 3572 PERL_CALLCONV char * 3573 Perl_pv_pretty(pTHX_ SV *dsv, char const * const str, const STRLEN count, const STRLEN max, char const * const start_color, char const * const end_color, const U32 flags); 3574 #define PERL_ARGS_ASSERT_PV_PRETTY \ 3575 assert(dsv); assert(str) 3576 3577 PERL_CALLCONV char * 3578 Perl_pv_uni_display(pTHX_ SV *dsv, const U8 *spv, STRLEN len, STRLEN pvlim, UV flags); 3579 #define PERL_ARGS_ASSERT_PV_UNI_DISPLAY \ 3580 assert(dsv); assert(spv) 3581 3582 PERL_CALLCONV void 3583 Perl_qerror(pTHX_ SV *err); 3584 #define PERL_ARGS_ASSERT_QERROR 3585 3586 PERL_CALLCONV char * 3587 Perl_rcpv_copy(pTHX_ char * const pv); 3588 #define PERL_ARGS_ASSERT_RCPV_COPY 3589 3590 PERL_CALLCONV char * 3591 Perl_rcpv_free(pTHX_ char * const pv); 3592 #define PERL_ARGS_ASSERT_RCPV_FREE 3593 3594 PERL_CALLCONV char * 3595 Perl_rcpv_new(pTHX_ const char * const pv, STRLEN len, U32 flags) 3596 __attribute__malloc__ 3597 __attribute__warn_unused_result__; 3598 #define PERL_ARGS_ASSERT_RCPV_NEW 3599 3600 PERL_CALLCONV REGEXP * 3601 Perl_re_compile(pTHX_ SV * const pattern, U32 orig_rx_flags); 3602 #define PERL_ARGS_ASSERT_RE_COMPILE \ 3603 assert(pattern) 3604 3605 PERL_CALLCONV char * 3606 Perl_re_intuit_start(pTHX_ REGEXP * const rx, SV *sv, const char * const strbeg, char *strpos, char *strend, const U32 flags, re_scream_pos_data *data); 3607 #define PERL_ARGS_ASSERT_RE_INTUIT_START \ 3608 assert(rx); assert(strbeg); assert(strpos); assert(strend) 3609 3610 PERL_CALLCONV SV * 3611 Perl_re_intuit_string(pTHX_ REGEXP * const r); 3612 #define PERL_ARGS_ASSERT_RE_INTUIT_STRING \ 3613 assert(r) 3614 3615 PERL_CALLCONV REGEXP * 3616 Perl_re_op_compile(pTHX_ SV ** const patternp, int pat_count, OP *expr, const regexp_engine *eng, REGEXP *old_re, bool *is_bare_re, const U32 rx_flags, const U32 pm_flags); 3617 #define PERL_ARGS_ASSERT_RE_OP_COMPILE \ 3618 assert(eng) 3619 3620 PERL_CALLCONV Malloc_t 3621 Perl_realloc(Malloc_t where, MEM_SIZE nbytes) 3622 __attribute__warn_unused_result__; 3623 #define PERL_ARGS_ASSERT_REALLOC 3624 3625 PERL_CALLCONV void 3626 Perl_reentrant_free(pTHX); 3627 #define PERL_ARGS_ASSERT_REENTRANT_FREE 3628 3629 PERL_CALLCONV void 3630 Perl_reentrant_init(pTHX); 3631 #define PERL_ARGS_ASSERT_REENTRANT_INIT 3632 3633 PERL_CALLCONV void * 3634 Perl_reentrant_retry(const char *f, ...); 3635 #define PERL_ARGS_ASSERT_REENTRANT_RETRY \ 3636 assert(f) 3637 3638 PERL_CALLCONV void 3639 Perl_reentrant_size(pTHX); 3640 #define PERL_ARGS_ASSERT_REENTRANT_SIZE 3641 3642 PERL_CALLCONV HV * 3643 Perl_refcounted_he_chain_2hv(pTHX_ const struct refcounted_he *c, U32 flags); 3644 #define PERL_ARGS_ASSERT_REFCOUNTED_HE_CHAIN_2HV 3645 3646 PERL_CALLCONV SV * 3647 Perl_refcounted_he_fetch_pv(pTHX_ const struct refcounted_he *chain, const char *key, U32 hash, U32 flags); 3648 #define PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_PV \ 3649 assert(key) 3650 3651 PERL_CALLCONV SV * 3652 Perl_refcounted_he_fetch_pvn(pTHX_ const struct refcounted_he *chain, const char *keypv, STRLEN keylen, U32 hash, U32 flags); 3653 #define PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_PVN \ 3654 assert(keypv) 3655 3656 PERL_CALLCONV SV * 3657 Perl_refcounted_he_fetch_sv(pTHX_ const struct refcounted_he *chain, SV *key, U32 hash, U32 flags); 3658 #define PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_SV \ 3659 assert(key) 3660 3661 PERL_CALLCONV void 3662 Perl_refcounted_he_free(pTHX_ struct refcounted_he *he); 3663 #define PERL_ARGS_ASSERT_REFCOUNTED_HE_FREE 3664 3665 PERL_CALLCONV struct refcounted_he * 3666 Perl_refcounted_he_inc(pTHX_ struct refcounted_he *he); 3667 #define PERL_ARGS_ASSERT_REFCOUNTED_HE_INC 3668 3669 PERL_CALLCONV struct refcounted_he * 3670 Perl_refcounted_he_new_pv(pTHX_ struct refcounted_he *parent, const char *key, U32 hash, SV *value, U32 flags); 3671 #define PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_PV \ 3672 assert(key) 3673 3674 PERL_CALLCONV struct refcounted_he * 3675 Perl_refcounted_he_new_pvn(pTHX_ struct refcounted_he *parent, const char *keypv, STRLEN keylen, U32 hash, SV *value, U32 flags); 3676 #define PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_PVN \ 3677 assert(keypv) 3678 3679 PERL_CALLCONV struct refcounted_he * 3680 Perl_refcounted_he_new_sv(pTHX_ struct refcounted_he *parent, SV *key, U32 hash, SV *value, U32 flags); 3681 #define PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_SV \ 3682 assert(key) 3683 3684 PERL_CALLCONV SV * 3685 Perl_reg_named_buff(pTHX_ REGEXP * const rx, SV * const key, SV * const value, const U32 flags); 3686 #define PERL_ARGS_ASSERT_REG_NAMED_BUFF \ 3687 assert(rx) 3688 3689 PERL_CALLCONV SV * 3690 Perl_reg_named_buff_all(pTHX_ REGEXP * const rx, const U32 flags); 3691 #define PERL_ARGS_ASSERT_REG_NAMED_BUFF_ALL \ 3692 assert(rx) 3693 3694 PERL_CALLCONV bool 3695 Perl_reg_named_buff_exists(pTHX_ REGEXP * const rx, SV * const key, const U32 flags); 3696 #define PERL_ARGS_ASSERT_REG_NAMED_BUFF_EXISTS \ 3697 assert(rx); assert(key) 3698 3699 PERL_CALLCONV SV * 3700 Perl_reg_named_buff_fetch(pTHX_ REGEXP * const rx, SV * const namesv, const U32 flags); 3701 #define PERL_ARGS_ASSERT_REG_NAMED_BUFF_FETCH \ 3702 assert(rx); assert(namesv) 3703 3704 PERL_CALLCONV SV * 3705 Perl_reg_named_buff_firstkey(pTHX_ REGEXP * const rx, const U32 flags); 3706 #define PERL_ARGS_ASSERT_REG_NAMED_BUFF_FIRSTKEY \ 3707 assert(rx) 3708 3709 PERL_CALLCONV SV * 3710 Perl_reg_named_buff_iter(pTHX_ REGEXP * const rx, const SV * const lastkey, const U32 flags); 3711 #define PERL_ARGS_ASSERT_REG_NAMED_BUFF_ITER \ 3712 assert(rx) 3713 3714 PERL_CALLCONV SV * 3715 Perl_reg_named_buff_nextkey(pTHX_ REGEXP * const rx, const U32 flags); 3716 #define PERL_ARGS_ASSERT_REG_NAMED_BUFF_NEXTKEY \ 3717 assert(rx) 3718 3719 PERL_CALLCONV SV * 3720 Perl_reg_named_buff_scalar(pTHX_ REGEXP * const rx, const U32 flags); 3721 #define PERL_ARGS_ASSERT_REG_NAMED_BUFF_SCALAR \ 3722 assert(rx) 3723 3724 PERL_CALLCONV void 3725 Perl_reg_numbered_buff_fetch(pTHX_ REGEXP * const re, const I32 paren, SV * const sv); 3726 #define PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_FETCH \ 3727 assert(re) 3728 3729 PERL_CALLCONV void 3730 Perl_reg_numbered_buff_fetch_flags(pTHX_ REGEXP * const re, const I32 paren, SV * const sv, U32 flags); 3731 #define PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_FETCH_FLAGS \ 3732 assert(re) 3733 3734 PERL_CALLCONV I32 3735 Perl_reg_numbered_buff_length(pTHX_ REGEXP * const rx, const SV * const sv, const I32 paren); 3736 #define PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_LENGTH \ 3737 assert(rx); assert(sv) 3738 3739 PERL_CALLCONV void 3740 Perl_reg_numbered_buff_store(pTHX_ REGEXP * const rx, const I32 paren, SV const * const value); 3741 #define PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_STORE \ 3742 assert(rx) 3743 3744 PERL_CALLCONV SV * 3745 Perl_reg_qr_package(pTHX_ REGEXP * const rx); 3746 #define PERL_ARGS_ASSERT_REG_QR_PACKAGE \ 3747 assert(rx) 3748 3749 PERL_CALLCONV REGEXP * 3750 Perl_reg_temp_copy(pTHX_ REGEXP *dsv, REGEXP *ssv); 3751 #define PERL_ARGS_ASSERT_REG_TEMP_COPY \ 3752 assert(ssv) 3753 3754 PERL_CALLCONV void 3755 Perl_regdump(pTHX_ const regexp *r); 3756 #define PERL_ARGS_ASSERT_REGDUMP \ 3757 assert(r) 3758 3759 PERL_CALLCONV I32 3760 Perl_regexec_flags(pTHX_ REGEXP * const rx, char *stringarg, char *strend, char *strbeg, SSize_t minend, SV *sv, void *data, U32 flags); 3761 #define PERL_ARGS_ASSERT_REGEXEC_FLAGS \ 3762 assert(rx); assert(stringarg); assert(strend); assert(strbeg); assert(sv) 3763 3764 PERL_CALLCONV void 3765 Perl_regfree_internal(pTHX_ REGEXP * const rx); 3766 #define PERL_ARGS_ASSERT_REGFREE_INTERNAL \ 3767 assert(rx) 3768 3769 PERL_CALLCONV void 3770 Perl_reginitcolors(pTHX); 3771 #define PERL_ARGS_ASSERT_REGINITCOLORS 3772 3773 PERL_CALLCONV void 3774 Perl_repeatcpy(char *to, const char *from, I32 len, IV count); 3775 #define PERL_ARGS_ASSERT_REPEATCPY \ 3776 assert(to); assert(from) 3777 3778 PERL_CALLCONV void 3779 Perl_report_evil_fh(pTHX_ const GV *gv) 3780 __attribute__visibility__("hidden"); 3781 #define PERL_ARGS_ASSERT_REPORT_EVIL_FH 3782 3783 PERL_CALLCONV void 3784 Perl_report_uninit(pTHX_ const SV *uninit_sv); 3785 #define PERL_ARGS_ASSERT_REPORT_UNINIT 3786 3787 PERL_CALLCONV void 3788 Perl_report_wrongway_fh(pTHX_ const GV *gv, const char have) 3789 __attribute__visibility__("hidden"); 3790 #define PERL_ARGS_ASSERT_REPORT_WRONGWAY_FH 3791 3792 PERL_CALLCONV void 3793 Perl_require_pv(pTHX_ const char *pv); 3794 #define PERL_ARGS_ASSERT_REQUIRE_PV \ 3795 assert(pv) 3796 3797 PERL_CALLCONV void 3798 Perl_resume_compcv(pTHX_ struct suspended_compcv *buffer, bool save); 3799 #define PERL_ARGS_ASSERT_RESUME_COMPCV \ 3800 assert(buffer) 3801 3802 /* PERL_CALLCONV void 3803 resume_compcv_and_save(pTHX_ struct suspended_compcv *buffer); */ 3804 3805 /* PERL_CALLCONV void 3806 resume_compcv_final(pTHX_ struct suspended_compcv *buffer); */ 3807 3808 PERL_CALLCONV char * 3809 Perl_rninstr(const char *big, const char *bigend, const char *little, const char *lend) 3810 __attribute__warn_unused_result__ 3811 __attribute__pure__; 3812 #define PERL_ARGS_ASSERT_RNINSTR \ 3813 assert(big); assert(bigend); assert(little); assert(lend) 3814 3815 PERL_CALLCONV void 3816 Perl_rpeep(pTHX_ OP *o) 3817 __attribute__visibility__("hidden"); 3818 #define PERL_ARGS_ASSERT_RPEEP 3819 3820 PERL_CALLCONV Sighandler_t 3821 Perl_rsignal(pTHX_ int i, Sighandler_t t); 3822 #define PERL_ARGS_ASSERT_RSIGNAL 3823 3824 PERL_CALLCONV int 3825 Perl_rsignal_restore(pTHX_ int i, Sigsave_t *t) 3826 __attribute__visibility__("hidden"); 3827 #define PERL_ARGS_ASSERT_RSIGNAL_RESTORE 3828 3829 PERL_CALLCONV int 3830 Perl_rsignal_save(pTHX_ int i, Sighandler_t t1, Sigsave_t *save) 3831 __attribute__visibility__("hidden"); 3832 #define PERL_ARGS_ASSERT_RSIGNAL_SAVE \ 3833 assert(save) 3834 3835 PERL_CALLCONV Sighandler_t 3836 Perl_rsignal_state(pTHX_ int i); 3837 #define PERL_ARGS_ASSERT_RSIGNAL_STATE 3838 3839 PERL_CALLCONV int 3840 Perl_runops_debug(pTHX); 3841 #define PERL_ARGS_ASSERT_RUNOPS_DEBUG 3842 3843 PERL_CALLCONV int 3844 Perl_runops_standard(pTHX); 3845 #define PERL_ARGS_ASSERT_RUNOPS_STANDARD 3846 3847 PERL_CALLCONV CV * 3848 Perl_rv2cv_op_cv(pTHX_ OP *cvop, U32 flags); 3849 #define PERL_ARGS_ASSERT_RV2CV_OP_CV \ 3850 assert(cvop) 3851 3852 PERL_CALLCONV void 3853 Perl_rxres_save(pTHX_ void **rsp, REGEXP *rx) 3854 __attribute__visibility__("hidden"); 3855 #define PERL_ARGS_ASSERT_RXRES_SAVE \ 3856 assert(rsp); assert(rx) 3857 3858 PERL_CALLCONV Malloc_t 3859 Perl_safesyscalloc(MEM_SIZE elements, MEM_SIZE size) 3860 __attribute__malloc__ 3861 __attribute__warn_unused_result__; 3862 #define PERL_ARGS_ASSERT_SAFESYSCALLOC 3863 3864 PERL_CALLCONV Free_t 3865 Perl_safesysfree(Malloc_t where); 3866 #define PERL_ARGS_ASSERT_SAFESYSFREE 3867 3868 PERL_CALLCONV Malloc_t 3869 Perl_safesysmalloc(MEM_SIZE nbytes) 3870 __attribute__malloc__ 3871 __attribute__warn_unused_result__; 3872 #define PERL_ARGS_ASSERT_SAFESYSMALLOC 3873 3874 PERL_CALLCONV Malloc_t 3875 Perl_safesysrealloc(Malloc_t where, MEM_SIZE nbytes) 3876 __attribute__warn_unused_result__; 3877 #define PERL_ARGS_ASSERT_SAFESYSREALLOC 3878 3879 PERL_CALLCONV void 3880 Perl_save_I16(pTHX_ I16 *intp); 3881 #define PERL_ARGS_ASSERT_SAVE_I16 \ 3882 assert(intp) 3883 3884 PERL_CALLCONV void 3885 Perl_save_I32(pTHX_ I32 *intp); 3886 #define PERL_ARGS_ASSERT_SAVE_I32 \ 3887 assert(intp) 3888 3889 PERL_CALLCONV void 3890 Perl_save_I8(pTHX_ I8 *bytep); 3891 #define PERL_ARGS_ASSERT_SAVE_I8 \ 3892 assert(bytep) 3893 3894 PERL_CALLCONV void 3895 Perl_save_adelete(pTHX_ AV *av, SSize_t key); 3896 #define PERL_ARGS_ASSERT_SAVE_ADELETE \ 3897 assert(av) 3898 3899 /* PERL_CALLCONV void 3900 save_aelem(pTHX_ AV *av, SSize_t idx, SV **sptr); */ 3901 3902 PERL_CALLCONV void 3903 Perl_save_aelem_flags(pTHX_ AV *av, SSize_t idx, SV **sptr, const U32 flags); 3904 #define PERL_ARGS_ASSERT_SAVE_AELEM_FLAGS \ 3905 assert(av); assert(sptr) 3906 3907 PERL_CALLCONV SSize_t 3908 Perl_save_alloc(pTHX_ SSize_t size, I32 pad); 3909 #define PERL_ARGS_ASSERT_SAVE_ALLOC 3910 3911 PERL_CALLCONV void 3912 Perl_save_aptr(pTHX_ AV **aptr); 3913 #define PERL_ARGS_ASSERT_SAVE_APTR \ 3914 assert(aptr) 3915 3916 PERL_CALLCONV AV * 3917 Perl_save_ary(pTHX_ GV *gv); 3918 #define PERL_ARGS_ASSERT_SAVE_ARY \ 3919 assert(gv) 3920 3921 PERL_CALLCONV void 3922 Perl_save_bool(pTHX_ bool *boolp); 3923 #define PERL_ARGS_ASSERT_SAVE_BOOL \ 3924 assert(boolp) 3925 3926 PERL_CALLCONV void 3927 Perl_save_clearsv(pTHX_ SV **svp); 3928 #define PERL_ARGS_ASSERT_SAVE_CLEARSV \ 3929 assert(svp) 3930 3931 PERL_CALLCONV void 3932 Perl_save_delete(pTHX_ HV *hv, char *key, I32 klen); 3933 #define PERL_ARGS_ASSERT_SAVE_DELETE \ 3934 assert(hv); assert(key) 3935 3936 PERL_CALLCONV void 3937 Perl_save_destructor(pTHX_ DESTRUCTORFUNC_NOCONTEXT_t f, void *p); 3938 #define PERL_ARGS_ASSERT_SAVE_DESTRUCTOR \ 3939 assert(p) 3940 3941 PERL_CALLCONV void 3942 Perl_save_destructor_x(pTHX_ DESTRUCTORFUNC_t f, void *p); 3943 #define PERL_ARGS_ASSERT_SAVE_DESTRUCTOR_X 3944 3945 PERL_CALLCONV void 3946 Perl_save_freercpv(pTHX_ char *rcpv); 3947 #define PERL_ARGS_ASSERT_SAVE_FREERCPV \ 3948 assert(rcpv) 3949 3950 PERL_CALLCONV void 3951 Perl_save_generic_pvref(pTHX_ char **str); 3952 #define PERL_ARGS_ASSERT_SAVE_GENERIC_PVREF \ 3953 assert(str) 3954 3955 PERL_CALLCONV void 3956 Perl_save_generic_svref(pTHX_ SV **sptr); 3957 #define PERL_ARGS_ASSERT_SAVE_GENERIC_SVREF \ 3958 assert(sptr) 3959 3960 PERL_CALLCONV void 3961 Perl_save_gp(pTHX_ GV *gv, I32 empty); 3962 #define PERL_ARGS_ASSERT_SAVE_GP \ 3963 assert(gv) 3964 3965 PERL_CALLCONV HV * 3966 Perl_save_hash(pTHX_ GV *gv); 3967 #define PERL_ARGS_ASSERT_SAVE_HASH \ 3968 assert(gv) 3969 3970 PERL_CALLCONV void 3971 Perl_save_hdelete(pTHX_ HV *hv, SV *keysv); 3972 #define PERL_ARGS_ASSERT_SAVE_HDELETE \ 3973 assert(hv); assert(keysv) 3974 3975 /* PERL_CALLCONV void 3976 save_helem(pTHX_ HV *hv, SV *key, SV **sptr); */ 3977 3978 PERL_CALLCONV void 3979 Perl_save_helem_flags(pTHX_ HV *hv, SV *key, SV **sptr, const U32 flags); 3980 #define PERL_ARGS_ASSERT_SAVE_HELEM_FLAGS \ 3981 assert(hv); assert(key); assert(sptr) 3982 3983 PERL_CALLCONV void 3984 Perl_save_hints(pTHX); 3985 #define PERL_ARGS_ASSERT_SAVE_HINTS 3986 3987 PERL_CALLCONV void 3988 Perl_save_hptr(pTHX_ HV **hptr); 3989 #define PERL_ARGS_ASSERT_SAVE_HPTR \ 3990 assert(hptr) 3991 3992 PERL_CALLCONV void 3993 Perl_save_int(pTHX_ int *intp); 3994 #define PERL_ARGS_ASSERT_SAVE_INT \ 3995 assert(intp) 3996 3997 PERL_CALLCONV void 3998 Perl_save_item(pTHX_ SV *item); 3999 #define PERL_ARGS_ASSERT_SAVE_ITEM \ 4000 assert(item) 4001 4002 PERL_CALLCONV void 4003 Perl_save_iv(pTHX_ IV *ivp); 4004 #define PERL_ARGS_ASSERT_SAVE_IV \ 4005 assert(ivp) 4006 4007 PERL_CALLCONV void 4008 Perl_save_padsv_and_mortalize(pTHX_ PADOFFSET off); 4009 #define PERL_ARGS_ASSERT_SAVE_PADSV_AND_MORTALIZE 4010 4011 PERL_CALLCONV void 4012 Perl_save_pptr(pTHX_ char **pptr); 4013 #define PERL_ARGS_ASSERT_SAVE_PPTR \ 4014 assert(pptr) 4015 4016 PERL_CALLCONV void 4017 Perl_save_pushi32ptr(pTHX_ const I32 i, void * const ptr, const int type); 4018 #define PERL_ARGS_ASSERT_SAVE_PUSHI32PTR 4019 4020 PERL_CALLCONV void 4021 Perl_save_pushptr(pTHX_ void * const ptr, const int type); 4022 #define PERL_ARGS_ASSERT_SAVE_PUSHPTR 4023 4024 PERL_CALLCONV void 4025 Perl_save_pushptrptr(pTHX_ void * const ptr1, void * const ptr2, const int type); 4026 #define PERL_ARGS_ASSERT_SAVE_PUSHPTRPTR 4027 4028 PERL_CALLCONV void 4029 Perl_save_rcpv(pTHX_ char **prcpv); 4030 #define PERL_ARGS_ASSERT_SAVE_RCPV \ 4031 assert(prcpv) 4032 4033 PERL_CALLCONV void 4034 Perl_save_re_context(pTHX); 4035 #define PERL_ARGS_ASSERT_SAVE_RE_CONTEXT 4036 4037 PERL_CALLCONV SV * 4038 Perl_save_scalar(pTHX_ GV *gv); 4039 #define PERL_ARGS_ASSERT_SAVE_SCALAR \ 4040 assert(gv) 4041 4042 PERL_CALLCONV void 4043 Perl_save_set_svflags(pTHX_ SV *sv, U32 mask, U32 val); 4044 #define PERL_ARGS_ASSERT_SAVE_SET_SVFLAGS \ 4045 assert(sv) 4046 4047 PERL_CALLCONV void 4048 Perl_save_shared_pvref(pTHX_ char **str); 4049 #define PERL_ARGS_ASSERT_SAVE_SHARED_PVREF \ 4050 assert(str) 4051 4052 PERL_CALLCONV void 4053 Perl_save_sptr(pTHX_ SV **sptr); 4054 #define PERL_ARGS_ASSERT_SAVE_SPTR \ 4055 assert(sptr) 4056 4057 PERL_CALLCONV void 4058 Perl_save_strlen(pTHX_ STRLEN *ptr); 4059 #define PERL_ARGS_ASSERT_SAVE_STRLEN \ 4060 assert(ptr) 4061 4062 PERL_CALLCONV SV * 4063 Perl_save_svref(pTHX_ SV **sptr); 4064 #define PERL_ARGS_ASSERT_SAVE_SVREF \ 4065 assert(sptr) 4066 4067 PERL_CALLCONV void 4068 Perl_save_vptr(pTHX_ void *ptr); 4069 #define PERL_ARGS_ASSERT_SAVE_VPTR \ 4070 assert(ptr) 4071 4072 PERL_CALLCONV char * 4073 Perl_savesharedpv(pTHX_ const char *pv) 4074 __attribute__malloc__ 4075 __attribute__warn_unused_result__; 4076 #define PERL_ARGS_ASSERT_SAVESHAREDPV 4077 4078 PERL_CALLCONV char * 4079 Perl_savesharedpvn(pTHX_ const char * const pv, const STRLEN len) 4080 __attribute__malloc__ 4081 __attribute__warn_unused_result__; 4082 #define PERL_ARGS_ASSERT_SAVESHAREDPVN 4083 4084 PERL_CALLCONV void 4085 Perl_savestack_grow(pTHX); 4086 #define PERL_ARGS_ASSERT_SAVESTACK_GROW 4087 4088 PERL_CALLCONV void 4089 Perl_savestack_grow_cnt(pTHX_ I32 need); 4090 #define PERL_ARGS_ASSERT_SAVESTACK_GROW_CNT 4091 4092 PERL_CALLCONV void 4093 Perl_savetmps(pTHX); 4094 #define PERL_ARGS_ASSERT_SAVETMPS 4095 4096 PERL_CALLCONV OP * 4097 Perl_sawparens(pTHX_ OP *o) 4098 __attribute__visibility__("hidden"); 4099 #define PERL_ARGS_ASSERT_SAWPARENS 4100 4101 PERL_CALLCONV OP * 4102 Perl_scalar(pTHX_ OP *o) 4103 __attribute__visibility__("hidden"); 4104 #define PERL_ARGS_ASSERT_SCALAR 4105 4106 PERL_CALLCONV OP * 4107 Perl_scalarvoid(pTHX_ OP *o) 4108 __attribute__visibility__("hidden"); 4109 #define PERL_ARGS_ASSERT_SCALARVOID \ 4110 assert(o) 4111 4112 PERL_CALLCONV NV 4113 Perl_scan_bin(pTHX_ const char *start, STRLEN len, STRLEN *retlen); 4114 #define PERL_ARGS_ASSERT_SCAN_BIN \ 4115 assert(start); assert(retlen) 4116 4117 PERL_CALLCONV NV 4118 Perl_scan_hex(pTHX_ const char *start, STRLEN len, STRLEN *retlen); 4119 #define PERL_ARGS_ASSERT_SCAN_HEX \ 4120 assert(start); assert(retlen) 4121 4122 PERL_CALLCONV char * 4123 Perl_scan_num(pTHX_ const char *s, YYSTYPE *lvalp); 4124 #define PERL_ARGS_ASSERT_SCAN_NUM \ 4125 assert(s); assert(lvalp) 4126 4127 PERL_CALLCONV NV 4128 Perl_scan_oct(pTHX_ const char *start, STRLEN len, STRLEN *retlen); 4129 #define PERL_ARGS_ASSERT_SCAN_OCT \ 4130 assert(start); assert(retlen) 4131 4132 PERL_CALLCONV char * 4133 Perl_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims, int re_reparse, char **delimp) 4134 __attribute__warn_unused_result__; 4135 #define PERL_ARGS_ASSERT_SCAN_STR \ 4136 assert(start) 4137 4138 PERL_CALLCONV const char * 4139 Perl_scan_version(pTHX_ const char *s, SV *rv, bool qv); 4140 #define PERL_ARGS_ASSERT_SCAN_VERSION \ 4141 assert(s); assert(rv) 4142 4143 PERL_CALLCONV char * 4144 Perl_scan_vstring(pTHX_ const char *s, const char * const e, SV *sv); 4145 #define PERL_ARGS_ASSERT_SCAN_VSTRING \ 4146 assert(s); assert(e); assert(sv) 4147 4148 PERL_CALLCONV char * 4149 Perl_scan_word(pTHX_ char *s, char *dest, STRLEN destlen, int allow_package, STRLEN *slp); 4150 #define PERL_ARGS_ASSERT_SCAN_WORD \ 4151 assert(s); assert(dest); assert(slp) 4152 4153 PERL_CALLCONV char * 4154 Perl_scan_word6(pTHX_ char *s, char *dest, STRLEN destlen, int allow_package, STRLEN *slp, bool warn_tick); 4155 #define PERL_ARGS_ASSERT_SCAN_WORD6 \ 4156 assert(s); assert(dest); assert(slp) 4157 4158 PERL_CALLCONV U32 4159 Perl_seed(pTHX); 4160 #define PERL_ARGS_ASSERT_SEED 4161 4162 PERL_CALLCONV void 4163 Perl_set_caret_X(pTHX); 4164 #define PERL_ARGS_ASSERT_SET_CARET_X 4165 4166 PERL_CALLCONV void 4167 Perl_set_context(void *t); 4168 #define PERL_ARGS_ASSERT_SET_CONTEXT \ 4169 assert(t) 4170 4171 PERL_CALLCONV void 4172 Perl_set_numeric_standard(pTHX); 4173 #define PERL_ARGS_ASSERT_SET_NUMERIC_STANDARD 4174 4175 PERL_CALLCONV void 4176 Perl_set_numeric_underlying(pTHX); 4177 #define PERL_ARGS_ASSERT_SET_NUMERIC_UNDERLYING 4178 4179 PERL_CALLCONV void 4180 Perl_setdefout(pTHX_ GV *gv); 4181 #define PERL_ARGS_ASSERT_SETDEFOUT \ 4182 assert(gv) 4183 4184 PERL_CALLCONV void 4185 Perl_setfd_cloexec(int fd) 4186 __attribute__visibility__("hidden"); 4187 #define PERL_ARGS_ASSERT_SETFD_CLOEXEC 4188 4189 PERL_CALLCONV void 4190 Perl_setfd_cloexec_for_nonsysfd(pTHX_ int fd) 4191 __attribute__visibility__("hidden"); 4192 #define PERL_ARGS_ASSERT_SETFD_CLOEXEC_FOR_NONSYSFD 4193 4194 PERL_CALLCONV void 4195 Perl_setfd_cloexec_or_inhexec_by_sysfdness(pTHX_ int fd) 4196 __attribute__visibility__("hidden"); 4197 #define PERL_ARGS_ASSERT_SETFD_CLOEXEC_OR_INHEXEC_BY_SYSFDNESS 4198 4199 PERL_CALLCONV void 4200 Perl_setfd_inhexec(int fd) 4201 __attribute__visibility__("hidden"); 4202 #define PERL_ARGS_ASSERT_SETFD_INHEXEC 4203 4204 PERL_CALLCONV void 4205 Perl_setfd_inhexec_for_sysfd(pTHX_ int fd) 4206 __attribute__visibility__("hidden"); 4207 #define PERL_ARGS_ASSERT_SETFD_INHEXEC_FOR_SYSFD 4208 4209 PERL_CALLCONV HEK * 4210 Perl_share_hek(pTHX_ const char *str, SSize_t len, U32 hash); 4211 #define PERL_ARGS_ASSERT_SHARE_HEK \ 4212 assert(str) 4213 4214 PERL_CALLCONV Signal_t 4215 Perl_sighandler1(int sig) 4216 __attribute__visibility__("hidden"); 4217 #define PERL_ARGS_ASSERT_SIGHANDLER1 4218 4219 PERL_CALLCONV Signal_t 4220 Perl_sighandler3(int sig, Siginfo_t *info, void *uap) 4221 __attribute__visibility__("hidden"); 4222 #define PERL_ARGS_ASSERT_SIGHANDLER3 4223 4224 PERL_CALLCONV char * 4225 Perl_skipspace_flags(pTHX_ char *s, U32 flags) 4226 __attribute__warn_unused_result__; 4227 #define PERL_ARGS_ASSERT_SKIPSPACE_FLAGS \ 4228 assert(s) 4229 4230 PERL_CALLCONV void 4231 Perl_sortsv(pTHX_ SV **array, size_t num_elts, SVCOMPARE_t cmp); 4232 #define PERL_ARGS_ASSERT_SORTSV \ 4233 assert(cmp) 4234 4235 PERL_CALLCONV void 4236 Perl_sortsv_flags(pTHX_ SV **array, size_t num_elts, SVCOMPARE_t cmp, U32 flags); 4237 #define PERL_ARGS_ASSERT_SORTSV_FLAGS \ 4238 assert(cmp) 4239 4240 PERL_CALLCONV SV ** 4241 Perl_stack_grow(pTHX_ SV **sp, SV **p, SSize_t n); 4242 #define PERL_ARGS_ASSERT_STACK_GROW \ 4243 assert(sp); assert(p) 4244 4245 PERL_CALLCONV PerlIO * 4246 Perl_start_glob(pTHX_ SV *tmpglob, IO *io) 4247 __attribute__visibility__("hidden"); 4248 #define PERL_ARGS_ASSERT_START_GLOB \ 4249 assert(tmpglob); assert(io) 4250 4251 PERL_CALLCONV I32 4252 Perl_start_subparse(pTHX_ I32 is_format, U32 flags); 4253 #define PERL_ARGS_ASSERT_START_SUBPARSE 4254 4255 PERL_CALLCONV NV 4256 Perl_str_to_version(pTHX_ SV *sv) 4257 __attribute__warn_unused_result__; 4258 #define PERL_ARGS_ASSERT_STR_TO_VERSION \ 4259 assert(sv) 4260 4261 PERL_CALLCONV void 4262 Perl_sub_crush_depth(pTHX_ CV *cv) 4263 __attribute__visibility__("hidden"); 4264 #define PERL_ARGS_ASSERT_SUB_CRUSH_DEPTH \ 4265 assert(cv) 4266 4267 PERL_CALLCONV void 4268 Perl_suspend_compcv(pTHX_ struct suspended_compcv *buffer); 4269 #define PERL_ARGS_ASSERT_SUSPEND_COMPCV \ 4270 assert(buffer) 4271 4272 PERL_CALLCONV bool 4273 Perl_sv_2bool_flags(pTHX_ SV *sv, I32 flags); 4274 #define PERL_ARGS_ASSERT_SV_2BOOL_FLAGS \ 4275 assert(sv) 4276 4277 PERL_CALLCONV CV * 4278 Perl_sv_2cv(pTHX_ SV *sv, HV ** const st, GV ** const gvp, const I32 lref); 4279 #define PERL_ARGS_ASSERT_SV_2CV \ 4280 assert(st); assert(gvp) 4281 4282 PERL_CALLCONV IO * 4283 Perl_sv_2io(pTHX_ SV * const sv); 4284 #define PERL_ARGS_ASSERT_SV_2IO \ 4285 assert(sv) 4286 4287 PERL_CALLCONV IV 4288 Perl_sv_2iv_flags(pTHX_ SV * const sv, const I32 flags); 4289 #define PERL_ARGS_ASSERT_SV_2IV_FLAGS \ 4290 assert(sv) 4291 4292 PERL_CALLCONV SV * 4293 Perl_sv_2mortal(pTHX_ SV * const sv); 4294 #define PERL_ARGS_ASSERT_SV_2MORTAL 4295 4296 PERL_CALLCONV SV * 4297 Perl_sv_2num(pTHX_ SV * const sv) 4298 __attribute__visibility__("hidden"); 4299 #define PERL_ARGS_ASSERT_SV_2NUM \ 4300 assert(sv) 4301 4302 PERL_CALLCONV NV 4303 Perl_sv_2nv_flags(pTHX_ SV * const sv, const I32 flags); 4304 #define PERL_ARGS_ASSERT_SV_2NV_FLAGS \ 4305 assert(sv) 4306 4307 PERL_CALLCONV char * 4308 Perl_sv_2pv_flags(pTHX_ SV * const sv, STRLEN * const lp, const U32 flags); 4309 #define PERL_ARGS_ASSERT_SV_2PV_FLAGS \ 4310 assert(sv) 4311 4312 PERL_CALLCONV char * 4313 Perl_sv_2pvbyte_flags(pTHX_ SV *sv, STRLEN * const lp, const U32 flags); 4314 #define PERL_ARGS_ASSERT_SV_2PVBYTE_FLAGS \ 4315 assert(sv) 4316 4317 PERL_CALLCONV char * 4318 Perl_sv_2pvutf8_flags(pTHX_ SV *sv, STRLEN * const lp, const U32 flags); 4319 #define PERL_ARGS_ASSERT_SV_2PVUTF8_FLAGS \ 4320 assert(sv) 4321 4322 PERL_CALLCONV UV 4323 Perl_sv_2uv_flags(pTHX_ SV * const sv, const I32 flags); 4324 #define PERL_ARGS_ASSERT_SV_2UV_FLAGS \ 4325 assert(sv) 4326 4327 PERL_CALLCONV void 4328 Perl_sv_backoff(SV * const sv); 4329 #define PERL_ARGS_ASSERT_SV_BACKOFF \ 4330 assert(sv) 4331 4332 PERL_CALLCONV SV * 4333 Perl_sv_bless(pTHX_ SV * const sv, HV * const stash); 4334 #define PERL_ARGS_ASSERT_SV_BLESS \ 4335 assert(sv); assert(stash) 4336 4337 PERL_CALLCONV bool 4338 Perl_sv_cat_decode(pTHX_ SV *dsv, SV *encoding, SV *ssv, int *offset, char *tstr, int tlen); 4339 #define PERL_ARGS_ASSERT_SV_CAT_DECODE \ 4340 assert(dsv); assert(encoding); assert(ssv); assert(offset); assert(tstr) 4341 4342 PERL_CALLCONV void 4343 Perl_sv_catpv(pTHX_ SV * const dsv, const char *sstr); 4344 #define PERL_ARGS_ASSERT_SV_CATPV \ 4345 assert(dsv) 4346 4347 PERL_CALLCONV void 4348 Perl_sv_catpv_flags(pTHX_ SV *dsv, const char *sstr, const I32 flags); 4349 #define PERL_ARGS_ASSERT_SV_CATPV_FLAGS \ 4350 assert(dsv); assert(sstr) 4351 4352 PERL_CALLCONV void 4353 Perl_sv_catpv_mg(pTHX_ SV * const dsv, const char * const sstr); 4354 #define PERL_ARGS_ASSERT_SV_CATPV_MG \ 4355 assert(dsv) 4356 4357 PERL_CALLCONV void 4358 Perl_sv_catpvf(pTHX_ SV * const sv, const char * const pat, ...) 4359 __attribute__format__(__printf__,pTHX_2,pTHX_3); 4360 #define PERL_ARGS_ASSERT_SV_CATPVF \ 4361 assert(sv); assert(pat) 4362 4363 PERL_CALLCONV void 4364 Perl_sv_catpvf_mg(pTHX_ SV * const sv, const char * const pat, ...) 4365 __attribute__format__(__printf__,pTHX_2,pTHX_3); 4366 #define PERL_ARGS_ASSERT_SV_CATPVF_MG \ 4367 assert(sv); assert(pat) 4368 4369 PERL_CALLCONV void 4370 Perl_sv_catpvn_flags(pTHX_ SV * const dsv, const char *sstr, const STRLEN len, const I32 flags); 4371 #define PERL_ARGS_ASSERT_SV_CATPVN_FLAGS \ 4372 assert(dsv); assert(sstr) 4373 4374 PERL_CALLCONV void 4375 Perl_sv_catsv_flags(pTHX_ SV * const dsv, SV * const sstr, const I32 flags); 4376 #define PERL_ARGS_ASSERT_SV_CATSV_FLAGS \ 4377 assert(dsv) 4378 4379 PERL_CALLCONV void 4380 Perl_sv_chop(pTHX_ SV * const sv, const char * const ptr); 4381 #define PERL_ARGS_ASSERT_SV_CHOP \ 4382 assert(sv) 4383 4384 PERL_CALLCONV I32 4385 Perl_sv_clean_all(pTHX) 4386 __attribute__visibility__("hidden"); 4387 #define PERL_ARGS_ASSERT_SV_CLEAN_ALL 4388 4389 PERL_CALLCONV void 4390 Perl_sv_clean_objs(pTHX) 4391 __attribute__visibility__("hidden"); 4392 #define PERL_ARGS_ASSERT_SV_CLEAN_OBJS 4393 4394 PERL_CALLCONV void 4395 Perl_sv_clear(pTHX_ SV * const orig_sv); 4396 #define PERL_ARGS_ASSERT_SV_CLEAR \ 4397 assert(orig_sv) 4398 4399 PERL_CALLCONV I32 4400 Perl_sv_cmp(pTHX_ SV * const sv1, SV * const sv2); 4401 #define PERL_ARGS_ASSERT_SV_CMP 4402 4403 PERL_CALLCONV I32 4404 Perl_sv_cmp_flags(pTHX_ SV * const sv1, SV * const sv2, const U32 flags); 4405 #define PERL_ARGS_ASSERT_SV_CMP_FLAGS 4406 4407 PERL_CALLCONV I32 4408 Perl_sv_cmp_locale(pTHX_ SV * const sv1, SV * const sv2); 4409 #define PERL_ARGS_ASSERT_SV_CMP_LOCALE 4410 4411 PERL_CALLCONV I32 4412 Perl_sv_cmp_locale_flags(pTHX_ SV * const sv1, SV * const sv2, const U32 flags); 4413 #define PERL_ARGS_ASSERT_SV_CMP_LOCALE_FLAGS 4414 4415 PERL_CALLCONV void 4416 Perl_sv_copypv_flags(pTHX_ SV * const dsv, SV * const ssv, const I32 flags); 4417 #define PERL_ARGS_ASSERT_SV_COPYPV_FLAGS \ 4418 assert(dsv); assert(ssv) 4419 4420 /* PERL_CALLCONV void 4421 sv_copypv_nomg(pTHX_ SV * const dsv, SV * const ssv); */ 4422 4423 PERL_CALLCONV void 4424 Perl_sv_dec(pTHX_ SV * const sv); 4425 #define PERL_ARGS_ASSERT_SV_DEC 4426 4427 PERL_CALLCONV void 4428 Perl_sv_dec_nomg(pTHX_ SV * const sv); 4429 #define PERL_ARGS_ASSERT_SV_DEC_NOMG 4430 4431 PERL_CALLCONV void 4432 Perl_sv_del_backref(pTHX_ SV * const tsv, SV * const sv); 4433 #define PERL_ARGS_ASSERT_SV_DEL_BACKREF \ 4434 assert(tsv); assert(sv) 4435 4436 PERL_CALLCONV bool 4437 Perl_sv_derived_from(pTHX_ SV *sv, const char * const name) 4438 __attribute__warn_unused_result__; 4439 #define PERL_ARGS_ASSERT_SV_DERIVED_FROM \ 4440 assert(sv); assert(name) 4441 4442 PERL_CALLCONV bool 4443 Perl_sv_derived_from_hv(pTHX_ SV *sv, HV *hv) 4444 __attribute__warn_unused_result__; 4445 #define PERL_ARGS_ASSERT_SV_DERIVED_FROM_HV \ 4446 assert(sv); assert(hv) 4447 4448 PERL_CALLCONV bool 4449 Perl_sv_derived_from_pv(pTHX_ SV *sv, const char * const name, U32 flags) 4450 __attribute__warn_unused_result__; 4451 #define PERL_ARGS_ASSERT_SV_DERIVED_FROM_PV \ 4452 assert(sv); assert(name) 4453 4454 PERL_CALLCONV bool 4455 Perl_sv_derived_from_pvn(pTHX_ SV *sv, const char * const name, const STRLEN len, U32 flags) 4456 __attribute__warn_unused_result__; 4457 #define PERL_ARGS_ASSERT_SV_DERIVED_FROM_PVN \ 4458 assert(sv); assert(name) 4459 4460 PERL_CALLCONV bool 4461 Perl_sv_derived_from_sv(pTHX_ SV *sv, SV *namesv, U32 flags) 4462 __attribute__warn_unused_result__; 4463 #define PERL_ARGS_ASSERT_SV_DERIVED_FROM_SV \ 4464 assert(sv); assert(namesv) 4465 4466 PERL_CALLCONV bool 4467 Perl_sv_destroyable(pTHX_ SV *sv); 4468 #define PERL_ARGS_ASSERT_SV_DESTROYABLE 4469 4470 PERL_CALLCONV bool 4471 Perl_sv_does(pTHX_ SV *sv, const char * const name) 4472 __attribute__warn_unused_result__; 4473 #define PERL_ARGS_ASSERT_SV_DOES \ 4474 assert(sv); assert(name) 4475 4476 PERL_CALLCONV bool 4477 Perl_sv_does_pv(pTHX_ SV *sv, const char * const name, U32 flags) 4478 __attribute__warn_unused_result__; 4479 #define PERL_ARGS_ASSERT_SV_DOES_PV \ 4480 assert(sv); assert(name) 4481 4482 PERL_CALLCONV bool 4483 Perl_sv_does_pvn(pTHX_ SV *sv, const char * const name, const STRLEN len, U32 flags) 4484 __attribute__warn_unused_result__; 4485 #define PERL_ARGS_ASSERT_SV_DOES_PVN \ 4486 assert(sv); assert(name) 4487 4488 PERL_CALLCONV bool 4489 Perl_sv_does_sv(pTHX_ SV *sv, SV *namesv, U32 flags) 4490 __attribute__warn_unused_result__; 4491 #define PERL_ARGS_ASSERT_SV_DOES_SV \ 4492 assert(sv); assert(namesv) 4493 4494 PERL_CALLCONV void 4495 Perl_sv_dump(pTHX_ SV *sv); 4496 #define PERL_ARGS_ASSERT_SV_DUMP 4497 4498 PERL_CALLCONV void 4499 Perl_sv_dump_depth(pTHX_ SV *sv, I32 depth); 4500 #define PERL_ARGS_ASSERT_SV_DUMP_DEPTH 4501 4502 PERL_CALLCONV I32 4503 Perl_sv_eq_flags(pTHX_ SV *sv1, SV *sv2, const U32 flags); 4504 #define PERL_ARGS_ASSERT_SV_EQ_FLAGS 4505 4506 PERL_CALLCONV void 4507 Perl_sv_force_normal_flags(pTHX_ SV * const sv, const U32 flags); 4508 #define PERL_ARGS_ASSERT_SV_FORCE_NORMAL_FLAGS \ 4509 assert(sv) 4510 4511 PERL_CALLCONV void 4512 Perl_sv_free(pTHX_ SV * const sv); 4513 #define PERL_ARGS_ASSERT_SV_FREE 4514 4515 PERL_CALLCONV void 4516 Perl_sv_free2(pTHX_ SV * const sv, const U32 refcnt); 4517 #define PERL_ARGS_ASSERT_SV_FREE2 \ 4518 assert(sv) 4519 4520 PERL_CALLCONV void 4521 Perl_sv_free_arenas(pTHX) 4522 __attribute__visibility__("hidden"); 4523 #define PERL_ARGS_ASSERT_SV_FREE_ARENAS 4524 4525 PERL_CALLCONV SV * 4526 Perl_sv_get_backrefs(SV * const sv); 4527 #define PERL_ARGS_ASSERT_SV_GET_BACKREFS \ 4528 assert(sv) 4529 4530 PERL_CALLCONV char * 4531 Perl_sv_gets(pTHX_ SV * const sv, PerlIO * const fp, I32 append); 4532 #define PERL_ARGS_ASSERT_SV_GETS \ 4533 assert(sv); assert(fp) 4534 4535 PERL_CALLCONV char * 4536 Perl_sv_grow(pTHX_ SV * const sv, STRLEN newlen); 4537 #define PERL_ARGS_ASSERT_SV_GROW \ 4538 assert(sv) 4539 4540 PERL_CALLCONV char * 4541 Perl_sv_grow_fresh(pTHX_ SV * const sv, STRLEN newlen); 4542 #define PERL_ARGS_ASSERT_SV_GROW_FRESH \ 4543 assert(sv) 4544 4545 PERL_CALLCONV void 4546 Perl_sv_inc(pTHX_ SV * const sv); 4547 #define PERL_ARGS_ASSERT_SV_INC 4548 4549 PERL_CALLCONV void 4550 Perl_sv_inc_nomg(pTHX_ SV * const sv); 4551 #define PERL_ARGS_ASSERT_SV_INC_NOMG 4552 4553 PERL_CALLCONV void 4554 Perl_sv_insert_flags(pTHX_ SV * const bigstr, const STRLEN offset, const STRLEN len, const char *little, const STRLEN littlelen, const U32 flags); 4555 #define PERL_ARGS_ASSERT_SV_INSERT_FLAGS \ 4556 assert(bigstr); assert(little) 4557 4558 PERL_CALLCONV int 4559 Perl_sv_isa(pTHX_ SV *sv, const char * const name); 4560 #define PERL_ARGS_ASSERT_SV_ISA \ 4561 assert(name) 4562 4563 PERL_CALLCONV bool 4564 Perl_sv_isa_sv(pTHX_ SV *sv, SV *namesv) 4565 __attribute__warn_unused_result__; 4566 #define PERL_ARGS_ASSERT_SV_ISA_SV \ 4567 assert(sv); assert(namesv) 4568 4569 PERL_CALLCONV int 4570 Perl_sv_isobject(pTHX_ SV *sv); 4571 #define PERL_ARGS_ASSERT_SV_ISOBJECT 4572 4573 PERL_CALLCONV STRLEN 4574 Perl_sv_len(pTHX_ SV * const sv); 4575 #define PERL_ARGS_ASSERT_SV_LEN 4576 4577 PERL_CALLCONV STRLEN 4578 Perl_sv_len_utf8(pTHX_ SV * const sv); 4579 #define PERL_ARGS_ASSERT_SV_LEN_UTF8 4580 4581 PERL_CALLCONV STRLEN 4582 Perl_sv_len_utf8_nomg(pTHX_ SV * const sv); 4583 #define PERL_ARGS_ASSERT_SV_LEN_UTF8_NOMG \ 4584 assert(sv) 4585 4586 PERL_CALLCONV void 4587 Perl_sv_magic(pTHX_ SV * const sv, SV * const obj, const int how, const char * const name, const I32 namlen); 4588 #define PERL_ARGS_ASSERT_SV_MAGIC \ 4589 assert(sv) 4590 4591 PERL_CALLCONV MAGIC * 4592 Perl_sv_magicext(pTHX_ SV * const sv, SV * const obj, const int how, const MGVTBL * const vtbl, const char * const name, const I32 namlen); 4593 #define PERL_ARGS_ASSERT_SV_MAGICEXT \ 4594 assert(sv) 4595 4596 PERL_CALLCONV MAGIC * 4597 Perl_sv_magicext_mglob(pTHX_ SV *sv); 4598 #define PERL_ARGS_ASSERT_SV_MAGICEXT_MGLOB \ 4599 assert(sv) 4600 4601 PERL_CALLCONV SV * 4602 Perl_sv_mortalcopy_flags(pTHX_ SV * const oldsv, U32 flags) 4603 __attribute__warn_unused_result__; 4604 #define PERL_ARGS_ASSERT_SV_MORTALCOPY_FLAGS 4605 4606 PERL_CALLCONV SV * 4607 Perl_sv_newmortal(pTHX) 4608 __attribute__warn_unused_result__; 4609 #define PERL_ARGS_ASSERT_SV_NEWMORTAL 4610 4611 PERL_CALLCONV SV * 4612 Perl_sv_newref(pTHX_ SV * const sv); 4613 #define PERL_ARGS_ASSERT_SV_NEWREF 4614 4615 PERL_CALLCONV void 4616 Perl_sv_nosharing(pTHX_ SV *sv); 4617 #define PERL_ARGS_ASSERT_SV_NOSHARING 4618 4619 /* PERL_CALLCONV bool 4620 sv_numeq(pTHX_ SV *sv1, SV *sv2); */ 4621 4622 PERL_CALLCONV bool 4623 Perl_sv_numeq_flags(pTHX_ SV *sv1, SV *sv2, const U32 flags); 4624 #define PERL_ARGS_ASSERT_SV_NUMEQ_FLAGS 4625 4626 PERL_CALLCONV char * 4627 Perl_sv_peek(pTHX_ SV *sv); 4628 #define PERL_ARGS_ASSERT_SV_PEEK 4629 4630 PERL_CALLCONV void 4631 Perl_sv_pos_b2u(pTHX_ SV * const sv, I32 * const offsetp); 4632 #define PERL_ARGS_ASSERT_SV_POS_B2U \ 4633 assert(offsetp) 4634 4635 PERL_CALLCONV STRLEN 4636 Perl_sv_pos_b2u_flags(pTHX_ SV * const sv, STRLEN const offset, U32 flags); 4637 #define PERL_ARGS_ASSERT_SV_POS_B2U_FLAGS \ 4638 assert(sv) 4639 4640 PERL_CALLCONV void 4641 Perl_sv_pos_u2b(pTHX_ SV * const sv, I32 * const offsetp, I32 * const lenp); 4642 #define PERL_ARGS_ASSERT_SV_POS_U2B \ 4643 assert(offsetp) 4644 4645 PERL_CALLCONV STRLEN 4646 Perl_sv_pos_u2b_flags(pTHX_ SV * const sv, STRLEN uoffset, STRLEN * const lenp, U32 flags); 4647 #define PERL_ARGS_ASSERT_SV_POS_U2B_FLAGS \ 4648 assert(sv) 4649 4650 PERL_CALLCONV char * 4651 Perl_sv_pvbyten_force(pTHX_ SV * const sv, STRLEN * const lp); 4652 #define PERL_ARGS_ASSERT_SV_PVBYTEN_FORCE \ 4653 assert(sv) 4654 4655 PERL_CALLCONV char * 4656 Perl_sv_pvn_force_flags(pTHX_ SV * const sv, STRLEN * const lp, const U32 flags); 4657 #define PERL_ARGS_ASSERT_SV_PVN_FORCE_FLAGS \ 4658 assert(sv) 4659 4660 PERL_CALLCONV char * 4661 Perl_sv_pvutf8n_force(pTHX_ SV * const sv, STRLEN * const lp); 4662 #define PERL_ARGS_ASSERT_SV_PVUTF8N_FORCE \ 4663 assert(sv) 4664 4665 PERL_CALLCONV char * 4666 Perl_sv_recode_to_utf8(pTHX_ SV *sv, SV *encoding); 4667 #define PERL_ARGS_ASSERT_SV_RECODE_TO_UTF8 \ 4668 assert(sv); assert(encoding) 4669 4670 PERL_CALLCONV SV * 4671 Perl_sv_ref(pTHX_ SV *dst, const SV * const sv, const int ob); 4672 #define PERL_ARGS_ASSERT_SV_REF \ 4673 assert(sv) 4674 4675 PERL_CALLCONV const char * 4676 Perl_sv_reftype(pTHX_ const SV * const sv, const int ob) 4677 __attribute__warn_unused_result__; 4678 #define PERL_ARGS_ASSERT_SV_REFTYPE \ 4679 assert(sv) 4680 4681 PERL_CALLCONV void 4682 Perl_sv_replace(pTHX_ SV * const sv, SV * const nsv); 4683 #define PERL_ARGS_ASSERT_SV_REPLACE \ 4684 assert(sv); assert(nsv) 4685 4686 PERL_CALLCONV void 4687 Perl_sv_report_used(pTHX); 4688 #define PERL_ARGS_ASSERT_SV_REPORT_USED 4689 4690 PERL_CALLCONV void 4691 Perl_sv_reset(pTHX_ const char *s, HV * const stash); 4692 #define PERL_ARGS_ASSERT_SV_RESET \ 4693 assert(s) 4694 4695 PERL_CALLCONV void 4696 Perl_sv_resetpvn(pTHX_ const char *s, STRLEN len, HV * const stash) 4697 __attribute__visibility__("hidden"); 4698 #define PERL_ARGS_ASSERT_SV_RESETPVN 4699 4700 PERL_CALLCONV SV * 4701 Perl_sv_rvunweaken(pTHX_ SV * const sv); 4702 #define PERL_ARGS_ASSERT_SV_RVUNWEAKEN \ 4703 assert(sv) 4704 4705 PERL_CALLCONV SV * 4706 Perl_sv_rvweaken(pTHX_ SV * const sv); 4707 #define PERL_ARGS_ASSERT_SV_RVWEAKEN \ 4708 assert(sv) 4709 4710 PERL_CALLCONV void 4711 Perl_sv_set_bool(pTHX_ SV *sv, const bool bool_val); 4712 #define PERL_ARGS_ASSERT_SV_SET_BOOL \ 4713 assert(sv) 4714 4715 PERL_CALLCONV void 4716 Perl_sv_set_false(pTHX_ SV *sv); 4717 #define PERL_ARGS_ASSERT_SV_SET_FALSE \ 4718 assert(sv) 4719 4720 PERL_CALLCONV void 4721 Perl_sv_set_true(pTHX_ SV *sv); 4722 #define PERL_ARGS_ASSERT_SV_SET_TRUE \ 4723 assert(sv) 4724 4725 PERL_CALLCONV void 4726 Perl_sv_set_undef(pTHX_ SV *sv); 4727 #define PERL_ARGS_ASSERT_SV_SET_UNDEF \ 4728 assert(sv) 4729 4730 PERL_CALLCONV void 4731 Perl_sv_sethek(pTHX_ SV * const sv, const HEK * const hek); 4732 #define PERL_ARGS_ASSERT_SV_SETHEK \ 4733 assert(sv) 4734 4735 PERL_CALLCONV void 4736 Perl_sv_setiv(pTHX_ SV * const sv, const IV num); 4737 #define PERL_ARGS_ASSERT_SV_SETIV \ 4738 assert(sv) 4739 4740 PERL_CALLCONV void 4741 Perl_sv_setiv_mg(pTHX_ SV * const sv, const IV i); 4742 #define PERL_ARGS_ASSERT_SV_SETIV_MG \ 4743 assert(sv) 4744 4745 PERL_CALLCONV void 4746 Perl_sv_setnv(pTHX_ SV * const sv, const NV num); 4747 #define PERL_ARGS_ASSERT_SV_SETNV \ 4748 assert(sv) 4749 4750 PERL_CALLCONV void 4751 Perl_sv_setnv_mg(pTHX_ SV * const sv, const NV num); 4752 #define PERL_ARGS_ASSERT_SV_SETNV_MG \ 4753 assert(sv) 4754 4755 PERL_CALLCONV void 4756 Perl_sv_setpv(pTHX_ SV * const sv, const char * const ptr); 4757 #define PERL_ARGS_ASSERT_SV_SETPV \ 4758 assert(sv) 4759 4760 PERL_CALLCONV char * 4761 Perl_sv_setpv_bufsize(pTHX_ SV * const sv, const STRLEN cur, const STRLEN len); 4762 #define PERL_ARGS_ASSERT_SV_SETPV_BUFSIZE \ 4763 assert(sv) 4764 4765 PERL_CALLCONV void 4766 Perl_sv_setpv_mg(pTHX_ SV * const sv, const char * const ptr); 4767 #define PERL_ARGS_ASSERT_SV_SETPV_MG \ 4768 assert(sv) 4769 4770 PERL_CALLCONV void 4771 Perl_sv_setpvf(pTHX_ SV * const sv, const char * const pat, ...) 4772 __attribute__format__(__printf__,pTHX_2,pTHX_3); 4773 #define PERL_ARGS_ASSERT_SV_SETPVF \ 4774 assert(sv); assert(pat) 4775 4776 PERL_CALLCONV void 4777 Perl_sv_setpvf_mg(pTHX_ SV * const sv, const char * const pat, ...) 4778 __attribute__format__(__printf__,pTHX_2,pTHX_3); 4779 #define PERL_ARGS_ASSERT_SV_SETPVF_MG \ 4780 assert(sv); assert(pat) 4781 4782 PERL_CALLCONV void 4783 Perl_sv_setpvn(pTHX_ SV * const sv, const char * const ptr, const STRLEN len); 4784 #define PERL_ARGS_ASSERT_SV_SETPVN \ 4785 assert(sv) 4786 4787 PERL_CALLCONV void 4788 Perl_sv_setpvn_fresh(pTHX_ SV * const sv, const char * const ptr, const STRLEN len); 4789 #define PERL_ARGS_ASSERT_SV_SETPVN_FRESH \ 4790 assert(sv) 4791 4792 PERL_CALLCONV void 4793 Perl_sv_setpvn_mg(pTHX_ SV * const sv, const char * const ptr, const STRLEN len); 4794 #define PERL_ARGS_ASSERT_SV_SETPVN_MG \ 4795 assert(sv); assert(ptr) 4796 4797 PERL_CALLCONV SV * 4798 Perl_sv_setref_iv(pTHX_ SV * const rv, const char * const classname, const IV iv); 4799 #define PERL_ARGS_ASSERT_SV_SETREF_IV \ 4800 assert(rv) 4801 4802 PERL_CALLCONV SV * 4803 Perl_sv_setref_nv(pTHX_ SV * const rv, const char * const classname, const NV nv); 4804 #define PERL_ARGS_ASSERT_SV_SETREF_NV \ 4805 assert(rv) 4806 4807 PERL_CALLCONV SV * 4808 Perl_sv_setref_pv(pTHX_ SV * const rv, const char * const classname, void * const pv); 4809 #define PERL_ARGS_ASSERT_SV_SETREF_PV \ 4810 assert(rv) 4811 4812 PERL_CALLCONV SV * 4813 Perl_sv_setref_pvn(pTHX_ SV * const rv, const char * const classname, const char * const pv, const STRLEN n); 4814 #define PERL_ARGS_ASSERT_SV_SETREF_PVN \ 4815 assert(rv); assert(pv) 4816 4817 PERL_CALLCONV SV * 4818 Perl_sv_setref_uv(pTHX_ SV * const rv, const char * const classname, const UV uv); 4819 #define PERL_ARGS_ASSERT_SV_SETREF_UV \ 4820 assert(rv) 4821 4822 PERL_CALLCONV void 4823 Perl_sv_setrv_inc(pTHX_ SV * const sv, SV * const ref); 4824 #define PERL_ARGS_ASSERT_SV_SETRV_INC \ 4825 assert(sv); assert(ref) 4826 4827 PERL_CALLCONV void 4828 Perl_sv_setrv_inc_mg(pTHX_ SV * const sv, SV * const ref); 4829 #define PERL_ARGS_ASSERT_SV_SETRV_INC_MG \ 4830 assert(sv); assert(ref) 4831 4832 PERL_CALLCONV void 4833 Perl_sv_setrv_noinc(pTHX_ SV * const sv, SV * const ref); 4834 #define PERL_ARGS_ASSERT_SV_SETRV_NOINC \ 4835 assert(sv); assert(ref) 4836 4837 PERL_CALLCONV void 4838 Perl_sv_setrv_noinc_mg(pTHX_ SV * const sv, SV * const ref); 4839 #define PERL_ARGS_ASSERT_SV_SETRV_NOINC_MG \ 4840 assert(sv); assert(ref) 4841 4842 PERL_CALLCONV void 4843 Perl_sv_setsv_flags(pTHX_ SV *dsv, SV *ssv, const I32 flags); 4844 #define PERL_ARGS_ASSERT_SV_SETSV_FLAGS \ 4845 assert(dsv) 4846 4847 PERL_CALLCONV void 4848 Perl_sv_setsv_mg(pTHX_ SV * const dsv, SV * const ssv); 4849 #define PERL_ARGS_ASSERT_SV_SETSV_MG \ 4850 assert(dsv) 4851 4852 PERL_CALLCONV void 4853 Perl_sv_setuv(pTHX_ SV * const sv, const UV num); 4854 #define PERL_ARGS_ASSERT_SV_SETUV \ 4855 assert(sv) 4856 4857 PERL_CALLCONV void 4858 Perl_sv_setuv_mg(pTHX_ SV * const sv, const UV u); 4859 #define PERL_ARGS_ASSERT_SV_SETUV_MG \ 4860 assert(sv) 4861 4862 /* PERL_CALLCONV bool 4863 sv_streq(pTHX_ SV *sv1, SV *sv2); */ 4864 4865 PERL_CALLCONV bool 4866 Perl_sv_streq_flags(pTHX_ SV *sv1, SV *sv2, const U32 flags); 4867 #define PERL_ARGS_ASSERT_SV_STREQ_FLAGS 4868 4869 PERL_CALLCONV SV * 4870 Perl_sv_string_from_errnum(pTHX_ int errnum, SV *tgtsv); 4871 #define PERL_ARGS_ASSERT_SV_STRING_FROM_ERRNUM 4872 4873 PERL_CALLCONV bool 4874 Perl_sv_tainted(pTHX_ SV * const sv) 4875 __attribute__warn_unused_result__; 4876 #define PERL_ARGS_ASSERT_SV_TAINTED \ 4877 assert(sv) 4878 4879 PERL_CALLCONV I32 4880 Perl_sv_true(pTHX_ SV * const sv); 4881 #define PERL_ARGS_ASSERT_SV_TRUE 4882 4883 PERL_CALLCONV char * 4884 Perl_sv_uni_display(pTHX_ SV *dsv, SV *ssv, STRLEN pvlim, UV flags) 4885 __attribute__warn_unused_result__; 4886 #define PERL_ARGS_ASSERT_SV_UNI_DISPLAY \ 4887 assert(dsv); assert(ssv) 4888 4889 PERL_CALLCONV int 4890 Perl_sv_unmagic(pTHX_ SV * const sv, const int type); 4891 #define PERL_ARGS_ASSERT_SV_UNMAGIC \ 4892 assert(sv) 4893 4894 PERL_CALLCONV int 4895 Perl_sv_unmagicext(pTHX_ SV * const sv, const int type, const MGVTBL *vtbl); 4896 #define PERL_ARGS_ASSERT_SV_UNMAGICEXT \ 4897 assert(sv) 4898 4899 PERL_CALLCONV void 4900 Perl_sv_unref_flags(pTHX_ SV * const ref, const U32 flags); 4901 #define PERL_ARGS_ASSERT_SV_UNREF_FLAGS \ 4902 assert(ref) 4903 4904 PERL_CALLCONV void 4905 Perl_sv_untaint(pTHX_ SV * const sv); 4906 #define PERL_ARGS_ASSERT_SV_UNTAINT \ 4907 assert(sv) 4908 4909 PERL_CALLCONV void 4910 Perl_sv_upgrade(pTHX_ SV * const sv, svtype new_type); 4911 #define PERL_ARGS_ASSERT_SV_UPGRADE \ 4912 assert(sv) 4913 4914 PERL_CALLCONV void 4915 Perl_sv_usepvn_flags(pTHX_ SV * const sv, char *ptr, const STRLEN len, const U32 flags); 4916 #define PERL_ARGS_ASSERT_SV_USEPVN_FLAGS \ 4917 assert(sv) 4918 4919 PERL_CALLCONV bool 4920 Perl_sv_utf8_decode(pTHX_ SV * const sv); 4921 #define PERL_ARGS_ASSERT_SV_UTF8_DECODE \ 4922 assert(sv) 4923 4924 PERL_CALLCONV bool 4925 Perl_sv_utf8_downgrade_flags(pTHX_ SV * const sv, const bool fail_ok, const U32 flags); 4926 #define PERL_ARGS_ASSERT_SV_UTF8_DOWNGRADE_FLAGS \ 4927 assert(sv) 4928 4929 /* PERL_CALLCONV bool 4930 sv_utf8_downgrade_nomg(pTHX_ SV * const sv, const bool fail_ok); */ 4931 4932 PERL_CALLCONV void 4933 Perl_sv_utf8_encode(pTHX_ SV * const sv); 4934 #define PERL_ARGS_ASSERT_SV_UTF8_ENCODE \ 4935 assert(sv) 4936 4937 /* PERL_CALLCONV STRLEN 4938 sv_utf8_upgrade_flags(pTHX_ SV * const sv, const I32 flags); */ 4939 4940 PERL_CALLCONV STRLEN 4941 Perl_sv_utf8_upgrade_flags_grow(pTHX_ SV * const sv, const I32 flags, STRLEN extra); 4942 #define PERL_ARGS_ASSERT_SV_UTF8_UPGRADE_FLAGS_GROW \ 4943 assert(sv) 4944 4945 /* PERL_CALLCONV STRLEN 4946 sv_utf8_upgrade_nomg(pTHX_ SV *sv); */ 4947 4948 PERL_CALLCONV void 4949 Perl_sv_vcatpvf(pTHX_ SV * const sv, const char * const pat, va_list * const args); 4950 #define PERL_ARGS_ASSERT_SV_VCATPVF \ 4951 assert(sv); assert(pat) 4952 4953 PERL_CALLCONV void 4954 Perl_sv_vcatpvf_mg(pTHX_ SV * const sv, const char * const pat, va_list * const args); 4955 #define PERL_ARGS_ASSERT_SV_VCATPVF_MG \ 4956 assert(sv); assert(pat) 4957 4958 PERL_CALLCONV void 4959 Perl_sv_vcatpvfn(pTHX_ SV * const sv, const char * const pat, const STRLEN patlen, va_list * const args, SV ** const svargs, const Size_t sv_count, bool * const maybe_tainted); 4960 #define PERL_ARGS_ASSERT_SV_VCATPVFN \ 4961 assert(sv); assert(pat) 4962 4963 PERL_CALLCONV void 4964 Perl_sv_vcatpvfn_flags(pTHX_ SV * const sv, const char * const pat, const STRLEN patlen, va_list * const args, SV ** const svargs, const Size_t sv_count, bool * const maybe_tainted, const U32 flags); 4965 #define PERL_ARGS_ASSERT_SV_VCATPVFN_FLAGS \ 4966 assert(sv); assert(pat) 4967 4968 PERL_CALLCONV void 4969 Perl_sv_vsetpvf(pTHX_ SV * const sv, const char * const pat, va_list * const args); 4970 #define PERL_ARGS_ASSERT_SV_VSETPVF \ 4971 assert(sv); assert(pat) 4972 4973 PERL_CALLCONV void 4974 Perl_sv_vsetpvf_mg(pTHX_ SV * const sv, const char * const pat, va_list * const args); 4975 #define PERL_ARGS_ASSERT_SV_VSETPVF_MG \ 4976 assert(sv); assert(pat) 4977 4978 PERL_CALLCONV void 4979 Perl_sv_vsetpvfn(pTHX_ SV * const sv, const char * const pat, const STRLEN patlen, va_list * const args, SV ** const svargs, const Size_t sv_count, bool * const maybe_tainted); 4980 #define PERL_ARGS_ASSERT_SV_VSETPVFN \ 4981 assert(sv); assert(pat) 4982 4983 PERL_CALLCONV void 4984 Perl_switch_to_global_locale(pTHX); 4985 #define PERL_ARGS_ASSERT_SWITCH_TO_GLOBAL_LOCALE 4986 4987 PERL_CALLCONV bool 4988 Perl_sync_locale(pTHX); 4989 #define PERL_ARGS_ASSERT_SYNC_LOCALE 4990 4991 PERL_CALLCONV void 4992 Perl_sys_init(int *argc, char ***argv); 4993 #define PERL_ARGS_ASSERT_SYS_INIT \ 4994 assert(argc); assert(argv) 4995 4996 PERL_CALLCONV void 4997 Perl_sys_init3(int *argc, char ***argv, char ***env); 4998 #define PERL_ARGS_ASSERT_SYS_INIT3 \ 4999 assert(argc); assert(argv); assert(env) 5000 5001 PERL_CALLCONV void 5002 Perl_sys_term(void); 5003 #define PERL_ARGS_ASSERT_SYS_TERM 5004 5005 PERL_CALLCONV void 5006 Perl_taint_env(pTHX); 5007 #define PERL_ARGS_ASSERT_TAINT_ENV 5008 5009 PERL_CALLCONV void 5010 Perl_taint_proper(pTHX_ const char *f, const char * const s); 5011 #define PERL_ARGS_ASSERT_TAINT_PROPER \ 5012 assert(s) 5013 5014 PERL_CALLCONV void 5015 Perl_thread_locale_init(pTHX); 5016 #define PERL_ARGS_ASSERT_THREAD_LOCALE_INIT 5017 5018 PERL_CALLCONV void 5019 Perl_thread_locale_term(pTHX); 5020 #define PERL_ARGS_ASSERT_THREAD_LOCALE_TERM 5021 5022 PERL_CALLCONV OP * 5023 Perl_tied_method(pTHX_ SV *methname, SV **sp, SV * const sv, const MAGIC * const mg, const U32 flags, U32 argc, ...) 5024 __attribute__visibility__("hidden"); 5025 #define PERL_ARGS_ASSERT_TIED_METHOD \ 5026 assert(methname); assert(sp); assert(sv); assert(mg) 5027 5028 PERL_CALLCONV SSize_t 5029 Perl_tmps_grow_p(pTHX_ SSize_t ix); 5030 #define PERL_ARGS_ASSERT_TMPS_GROW_P 5031 5032 /* PERL_CALLCONV UV 5033 to_uni_fold(pTHX_ UV c, U8 *p, STRLEN *lenp); */ 5034 5035 PERL_CALLCONV UV 5036 Perl_to_uni_lower(pTHX_ UV c, U8 *p, STRLEN *lenp); 5037 #define PERL_ARGS_ASSERT_TO_UNI_LOWER \ 5038 assert(p); assert(lenp) 5039 5040 PERL_CALLCONV UV 5041 Perl_to_uni_title(pTHX_ UV c, U8 *p, STRLEN *lenp); 5042 #define PERL_ARGS_ASSERT_TO_UNI_TITLE \ 5043 assert(p); assert(lenp) 5044 5045 PERL_CALLCONV UV 5046 Perl_to_uni_upper(pTHX_ UV c, U8 *p, STRLEN *lenp); 5047 #define PERL_ARGS_ASSERT_TO_UNI_UPPER \ 5048 assert(p); assert(lenp) 5049 5050 PERL_CALLCONV bool 5051 Perl_try_amagic_bin(pTHX_ int method, int flags); 5052 #define PERL_ARGS_ASSERT_TRY_AMAGIC_BIN 5053 5054 PERL_CALLCONV bool 5055 Perl_try_amagic_un(pTHX_ int method, int flags); 5056 #define PERL_ARGS_ASSERT_TRY_AMAGIC_UN 5057 5058 PERL_CALLCONV SSize_t 5059 Perl_unpackstring(pTHX_ const char *pat, const char *patend, const char *s, const char *strend, U32 flags); 5060 #define PERL_ARGS_ASSERT_UNPACKSTRING \ 5061 assert(pat); assert(patend); assert(s); assert(strend) 5062 5063 PERL_CALLCONV void 5064 Perl_unshare_hek(pTHX_ HEK *hek); 5065 #define PERL_ARGS_ASSERT_UNSHARE_HEK 5066 5067 PERL_CALLCONV void 5068 Perl_unsharepvn(pTHX_ const char *sv, I32 len, U32 hash); 5069 #define PERL_ARGS_ASSERT_UNSHAREPVN 5070 5071 PERL_CALLCONV SV * 5072 Perl_upg_version(pTHX_ SV *ver, bool qv); 5073 #define PERL_ARGS_ASSERT_UPG_VERSION \ 5074 assert(ver) 5075 5076 PERL_CALLCONV U8 * 5077 Perl_utf16_to_utf8(pTHX_ U8 *p, U8 *d, Size_t bytelen, Size_t *newlen); 5078 #define PERL_ARGS_ASSERT_UTF16_TO_UTF8 \ 5079 assert(p); assert(d); assert(newlen) 5080 5081 PERL_CALLCONV U8 * 5082 Perl_utf16_to_utf8_base(pTHX_ U8 *p, U8 *d, Size_t bytelen, Size_t *newlen, const bool high, const bool low); 5083 #define PERL_ARGS_ASSERT_UTF16_TO_UTF8_BASE \ 5084 assert(p); assert(d); assert(newlen) 5085 5086 PERL_CALLCONV U8 * 5087 Perl_utf16_to_utf8_reversed(pTHX_ U8 *p, U8 *d, Size_t bytelen, Size_t *newlen); 5088 #define PERL_ARGS_ASSERT_UTF16_TO_UTF8_REVERSED \ 5089 assert(p); assert(d); assert(newlen) 5090 5091 PERL_CALLCONV STRLEN 5092 Perl_utf8_length(pTHX_ const U8 *s0, const U8 *e) 5093 __attribute__warn_unused_result__; 5094 #define PERL_ARGS_ASSERT_UTF8_LENGTH \ 5095 assert(s0); assert(e) 5096 5097 PERL_CALLCONV U8 * 5098 Perl_utf8_to_bytes(pTHX_ U8 *s, STRLEN *lenp); 5099 #define PERL_ARGS_ASSERT_UTF8_TO_BYTES \ 5100 assert(s); assert(lenp) 5101 5102 PERL_CALLCONV U8 * 5103 Perl_utf8_to_utf16_base(pTHX_ U8 *s, U8 *d, Size_t bytelen, Size_t *newlen, const bool high, const bool low); 5104 #define PERL_ARGS_ASSERT_UTF8_TO_UTF16_BASE \ 5105 assert(s); assert(d); assert(newlen) 5106 5107 PERL_CALLCONV UV 5108 Perl_utf8_to_uvchr_buf(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen); 5109 #define PERL_ARGS_ASSERT_UTF8_TO_UVCHR_BUF \ 5110 assert(s); assert(send) 5111 5112 PERL_CALLCONV UV 5113 Perl_utf8n_to_uvchr(const U8 *s, STRLEN curlen, STRLEN *retlen, const U32 flags); 5114 #define PERL_ARGS_ASSERT_UTF8N_TO_UVCHR \ 5115 assert(s) 5116 5117 PERL_CALLCONV UV 5118 Perl_utf8n_to_uvchr_error(const U8 *s, STRLEN curlen, STRLEN *retlen, const U32 flags, U32 *errors); 5119 #define PERL_ARGS_ASSERT_UTF8N_TO_UVCHR_ERROR \ 5120 assert(s) 5121 5122 PERL_CALLCONV void 5123 Perl_utilize(pTHX_ int aver, I32 floor, OP *version, OP *idop, OP *arg) 5124 __attribute__visibility__("hidden"); 5125 #define PERL_ARGS_ASSERT_UTILIZE \ 5126 assert(idop) 5127 5128 /* PERL_CALLCONV U8 * 5129 uvchr_to_utf8(pTHX_ U8 *d, UV uv); */ 5130 5131 /* PERL_CALLCONV U8 * 5132 uvchr_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags); */ 5133 5134 /* PERL_CALLCONV U8 * 5135 uvchr_to_utf8_flags_msgs(pTHX_ U8 *d, UV uv, UV flags, HV **msgs); */ 5136 5137 PERL_CALLCONV U8 * 5138 Perl_uvoffuni_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags); 5139 #define PERL_ARGS_ASSERT_UVOFFUNI_TO_UTF8_FLAGS \ 5140 assert(d) 5141 5142 PERL_CALLCONV U8 * 5143 Perl_uvoffuni_to_utf8_flags_msgs(pTHX_ U8 *d, UV input_uv, const UV flags, HV **msgs); 5144 #define PERL_ARGS_ASSERT_UVOFFUNI_TO_UTF8_FLAGS_MSGS \ 5145 assert(d) 5146 5147 PERL_CALLCONV U8 * 5148 Perl_uvuni_to_utf8(pTHX_ U8 *d, UV uv); 5149 #define PERL_ARGS_ASSERT_UVUNI_TO_UTF8 \ 5150 assert(d) 5151 5152 PERL_CALLCONV bool 5153 Perl_validate_proto(pTHX_ SV *name, SV *proto, bool warn, bool curstash); 5154 #define PERL_ARGS_ASSERT_VALIDATE_PROTO \ 5155 assert(name) 5156 5157 PERL_CALLCONV int 5158 Perl_vcmp(pTHX_ SV *lhv, SV *rhv); 5159 #define PERL_ARGS_ASSERT_VCMP \ 5160 assert(lhv); assert(rhv) 5161 5162 PERL_CALLCONV_NO_RET void 5163 Perl_vcroak(pTHX_ const char *pat, va_list *args) 5164 __attribute__noreturn__; 5165 #define PERL_ARGS_ASSERT_VCROAK 5166 5167 PERL_CALLCONV void 5168 Perl_vdeb(pTHX_ const char *pat, va_list *args); 5169 #define PERL_ARGS_ASSERT_VDEB \ 5170 assert(pat) 5171 5172 PERL_CALLCONV char * 5173 Perl_vform(pTHX_ const char *pat, va_list *args); 5174 #define PERL_ARGS_ASSERT_VFORM \ 5175 assert(pat) 5176 5177 PERL_CALLCONV void 5178 Perl_vivify_defelem(pTHX_ SV *sv); 5179 #define PERL_ARGS_ASSERT_VIVIFY_DEFELEM \ 5180 assert(sv) 5181 5182 PERL_CALLCONV SV * 5183 Perl_vivify_ref(pTHX_ SV *sv, U32 to_what) 5184 __attribute__warn_unused_result__ 5185 __attribute__visibility__("hidden"); 5186 #define PERL_ARGS_ASSERT_VIVIFY_REF \ 5187 assert(sv) 5188 5189 PERL_CALLCONV void 5190 Perl_vload_module(pTHX_ U32 flags, SV *name, SV *ver, va_list *args); 5191 #define PERL_ARGS_ASSERT_VLOAD_MODULE \ 5192 assert(name) 5193 5194 PERL_CALLCONV SV * 5195 Perl_vmess(pTHX_ const char *pat, va_list *args); 5196 #define PERL_ARGS_ASSERT_VMESS \ 5197 assert(pat) 5198 5199 PERL_CALLCONV SV * 5200 Perl_vnewSVpvf(pTHX_ const char * const pat, va_list * const args) 5201 __attribute__warn_unused_result__; 5202 #define PERL_ARGS_ASSERT_VNEWSVPVF \ 5203 assert(pat) 5204 5205 PERL_CALLCONV SV * 5206 Perl_vnormal(pTHX_ SV *vs); 5207 #define PERL_ARGS_ASSERT_VNORMAL \ 5208 assert(vs) 5209 5210 PERL_CALLCONV SV * 5211 Perl_vnumify(pTHX_ SV *vs); 5212 #define PERL_ARGS_ASSERT_VNUMIFY \ 5213 assert(vs) 5214 5215 PERL_CALLCONV SV * 5216 Perl_vstringify(pTHX_ SV *vs); 5217 #define PERL_ARGS_ASSERT_VSTRINGIFY \ 5218 assert(vs) 5219 5220 PERL_CALLCONV SV * 5221 Perl_vverify(pTHX_ SV *vs); 5222 #define PERL_ARGS_ASSERT_VVERIFY \ 5223 assert(vs) 5224 5225 PERL_CALLCONV void 5226 Perl_vwarn(pTHX_ const char *pat, va_list *args); 5227 #define PERL_ARGS_ASSERT_VWARN \ 5228 assert(pat) 5229 5230 PERL_CALLCONV void 5231 Perl_vwarner(pTHX_ U32 err, const char *pat, va_list *args); 5232 #define PERL_ARGS_ASSERT_VWARNER \ 5233 assert(pat) 5234 5235 PERL_CALLCONV I32 5236 Perl_wait4pid(pTHX_ Pid_t pid, int *statusp, int flags) 5237 __attribute__visibility__("hidden"); 5238 #define PERL_ARGS_ASSERT_WAIT4PID \ 5239 assert(statusp) 5240 5241 PERL_CALLCONV void 5242 Perl_warn(pTHX_ const char *pat, ...) 5243 __attribute__format__(__printf__,pTHX_1,pTHX_2); 5244 #define PERL_ARGS_ASSERT_WARN \ 5245 assert(pat) 5246 5247 PERL_CALLCONV void 5248 Perl_warn_sv(pTHX_ SV *baseex); 5249 #define PERL_ARGS_ASSERT_WARN_SV \ 5250 assert(baseex) 5251 5252 PERL_CALLCONV void 5253 Perl_warner(pTHX_ U32 err, const char *pat, ...) 5254 __attribute__format__(__printf__,pTHX_2,pTHX_3); 5255 #define PERL_ARGS_ASSERT_WARNER \ 5256 assert(pat) 5257 5258 PERL_CALLCONV I32 5259 Perl_was_lvalue_sub(pTHX) 5260 __attribute__warn_unused_result__; 5261 #define PERL_ARGS_ASSERT_WAS_LVALUE_SUB 5262 5263 PERL_CALLCONV void 5264 Perl_watch(pTHX_ char **addr) 5265 __attribute__visibility__("hidden"); 5266 #define PERL_ARGS_ASSERT_WATCH \ 5267 assert(addr) 5268 5269 /* PERL_CALLCONV I32 5270 whichsig(pTHX_ const char *sig); */ 5271 5272 PERL_CALLCONV I32 5273 Perl_whichsig_pv(pTHX_ const char *sig); 5274 #define PERL_ARGS_ASSERT_WHICHSIG_PV \ 5275 assert(sig) 5276 5277 PERL_CALLCONV I32 5278 Perl_whichsig_pvn(pTHX_ const char *sig, STRLEN len); 5279 #define PERL_ARGS_ASSERT_WHICHSIG_PVN \ 5280 assert(sig) 5281 5282 PERL_CALLCONV I32 5283 Perl_whichsig_sv(pTHX_ SV *sigsv); 5284 #define PERL_ARGS_ASSERT_WHICHSIG_SV \ 5285 assert(sigsv) 5286 5287 PERL_CALLCONV void 5288 Perl_wrap_infix_plugin(pTHX_ Perl_infix_plugin_t new_plugin, Perl_infix_plugin_t *old_plugin_p); 5289 #define PERL_ARGS_ASSERT_WRAP_INFIX_PLUGIN \ 5290 assert(new_plugin); assert(old_plugin_p) 5291 5292 PERL_CALLCONV void 5293 Perl_wrap_keyword_plugin(pTHX_ Perl_keyword_plugin_t new_plugin, Perl_keyword_plugin_t *old_plugin_p); 5294 #define PERL_ARGS_ASSERT_WRAP_KEYWORD_PLUGIN \ 5295 assert(new_plugin); assert(old_plugin_p) 5296 5297 PERL_CALLCONV void 5298 Perl_wrap_op_checker(pTHX_ Optype opcode, Perl_check_t new_checker, Perl_check_t *old_checker_p); 5299 #define PERL_ARGS_ASSERT_WRAP_OP_CHECKER \ 5300 assert(new_checker); assert(old_checker_p) 5301 5302 PERL_CALLCONV void 5303 Perl_write_to_stderr(pTHX_ SV *msv) 5304 __attribute__visibility__("hidden"); 5305 #define PERL_ARGS_ASSERT_WRITE_TO_STDERR \ 5306 assert(msv) 5307 5308 PERL_CALLCONV void 5309 Perl_xs_boot_epilog(pTHX_ const I32 ax); 5310 #define PERL_ARGS_ASSERT_XS_BOOT_EPILOG 5311 5312 PERL_CALLCONV I32 5313 Perl_xs_handshake(const U32 key, void *v_my_perl, const char *file, ...); 5314 #define PERL_ARGS_ASSERT_XS_HANDSHAKE \ 5315 assert(v_my_perl); assert(file) 5316 5317 PERL_CALLCONV int 5318 Perl_yyerror(pTHX_ const char * const s) 5319 __attribute__visibility__("hidden"); 5320 #define PERL_ARGS_ASSERT_YYERROR \ 5321 assert(s) 5322 5323 PERL_CALLCONV int 5324 Perl_yyerror_pv(pTHX_ const char * const s, U32 flags) 5325 __attribute__visibility__("hidden"); 5326 #define PERL_ARGS_ASSERT_YYERROR_PV \ 5327 assert(s) 5328 5329 PERL_CALLCONV int 5330 Perl_yyerror_pvn(pTHX_ const char * const s, STRLEN len, U32 flags) 5331 __attribute__visibility__("hidden"); 5332 #define PERL_ARGS_ASSERT_YYERROR_PVN 5333 5334 PERL_CALLCONV int 5335 Perl_yylex(pTHX); 5336 #define PERL_ARGS_ASSERT_YYLEX 5337 5338 PERL_CALLCONV int 5339 Perl_yyparse(pTHX_ int gramtype) 5340 __attribute__visibility__("hidden"); 5341 #define PERL_ARGS_ASSERT_YYPARSE 5342 5343 PERL_CALLCONV void 5344 Perl_yyquit(pTHX) 5345 __attribute__visibility__("hidden"); 5346 #define PERL_ARGS_ASSERT_YYQUIT 5347 5348 PERL_CALLCONV void 5349 Perl_yyunlex(pTHX) 5350 __attribute__visibility__("hidden"); 5351 #define PERL_ARGS_ASSERT_YYUNLEX 5352 5353 #if defined(DEBUGGING) 5354 PERL_CALLCONV int 5355 Perl_get_debug_opts(pTHX_ const char **s, bool givehelp) 5356 __attribute__warn_unused_result__ 5357 __attribute__visibility__("hidden"); 5358 # define PERL_ARGS_ASSERT_GET_DEBUG_OPTS \ 5359 assert(s) 5360 5361 PERL_CALLCONV void 5362 Perl_hv_assert(pTHX_ HV *hv); 5363 # define PERL_ARGS_ASSERT_HV_ASSERT \ 5364 assert(hv) 5365 5366 PERL_CALLCONV void 5367 Perl_pad_setsv(pTHX_ PADOFFSET po, SV *sv); 5368 # define PERL_ARGS_ASSERT_PAD_SETSV \ 5369 assert(sv) 5370 5371 PERL_CALLCONV SV * 5372 Perl_pad_sv(pTHX_ PADOFFSET po); 5373 # define PERL_ARGS_ASSERT_PAD_SV 5374 5375 PERL_CALLCONV void 5376 Perl_set_padlist(CV *cv, PADLIST *padlist); 5377 # define PERL_ARGS_ASSERT_SET_PADLIST \ 5378 assert(cv) 5379 5380 #endif /* defined(DEBUGGING) */ 5381 #if defined(DEBUG_LEAKING_SCALARS_FORK_DUMP) 5382 PERL_CALLCONV void 5383 Perl_dump_sv_child(pTHX_ SV *sv) 5384 __attribute__visibility__("hidden"); 5385 # define PERL_ARGS_ASSERT_DUMP_SV_CHILD \ 5386 assert(sv) 5387 5388 #endif 5389 #if !defined(EBCDIC) 5390 5391 # if !defined(PERL_NO_INLINE_FUNCTIONS) 5392 PERL_STATIC_INLINE unsigned int 5393 Perl_variant_byte_number(PERL_UINTMAX_T word) 5394 __attribute__warn_unused_result__; 5395 # define PERL_ARGS_ASSERT_VARIANT_BYTE_NUMBER 5396 5397 # endif 5398 #endif 5399 #if defined(F_FREESP) && !defined(HAS_CHSIZE) && !defined(HAS_TRUNCATE) 5400 PERL_CALLCONV I32 5401 Perl_my_chsize(pTHX_ int fd, Off_t length) 5402 __attribute__warn_unused_result__; 5403 # define PERL_ARGS_ASSERT_MY_CHSIZE 5404 5405 #endif 5406 #if !defined(HAS_GETENV_LEN) 5407 PERL_CALLCONV char * 5408 Perl_getenv_len(pTHX_ const char *env_elem, unsigned long *len) 5409 __attribute__visibility__("hidden"); 5410 # define PERL_ARGS_ASSERT_GETENV_LEN \ 5411 assert(env_elem); assert(len) 5412 5413 #endif 5414 #if !defined(HAS_MKOSTEMP) 5415 PERL_CALLCONV int 5416 Perl_my_mkostemp(char *templte, int flags) 5417 __attribute__visibility__("hidden"); 5418 # define PERL_ARGS_ASSERT_MY_MKOSTEMP \ 5419 assert(templte) 5420 5421 #endif 5422 #if !defined(HAS_MKSTEMP) 5423 PERL_CALLCONV int 5424 Perl_my_mkstemp(char *templte) 5425 __attribute__visibility__("hidden"); 5426 # define PERL_ARGS_ASSERT_MY_MKSTEMP \ 5427 assert(templte) 5428 5429 #endif 5430 #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) 5431 PERL_CALLCONV I32 5432 Perl_do_ipcctl(pTHX_ I32 optype, SV **mark, SV **sp) 5433 __attribute__visibility__("hidden"); 5434 # define PERL_ARGS_ASSERT_DO_IPCCTL \ 5435 assert(mark); assert(sp) 5436 5437 PERL_CALLCONV I32 5438 Perl_do_ipcget(pTHX_ I32 optype, SV **mark, SV **sp) 5439 __attribute__visibility__("hidden"); 5440 # define PERL_ARGS_ASSERT_DO_IPCGET \ 5441 assert(mark); assert(sp) 5442 5443 PERL_CALLCONV I32 5444 Perl_do_msgrcv(pTHX_ SV **mark, SV **sp) 5445 __attribute__visibility__("hidden"); 5446 # define PERL_ARGS_ASSERT_DO_MSGRCV \ 5447 assert(mark); assert(sp) 5448 5449 PERL_CALLCONV I32 5450 Perl_do_msgsnd(pTHX_ SV **mark, SV **sp) 5451 __attribute__visibility__("hidden"); 5452 # define PERL_ARGS_ASSERT_DO_MSGSND \ 5453 assert(mark); assert(sp) 5454 5455 PERL_CALLCONV I32 5456 Perl_do_semop(pTHX_ SV **mark, SV **sp) 5457 __attribute__visibility__("hidden"); 5458 # define PERL_ARGS_ASSERT_DO_SEMOP \ 5459 assert(mark); assert(sp) 5460 5461 PERL_CALLCONV I32 5462 Perl_do_shmio(pTHX_ I32 optype, SV **mark, SV **sp) 5463 __attribute__visibility__("hidden"); 5464 # define PERL_ARGS_ASSERT_DO_SHMIO \ 5465 assert(mark); assert(sp) 5466 5467 #endif /* defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) */ 5468 #if defined(HAS_NL_LANGINFO) && defined(PERL_LANGINFO_H) 5469 PERL_CALLCONV const char * 5470 Perl_langinfo(const nl_item item); 5471 # define PERL_ARGS_ASSERT_PERL_LANGINFO 5472 5473 PERL_CALLCONV const char * 5474 Perl_langinfo8(const nl_item item, utf8ness_t *utf8ness); 5475 # define PERL_ARGS_ASSERT_PERL_LANGINFO8 5476 5477 #else 5478 PERL_CALLCONV const char * 5479 Perl_langinfo(const int item); 5480 # define PERL_ARGS_ASSERT_PERL_LANGINFO 5481 5482 PERL_CALLCONV const char * 5483 Perl_langinfo8(const int item, utf8ness_t *utf8ness); 5484 # define PERL_ARGS_ASSERT_PERL_LANGINFO8 5485 5486 #endif 5487 #if defined(HAS_PIPE) 5488 PERL_CALLCONV int 5489 Perl_PerlProc_pipe_cloexec(pTHX_ int *pipefd) 5490 __attribute__warn_unused_result__ 5491 __attribute__visibility__("hidden"); 5492 # define PERL_ARGS_ASSERT_PERLPROC_PIPE_CLOEXEC \ 5493 assert(pipefd) 5494 5495 #endif 5496 #if !defined(HAS_RENAME) 5497 PERL_CALLCONV I32 5498 Perl_same_dirent(pTHX_ const char *a, const char *b) 5499 __attribute__visibility__("hidden"); 5500 # define PERL_ARGS_ASSERT_SAME_DIRENT \ 5501 assert(a); assert(b) 5502 5503 #endif 5504 #if !defined(HAS_SIGNBIT) 5505 PERL_CALLCONV int 5506 Perl_signbit(NV f) 5507 __attribute__warn_unused_result__ 5508 __attribute__pure__; 5509 # define PERL_ARGS_ASSERT_PERL_SIGNBIT 5510 5511 #endif 5512 #if defined(HAS_SOCKET) 5513 PERL_CALLCONV int 5514 Perl_PerlSock_accept_cloexec(pTHX_ int listenfd, struct sockaddr *addr, Sock_size_t *addrlen) 5515 __attribute__warn_unused_result__ 5516 __attribute__visibility__("hidden"); 5517 # define PERL_ARGS_ASSERT_PERLSOCK_ACCEPT_CLOEXEC 5518 5519 PERL_CALLCONV int 5520 Perl_PerlSock_socket_cloexec(pTHX_ int domain, int type, int protocol) 5521 __attribute__warn_unused_result__ 5522 __attribute__visibility__("hidden"); 5523 # define PERL_ARGS_ASSERT_PERLSOCK_SOCKET_CLOEXEC 5524 5525 #endif /* defined(HAS_SOCKET) */ 5526 #if defined(HAS_SOCKETPAIR) || \ 5527 ( defined(AF_INET) && defined(HAS_SOCKET) && defined(PF_INET) && \ 5528 defined(SOCK_DGRAM) ) 5529 PERL_CALLCONV int 5530 Perl_PerlSock_socketpair_cloexec(pTHX_ int domain, int type, int protocol, int *pairfd) 5531 __attribute__warn_unused_result__ 5532 __attribute__visibility__("hidden"); 5533 # define PERL_ARGS_ASSERT_PERLSOCK_SOCKETPAIR_CLOEXEC \ 5534 assert(pairfd) 5535 5536 #endif 5537 #if !defined(HAS_STRLCPY) 5538 STATIC Size_t 5539 Perl_my_strlcpy(char *dst, const char *src, Size_t size); 5540 # define PERL_ARGS_ASSERT_MY_STRLCPY 5541 5542 #endif 5543 #if defined(HAVE_INTERP_INTERN) 5544 PERL_CALLCONV void 5545 Perl_sys_intern_clear(pTHX); 5546 # define PERL_ARGS_ASSERT_SYS_INTERN_CLEAR 5547 5548 PERL_CALLCONV void 5549 Perl_sys_intern_init(pTHX); 5550 # define PERL_ARGS_ASSERT_SYS_INTERN_INIT 5551 5552 # if defined(USE_ITHREADS) 5553 PERL_CALLCONV void 5554 Perl_sys_intern_dup(pTHX_ struct interp_intern *src, struct interp_intern *dst); 5555 # define PERL_ARGS_ASSERT_SYS_INTERN_DUP \ 5556 assert(src); assert(dst) 5557 5558 # endif 5559 #endif /* defined(HAVE_INTERP_INTERN) */ 5560 #if defined(_MSC_VER) 5561 PERL_CALLCONV int 5562 Perl_magic_regdatum_set(pTHX_ SV *sv, MAGIC *mg) 5563 __attribute__visibility__("hidden"); 5564 # define PERL_ARGS_ASSERT_MAGIC_REGDATUM_SET \ 5565 assert(sv); assert(mg) 5566 5567 #else 5568 PERL_CALLCONV_NO_RET int 5569 Perl_magic_regdatum_set(pTHX_ SV *sv, MAGIC *mg) 5570 __attribute__noreturn__ 5571 __attribute__visibility__("hidden"); 5572 # define PERL_ARGS_ASSERT_MAGIC_REGDATUM_SET \ 5573 assert(sv); assert(mg) 5574 5575 #endif 5576 #if defined(MULTIPLICITY) 5577 PERL_CALLCONV_NO_RET void 5578 Perl_croak_nocontext(const char *pat, ...) 5579 __attribute__noreturn__ 5580 __attribute__format__null_ok__(__printf__,1,2); 5581 # define PERL_ARGS_ASSERT_CROAK_NOCONTEXT 5582 5583 PERL_CALLCONV void 5584 Perl_deb_nocontext(const char *pat, ...) 5585 __attribute__format__(__printf__,1,2); 5586 # define PERL_ARGS_ASSERT_DEB_NOCONTEXT \ 5587 assert(pat) 5588 5589 PERL_CALLCONV_NO_RET OP * 5590 Perl_die_nocontext(const char *pat, ...) 5591 __attribute__noreturn__ 5592 __attribute__format__null_ok__(__printf__,1,2); 5593 # define PERL_ARGS_ASSERT_DIE_NOCONTEXT 5594 5595 PERL_CALLCONV char * 5596 Perl_form_nocontext(const char *pat, ...) 5597 __attribute__format__(__printf__,1,2); 5598 # define PERL_ARGS_ASSERT_FORM_NOCONTEXT \ 5599 assert(pat) 5600 5601 PERL_CALLCONV void 5602 Perl_load_module_nocontext(U32 flags, SV *name, SV *ver, ...); 5603 # define PERL_ARGS_ASSERT_LOAD_MODULE_NOCONTEXT \ 5604 assert(name) 5605 5606 PERL_CALLCONV SV * 5607 Perl_mess_nocontext(const char *pat, ...) 5608 __attribute__format__(__printf__,1,2); 5609 # define PERL_ARGS_ASSERT_MESS_NOCONTEXT \ 5610 assert(pat) 5611 5612 PERL_CALLCONV void * 5613 Perl_my_cxt_init(pTHX_ int *indexp, size_t size); 5614 # define PERL_ARGS_ASSERT_MY_CXT_INIT \ 5615 assert(indexp) 5616 5617 PERL_CALLCONV SV * 5618 Perl_newSVpvf_nocontext(const char * const pat, ...) 5619 __attribute__format__(__printf__,1,2); 5620 # define PERL_ARGS_ASSERT_NEWSVPVF_NOCONTEXT \ 5621 assert(pat) 5622 5623 PERL_CALLCONV void 5624 Perl_sv_catpvf_mg_nocontext(SV * const sv, const char * const pat, ...) 5625 __attribute__format__(__printf__,2,3); 5626 # define PERL_ARGS_ASSERT_SV_CATPVF_MG_NOCONTEXT \ 5627 assert(sv); assert(pat) 5628 5629 PERL_CALLCONV void 5630 Perl_sv_catpvf_nocontext(SV * const sv, const char * const pat, ...) 5631 __attribute__format__(__printf__,2,3); 5632 # define PERL_ARGS_ASSERT_SV_CATPVF_NOCONTEXT \ 5633 assert(sv); assert(pat) 5634 5635 PERL_CALLCONV void 5636 Perl_sv_setpvf_mg_nocontext(SV * const sv, const char * const pat, ...) 5637 __attribute__format__(__printf__,2,3); 5638 # define PERL_ARGS_ASSERT_SV_SETPVF_MG_NOCONTEXT \ 5639 assert(sv); assert(pat) 5640 5641 PERL_CALLCONV void 5642 Perl_sv_setpvf_nocontext(SV * const sv, const char * const pat, ...) 5643 __attribute__format__(__printf__,2,3); 5644 # define PERL_ARGS_ASSERT_SV_SETPVF_NOCONTEXT \ 5645 assert(sv); assert(pat) 5646 5647 PERL_CALLCONV void 5648 Perl_warn_nocontext(const char *pat, ...) 5649 __attribute__format__(__printf__,1,2); 5650 # define PERL_ARGS_ASSERT_WARN_NOCONTEXT \ 5651 assert(pat) 5652 5653 PERL_CALLCONV void 5654 Perl_warner_nocontext(U32 err, const char *pat, ...) 5655 __attribute__format__(__printf__,2,3); 5656 # define PERL_ARGS_ASSERT_WARNER_NOCONTEXT \ 5657 assert(pat) 5658 5659 #endif /* defined(MULTIPLICITY) */ 5660 #if defined(MYMALLOC) 5661 PERL_CALLCONV void 5662 Perl_dump_mstats(pTHX_ const char *s); 5663 # define PERL_ARGS_ASSERT_DUMP_MSTATS \ 5664 assert(s) 5665 5666 PERL_CALLCONV int 5667 Perl_get_mstats(pTHX_ perl_mstats_t *buf, int buflen, int level); 5668 # define PERL_ARGS_ASSERT_GET_MSTATS \ 5669 assert(buf) 5670 5671 PERL_CALLCONV MEM_SIZE 5672 Perl_malloc_good_size(size_t nbytes) 5673 __attribute__warn_unused_result__ 5674 __attribute__visibility__("hidden"); 5675 # define PERL_ARGS_ASSERT_MALLOC_GOOD_SIZE 5676 5677 PERL_CALLCONV MEM_SIZE 5678 Perl_malloced_size(void *p) 5679 __attribute__warn_unused_result__ 5680 __attribute__visibility__("hidden"); 5681 # define PERL_ARGS_ASSERT_MALLOCED_SIZE \ 5682 assert(p) 5683 5684 #endif /* defined(MYMALLOC) */ 5685 #if !defined(NO_MATHOMS) 5686 PERL_CALLCONV bool 5687 Perl_do_aexec(pTHX_ SV *really, SV **mark, SV **sp); 5688 # define PERL_ARGS_ASSERT_DO_AEXEC \ 5689 assert(mark); assert(sp) 5690 5691 PERL_CALLCONV bool 5692 Perl_do_open(pTHX_ GV *gv, const char *name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO *supplied_fp); 5693 # define PERL_ARGS_ASSERT_DO_OPEN \ 5694 assert(gv); assert(name) 5695 5696 PERL_CALLCONV GV * 5697 Perl_gv_AVadd(pTHX_ GV *gv); 5698 # define PERL_ARGS_ASSERT_GV_AVADD 5699 5700 PERL_CALLCONV GV * 5701 Perl_gv_HVadd(pTHX_ GV *gv); 5702 # define PERL_ARGS_ASSERT_GV_HVADD 5703 5704 PERL_CALLCONV GV * 5705 Perl_gv_IOadd(pTHX_ GV *gv); 5706 # define PERL_ARGS_ASSERT_GV_IOADD 5707 5708 PERL_CALLCONV void 5709 Perl_gv_efullname3(pTHX_ SV *sv, const GV *gv, const char *prefix); 5710 # define PERL_ARGS_ASSERT_GV_EFULLNAME3 \ 5711 assert(sv); assert(gv) 5712 5713 PERL_CALLCONV GV * 5714 Perl_gv_fetchmethod(pTHX_ HV *stash, const char *name); 5715 # define PERL_ARGS_ASSERT_GV_FETCHMETHOD \ 5716 assert(stash); assert(name) 5717 5718 PERL_CALLCONV void 5719 Perl_gv_fullname3(pTHX_ SV *sv, const GV *gv, const char *prefix); 5720 # define PERL_ARGS_ASSERT_GV_FULLNAME3 \ 5721 assert(sv); assert(gv) 5722 5723 PERL_CALLCONV SV * 5724 Perl_hv_delete(pTHX_ HV *hv, const char *key, I32 klen, I32 flags); 5725 # define PERL_ARGS_ASSERT_HV_DELETE \ 5726 assert(key) 5727 5728 PERL_CALLCONV SV * 5729 Perl_hv_delete_ent(pTHX_ HV *hv, SV *keysv, I32 flags, U32 hash); 5730 # define PERL_ARGS_ASSERT_HV_DELETE_ENT \ 5731 assert(keysv) 5732 5733 PERL_CALLCONV bool 5734 Perl_hv_exists(pTHX_ HV *hv, const char *key, I32 klen) 5735 __attribute__warn_unused_result__; 5736 # define PERL_ARGS_ASSERT_HV_EXISTS \ 5737 assert(key) 5738 5739 PERL_CALLCONV bool 5740 Perl_hv_exists_ent(pTHX_ HV *hv, SV *keysv, U32 hash) 5741 __attribute__warn_unused_result__; 5742 # define PERL_ARGS_ASSERT_HV_EXISTS_ENT \ 5743 assert(keysv) 5744 5745 PERL_CALLCONV SV ** 5746 Perl_hv_fetch(pTHX_ HV *hv, const char *key, I32 klen, I32 lval); 5747 # define PERL_ARGS_ASSERT_HV_FETCH \ 5748 assert(key) 5749 5750 PERL_CALLCONV HE * 5751 Perl_hv_fetch_ent(pTHX_ HV *hv, SV *keysv, I32 lval, U32 hash); 5752 # define PERL_ARGS_ASSERT_HV_FETCH_ENT \ 5753 assert(keysv) 5754 5755 PERL_CALLCONV HE * 5756 Perl_hv_iternext(pTHX_ HV *hv) 5757 __attribute__warn_unused_result__; 5758 # define PERL_ARGS_ASSERT_HV_ITERNEXT \ 5759 assert(hv) 5760 5761 PERL_CALLCONV void 5762 Perl_hv_magic(pTHX_ HV *hv, GV *gv, int how); 5763 # define PERL_ARGS_ASSERT_HV_MAGIC \ 5764 assert(hv) 5765 5766 PERL_CALLCONV SV ** 5767 Perl_hv_store(pTHX_ HV *hv, const char *key, I32 klen, SV *val, U32 hash); 5768 # define PERL_ARGS_ASSERT_HV_STORE 5769 5770 PERL_CALLCONV HE * 5771 Perl_hv_store_ent(pTHX_ HV *hv, SV *key, SV *val, U32 hash); 5772 # define PERL_ARGS_ASSERT_HV_STORE_ENT 5773 5774 PERL_CALLCONV SV ** 5775 Perl_hv_store_flags(pTHX_ HV *hv, const char *key, I32 klen, SV *val, U32 hash, int flags); 5776 # define PERL_ARGS_ASSERT_HV_STORE_FLAGS 5777 5778 PERL_CALLCONV char * 5779 Perl_instr(const char *big, const char *little) 5780 __attribute__warn_unused_result__ 5781 __attribute__pure__; 5782 # define PERL_ARGS_ASSERT_INSTR \ 5783 assert(big); assert(little) 5784 5785 PERL_CALLCONV STRLEN 5786 Perl_is_utf8_char_buf(const U8 *buf, const U8 *buf_end); 5787 # define PERL_ARGS_ASSERT_IS_UTF8_CHAR_BUF \ 5788 assert(buf); assert(buf_end) 5789 5790 PERL_CALLCONV bool 5791 Perl_is_utf8_string_loc(const U8 *s, const STRLEN len, const U8 **ep); 5792 # define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOC \ 5793 assert(s); assert(ep) 5794 5795 PERL_CALLCONV AV * 5796 Perl_newAV(pTHX) 5797 __attribute__warn_unused_result__; 5798 # define PERL_ARGS_ASSERT_NEWAV 5799 5800 PERL_CALLCONV HV * 5801 Perl_newHV(pTHX) 5802 __attribute__warn_unused_result__; 5803 # define PERL_ARGS_ASSERT_NEWHV 5804 5805 PERL_CALLCONV IO * 5806 Perl_newIO(pTHX) 5807 __attribute__warn_unused_result__; 5808 # define PERL_ARGS_ASSERT_NEWIO 5809 5810 PERL_CALLCONV CV * 5811 Perl_newSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *block); 5812 # define PERL_ARGS_ASSERT_NEWSUB 5813 5814 PERL_CALLCONV SV * 5815 Perl_newSVsv(pTHX_ SV * const old) 5816 __attribute__warn_unused_result__; 5817 # define PERL_ARGS_ASSERT_NEWSVSV 5818 5819 PERL_CALLCONV void 5820 Perl_save_freeop(pTHX_ OP *o); 5821 # define PERL_ARGS_ASSERT_SAVE_FREEOP 5822 5823 PERL_CALLCONV void 5824 Perl_save_freepv(pTHX_ char *pv); 5825 # define PERL_ARGS_ASSERT_SAVE_FREEPV 5826 5827 PERL_CALLCONV void 5828 Perl_save_freesv(pTHX_ SV *sv); 5829 # define PERL_ARGS_ASSERT_SAVE_FREESV 5830 5831 PERL_CALLCONV void 5832 Perl_save_mortalizesv(pTHX_ SV *sv); 5833 # define PERL_ARGS_ASSERT_SAVE_MORTALIZESV \ 5834 assert(sv) 5835 5836 PERL_CALLCONV void 5837 Perl_save_op(pTHX); 5838 # define PERL_ARGS_ASSERT_SAVE_OP 5839 5840 PERL_CALLCONV bool 5841 Perl_sv_2bool(pTHX_ SV * const sv); 5842 # define PERL_ARGS_ASSERT_SV_2BOOL \ 5843 assert(sv) 5844 5845 PERL_CALLCONV IV 5846 Perl_sv_2iv(pTHX_ SV *sv); 5847 # define PERL_ARGS_ASSERT_SV_2IV \ 5848 assert(sv) 5849 5850 PERL_CALLCONV char * 5851 Perl_sv_2pv(pTHX_ SV *sv, STRLEN *lp); 5852 # define PERL_ARGS_ASSERT_SV_2PV \ 5853 assert(sv) 5854 5855 PERL_CALLCONV char * 5856 Perl_sv_2pv_nolen(pTHX_ SV *sv) 5857 __attribute__warn_unused_result__; 5858 # define PERL_ARGS_ASSERT_SV_2PV_NOLEN \ 5859 assert(sv) 5860 5861 PERL_CALLCONV char * 5862 Perl_sv_2pvbyte(pTHX_ SV *sv, STRLEN * const lp); 5863 # define PERL_ARGS_ASSERT_SV_2PVBYTE \ 5864 assert(sv) 5865 5866 PERL_CALLCONV char * 5867 Perl_sv_2pvbyte_nolen(pTHX_ SV *sv) 5868 __attribute__warn_unused_result__; 5869 # define PERL_ARGS_ASSERT_SV_2PVBYTE_NOLEN \ 5870 assert(sv) 5871 5872 PERL_CALLCONV char * 5873 Perl_sv_2pvutf8(pTHX_ SV *sv, STRLEN * const lp); 5874 # define PERL_ARGS_ASSERT_SV_2PVUTF8 \ 5875 assert(sv) 5876 5877 PERL_CALLCONV char * 5878 Perl_sv_2pvutf8_nolen(pTHX_ SV *sv) 5879 __attribute__warn_unused_result__; 5880 # define PERL_ARGS_ASSERT_SV_2PVUTF8_NOLEN \ 5881 assert(sv) 5882 5883 PERL_CALLCONV UV 5884 Perl_sv_2uv(pTHX_ SV *sv); 5885 # define PERL_ARGS_ASSERT_SV_2UV \ 5886 assert(sv) 5887 5888 PERL_CALLCONV void 5889 Perl_sv_catpvn(pTHX_ SV *dsv, const char *sstr, STRLEN len); 5890 # define PERL_ARGS_ASSERT_SV_CATPVN \ 5891 assert(dsv); assert(sstr) 5892 5893 PERL_CALLCONV void 5894 Perl_sv_catpvn_mg(pTHX_ SV *dsv, const char *sstr, STRLEN len); 5895 # define PERL_ARGS_ASSERT_SV_CATPVN_MG \ 5896 assert(dsv); assert(sstr) 5897 5898 PERL_CALLCONV void 5899 Perl_sv_catsv(pTHX_ SV *dsv, SV *sstr); 5900 # define PERL_ARGS_ASSERT_SV_CATSV \ 5901 assert(dsv) 5902 5903 PERL_CALLCONV void 5904 Perl_sv_catsv_mg(pTHX_ SV *dsv, SV *sstr); 5905 # define PERL_ARGS_ASSERT_SV_CATSV_MG \ 5906 assert(dsv) 5907 5908 PERL_CALLCONV void 5909 Perl_sv_copypv(pTHX_ SV * const dsv, SV * const ssv); 5910 # define PERL_ARGS_ASSERT_SV_COPYPV \ 5911 assert(dsv); assert(ssv) 5912 5913 PERL_CALLCONV I32 5914 Perl_sv_eq(pTHX_ SV *sv1, SV *sv2); 5915 # define PERL_ARGS_ASSERT_SV_EQ 5916 5917 PERL_CALLCONV void 5918 Perl_sv_force_normal(pTHX_ SV *sv); 5919 # define PERL_ARGS_ASSERT_SV_FORCE_NORMAL \ 5920 assert(sv) 5921 5922 PERL_CALLCONV void 5923 Perl_sv_insert(pTHX_ SV * const bigstr, const STRLEN offset, const STRLEN len, const char * const little, const STRLEN littlelen); 5924 # define PERL_ARGS_ASSERT_SV_INSERT \ 5925 assert(bigstr); assert(little) 5926 5927 PERL_CALLCONV SV * 5928 Perl_sv_mortalcopy(pTHX_ SV * const oldsv) 5929 __attribute__warn_unused_result__; 5930 # define PERL_ARGS_ASSERT_SV_MORTALCOPY 5931 5932 PERL_CALLCONV void 5933 Perl_sv_nolocking(pTHX_ SV *sv) 5934 __attribute__deprecated__; 5935 # define PERL_ARGS_ASSERT_SV_NOLOCKING 5936 5937 PERL_CALLCONV void 5938 Perl_sv_nounlocking(pTHX_ SV *sv) 5939 __attribute__deprecated__; 5940 # define PERL_ARGS_ASSERT_SV_NOUNLOCKING 5941 5942 PERL_CALLCONV char * 5943 Perl_sv_pv(pTHX_ SV *sv) 5944 __attribute__warn_unused_result__; 5945 # define PERL_ARGS_ASSERT_SV_PV \ 5946 assert(sv) 5947 5948 PERL_CALLCONV char * 5949 Perl_sv_pvbyte(pTHX_ SV *sv) 5950 __attribute__warn_unused_result__; 5951 # define PERL_ARGS_ASSERT_SV_PVBYTE \ 5952 assert(sv) 5953 5954 PERL_CALLCONV char * 5955 Perl_sv_pvn_force(pTHX_ SV *sv, STRLEN *lp); 5956 # define PERL_ARGS_ASSERT_SV_PVN_FORCE \ 5957 assert(sv) 5958 5959 PERL_CALLCONV char * 5960 Perl_sv_pvutf8(pTHX_ SV *sv) 5961 __attribute__warn_unused_result__; 5962 # define PERL_ARGS_ASSERT_SV_PVUTF8 \ 5963 assert(sv) 5964 5965 PERL_CALLCONV void 5966 Perl_sv_setsv(pTHX_ SV *dsv, SV *ssv); 5967 # define PERL_ARGS_ASSERT_SV_SETSV \ 5968 assert(dsv) 5969 5970 PERL_CALLCONV void 5971 Perl_sv_taint(pTHX_ SV *sv); 5972 # define PERL_ARGS_ASSERT_SV_TAINT \ 5973 assert(sv) 5974 5975 PERL_CALLCONV void 5976 Perl_sv_unref(pTHX_ SV *sv); 5977 # define PERL_ARGS_ASSERT_SV_UNREF \ 5978 assert(sv) 5979 5980 PERL_CALLCONV void 5981 Perl_sv_usepvn(pTHX_ SV *sv, char *ptr, STRLEN len); 5982 # define PERL_ARGS_ASSERT_SV_USEPVN \ 5983 assert(sv) 5984 5985 PERL_CALLCONV void 5986 Perl_sv_usepvn_mg(pTHX_ SV *sv, char *ptr, STRLEN len); 5987 # define PERL_ARGS_ASSERT_SV_USEPVN_MG \ 5988 assert(sv) 5989 5990 PERL_CALLCONV bool 5991 Perl_sv_utf8_downgrade(pTHX_ SV * const sv, const bool fail_ok); 5992 # define PERL_ARGS_ASSERT_SV_UTF8_DOWNGRADE \ 5993 assert(sv) 5994 5995 PERL_CALLCONV STRLEN 5996 Perl_sv_utf8_upgrade(pTHX_ SV *sv); 5997 # define PERL_ARGS_ASSERT_SV_UTF8_UPGRADE \ 5998 assert(sv) 5999 6000 PERL_CALLCONV UV 6001 Perl_utf8_to_uvchr(pTHX_ const U8 *s, STRLEN *retlen) 6002 __attribute__deprecated__; 6003 # define PERL_ARGS_ASSERT_UTF8_TO_UVCHR \ 6004 assert(s) 6005 6006 PERL_CALLCONV UV 6007 Perl_utf8_to_uvuni(pTHX_ const U8 *s, STRLEN *retlen) 6008 __attribute__deprecated__; 6009 # define PERL_ARGS_ASSERT_UTF8_TO_UVUNI \ 6010 assert(s) 6011 6012 PERL_CALLCONV UV 6013 Perl_utf8n_to_uvuni(pTHX_ const U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags) 6014 __attribute__deprecated__; 6015 # define PERL_ARGS_ASSERT_UTF8N_TO_UVUNI \ 6016 assert(s) 6017 6018 # if defined(PERL_DONT_CREATE_GVSV) 6019 PERL_CALLCONV GV * 6020 Perl_gv_SVadd(pTHX_ GV *gv); 6021 # define PERL_ARGS_ASSERT_GV_SVADD 6022 6023 # endif 6024 # if defined(PERL_IN_MATHOMS_C) || defined(PERL_IN_OP_C) || \ 6025 defined(PERL_IN_PERLY_C) || defined(PERL_IN_TOKE_C) 6026 PERL_CALLCONV OP * 6027 Perl_ref(pTHX_ OP *o, I32 type); 6028 # define PERL_ARGS_ASSERT_REF 6029 6030 # endif 6031 # if defined(USE_LOCALE_COLLATE) 6032 PERL_CALLCONV char * 6033 Perl_sv_collxfrm(pTHX_ SV * const sv, STRLEN * const nxp); 6034 # define PERL_ARGS_ASSERT_SV_COLLXFRM \ 6035 assert(sv); assert(nxp) 6036 6037 # endif 6038 #endif /* !defined(NO_MATHOMS) */ 6039 #if defined(PERL_ANY_COW) 6040 PERL_CALLCONV SV * 6041 Perl_sv_setsv_cow(pTHX_ SV *dsv, SV *ssv); 6042 # define PERL_ARGS_ASSERT_SV_SETSV_COW \ 6043 assert(ssv) 6044 6045 #endif 6046 #if defined(PERL_CORE) 6047 PERL_CALLCONV void 6048 Perl_opslab_force_free(pTHX_ OPSLAB *slab) 6049 __attribute__visibility__("hidden"); 6050 # define PERL_ARGS_ASSERT_OPSLAB_FORCE_FREE \ 6051 assert(slab) 6052 6053 PERL_CALLCONV void 6054 Perl_opslab_free(pTHX_ OPSLAB *slab) 6055 __attribute__visibility__("hidden"); 6056 # define PERL_ARGS_ASSERT_OPSLAB_FREE \ 6057 assert(slab) 6058 6059 PERL_CALLCONV void 6060 Perl_opslab_free_nopad(pTHX_ OPSLAB *slab) 6061 __attribute__visibility__("hidden"); 6062 # define PERL_ARGS_ASSERT_OPSLAB_FREE_NOPAD \ 6063 assert(slab) 6064 6065 PERL_CALLCONV void 6066 Perl_parser_free_nexttoke_ops(pTHX_ yy_parser *parser, OPSLAB *slab) 6067 __attribute__visibility__("hidden"); 6068 # define PERL_ARGS_ASSERT_PARSER_FREE_NEXTTOKE_OPS \ 6069 assert(parser); assert(slab) 6070 6071 # if defined(PERL_DEBUG_READONLY_OPS) 6072 PERL_CALLCONV void 6073 Perl_Slab_to_ro(pTHX_ OPSLAB *slab); 6074 # define PERL_ARGS_ASSERT_SLAB_TO_RO \ 6075 assert(slab) 6076 6077 PERL_CALLCONV void 6078 Perl_Slab_to_rw(pTHX_ OPSLAB * const slab); 6079 # define PERL_ARGS_ASSERT_SLAB_TO_RW \ 6080 assert(slab) 6081 6082 # endif /* defined(PERL_DEBUG_READONLY_OPS) */ 6083 # if !defined(PERL_NO_INLINE_FUNCTIONS) 6084 PERL_STATIC_INLINE bool 6085 S_should_warn_nl(const char *pv) 6086 __attribute__warn_unused_result__; 6087 # define PERL_ARGS_ASSERT_SHOULD_WARN_NL \ 6088 assert(pv) 6089 6090 # endif 6091 #endif /* defined(PERL_CORE) */ 6092 #if defined(PERL_CORE) || defined(PERL_EXT) 6093 PERL_CALLCONV bool 6094 Perl_isSCRIPT_RUN(pTHX_ const U8 *s, const U8 *send, const bool utf8_target) 6095 __attribute__warn_unused_result__; 6096 # define PERL_ARGS_ASSERT_ISSCRIPT_RUN \ 6097 assert(s); assert(send) 6098 6099 #endif /* defined(PERL_CORE) || defined(PERL_EXT) */ 6100 #if defined(PERL_CORE) || defined(PERL_USE_VOLATILE_API) 6101 PERL_CALLCONV void 6102 Perl_finalize_optree(pTHX_ OP *o); 6103 # define PERL_ARGS_ASSERT_FINALIZE_OPTREE \ 6104 assert(o) 6105 6106 PERL_CALLCONV void 6107 Perl_optimize_optree(pTHX_ OP *o); 6108 # define PERL_ARGS_ASSERT_OPTIMIZE_OPTREE \ 6109 assert(o) 6110 6111 #endif /* defined(PERL_CORE) || defined(PERL_USE_VOLATILE_API) */ 6112 #if defined(PERL_DEBUG_READONLY_COW) 6113 PERL_CALLCONV void 6114 Perl_sv_buf_to_ro(pTHX_ SV *sv) 6115 __attribute__visibility__("hidden"); 6116 # define PERL_ARGS_ASSERT_SV_BUF_TO_RO \ 6117 assert(sv) 6118 6119 #endif 6120 #if defined(PERL_DEBUG_READONLY_OPS) 6121 PERL_CALLCONV PADOFFSET 6122 Perl_op_refcnt_dec(pTHX_ OP *o); 6123 # define PERL_ARGS_ASSERT_OP_REFCNT_DEC \ 6124 assert(o) 6125 6126 PERL_CALLCONV OP * 6127 Perl_op_refcnt_inc(pTHX_ OP *o); 6128 # define PERL_ARGS_ASSERT_OP_REFCNT_INC 6129 6130 #endif /* defined(PERL_DEBUG_READONLY_OPS) */ 6131 #if defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION) 6132 PERL_CALLCONV bool 6133 Perl_do_exec(pTHX_ const char *cmd) 6134 __attribute__visibility__("hidden"); 6135 # define PERL_ARGS_ASSERT_DO_EXEC \ 6136 assert(cmd) 6137 6138 #else 6139 PERL_CALLCONV bool 6140 Perl_do_exec(pTHX_ const char *cmd) 6141 __attribute__visibility__("hidden"); 6142 # define PERL_ARGS_ASSERT_DO_EXEC \ 6143 assert(cmd) 6144 6145 #endif 6146 #if defined(PERL_IMPLICIT_SYS) 6147 PERL_CALLCONV PerlInterpreter * 6148 perl_alloc_using(struct IPerlMem *ipM, struct IPerlMem *ipMS, struct IPerlMem *ipMP, struct IPerlEnv *ipE, struct IPerlStdIO *ipStd, struct IPerlLIO *ipLIO, struct IPerlDir *ipD, struct IPerlSock *ipS, struct IPerlProc *ipP); 6149 # define PERL_ARGS_ASSERT_PERL_ALLOC_USING \ 6150 assert(ipM); assert(ipMS); assert(ipMP); assert(ipE); assert(ipStd); \ 6151 assert(ipLIO); assert(ipD); assert(ipS); assert(ipP) 6152 6153 # if defined(USE_ITHREADS) 6154 PERL_CALLCONV PerlInterpreter * 6155 perl_clone_using(PerlInterpreter *proto_perl, UV flags, struct IPerlMem *ipM, struct IPerlMem *ipMS, struct IPerlMem *ipMP, struct IPerlEnv *ipE, struct IPerlStdIO *ipStd, struct IPerlLIO *ipLIO, struct IPerlDir *ipD, struct IPerlSock *ipS, struct IPerlProc *ipP); 6156 # define PERL_ARGS_ASSERT_PERL_CLONE_USING \ 6157 assert(proto_perl); assert(ipM); assert(ipMS); assert(ipMP); assert(ipE); \ 6158 assert(ipStd); assert(ipLIO); assert(ipD); assert(ipS); assert(ipP) 6159 6160 # endif 6161 #else /* if !defined(PERL_IMPLICIT_SYS) */ 6162 PERL_CALLCONV I32 6163 Perl_my_pclose(pTHX_ PerlIO *ptr); 6164 # define PERL_ARGS_ASSERT_MY_PCLOSE 6165 6166 PERL_CALLCONV PerlIO * 6167 Perl_my_popen(pTHX_ const char *cmd, const char *mode); 6168 # define PERL_ARGS_ASSERT_MY_POPEN \ 6169 assert(cmd); assert(mode) 6170 6171 #endif /* !defined(PERL_IMPLICIT_SYS) */ 6172 #if defined(PERL_IN_AV_C) 6173 STATIC MAGIC * 6174 S_get_aux_mg(pTHX_ AV *av); 6175 # define PERL_ARGS_ASSERT_GET_AUX_MG \ 6176 assert(av) 6177 6178 #endif 6179 #if defined(PERL_IN_CLASS_C) || defined(PERL_IN_OP_C) || \ 6180 defined(PERL_IN_PAD_C) || defined(PERL_IN_PERLY_C) || \ 6181 defined(PERL_IN_TOKE_C) 6182 PERL_CALLCONV void 6183 Perl_class_add_ADJUST(pTHX_ HV *stash, CV *cv); 6184 # define PERL_ARGS_ASSERT_CLASS_ADD_ADJUST \ 6185 assert(stash); assert(cv) 6186 6187 PERL_CALLCONV void 6188 Perl_class_add_field(pTHX_ HV *stash, PADNAME *pn); 6189 # define PERL_ARGS_ASSERT_CLASS_ADD_FIELD \ 6190 assert(stash); assert(pn) 6191 6192 PERL_CALLCONV void 6193 Perl_class_apply_attributes(pTHX_ HV *stash, OP *attrlist); 6194 # define PERL_ARGS_ASSERT_CLASS_APPLY_ATTRIBUTES \ 6195 assert(stash) 6196 6197 PERL_CALLCONV void 6198 Perl_class_apply_field_attributes(pTHX_ PADNAME *pn, OP *attrlist); 6199 # define PERL_ARGS_ASSERT_CLASS_APPLY_FIELD_ATTRIBUTES \ 6200 assert(pn) 6201 6202 PERL_CALLCONV void 6203 Perl_class_prepare_initfield_parse(pTHX); 6204 # define PERL_ARGS_ASSERT_CLASS_PREPARE_INITFIELD_PARSE 6205 6206 PERL_CALLCONV void 6207 Perl_class_prepare_method_parse(pTHX_ CV *cv); 6208 # define PERL_ARGS_ASSERT_CLASS_PREPARE_METHOD_PARSE \ 6209 assert(cv) 6210 6211 PERL_CALLCONV void 6212 Perl_class_seal_stash(pTHX_ HV *stash); 6213 # define PERL_ARGS_ASSERT_CLASS_SEAL_STASH \ 6214 assert(stash) 6215 6216 PERL_CALLCONV void 6217 Perl_class_set_field_defop(pTHX_ PADNAME *pn, OPCODE defmode, OP *defop); 6218 # define PERL_ARGS_ASSERT_CLASS_SET_FIELD_DEFOP \ 6219 assert(pn); assert(defop) 6220 6221 PERL_CALLCONV void 6222 Perl_class_setup_stash(pTHX_ HV *stash); 6223 # define PERL_ARGS_ASSERT_CLASS_SETUP_STASH \ 6224 assert(stash) 6225 6226 PERL_CALLCONV OP * 6227 Perl_class_wrap_method_body(pTHX_ OP *o); 6228 # define PERL_ARGS_ASSERT_CLASS_WRAP_METHOD_BODY 6229 6230 PERL_CALLCONV void 6231 Perl_croak_kw_unless_class(pTHX_ const char *kw); 6232 # define PERL_ARGS_ASSERT_CROAK_KW_UNLESS_CLASS \ 6233 assert(kw) 6234 6235 #endif /* defined(PERL_IN_CLASS_C) || defined(PERL_IN_OP_C) || 6236 defined(PERL_IN_PAD_C) || defined(PERL_IN_PERLY_C) || 6237 defined(PERL_IN_TOKE_C) */ 6238 #if defined(PERL_IN_DEB_C) 6239 STATIC void 6240 S_deb_stack_n(pTHX_ SV **stack_base, I32 stack_min, I32 stack_max, I32 mark_min, I32 mark_max); 6241 # define PERL_ARGS_ASSERT_DEB_STACK_N \ 6242 assert(stack_base) 6243 6244 #endif 6245 #if defined(PERL_IN_DOIO_C) 6246 STATIC bool 6247 S_argvout_final(pTHX_ MAGIC *mg, IO *io, bool is_explicit); 6248 # define PERL_ARGS_ASSERT_ARGVOUT_FINAL \ 6249 assert(mg); assert(io) 6250 6251 STATIC void 6252 S_exec_failed(pTHX_ const char *cmd, int fd, int do_report); 6253 # define PERL_ARGS_ASSERT_EXEC_FAILED \ 6254 assert(cmd) 6255 6256 STATIC bool 6257 S_ingroup(pTHX_ Gid_t testgid, bool effective) 6258 __attribute__warn_unused_result__; 6259 # define PERL_ARGS_ASSERT_INGROUP 6260 6261 STATIC bool 6262 S_openn_cleanup(pTHX_ GV *gv, IO *io, PerlIO *fp, char *mode, const char *oname, PerlIO *saveifp, PerlIO *saveofp, int savefd, char savetype, int writing, bool was_fdopen, const char *type, Stat_t *statbufp); 6263 # define PERL_ARGS_ASSERT_OPENN_CLEANUP \ 6264 assert(gv); assert(io); assert(mode); assert(oname) 6265 6266 STATIC IO * 6267 S_openn_setup(pTHX_ GV *gv, char *mode, PerlIO **saveifp, PerlIO **saveofp, int *savefd, char *savetype); 6268 # define PERL_ARGS_ASSERT_OPENN_SETUP \ 6269 assert(gv); assert(mode); assert(saveifp); assert(saveofp); assert(savefd); \ 6270 assert(savetype) 6271 6272 #endif /* defined(PERL_IN_DOIO_C) */ 6273 #if defined(PERL_IN_DOOP_C) 6274 STATIC Size_t 6275 S_do_trans_complex(pTHX_ SV * const sv, const OPtrans_map * const tbl) 6276 __attribute__warn_unused_result__; 6277 # define PERL_ARGS_ASSERT_DO_TRANS_COMPLEX \ 6278 assert(sv); assert(tbl) 6279 6280 STATIC Size_t 6281 S_do_trans_count(pTHX_ SV * const sv, const OPtrans_map * const tbl) 6282 __attribute__warn_unused_result__; 6283 # define PERL_ARGS_ASSERT_DO_TRANS_COUNT \ 6284 assert(sv); assert(tbl) 6285 6286 STATIC Size_t 6287 S_do_trans_count_invmap(pTHX_ SV * const sv, AV * const map) 6288 __attribute__warn_unused_result__; 6289 # define PERL_ARGS_ASSERT_DO_TRANS_COUNT_INVMAP \ 6290 assert(sv); assert(map) 6291 6292 STATIC Size_t 6293 S_do_trans_invmap(pTHX_ SV * const sv, AV * const map) 6294 __attribute__warn_unused_result__; 6295 # define PERL_ARGS_ASSERT_DO_TRANS_INVMAP \ 6296 assert(sv); assert(map) 6297 6298 STATIC Size_t 6299 S_do_trans_simple(pTHX_ SV * const sv, const OPtrans_map * const tbl) 6300 __attribute__warn_unused_result__; 6301 # define PERL_ARGS_ASSERT_DO_TRANS_SIMPLE \ 6302 assert(sv); assert(tbl) 6303 6304 #endif /* defined(PERL_IN_DOOP_C) */ 6305 #if defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || \ 6306 defined(PERL_IN_PP_C) || defined(PERL_IN_REGCOMP_ANY) || \ 6307 defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C) || \ 6308 defined(PERL_IN_UTF8_C) 6309 6310 PERL_CALLCONV SSize_t 6311 Perl__invlist_search(SV * const invlist, const UV cp) 6312 __attribute__warn_unused_result__; 6313 # define PERL_ARGS_ASSERT__INVLIST_SEARCH \ 6314 assert(invlist) 6315 6316 #endif /* defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || 6317 defined(PERL_IN_PP_C) || defined(PERL_IN_REGCOMP_ANY) || 6318 defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C) || 6319 defined(PERL_IN_UTF8_C) */ 6320 #if defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || \ 6321 defined(PERL_IN_REGCOMP_ANY) 6322 6323 #endif 6324 #if defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || \ 6325 defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_UTF8_C) 6326 PERL_CALLCONV SV * 6327 Perl__add_range_to_invlist(pTHX_ SV *invlist, UV start, UV end) 6328 __attribute__warn_unused_result__; 6329 # define PERL_ARGS_ASSERT__ADD_RANGE_TO_INVLIST 6330 6331 /* PERL_CALLCONV void 6332 _invlist_intersection(pTHX_ SV * const a, SV * const b, SV **i); */ 6333 6334 PERL_CALLCONV void 6335 Perl__invlist_intersection_maybe_complement_2nd(pTHX_ SV * const a, SV * const b, const bool complement_b, SV **i); 6336 # define PERL_ARGS_ASSERT__INVLIST_INTERSECTION_MAYBE_COMPLEMENT_2ND \ 6337 assert(b); assert(i) 6338 6339 PERL_CALLCONV void 6340 Perl__invlist_invert(pTHX_ SV * const invlist); 6341 # define PERL_ARGS_ASSERT__INVLIST_INVERT \ 6342 assert(invlist) 6343 6344 /* PERL_CALLCONV void 6345 _invlist_subtract(pTHX_ SV * const a, SV * const b, SV **result); */ 6346 6347 /* PERL_CALLCONV void 6348 _invlist_union(pTHX_ SV * const a, SV * const b, SV **output); */ 6349 6350 PERL_CALLCONV void 6351 Perl__invlist_union_maybe_complement_2nd(pTHX_ SV * const a, SV * const b, const bool complement_b, SV **output); 6352 # define PERL_ARGS_ASSERT__INVLIST_UNION_MAYBE_COMPLEMENT_2ND \ 6353 assert(b); assert(output) 6354 6355 PERL_CALLCONV SV * 6356 Perl__new_invlist(pTHX_ IV initial_size) 6357 __attribute__warn_unused_result__; 6358 # define PERL_ARGS_ASSERT__NEW_INVLIST 6359 6360 PERL_CALLCONV SV * 6361 Perl__setup_canned_invlist(pTHX_ const STRLEN size, const UV element0, UV **other_elements_ptr) 6362 __attribute__warn_unused_result__; 6363 # define PERL_ARGS_ASSERT__SETUP_CANNED_INVLIST \ 6364 assert(other_elements_ptr) 6365 6366 #endif /* defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || 6367 defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_UTF8_C) */ 6368 #if defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_REGCOMP_C) || \ 6369 defined(PERL_IN_TOKE_C) 6370 PERL_CALLCONV const char * 6371 Perl_form_alien_digit_msg(pTHX_ const U8 which, const STRLEN valids_len, const char * const first_bad, const char * const send, const bool UTF, const bool braced) 6372 __attribute__warn_unused_result__; 6373 # define PERL_ARGS_ASSERT_FORM_ALIEN_DIGIT_MSG \ 6374 assert(first_bad); assert(send) 6375 6376 PERL_CALLCONV bool 6377 Perl_grok_bslash_c(pTHX_ const char source, U8 *result, const char **message, U32 *packed_warn) 6378 __attribute__warn_unused_result__; 6379 # define PERL_ARGS_ASSERT_GROK_BSLASH_C \ 6380 assert(result); assert(message) 6381 6382 PERL_CALLCONV bool 6383 Perl_grok_bslash_o(pTHX_ char **s, const char * const send, UV *uv, const char **message, U32 *packed_warn, const bool strict, const bool allow_UV_MAX, const bool utf8) 6384 __attribute__warn_unused_result__; 6385 # define PERL_ARGS_ASSERT_GROK_BSLASH_O \ 6386 assert(s); assert(send); assert(uv); assert(message) 6387 6388 PERL_CALLCONV bool 6389 Perl_grok_bslash_x(pTHX_ char **s, const char * const send, UV *uv, const char **message, U32 *packed_warn, const bool strict, const bool allow_UV_MAX, const bool utf8) 6390 __attribute__warn_unused_result__; 6391 # define PERL_ARGS_ASSERT_GROK_BSLASH_X \ 6392 assert(s); assert(send); assert(uv); assert(message) 6393 6394 #endif /* defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_REGCOMP_C) || 6395 defined(PERL_IN_TOKE_C) */ 6396 #if defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_REGCOMP_C) || \ 6397 defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C) 6398 PERL_CALLCONV const char * 6399 Perl_form_cp_too_large_msg(pTHX_ const U8 which, const char *string, const Size_t len, const UV cp) 6400 __attribute__warn_unused_result__; 6401 # define PERL_ARGS_ASSERT_FORM_CP_TOO_LARGE_MSG 6402 6403 #endif 6404 #if defined(PERL_IN_DUMP_C) 6405 STATIC CV * 6406 S_deb_curcv(pTHX_ I32 ix); 6407 # define PERL_ARGS_ASSERT_DEB_CURCV 6408 6409 STATIC void 6410 S_debprof(pTHX_ const OP *o); 6411 # define PERL_ARGS_ASSERT_DEBPROF \ 6412 assert(o) 6413 6414 STATIC SV * 6415 S_pm_description(pTHX_ const PMOP *pm); 6416 # define PERL_ARGS_ASSERT_PM_DESCRIPTION \ 6417 assert(pm) 6418 6419 STATIC UV 6420 S_sequence_num(pTHX_ const OP *o); 6421 # define PERL_ARGS_ASSERT_SEQUENCE_NUM 6422 6423 #endif /* defined(PERL_IN_DUMP_C) */ 6424 #if defined(PERL_IN_DUMP_C) || defined(PERL_IN_HV_C) || \ 6425 defined(PERL_IN_SCOPE_C) || defined(PERL_IN_SV_C) 6426 PERL_CALLCONV void 6427 Perl_hv_kill_backrefs(pTHX_ HV *hv) 6428 __attribute__visibility__("hidden"); 6429 # define PERL_ARGS_ASSERT_HV_KILL_BACKREFS \ 6430 assert(hv) 6431 6432 #endif 6433 #if defined(PERL_IN_DUMP_C) || defined(PERL_IN_OP_C) || \ 6434 defined(PERL_IN_REGCOMP_ANY) 6435 PERL_CALLCONV void 6436 Perl__invlist_dump(pTHX_ PerlIO *file, I32 level, const char * const indent, SV * const invlist); 6437 # define PERL_ARGS_ASSERT__INVLIST_DUMP \ 6438 assert(file); assert(indent); assert(invlist) 6439 6440 #endif 6441 #if defined(PERL_IN_GLOBALS_C) || defined(PERL_IN_OP_C) || \ 6442 defined(PERL_IN_PEEP_C) 6443 PERL_CALLCONV OP * 6444 Perl_ck_anoncode(pTHX_ OP *o) 6445 __attribute__warn_unused_result__ 6446 __attribute__visibility__("hidden"); 6447 # define PERL_ARGS_ASSERT_CK_ANONCODE \ 6448 assert(o) 6449 6450 PERL_CALLCONV OP * 6451 Perl_ck_backtick(pTHX_ OP *o) 6452 __attribute__warn_unused_result__ 6453 __attribute__visibility__("hidden"); 6454 # define PERL_ARGS_ASSERT_CK_BACKTICK \ 6455 assert(o) 6456 6457 PERL_CALLCONV OP * 6458 Perl_ck_bitop(pTHX_ OP *o) 6459 __attribute__warn_unused_result__ 6460 __attribute__visibility__("hidden"); 6461 # define PERL_ARGS_ASSERT_CK_BITOP \ 6462 assert(o) 6463 6464 PERL_CALLCONV OP * 6465 Perl_ck_cmp(pTHX_ OP *o) 6466 __attribute__warn_unused_result__ 6467 __attribute__visibility__("hidden"); 6468 # define PERL_ARGS_ASSERT_CK_CMP \ 6469 assert(o) 6470 6471 PERL_CALLCONV OP * 6472 Perl_ck_concat(pTHX_ OP *o) 6473 __attribute__warn_unused_result__ 6474 __attribute__visibility__("hidden"); 6475 # define PERL_ARGS_ASSERT_CK_CONCAT \ 6476 assert(o) 6477 6478 PERL_CALLCONV OP * 6479 Perl_ck_defined(pTHX_ OP *o) 6480 __attribute__warn_unused_result__ 6481 __attribute__visibility__("hidden"); 6482 # define PERL_ARGS_ASSERT_CK_DEFINED \ 6483 assert(o) 6484 6485 PERL_CALLCONV OP * 6486 Perl_ck_delete(pTHX_ OP *o) 6487 __attribute__warn_unused_result__ 6488 __attribute__visibility__("hidden"); 6489 # define PERL_ARGS_ASSERT_CK_DELETE \ 6490 assert(o) 6491 6492 PERL_CALLCONV OP * 6493 Perl_ck_each(pTHX_ OP *o) 6494 __attribute__warn_unused_result__ 6495 __attribute__visibility__("hidden"); 6496 # define PERL_ARGS_ASSERT_CK_EACH \ 6497 assert(o) 6498 6499 PERL_CALLCONV OP * 6500 Perl_ck_eof(pTHX_ OP *o) 6501 __attribute__warn_unused_result__ 6502 __attribute__visibility__("hidden"); 6503 # define PERL_ARGS_ASSERT_CK_EOF \ 6504 assert(o) 6505 6506 PERL_CALLCONV OP * 6507 Perl_ck_eval(pTHX_ OP *o) 6508 __attribute__warn_unused_result__ 6509 __attribute__visibility__("hidden"); 6510 # define PERL_ARGS_ASSERT_CK_EVAL \ 6511 assert(o) 6512 6513 PERL_CALLCONV OP * 6514 Perl_ck_exec(pTHX_ OP *o) 6515 __attribute__warn_unused_result__ 6516 __attribute__visibility__("hidden"); 6517 # define PERL_ARGS_ASSERT_CK_EXEC \ 6518 assert(o) 6519 6520 PERL_CALLCONV OP * 6521 Perl_ck_exists(pTHX_ OP *o) 6522 __attribute__warn_unused_result__ 6523 __attribute__visibility__("hidden"); 6524 # define PERL_ARGS_ASSERT_CK_EXISTS \ 6525 assert(o) 6526 6527 PERL_CALLCONV OP * 6528 Perl_ck_ftst(pTHX_ OP *o) 6529 __attribute__warn_unused_result__ 6530 __attribute__visibility__("hidden"); 6531 # define PERL_ARGS_ASSERT_CK_FTST \ 6532 assert(o) 6533 6534 PERL_CALLCONV OP * 6535 Perl_ck_fun(pTHX_ OP *o) 6536 __attribute__warn_unused_result__ 6537 __attribute__visibility__("hidden"); 6538 # define PERL_ARGS_ASSERT_CK_FUN \ 6539 assert(o) 6540 6541 PERL_CALLCONV OP * 6542 Perl_ck_glob(pTHX_ OP *o) 6543 __attribute__warn_unused_result__ 6544 __attribute__visibility__("hidden"); 6545 # define PERL_ARGS_ASSERT_CK_GLOB \ 6546 assert(o) 6547 6548 PERL_CALLCONV OP * 6549 Perl_ck_grep(pTHX_ OP *o) 6550 __attribute__warn_unused_result__ 6551 __attribute__visibility__("hidden"); 6552 # define PERL_ARGS_ASSERT_CK_GREP \ 6553 assert(o) 6554 6555 PERL_CALLCONV OP * 6556 Perl_ck_helemexistsor(pTHX_ OP *o) 6557 __attribute__warn_unused_result__ 6558 __attribute__visibility__("hidden"); 6559 # define PERL_ARGS_ASSERT_CK_HELEMEXISTSOR \ 6560 assert(o) 6561 6562 PERL_CALLCONV OP * 6563 Perl_ck_index(pTHX_ OP *o) 6564 __attribute__warn_unused_result__ 6565 __attribute__visibility__("hidden"); 6566 # define PERL_ARGS_ASSERT_CK_INDEX \ 6567 assert(o) 6568 6569 PERL_CALLCONV OP * 6570 Perl_ck_isa(pTHX_ OP *o) 6571 __attribute__warn_unused_result__ 6572 __attribute__visibility__("hidden"); 6573 # define PERL_ARGS_ASSERT_CK_ISA \ 6574 assert(o) 6575 6576 PERL_CALLCONV OP * 6577 Perl_ck_join(pTHX_ OP *o) 6578 __attribute__warn_unused_result__ 6579 __attribute__visibility__("hidden"); 6580 # define PERL_ARGS_ASSERT_CK_JOIN \ 6581 assert(o) 6582 6583 PERL_CALLCONV OP * 6584 Perl_ck_length(pTHX_ OP *o) 6585 __attribute__warn_unused_result__ 6586 __attribute__visibility__("hidden"); 6587 # define PERL_ARGS_ASSERT_CK_LENGTH \ 6588 assert(o) 6589 6590 PERL_CALLCONV OP * 6591 Perl_ck_lfun(pTHX_ OP *o) 6592 __attribute__warn_unused_result__ 6593 __attribute__visibility__("hidden"); 6594 # define PERL_ARGS_ASSERT_CK_LFUN \ 6595 assert(o) 6596 6597 PERL_CALLCONV OP * 6598 Perl_ck_listiob(pTHX_ OP *o) 6599 __attribute__warn_unused_result__ 6600 __attribute__visibility__("hidden"); 6601 # define PERL_ARGS_ASSERT_CK_LISTIOB \ 6602 assert(o) 6603 6604 PERL_CALLCONV OP * 6605 Perl_ck_match(pTHX_ OP *o) 6606 __attribute__warn_unused_result__ 6607 __attribute__visibility__("hidden"); 6608 # define PERL_ARGS_ASSERT_CK_MATCH \ 6609 assert(o) 6610 6611 PERL_CALLCONV OP * 6612 Perl_ck_method(pTHX_ OP *o) 6613 __attribute__warn_unused_result__ 6614 __attribute__visibility__("hidden"); 6615 # define PERL_ARGS_ASSERT_CK_METHOD \ 6616 assert(o) 6617 6618 PERL_CALLCONV OP * 6619 Perl_ck_null(pTHX_ OP *o) 6620 __attribute__warn_unused_result__ 6621 __attribute__visibility__("hidden"); 6622 # define PERL_ARGS_ASSERT_CK_NULL \ 6623 assert(o) 6624 6625 PERL_CALLCONV OP * 6626 Perl_ck_open(pTHX_ OP *o) 6627 __attribute__warn_unused_result__ 6628 __attribute__visibility__("hidden"); 6629 # define PERL_ARGS_ASSERT_CK_OPEN \ 6630 assert(o) 6631 6632 PERL_CALLCONV OP * 6633 Perl_ck_prototype(pTHX_ OP *o) 6634 __attribute__warn_unused_result__ 6635 __attribute__visibility__("hidden"); 6636 # define PERL_ARGS_ASSERT_CK_PROTOTYPE \ 6637 assert(o) 6638 6639 PERL_CALLCONV OP * 6640 Perl_ck_readline(pTHX_ OP *o) 6641 __attribute__warn_unused_result__ 6642 __attribute__visibility__("hidden"); 6643 # define PERL_ARGS_ASSERT_CK_READLINE \ 6644 assert(o) 6645 6646 PERL_CALLCONV OP * 6647 Perl_ck_refassign(pTHX_ OP *o) 6648 __attribute__warn_unused_result__ 6649 __attribute__visibility__("hidden"); 6650 # define PERL_ARGS_ASSERT_CK_REFASSIGN \ 6651 assert(o) 6652 6653 PERL_CALLCONV OP * 6654 Perl_ck_repeat(pTHX_ OP *o) 6655 __attribute__warn_unused_result__ 6656 __attribute__visibility__("hidden"); 6657 # define PERL_ARGS_ASSERT_CK_REPEAT \ 6658 assert(o) 6659 6660 PERL_CALLCONV OP * 6661 Perl_ck_require(pTHX_ OP *o) 6662 __attribute__warn_unused_result__ 6663 __attribute__visibility__("hidden"); 6664 # define PERL_ARGS_ASSERT_CK_REQUIRE \ 6665 assert(o) 6666 6667 PERL_CALLCONV OP * 6668 Perl_ck_return(pTHX_ OP *o) 6669 __attribute__warn_unused_result__ 6670 __attribute__visibility__("hidden"); 6671 # define PERL_ARGS_ASSERT_CK_RETURN \ 6672 assert(o) 6673 6674 PERL_CALLCONV OP * 6675 Perl_ck_rfun(pTHX_ OP *o) 6676 __attribute__warn_unused_result__ 6677 __attribute__visibility__("hidden"); 6678 # define PERL_ARGS_ASSERT_CK_RFUN \ 6679 assert(o) 6680 6681 PERL_CALLCONV OP * 6682 Perl_ck_rvconst(pTHX_ OP *o) 6683 __attribute__warn_unused_result__ 6684 __attribute__visibility__("hidden"); 6685 # define PERL_ARGS_ASSERT_CK_RVCONST \ 6686 assert(o) 6687 6688 PERL_CALLCONV OP * 6689 Perl_ck_sassign(pTHX_ OP *o) 6690 __attribute__warn_unused_result__ 6691 __attribute__visibility__("hidden"); 6692 # define PERL_ARGS_ASSERT_CK_SASSIGN \ 6693 assert(o) 6694 6695 PERL_CALLCONV OP * 6696 Perl_ck_select(pTHX_ OP *o) 6697 __attribute__warn_unused_result__ 6698 __attribute__visibility__("hidden"); 6699 # define PERL_ARGS_ASSERT_CK_SELECT \ 6700 assert(o) 6701 6702 PERL_CALLCONV OP * 6703 Perl_ck_shift(pTHX_ OP *o) 6704 __attribute__warn_unused_result__ 6705 __attribute__visibility__("hidden"); 6706 # define PERL_ARGS_ASSERT_CK_SHIFT \ 6707 assert(o) 6708 6709 PERL_CALLCONV OP * 6710 Perl_ck_smartmatch(pTHX_ OP *o) 6711 __attribute__warn_unused_result__ 6712 __attribute__visibility__("hidden"); 6713 # define PERL_ARGS_ASSERT_CK_SMARTMATCH \ 6714 assert(o) 6715 6716 PERL_CALLCONV OP * 6717 Perl_ck_sort(pTHX_ OP *o) 6718 __attribute__warn_unused_result__ 6719 __attribute__visibility__("hidden"); 6720 # define PERL_ARGS_ASSERT_CK_SORT \ 6721 assert(o) 6722 6723 PERL_CALLCONV OP * 6724 Perl_ck_spair(pTHX_ OP *o) 6725 __attribute__warn_unused_result__ 6726 __attribute__visibility__("hidden"); 6727 # define PERL_ARGS_ASSERT_CK_SPAIR \ 6728 assert(o) 6729 6730 PERL_CALLCONV OP * 6731 Perl_ck_split(pTHX_ OP *o) 6732 __attribute__warn_unused_result__ 6733 __attribute__visibility__("hidden"); 6734 # define PERL_ARGS_ASSERT_CK_SPLIT \ 6735 assert(o) 6736 6737 PERL_CALLCONV OP * 6738 Perl_ck_stringify(pTHX_ OP *o) 6739 __attribute__warn_unused_result__ 6740 __attribute__visibility__("hidden"); 6741 # define PERL_ARGS_ASSERT_CK_STRINGIFY \ 6742 assert(o) 6743 6744 PERL_CALLCONV OP * 6745 Perl_ck_subr(pTHX_ OP *o) 6746 __attribute__warn_unused_result__ 6747 __attribute__visibility__("hidden"); 6748 # define PERL_ARGS_ASSERT_CK_SUBR \ 6749 assert(o) 6750 6751 PERL_CALLCONV OP * 6752 Perl_ck_substr(pTHX_ OP *o) 6753 __attribute__warn_unused_result__ 6754 __attribute__visibility__("hidden"); 6755 # define PERL_ARGS_ASSERT_CK_SUBSTR \ 6756 assert(o) 6757 6758 PERL_CALLCONV OP * 6759 Perl_ck_svconst(pTHX_ OP *o) 6760 __attribute__warn_unused_result__ 6761 __attribute__visibility__("hidden"); 6762 # define PERL_ARGS_ASSERT_CK_SVCONST \ 6763 assert(o) 6764 6765 PERL_CALLCONV OP * 6766 Perl_ck_tell(pTHX_ OP *o) 6767 __attribute__warn_unused_result__ 6768 __attribute__visibility__("hidden"); 6769 # define PERL_ARGS_ASSERT_CK_TELL \ 6770 assert(o) 6771 6772 PERL_CALLCONV OP * 6773 Perl_ck_trunc(pTHX_ OP *o) 6774 __attribute__warn_unused_result__ 6775 __attribute__visibility__("hidden"); 6776 # define PERL_ARGS_ASSERT_CK_TRUNC \ 6777 assert(o) 6778 6779 PERL_CALLCONV OP * 6780 Perl_ck_trycatch(pTHX_ OP *o) 6781 __attribute__warn_unused_result__ 6782 __attribute__visibility__("hidden"); 6783 # define PERL_ARGS_ASSERT_CK_TRYCATCH \ 6784 assert(o) 6785 6786 #endif /* defined(PERL_IN_GLOBALS_C) || defined(PERL_IN_OP_C) || 6787 defined(PERL_IN_PEEP_C) */ 6788 #if defined(PERL_IN_GV_C) 6789 STATIC bool 6790 S_find_default_stash(pTHX_ HV **stash, const char *name, STRLEN len, const U32 is_utf8, const I32 add, const svtype sv_type); 6791 # define PERL_ARGS_ASSERT_FIND_DEFAULT_STASH \ 6792 assert(stash); assert(name) 6793 6794 STATIC void 6795 S_gv_init_svtype(pTHX_ GV *gv, const svtype sv_type); 6796 # define PERL_ARGS_ASSERT_GV_INIT_SVTYPE \ 6797 assert(gv) 6798 6799 STATIC bool 6800 S_gv_is_in_main(pTHX_ const char *name, STRLEN len, const U32 is_utf8); 6801 # define PERL_ARGS_ASSERT_GV_IS_IN_MAIN \ 6802 assert(name) 6803 6804 STATIC bool 6805 S_gv_magicalize(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len, const svtype sv_type); 6806 # define PERL_ARGS_ASSERT_GV_MAGICALIZE \ 6807 assert(gv); assert(stash); assert(name) 6808 6809 STATIC void 6810 S_gv_magicalize_isa(pTHX_ GV *gv); 6811 # define PERL_ARGS_ASSERT_GV_MAGICALIZE_ISA \ 6812 assert(gv) 6813 6814 STATIC void 6815 S_maybe_multimagic_gv(pTHX_ GV *gv, const char *name, const svtype sv_type); 6816 # define PERL_ARGS_ASSERT_MAYBE_MULTIMAGIC_GV \ 6817 assert(gv); assert(name) 6818 6819 STATIC bool 6820 S_parse_gv_stash_name(pTHX_ HV **stash, GV **gv, const char **name, STRLEN *len, const char *nambeg, STRLEN full_len, const U32 is_utf8, const I32 add); 6821 # define PERL_ARGS_ASSERT_PARSE_GV_STASH_NAME \ 6822 assert(stash); assert(gv); assert(name); assert(len); assert(nambeg) 6823 6824 STATIC void 6825 S_require_tie_mod(pTHX_ GV *gv, const char varname, const char *name, STRLEN len, const U32 flags); 6826 # define PERL_ARGS_ASSERT_REQUIRE_TIE_MOD \ 6827 assert(gv); assert(varname); assert(name) 6828 6829 # if !defined(PERL_NO_INLINE_FUNCTIONS) 6830 PERL_STATIC_INLINE GV * 6831 S_gv_fetchmeth_internal(pTHX_ HV *stash, SV *meth, const char *name, STRLEN len, I32 level, U32 flags); 6832 # define PERL_ARGS_ASSERT_GV_FETCHMETH_INTERNAL 6833 6834 PERL_STATIC_INLINE HV * 6835 S_gv_stashpvn_internal(pTHX_ const char *name, U32 namelen, I32 flags); 6836 # define PERL_ARGS_ASSERT_GV_STASHPVN_INTERNAL \ 6837 assert(name) 6838 6839 # endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */ 6840 #endif /* defined(PERL_IN_GV_C) */ 6841 #if defined(PERL_IN_GV_C) || defined(PERL_IN_OP_C) || \ 6842 defined(PERL_IN_PAD_C) || defined(PERL_IN_SV_C) 6843 PERL_CALLCONV void 6844 Perl_sv_add_backref(pTHX_ SV * const tsv, SV * const sv) 6845 __attribute__visibility__("hidden"); 6846 # define PERL_ARGS_ASSERT_SV_ADD_BACKREF \ 6847 assert(tsv); assert(sv) 6848 6849 #endif 6850 #if defined(PERL_IN_GV_C) || defined(PERL_IN_UNIVERSAL_C) 6851 PERL_CALLCONV HV * 6852 Perl_gv_stashsvpvn_cached(pTHX_ SV *namesv, const char *name, U32 namelen, I32 flags) 6853 __attribute__visibility__("hidden"); 6854 6855 #endif 6856 #if defined(PERL_IN_HV_C) 6857 STATIC void 6858 S_clear_placeholders(pTHX_ HV *hv, U32 items); 6859 # define PERL_ARGS_ASSERT_CLEAR_PLACEHOLDERS \ 6860 assert(hv) 6861 6862 STATIC void 6863 S_hsplit(pTHX_ HV *hv, STRLEN const oldsize, STRLEN newsize); 6864 # define PERL_ARGS_ASSERT_HSPLIT \ 6865 assert(hv) 6866 6867 STATIC struct xpvhv_aux * 6868 S_hv_auxinit(pTHX_ HV *hv); 6869 # define PERL_ARGS_ASSERT_HV_AUXINIT \ 6870 assert(hv) 6871 6872 STATIC SV * 6873 S_hv_delete_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen, int k_flags, I32 d_flags, U32 hash); 6874 # define PERL_ARGS_ASSERT_HV_DELETE_COMMON 6875 6876 STATIC SV * 6877 S_hv_free_ent_ret(pTHX_ HE *entry); 6878 # define PERL_ARGS_ASSERT_HV_FREE_ENT_RET \ 6879 assert(entry) 6880 6881 STATIC void 6882 S_hv_free_entries(pTHX_ HV *hv); 6883 # define PERL_ARGS_ASSERT_HV_FREE_ENTRIES \ 6884 assert(hv) 6885 6886 STATIC void 6887 S_hv_magic_check(HV *hv, bool *needs_copy, bool *needs_store); 6888 # define PERL_ARGS_ASSERT_HV_MAGIC_CHECK \ 6889 assert(hv); assert(needs_copy); assert(needs_store) 6890 6891 PERL_STATIC_NO_RET void 6892 S_hv_notallowed(pTHX_ int flags, const char *key, I32 klen, const char *msg) 6893 __attribute__noreturn__; 6894 # define PERL_ARGS_ASSERT_HV_NOTALLOWED \ 6895 assert(key); assert(msg) 6896 6897 STATIC SV * 6898 S_refcounted_he_value(pTHX_ const struct refcounted_he *he); 6899 # define PERL_ARGS_ASSERT_REFCOUNTED_HE_VALUE \ 6900 assert(he) 6901 6902 STATIC HEK * 6903 S_save_hek_flags(const char *str, I32 len, U32 hash, int flags) 6904 __attribute__malloc__ 6905 __attribute__warn_unused_result__; 6906 # define PERL_ARGS_ASSERT_SAVE_HEK_FLAGS \ 6907 assert(str) 6908 6909 STATIC HEK * 6910 S_share_hek_flags(pTHX_ const char *str, STRLEN len, U32 hash, int flags) 6911 __attribute__warn_unused_result__; 6912 # define PERL_ARGS_ASSERT_SHARE_HEK_FLAGS \ 6913 assert(str) 6914 6915 STATIC void 6916 S_unshare_hek_or_pvn(pTHX_ const HEK *hek, const char *str, I32 len, U32 hash); 6917 # define PERL_ARGS_ASSERT_UNSHARE_HEK_OR_PVN 6918 6919 # if !defined(PURIFY) 6920 STATIC HE * 6921 S_new_he(pTHX) 6922 __attribute__warn_unused_result__; 6923 # define PERL_ARGS_ASSERT_NEW_HE 6924 6925 # endif 6926 #endif /* defined(PERL_IN_HV_C) */ 6927 #if defined(PERL_IN_HV_C) || defined(PERL_IN_MG_C) || defined(PERL_IN_SV_C) 6928 PERL_CALLCONV void 6929 Perl_sv_kill_backrefs(pTHX_ SV * const sv, AV * const av) 6930 __attribute__visibility__("hidden"); 6931 # define PERL_ARGS_ASSERT_SV_KILL_BACKREFS \ 6932 assert(sv) 6933 6934 #endif 6935 #if defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C) 6936 PERL_CALLCONV SV * 6937 Perl_hfree_next_entry(pTHX_ HV *hv, STRLEN *indexp) 6938 __attribute__visibility__("hidden"); 6939 # define PERL_ARGS_ASSERT_HFREE_NEXT_ENTRY \ 6940 assert(hv); assert(indexp) 6941 6942 #endif 6943 #if defined(PERL_IN_LOCALE_C) 6944 STATIC utf8ness_t 6945 S_get_locale_string_utf8ness_i(pTHX_ const char *string, const locale_utf8ness_t known_utf8, const char *locale, const unsigned cat_index); 6946 # define PERL_ARGS_ASSERT_GET_LOCALE_STRING_UTF8NESS_I 6947 6948 STATIC bool 6949 S_is_locale_utf8(pTHX_ const char *locale); 6950 # define PERL_ARGS_ASSERT_IS_LOCALE_UTF8 \ 6951 assert(locale) 6952 6953 # if defined(HAS_LOCALECONV) 6954 STATIC HV * 6955 S_my_localeconv(pTHX_ const int item); 6956 # define PERL_ARGS_ASSERT_MY_LOCALECONV 6957 6958 STATIC void 6959 S_populate_hash_from_localeconv(pTHX_ HV *hv, const char *locale, const U32 which_mask, const lconv_offset_t *strings[2], const lconv_offset_t *integers); 6960 # define PERL_ARGS_ASSERT_POPULATE_HASH_FROM_LOCALECONV \ 6961 assert(hv); assert(locale); assert(strings) 6962 6963 # endif /* defined(HAS_LOCALECONV) */ 6964 # if defined(USE_LOCALE) 6965 STATIC unsigned int 6966 S_get_category_index(const int category, const char *locale); 6967 # define PERL_ARGS_ASSERT_GET_CATEGORY_INDEX 6968 6969 STATIC int 6970 S_get_category_index_nowarn(const int category); 6971 # define PERL_ARGS_ASSERT_GET_CATEGORY_INDEX_NOWARN 6972 6973 STATIC void 6974 S_new_LC_ALL(pTHX_ const char *unused, bool force); 6975 # define PERL_ARGS_ASSERT_NEW_LC_ALL 6976 6977 STATIC void 6978 S_restore_toggled_locale_i(pTHX_ const unsigned cat_index, const char *original_locale, const line_t caller_line); 6979 # define PERL_ARGS_ASSERT_RESTORE_TOGGLED_LOCALE_I 6980 6981 STATIC const char * 6982 S_save_to_buffer(const char *string, const char **buf, Size_t *buf_size); 6983 # define PERL_ARGS_ASSERT_SAVE_TO_BUFFER 6984 6985 PERL_STATIC_NO_RET void 6986 S_setlocale_failure_panic_i(pTHX_ const unsigned int cat_index, const char *current, const char *failed, const line_t caller_0_line, const line_t caller_1_line) 6987 __attribute__noreturn__; 6988 # define PERL_ARGS_ASSERT_SETLOCALE_FAILURE_PANIC_I \ 6989 assert(failed) 6990 6991 STATIC const char * 6992 S_stdize_locale(pTHX_ const int category, const char *input_locale, const char **buf, Size_t *buf_size, line_t caller_line); 6993 # define PERL_ARGS_ASSERT_STDIZE_LOCALE 6994 6995 STATIC const char * 6996 S_toggle_locale_i(pTHX_ const unsigned switch_cat_index, const char *new_locale, const line_t caller_line); 6997 # define PERL_ARGS_ASSERT_TOGGLE_LOCALE_I \ 6998 assert(new_locale) 6999 7000 # if defined(DEBUGGING) 7001 STATIC char * 7002 S_my_setlocale_debug_string_i(pTHX_ const unsigned cat_index, const char *locale, const char *retval, const line_t line) 7003 __attribute__warn_unused_result__; 7004 # define PERL_ARGS_ASSERT_MY_SETLOCALE_DEBUG_STRING_I 7005 7006 # endif 7007 # if defined(HAS_NL_LANGINFO) || defined(HAS_NL_LANGINFO_L) 7008 STATIC const char * 7009 S_my_langinfo_i(pTHX_ const nl_item item, const unsigned int cat_index, const char *locale, const char **retbufp, Size_t *retbuf_sizep, utf8ness_t *utf8ness); 7010 # define PERL_ARGS_ASSERT_MY_LANGINFO_I \ 7011 assert(locale); assert(retbufp) 7012 7013 # else 7014 STATIC const char * 7015 S_my_langinfo_i(pTHX_ const int item, const unsigned int cat_index, const char *locale, const char **retbufp, Size_t *retbuf_sizep, utf8ness_t *utf8ness); 7016 # define PERL_ARGS_ASSERT_MY_LANGINFO_I \ 7017 assert(locale); assert(retbufp) 7018 7019 # endif 7020 # if !defined(PERL_NO_INLINE_FUNCTIONS) 7021 PERL_STATIC_INLINE const char * 7022 S_mortalized_pv_copy(pTHX_ const char * const pv) 7023 __attribute__warn_unused_result__; 7024 # define PERL_ARGS_ASSERT_MORTALIZED_PV_COPY 7025 7026 # endif 7027 # if defined(USE_LOCALE_COLLATE) 7028 STATIC void 7029 S_new_collate(pTHX_ const char *newcoll, bool force); 7030 # define PERL_ARGS_ASSERT_NEW_COLLATE \ 7031 assert(newcoll) 7032 7033 # if defined(DEBUGGING) 7034 STATIC void 7035 S_print_collxfrm_input_and_return(pTHX_ const char *s, const char *e, const char *xbuf, const STRLEN xlen, const bool is_utf8); 7036 # define PERL_ARGS_ASSERT_PRINT_COLLXFRM_INPUT_AND_RETURN \ 7037 assert(s); assert(e) 7038 7039 # endif 7040 # endif /* defined(USE_LOCALE_COLLATE) */ 7041 # if defined(USE_LOCALE_CTYPE) 7042 STATIC bool 7043 S_is_codeset_name_UTF8(const char *name); 7044 # define PERL_ARGS_ASSERT_IS_CODESET_NAME_UTF8 \ 7045 assert(name) 7046 7047 STATIC void 7048 S_new_ctype(pTHX_ const char *newctype, bool force); 7049 # define PERL_ARGS_ASSERT_NEW_CTYPE \ 7050 assert(newctype) 7051 7052 # endif /* defined(USE_LOCALE_CTYPE) */ 7053 # if defined(USE_LOCALE_NUMERIC) 7054 STATIC void 7055 S_new_numeric(pTHX_ const char *newnum, bool force); 7056 # define PERL_ARGS_ASSERT_NEW_NUMERIC \ 7057 assert(newnum) 7058 7059 # endif 7060 # if defined(USE_PERL_SWITCH_LOCALE_CONTEXT) || defined(DEBUGGING) 7061 STATIC const char * 7062 S_get_LC_ALL_display(pTHX); 7063 # define PERL_ARGS_ASSERT_GET_LC_ALL_DISPLAY 7064 7065 # endif 7066 # if defined(USE_POSIX_2008_LOCALE) 7067 STATIC const char * 7068 S_emulate_setlocale_i(pTHX_ const unsigned int index, const char *new_locale, const recalc_lc_all_t recalc_LC_ALL, const line_t line); 7069 # define PERL_ARGS_ASSERT_EMULATE_SETLOCALE_I 7070 7071 STATIC const char * 7072 S_my_querylocale_i(pTHX_ const unsigned int index); 7073 # define PERL_ARGS_ASSERT_MY_QUERYLOCALE_I 7074 7075 STATIC const char * 7076 S_setlocale_from_aggregate_LC_ALL(pTHX_ const char *locale, const line_t line); 7077 # define PERL_ARGS_ASSERT_SETLOCALE_FROM_AGGREGATE_LC_ALL \ 7078 assert(locale) 7079 7080 STATIC locale_t 7081 S_use_curlocale_scratch(pTHX); 7082 # define PERL_ARGS_ASSERT_USE_CURLOCALE_SCRATCH 7083 7084 # if defined(USE_QUERYLOCALE) 7085 STATIC const char * 7086 S_calculate_LC_ALL(pTHX_ const locale_t cur_obj); 7087 # define PERL_ARGS_ASSERT_CALCULATE_LC_ALL 7088 7089 # else 7090 STATIC const char * 7091 S_update_PL_curlocales_i(pTHX_ const unsigned int index, const char *new_locale, recalc_lc_all_t recalc_LC_ALL); 7092 # define PERL_ARGS_ASSERT_UPDATE_PL_CURLOCALES_I \ 7093 assert(new_locale) 7094 7095 # endif 7096 # elif defined(USE_LOCALE_THREADS) && \ 7097 !defined(USE_THREAD_SAFE_LOCALE) && \ 7098 !defined(USE_THREAD_SAFE_LOCALE_EMULATION) /* && 7099 !defined(USE_POSIX_2008_LOCALE) */ 7100 STATIC const char * 7101 S_less_dicey_setlocale_r(pTHX_ const int category, const char *locale); 7102 # define PERL_ARGS_ASSERT_LESS_DICEY_SETLOCALE_R 7103 7104 STATIC void 7105 S_less_dicey_void_setlocale_i(pTHX_ const unsigned cat_index, const char *locale, const line_t line); 7106 # define PERL_ARGS_ASSERT_LESS_DICEY_VOID_SETLOCALE_I \ 7107 assert(locale) 7108 7109 # if 0 7110 STATIC bool 7111 S_less_dicey_bool_setlocale_r(pTHX_ const int cat, const char *locale); 7112 # define PERL_ARGS_ASSERT_LESS_DICEY_BOOL_SETLOCALE_R \ 7113 assert(locale) 7114 7115 # endif 7116 # endif /* defined(USE_LOCALE_THREADS) && 7117 !defined(USE_POSIX_2008_LOCALE) && 7118 !defined(USE_THREAD_SAFE_LOCALE) && 7119 !defined(USE_THREAD_SAFE_LOCALE_EMULATION) */ 7120 # if !( defined(USE_POSIX_2008_LOCALE) && defined(USE_QUERYLOCALE) ) && \ 7121 ( !defined(LC_ALL) || defined(USE_POSIX_2008_LOCALE) || \ 7122 defined(WIN32) ) 7123 STATIC const char * 7124 S_calculate_LC_ALL(pTHX_ const char **individ_locales); 7125 # define PERL_ARGS_ASSERT_CALCULATE_LC_ALL \ 7126 assert(individ_locales) 7127 7128 # endif 7129 # if defined(WIN32) 7130 STATIC wchar_t * 7131 S_Win_byte_string_to_wstring(const UINT code_page, const char *byte_string); 7132 # define PERL_ARGS_ASSERT_WIN_BYTE_STRING_TO_WSTRING 7133 7134 STATIC char * 7135 S_Win_wstring_to_byte_string(const UINT code_page, const wchar_t *wstring); 7136 # define PERL_ARGS_ASSERT_WIN_WSTRING_TO_BYTE_STRING 7137 7138 STATIC const char * 7139 S_win32_setlocale(pTHX_ int category, const char *locale); 7140 # define PERL_ARGS_ASSERT_WIN32_SETLOCALE 7141 7142 STATIC const char * 7143 S_wrap_wsetlocale(pTHX_ const int category, const char *locale); 7144 # define PERL_ARGS_ASSERT_WRAP_WSETLOCALE 7145 7146 # endif /* defined(WIN32) */ 7147 # if defined(WIN32) || \ 7148 ( defined(USE_POSIX_2008_LOCALE) && !defined(USE_QUERYLOCALE) ) 7149 STATIC const char * 7150 S_find_locale_from_environment(pTHX_ const unsigned int index); 7151 # define PERL_ARGS_ASSERT_FIND_LOCALE_FROM_ENVIRONMENT 7152 7153 # endif 7154 # endif /* defined(USE_LOCALE) */ 7155 # if defined(USE_POSIX_2008_LOCALE) || defined(DEBUGGING) 7156 STATIC const char * 7157 S_get_displayable_string(pTHX_ const char * const s, const char * const e, const bool is_utf8); 7158 # define PERL_ARGS_ASSERT_GET_DISPLAYABLE_STRING \ 7159 assert(s); assert(e) 7160 7161 # endif 7162 #endif /* defined(PERL_IN_LOCALE_C) */ 7163 #if defined(PERL_IN_MALLOC_C) 7164 STATIC int 7165 S_adjust_size_and_find_bucket(size_t *nbytes_p); 7166 # define PERL_ARGS_ASSERT_ADJUST_SIZE_AND_FIND_BUCKET \ 7167 assert(nbytes_p) 7168 7169 #endif 7170 #if defined(PERL_IN_MG_C) 7171 STATIC void 7172 S_fixup_errno_string(pTHX_ SV *sv); 7173 # define PERL_ARGS_ASSERT_FIXUP_ERRNO_STRING \ 7174 assert(sv) 7175 7176 STATIC SV * 7177 S_magic_methcall1(pTHX_ SV *sv, const MAGIC *mg, SV *meth, U32 flags, int n, SV *val); 7178 # define PERL_ARGS_ASSERT_MAGIC_METHCALL1 \ 7179 assert(sv); assert(mg); assert(meth) 7180 7181 STATIC int 7182 S_magic_methpack(pTHX_ SV *sv, const MAGIC *mg, SV *meth); 7183 # define PERL_ARGS_ASSERT_MAGIC_METHPACK \ 7184 assert(sv); assert(mg); assert(meth) 7185 7186 STATIC void 7187 S_restore_magic(pTHX_ const void *p); 7188 # define PERL_ARGS_ASSERT_RESTORE_MAGIC 7189 7190 STATIC void 7191 S_save_magic_flags(pTHX_ SSize_t mgs_ix, SV *sv, U32 flags); 7192 # define PERL_ARGS_ASSERT_SAVE_MAGIC_FLAGS \ 7193 assert(sv) 7194 7195 STATIC void 7196 S_unwind_handler_stack(pTHX_ const void *p); 7197 # define PERL_ARGS_ASSERT_UNWIND_HANDLER_STACK 7198 7199 #endif /* defined(PERL_IN_MG_C) */ 7200 #if defined(PERL_IN_MG_C) || defined(PERL_IN_PP_C) 7201 PERL_CALLCONV bool 7202 Perl_translate_substr_offsets(STRLEN curlen, IV pos1_iv, bool pos1_is_uv, IV len_iv, bool len_is_uv, STRLEN *posp, STRLEN *lenp) 7203 __attribute__visibility__("hidden"); 7204 # define PERL_ARGS_ASSERT_TRANSLATE_SUBSTR_OFFSETS \ 7205 assert(posp); assert(lenp) 7206 7207 #endif 7208 #if defined(PERL_IN_MRO_C) 7209 STATIC void 7210 S_mro_clean_isarev(pTHX_ HV * const isa, const char * const name, const STRLEN len, HV * const exceptions, U32 hash, U32 flags); 7211 # define PERL_ARGS_ASSERT_MRO_CLEAN_ISAREV \ 7212 assert(isa); assert(name) 7213 7214 STATIC void 7215 S_mro_gather_and_rename(pTHX_ HV * const stashes, HV * const seen_stashes, HV *stash, HV *oldstash, SV *namesv); 7216 # define PERL_ARGS_ASSERT_MRO_GATHER_AND_RENAME \ 7217 assert(stashes); assert(seen_stashes); assert(namesv) 7218 7219 STATIC AV * 7220 S_mro_get_linear_isa_dfs(pTHX_ HV *stash, U32 level); 7221 # define PERL_ARGS_ASSERT_MRO_GET_LINEAR_ISA_DFS \ 7222 assert(stash) 7223 7224 #endif /* defined(PERL_IN_MRO_C) */ 7225 #if defined(PERL_IN_NUMERIC_C) 7226 STATIC void 7227 S_output_non_portable(pTHX_ const U8 shift); 7228 # define PERL_ARGS_ASSERT_OUTPUT_NON_PORTABLE 7229 7230 #endif 7231 #if defined(PERL_IN_OP_C) 7232 STATIC void 7233 S_apply_attrs(pTHX_ HV *stash, SV *target, OP *attrs); 7234 # define PERL_ARGS_ASSERT_APPLY_ATTRS \ 7235 assert(stash); assert(target) 7236 7237 STATIC void 7238 S_apply_attrs_my(pTHX_ HV *stash, OP *target, OP *attrs, OP **imopsp); 7239 # define PERL_ARGS_ASSERT_APPLY_ATTRS_MY \ 7240 assert(stash); assert(target); assert(imopsp) 7241 7242 STATIC I32 7243 S_assignment_type(pTHX_ const OP *o) 7244 __attribute__warn_unused_result__; 7245 # define PERL_ARGS_ASSERT_ASSIGNMENT_TYPE 7246 7247 STATIC void 7248 S_bad_type_gv(pTHX_ I32 n, GV *gv, const OP *kid, const char *t); 7249 # define PERL_ARGS_ASSERT_BAD_TYPE_GV \ 7250 assert(gv); assert(kid); assert(t) 7251 7252 STATIC void 7253 S_bad_type_pv(pTHX_ I32 n, const char *t, const OP *o, const OP *kid); 7254 # define PERL_ARGS_ASSERT_BAD_TYPE_PV \ 7255 assert(t); assert(o); assert(kid) 7256 7257 STATIC void 7258 S_clear_special_blocks(pTHX_ const char * const fullname, GV * const gv, CV * const cv); 7259 # define PERL_ARGS_ASSERT_CLEAR_SPECIAL_BLOCKS \ 7260 assert(fullname); assert(gv); assert(cv) 7261 7262 STATIC void 7263 S_cop_free(pTHX_ COP *cop); 7264 # define PERL_ARGS_ASSERT_COP_FREE \ 7265 assert(cop) 7266 7267 STATIC OP * 7268 S_dup_attrlist(pTHX_ OP *o); 7269 # define PERL_ARGS_ASSERT_DUP_ATTRLIST \ 7270 assert(o) 7271 7272 STATIC void 7273 S_find_and_forget_pmops(pTHX_ OP *o); 7274 # define PERL_ARGS_ASSERT_FIND_AND_FORGET_PMOPS \ 7275 assert(o) 7276 7277 STATIC OP * 7278 S_fold_constants(pTHX_ OP * const o); 7279 # define PERL_ARGS_ASSERT_FOLD_CONSTANTS \ 7280 assert(o) 7281 7282 STATIC OP * 7283 S_force_list(pTHX_ OP *arg, bool nullit); 7284 # define PERL_ARGS_ASSERT_FORCE_LIST 7285 7286 STATIC void 7287 S_forget_pmop(pTHX_ PMOP * const o); 7288 # define PERL_ARGS_ASSERT_FORGET_PMOP \ 7289 assert(o) 7290 7291 STATIC void 7292 S_gen_constant_list(pTHX_ OP *o); 7293 # define PERL_ARGS_ASSERT_GEN_CONSTANT_LIST 7294 7295 STATIC void 7296 S_inplace_aassign(pTHX_ OP *o); 7297 # define PERL_ARGS_ASSERT_INPLACE_AASSIGN \ 7298 assert(o) 7299 7300 STATIC bool 7301 S_is_handle_constructor(const OP *o, I32 numargs) 7302 __attribute__warn_unused_result__; 7303 # define PERL_ARGS_ASSERT_IS_HANDLE_CONSTRUCTOR \ 7304 assert(o) 7305 7306 STATIC OP * 7307 S_listkids(pTHX_ OP *o); 7308 # define PERL_ARGS_ASSERT_LISTKIDS 7309 7310 STATIC bool 7311 S_looks_like_bool(pTHX_ const OP *o); 7312 # define PERL_ARGS_ASSERT_LOOKS_LIKE_BOOL \ 7313 assert(o) 7314 7315 STATIC OP * 7316 S_modkids(pTHX_ OP *o, I32 type); 7317 # define PERL_ARGS_ASSERT_MODKIDS 7318 7319 STATIC void 7320 S_move_proto_attr(pTHX_ OP **proto, OP **attrs, const GV *name, bool curstash); 7321 # define PERL_ARGS_ASSERT_MOVE_PROTO_ATTR \ 7322 assert(proto); assert(attrs); assert(name) 7323 7324 STATIC OP * 7325 S_my_kid(pTHX_ OP *o, OP *attrs, OP **imopsp); 7326 # define PERL_ARGS_ASSERT_MY_KID \ 7327 assert(imopsp) 7328 7329 STATIC OP * 7330 S_newGIVWHENOP(pTHX_ OP *cond, OP *block, I32 enter_opcode, I32 leave_opcode, PADOFFSET entertarg); 7331 # define PERL_ARGS_ASSERT_NEWGIVWHENOP \ 7332 assert(block) 7333 7334 STATIC OP * 7335 S_new_logop(pTHX_ I32 type, I32 flags, OP **firstp, OP **otherp) 7336 __attribute__warn_unused_result__; 7337 # define PERL_ARGS_ASSERT_NEW_LOGOP \ 7338 assert(firstp); assert(otherp) 7339 7340 STATIC OP * 7341 S_no_fh_allowed(pTHX_ OP *o) 7342 __attribute__warn_unused_result__; 7343 # define PERL_ARGS_ASSERT_NO_FH_ALLOWED \ 7344 assert(o) 7345 7346 STATIC OP * 7347 S_pmtrans(pTHX_ OP *o, OP *expr, OP *repl); 7348 # define PERL_ARGS_ASSERT_PMTRANS \ 7349 assert(o); assert(expr); assert(repl) 7350 7351 STATIC bool 7352 S_process_special_blocks(pTHX_ I32 floor, const char * const fullname, GV * const gv, CV * const cv); 7353 # define PERL_ARGS_ASSERT_PROCESS_SPECIAL_BLOCKS \ 7354 assert(fullname); assert(gv); assert(cv) 7355 7356 STATIC OP * 7357 S_ref_array_or_hash(pTHX_ OP *cond); 7358 # define PERL_ARGS_ASSERT_REF_ARRAY_OR_HASH 7359 7360 STATIC OP * 7361 S_refkids(pTHX_ OP *o, I32 type); 7362 # define PERL_ARGS_ASSERT_REFKIDS 7363 7364 STATIC bool 7365 S_scalar_mod_type(const OP *o, I32 type) 7366 __attribute__warn_unused_result__; 7367 # define PERL_ARGS_ASSERT_SCALAR_MOD_TYPE 7368 7369 STATIC OP * 7370 S_scalarboolean(pTHX_ OP *o); 7371 # define PERL_ARGS_ASSERT_SCALARBOOLEAN \ 7372 assert(o) 7373 7374 STATIC OP * 7375 S_scalarkids(pTHX_ OP *o); 7376 # define PERL_ARGS_ASSERT_SCALARKIDS 7377 7378 STATIC OP * 7379 S_search_const(pTHX_ OP *o) 7380 __attribute__warn_unused_result__; 7381 # define PERL_ARGS_ASSERT_SEARCH_CONST \ 7382 assert(o) 7383 7384 STATIC void 7385 S_simplify_sort(pTHX_ OP *o); 7386 # define PERL_ARGS_ASSERT_SIMPLIFY_SORT \ 7387 assert(o) 7388 7389 STATIC OP * 7390 S_too_few_arguments_pv(pTHX_ OP *o, const char *name, U32 flags) 7391 __attribute__warn_unused_result__; 7392 # define PERL_ARGS_ASSERT_TOO_FEW_ARGUMENTS_PV \ 7393 assert(o); assert(name) 7394 7395 STATIC OP * 7396 S_too_many_arguments_pv(pTHX_ OP *o, const char *name, U32 flags); 7397 # define PERL_ARGS_ASSERT_TOO_MANY_ARGUMENTS_PV \ 7398 assert(o); assert(name) 7399 7400 STATIC OP * 7401 S_voidnonfinal(pTHX_ OP *o); 7402 # define PERL_ARGS_ASSERT_VOIDNONFINAL 7403 7404 # if !defined(PERL_NO_INLINE_FUNCTIONS) 7405 PERL_STATIC_INLINE OP * 7406 S_newMETHOP_internal(pTHX_ I32 type, I32 flags, OP *dynamic_meth, SV * const_meth); 7407 # define PERL_ARGS_ASSERT_NEWMETHOP_INTERNAL 7408 7409 PERL_STATIC_INLINE OP * 7410 S_op_integerize(pTHX_ OP *o); 7411 # define PERL_ARGS_ASSERT_OP_INTEGERIZE \ 7412 assert(o) 7413 7414 PERL_STATIC_INLINE OP * 7415 S_op_std_init(pTHX_ OP *o); 7416 # define PERL_ARGS_ASSERT_OP_STD_INIT \ 7417 assert(o) 7418 7419 # endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */ 7420 #endif /* defined(PERL_IN_OP_C) */ 7421 #if defined(PERL_IN_OP_C) || defined(PERL_IN_PEEP_C) 7422 PERL_CALLCONV void 7423 Perl_check_hash_fields_and_hekify(pTHX_ UNOP *rop, SVOP *key_op, int real) 7424 __attribute__visibility__("hidden"); 7425 # define PERL_ARGS_ASSERT_CHECK_HASH_FIELDS_AND_HEKIFY 7426 7427 PERL_CALLCONV void 7428 Perl_no_bareword_allowed(pTHX_ OP *o) 7429 __attribute__visibility__("hidden"); 7430 # define PERL_ARGS_ASSERT_NO_BAREWORD_ALLOWED \ 7431 assert(o) 7432 7433 PERL_CALLCONV void 7434 Perl_op_prune_chain_head(OP **op_p) 7435 __attribute__visibility__("hidden"); 7436 # define PERL_ARGS_ASSERT_OP_PRUNE_CHAIN_HEAD \ 7437 assert(op_p) 7438 7439 PERL_CALLCONV SV * 7440 Perl_op_varname(pTHX_ const OP *o) 7441 __attribute__visibility__("hidden"); 7442 # define PERL_ARGS_ASSERT_OP_VARNAME \ 7443 assert(o) 7444 7445 PERL_CALLCONV void 7446 Perl_warn_elem_scalar_context(pTHX_ const OP *o, SV *name, bool is_hash, bool is_slice) 7447 __attribute__visibility__("hidden"); 7448 # define PERL_ARGS_ASSERT_WARN_ELEM_SCALAR_CONTEXT \ 7449 assert(o); assert(name) 7450 7451 #endif /* defined(PERL_IN_OP_C) || defined(PERL_IN_PEEP_C) */ 7452 #if defined(PERL_IN_OP_C) || defined(PERL_IN_REGCOMP_ANY) 7453 7454 #endif 7455 #if defined(PERL_IN_OP_C) || defined(PERL_IN_SV_C) 7456 PERL_CALLCONV void 7457 Perl_report_redefined_cv(pTHX_ const SV *name, const CV *old_cv, SV * const *new_const_svp) 7458 __attribute__visibility__("hidden"); 7459 # define PERL_ARGS_ASSERT_REPORT_REDEFINED_CV \ 7460 assert(name); assert(old_cv) 7461 7462 PERL_CALLCONV SV * 7463 Perl_varname(pTHX_ const GV * const gv, const char gvtype, PADOFFSET targ, const SV * const keyname, SSize_t aindex, int subscript_type) 7464 __attribute__warn_unused_result__ 7465 __attribute__visibility__("hidden"); 7466 # define PERL_ARGS_ASSERT_VARNAME 7467 7468 #endif /* defined(PERL_IN_OP_C) || defined(PERL_IN_SV_C) */ 7469 #if defined(PERL_IN_PAD_C) 7470 STATIC PADOFFSET 7471 S_pad_alloc_name(pTHX_ PADNAME *name, U32 flags, HV *typestash, HV *ourstash); 7472 # define PERL_ARGS_ASSERT_PAD_ALLOC_NAME \ 7473 assert(name) 7474 7475 STATIC void 7476 S_pad_check_dup(pTHX_ PADNAME *name, U32 flags, const HV *ourstash); 7477 # define PERL_ARGS_ASSERT_PAD_CHECK_DUP \ 7478 assert(name) 7479 7480 STATIC PADOFFSET 7481 S_pad_findlex(pTHX_ const char *namepv, STRLEN namelen, U32 flags, const CV *cv, U32 seq, int warn, SV **out_capture, PADNAME **out_name, int *out_flags); 7482 # define PERL_ARGS_ASSERT_PAD_FINDLEX \ 7483 assert(namepv); assert(cv); assert(out_name); assert(out_flags) 7484 7485 STATIC void 7486 S_pad_reset(pTHX); 7487 # define PERL_ARGS_ASSERT_PAD_RESET 7488 7489 # if defined(DEBUGGING) 7490 STATIC void 7491 S_cv_dump(pTHX_ const CV *cv, const char *title); 7492 # define PERL_ARGS_ASSERT_CV_DUMP \ 7493 assert(cv); assert(title) 7494 7495 # endif 7496 #endif /* defined(PERL_IN_PAD_C) */ 7497 #if defined(PERL_IN_PEEP_C) 7498 STATIC void 7499 S_finalize_op(pTHX_ OP *o); 7500 # define PERL_ARGS_ASSERT_FINALIZE_OP \ 7501 assert(o) 7502 7503 STATIC void 7504 S_optimize_op(pTHX_ OP *o); 7505 # define PERL_ARGS_ASSERT_OPTIMIZE_OP \ 7506 assert(o) 7507 7508 STATIC OP * 7509 S_traverse_op_tree(pTHX_ OP *top, OP *o); 7510 # define PERL_ARGS_ASSERT_TRAVERSE_OP_TREE \ 7511 assert(top); assert(o) 7512 7513 #endif /* defined(PERL_IN_PEEP_C) */ 7514 #if defined(PERL_IN_PERL_C) 7515 STATIC void 7516 S_find_beginning(pTHX_ SV *linestr_sv, PerlIO *rsfp); 7517 # define PERL_ARGS_ASSERT_FIND_BEGINNING \ 7518 assert(linestr_sv); assert(rsfp) 7519 7520 STATIC void 7521 S_forbid_setid(pTHX_ const char flag, const bool suidscript); 7522 # define PERL_ARGS_ASSERT_FORBID_SETID 7523 7524 STATIC void 7525 S_incpush(pTHX_ const char * const dir, STRLEN len, U32 flags); 7526 # define PERL_ARGS_ASSERT_INCPUSH \ 7527 assert(dir) 7528 7529 STATIC void 7530 S_incpush_use_sep(pTHX_ const char *p, STRLEN len, U32 flags); 7531 # define PERL_ARGS_ASSERT_INCPUSH_USE_SEP \ 7532 assert(p) 7533 7534 STATIC void 7535 S_init_ids(pTHX); 7536 # define PERL_ARGS_ASSERT_INIT_IDS 7537 7538 STATIC void 7539 S_init_interp(pTHX); 7540 # define PERL_ARGS_ASSERT_INIT_INTERP 7541 7542 STATIC void 7543 S_init_main_stash(pTHX); 7544 # define PERL_ARGS_ASSERT_INIT_MAIN_STASH 7545 7546 STATIC void 7547 S_init_perllib(pTHX); 7548 # define PERL_ARGS_ASSERT_INIT_PERLLIB 7549 7550 STATIC void 7551 S_init_postdump_symbols(pTHX_ int argc, char **argv, char **env); 7552 # define PERL_ARGS_ASSERT_INIT_POSTDUMP_SYMBOLS \ 7553 assert(argv) 7554 7555 STATIC void 7556 S_init_predump_symbols(pTHX); 7557 # define PERL_ARGS_ASSERT_INIT_PREDUMP_SYMBOLS 7558 7559 STATIC SV * 7560 S_mayberelocate(pTHX_ const char * const dir, STRLEN len, U32 flags); 7561 # define PERL_ARGS_ASSERT_MAYBERELOCATE \ 7562 assert(dir) 7563 7564 PERL_STATIC_NO_RET void 7565 S_minus_v(pTHX) 7566 __attribute__noreturn__; 7567 # define PERL_ARGS_ASSERT_MINUS_V 7568 7569 PERL_STATIC_NO_RET void 7570 S_my_exit_jump(pTHX) 7571 __attribute__noreturn__; 7572 # define PERL_ARGS_ASSERT_MY_EXIT_JUMP 7573 7574 STATIC void 7575 S_nuke_stacks(pTHX); 7576 # define PERL_ARGS_ASSERT_NUKE_STACKS 7577 7578 STATIC PerlIO * 7579 S_open_script(pTHX_ const char *scriptname, bool dosearch, bool *suidscript); 7580 # define PERL_ARGS_ASSERT_OPEN_SCRIPT \ 7581 assert(scriptname); assert(suidscript) 7582 7583 STATIC void * 7584 S_parse_body(pTHX_ char **env, XSINIT_t xsinit); 7585 # define PERL_ARGS_ASSERT_PARSE_BODY 7586 7587 PERL_STATIC_NO_RET void 7588 S_run_body(pTHX_ I32 oldscope) 7589 __attribute__noreturn__; 7590 # define PERL_ARGS_ASSERT_RUN_BODY 7591 7592 PERL_STATIC_NO_RET void 7593 S_usage(pTHX) 7594 __attribute__noreturn__; 7595 # define PERL_ARGS_ASSERT_USAGE 7596 7597 # if !defined(PERL_IS_MINIPERL) 7598 STATIC SV * 7599 S_incpush_if_exists(pTHX_ AV * const av, SV *dir, SV * const stem); 7600 # define PERL_ARGS_ASSERT_INCPUSH_IF_EXISTS \ 7601 assert(av); assert(dir); assert(stem) 7602 7603 # endif 7604 # if !defined(SETUID_SCRIPTS_ARE_SECURE_NOW) 7605 STATIC void 7606 S_validate_suid(pTHX_ PerlIO *rsfp); 7607 # define PERL_ARGS_ASSERT_VALIDATE_SUID \ 7608 assert(rsfp) 7609 7610 # endif 7611 #endif /* defined(PERL_IN_PERL_C) */ 7612 #if defined(PERL_IN_PERL_C) || defined(PERL_IN_REGCOMP_ANY) || \ 7613 defined(PERL_IN_UTF8_C) 7614 PERL_CALLCONV bool 7615 Perl__invlistEQ(pTHX_ SV * const a, SV * const b, const bool complement_b); 7616 # define PERL_ARGS_ASSERT__INVLISTEQ \ 7617 assert(a); assert(b) 7618 7619 PERL_CALLCONV SV * 7620 Perl__new_invlist_C_array(pTHX_ const UV * const list) 7621 __attribute__warn_unused_result__; 7622 # define PERL_ARGS_ASSERT__NEW_INVLIST_C_ARRAY \ 7623 assert(list) 7624 7625 #endif /* defined(PERL_IN_PERL_C) || defined(PERL_IN_REGCOMP_ANY) || 7626 defined(PERL_IN_UTF8_C) */ 7627 #if defined(PERL_IN_PP_C) 7628 STATIC size_t 7629 S_do_chomp(pTHX_ SV *retval, SV *sv, bool chomping); 7630 # define PERL_ARGS_ASSERT_DO_CHOMP \ 7631 assert(retval); assert(sv) 7632 7633 STATIC OP * 7634 S_do_delete_local(pTHX); 7635 # define PERL_ARGS_ASSERT_DO_DELETE_LOCAL 7636 7637 STATIC SV * 7638 S_refto(pTHX_ SV *sv) 7639 __attribute__warn_unused_result__; 7640 # define PERL_ARGS_ASSERT_REFTO \ 7641 assert(sv) 7642 7643 #endif /* defined(PERL_IN_PP_C) */ 7644 #if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C) 7645 7646 PERL_CALLCONV GV * 7647 Perl_softref2xv(pTHX_ SV * const sv, const char * const what, const svtype type, SV ***spp) 7648 __attribute__warn_unused_result__; 7649 # define PERL_ARGS_ASSERT_SOFTREF2XV \ 7650 assert(sv); assert(what); assert(spp) 7651 7652 #endif 7653 #if defined(PERL_IN_PP_C) || defined(PERL_IN_UTF8_C) 7654 PERL_CALLCONV UV 7655 Perl__to_upper_title_latin1(pTHX_ const U8 c, U8 *p, STRLEN *lenp, const char S_or_s) 7656 __attribute__visibility__("hidden"); 7657 # define PERL_ARGS_ASSERT__TO_UPPER_TITLE_LATIN1 \ 7658 assert(p); assert(lenp) 7659 7660 #endif 7661 #if defined(PERL_IN_PP_CTL_C) 7662 STATIC PerlIO * 7663 S_check_type_and_open(pTHX_ SV *name) 7664 __attribute__warn_unused_result__; 7665 # define PERL_ARGS_ASSERT_CHECK_TYPE_AND_OPEN \ 7666 assert(name) 7667 7668 STATIC void 7669 S_destroy_matcher(pTHX_ PMOP *matcher); 7670 # define PERL_ARGS_ASSERT_DESTROY_MATCHER \ 7671 assert(matcher) 7672 7673 STATIC OP * 7674 S_do_smartmatch(pTHX_ HV *seen_this, HV *seen_other, const bool copied); 7675 # define PERL_ARGS_ASSERT_DO_SMARTMATCH 7676 7677 STATIC OP * 7678 S_docatch(pTHX_ Perl_ppaddr_t firstpp) 7679 __attribute__warn_unused_result__; 7680 # define PERL_ARGS_ASSERT_DOCATCH 7681 7682 STATIC bool 7683 S_doeval_compile(pTHX_ U8 gimme, CV *outside, U32 seq, HV *hh); 7684 # define PERL_ARGS_ASSERT_DOEVAL_COMPILE 7685 7686 STATIC OP * 7687 S_dofindlabel(pTHX_ OP *o, const char *label, STRLEN len, U32 flags, OP **opstack, OP **oplimit) 7688 __attribute__warn_unused_result__; 7689 # define PERL_ARGS_ASSERT_DOFINDLABEL \ 7690 assert(o); assert(label); assert(opstack); assert(oplimit) 7691 7692 STATIC MAGIC * 7693 S_doparseform(pTHX_ SV *sv); 7694 # define PERL_ARGS_ASSERT_DOPARSEFORM \ 7695 assert(sv) 7696 7697 STATIC I32 7698 S_dopoptoeval(pTHX_ I32 startingblock) 7699 __attribute__warn_unused_result__; 7700 # define PERL_ARGS_ASSERT_DOPOPTOEVAL 7701 7702 STATIC I32 7703 S_dopoptogivenfor(pTHX_ I32 startingblock) 7704 __attribute__warn_unused_result__; 7705 # define PERL_ARGS_ASSERT_DOPOPTOGIVENFOR 7706 7707 STATIC I32 7708 S_dopoptolabel(pTHX_ const char *label, STRLEN len, U32 flags) 7709 __attribute__warn_unused_result__; 7710 # define PERL_ARGS_ASSERT_DOPOPTOLABEL \ 7711 assert(label) 7712 7713 STATIC I32 7714 S_dopoptoloop(pTHX_ I32 startingblock) 7715 __attribute__warn_unused_result__; 7716 # define PERL_ARGS_ASSERT_DOPOPTOLOOP 7717 7718 STATIC I32 7719 S_dopoptosub_at(pTHX_ const PERL_CONTEXT *cxstk, I32 startingblock) 7720 __attribute__warn_unused_result__; 7721 # define PERL_ARGS_ASSERT_DOPOPTOSUB_AT \ 7722 assert(cxstk) 7723 7724 STATIC I32 7725 S_dopoptowhen(pTHX_ I32 startingblock) 7726 __attribute__warn_unused_result__; 7727 # define PERL_ARGS_ASSERT_DOPOPTOWHEN 7728 7729 STATIC PMOP * 7730 S_make_matcher(pTHX_ REGEXP *re) 7731 __attribute__warn_unused_result__; 7732 # define PERL_ARGS_ASSERT_MAKE_MATCHER \ 7733 assert(re) 7734 7735 STATIC bool 7736 S_matcher_matches_sv(pTHX_ PMOP *matcher, SV *sv) 7737 __attribute__warn_unused_result__; 7738 # define PERL_ARGS_ASSERT_MATCHER_MATCHES_SV \ 7739 assert(matcher); assert(sv) 7740 7741 STATIC bool 7742 S_num_overflow(NV value, I32 fldsize, I32 frcsize) 7743 __attribute__warn_unused_result__; 7744 # define PERL_ARGS_ASSERT_NUM_OVERFLOW 7745 7746 STATIC I32 7747 S_run_user_filter(pTHX_ int idx, SV *buf_sv, int maxlen) 7748 __attribute__warn_unused_result__; 7749 # define PERL_ARGS_ASSERT_RUN_USER_FILTER \ 7750 assert(buf_sv) 7751 7752 STATIC void 7753 S_rxres_free(pTHX_ void **rsp); 7754 # define PERL_ARGS_ASSERT_RXRES_FREE \ 7755 assert(rsp) 7756 7757 STATIC void 7758 S_rxres_restore(pTHX_ void **rsp, REGEXP *rx); 7759 # define PERL_ARGS_ASSERT_RXRES_RESTORE \ 7760 assert(rsp); assert(rx) 7761 7762 STATIC void 7763 S_save_lines(pTHX_ AV *array, SV *sv); 7764 # define PERL_ARGS_ASSERT_SAVE_LINES \ 7765 assert(sv) 7766 7767 # if !defined(PERL_DISABLE_PMC) 7768 STATIC PerlIO * 7769 S_doopen_pm(pTHX_ SV *name) 7770 __attribute__warn_unused_result__; 7771 # define PERL_ARGS_ASSERT_DOOPEN_PM \ 7772 assert(name) 7773 7774 # endif 7775 # if !defined(PERL_NO_INLINE_FUNCTIONS) 7776 PERL_STATIC_INLINE bool 7777 S_path_is_searchable(const char *name) 7778 __attribute__warn_unused_result__; 7779 # define PERL_ARGS_ASSERT_PATH_IS_SEARCHABLE \ 7780 assert(name) 7781 7782 # endif 7783 #endif /* defined(PERL_IN_PP_CTL_C) */ 7784 #if defined(PERL_IN_PP_CTL_C) || defined(PERL_IN_UTIL_C) 7785 PERL_CALLCONV bool 7786 Perl_invoke_exception_hook(pTHX_ SV *ex, bool warn) 7787 __attribute__visibility__("hidden"); 7788 # define PERL_ARGS_ASSERT_INVOKE_EXCEPTION_HOOK 7789 7790 #endif 7791 #if defined(PERL_IN_PP_HOT_C) 7792 STATIC void 7793 S_do_oddball(pTHX_ SV **oddkey, SV **firstkey); 7794 # define PERL_ARGS_ASSERT_DO_ODDBALL \ 7795 assert(oddkey); assert(firstkey) 7796 7797 # if !defined(PERL_NO_INLINE_FUNCTIONS) 7798 PERL_STATIC_INLINE HV * 7799 S_opmethod_stash(pTHX_ SV *meth); 7800 # define PERL_ARGS_ASSERT_OPMETHOD_STASH \ 7801 assert(meth) 7802 7803 PERL_STATIC_FORCE_INLINE bool 7804 S_should_we_output_Debug_r(pTHX_ regexp *prog) 7805 __attribute__warn_unused_result__ 7806 __attribute__always_inline__; 7807 # define PERL_ARGS_ASSERT_SHOULD_WE_OUTPUT_DEBUG_R \ 7808 assert(prog) 7809 7810 # endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */ 7811 #endif /* defined(PERL_IN_PP_HOT_C) */ 7812 #if defined(PERL_IN_PP_PACK_C) 7813 STATIC int 7814 S_div128(pTHX_ SV *pnum, bool *done); 7815 # define PERL_ARGS_ASSERT_DIV128 \ 7816 assert(pnum); assert(done) 7817 7818 STATIC char 7819 S_first_symbol(const char *pat, const char *patend); 7820 # define PERL_ARGS_ASSERT_FIRST_SYMBOL \ 7821 assert(pat); assert(patend) 7822 7823 STATIC const char * 7824 S_get_num(pTHX_ const char *patptr, SSize_t *lenptr) 7825 __attribute__warn_unused_result__; 7826 # define PERL_ARGS_ASSERT_GET_NUM \ 7827 assert(patptr); assert(lenptr) 7828 7829 STATIC const char * 7830 S_group_end(pTHX_ const char *patptr, const char *patend, char ender); 7831 # define PERL_ARGS_ASSERT_GROUP_END \ 7832 assert(patptr); assert(patend) 7833 7834 STATIC SV * 7835 S_is_an_int(pTHX_ const char *s, STRLEN l) 7836 __attribute__warn_unused_result__; 7837 # define PERL_ARGS_ASSERT_IS_AN_INT \ 7838 assert(s) 7839 7840 STATIC SSize_t 7841 S_measure_struct(pTHX_ struct tempsym *symptr); 7842 # define PERL_ARGS_ASSERT_MEASURE_STRUCT \ 7843 assert(symptr) 7844 7845 STATIC SV * 7846 S_mul128(pTHX_ SV *sv, U8 m); 7847 # define PERL_ARGS_ASSERT_MUL128 \ 7848 assert(sv) 7849 7850 STATIC char * 7851 S_my_bytes_to_utf8(const U8 *start, STRLEN len, char *dest, const bool needs_swap) 7852 __attribute__warn_unused_result__; 7853 # define PERL_ARGS_ASSERT_MY_BYTES_TO_UTF8 \ 7854 assert(start); assert(dest) 7855 7856 STATIC bool 7857 S_need_utf8(const char *pat, const char *patend); 7858 # define PERL_ARGS_ASSERT_NEED_UTF8 \ 7859 assert(pat); assert(patend) 7860 7861 STATIC bool 7862 S_next_symbol(pTHX_ struct tempsym *symptr); 7863 # define PERL_ARGS_ASSERT_NEXT_SYMBOL \ 7864 assert(symptr) 7865 7866 STATIC SV ** 7867 S_pack_rec(pTHX_ SV *cat, struct tempsym *symptr, SV **beglist, SV **endlist); 7868 # define PERL_ARGS_ASSERT_PACK_REC \ 7869 assert(cat); assert(symptr); assert(beglist); assert(endlist) 7870 7871 STATIC char * 7872 S_sv_exp_grow(pTHX_ SV *sv, STRLEN needed) 7873 __attribute__warn_unused_result__; 7874 # define PERL_ARGS_ASSERT_SV_EXP_GROW \ 7875 assert(sv) 7876 7877 STATIC SSize_t 7878 S_unpack_rec(pTHX_ struct tempsym *symptr, const char *s, const char *strbeg, const char *strend, const char **new_s); 7879 # define PERL_ARGS_ASSERT_UNPACK_REC \ 7880 assert(symptr); assert(s); assert(strbeg); assert(strend) 7881 7882 #endif /* defined(PERL_IN_PP_PACK_C) */ 7883 #if defined(PERL_IN_PP_SORT_C) 7884 STATIC I32 7885 S_sortcv(pTHX_ SV * const a, SV * const b); 7886 # define PERL_ARGS_ASSERT_SORTCV \ 7887 assert(a); assert(b) 7888 7889 STATIC I32 7890 S_sortcv_stacked(pTHX_ SV * const a, SV * const b); 7891 # define PERL_ARGS_ASSERT_SORTCV_STACKED \ 7892 assert(a); assert(b) 7893 7894 STATIC I32 7895 S_sortcv_xsub(pTHX_ SV * const a, SV * const b); 7896 # define PERL_ARGS_ASSERT_SORTCV_XSUB \ 7897 assert(a); assert(b) 7898 7899 # if !defined(PERL_NO_INLINE_FUNCTIONS) 7900 PERL_STATIC_INLINE I32 7901 S_amagic_cmp(pTHX_ SV * const str1, SV * const str2); 7902 # define PERL_ARGS_ASSERT_AMAGIC_CMP \ 7903 assert(str1); assert(str2) 7904 7905 PERL_STATIC_INLINE I32 7906 S_amagic_cmp_desc(pTHX_ SV * const str1, SV * const str2); 7907 # define PERL_ARGS_ASSERT_AMAGIC_CMP_DESC \ 7908 assert(str1); assert(str2) 7909 7910 PERL_STATIC_INLINE I32 7911 S_amagic_i_ncmp(pTHX_ SV * const a, SV * const b); 7912 # define PERL_ARGS_ASSERT_AMAGIC_I_NCMP \ 7913 assert(a); assert(b) 7914 7915 PERL_STATIC_INLINE I32 7916 S_amagic_i_ncmp_desc(pTHX_ SV * const a, SV * const b); 7917 # define PERL_ARGS_ASSERT_AMAGIC_I_NCMP_DESC \ 7918 assert(a); assert(b) 7919 7920 PERL_STATIC_INLINE I32 7921 S_amagic_ncmp(pTHX_ SV * const a, SV * const b); 7922 # define PERL_ARGS_ASSERT_AMAGIC_NCMP \ 7923 assert(a); assert(b) 7924 7925 PERL_STATIC_INLINE I32 7926 S_amagic_ncmp_desc(pTHX_ SV * const a, SV * const b); 7927 # define PERL_ARGS_ASSERT_AMAGIC_NCMP_DESC \ 7928 assert(a); assert(b) 7929 7930 PERL_STATIC_INLINE I32 7931 S_cmp_desc(pTHX_ SV * const str1, SV * const str2); 7932 # define PERL_ARGS_ASSERT_CMP_DESC \ 7933 assert(str1); assert(str2) 7934 7935 PERL_STATIC_FORCE_INLINE void 7936 S_sortsv_flags_impl(pTHX_ SV **array, size_t num_elts, SVCOMPARE_t cmp, U32 flags) 7937 __attribute__always_inline__; 7938 # define PERL_ARGS_ASSERT_SORTSV_FLAGS_IMPL \ 7939 assert(cmp) 7940 7941 PERL_STATIC_INLINE I32 7942 S_sv_i_ncmp(pTHX_ SV * const a, SV * const b); 7943 # define PERL_ARGS_ASSERT_SV_I_NCMP \ 7944 assert(a); assert(b) 7945 7946 PERL_STATIC_INLINE I32 7947 S_sv_i_ncmp_desc(pTHX_ SV * const a, SV * const b); 7948 # define PERL_ARGS_ASSERT_SV_I_NCMP_DESC \ 7949 assert(a); assert(b) 7950 7951 PERL_STATIC_INLINE I32 7952 S_sv_ncmp(pTHX_ SV * const a, SV * const b); 7953 # define PERL_ARGS_ASSERT_SV_NCMP \ 7954 assert(a); assert(b) 7955 7956 PERL_STATIC_INLINE I32 7957 S_sv_ncmp_desc(pTHX_ SV * const a, SV * const b); 7958 # define PERL_ARGS_ASSERT_SV_NCMP_DESC \ 7959 assert(a); assert(b) 7960 7961 # if defined(USE_LOCALE_COLLATE) 7962 PERL_STATIC_INLINE I32 7963 S_amagic_cmp_locale(pTHX_ SV * const str1, SV * const str2); 7964 # define PERL_ARGS_ASSERT_AMAGIC_CMP_LOCALE \ 7965 assert(str1); assert(str2) 7966 7967 PERL_STATIC_INLINE I32 7968 S_amagic_cmp_locale_desc(pTHX_ SV * const str1, SV * const str2); 7969 # define PERL_ARGS_ASSERT_AMAGIC_CMP_LOCALE_DESC \ 7970 assert(str1); assert(str2) 7971 7972 PERL_STATIC_INLINE I32 7973 S_cmp_locale_desc(pTHX_ SV * const str1, SV * const str2); 7974 # define PERL_ARGS_ASSERT_CMP_LOCALE_DESC \ 7975 assert(str1); assert(str2) 7976 7977 # endif /* defined(USE_LOCALE_COLLATE) */ 7978 # endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */ 7979 #endif /* defined(PERL_IN_PP_SORT_C) */ 7980 #if defined(PERL_IN_PP_SYS_C) 7981 STATIC OP * 7982 S_doform(pTHX_ CV *cv, GV *gv, OP *retop); 7983 # define PERL_ARGS_ASSERT_DOFORM \ 7984 assert(cv); assert(gv) 7985 7986 STATIC SV * 7987 S_space_join_names_mortal(pTHX_ char * const *array); 7988 # define PERL_ARGS_ASSERT_SPACE_JOIN_NAMES_MORTAL 7989 7990 # if !defined(HAS_MKDIR) || !defined(HAS_RMDIR) 7991 STATIC int 7992 S_dooneliner(pTHX_ const char *cmd, const char *filename) 7993 __attribute__warn_unused_result__; 7994 # define PERL_ARGS_ASSERT_DOONELINER \ 7995 assert(cmd); assert(filename) 7996 7997 # endif 7998 #endif /* defined(PERL_IN_PP_SYS_C) */ 7999 #if defined(PERL_IN_REGCOMP_ANY) 8000 PERL_CALLCONV void 8001 Perl_add_above_Latin1_folds(pTHX_ RExC_state_t *pRExC_state, const U8 cp, SV **invlist) 8002 __attribute__visibility__("hidden"); 8003 # define PERL_ARGS_ASSERT_ADD_ABOVE_LATIN1_FOLDS \ 8004 assert(pRExC_state); assert(invlist) 8005 8006 PERL_CALLCONV regnode * 8007 Perl_construct_ahocorasick_from_trie(pTHX_ RExC_state_t *pRExC_state, regnode *source, U32 depth) 8008 __attribute__visibility__("hidden"); 8009 # define PERL_ARGS_ASSERT_CONSTRUCT_AHOCORASICK_FROM_TRIE \ 8010 assert(pRExC_state); assert(source) 8011 8012 PERL_CALLCONV SV * 8013 Perl_get_ANYOFHbbm_contents(pTHX_ const regnode *n) 8014 __attribute__warn_unused_result__ 8015 __attribute__visibility__("hidden"); 8016 # define PERL_ARGS_ASSERT_GET_ANYOFHBBM_CONTENTS \ 8017 assert(n) 8018 8019 PERL_CALLCONV SV * 8020 Perl_get_ANYOFM_contents(pTHX_ const regnode *n) 8021 __attribute__warn_unused_result__ 8022 __attribute__visibility__("hidden"); 8023 # define PERL_ARGS_ASSERT_GET_ANYOFM_CONTENTS \ 8024 assert(n) 8025 8026 PERL_CALLCONV bool 8027 Perl_is_ssc_worth_it(const RExC_state_t *pRExC_state, const regnode_ssc *ssc) 8028 __attribute__visibility__("hidden"); 8029 # define PERL_ARGS_ASSERT_IS_SSC_WORTH_IT \ 8030 assert(pRExC_state); assert(ssc) 8031 8032 PERL_CALLCONV U32 8033 Perl_join_exact(pTHX_ RExC_state_t *pRExC_state, regnode *scan, UV *min_subtract, bool *unfolded_multi_char, U32 flags, regnode *val, U32 depth) 8034 __attribute__visibility__("hidden"); 8035 # define PERL_ARGS_ASSERT_JOIN_EXACT \ 8036 assert(pRExC_state); assert(scan); assert(min_subtract); assert(unfolded_multi_char) 8037 8038 PERL_CALLCONV I32 8039 Perl_make_trie(pTHX_ RExC_state_t *pRExC_state, regnode *startbranch, regnode *first, regnode *last, regnode *tail, U32 word_count, U32 flags, U32 depth) 8040 __attribute__visibility__("hidden"); 8041 # define PERL_ARGS_ASSERT_MAKE_TRIE \ 8042 assert(pRExC_state); assert(startbranch); assert(first); assert(last); \ 8043 assert(tail) 8044 8045 PERL_CALLCONV void 8046 Perl_populate_anyof_bitmap_from_invlist(pTHX_ regnode *node, SV **invlist_ptr) 8047 __attribute__visibility__("hidden"); 8048 # define PERL_ARGS_ASSERT_POPULATE_ANYOF_BITMAP_FROM_INVLIST \ 8049 assert(node); assert(invlist_ptr) 8050 8051 PERL_CALLCONV U32 8052 Perl_reg_add_data(RExC_state_t * const pRExC_state, const char * const s, const U32 n) 8053 __attribute__warn_unused_result__ 8054 __attribute__visibility__("hidden"); 8055 # define PERL_ARGS_ASSERT_REG_ADD_DATA \ 8056 assert(pRExC_state); assert(s) 8057 8058 PERL_CALLCONV void 8059 Perl_scan_commit(pTHX_ const RExC_state_t *pRExC_state, struct scan_data_t *data, SSize_t *minlenp, int is_inf) 8060 __attribute__visibility__("hidden"); 8061 # define PERL_ARGS_ASSERT_SCAN_COMMIT \ 8062 assert(pRExC_state); assert(data); assert(minlenp) 8063 8064 PERL_CALLCONV void 8065 Perl_set_ANYOF_arg(pTHX_ RExC_state_t * const pRExC_state, regnode * const node, SV * const cp_list, SV * const runtime_defns, SV * const only_utf8_locale_list) 8066 __attribute__visibility__("hidden"); 8067 # define PERL_ARGS_ASSERT_SET_ANYOF_ARG \ 8068 assert(pRExC_state); assert(node) 8069 8070 PERL_CALLCONV void 8071 Perl_ssc_finalize(pTHX_ RExC_state_t *pRExC_state, regnode_ssc *ssc) 8072 __attribute__visibility__("hidden"); 8073 # define PERL_ARGS_ASSERT_SSC_FINALIZE \ 8074 assert(pRExC_state); assert(ssc) 8075 8076 PERL_CALLCONV void 8077 Perl_ssc_init(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc) 8078 __attribute__visibility__("hidden"); 8079 # define PERL_ARGS_ASSERT_SSC_INIT \ 8080 assert(pRExC_state); assert(ssc) 8081 8082 PERL_CALLCONV SSize_t 8083 Perl_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp, SSize_t *minlenp, SSize_t *deltap, regnode *last, struct scan_data_t *data, I32 stopparen, U32 recursed_depth, regnode_ssc *and_withp, U32 flags, U32 depth, bool was_mutate_ok) 8084 __attribute__visibility__("hidden"); 8085 # define PERL_ARGS_ASSERT_STUDY_CHUNK \ 8086 assert(pRExC_state); assert(scanp); assert(minlenp); assert(deltap); \ 8087 assert(last) 8088 8089 # if defined(PERL_IN_REGCOMP_TRIE_C) && defined(DEBUGGING) 8090 STATIC void 8091 S_dump_trie(pTHX_ const struct _reg_trie_data *trie, HV *widecharmap, AV *revcharmap, U32 depth); 8092 # define PERL_ARGS_ASSERT_DUMP_TRIE \ 8093 assert(trie); assert(revcharmap) 8094 8095 STATIC void 8096 S_dump_trie_interim_list(pTHX_ const struct _reg_trie_data *trie, HV *widecharmap, AV *revcharmap, U32 next_alloc, U32 depth); 8097 # define PERL_ARGS_ASSERT_DUMP_TRIE_INTERIM_LIST \ 8098 assert(trie); assert(revcharmap) 8099 8100 STATIC void 8101 S_dump_trie_interim_table(pTHX_ const struct _reg_trie_data *trie, HV *widecharmap, AV *revcharmap, U32 next_alloc, U32 depth); 8102 # define PERL_ARGS_ASSERT_DUMP_TRIE_INTERIM_TABLE \ 8103 assert(trie); assert(revcharmap) 8104 8105 # endif /* defined(PERL_IN_REGCOMP_TRIE_C) && defined(DEBUGGING) */ 8106 # if !defined(PERL_NO_INLINE_FUNCTIONS) 8107 PERL_STATIC_INLINE SV * 8108 S_invlist_contents(pTHX_ SV * const invlist, const bool traditional_style) 8109 __attribute__warn_unused_result__; 8110 # define PERL_ARGS_ASSERT_INVLIST_CONTENTS \ 8111 assert(invlist) 8112 8113 PERL_STATIC_INLINE UV 8114 S_invlist_highest_range_start(SV * const invlist) 8115 __attribute__warn_unused_result__; 8116 # define PERL_ARGS_ASSERT_INVLIST_HIGHEST_RANGE_START \ 8117 assert(invlist) 8118 8119 PERL_STATIC_INLINE bool 8120 S_invlist_is_iterating(const SV * const invlist) 8121 __attribute__warn_unused_result__; 8122 # define PERL_ARGS_ASSERT_INVLIST_IS_ITERATING \ 8123 assert(invlist) 8124 8125 PERL_STATIC_INLINE UV 8126 S_invlist_lowest(SV * const invlist) 8127 __attribute__warn_unused_result__; 8128 # define PERL_ARGS_ASSERT_INVLIST_LOWEST \ 8129 assert(invlist) 8130 8131 # endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */ 8132 #endif /* defined(PERL_IN_REGCOMP_ANY) */ 8133 #if defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_SV_C) 8134 PERL_CALLCONV SV * 8135 Perl_invlist_clone(pTHX_ SV * const invlist, SV *newlist); 8136 # define PERL_ARGS_ASSERT_INVLIST_CLONE \ 8137 assert(invlist) 8138 8139 #endif 8140 #if defined(PERL_IN_REGCOMP_C) 8141 STATIC AV * 8142 S_add_multi_match(pTHX_ AV *multi_char_matches, SV *multi_string, const STRLEN cp_count); 8143 # define PERL_ARGS_ASSERT_ADD_MULTI_MATCH \ 8144 assert(multi_string) 8145 8146 STATIC void 8147 S_change_engine_size(pTHX_ RExC_state_t *pRExC_state, const Ptrdiff_t size); 8148 # define PERL_ARGS_ASSERT_CHANGE_ENGINE_SIZE \ 8149 assert(pRExC_state) 8150 8151 STATIC REGEXP * 8152 S_compile_wildcard(pTHX_ const char *subpattern, const STRLEN len, const bool ignore_case) 8153 __attribute__warn_unused_result__; 8154 # define PERL_ARGS_ASSERT_COMPILE_WILDCARD \ 8155 assert(subpattern) 8156 8157 STATIC U8 8158 S_compute_EXACTish(RExC_state_t *pRExC_state); 8159 # define PERL_ARGS_ASSERT_COMPUTE_EXACTISH \ 8160 assert(pRExC_state) 8161 8162 STATIC int 8163 S_edit_distance(const UV *src, const UV *tgt, const STRLEN x, const STRLEN y, const SSize_t maxDistance) 8164 __attribute__warn_unused_result__; 8165 # define PERL_ARGS_ASSERT_EDIT_DISTANCE \ 8166 assert(src); assert(tgt) 8167 8168 STATIC I32 8169 S_execute_wildcard(pTHX_ REGEXP * const prog, char *stringarg, char *strend, char *strbeg, SSize_t minend, SV *screamer, U32 nosave); 8170 # define PERL_ARGS_ASSERT_EXECUTE_WILDCARD \ 8171 assert(prog); assert(stringarg); assert(strend); assert(strbeg); \ 8172 assert(screamer) 8173 8174 STATIC U32 8175 S_get_quantifier_value(pTHX_ RExC_state_t *pRExC_state, const char *start, const char *end); 8176 # define PERL_ARGS_ASSERT_GET_QUANTIFIER_VALUE \ 8177 assert(pRExC_state); assert(start); assert(end) 8178 8179 STATIC bool 8180 S_grok_bslash_N(pTHX_ RExC_state_t *pRExC_state, regnode_offset *nodep, UV *code_point_p, int *cp_count, I32 *flagp, const bool strict, const U32 depth); 8181 # define PERL_ARGS_ASSERT_GROK_BSLASH_N \ 8182 assert(pRExC_state); assert(flagp) 8183 8184 STATIC regnode_offset 8185 S_handle_named_backref(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, char *backref_parse_start, char ch); 8186 # define PERL_ARGS_ASSERT_HANDLE_NAMED_BACKREF \ 8187 assert(pRExC_state); assert(flagp); assert(backref_parse_start) 8188 8189 STATIC bool 8190 S_handle_names_wildcard(pTHX_ const char *wname, const STRLEN wname_len, SV **prop_definition, AV **strings); 8191 # define PERL_ARGS_ASSERT_HANDLE_NAMES_WILDCARD \ 8192 assert(wname); assert(prop_definition); assert(strings) 8193 8194 STATIC int 8195 S_handle_possible_posix(pTHX_ RExC_state_t *pRExC_state, const char * const s, char **updated_parse_ptr, AV **posix_warnings, const bool check_only); 8196 # define PERL_ARGS_ASSERT_HANDLE_POSSIBLE_POSIX \ 8197 assert(pRExC_state); assert(s) 8198 8199 STATIC regnode_offset 8200 S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV **return_invlist, I32 *flagp, U32 depth); 8201 # define PERL_ARGS_ASSERT_HANDLE_REGEX_SETS \ 8202 assert(pRExC_state); assert(flagp) 8203 8204 STATIC SV * 8205 S_handle_user_defined_property(pTHX_ const char *name, const STRLEN name_len, const bool is_utf8, const bool to_fold, const bool runtime, const bool deferrable, SV *contents, bool *user_defined_ptr, SV *msg, const STRLEN level); 8206 # define PERL_ARGS_ASSERT_HANDLE_USER_DEFINED_PROPERTY \ 8207 assert(name); assert(contents); assert(user_defined_ptr); assert(msg) 8208 8209 STATIC void 8210 S_nextchar(pTHX_ RExC_state_t *pRExC_state); 8211 # define PERL_ARGS_ASSERT_NEXTCHAR \ 8212 assert(pRExC_state) 8213 8214 STATIC U8 8215 S_optimize_regclass(pTHX_ RExC_state_t *pRExC_state, SV *cp_list, SV *only_utf8_locale_list, SV *upper_latin1_only_utf8_matches, const U32 has_runtime_dependency, const U32 posixl, U8 *anyof_flags, bool *invert, regnode_offset *ret, I32 *flagp); 8216 # define PERL_ARGS_ASSERT_OPTIMIZE_REGCLASS \ 8217 assert(pRExC_state); assert(anyof_flags); assert(invert); assert(ret); \ 8218 assert(flagp) 8219 8220 STATIC void 8221 S_output_posix_warnings(pTHX_ RExC_state_t *pRExC_state, AV *posix_warnings); 8222 # define PERL_ARGS_ASSERT_OUTPUT_POSIX_WARNINGS \ 8223 assert(pRExC_state); assert(posix_warnings) 8224 8225 STATIC void 8226 S_parse_lparen_question_flags(pTHX_ RExC_state_t *pRExC_state); 8227 # define PERL_ARGS_ASSERT_PARSE_LPAREN_QUESTION_FLAGS \ 8228 assert(pRExC_state) 8229 8230 STATIC SV * 8231 S_parse_uniprop_string(pTHX_ const char * const name, Size_t name_len, const bool is_utf8, const bool to_fold, const bool runtime, const bool deferrable, AV **strings, bool *user_defined_ptr, SV *msg, const STRLEN level); 8232 # define PERL_ARGS_ASSERT_PARSE_UNIPROP_STRING \ 8233 assert(name); assert(user_defined_ptr); assert(msg) 8234 8235 PERL_STATIC_NO_RET void 8236 S_re_croak(pTHX_ bool utf8, const char *pat, ...) 8237 __attribute__noreturn__ 8238 __attribute__format__(__printf__,pTHX_2,pTHX_3); 8239 # define PERL_ARGS_ASSERT_RE_CROAK \ 8240 assert(pat) 8241 8242 STATIC regnode_offset 8243 S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp, U32 depth); 8244 # define PERL_ARGS_ASSERT_REG \ 8245 assert(pRExC_state); assert(flagp) 8246 8247 STATIC regnode_offset 8248 S_reg1node(pTHX_ RExC_state_t *pRExC_state, U8 op, U32 arg); 8249 # define PERL_ARGS_ASSERT_REG1NODE \ 8250 assert(pRExC_state) 8251 8252 STATIC regnode_offset 8253 S_reg2node(pTHX_ RExC_state_t *pRExC_state, const U8 op, const U32 arg1, const I32 arg2); 8254 # define PERL_ARGS_ASSERT_REG2NODE \ 8255 assert(pRExC_state) 8256 8257 STATIC regnode_offset 8258 S_reg_la_NOTHING(pTHX_ RExC_state_t *pRExC_state, U32 flags, const char *type); 8259 # define PERL_ARGS_ASSERT_REG_LA_NOTHING \ 8260 assert(pRExC_state); assert(type) 8261 8262 STATIC regnode_offset 8263 S_reg_la_OPFAIL(pTHX_ RExC_state_t *pRExC_state, U32 flags, const char *type); 8264 # define PERL_ARGS_ASSERT_REG_LA_OPFAIL \ 8265 assert(pRExC_state); assert(type) 8266 8267 STATIC regnode_offset 8268 S_reg_node(pTHX_ RExC_state_t *pRExC_state, U8 op); 8269 # define PERL_ARGS_ASSERT_REG_NODE \ 8270 assert(pRExC_state) 8271 8272 STATIC SV * 8273 S_reg_scan_name(pTHX_ RExC_state_t *pRExC_state, U32 flags); 8274 # define PERL_ARGS_ASSERT_REG_SCAN_NAME \ 8275 assert(pRExC_state) 8276 8277 STATIC regnode_offset 8278 S_regatom(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth); 8279 # define PERL_ARGS_ASSERT_REGATOM \ 8280 assert(pRExC_state); assert(flagp) 8281 8282 STATIC regnode_offset 8283 S_regbranch(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, I32 first, U32 depth); 8284 # define PERL_ARGS_ASSERT_REGBRANCH \ 8285 assert(pRExC_state); assert(flagp) 8286 8287 STATIC regnode_offset 8288 S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth, const bool stop_at_1, bool allow_multi_fold, const bool silence_non_portable, const bool strict, bool optimizable, SV **ret_invlist); 8289 # define PERL_ARGS_ASSERT_REGCLASS \ 8290 assert(pRExC_state); assert(flagp) 8291 8292 STATIC unsigned int 8293 S_regex_set_precedence(const U8 my_operator) 8294 __attribute__warn_unused_result__; 8295 # define PERL_ARGS_ASSERT_REGEX_SET_PRECEDENCE 8296 8297 STATIC void 8298 S_reginsert(pTHX_ RExC_state_t *pRExC_state, const U8 op, const regnode_offset operand, const U32 depth); 8299 # define PERL_ARGS_ASSERT_REGINSERT \ 8300 assert(pRExC_state) 8301 8302 STATIC regnode_offset 8303 S_regnode_guts(pTHX_ RExC_state_t *pRExC_state, const STRLEN extra_len); 8304 # define PERL_ARGS_ASSERT_REGNODE_GUTS \ 8305 assert(pRExC_state) 8306 8307 STATIC regnode_offset 8308 S_regpiece(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth); 8309 # define PERL_ARGS_ASSERT_REGPIECE \ 8310 assert(pRExC_state); assert(flagp) 8311 8312 STATIC regnode_offset 8313 S_regpnode(pTHX_ RExC_state_t *pRExC_state, U8 op, SV *arg); 8314 # define PERL_ARGS_ASSERT_REGPNODE \ 8315 assert(pRExC_state); assert(arg) 8316 8317 STATIC bool 8318 S_regtail(pTHX_ RExC_state_t *pRExC_state, const regnode_offset p, const regnode_offset val, const U32 depth) 8319 __attribute__warn_unused_result__; 8320 # define PERL_ARGS_ASSERT_REGTAIL \ 8321 assert(pRExC_state); assert(p); assert(val) 8322 8323 STATIC void 8324 S_set_regex_pv(pTHX_ RExC_state_t *pRExC_state, REGEXP *Rx); 8325 # define PERL_ARGS_ASSERT_SET_REGEX_PV \ 8326 assert(pRExC_state); assert(Rx) 8327 8328 STATIC void 8329 S_skip_to_be_ignored_text(pTHX_ RExC_state_t *pRExC_state, char **p, const bool force_to_xmod); 8330 # define PERL_ARGS_ASSERT_SKIP_TO_BE_IGNORED_TEXT \ 8331 assert(pRExC_state); assert(p) 8332 8333 # if defined(DEBUGGING) 8334 STATIC regnode_offset 8335 S_regnode_guts_debug(pTHX_ RExC_state_t *pRExC_state, const U8 op, const STRLEN extra_len); 8336 # define PERL_ARGS_ASSERT_REGNODE_GUTS_DEBUG \ 8337 assert(pRExC_state) 8338 8339 STATIC bool 8340 S_regtail_study(pTHX_ RExC_state_t *pRExC_state, regnode_offset p, const regnode_offset val, U32 depth) 8341 __attribute__warn_unused_result__; 8342 # define PERL_ARGS_ASSERT_REGTAIL_STUDY \ 8343 assert(pRExC_state); assert(p); assert(val) 8344 8345 # if defined(ENABLE_REGEX_SETS_DEBUGGING) 8346 STATIC void 8347 S_dump_regex_sets_structures(pTHX_ RExC_state_t *pRExC_state, AV *stack, const IV fence, AV *fence_stack); 8348 # define PERL_ARGS_ASSERT_DUMP_REGEX_SETS_STRUCTURES \ 8349 assert(pRExC_state); assert(stack); assert(fence_stack) 8350 8351 # endif 8352 # endif /* defined(DEBUGGING) */ 8353 # if !defined(PERL_NO_INLINE_FUNCTIONS) 8354 PERL_STATIC_INLINE Size_t 8355 S_find_first_differing_byte_pos(const U8 *s1, const U8 *s2, const Size_t max); 8356 # define PERL_ARGS_ASSERT_FIND_FIRST_DIFFERING_BYTE_POS \ 8357 assert(s1); assert(s2) 8358 8359 PERL_STATIC_INLINE char * 8360 S_reg_skipcomment(RExC_state_t *pRExC_state, char *p); 8361 # define PERL_ARGS_ASSERT_REG_SKIPCOMMENT \ 8362 assert(pRExC_state); assert(p) 8363 8364 # endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */ 8365 #endif /* defined(PERL_IN_REGCOMP_C) */ 8366 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGCOMP_INVLIST_C) 8367 PERL_CALLCONV void 8368 Perl_populate_bitmap_from_invlist(pTHX_ SV *invlist, const UV offset, const U8 *bitmap, const Size_t len) 8369 __attribute__visibility__("hidden"); 8370 # define PERL_ARGS_ASSERT_POPULATE_BITMAP_FROM_INVLIST \ 8371 assert(invlist); assert(bitmap) 8372 8373 PERL_CALLCONV void 8374 Perl_populate_invlist_from_bitmap(pTHX_ const U8 *bitmap, const Size_t bitmap_len, SV **invlist, const UV offset) 8375 __attribute__visibility__("hidden"); 8376 # define PERL_ARGS_ASSERT_POPULATE_INVLIST_FROM_BITMAP \ 8377 assert(bitmap); assert(invlist) 8378 8379 #endif /* defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGCOMP_INVLIST_C) */ 8380 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || \ 8381 defined(PERL_IN_TOKE_C) 8382 PERL_CALLCONV bool 8383 Perl_is_grapheme(pTHX_ const U8 *strbeg, const U8 *s, const U8 *strend, const UV cp) 8384 __attribute__warn_unused_result__ 8385 __attribute__visibility__("hidden"); 8386 # define PERL_ARGS_ASSERT_IS_GRAPHEME \ 8387 assert(strbeg); assert(s); assert(strend) 8388 8389 #endif 8390 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || \ 8391 defined(PERL_IN_UTF8_C) 8392 PERL_CALLCONV UV 8393 Perl__to_fold_latin1(const U8 c, U8 *p, STRLEN *lenp, const unsigned int flags); 8394 # define PERL_ARGS_ASSERT__TO_FOLD_LATIN1 \ 8395 assert(p); assert(lenp) 8396 8397 #endif 8398 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) 8399 PERL_CALLCONV bool 8400 Perl_regcurly(const char *s, const char *e, const char *result[5]) 8401 __attribute__warn_unused_result__; 8402 # define PERL_ARGS_ASSERT_REGCURLY \ 8403 assert(s); assert(e) 8404 8405 #endif 8406 #if defined(PERL_IN_REGCOMP_DEBUG_C) && defined(DEBUGGING) 8407 STATIC U8 8408 S_put_charclass_bitmap_innards(pTHX_ SV *sv, char *bitmap, SV *nonbitmap_invlist, SV *only_utf8_locale_invlist, const regnode * const node, const U8 flags, const bool force_as_is_display); 8409 # define PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS \ 8410 assert(sv) 8411 8412 STATIC SV * 8413 S_put_charclass_bitmap_innards_common(pTHX_ SV *invlist, SV *posixes, SV *only_utf8, SV *not_utf8, SV *only_utf8_locale, const bool invert); 8414 # define PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS_COMMON \ 8415 assert(invlist) 8416 8417 STATIC void 8418 S_put_charclass_bitmap_innards_invlist(pTHX_ SV *sv, SV *invlist); 8419 # define PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS_INVLIST \ 8420 assert(sv); assert(invlist) 8421 8422 STATIC void 8423 S_put_code_point(pTHX_ SV *sv, UV c); 8424 # define PERL_ARGS_ASSERT_PUT_CODE_POINT \ 8425 assert(sv) 8426 8427 STATIC void 8428 S_put_range(pTHX_ SV *sv, UV start, const UV end, const bool allow_literals); 8429 # define PERL_ARGS_ASSERT_PUT_RANGE \ 8430 assert(sv) 8431 8432 STATIC void 8433 S_regdump_extflags(pTHX_ const char *lead, const U32 flags); 8434 # define PERL_ARGS_ASSERT_REGDUMP_EXTFLAGS 8435 8436 STATIC void 8437 S_regdump_intflags(pTHX_ const char *lead, const U32 flags); 8438 # define PERL_ARGS_ASSERT_REGDUMP_INTFLAGS 8439 8440 #endif /* defined(PERL_IN_REGCOMP_DEBUG_C) && defined(DEBUGGING) */ 8441 #if defined(PERL_IN_REGCOMP_INVLIST_C) && !defined(PERL_EXT_RE_BUILD) 8442 STATIC void 8443 S__append_range_to_invlist(pTHX_ SV * const invlist, const UV start, const UV end); 8444 # define PERL_ARGS_ASSERT__APPEND_RANGE_TO_INVLIST \ 8445 assert(invlist) 8446 8447 STATIC void 8448 S_initialize_invlist_guts(pTHX_ SV *invlist, const Size_t initial_size); 8449 # define PERL_ARGS_ASSERT_INITIALIZE_INVLIST_GUTS \ 8450 assert(invlist) 8451 8452 STATIC void 8453 S_invlist_replace_list_destroys_src(pTHX_ SV *dest, SV *src); 8454 # define PERL_ARGS_ASSERT_INVLIST_REPLACE_LIST_DESTROYS_SRC \ 8455 assert(dest); assert(src) 8456 8457 # if !defined(PERL_NO_INLINE_FUNCTIONS) 8458 PERL_STATIC_INLINE UV * 8459 S__invlist_array_init(SV * const invlist, const bool will_have_0) 8460 __attribute__warn_unused_result__; 8461 # define PERL_ARGS_ASSERT__INVLIST_ARRAY_INIT \ 8462 assert(invlist) 8463 8464 PERL_STATIC_INLINE IV * 8465 S_get_invlist_previous_index_addr(SV *invlist) 8466 __attribute__warn_unused_result__; 8467 # define PERL_ARGS_ASSERT_GET_INVLIST_PREVIOUS_INDEX_ADDR \ 8468 assert(invlist) 8469 8470 PERL_STATIC_INLINE void 8471 S_invlist_clear(pTHX_ SV *invlist); 8472 # define PERL_ARGS_ASSERT_INVLIST_CLEAR \ 8473 assert(invlist) 8474 8475 PERL_STATIC_INLINE UV 8476 S_invlist_max(const SV * const invlist) 8477 __attribute__warn_unused_result__; 8478 # define PERL_ARGS_ASSERT_INVLIST_MAX \ 8479 assert(invlist) 8480 8481 PERL_STATIC_INLINE IV 8482 S_invlist_previous_index(SV * const invlist) 8483 __attribute__warn_unused_result__; 8484 # define PERL_ARGS_ASSERT_INVLIST_PREVIOUS_INDEX \ 8485 assert(invlist) 8486 8487 PERL_STATIC_INLINE void 8488 S_invlist_set_previous_index(SV * const invlist, const IV index); 8489 # define PERL_ARGS_ASSERT_INVLIST_SET_PREVIOUS_INDEX \ 8490 assert(invlist) 8491 8492 PERL_STATIC_INLINE void 8493 S_invlist_trim(SV *invlist); 8494 # define PERL_ARGS_ASSERT_INVLIST_TRIM \ 8495 assert(invlist) 8496 8497 # endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */ 8498 #endif /* defined(PERL_IN_REGCOMP_INVLIST_C) && !defined(PERL_EXT_RE_BUILD) */ 8499 #if defined(PERL_IN_REGCOMP_STUDY_C) 8500 STATIC SV * 8501 S_get_ANYOF_cp_list_for_ssc(pTHX_ const RExC_state_t *pRExC_state, const regnode_charclass * const node); 8502 # define PERL_ARGS_ASSERT_GET_ANYOF_CP_LIST_FOR_SSC \ 8503 assert(pRExC_state); assert(node) 8504 8505 STATIC SV * 8506 S_make_exactf_invlist(pTHX_ RExC_state_t *pRExC_state, regnode *node) 8507 __attribute__warn_unused_result__; 8508 # define PERL_ARGS_ASSERT_MAKE_EXACTF_INVLIST \ 8509 assert(pRExC_state); assert(node) 8510 8511 STATIC void 8512 S_rck_elide_nothing(pTHX_ regnode *node); 8513 # define PERL_ARGS_ASSERT_RCK_ELIDE_NOTHING \ 8514 assert(node) 8515 8516 STATIC void 8517 S_ssc_add_range(pTHX_ regnode_ssc *ssc, UV const start, UV const end); 8518 # define PERL_ARGS_ASSERT_SSC_ADD_RANGE \ 8519 assert(ssc) 8520 8521 STATIC void 8522 S_ssc_and(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc, const regnode_charclass *and_with); 8523 # define PERL_ARGS_ASSERT_SSC_AND \ 8524 assert(pRExC_state); assert(ssc); assert(and_with) 8525 8526 STATIC void 8527 S_ssc_anything(pTHX_ regnode_ssc *ssc); 8528 # define PERL_ARGS_ASSERT_SSC_ANYTHING \ 8529 assert(ssc) 8530 8531 STATIC void 8532 S_ssc_clear_locale(regnode_ssc *ssc); 8533 # define PERL_ARGS_ASSERT_SSC_CLEAR_LOCALE \ 8534 assert(ssc) 8535 8536 STATIC void 8537 S_ssc_cp_and(pTHX_ regnode_ssc *ssc, UV const cp); 8538 # define PERL_ARGS_ASSERT_SSC_CP_AND \ 8539 assert(ssc) 8540 8541 STATIC void 8542 S_ssc_intersection(pTHX_ regnode_ssc *ssc, SV * const invlist, const bool invert_2nd); 8543 # define PERL_ARGS_ASSERT_SSC_INTERSECTION \ 8544 assert(ssc); assert(invlist) 8545 8546 STATIC int 8547 S_ssc_is_anything(const regnode_ssc *ssc) 8548 __attribute__warn_unused_result__; 8549 # define PERL_ARGS_ASSERT_SSC_IS_ANYTHING \ 8550 assert(ssc) 8551 8552 STATIC int 8553 S_ssc_is_cp_posixl_init(const RExC_state_t *pRExC_state, const regnode_ssc *ssc) 8554 __attribute__warn_unused_result__; 8555 # define PERL_ARGS_ASSERT_SSC_IS_CP_POSIXL_INIT \ 8556 assert(pRExC_state); assert(ssc) 8557 8558 STATIC void 8559 S_ssc_or(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc, const regnode_charclass *or_with); 8560 # define PERL_ARGS_ASSERT_SSC_OR \ 8561 assert(pRExC_state); assert(ssc); assert(or_with) 8562 8563 STATIC void 8564 S_ssc_union(pTHX_ regnode_ssc *ssc, SV * const invlist, const bool invert_2nd); 8565 # define PERL_ARGS_ASSERT_SSC_UNION \ 8566 assert(ssc); assert(invlist) 8567 8568 STATIC void 8569 S_unwind_scan_frames(pTHX_ const void *p); 8570 # define PERL_ARGS_ASSERT_UNWIND_SCAN_FRAMES \ 8571 assert(p) 8572 8573 #endif /* defined(PERL_IN_REGCOMP_STUDY_C) */ 8574 #if defined(PERL_IN_REGEXEC_C) 8575 STATIC LB_enum 8576 S_advance_one_LB(pTHX_ U8 **curpos, const U8 * const strend, const bool utf8_target) 8577 __attribute__warn_unused_result__; 8578 # define PERL_ARGS_ASSERT_ADVANCE_ONE_LB \ 8579 assert(curpos); assert(strend) 8580 8581 STATIC SB_enum 8582 S_advance_one_SB(pTHX_ U8 **curpos, const U8 * const strend, const bool utf8_target) 8583 __attribute__warn_unused_result__; 8584 # define PERL_ARGS_ASSERT_ADVANCE_ONE_SB \ 8585 assert(curpos); assert(strend) 8586 8587 STATIC WB_enum 8588 S_advance_one_WB(pTHX_ U8 **curpos, const U8 * const strend, const bool utf8_target, const bool skip_Extend_Format) 8589 __attribute__warn_unused_result__; 8590 # define PERL_ARGS_ASSERT_ADVANCE_ONE_WB \ 8591 assert(curpos); assert(strend) 8592 8593 STATIC GCB_enum 8594 S_backup_one_GCB(pTHX_ const U8 * const strbeg, U8 **curpos, const bool utf8_target) 8595 __attribute__warn_unused_result__; 8596 # define PERL_ARGS_ASSERT_BACKUP_ONE_GCB \ 8597 assert(strbeg); assert(curpos) 8598 8599 STATIC LB_enum 8600 S_backup_one_LB(pTHX_ const U8 * const strbeg, U8 **curpos, const bool utf8_target) 8601 __attribute__warn_unused_result__; 8602 # define PERL_ARGS_ASSERT_BACKUP_ONE_LB \ 8603 assert(strbeg); assert(curpos) 8604 8605 STATIC SB_enum 8606 S_backup_one_SB(pTHX_ const U8 * const strbeg, U8 **curpos, const bool utf8_target) 8607 __attribute__warn_unused_result__; 8608 # define PERL_ARGS_ASSERT_BACKUP_ONE_SB \ 8609 assert(strbeg); assert(curpos) 8610 8611 STATIC WB_enum 8612 S_backup_one_WB(pTHX_ WB_enum *previous, const U8 * const strbeg, U8 **curpos, const bool utf8_target) 8613 __attribute__warn_unused_result__; 8614 # define PERL_ARGS_ASSERT_BACKUP_ONE_WB \ 8615 assert(previous); assert(strbeg); assert(curpos) 8616 8617 STATIC char * 8618 S_find_byclass(pTHX_ regexp *prog, const regnode *c, char *s, const char *strend, regmatch_info *reginfo) 8619 __attribute__warn_unused_result__; 8620 # define PERL_ARGS_ASSERT_FIND_BYCLASS \ 8621 assert(prog); assert(c); assert(s); assert(strend) 8622 8623 STATIC U8 * 8624 S_find_next_masked(U8 *s, const U8 *send, const U8 byte, const U8 mask) 8625 __attribute__warn_unused_result__; 8626 # define PERL_ARGS_ASSERT_FIND_NEXT_MASKED \ 8627 assert(s); assert(send) 8628 8629 STATIC U8 * 8630 S_find_span_end(U8 *s, const U8 *send, const U8 span_byte) 8631 __attribute__warn_unused_result__; 8632 # define PERL_ARGS_ASSERT_FIND_SPAN_END \ 8633 assert(s); assert(send) 8634 8635 STATIC U8 * 8636 S_find_span_end_mask(U8 *s, const U8 *send, const U8 span_byte, const U8 mask) 8637 __attribute__warn_unused_result__; 8638 # define PERL_ARGS_ASSERT_FIND_SPAN_END_MASK \ 8639 assert(s); assert(send) 8640 8641 STATIC bool 8642 S_isFOO_lc(pTHX_ const U8 classnum, const U8 character) 8643 __attribute__warn_unused_result__; 8644 # define PERL_ARGS_ASSERT_ISFOO_LC 8645 8646 STATIC bool 8647 S_isFOO_utf8_lc(pTHX_ const U8 classnum, const U8 *character, const U8 *e) 8648 __attribute__warn_unused_result__; 8649 # define PERL_ARGS_ASSERT_ISFOO_UTF8_LC \ 8650 assert(character); assert(e) 8651 8652 STATIC bool 8653 S_isGCB(pTHX_ const GCB_enum before, const GCB_enum after, const U8 * const strbeg, const U8 * const curpos, const bool utf8_target) 8654 __attribute__warn_unused_result__; 8655 # define PERL_ARGS_ASSERT_ISGCB \ 8656 assert(strbeg); assert(curpos) 8657 8658 STATIC bool 8659 S_isLB(pTHX_ LB_enum before, LB_enum after, const U8 * const strbeg, const U8 * const curpos, const U8 * const strend, const bool utf8_target) 8660 __attribute__warn_unused_result__; 8661 # define PERL_ARGS_ASSERT_ISLB \ 8662 assert(strbeg); assert(curpos); assert(strend) 8663 8664 STATIC bool 8665 S_isSB(pTHX_ SB_enum before, SB_enum after, const U8 * const strbeg, const U8 * const curpos, const U8 * const strend, const bool utf8_target) 8666 __attribute__warn_unused_result__; 8667 # define PERL_ARGS_ASSERT_ISSB \ 8668 assert(strbeg); assert(curpos); assert(strend) 8669 8670 STATIC bool 8671 S_isWB(pTHX_ WB_enum previous, WB_enum before, WB_enum after, const U8 * const strbeg, const U8 * const curpos, const U8 * const strend, const bool utf8_target) 8672 __attribute__warn_unused_result__; 8673 # define PERL_ARGS_ASSERT_ISWB \ 8674 assert(strbeg); assert(curpos); assert(strend) 8675 8676 STATIC I32 8677 S_reg_check_named_buff_matched(const regexp *rex, const regnode *scan) 8678 __attribute__warn_unused_result__; 8679 # define PERL_ARGS_ASSERT_REG_CHECK_NAMED_BUFF_MATCHED \ 8680 assert(rex); assert(scan) 8681 8682 STATIC void 8683 S_regcp_restore(pTHX_ regexp *rex, I32 ix, U32 *maxopenparen_p comma_pDEPTH); 8684 # define PERL_ARGS_ASSERT_REGCP_RESTORE \ 8685 assert(rex); assert(maxopenparen_p) 8686 8687 STATIC void 8688 S_regcppop(pTHX_ regexp *rex, U32 *maxopenparen_p comma_pDEPTH); 8689 # define PERL_ARGS_ASSERT_REGCPPOP \ 8690 assert(rex); assert(maxopenparen_p) 8691 8692 STATIC CHECKPOINT 8693 S_regcppush(pTHX_ const regexp *rex, I32 parenfloor, U32 maxopenparen comma_pDEPTH); 8694 # define PERL_ARGS_ASSERT_REGCPPUSH \ 8695 assert(rex) 8696 8697 STATIC U8 * 8698 S_reghop3(U8 *s, SSize_t off, const U8 *lim) 8699 __attribute__warn_unused_result__; 8700 # define PERL_ARGS_ASSERT_REGHOP3 \ 8701 assert(s); assert(lim) 8702 8703 STATIC U8 * 8704 S_reghop4(U8 *s, SSize_t off, const U8 *llim, const U8 *rlim) 8705 __attribute__warn_unused_result__; 8706 # define PERL_ARGS_ASSERT_REGHOP4 \ 8707 assert(s); assert(llim); assert(rlim) 8708 8709 STATIC U8 * 8710 S_reghopmaybe3(U8 *s, SSize_t off, const U8 * const lim) 8711 __attribute__warn_unused_result__; 8712 # define PERL_ARGS_ASSERT_REGHOPMAYBE3 \ 8713 assert(s); assert(lim) 8714 8715 STATIC bool 8716 S_reginclass(pTHX_ regexp * const prog, const regnode * const n, const U8 * const p, const U8 * const p_end, bool const utf8_target) 8717 __attribute__warn_unused_result__; 8718 # define PERL_ARGS_ASSERT_REGINCLASS \ 8719 assert(n); assert(p); assert(p_end) 8720 8721 STATIC SSize_t 8722 S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog) 8723 __attribute__warn_unused_result__; 8724 # define PERL_ARGS_ASSERT_REGMATCH \ 8725 assert(reginfo); assert(startpos); assert(prog) 8726 8727 STATIC I32 8728 S_regrepeat(pTHX_ regexp *prog, char **startposp, const regnode *p, char *loceol, regmatch_info * const reginfo, I32 max comma_pDEPTH) 8729 __attribute__warn_unused_result__; 8730 # define PERL_ARGS_ASSERT_REGREPEAT \ 8731 assert(prog); assert(startposp); assert(p); assert(loceol); assert(reginfo); \ 8732 assert(max) 8733 8734 STATIC bool 8735 S_regtry(pTHX_ regmatch_info *reginfo, char **startposp) 8736 __attribute__warn_unused_result__; 8737 # define PERL_ARGS_ASSERT_REGTRY \ 8738 assert(reginfo); assert(startposp) 8739 8740 STATIC bool 8741 S_to_byte_substr(pTHX_ regexp *prog); 8742 # define PERL_ARGS_ASSERT_TO_BYTE_SUBSTR \ 8743 assert(prog) 8744 8745 STATIC void 8746 S_to_utf8_substr(pTHX_ regexp *prog); 8747 # define PERL_ARGS_ASSERT_TO_UTF8_SUBSTR \ 8748 assert(prog) 8749 8750 # if defined(DEBUGGING) 8751 STATIC void 8752 S_debug_start_match(pTHX_ const REGEXP *prog, const bool do_utf8, const char *start, const char *end, const char *blurb); 8753 # define PERL_ARGS_ASSERT_DEBUG_START_MATCH \ 8754 assert(prog); assert(start); assert(end); assert(blurb) 8755 8756 STATIC void 8757 S_dump_exec_pos(pTHX_ const char *locinput, const regnode *scan, const char *loc_regeol, const char *loc_bostr, const char *loc_reg_starttry, const bool do_utf8, const U32 depth); 8758 # define PERL_ARGS_ASSERT_DUMP_EXEC_POS \ 8759 assert(locinput); assert(scan); assert(loc_regeol); assert(loc_bostr); \ 8760 assert(loc_reg_starttry) 8761 8762 PERL_CALLCONV int 8763 Perl_re_exec_indentf(pTHX_ const char *fmt, U32 depth, ...) 8764 __attribute__visibility__("hidden"); 8765 # define PERL_ARGS_ASSERT_RE_EXEC_INDENTF \ 8766 assert(fmt) 8767 8768 # endif /* defined(DEBUGGING) */ 8769 # if !defined(PERL_NO_INLINE_FUNCTIONS) 8770 PERL_STATIC_INLINE void 8771 S_capture_clear(pTHX_ regexp *rex, U16 from_ix, U16 to_ix, const char *str comma_pDEPTH); 8772 # define PERL_ARGS_ASSERT_CAPTURE_CLEAR \ 8773 assert(rex); assert(str) 8774 8775 PERL_STATIC_INLINE I32 8776 S_foldEQ_latin1_s2_folded(pTHX_ const char *a, const char *b, I32 len); 8777 # define PERL_ARGS_ASSERT_FOLDEQ_LATIN1_S2_FOLDED \ 8778 assert(a); assert(b) 8779 8780 PERL_STATIC_INLINE void 8781 S_unwind_paren(pTHX_ regexp *rex, U32 lp, U32 lcp comma_pDEPTH); 8782 # define PERL_ARGS_ASSERT_UNWIND_PAREN \ 8783 assert(rex) 8784 8785 # endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */ 8786 #endif /* defined(PERL_IN_REGEXEC_C) */ 8787 #if defined(PERL_IN_REGEX_ENGINE) 8788 8789 # if defined(DEBUGGING) 8790 PERL_CALLCONV void 8791 Perl_debug_peep(pTHX_ const char *str, const RExC_state_t *pRExC_state, regnode *scan, U32 depth, U32 flags) 8792 __attribute__visibility__("hidden"); 8793 # define PERL_ARGS_ASSERT_DEBUG_PEEP \ 8794 assert(str); assert(pRExC_state) 8795 8796 PERL_CALLCONV void 8797 Perl_debug_show_study_flags(pTHX_ U32 flags, const char *open_str, const char *close_str) 8798 __attribute__visibility__("hidden"); 8799 # define PERL_ARGS_ASSERT_DEBUG_SHOW_STUDY_FLAGS \ 8800 assert(open_str); assert(close_str) 8801 8802 PERL_CALLCONV void 8803 Perl_debug_studydata(pTHX_ const char *where, scan_data_t *data, U32 depth, int is_inf, SSize_t min, SSize_t stopmin, SSize_t delta) 8804 __attribute__visibility__("hidden"); 8805 # define PERL_ARGS_ASSERT_DEBUG_STUDYDATA \ 8806 assert(where) 8807 8808 PERL_CALLCONV const regnode * 8809 Perl_dumpuntil(pTHX_ const regexp *r, const regnode *start, const regnode *node, const regnode *last, const regnode *plast, SV *sv, I32 indent, U32 depth) 8810 __attribute__visibility__("hidden"); 8811 # define PERL_ARGS_ASSERT_DUMPUNTIL \ 8812 assert(r); assert(start); assert(node); assert(sv) 8813 8814 PERL_CALLCONV int 8815 Perl_re_indentf(pTHX_ const char *fmt, U32 depth, ...) 8816 __attribute__visibility__("hidden"); 8817 # define PERL_ARGS_ASSERT_RE_INDENTF \ 8818 assert(fmt) 8819 8820 PERL_CALLCONV int 8821 Perl_re_printf(pTHX_ const char *fmt, ...) 8822 __attribute__visibility__("hidden") 8823 __attribute__format__(__printf__,pTHX_1,pTHX_2); 8824 # define PERL_ARGS_ASSERT_RE_PRINTF \ 8825 assert(fmt) 8826 8827 PERL_CALLCONV void 8828 Perl_regprop(pTHX_ const regexp *prog, SV *sv, const regnode *o, const regmatch_info *reginfo, const RExC_state_t *pRExC_state) 8829 __attribute__visibility__("hidden"); 8830 # define PERL_ARGS_ASSERT_REGPROP \ 8831 assert(sv); assert(o) 8832 8833 # endif /* defined(DEBUGGING) */ 8834 # if defined(PERL_EXT_RE_BUILD) 8835 PERL_CALLCONV SV * 8836 Perl_get_re_gclass_aux_data(pTHX_ const regexp *prog, const struct regnode *node, bool doinit, SV **listsvp, SV **lonly_utf8_locale, SV **output_invlist) 8837 __attribute__visibility__("hidden"); 8838 # define PERL_ARGS_ASSERT_GET_RE_GCLASS_AUX_DATA \ 8839 assert(node) 8840 8841 # else 8842 PERL_CALLCONV SV * 8843 Perl_get_regclass_aux_data(pTHX_ const regexp *prog, const struct regnode *node, bool doinit, SV **listsvp, SV **lonly_utf8_locale, SV **output_invlist) 8844 __attribute__visibility__("hidden"); 8845 # define PERL_ARGS_ASSERT_GET_REGCLASS_AUX_DATA \ 8846 assert(node) 8847 8848 # endif 8849 # if !defined(PERL_NO_INLINE_FUNCTIONS) 8850 PERL_STATIC_INLINE bool 8851 Perl_check_regnode_after(pTHX_ const regnode *p, const STRLEN extra) 8852 __attribute__warn_unused_result__; 8853 # define PERL_ARGS_ASSERT_CHECK_REGNODE_AFTER 8854 8855 PERL_STATIC_INLINE regnode * 8856 Perl_regnext(pTHX_ const regnode *p) 8857 __attribute__warn_unused_result__; 8858 # define PERL_ARGS_ASSERT_REGNEXT 8859 8860 PERL_STATIC_INLINE regnode * 8861 Perl_regnode_after(pTHX_ const regnode *p, bool varies) 8862 __attribute__warn_unused_result__; 8863 # define PERL_ARGS_ASSERT_REGNODE_AFTER 8864 8865 # endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */ 8866 #endif /* defined(PERL_IN_REGEX_ENGINE) */ 8867 #if defined(PERL_IN_SCOPE_C) 8868 STATIC void 8869 S_save_pushptri32ptr(pTHX_ void * const ptr1, const I32 i, void * const ptr2, const int type); 8870 # define PERL_ARGS_ASSERT_SAVE_PUSHPTRI32PTR 8871 8872 STATIC SV * 8873 S_save_scalar_at(pTHX_ SV **sptr, const U32 flags); 8874 # define PERL_ARGS_ASSERT_SAVE_SCALAR_AT \ 8875 assert(sptr) 8876 8877 #endif /* defined(PERL_IN_SCOPE_C) */ 8878 #if defined(PERL_IN_SV_C) 8879 STATIC char * 8880 S_F0convert(NV nv, char * const endbuf, STRLEN * const len); 8881 # define PERL_ARGS_ASSERT_F0CONVERT \ 8882 assert(endbuf); assert(len) 8883 8884 STATIC void 8885 S_anonymise_cv_maybe(pTHX_ GV *gv, CV *cv); 8886 # define PERL_ARGS_ASSERT_ANONYMISE_CV_MAYBE \ 8887 assert(gv); assert(cv) 8888 8889 STATIC void 8890 S_assert_uft8_cache_coherent(pTHX_ const char * const func, STRLEN from_cache, STRLEN real, SV * const sv); 8891 # define PERL_ARGS_ASSERT_ASSERT_UFT8_CACHE_COHERENT \ 8892 assert(func); assert(sv) 8893 8894 STATIC bool 8895 S_curse(pTHX_ SV * const sv, const bool check_refcnt); 8896 # define PERL_ARGS_ASSERT_CURSE \ 8897 assert(sv) 8898 8899 STATIC STRLEN 8900 S_expect_number(pTHX_ const char ** const pattern) 8901 __attribute__warn_unused_result__; 8902 # define PERL_ARGS_ASSERT_EXPECT_NUMBER \ 8903 assert(pattern) 8904 8905 STATIC SSize_t 8906 S_find_array_subscript(pTHX_ const AV * const av, const SV * const val); 8907 # define PERL_ARGS_ASSERT_FIND_ARRAY_SUBSCRIPT \ 8908 assert(val) 8909 8910 STATIC SV * 8911 S_find_hash_subscript(pTHX_ const HV * const hv, const SV * const val); 8912 # define PERL_ARGS_ASSERT_FIND_HASH_SUBSCRIPT \ 8913 assert(val) 8914 8915 STATIC SV * 8916 S_find_uninit_var(pTHX_ const OP * const obase, const SV * const uninit_sv, bool match, const char **desc_p); 8917 # define PERL_ARGS_ASSERT_FIND_UNINIT_VAR \ 8918 assert(desc_p) 8919 8920 STATIC bool 8921 S_glob_2number(pTHX_ GV * const gv); 8922 # define PERL_ARGS_ASSERT_GLOB_2NUMBER \ 8923 assert(gv) 8924 8925 STATIC void 8926 S_glob_assign_glob(pTHX_ SV * const dsv, SV * const ssv, const int dtype); 8927 # define PERL_ARGS_ASSERT_GLOB_ASSIGN_GLOB \ 8928 assert(dsv); assert(ssv) 8929 8930 PERL_CALLCONV SV * 8931 Perl_more_sv(pTHX); 8932 # define PERL_ARGS_ASSERT_MORE_SV 8933 8934 STATIC void 8935 S_not_a_number(pTHX_ SV * const sv); 8936 # define PERL_ARGS_ASSERT_NOT_A_NUMBER \ 8937 assert(sv) 8938 8939 STATIC void 8940 S_not_incrementable(pTHX_ SV * const sv); 8941 # define PERL_ARGS_ASSERT_NOT_INCREMENTABLE \ 8942 assert(sv) 8943 8944 STATIC PTR_TBL_ENT_t * 8945 S_ptr_table_find(PTR_TBL_t * const tbl, const void * const sv) 8946 __attribute__warn_unused_result__; 8947 # define PERL_ARGS_ASSERT_PTR_TABLE_FIND \ 8948 assert(tbl) 8949 8950 STATIC bool 8951 S_sv_2iuv_common(pTHX_ SV * const sv); 8952 # define PERL_ARGS_ASSERT_SV_2IUV_COMMON \ 8953 assert(sv) 8954 8955 STATIC void 8956 S_sv_add_arena(pTHX_ char * const ptr, const U32 size, const U32 flags); 8957 # define PERL_ARGS_ASSERT_SV_ADD_ARENA \ 8958 assert(ptr) 8959 8960 STATIC const char * 8961 S_sv_display(pTHX_ SV * const sv, char *tmpbuf, STRLEN tmpbuf_size); 8962 # define PERL_ARGS_ASSERT_SV_DISPLAY \ 8963 assert(sv); assert(tmpbuf) 8964 8965 STATIC STRLEN 8966 S_sv_pos_b2u_midway(pTHX_ const U8 * const s, const U8 * const target, const U8 *end, STRLEN endu); 8967 # define PERL_ARGS_ASSERT_SV_POS_B2U_MIDWAY \ 8968 assert(s); assert(target); assert(end) 8969 8970 STATIC STRLEN 8971 S_sv_pos_u2b_cached(pTHX_ SV * const sv, MAGIC ** const mgp, const U8 * const start, const U8 * const send, STRLEN uoffset, STRLEN uoffset0, STRLEN boffset0); 8972 # define PERL_ARGS_ASSERT_SV_POS_U2B_CACHED \ 8973 assert(sv); assert(mgp); assert(start); assert(send) 8974 8975 STATIC STRLEN 8976 S_sv_pos_u2b_forwards(const U8 * const start, const U8 * const send, STRLEN * const uoffset, bool * const at_end, bool *canonical_position); 8977 # define PERL_ARGS_ASSERT_SV_POS_U2B_FORWARDS \ 8978 assert(start); assert(send); assert(uoffset); assert(at_end); assert(canonical_position) 8979 8980 STATIC STRLEN 8981 S_sv_pos_u2b_midway(const U8 * const start, const U8 *send, STRLEN uoffset, const STRLEN uend); 8982 # define PERL_ARGS_ASSERT_SV_POS_U2B_MIDWAY \ 8983 assert(start); assert(send) 8984 8985 STATIC void 8986 S_utf8_mg_len_cache_update(pTHX_ SV * const sv, MAGIC ** const mgp, const STRLEN ulen); 8987 # define PERL_ARGS_ASSERT_UTF8_MG_LEN_CACHE_UPDATE \ 8988 assert(sv); assert(mgp) 8989 8990 STATIC void 8991 S_utf8_mg_pos_cache_update(pTHX_ SV * const sv, MAGIC ** const mgp, const STRLEN byte, const STRLEN utf8, const STRLEN blen); 8992 # define PERL_ARGS_ASSERT_UTF8_MG_POS_CACHE_UPDATE \ 8993 assert(sv); assert(mgp) 8994 8995 STATIC I32 8996 S_visit(pTHX_ SVFUNC_t f, const U32 flags, const U32 mask); 8997 # define PERL_ARGS_ASSERT_VISIT \ 8998 assert(f) 8999 9000 # if defined(DEBUGGING) 9001 STATIC void 9002 S_del_sv(pTHX_ SV *p); 9003 # define PERL_ARGS_ASSERT_DEL_SV \ 9004 assert(p) 9005 9006 # endif 9007 # if !defined(NV_PRESERVES_UV) 9008 # if defined(DEBUGGING) 9009 STATIC int 9010 S_sv_2iuv_non_preserve(pTHX_ SV * const sv, I32 numtype); 9011 # define PERL_ARGS_ASSERT_SV_2IUV_NON_PRESERVE \ 9012 assert(sv) 9013 9014 # else 9015 STATIC int 9016 S_sv_2iuv_non_preserve(pTHX_ SV * const sv); 9017 # define PERL_ARGS_ASSERT_SV_2IUV_NON_PRESERVE \ 9018 assert(sv) 9019 9020 # endif 9021 # endif /* !defined(NV_PRESERVES_UV) */ 9022 # if defined(PERL_DEBUG_READONLY_COW) 9023 STATIC void 9024 S_sv_buf_to_rw(pTHX_ SV *sv); 9025 # define PERL_ARGS_ASSERT_SV_BUF_TO_RW \ 9026 assert(sv) 9027 9028 # endif 9029 # if !defined(PERL_NO_INLINE_FUNCTIONS) 9030 PERL_STATIC_INLINE void 9031 S_sv_unglob(pTHX_ SV * const sv, U32 flags); 9032 # define PERL_ARGS_ASSERT_SV_UNGLOB \ 9033 assert(sv) 9034 9035 PERL_STATIC_INLINE char * 9036 S_uiv_2buf(char * const buf, const IV iv, UV uv, const int is_uv, char ** const peob) 9037 __attribute__warn_unused_result__; 9038 # define PERL_ARGS_ASSERT_UIV_2BUF \ 9039 assert(buf); assert(peob) 9040 9041 # endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */ 9042 # if defined(USE_ITHREADS) 9043 STATIC SV * 9044 S_sv_dup_common(pTHX_ const SV * const ssv, CLONE_PARAMS * const param) 9045 __attribute__warn_unused_result__; 9046 # define PERL_ARGS_ASSERT_SV_DUP_COMMON \ 9047 assert(ssv); assert(param) 9048 9049 STATIC void 9050 S_sv_dup_hvaux(pTHX_ const SV * const ssv, SV *dsv, CLONE_PARAMS * const param); 9051 # define PERL_ARGS_ASSERT_SV_DUP_HVAUX \ 9052 assert(ssv); assert(dsv); assert(param) 9053 9054 STATIC SV ** 9055 S_sv_dup_inc_multiple(pTHX_ SV * const *source, SV **dest, SSize_t items, CLONE_PARAMS * const param); 9056 # define PERL_ARGS_ASSERT_SV_DUP_INC_MULTIPLE \ 9057 assert(source); assert(dest); assert(param) 9058 9059 STATIC void 9060 S_unreferenced_to_tmp_stack(pTHX_ AV * const unreferenced); 9061 # define PERL_ARGS_ASSERT_UNREFERENCED_TO_TMP_STACK \ 9062 assert(unreferenced) 9063 9064 # endif /* defined(USE_ITHREADS) */ 9065 #endif /* defined(PERL_IN_SV_C) */ 9066 #if defined(PERL_IN_TOKE_C) 9067 STATIC int 9068 S_ao(pTHX_ int toketype); 9069 # define PERL_ARGS_ASSERT_AO 9070 9071 STATIC void 9072 S_check_uni(pTHX); 9073 # define PERL_ARGS_ASSERT_CHECK_UNI 9074 9075 STATIC void 9076 S_checkcomma(pTHX_ const char *s, const char *name, const char *what); 9077 # define PERL_ARGS_ASSERT_CHECKCOMMA \ 9078 assert(s); assert(name); assert(what) 9079 9080 STATIC char * 9081 S_filter_gets(pTHX_ SV *sv, STRLEN append) 9082 __attribute__warn_unused_result__; 9083 # define PERL_ARGS_ASSERT_FILTER_GETS \ 9084 assert(sv) 9085 9086 STATIC HV * 9087 S_find_in_my_stash(pTHX_ const char *pkgname, STRLEN len) 9088 __attribute__warn_unused_result__; 9089 # define PERL_ARGS_ASSERT_FIND_IN_MY_STASH \ 9090 assert(pkgname) 9091 9092 STATIC void 9093 S_force_ident(pTHX_ const char *s, int kind); 9094 # define PERL_ARGS_ASSERT_FORCE_IDENT \ 9095 assert(s) 9096 9097 STATIC void 9098 S_force_ident_maybe_lex(pTHX_ char pit); 9099 # define PERL_ARGS_ASSERT_FORCE_IDENT_MAYBE_LEX 9100 9101 STATIC void 9102 S_force_next(pTHX_ I32 type); 9103 # define PERL_ARGS_ASSERT_FORCE_NEXT 9104 9105 STATIC char * 9106 S_force_strict_version(pTHX_ char *s); 9107 # define PERL_ARGS_ASSERT_FORCE_STRICT_VERSION \ 9108 assert(s) 9109 9110 STATIC char * 9111 S_force_version(pTHX_ char *s, int guessing); 9112 # define PERL_ARGS_ASSERT_FORCE_VERSION \ 9113 assert(s) 9114 9115 STATIC char * 9116 S_force_word(pTHX_ char *start, int token, int check_keyword, int allow_pack); 9117 # define PERL_ARGS_ASSERT_FORCE_WORD \ 9118 assert(start) 9119 9120 STATIC SV * 9121 S_get_and_check_backslash_N_name_wrapper(pTHX_ const char *s, const char * const e) 9122 __attribute__warn_unused_result__; 9123 # define PERL_ARGS_ASSERT_GET_AND_CHECK_BACKSLASH_N_NAME_WRAPPER \ 9124 assert(s); assert(e) 9125 9126 STATIC void 9127 S_incline(pTHX_ const char *s, const char *end); 9128 # define PERL_ARGS_ASSERT_INCLINE \ 9129 assert(s); assert(end) 9130 9131 STATIC int 9132 S_intuit_method(pTHX_ char *s, SV *ioname, CV *cv); 9133 # define PERL_ARGS_ASSERT_INTUIT_METHOD \ 9134 assert(s) 9135 9136 STATIC int 9137 S_intuit_more(pTHX_ char *s, char *e); 9138 # define PERL_ARGS_ASSERT_INTUIT_MORE \ 9139 assert(s); assert(e) 9140 9141 STATIC I32 9142 S_lop(pTHX_ I32 f, U8 x, char *s); 9143 # define PERL_ARGS_ASSERT_LOP \ 9144 assert(s) 9145 9146 PERL_STATIC_NO_RET void 9147 S_missingterm(pTHX_ char *s, STRLEN len) 9148 __attribute__noreturn__; 9149 # define PERL_ARGS_ASSERT_MISSINGTERM 9150 9151 STATIC SV * 9152 S_new_constant(pTHX_ const char *s, STRLEN len, const char *key, STRLEN keylen, SV *sv, SV *pv, const char *type, STRLEN typelen, const char **error_msg); 9153 # define PERL_ARGS_ASSERT_NEW_CONSTANT \ 9154 assert(key); assert(sv) 9155 9156 STATIC void 9157 S_no_op(pTHX_ const char * const what, char *s); 9158 # define PERL_ARGS_ASSERT_NO_OP \ 9159 assert(what) 9160 9161 STATIC void 9162 S_parse_ident(pTHX_ char **s, char **d, char * const e, int allow_package, bool is_utf8, bool check_dollar, bool tick_warn); 9163 # define PERL_ARGS_ASSERT_PARSE_IDENT \ 9164 assert(s); assert(d); assert(e) 9165 9166 STATIC int 9167 S_pending_ident(pTHX); 9168 # define PERL_ARGS_ASSERT_PENDING_IDENT 9169 9170 STATIC char * 9171 S_scan_const(pTHX_ char *start) 9172 __attribute__warn_unused_result__; 9173 # define PERL_ARGS_ASSERT_SCAN_CONST \ 9174 assert(start) 9175 9176 STATIC char * 9177 S_scan_formline(pTHX_ char *s) 9178 __attribute__warn_unused_result__; 9179 # define PERL_ARGS_ASSERT_SCAN_FORMLINE \ 9180 assert(s) 9181 9182 STATIC char * 9183 S_scan_heredoc(pTHX_ char *s) 9184 __attribute__warn_unused_result__; 9185 # define PERL_ARGS_ASSERT_SCAN_HEREDOC \ 9186 assert(s) 9187 9188 STATIC char * 9189 S_scan_ident(pTHX_ char *s, char *dest, STRLEN destlen, I32 ck_uni); 9190 # define PERL_ARGS_ASSERT_SCAN_IDENT \ 9191 assert(s); assert(dest) 9192 9193 STATIC char * 9194 S_scan_inputsymbol(pTHX_ char *start) 9195 __attribute__warn_unused_result__; 9196 # define PERL_ARGS_ASSERT_SCAN_INPUTSYMBOL \ 9197 assert(start) 9198 9199 STATIC char * 9200 S_scan_pat(pTHX_ char *start, I32 type) 9201 __attribute__warn_unused_result__; 9202 # define PERL_ARGS_ASSERT_SCAN_PAT \ 9203 assert(start) 9204 9205 STATIC char * 9206 S_scan_subst(pTHX_ char *start) 9207 __attribute__warn_unused_result__; 9208 # define PERL_ARGS_ASSERT_SCAN_SUBST \ 9209 assert(start) 9210 9211 STATIC char * 9212 S_scan_trans(pTHX_ char *start) 9213 __attribute__warn_unused_result__; 9214 # define PERL_ARGS_ASSERT_SCAN_TRANS \ 9215 assert(start) 9216 9217 STATIC I32 9218 S_sublex_done(pTHX) 9219 __attribute__warn_unused_result__; 9220 # define PERL_ARGS_ASSERT_SUBLEX_DONE 9221 9222 STATIC I32 9223 S_sublex_push(pTHX) 9224 __attribute__warn_unused_result__; 9225 # define PERL_ARGS_ASSERT_SUBLEX_PUSH 9226 9227 STATIC I32 9228 S_sublex_start(pTHX) 9229 __attribute__warn_unused_result__; 9230 # define PERL_ARGS_ASSERT_SUBLEX_START 9231 9232 STATIC char * 9233 S_swallow_bom(pTHX_ U8 *s) 9234 __attribute__warn_unused_result__; 9235 # define PERL_ARGS_ASSERT_SWALLOW_BOM \ 9236 assert(s) 9237 9238 STATIC char * 9239 S_tokenize_use(pTHX_ int is_use, char *s) 9240 __attribute__warn_unused_result__; 9241 # define PERL_ARGS_ASSERT_TOKENIZE_USE \ 9242 assert(s) 9243 9244 STATIC SV * 9245 S_tokeq(pTHX_ SV *sv); 9246 # define PERL_ARGS_ASSERT_TOKEQ \ 9247 assert(sv) 9248 9249 STATIC void 9250 S_update_debugger_info(pTHX_ SV *orig_sv, const char * const buf, STRLEN len); 9251 # define PERL_ARGS_ASSERT_UPDATE_DEBUGGER_INFO 9252 9253 STATIC int 9254 S_yywarn(pTHX_ const char * const s, U32 flags); 9255 # define PERL_ARGS_ASSERT_YYWARN \ 9256 assert(s) 9257 9258 # if defined(DEBUGGING) 9259 STATIC void 9260 S_printbuf(pTHX_ const char * const fmt, const char * const s) 9261 __attribute__format__(__printf__,pTHX_1,0); 9262 # define PERL_ARGS_ASSERT_PRINTBUF \ 9263 assert(fmt); assert(s) 9264 9265 STATIC int 9266 S_tokereport(pTHX_ I32 rv, const YYSTYPE *lvalp); 9267 # define PERL_ARGS_ASSERT_TOKEREPORT \ 9268 assert(lvalp) 9269 9270 # endif /* defined(DEBUGGING) */ 9271 # if defined(PERL_CR_FILTER) 9272 STATIC I32 9273 S_cr_textfilter(pTHX_ int idx, SV *sv, int maxlen); 9274 # define PERL_ARGS_ASSERT_CR_TEXTFILTER 9275 9276 STATIC void 9277 S_strip_return(pTHX_ SV *sv); 9278 # define PERL_ARGS_ASSERT_STRIP_RETURN \ 9279 assert(sv) 9280 9281 # endif /* defined(PERL_CR_FILTER) */ 9282 # if !defined(PERL_NO_UTF16_FILTER) 9283 STATIC U8 * 9284 S_add_utf16_textfilter(pTHX_ U8 * const s, bool reversed); 9285 # define PERL_ARGS_ASSERT_ADD_UTF16_TEXTFILTER \ 9286 assert(s) 9287 9288 STATIC I32 9289 S_utf16_textfilter(pTHX_ int idx, SV *sv, int maxlen); 9290 # define PERL_ARGS_ASSERT_UTF16_TEXTFILTER \ 9291 assert(sv) 9292 9293 # endif /* !defined(PERL_NO_UTF16_FILTER) */ 9294 #endif /* defined(PERL_IN_TOKE_C) */ 9295 #if defined(PERL_IN_UNIVERSAL_C) 9296 STATIC bool 9297 S_isa_lookup(pTHX_ HV *stash, SV *namesv, const char *name, STRLEN len, U32 flags); 9298 9299 STATIC bool 9300 S_sv_derived_from_svpvn(pTHX_ SV *sv, SV *namesv, const char *name, const STRLEN len, U32 flags); 9301 9302 #endif 9303 #if defined(PERL_IN_UTF8_C) 9304 STATIC UV 9305 S__to_utf8_case(pTHX_ const UV original, const U8 *p, U8 *ustrp, STRLEN *lenp, SV *invlist, const I32 * const invmap, const U32 * const * const aux_tables, const U8 * const aux_table_lengths, const char * const normal); 9306 # define PERL_ARGS_ASSERT__TO_UTF8_CASE \ 9307 assert(ustrp); assert(lenp); assert(invlist); assert(invmap); assert(normal) 9308 9309 STATIC UV 9310 S_check_locale_boundary_crossing(pTHX_ const U8 * const p, const UV result, U8 * const ustrp, STRLEN *lenp) 9311 __attribute__warn_unused_result__; 9312 # define PERL_ARGS_ASSERT_CHECK_LOCALE_BOUNDARY_CROSSING \ 9313 assert(p); assert(ustrp); assert(lenp) 9314 9315 STATIC HV * 9316 S_new_msg_hv(pTHX_ const char * const message, U32 categories, U32 flag) 9317 __attribute__warn_unused_result__; 9318 # define PERL_ARGS_ASSERT_NEW_MSG_HV \ 9319 assert(message) 9320 9321 STATIC UV 9322 S_to_case_cp_list(pTHX_ const UV original, const U32 ** const remaining_list, Size_t *remaining_count, SV *invlist, const I32 * const invmap, const U32 * const * const aux_tables, const U8 * const aux_table_lengths, const char * const normal); 9323 # define PERL_ARGS_ASSERT_TO_CASE_CP_LIST \ 9324 assert(invlist); assert(invmap); assert(normal) 9325 9326 STATIC U8 9327 S_to_lower_latin1(const U8 c, U8 *p, STRLEN *lenp, const char dummy) 9328 __attribute__warn_unused_result__; 9329 # define PERL_ARGS_ASSERT_TO_LOWER_LATIN1 9330 9331 STATIC UV 9332 S_turkic_fc(pTHX_ const U8 * const p, const U8 * const e, U8 *ustrp, STRLEN *lenp); 9333 # define PERL_ARGS_ASSERT_TURKIC_FC \ 9334 assert(p); assert(e); assert(ustrp); assert(lenp) 9335 9336 STATIC UV 9337 S_turkic_lc(pTHX_ const U8 * const p0, const U8 * const e, U8 *ustrp, STRLEN *lenp); 9338 # define PERL_ARGS_ASSERT_TURKIC_LC \ 9339 assert(p0); assert(e); assert(ustrp); assert(lenp) 9340 9341 STATIC UV 9342 S_turkic_uc(pTHX_ const U8 * const p, const U8 * const e, U8 *ustrp, STRLEN *lenp); 9343 # define PERL_ARGS_ASSERT_TURKIC_UC \ 9344 assert(p); assert(e); assert(ustrp); assert(lenp) 9345 9346 STATIC char * 9347 S_unexpected_non_continuation_text(pTHX_ const U8 * const s, STRLEN print_len, const STRLEN non_cont_byte_pos, const STRLEN expect_len) 9348 __attribute__warn_unused_result__; 9349 # define PERL_ARGS_ASSERT_UNEXPECTED_NON_CONTINUATION_TEXT \ 9350 assert(s) 9351 9352 # if 0 9353 STATIC void 9354 S_warn_on_first_deprecated_use(pTHX_ U32 category, const char * const name, const char * const alternative, const bool use_locale, const char * const file, const unsigned line); 9355 # define PERL_ARGS_ASSERT_WARN_ON_FIRST_DEPRECATED_USE \ 9356 assert(name); assert(alternative); assert(file) 9357 9358 # endif 9359 # if !defined(PERL_NO_INLINE_FUNCTIONS) 9360 PERL_STATIC_INLINE int 9361 S_does_utf8_overflow(const U8 * const s, const U8 *e, const bool consider_overlongs) 9362 __attribute__warn_unused_result__; 9363 # define PERL_ARGS_ASSERT_DOES_UTF8_OVERFLOW \ 9364 assert(s); assert(e) 9365 9366 PERL_STATIC_INLINE int 9367 S_isFF_overlong(const U8 * const s, const STRLEN len) 9368 __attribute__warn_unused_result__; 9369 # define PERL_ARGS_ASSERT_ISFF_OVERLONG \ 9370 assert(s) 9371 9372 PERL_STATIC_INLINE bool 9373 S_is_utf8_common(pTHX_ const U8 * const p, const U8 * const e, SV * const invlist) 9374 __attribute__warn_unused_result__; 9375 # define PERL_ARGS_ASSERT_IS_UTF8_COMMON \ 9376 assert(p); assert(e) 9377 9378 PERL_STATIC_INLINE int 9379 S_is_utf8_overlong(const U8 * const s, const STRLEN len) 9380 __attribute__warn_unused_result__; 9381 # define PERL_ARGS_ASSERT_IS_UTF8_OVERLONG \ 9382 assert(s) 9383 9384 # endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */ 9385 #endif /* defined(PERL_IN_UTF8_C) */ 9386 #if defined(PERL_IN_UTIL_C) 9387 STATIC bool 9388 S_ckwarn_common(pTHX_ U32 w); 9389 # define PERL_ARGS_ASSERT_CKWARN_COMMON 9390 9391 STATIC SV * 9392 S_mess_alloc(pTHX); 9393 # define PERL_ARGS_ASSERT_MESS_ALLOC 9394 9395 STATIC SV * 9396 S_with_queued_errors(pTHX_ SV *ex); 9397 # define PERL_ARGS_ASSERT_WITH_QUEUED_ERRORS \ 9398 assert(ex) 9399 9400 STATIC void 9401 S_xs_version_bootcheck(pTHX_ U32 items, U32 ax, const char *xs_p, STRLEN xs_len); 9402 # define PERL_ARGS_ASSERT_XS_VERSION_BOOTCHECK \ 9403 assert(xs_p) 9404 9405 # if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL) 9406 STATIC void 9407 S_mem_log_common(enum mem_log_type mlt, const UV n, const UV typesize, const char *type_name, const SV *sv, Malloc_t oldalloc, Malloc_t newalloc, const char *filename, const int linenumber, const char *funcname); 9408 # define PERL_ARGS_ASSERT_MEM_LOG_COMMON \ 9409 assert(type_name); assert(filename); assert(funcname) 9410 9411 # endif 9412 # if !defined(PERL_NO_INLINE_FUNCTIONS) 9413 PERL_STATIC_INLINE U32 9414 S_ptr_hash(PTRV u); 9415 # define PERL_ARGS_ASSERT_PTR_HASH 9416 9417 # endif 9418 # if defined(PERL_USES_PL_PIDSTATUS) 9419 STATIC void 9420 S_pidgone(pTHX_ Pid_t pid, int status); 9421 # define PERL_ARGS_ASSERT_PIDGONE 9422 9423 # endif 9424 #endif /* defined(PERL_IN_UTIL_C) */ 9425 #if defined(PERL_MEM_LOG) 9426 PERL_CALLCONV Malloc_t 9427 Perl_mem_log_alloc(const UV nconst, UV typesize, const char *type_name, Malloc_t newalloc, const char *filename, const int linenumber, const char *funcname); 9428 # define PERL_ARGS_ASSERT_MEM_LOG_ALLOC \ 9429 assert(type_name); assert(filename); assert(funcname) 9430 9431 PERL_CALLCONV void 9432 Perl_mem_log_del_sv(const SV *sv, const char *filename, int linenumber, const char *funcname); 9433 # define PERL_ARGS_ASSERT_MEM_LOG_DEL_SV \ 9434 assert(sv); assert(filename); assert(funcname) 9435 9436 PERL_CALLCONV Malloc_t 9437 Perl_mem_log_free(Malloc_t oldalloc, const char *filename, const int linenumber, const char *funcname); 9438 # define PERL_ARGS_ASSERT_MEM_LOG_FREE \ 9439 assert(filename); assert(funcname) 9440 9441 PERL_CALLCONV void 9442 Perl_mem_log_new_sv(const SV *sv, const char *filename, int linenumber, const char *funcname); 9443 # define PERL_ARGS_ASSERT_MEM_LOG_NEW_SV \ 9444 assert(sv); assert(filename); assert(funcname) 9445 9446 PERL_CALLCONV Malloc_t 9447 Perl_mem_log_realloc(const UV n, const UV typesize, const char *type_name, Malloc_t oldalloc, Malloc_t newalloc, const char *filename, const int linenumber, const char *funcname); 9448 # define PERL_ARGS_ASSERT_MEM_LOG_REALLOC \ 9449 assert(type_name); assert(filename); assert(funcname) 9450 9451 #endif /* defined(PERL_MEM_LOG) */ 9452 #if !defined(PERL_NO_INLINE_FUNCTIONS) 9453 PERL_STATIC_INLINE I32 * 9454 Perl_CvDEPTH(const CV * const sv); 9455 # define PERL_ARGS_ASSERT_CVDEPTH \ 9456 assert(sv) 9457 9458 PERL_STATIC_INLINE GV * 9459 Perl_CvGV(pTHX_ CV *sv); 9460 # define PERL_ARGS_ASSERT_CVGV \ 9461 assert(sv) 9462 9463 PERL_STATIC_INLINE I32 9464 Perl_POPMARK(pTHX); 9465 # define PERL_ARGS_ASSERT_POPMARK 9466 9467 PERL_STATIC_INLINE struct regexp * 9468 Perl_ReANY(const REGEXP * const re); 9469 # define PERL_ARGS_ASSERT_REANY \ 9470 assert(re) 9471 9472 PERL_STATIC_INLINE void 9473 Perl_SvAMAGIC_off(SV *sv); 9474 # define PERL_ARGS_ASSERT_SVAMAGIC_OFF \ 9475 assert(sv) 9476 9477 PERL_STATIC_INLINE void 9478 Perl_SvAMAGIC_on(SV *sv); 9479 # define PERL_ARGS_ASSERT_SVAMAGIC_ON \ 9480 assert(sv) 9481 9482 PERL_STATIC_INLINE void 9483 Perl_SvGETMAGIC(pTHX_ SV *sv); 9484 # define PERL_ARGS_ASSERT_SVGETMAGIC \ 9485 assert(sv) 9486 9487 PERL_STATIC_INLINE IV 9488 Perl_SvIV(pTHX_ SV *sv); 9489 # define PERL_ARGS_ASSERT_SVIV \ 9490 assert(sv) 9491 9492 PERL_STATIC_INLINE IV 9493 Perl_SvIV_nomg(pTHX_ SV *sv); 9494 # define PERL_ARGS_ASSERT_SVIV_NOMG \ 9495 assert(sv) 9496 9497 PERL_STATIC_INLINE NV 9498 Perl_SvNV(pTHX_ SV *sv); 9499 # define PERL_ARGS_ASSERT_SVNV \ 9500 assert(sv) 9501 9502 PERL_STATIC_INLINE NV 9503 Perl_SvNV_nomg(pTHX_ SV *sv); 9504 # define PERL_ARGS_ASSERT_SVNV_NOMG \ 9505 assert(sv) 9506 9507 PERL_STATIC_FORCE_INLINE bool 9508 Perl_SvPVXtrue(pTHX_ SV *sv) 9509 __attribute__always_inline__; 9510 # define PERL_ARGS_ASSERT_SVPVXTRUE \ 9511 assert(sv) 9512 9513 PERL_STATIC_INLINE void 9514 Perl_SvREFCNT_dec(pTHX_ SV *sv); 9515 # define PERL_ARGS_ASSERT_SVREFCNT_DEC 9516 9517 PERL_STATIC_INLINE void 9518 Perl_SvREFCNT_dec_NN(pTHX_ SV *sv); 9519 # define PERL_ARGS_ASSERT_SVREFCNT_DEC_NN \ 9520 assert(sv) 9521 9522 PERL_STATIC_INLINE SV * 9523 Perl_SvREFCNT_dec_ret_NULL(pTHX_ SV *sv); 9524 # define PERL_ARGS_ASSERT_SVREFCNT_DEC_RET_NULL 9525 9526 PERL_STATIC_INLINE SV * 9527 Perl_SvREFCNT_inc(SV *sv); 9528 # define PERL_ARGS_ASSERT_SVREFCNT_INC 9529 9530 PERL_STATIC_INLINE SV * 9531 Perl_SvREFCNT_inc_NN(SV *sv); 9532 # define PERL_ARGS_ASSERT_SVREFCNT_INC_NN \ 9533 assert(sv) 9534 9535 PERL_STATIC_INLINE void 9536 Perl_SvREFCNT_inc_void(SV *sv); 9537 # define PERL_ARGS_ASSERT_SVREFCNT_INC_VOID 9538 9539 PERL_STATIC_INLINE bool 9540 Perl_SvTRUE(pTHX_ SV *sv); 9541 # define PERL_ARGS_ASSERT_SVTRUE 9542 9543 PERL_STATIC_INLINE bool 9544 Perl_SvTRUE_NN(pTHX_ SV *sv); 9545 # define PERL_ARGS_ASSERT_SVTRUE_NN \ 9546 assert(sv) 9547 9548 PERL_STATIC_INLINE bool 9549 Perl_SvTRUE_common(pTHX_ SV *sv, const bool sv_2bool_is_fallback); 9550 # define PERL_ARGS_ASSERT_SVTRUE_COMMON \ 9551 assert(sv) 9552 9553 PERL_STATIC_INLINE bool 9554 Perl_SvTRUE_nomg(pTHX_ SV *sv); 9555 # define PERL_ARGS_ASSERT_SVTRUE_NOMG 9556 9557 PERL_STATIC_INLINE UV 9558 Perl_SvUV(pTHX_ SV *sv); 9559 # define PERL_ARGS_ASSERT_SVUV \ 9560 assert(sv) 9561 9562 PERL_STATIC_INLINE UV 9563 Perl_SvUV_nomg(pTHX_ SV *sv); 9564 # define PERL_ARGS_ASSERT_SVUV_NOMG \ 9565 assert(sv) 9566 9567 PERL_STATIC_INLINE I32 9568 Perl_TOPMARK(pTHX); 9569 # define PERL_ARGS_ASSERT_TOPMARK 9570 9571 PERL_STATIC_INLINE void 9572 Perl_append_utf8_from_native_byte(const U8 byte, U8 **dest); 9573 # define PERL_ARGS_ASSERT_APPEND_UTF8_FROM_NATIVE_BYTE \ 9574 assert(dest) 9575 9576 PERL_STATIC_INLINE Size_t 9577 Perl_av_count(pTHX_ AV *av) 9578 __attribute__warn_unused_result__; 9579 # define PERL_ARGS_ASSERT_AV_COUNT \ 9580 assert(av) 9581 9582 PERL_STATIC_INLINE SV ** 9583 Perl_av_fetch_simple(pTHX_ AV *av, SSize_t key, I32 lval) 9584 __attribute__warn_unused_result__; 9585 # define PERL_ARGS_ASSERT_AV_FETCH_SIMPLE \ 9586 assert(av) 9587 9588 PERL_STATIC_INLINE AV * 9589 Perl_av_new_alloc(pTHX_ SSize_t size, bool zeroflag) 9590 __attribute__warn_unused_result__; 9591 # define PERL_ARGS_ASSERT_AV_NEW_ALLOC 9592 9593 PERL_STATIC_INLINE void 9594 Perl_av_push_simple(pTHX_ AV *av, SV *val); 9595 # define PERL_ARGS_ASSERT_AV_PUSH_SIMPLE \ 9596 assert(av); assert(val) 9597 9598 PERL_STATIC_INLINE SV ** 9599 Perl_av_store_simple(pTHX_ AV *av, SSize_t key, SV *val); 9600 # define PERL_ARGS_ASSERT_AV_STORE_SIMPLE \ 9601 assert(av) 9602 9603 PERL_STATIC_INLINE I32 9604 Perl_foldEQ(pTHX_ const char *a, const char *b, I32 len); 9605 # define PERL_ARGS_ASSERT_FOLDEQ \ 9606 assert(a); assert(b) 9607 9608 PERL_STATIC_INLINE I32 9609 Perl_foldEQ_latin1(pTHX_ const char *a, const char *b, I32 len); 9610 # define PERL_ARGS_ASSERT_FOLDEQ_LATIN1 \ 9611 assert(a); assert(b) 9612 9613 PERL_STATIC_INLINE I32 9614 Perl_foldEQ_locale(pTHX_ const char *a, const char *b, I32 len); 9615 # define PERL_ARGS_ASSERT_FOLDEQ_LOCALE \ 9616 assert(a); assert(b) 9617 9618 PERL_STATIC_INLINE MGVTBL * 9619 Perl_get_vtbl(pTHX_ int vtbl_id) 9620 __attribute__warn_unused_result__; 9621 # define PERL_ARGS_ASSERT_GET_VTBL 9622 9623 PERL_STATIC_INLINE Size_t 9624 Perl_isC9_STRICT_UTF8_CHAR(const U8 * const s0, const U8 * const e) 9625 __attribute__warn_unused_result__; 9626 # define PERL_ARGS_ASSERT_ISC9_STRICT_UTF8_CHAR \ 9627 assert(s0); assert(e) 9628 9629 PERL_STATIC_INLINE Size_t 9630 Perl_isSTRICT_UTF8_CHAR(const U8 * const s0, const U8 * const e) 9631 __attribute__warn_unused_result__; 9632 # define PERL_ARGS_ASSERT_ISSTRICT_UTF8_CHAR \ 9633 assert(s0); assert(e) 9634 9635 PERL_STATIC_INLINE Size_t 9636 Perl_isUTF8_CHAR(const U8 * const s0, const U8 * const e) 9637 __attribute__warn_unused_result__; 9638 # define PERL_ARGS_ASSERT_ISUTF8_CHAR \ 9639 assert(s0); assert(e) 9640 9641 PERL_STATIC_INLINE Size_t 9642 Perl_isUTF8_CHAR_flags(const U8 * const s0, const U8 * const e, const U32 flags) 9643 __attribute__warn_unused_result__; 9644 # define PERL_ARGS_ASSERT_ISUTF8_CHAR_FLAGS \ 9645 assert(s0); assert(e) 9646 9647 PERL_STATIC_INLINE bool 9648 Perl_is_c9strict_utf8_string_loclen(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el); 9649 # define PERL_ARGS_ASSERT_IS_C9STRICT_UTF8_STRING_LOCLEN \ 9650 assert(s) 9651 9652 PERL_STATIC_INLINE bool 9653 Perl_is_safe_syscall(pTHX_ const char *pv, STRLEN len, const char *what, const char *op_name) 9654 __attribute__warn_unused_result__; 9655 # define PERL_ARGS_ASSERT_IS_SAFE_SYSCALL \ 9656 assert(pv); assert(what); assert(op_name) 9657 9658 PERL_STATIC_INLINE bool 9659 Perl_is_strict_utf8_string_loclen(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el); 9660 # define PERL_ARGS_ASSERT_IS_STRICT_UTF8_STRING_LOCLEN \ 9661 assert(s) 9662 9663 PERL_STATIC_INLINE bool 9664 Perl_is_utf8_fixed_width_buf_loclen_flags(const U8 * const s, STRLEN len, const U8 **ep, STRLEN *el, const U32 flags); 9665 # define PERL_ARGS_ASSERT_IS_UTF8_FIXED_WIDTH_BUF_LOCLEN_FLAGS \ 9666 assert(s) 9667 9668 PERL_STATIC_INLINE bool 9669 Perl_is_utf8_invariant_string_loc(const U8 * const s, STRLEN len, const U8 **ep) 9670 __attribute__warn_unused_result__; 9671 # define PERL_ARGS_ASSERT_IS_UTF8_INVARIANT_STRING_LOC \ 9672 assert(s) 9673 9674 PERL_STATIC_INLINE bool 9675 Perl_is_utf8_string_flags(const U8 *s, STRLEN len, const U32 flags) 9676 __attribute__warn_unused_result__; 9677 # define PERL_ARGS_ASSERT_IS_UTF8_STRING_FLAGS \ 9678 assert(s) 9679 9680 PERL_STATIC_INLINE bool 9681 Perl_is_utf8_string_loclen(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el); 9682 # define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOCLEN \ 9683 assert(s) 9684 9685 PERL_STATIC_INLINE bool 9686 Perl_is_utf8_string_loclen_flags(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el, const U32 flags); 9687 # define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOCLEN_FLAGS \ 9688 assert(s) 9689 9690 PERL_STATIC_INLINE bool 9691 Perl_is_utf8_valid_partial_char_flags(const U8 * const s0, const U8 * const e, const U32 flags) 9692 __attribute__warn_unused_result__; 9693 # define PERL_ARGS_ASSERT_IS_UTF8_VALID_PARTIAL_CHAR_FLAGS \ 9694 assert(s0); assert(e) 9695 9696 PERL_STATIC_INLINE unsigned 9697 Perl_lsbit_pos32(U32 word) 9698 __attribute__warn_unused_result__; 9699 # define PERL_ARGS_ASSERT_LSBIT_POS32 9700 9701 PERL_STATIC_INLINE char * 9702 Perl_mortal_getenv(const char *str) 9703 __attribute__warn_unused_result__; 9704 # define PERL_ARGS_ASSERT_MORTAL_GETENV \ 9705 assert(str) 9706 9707 PERL_STATIC_INLINE unsigned 9708 Perl_msbit_pos32(U32 word) 9709 __attribute__warn_unused_result__; 9710 # define PERL_ARGS_ASSERT_MSBIT_POS32 9711 9712 PERL_STATIC_INLINE OP * 9713 Perl_newPADxVOP(pTHX_ I32 type, I32 flags, PADOFFSET padix) 9714 __attribute__warn_unused_result__; 9715 # define PERL_ARGS_ASSERT_NEWPADXVOP 9716 9717 PERL_STATIC_INLINE SV * 9718 Perl_newRV_noinc(pTHX_ SV * const tmpRef) 9719 __attribute__warn_unused_result__; 9720 # define PERL_ARGS_ASSERT_NEWRV_NOINC \ 9721 assert(tmpRef) 9722 9723 PERL_STATIC_INLINE SV * 9724 Perl_newSV_type(pTHX_ const svtype type) 9725 __attribute__warn_unused_result__; 9726 # define PERL_ARGS_ASSERT_NEWSV_TYPE 9727 9728 PERL_STATIC_FORCE_INLINE SV * 9729 Perl_newSV_type_mortal(pTHX_ const svtype type) 9730 __attribute__warn_unused_result__ 9731 __attribute__always_inline__; 9732 # define PERL_ARGS_ASSERT_NEWSV_TYPE_MORTAL 9733 9734 PERL_STATIC_INLINE char * 9735 Perl_savepv(pTHX_ const char *pv) 9736 __attribute__malloc__ 9737 __attribute__warn_unused_result__; 9738 # define PERL_ARGS_ASSERT_SAVEPV 9739 9740 PERL_STATIC_INLINE char * 9741 Perl_savepvn(pTHX_ const char *pv, Size_t len) 9742 __attribute__malloc__ 9743 __attribute__warn_unused_result__; 9744 # define PERL_ARGS_ASSERT_SAVEPVN 9745 9746 PERL_STATIC_INLINE char * 9747 Perl_savesharedsvpv(pTHX_ SV *sv) 9748 __attribute__malloc__ 9749 __attribute__warn_unused_result__; 9750 # define PERL_ARGS_ASSERT_SAVESHAREDSVPV \ 9751 assert(sv) 9752 9753 PERL_STATIC_INLINE char * 9754 Perl_savesvpv(pTHX_ SV *sv) 9755 __attribute__malloc__ 9756 __attribute__warn_unused_result__; 9757 # define PERL_ARGS_ASSERT_SAVESVPV \ 9758 assert(sv) 9759 9760 PERL_STATIC_INLINE unsigned 9761 Perl_single_1bit_pos32(U32 word) 9762 __attribute__warn_unused_result__; 9763 # define PERL_ARGS_ASSERT_SINGLE_1BIT_POS32 9764 9765 PERL_STATIC_INLINE bool 9766 Perl_sv_only_taint_gmagic(SV *sv); 9767 # define PERL_ARGS_ASSERT_SV_ONLY_TAINT_GMAGIC \ 9768 assert(sv) 9769 9770 PERL_STATIC_INLINE char * 9771 Perl_sv_pvbyten_force_wrapper(pTHX_ SV * const sv, STRLEN * const lp, const U32 dummy); 9772 # define PERL_ARGS_ASSERT_SV_PVBYTEN_FORCE_WRAPPER \ 9773 assert(sv) 9774 9775 PERL_STATIC_INLINE char * 9776 Perl_sv_pvutf8n_force_wrapper(pTHX_ SV * const sv, STRLEN * const lp, const U32 dummy); 9777 # define PERL_ARGS_ASSERT_SV_PVUTF8N_FORCE_WRAPPER \ 9778 assert(sv) 9779 9780 PERL_STATIC_INLINE char * 9781 Perl_sv_setpv_freshbuf(pTHX_ SV * const sv); 9782 # define PERL_ARGS_ASSERT_SV_SETPV_FRESHBUF \ 9783 assert(sv) 9784 9785 PERL_STATIC_INLINE IV 9786 Perl_utf8_distance(pTHX_ const U8 *a, const U8 *b) 9787 __attribute__warn_unused_result__; 9788 # define PERL_ARGS_ASSERT_UTF8_DISTANCE \ 9789 assert(a); assert(b) 9790 9791 PERL_STATIC_INLINE U8 * 9792 Perl_utf8_hop(const U8 *s, SSize_t off) 9793 __attribute__warn_unused_result__; 9794 # define PERL_ARGS_ASSERT_UTF8_HOP \ 9795 assert(s) 9796 9797 PERL_STATIC_INLINE U8 * 9798 Perl_utf8_hop_back(const U8 *s, SSize_t off, const U8 *start) 9799 __attribute__warn_unused_result__; 9800 # define PERL_ARGS_ASSERT_UTF8_HOP_BACK \ 9801 assert(s); assert(start) 9802 9803 PERL_STATIC_INLINE U8 * 9804 Perl_utf8_hop_forward(const U8 *s, SSize_t off, const U8 *end) 9805 __attribute__warn_unused_result__; 9806 # define PERL_ARGS_ASSERT_UTF8_HOP_FORWARD \ 9807 assert(s); assert(end) 9808 9809 PERL_STATIC_INLINE U8 * 9810 Perl_utf8_hop_safe(const U8 *s, SSize_t off, const U8 *start, const U8 *end) 9811 __attribute__warn_unused_result__; 9812 # define PERL_ARGS_ASSERT_UTF8_HOP_SAFE \ 9813 assert(s); assert(start); assert(end) 9814 9815 PERL_STATIC_INLINE UV 9816 Perl_utf8_to_uvchr_buf_helper(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen); 9817 # define PERL_ARGS_ASSERT_UTF8_TO_UVCHR_BUF_HELPER \ 9818 assert(s); assert(send) 9819 9820 PERL_STATIC_INLINE UV 9821 Perl_utf8n_to_uvchr_msgs(const U8 *s, STRLEN curlen, STRLEN *retlen, const U32 flags, U32 *errors, AV **msgs); 9822 # define PERL_ARGS_ASSERT_UTF8N_TO_UVCHR_MSGS \ 9823 assert(s) 9824 9825 PERL_STATIC_INLINE UV 9826 Perl_valid_utf8_to_uvchr(const U8 *s, STRLEN *retlen) 9827 __attribute__warn_unused_result__; 9828 # define PERL_ARGS_ASSERT_VALID_UTF8_TO_UVCHR \ 9829 assert(s) 9830 9831 PERL_STATIC_INLINE void 9832 Perl_cx_popblock(pTHX_ PERL_CONTEXT *cx); 9833 # define PERL_ARGS_ASSERT_CX_POPBLOCK \ 9834 assert(cx) 9835 9836 PERL_STATIC_INLINE void 9837 Perl_cx_popeval(pTHX_ PERL_CONTEXT *cx); 9838 # define PERL_ARGS_ASSERT_CX_POPEVAL \ 9839 assert(cx) 9840 9841 PERL_STATIC_INLINE void 9842 Perl_cx_popformat(pTHX_ PERL_CONTEXT *cx); 9843 # define PERL_ARGS_ASSERT_CX_POPFORMAT \ 9844 assert(cx) 9845 9846 PERL_STATIC_INLINE void 9847 Perl_cx_popgiven(pTHX_ PERL_CONTEXT *cx); 9848 # define PERL_ARGS_ASSERT_CX_POPGIVEN \ 9849 assert(cx) 9850 9851 PERL_STATIC_INLINE void 9852 Perl_cx_poploop(pTHX_ PERL_CONTEXT *cx); 9853 # define PERL_ARGS_ASSERT_CX_POPLOOP \ 9854 assert(cx) 9855 9856 PERL_STATIC_INLINE void 9857 Perl_cx_popsub(pTHX_ PERL_CONTEXT *cx); 9858 # define PERL_ARGS_ASSERT_CX_POPSUB \ 9859 assert(cx) 9860 9861 PERL_STATIC_INLINE void 9862 Perl_cx_popsub_args(pTHX_ PERL_CONTEXT *cx); 9863 # define PERL_ARGS_ASSERT_CX_POPSUB_ARGS \ 9864 assert(cx) 9865 9866 PERL_STATIC_INLINE void 9867 Perl_cx_popsub_common(pTHX_ PERL_CONTEXT *cx); 9868 # define PERL_ARGS_ASSERT_CX_POPSUB_COMMON \ 9869 assert(cx) 9870 9871 PERL_STATIC_INLINE void 9872 Perl_cx_popwhen(pTHX_ PERL_CONTEXT *cx); 9873 # define PERL_ARGS_ASSERT_CX_POPWHEN \ 9874 assert(cx) 9875 9876 PERL_STATIC_INLINE PERL_CONTEXT * 9877 Perl_cx_pushblock(pTHX_ U8 type, U8 gimme, SV **sp, I32 saveix); 9878 # define PERL_ARGS_ASSERT_CX_PUSHBLOCK \ 9879 assert(sp) 9880 9881 PERL_STATIC_INLINE void 9882 Perl_cx_pusheval(pTHX_ PERL_CONTEXT *cx, OP *retop, SV *namesv); 9883 # define PERL_ARGS_ASSERT_CX_PUSHEVAL \ 9884 assert(cx) 9885 9886 PERL_STATIC_INLINE void 9887 Perl_cx_pushformat(pTHX_ PERL_CONTEXT *cx, CV *cv, OP *retop, GV *gv); 9888 # define PERL_ARGS_ASSERT_CX_PUSHFORMAT \ 9889 assert(cx); assert(cv) 9890 9891 PERL_STATIC_INLINE void 9892 Perl_cx_pushgiven(pTHX_ PERL_CONTEXT *cx, SV *orig_defsv); 9893 # define PERL_ARGS_ASSERT_CX_PUSHGIVEN \ 9894 assert(cx) 9895 9896 PERL_STATIC_INLINE void 9897 Perl_cx_pushloop_for(pTHX_ PERL_CONTEXT *cx, void *itervarp, SV *itersave); 9898 # define PERL_ARGS_ASSERT_CX_PUSHLOOP_FOR \ 9899 assert(cx); assert(itervarp) 9900 9901 PERL_STATIC_INLINE void 9902 Perl_cx_pushloop_plain(pTHX_ PERL_CONTEXT *cx); 9903 # define PERL_ARGS_ASSERT_CX_PUSHLOOP_PLAIN \ 9904 assert(cx) 9905 9906 PERL_STATIC_INLINE void 9907 Perl_cx_pushsub(pTHX_ PERL_CONTEXT *cx, CV *cv, OP *retop, bool hasargs); 9908 # define PERL_ARGS_ASSERT_CX_PUSHSUB \ 9909 assert(cx); assert(cv) 9910 9911 PERL_STATIC_INLINE void 9912 Perl_cx_pushtry(pTHX_ PERL_CONTEXT *cx, OP *retop); 9913 # define PERL_ARGS_ASSERT_CX_PUSHTRY \ 9914 assert(cx) 9915 9916 PERL_STATIC_INLINE void 9917 Perl_cx_pushwhen(pTHX_ PERL_CONTEXT *cx); 9918 # define PERL_ARGS_ASSERT_CX_PUSHWHEN \ 9919 assert(cx) 9920 9921 PERL_STATIC_INLINE void 9922 Perl_cx_topblock(pTHX_ PERL_CONTEXT *cx); 9923 # define PERL_ARGS_ASSERT_CX_TOPBLOCK \ 9924 assert(cx) 9925 9926 PERL_STATIC_INLINE U8 9927 Perl_gimme_V(pTHX); 9928 # define PERL_ARGS_ASSERT_GIMME_V 9929 9930 # if !defined(HAS_STRLCAT) 9931 PERL_STATIC_INLINE Size_t 9932 Perl_my_strlcat(char *dst, const char *src, Size_t size); 9933 # define PERL_ARGS_ASSERT_MY_STRLCAT 9934 9935 # endif 9936 # if !defined(HAS_STRNLEN) 9937 PERL_STATIC_INLINE Size_t 9938 Perl_my_strnlen(const char *str, Size_t maxlen); 9939 # define PERL_ARGS_ASSERT_MY_STRNLEN \ 9940 assert(str) 9941 9942 # endif 9943 # if defined(PERL_CORE) || defined(PERL_EXT) 9944 PERL_STATIC_INLINE bool 9945 Perl_is_utf8_non_invariant_string(const U8 * const s, STRLEN len) 9946 __attribute__warn_unused_result__; 9947 # define PERL_ARGS_ASSERT_IS_UTF8_NON_INVARIANT_STRING \ 9948 assert(s) 9949 9950 PERL_STATIC_INLINE STRLEN 9951 S_sv_or_pv_pos_u2b(pTHX_ SV *sv, const char *pv, STRLEN pos, STRLEN *lenp); 9952 # define PERL_ARGS_ASSERT_SV_OR_PV_POS_U2B \ 9953 assert(sv); assert(pv) 9954 9955 PERL_STATIC_INLINE Size_t 9956 S_variant_under_utf8_count(const U8 * const s, const U8 * const e) 9957 __attribute__warn_unused_result__; 9958 # define PERL_ARGS_ASSERT_VARIANT_UNDER_UTF8_COUNT \ 9959 assert(s); assert(e) 9960 9961 # if !defined(HAS_MEMRCHR) 9962 PERL_STATIC_INLINE void * 9963 S_my_memrchr(const char *s, const char c, const STRLEN len); 9964 # define PERL_ARGS_ASSERT_MY_MEMRCHR \ 9965 assert(s) 9966 9967 # endif 9968 # endif /* defined(PERL_CORE) || defined(PERL_EXT) */ 9969 # if defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || \ 9970 defined(PERL_IN_PP_C) || defined(PERL_IN_REGCOMP_ANY) || \ 9971 defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C) || \ 9972 defined(PERL_IN_UTF8_C) 9973 PERL_STATIC_INLINE bool 9974 S__invlist_contains_cp(SV * const invlist, const UV cp) 9975 __attribute__warn_unused_result__; 9976 # define PERL_ARGS_ASSERT__INVLIST_CONTAINS_CP \ 9977 assert(invlist) 9978 9979 PERL_STATIC_INLINE UV 9980 S__invlist_len(SV * const invlist) 9981 __attribute__warn_unused_result__; 9982 # define PERL_ARGS_ASSERT__INVLIST_LEN \ 9983 assert(invlist) 9984 9985 PERL_STATIC_INLINE bool * 9986 S_get_invlist_offset_addr(SV *invlist) 9987 __attribute__warn_unused_result__; 9988 # define PERL_ARGS_ASSERT_GET_INVLIST_OFFSET_ADDR \ 9989 assert(invlist) 9990 9991 PERL_STATIC_INLINE UV * 9992 S_invlist_array(SV * const invlist) 9993 __attribute__warn_unused_result__; 9994 # define PERL_ARGS_ASSERT_INVLIST_ARRAY \ 9995 assert(invlist) 9996 9997 PERL_STATIC_INLINE bool 9998 S_is_invlist(const SV * const invlist) 9999 __attribute__warn_unused_result__; 10000 # define PERL_ARGS_ASSERT_IS_INVLIST 10001 10002 # endif /* defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || 10003 defined(PERL_IN_PP_C) || defined(PERL_IN_REGCOMP_ANY) || 10004 defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C) || 10005 defined(PERL_IN_UTF8_C) */ 10006 # if defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || \ 10007 defined(PERL_IN_REGCOMP_ANY) 10008 PERL_STATIC_INLINE SV * 10009 S_add_cp_to_invlist(pTHX_ SV *invlist, const UV cp) 10010 __attribute__warn_unused_result__; 10011 # define PERL_ARGS_ASSERT_ADD_CP_TO_INVLIST 10012 10013 PERL_STATIC_INLINE void 10014 S_invlist_extend(pTHX_ SV * const invlist, const UV len); 10015 # define PERL_ARGS_ASSERT_INVLIST_EXTEND \ 10016 assert(invlist) 10017 10018 PERL_STATIC_INLINE UV 10019 S_invlist_highest(SV * const invlist) 10020 __attribute__warn_unused_result__; 10021 # define PERL_ARGS_ASSERT_INVLIST_HIGHEST \ 10022 assert(invlist) 10023 10024 PERL_STATIC_INLINE void 10025 S_invlist_set_len(pTHX_ SV * const invlist, const UV len, const bool offset); 10026 # define PERL_ARGS_ASSERT_INVLIST_SET_LEN \ 10027 assert(invlist) 10028 10029 # endif /* defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || 10030 defined(PERL_IN_REGCOMP_ANY) */ 10031 # if defined(PERL_IN_OP_C) || defined(PERL_IN_PAD_C) 10032 PERL_STATIC_INLINE bool 10033 S_PadnameIN_SCOPE(const PADNAME * const pn, const U32 seq); 10034 # define PERL_ARGS_ASSERT_PADNAMEIN_SCOPE \ 10035 assert(pn) 10036 10037 # endif 10038 # if defined(PERL_IN_OP_C) || defined(PERL_IN_REGCOMP_ANY) 10039 PERL_STATIC_INLINE STRLEN * 10040 S_get_invlist_iter_addr(SV *invlist) 10041 __attribute__warn_unused_result__; 10042 # define PERL_ARGS_ASSERT_GET_INVLIST_ITER_ADDR \ 10043 assert(invlist) 10044 10045 PERL_STATIC_INLINE void 10046 S_invlist_iterfinish(SV *invlist); 10047 # define PERL_ARGS_ASSERT_INVLIST_ITERFINISH \ 10048 assert(invlist) 10049 10050 PERL_STATIC_INLINE void 10051 S_invlist_iterinit(SV *invlist); 10052 # define PERL_ARGS_ASSERT_INVLIST_ITERINIT \ 10053 assert(invlist) 10054 10055 PERL_STATIC_INLINE bool 10056 S_invlist_iternext(SV *invlist, UV *start, UV *end) 10057 __attribute__warn_unused_result__; 10058 # define PERL_ARGS_ASSERT_INVLIST_ITERNEXT \ 10059 assert(invlist); assert(start); assert(end) 10060 10061 # endif /* defined(PERL_IN_OP_C) || defined(PERL_IN_REGCOMP_ANY) */ 10062 # if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C) 10063 PERL_STATIC_INLINE bool 10064 S_lossless_NV_to_IV(const NV nv, IV *ivp) 10065 __attribute__warn_unused_result__; 10066 # define PERL_ARGS_ASSERT_LOSSLESS_NV_TO_IV \ 10067 assert(ivp) 10068 10069 # endif 10070 # if defined(PERL_IN_PP_C) || defined(PERL_IN_REGCOMP_ANY) || \ 10071 defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C) 10072 PERL_STATIC_INLINE const char * 10073 S_get_regex_charset_name(const U32 flags, STRLEN * const lenp); 10074 # define PERL_ARGS_ASSERT_GET_REGEX_CHARSET_NAME \ 10075 assert(lenp) 10076 10077 # endif 10078 # if defined(U64TYPE) 10079 PERL_STATIC_INLINE unsigned 10080 Perl_lsbit_pos64(U64 word) 10081 __attribute__warn_unused_result__; 10082 # define PERL_ARGS_ASSERT_LSBIT_POS64 10083 10084 PERL_STATIC_INLINE unsigned 10085 Perl_msbit_pos64(U64 word) 10086 __attribute__warn_unused_result__; 10087 # define PERL_ARGS_ASSERT_MSBIT_POS64 10088 10089 PERL_STATIC_INLINE unsigned 10090 Perl_single_1bit_pos64(U64 word) 10091 __attribute__warn_unused_result__; 10092 # define PERL_ARGS_ASSERT_SINGLE_1BIT_POS64 10093 10094 # endif /* defined(U64TYPE) */ 10095 # if defined(USE_ITHREADS) 10096 PERL_STATIC_INLINE AV * 10097 Perl_cop_file_avn(pTHX_ const COP *cop); 10098 # define PERL_ARGS_ASSERT_COP_FILE_AVN \ 10099 assert(cop) 10100 10101 # if !defined(PERL_IMPLICIT_SYS) 10102 PERL_STATIC_INLINE bool 10103 S_PerlEnv_putenv(pTHX_ char *str); 10104 # define PERL_ARGS_ASSERT_PERLENV_PUTENV \ 10105 assert(str) 10106 10107 # endif 10108 # endif /* defined(USE_ITHREADS) */ 10109 # if !defined(WIN32) 10110 PERL_STATIC_INLINE void * 10111 Perl_get_context(void) 10112 __attribute__warn_unused_result__; 10113 # define PERL_ARGS_ASSERT_GET_CONTEXT 10114 10115 # endif 10116 #endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */ 10117 #if defined(PERL_USE_3ARG_SIGHANDLER) 10118 PERL_CALLCONV Signal_t 10119 Perl_csighandler(int sig, Siginfo_t *info, void *uap); 10120 # define PERL_ARGS_ASSERT_CSIGHANDLER 10121 10122 PERL_CALLCONV Signal_t 10123 Perl_sighandler(int sig, Siginfo_t *info, void *uap) 10124 __attribute__visibility__("hidden"); 10125 # define PERL_ARGS_ASSERT_SIGHANDLER 10126 10127 #else /* if !defined(PERL_USE_3ARG_SIGHANDLER) */ 10128 PERL_CALLCONV Signal_t 10129 Perl_csighandler(int sig); 10130 # define PERL_ARGS_ASSERT_CSIGHANDLER 10131 10132 PERL_CALLCONV Signal_t 10133 Perl_sighandler(int sig) 10134 __attribute__visibility__("hidden"); 10135 # define PERL_ARGS_ASSERT_SIGHANDLER 10136 10137 #endif /* !defined(PERL_USE_3ARG_SIGHANDLER) */ 10138 #if defined(U64TYPE) 10139 10140 #endif 10141 #if defined(UNLINK_ALL_VERSIONS) 10142 PERL_CALLCONV I32 10143 Perl_unlnk(pTHX_ const char *f); 10144 # define PERL_ARGS_ASSERT_UNLNK \ 10145 assert(f) 10146 10147 #endif 10148 #if defined(USE_C_BACKTRACE) 10149 PERL_CALLCONV bool 10150 Perl_dump_c_backtrace(pTHX_ PerlIO *fp, int max_depth, int skip); 10151 # define PERL_ARGS_ASSERT_DUMP_C_BACKTRACE \ 10152 assert(fp) 10153 10154 /* PERL_CALLCONV void 10155 free_c_backtrace(pTHX_ Perl_c_backtrace *bt); */ 10156 10157 PERL_CALLCONV Perl_c_backtrace * 10158 Perl_get_c_backtrace(pTHX_ int max_depth, int skip) 10159 __attribute__visibility__("hidden"); 10160 # define PERL_ARGS_ASSERT_GET_C_BACKTRACE 10161 10162 PERL_CALLCONV SV * 10163 Perl_get_c_backtrace_dump(pTHX_ int max_depth, int skip); 10164 # define PERL_ARGS_ASSERT_GET_C_BACKTRACE_DUMP 10165 10166 #endif /* defined(USE_C_BACKTRACE) */ 10167 #if defined(USE_DTRACE) 10168 PERL_CALLCONV void 10169 Perl_dtrace_probe_call(pTHX_ CV *cv, bool is_call); 10170 # define PERL_ARGS_ASSERT_DTRACE_PROBE_CALL \ 10171 assert(cv) 10172 10173 PERL_CALLCONV void 10174 Perl_dtrace_probe_load(pTHX_ const char *name, bool is_loading); 10175 # define PERL_ARGS_ASSERT_DTRACE_PROBE_LOAD \ 10176 assert(name) 10177 10178 PERL_CALLCONV void 10179 Perl_dtrace_probe_op(pTHX_ const OP *op); 10180 # define PERL_ARGS_ASSERT_DTRACE_PROBE_OP \ 10181 assert(op) 10182 10183 PERL_CALLCONV void 10184 Perl_dtrace_probe_phase(pTHX_ enum perl_phase phase); 10185 # define PERL_ARGS_ASSERT_DTRACE_PROBE_PHASE 10186 10187 #endif /* defined(USE_DTRACE) */ 10188 #if defined(USE_ITHREADS) 10189 PERL_CALLCONV PADOFFSET 10190 Perl_alloccopstash(pTHX_ HV *hv); 10191 # define PERL_ARGS_ASSERT_ALLOCCOPSTASH \ 10192 assert(hv) 10193 10194 PERL_CALLCONV void * 10195 Perl_any_dup(pTHX_ void *v, const PerlInterpreter *proto_perl) 10196 __attribute__warn_unused_result__; 10197 # define PERL_ARGS_ASSERT_ANY_DUP \ 10198 assert(proto_perl) 10199 10200 PERL_CALLCONV void 10201 Perl_clone_params_del(CLONE_PARAMS *param); 10202 # define PERL_ARGS_ASSERT_CLONE_PARAMS_DEL \ 10203 assert(param) 10204 10205 PERL_CALLCONV CLONE_PARAMS * 10206 Perl_clone_params_new(PerlInterpreter * const from, PerlInterpreter * const to) 10207 __attribute__warn_unused_result__; 10208 # define PERL_ARGS_ASSERT_CLONE_PARAMS_NEW \ 10209 assert(from); assert(to) 10210 10211 PERL_CALLCONV PERL_CONTEXT * 10212 Perl_cx_dup(pTHX_ PERL_CONTEXT *cx, I32 ix, I32 max, CLONE_PARAMS *param) 10213 __attribute__warn_unused_result__; 10214 # define PERL_ARGS_ASSERT_CX_DUP \ 10215 assert(param) 10216 10217 PERL_CALLCONV DIR * 10218 Perl_dirp_dup(pTHX_ DIR * const dp, CLONE_PARAMS * const param) 10219 __attribute__warn_unused_result__; 10220 # define PERL_ARGS_ASSERT_DIRP_DUP \ 10221 assert(param) 10222 10223 PERL_CALLCONV PerlIO * 10224 Perl_fp_dup(pTHX_ PerlIO * const fp, const char type, CLONE_PARAMS * const param); 10225 # define PERL_ARGS_ASSERT_FP_DUP \ 10226 assert(param) 10227 10228 PERL_CALLCONV GP * 10229 Perl_gp_dup(pTHX_ GP * const gp, CLONE_PARAMS * const param) 10230 __attribute__warn_unused_result__; 10231 # define PERL_ARGS_ASSERT_GP_DUP \ 10232 assert(param) 10233 10234 PERL_CALLCONV HE * 10235 Perl_he_dup(pTHX_ const HE *e, bool shared, CLONE_PARAMS *param) 10236 __attribute__warn_unused_result__; 10237 # define PERL_ARGS_ASSERT_HE_DUP \ 10238 assert(param) 10239 10240 PERL_CALLCONV HEK * 10241 Perl_hek_dup(pTHX_ HEK *e, CLONE_PARAMS *param) 10242 __attribute__warn_unused_result__; 10243 # define PERL_ARGS_ASSERT_HEK_DUP \ 10244 assert(param) 10245 10246 PERL_CALLCONV MAGIC * 10247 Perl_mg_dup(pTHX_ MAGIC *mg, CLONE_PARAMS * const param) 10248 __attribute__warn_unused_result__; 10249 # define PERL_ARGS_ASSERT_MG_DUP \ 10250 assert(param) 10251 10252 PERL_CALLCONV struct mro_meta * 10253 Perl_mro_meta_dup(pTHX_ struct mro_meta *smeta, CLONE_PARAMS *param) 10254 __attribute__visibility__("hidden"); 10255 # define PERL_ARGS_ASSERT_MRO_META_DUP \ 10256 assert(smeta); assert(param) 10257 10258 PERL_CALLCONV OP * 10259 Perl_newPADOP(pTHX_ I32 type, I32 flags, SV *sv) 10260 __attribute__warn_unused_result__; 10261 # define PERL_ARGS_ASSERT_NEWPADOP \ 10262 assert(sv) 10263 10264 PERL_CALLCONV PADLIST * 10265 Perl_padlist_dup(pTHX_ PADLIST *srcpad, CLONE_PARAMS *param) 10266 __attribute__warn_unused_result__ 10267 __attribute__visibility__("hidden"); 10268 # define PERL_ARGS_ASSERT_PADLIST_DUP \ 10269 assert(srcpad); assert(param) 10270 10271 PERL_CALLCONV PADNAME * 10272 Perl_padname_dup(pTHX_ PADNAME *src, CLONE_PARAMS *param) 10273 __attribute__warn_unused_result__ 10274 __attribute__visibility__("hidden"); 10275 # define PERL_ARGS_ASSERT_PADNAME_DUP \ 10276 assert(src); assert(param) 10277 10278 PERL_CALLCONV PADNAMELIST * 10279 Perl_padnamelist_dup(pTHX_ PADNAMELIST *srcpad, CLONE_PARAMS *param) 10280 __attribute__warn_unused_result__ 10281 __attribute__visibility__("hidden"); 10282 # define PERL_ARGS_ASSERT_PADNAMELIST_DUP \ 10283 assert(srcpad); assert(param) 10284 10285 PERL_CALLCONV yy_parser * 10286 Perl_parser_dup(pTHX_ const yy_parser * const proto, CLONE_PARAMS * const param); 10287 # define PERL_ARGS_ASSERT_PARSER_DUP \ 10288 assert(param) 10289 10290 PERL_CALLCONV PerlInterpreter * 10291 perl_clone(PerlInterpreter *proto_perl, UV flags); 10292 # define PERL_ARGS_ASSERT_PERL_CLONE \ 10293 assert(proto_perl) 10294 10295 PERL_CALLCONV void 10296 Perl_re_dup_guts(pTHX_ const REGEXP *sstr, REGEXP *dstr, CLONE_PARAMS *param); 10297 # define PERL_ARGS_ASSERT_RE_DUP_GUTS \ 10298 assert(sstr); assert(dstr); assert(param) 10299 10300 PERL_CALLCONV void * 10301 Perl_regdupe_internal(pTHX_ REGEXP * const r, CLONE_PARAMS *param); 10302 # define PERL_ARGS_ASSERT_REGDUPE_INTERNAL \ 10303 assert(r); assert(param) 10304 10305 PERL_CALLCONV void 10306 Perl_rvpv_dup(pTHX_ SV * const dsv, const SV * const ssv, CLONE_PARAMS * const param); 10307 # define PERL_ARGS_ASSERT_RVPV_DUP \ 10308 assert(dsv); assert(ssv); assert(param) 10309 10310 PERL_CALLCONV PERL_SI * 10311 Perl_si_dup(pTHX_ PERL_SI *si, CLONE_PARAMS *param) 10312 __attribute__warn_unused_result__; 10313 # define PERL_ARGS_ASSERT_SI_DUP \ 10314 assert(param) 10315 10316 PERL_CALLCONV ANY * 10317 Perl_ss_dup(pTHX_ PerlInterpreter *proto_perl, CLONE_PARAMS *param) 10318 __attribute__warn_unused_result__; 10319 # define PERL_ARGS_ASSERT_SS_DUP \ 10320 assert(proto_perl); assert(param) 10321 10322 PERL_CALLCONV SV * 10323 Perl_sv_dup(pTHX_ const SV * const ssv, CLONE_PARAMS * const param) 10324 __attribute__warn_unused_result__; 10325 # define PERL_ARGS_ASSERT_SV_DUP \ 10326 assert(param) 10327 10328 PERL_CALLCONV SV * 10329 Perl_sv_dup_inc(pTHX_ const SV * const ssv, CLONE_PARAMS * const param) 10330 __attribute__warn_unused_result__; 10331 # define PERL_ARGS_ASSERT_SV_DUP_INC \ 10332 assert(param) 10333 10334 # if defined(PERL_IN_OP_C) || defined(PERL_IN_PEEP_C) 10335 PERL_CALLCONV void 10336 Perl_op_relocate_sv(pTHX_ SV **svp, PADOFFSET *targp) 10337 __attribute__visibility__("hidden"); 10338 # define PERL_ARGS_ASSERT_OP_RELOCATE_SV \ 10339 assert(svp); assert(targp) 10340 10341 # endif 10342 #else /* if !defined(USE_ITHREADS) */ 10343 /* PERL_CALLCONV void 10344 CopFILEGV_set(pTHX_ COP *c, GV *gv); */ 10345 10346 #endif 10347 #if defined(USE_LOCALE_COLLATE) 10348 PERL_CALLCONV int 10349 Perl_magic_freecollxfrm(pTHX_ SV *sv, MAGIC *mg) 10350 __attribute__visibility__("hidden"); 10351 # define PERL_ARGS_ASSERT_MAGIC_FREECOLLXFRM \ 10352 assert(sv); assert(mg) 10353 10354 PERL_CALLCONV int 10355 Perl_magic_setcollxfrm(pTHX_ SV *sv, MAGIC *mg) 10356 __attribute__visibility__("hidden"); 10357 # define PERL_ARGS_ASSERT_MAGIC_SETCOLLXFRM \ 10358 assert(sv); assert(mg) 10359 10360 PERL_CALLCONV SV * 10361 Perl_strxfrm(pTHX_ SV *src); 10362 # define PERL_ARGS_ASSERT_STRXFRM \ 10363 assert(src) 10364 10365 PERL_CALLCONV char * 10366 Perl_sv_collxfrm_flags(pTHX_ SV * const sv, STRLEN * const nxp, I32 const flags); 10367 # define PERL_ARGS_ASSERT_SV_COLLXFRM_FLAGS \ 10368 assert(sv); assert(nxp) 10369 10370 # if defined(PERL_IN_LOCALE_C) || defined(PERL_IN_MATHOMS_C) || \ 10371 defined(PERL_IN_SV_C) 10372 PERL_CALLCONV char * 10373 Perl_mem_collxfrm_(pTHX_ const char *input_string, STRLEN len, STRLEN *xlen, bool utf8) 10374 __attribute__visibility__("hidden"); 10375 # define PERL_ARGS_ASSERT_MEM_COLLXFRM_ \ 10376 assert(input_string); assert(xlen) 10377 10378 # endif 10379 #endif /* defined(USE_LOCALE_COLLATE) */ 10380 #if defined(USE_PERLIO) 10381 PERL_CALLCONV void 10382 Perl_PerlIO_clearerr(pTHX_ PerlIO *f); 10383 # define PERL_ARGS_ASSERT_PERLIO_CLEARERR 10384 10385 PERL_CALLCONV int 10386 Perl_PerlIO_close(pTHX_ PerlIO *f); 10387 # define PERL_ARGS_ASSERT_PERLIO_CLOSE 10388 10389 PERL_CALLCONV int 10390 Perl_PerlIO_eof(pTHX_ PerlIO *f); 10391 # define PERL_ARGS_ASSERT_PERLIO_EOF 10392 10393 PERL_CALLCONV int 10394 Perl_PerlIO_error(pTHX_ PerlIO *f); 10395 # define PERL_ARGS_ASSERT_PERLIO_ERROR 10396 10397 PERL_CALLCONV int 10398 Perl_PerlIO_fileno(pTHX_ PerlIO *f); 10399 # define PERL_ARGS_ASSERT_PERLIO_FILENO 10400 10401 PERL_CALLCONV int 10402 Perl_PerlIO_fill(pTHX_ PerlIO *f); 10403 # define PERL_ARGS_ASSERT_PERLIO_FILL 10404 10405 PERL_CALLCONV int 10406 Perl_PerlIO_flush(pTHX_ PerlIO *f); 10407 # define PERL_ARGS_ASSERT_PERLIO_FLUSH 10408 10409 PERL_CALLCONV STDCHAR * 10410 Perl_PerlIO_get_base(pTHX_ PerlIO *f); 10411 # define PERL_ARGS_ASSERT_PERLIO_GET_BASE 10412 10413 PERL_CALLCONV SSize_t 10414 Perl_PerlIO_get_bufsiz(pTHX_ PerlIO *f) 10415 __attribute__warn_unused_result__; 10416 # define PERL_ARGS_ASSERT_PERLIO_GET_BUFSIZ 10417 10418 PERL_CALLCONV SSize_t 10419 Perl_PerlIO_get_cnt(pTHX_ PerlIO *f) 10420 __attribute__warn_unused_result__; 10421 # define PERL_ARGS_ASSERT_PERLIO_GET_CNT 10422 10423 PERL_CALLCONV STDCHAR * 10424 Perl_PerlIO_get_ptr(pTHX_ PerlIO *f); 10425 # define PERL_ARGS_ASSERT_PERLIO_GET_PTR 10426 10427 PERL_CALLCONV SSize_t 10428 Perl_PerlIO_read(pTHX_ PerlIO *f, void *vbuf, Size_t count); 10429 # define PERL_ARGS_ASSERT_PERLIO_READ \ 10430 assert(vbuf) 10431 10432 PERL_CALLCONV void 10433 Perl_PerlIO_restore_errno(pTHX_ PerlIO *f); 10434 # define PERL_ARGS_ASSERT_PERLIO_RESTORE_ERRNO 10435 10436 PERL_CALLCONV void 10437 Perl_PerlIO_save_errno(pTHX_ PerlIO *f); 10438 # define PERL_ARGS_ASSERT_PERLIO_SAVE_ERRNO 10439 10440 PERL_CALLCONV int 10441 Perl_PerlIO_seek(pTHX_ PerlIO *f, Off_t offset, int whence); 10442 # define PERL_ARGS_ASSERT_PERLIO_SEEK 10443 10444 PERL_CALLCONV void 10445 Perl_PerlIO_set_cnt(pTHX_ PerlIO *f, SSize_t cnt); 10446 # define PERL_ARGS_ASSERT_PERLIO_SET_CNT 10447 10448 PERL_CALLCONV void 10449 Perl_PerlIO_set_ptrcnt(pTHX_ PerlIO *f, STDCHAR *ptr, SSize_t cnt); 10450 # define PERL_ARGS_ASSERT_PERLIO_SET_PTRCNT 10451 10452 PERL_CALLCONV void 10453 Perl_PerlIO_setlinebuf(pTHX_ PerlIO *f); 10454 # define PERL_ARGS_ASSERT_PERLIO_SETLINEBUF 10455 10456 PERL_CALLCONV PerlIO * 10457 Perl_PerlIO_stderr(pTHX) 10458 __attribute__warn_unused_result__; 10459 # define PERL_ARGS_ASSERT_PERLIO_STDERR 10460 10461 PERL_CALLCONV PerlIO * 10462 Perl_PerlIO_stdin(pTHX) 10463 __attribute__warn_unused_result__; 10464 # define PERL_ARGS_ASSERT_PERLIO_STDIN 10465 10466 PERL_CALLCONV PerlIO * 10467 Perl_PerlIO_stdout(pTHX) 10468 __attribute__warn_unused_result__; 10469 # define PERL_ARGS_ASSERT_PERLIO_STDOUT 10470 10471 PERL_CALLCONV Off_t 10472 Perl_PerlIO_tell(pTHX_ PerlIO *f); 10473 # define PERL_ARGS_ASSERT_PERLIO_TELL 10474 10475 PERL_CALLCONV SSize_t 10476 Perl_PerlIO_unread(pTHX_ PerlIO *f, const void *vbuf, Size_t count); 10477 # define PERL_ARGS_ASSERT_PERLIO_UNREAD \ 10478 assert(vbuf) 10479 10480 PERL_CALLCONV SSize_t 10481 Perl_PerlIO_write(pTHX_ PerlIO *f, const void *vbuf, Size_t count); 10482 # define PERL_ARGS_ASSERT_PERLIO_WRITE \ 10483 assert(vbuf) 10484 10485 #endif /* defined(USE_PERLIO) */ 10486 #if defined(USE_PERL_SWITCH_LOCALE_CONTEXT) 10487 PERL_CALLCONV void 10488 Perl_switch_locale_context(void); 10489 # define PERL_ARGS_ASSERT_SWITCH_LOCALE_CONTEXT 10490 10491 #endif 10492 #if defined(USE_QUADMATH) 10493 PERL_CALLCONV bool 10494 Perl_quadmath_format_needed(const char *format) 10495 __attribute__visibility__("hidden"); 10496 # define PERL_ARGS_ASSERT_QUADMATH_FORMAT_NEEDED \ 10497 assert(format) 10498 10499 PERL_CALLCONV bool 10500 Perl_quadmath_format_valid(const char *format) 10501 __attribute__visibility__("hidden"); 10502 # define PERL_ARGS_ASSERT_QUADMATH_FORMAT_VALID \ 10503 assert(format) 10504 10505 #endif /* defined(USE_QUADMATH) */ 10506 #if defined(VMS) || defined(WIN32) 10507 PERL_CALLCONV int 10508 Perl_do_aspawn(pTHX_ SV *really, SV **mark, SV **sp); 10509 # define PERL_ARGS_ASSERT_DO_ASPAWN \ 10510 assert(mark); assert(sp) 10511 10512 PERL_CALLCONV int 10513 Perl_do_spawn(pTHX_ char *cmd); 10514 # define PERL_ARGS_ASSERT_DO_SPAWN \ 10515 assert(cmd) 10516 10517 PERL_CALLCONV int 10518 Perl_do_spawn_nowait(pTHX_ char *cmd); 10519 # define PERL_ARGS_ASSERT_DO_SPAWN_NOWAIT \ 10520 assert(cmd) 10521 10522 #endif /* defined(VMS) || defined(WIN32) */ 10523 #if defined(WIN32) 10524 PERL_CALLCONV void * 10525 Perl_get_context(void) 10526 __attribute__warn_unused_result__; 10527 # define PERL_ARGS_ASSERT_GET_CONTEXT 10528 10529 PERL_CALLCONV bool 10530 Perl_get_win32_message_utf8ness(pTHX_ const char *string) 10531 __attribute__visibility__("hidden"); 10532 # define PERL_ARGS_ASSERT_GET_WIN32_MESSAGE_UTF8NESS 10533 10534 PERL_CALLCONV_NO_RET void 10535 win32_croak_not_implemented(const char *fname) 10536 __attribute__noreturn__; 10537 # define PERL_ARGS_ASSERT_WIN32_CROAK_NOT_IMPLEMENTED \ 10538 assert(fname) 10539 10540 #else /* if !defined(WIN32) */ 10541 PERL_CALLCONV bool 10542 Perl_do_exec3(pTHX_ const char *incmd, int fd, int do_report) 10543 __attribute__visibility__("hidden"); 10544 # define PERL_ARGS_ASSERT_DO_EXEC3 \ 10545 assert(incmd) 10546 10547 #endif 10548 10549 #ifdef PERL_CORE 10550 # include "pp_proto.h" 10551 #endif 10552 END_EXTERN_C 10553 10554 /* ex: set ro ft=c: */ 10555