Bug Summary

File:obj/gnu/usr.bin/perl/cpan/Filter-Util-Call/Call.c
Warning:line 449, column 6
Value stored to 'package' is never read

Annotated Source Code

Press '?' to see keyboard shortcuts

clang -cc1 -cc1 -triple amd64-unknown-openbsd7.0 -analyze -disable-free -disable-llvm-verifier -discard-value-names -main-file-name Call.c -analyzer-store=region -analyzer-opt-analyze-nested-blocks -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model pic -pic-level 1 -fhalf-no-semantic-interposition -fno-delete-null-pointer-checks -mframe-pointer=all -relaxed-aliasing -fno-rounding-math -mconstructor-aliases -munwind-tables -target-cpu x86-64 -target-feature +retpoline-indirect-calls -target-feature +retpoline-indirect-branches -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/usr/obj/gnu/usr.bin/perl/cpan/Filter-Util-Call -resource-dir /usr/local/lib/clang/13.0.0 -D NO_LOCALE_NUMERIC -D NO_LOCALE_COLLATE -D VERSION="1.59" -D XS_VERSION="1.59" -D PIC -I ../.. -internal-isystem /usr/local/lib/clang/13.0.0/include -internal-externc-isystem /usr/include -O2 -Wwrite-strings -fconst-strings -fdebug-compilation-dir=/usr/obj/gnu/usr.bin/perl/cpan/Filter-Util-Call -ferror-limit 19 -fwrapv -D_RET_PROTECTOR -ret-protector -fgnuc-version=4.2.1 -vectorize-loops -vectorize-slp -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-valloc -fno-builtin-free -fno-builtin-strdup -fno-builtin-strndup -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /home/ben/Projects/vmm/scan-build/2022-01-12-194120-40624-1 -x c Call.c
1/*
2 * This file was generated automatically by ExtUtils::ParseXS version 3.40 from the
3 * contents of Call.xs. Do not edit this file, edit Call.xs instead.
4 *
5 * ANY CHANGES MADE HERE WILL BE LOST!
6 *
7 */
8
9#line 1 "Call.xs"
10/*
11 * Filename : Call.xs
12 *
13 * Author : Paul Marquess
14 * Date : 2014-12-09 02:48:44 rurban
15 * Version : 1.59
16 *
17 * Copyright (c) 1995-2011 Paul Marquess. All rights reserved.
18 * Copyright (c) 2011-2014 Reini Urban. All rights reserved.
19 * This program is free software; you can redistribute it and/or
20 * modify it under the same terms as Perl itself.
21 *
22 */
23
24#define PERL_NO_GET_CONTEXT
25#include "EXTERN.h"
26#include "perl.h"
27#include "XSUB.h"
28#ifdef _NOT_CORE
29# include "ppport.h"
30#endif
31
32/* Internal defines */
33#define PERL_MODULE(s)((XPVIO*) (s)->sv_any)->xio_bottom_name IoBOTTOM_NAME(s)((XPVIO*) (s)->sv_any)->xio_bottom_name
34#define PERL_OBJECT(s)((XPVIO*) (s)->sv_any)->xio_top_gv IoTOP_GV(s)((XPVIO*) (s)->sv_any)->xio_top_gv
35#define FILTER_ACTIVE(s)((XPVIO*) (s)->sv_any)->xiv_u.xivu_iv IoLINES(s)((XPVIO*) (s)->sv_any)->xiv_u.xivu_iv
36#define BUF_OFFSET(sv)((XPVIO*) (sv)->sv_any)->xio_page_len IoPAGE_LEN(sv)((XPVIO*) (sv)->sv_any)->xio_page_len
37#define CODE_REF(sv)((XPVIO*) (sv)->sv_any)->xio_page IoPAGE(sv)((XPVIO*) (sv)->sv_any)->xio_page
38#ifndef PERL_FILTER_EXISTS
39# define PERL_FILTER_EXISTS(i)(PL_parser && PL_parser->rsfp_filters && (
i) <= Perl_av_top_index( PL_parser->rsfp_filters))
(PL_rsfp_filters && (i) <= av_len(PL_rsfp_filters)Perl_av_len( PL_rsfp_filters))
40#endif
41
42#define SET_LEN(sv,len)do { ((sv)->sv_u.svu_pv)[len] = '\0'; do { ((void)0); ((void
)0); ((void)0); (((XPV*) (sv)->sv_any)->xpv_cur = (len)
); } while (0); } while (0)
\
43 do { SvPVX(sv)((sv)->sv_u.svu_pv)[len] = '\0'; SvCUR_set(sv, len)do { ((void)0); ((void)0); ((void)0); (((XPV*) (sv)->sv_any
)->xpv_cur = (len)); } while (0)
; } while (0)
44
45
46/* Global Data */
47
48#define MY_CXT_KEY"Filter::Util::Call::_guts" "1.59" "Filter::Util::Call::_guts" XS_VERSION"1.59"
49
50typedef struct {
51 int x_fdebug ;
52 int x_current_idx ;
53} my_cxt_t;
54
55START_MY_CXTstatic my_cxt_t my_cxt;
56
57#define fdebug(my_cxt.x_fdebug) (MY_CXTmy_cxt.x_fdebug)
58#define current_idx(my_cxt.x_current_idx) (MY_CXTmy_cxt.x_current_idx)
59
60
61static I32
62filter_call(pTHX_ int idx, SV *buf_sv, int maxlen)
63{
64 dMY_CXTstruct Perl___notused_struct;
65 SV *my_sv = FILTER_DATA(idx)(PL_parser ? ((PL_parser->rsfp_filters)->sv_u.svu_array
)[idx] : ((void*)0))
;
66 const char *nl = "\n";
67 char *p;
68 char *out_ptr;
69 int n;
70
71 if (fdebug(my_cxt.x_fdebug))
72 warnPerl_warn("**** In filter_call - maxlen = %d, out len buf = %" IVdf"ld" " idx = %d my_sv = %" IVdf"ld" " [%s]\n",
73 maxlen, (IV)SvCUR(buf_sv)((XPV*) (buf_sv)->sv_any)->xpv_cur, idx, (IV)SvCUR(my_sv)((XPV*) (my_sv)->sv_any)->xpv_cur, SvPVX(my_sv)((my_sv)->sv_u.svu_pv) ) ;
74
75 while (1) {
76
77 /* anything left from last time */
78
79 if ((n = SvCUR(my_sv)((XPV*) (my_sv)->sv_any)->xpv_cur)) {
80 assert(SvCUR(my_sv) < PERL_INT_MAX)((void)0) ;
81
82 out_ptr = SvPVX(my_sv)((my_sv)->sv_u.svu_pv) + BUF_OFFSET(my_sv)((XPVIO*) (my_sv)->sv_any)->xio_page_len ;
83
84 if (maxlen) {
85 /* want a block */
86 if (fdebug(my_cxt.x_fdebug))
87 warnPerl_warn("BLOCK(%d): size = %d, maxlen = %d\n",
88 idx, n, maxlen) ;
89
90 sv_catpvn(buf_sv, out_ptr, maxlen > n ? n : maxlen )Perl_sv_catpvn_flags( buf_sv,out_ptr,maxlen > n ? n : maxlen
,2)
;
91 if(n <= maxlen) {
92 BUF_OFFSET(my_sv)((XPVIO*) (my_sv)->sv_any)->xio_page_len = 0 ;
93 SET_LEN(my_sv, 0)do { ((my_sv)->sv_u.svu_pv)[0] = '\0'; do { ((void)0); ((void
)0); ((void)0); (((XPV*) (my_sv)->sv_any)->xpv_cur = (0
)); } while (0); } while (0)
;
94 }
95 else {
96 BUF_OFFSET(my_sv)((XPVIO*) (my_sv)->sv_any)->xio_page_len += maxlen ;
97 SvCUR_set(my_sv, n - maxlen)do { ((void)0); ((void)0); ((void)0); (((XPV*) (my_sv)->sv_any
)->xpv_cur = (n - maxlen)); } while (0)
;
98 }
99 return SvCUR(buf_sv)((XPV*) (buf_sv)->sv_any)->xpv_cur;
100 }
101 else {
102 /* want lines */
103 if ((p = ninstr(out_ptr, out_ptr + n, nl, nl + 1)((char *) memmem((out_ptr), (out_ptr + n) - (out_ptr), (nl), (
nl + 1) - (nl)))
)) {
104
105 sv_catpvn(buf_sv, out_ptr, p - out_ptr + 1)Perl_sv_catpvn_flags( buf_sv,out_ptr,p - out_ptr + 1,2);
106
107 n = n - (p - out_ptr + 1);
108 BUF_OFFSET(my_sv)((XPVIO*) (my_sv)->sv_any)->xio_page_len += (p - out_ptr + 1);
109 SvCUR_set(my_sv, n)do { ((void)0); ((void)0); ((void)0); (((XPV*) (my_sv)->sv_any
)->xpv_cur = (n)); } while (0)
;
110 if (fdebug(my_cxt.x_fdebug))
111 warnPerl_warn("recycle %d - leaving %d, returning %" IVdf"ld" " [%s]",
112 idx, n, (IV)SvCUR(buf_sv)((XPV*) (buf_sv)->sv_any)->xpv_cur, SvPVX(buf_sv)((buf_sv)->sv_u.svu_pv)) ;
113
114 return SvCUR(buf_sv)((XPV*) (buf_sv)->sv_any)->xpv_cur;
115 }
116 else /* no EOL, so append the complete buffer */
117 sv_catpvn(buf_sv, out_ptr, n)Perl_sv_catpvn_flags( buf_sv,out_ptr,n,2) ;
118 }
119
120 }
121
122
123 SET_LEN(my_sv, 0)do { ((my_sv)->sv_u.svu_pv)[0] = '\0'; do { ((void)0); ((void
)0); ((void)0); (((XPV*) (my_sv)->sv_any)->xpv_cur = (0
)); } while (0); } while (0)
;
124 BUF_OFFSET(my_sv)((XPVIO*) (my_sv)->sv_any)->xio_page_len = 0 ;
125
126 if (FILTER_ACTIVE(my_sv)((XPVIO*) (my_sv)->sv_any)->xiv_u.xivu_iv)
127 {
128 dSPSV **sp = PL_stack_sp ;
129 int count ;
130
131 if (fdebug(my_cxt.x_fdebug))
132 warnPerl_warn("gonna call %s::filter\n", PERL_MODULE(my_sv)((XPVIO*) (my_sv)->sv_any)->xio_bottom_name) ;
133
134 ENTERPerl_push_scope() ;
135 SAVETMPSPerl_savetmps();
136
137 SAVEINT(current_idx)Perl_save_int( (int*)&((my_cxt.x_current_idx))) ; /* save current idx */
138 current_idx(my_cxt.x_current_idx) = idx ;
139
140 SAVE_DEFSVPerl_save_sptr( (SV**)&(((0+(PL_defgv)->sv_u.svu_gp)->
gp_sv)))
; /* save $_ */
141 /* make $_ use our buffer */
142 DEFSV_set(newSVpv("", 0))(((0+(PL_defgv)->sv_u.svu_gp)->gp_sv) = (Perl_newSVpv( ""
,0)))
;
143
144 PUSHMARK(sp)do { I32 * mark_stack_entry; if (__builtin_expect((((mark_stack_entry
= ++PL_markstack_ptr) == PL_markstack_max) ? (_Bool)1 : (_Bool
)0),(0))) mark_stack_entry = Perl_markstack_grow(); *mark_stack_entry
= (I32)((sp) - PL_stack_base); ; } while (0)
;
145 if (CODE_REF(my_sv)((XPVIO*) (my_sv)->sv_any)->xio_page) {
146 /* if (SvROK(PERL_OBJECT(my_sv)) && SvTYPE(SvRV(PERL_OBJECT(my_sv))) == SVt_PVCV) { */
147 count = perl_call_sv((SV*)PERL_OBJECT(my_sv), G_SCALAR)Perl_call_sv( (SV*)((XPVIO*) (my_sv)->sv_any)->xio_top_gv
,2)
;
148 }
149 else {
150 XPUSHs((SV*)PERL_OBJECT(my_sv))do { do { (void)0; if (__builtin_expect(((((1) < 0 || PL_stack_max
- (sp) < (1))) ? (_Bool)1 : (_Bool)0),(0))) { sp = Perl_stack_grow
( sp,sp,(sizeof(1) > sizeof(ssize_t) && ((ssize_t)
(1) != (1)) ? -1 : (1))); ((void)sizeof(sp)); } } while (0); *
++sp = ((SV*)((XPVIO*) (my_sv)->sv_any)->xio_top_gv); }
while (0)
;
151 PUTBACKPL_stack_sp = sp ;
152 count = perl_call_method("filter", G_SCALAR)Perl_call_method( "filter",2);
153 }
154 SPAGAINsp = PL_stack_sp ;
155
156 if (count != 1)
157 croakPerl_croak("Filter::Util::Call - %s::filter returned %d values, 1 was expected \n",
158 PERL_MODULE(my_sv)((XPVIO*) (my_sv)->sv_any)->xio_bottom_name, count ) ;
159
160 n = (IV)POPi((IV)({SV *_sv = ((SV *)({ void *_p = ((*sp--)); _p; })); (((
(_sv)->sv_flags & (0x00000100|0x00200000)) == 0x00000100
) ? ((XPVIV*) (_sv)->sv_any)->xiv_u.xivu_iv : Perl_sv_2iv_flags
( _sv,2)); }))
;
161
162 if (fdebug(my_cxt.x_fdebug))
163 warnPerl_warn("status = %d, length op buf = %" IVdf"ld" " [%s]\n",
164 n, (IV)SvCUR(DEFSV)((XPV*) ((*((0+(PL_defgv)->sv_u.svu_gp)->gp_sv ? &(
(0+(PL_defgv)->sv_u.svu_gp)->gp_sv) : &((0+(Perl_gv_add_by_type
( (PL_defgv),SVt_NULL))->sv_u.svu_gp)->gp_sv))))->sv_any
)->xpv_cur
, SvPVX(DEFSV)(((*((0+(PL_defgv)->sv_u.svu_gp)->gp_sv ? &((0+(PL_defgv
)->sv_u.svu_gp)->gp_sv) : &((0+(Perl_gv_add_by_type
( (PL_defgv),SVt_NULL))->sv_u.svu_gp)->gp_sv))))->sv_u
.svu_pv)
) ;
165 if (SvCUR(DEFSV)((XPV*) ((*((0+(PL_defgv)->sv_u.svu_gp)->gp_sv ? &(
(0+(PL_defgv)->sv_u.svu_gp)->gp_sv) : &((0+(Perl_gv_add_by_type
( (PL_defgv),SVt_NULL))->sv_u.svu_gp)->gp_sv))))->sv_any
)->xpv_cur
)
166 sv_setpvn(my_sv, SvPVX(DEFSV), SvCUR(DEFSV))Perl_sv_setpvn( my_sv,(((*((0+(PL_defgv)->sv_u.svu_gp)->
gp_sv ? &((0+(PL_defgv)->sv_u.svu_gp)->gp_sv) : &
((0+(Perl_gv_add_by_type( (PL_defgv),SVt_NULL))->sv_u.svu_gp
)->gp_sv))))->sv_u.svu_pv),((XPV*) ((*((0+(PL_defgv)->
sv_u.svu_gp)->gp_sv ? &((0+(PL_defgv)->sv_u.svu_gp)
->gp_sv) : &((0+(Perl_gv_add_by_type( (PL_defgv),SVt_NULL
))->sv_u.svu_gp)->gp_sv))))->sv_any)->xpv_cur)
;
167
168 sv_2mortal(DEFSV)Perl_sv_2mortal( (*((0+(PL_defgv)->sv_u.svu_gp)->gp_sv ?
&((0+(PL_defgv)->sv_u.svu_gp)->gp_sv) : &((0+(
Perl_gv_add_by_type( (PL_defgv),SVt_NULL))->sv_u.svu_gp)->
gp_sv))))
;
169
170 PUTBACKPL_stack_sp = sp ;
171 FREETMPSif (PL_tmps_ix > PL_tmps_floor) Perl_free_tmps() ;
172 LEAVEPerl_pop_scope() ;
173 }
174 else
175 n = FILTER_READ(idx + 1, my_sv, maxlen)Perl_filter_read( idx + 1,my_sv,maxlen) ;
176
177 if (n <= 0)
178 {
179 /* Either EOF or an error */
180
181 if (fdebug(my_cxt.x_fdebug))
182 warnPerl_warn ("filter_read %d returned %d , returning %" IVdf"ld" "\n", idx, n,
183 (SvCUR(buf_sv)((XPV*) (buf_sv)->sv_any)->xpv_cur>0) ? (IV)SvCUR(buf_sv)((XPV*) (buf_sv)->sv_any)->xpv_cur : (IV)n);
184
185 /* PERL_MODULE(my_sv) ; */
186 /* PERL_OBJECT(my_sv) ; */
187 filter_del(filter_call)Perl_filter_del( filter_call);
188
189 /* If error, return the code */
190 if (n < 0)
191 return n ;
192
193 /* return what we have so far else signal eof */
194 return (SvCUR(buf_sv)((XPV*) (buf_sv)->sv_any)->xpv_cur>0) ? (int)SvCUR(buf_sv)((XPV*) (buf_sv)->sv_any)->xpv_cur : n;
195 }
196
197 }
198}
199
200
201
202#line 203 "Call.c"
203#ifndef PERL_UNUSED_VAR
204# define PERL_UNUSED_VAR(var)((void)sizeof(var)) if (0) var = var
205#endif
206
207#ifndef dVARstruct Perl___notused_struct
208# define dVARstruct Perl___notused_struct dNOOPstruct Perl___notused_struct
209#endif
210
211
212/* This stuff is not part of the API! You have been warned. */
213#ifndef PERL_VERSION_DECIMAL
214# define PERL_VERSION_DECIMAL(r,v,s)(r*1000000 + v*1000 + s) (r*1000000 + v*1000 + s)
215#endif
216#ifndef PERL_DECIMAL_VERSION(5*1000000 + 32*1000 + 1)
217# define PERL_DECIMAL_VERSION(5*1000000 + 32*1000 + 1) \
218 PERL_VERSION_DECIMAL(PERL_REVISION,PERL_VERSION,PERL_SUBVERSION)(5*1000000 + 32*1000 + 1)
219#endif
220#ifndef PERL_VERSION_GE
221# define PERL_VERSION_GE(r,v,s)((5*1000000 + 32*1000 + 1) >= (r*1000000 + v*1000 + s)) \
222 (PERL_DECIMAL_VERSION(5*1000000 + 32*1000 + 1) >= PERL_VERSION_DECIMAL(r,v,s)(r*1000000 + v*1000 + s))
223#endif
224#ifndef PERL_VERSION_LE
225# define PERL_VERSION_LE(r,v,s)((5*1000000 + 32*1000 + 1) <= (r*1000000 + v*1000 + s)) \
226 (PERL_DECIMAL_VERSION(5*1000000 + 32*1000 + 1) <= PERL_VERSION_DECIMAL(r,v,s)(r*1000000 + v*1000 + s))
227#endif
228
229/* XS_INTERNAL is the explicit static-linkage variant of the default
230 * XS macro.
231 *
232 * XS_EXTERNAL is the same as XS_INTERNAL except it does not include
233 * "STATIC", ie. it exports XSUB symbols. You probably don't want that
234 * for anything but the BOOT XSUB.
235 *
236 * See XSUB.h in core!
237 */
238
239
240/* TODO: This might be compatible further back than 5.10.0. */
241#if PERL_VERSION_GE(5, 10, 0)((5*1000000 + 32*1000 + 1) >= (5*1000000 + 10*1000 + 0)) && PERL_VERSION_LE(5, 15, 1)((5*1000000 + 32*1000 + 1) <= (5*1000000 + 15*1000 + 1))
242# undef XS_EXTERNAL
243# undef XS_INTERNAL
244# if defined(__CYGWIN__) && defined(USE_DYNAMIC_LOADING)
245# define XS_EXTERNAL(name)void name( CV* cv __attribute__((unused))) __declspec(dllexport) XSPROTO(name)void name( CV* cv __attribute__((unused)))
246# define XS_INTERNAL(name)static void name( CV* cv __attribute__((unused))) STATICstatic XSPROTO(name)void name( CV* cv __attribute__((unused)))
247# endif
248# if defined(__SYMBIAN32__)
249# define XS_EXTERNAL(name)void name( CV* cv __attribute__((unused))) EXPORT_C XSPROTO(name)void name( CV* cv __attribute__((unused)))
250# define XS_INTERNAL(name)static void name( CV* cv __attribute__((unused))) EXPORT_C STATICstatic XSPROTO(name)void name( CV* cv __attribute__((unused)))
251# endif
252# ifndef XS_EXTERNAL
253# if defined(HASATTRIBUTE_UNUSED) && !defined(__cplusplus)
254# define XS_EXTERNAL(name)void name( CV* cv __attribute__((unused))) void name(pTHX_ CV* cv __attribute__unused____attribute__((unused)))
255# define XS_INTERNAL(name)static void name( CV* cv __attribute__((unused))) STATICstatic void name(pTHX_ CV* cv __attribute__unused____attribute__((unused)))
256# else
257# ifdef __cplusplus
258# define XS_EXTERNAL(name)void name( CV* cv __attribute__((unused))) extern "C" XSPROTO(name)void name( CV* cv __attribute__((unused)))
259# define XS_INTERNAL(name)static void name( CV* cv __attribute__((unused))) static XSPROTO(name)void name( CV* cv __attribute__((unused)))
260# else
261# define XS_EXTERNAL(name)void name( CV* cv __attribute__((unused))) XSPROTO(name)void name( CV* cv __attribute__((unused)))
262# define XS_INTERNAL(name)static void name( CV* cv __attribute__((unused))) STATICstatic XSPROTO(name)void name( CV* cv __attribute__((unused)))
263# endif
264# endif
265# endif
266#endif
267
268/* perl >= 5.10.0 && perl <= 5.15.1 */
269
270
271/* The XS_EXTERNAL macro is used for functions that must not be static
272 * like the boot XSUB of a module. If perl didn't have an XS_EXTERNAL
273 * macro defined, the best we can do is assume XS is the same.
274 * Dito for XS_INTERNAL.
275 */
276#ifndef XS_EXTERNAL
277# define XS_EXTERNAL(name)void name( CV* cv __attribute__((unused))) XS(name)void name( CV* cv __attribute__((unused)))
278#endif
279#ifndef XS_INTERNAL
280# define XS_INTERNAL(name)static void name( CV* cv __attribute__((unused))) XS(name)void name( CV* cv __attribute__((unused)))
281#endif
282
283/* Now, finally, after all this mess, we want an ExtUtils::ParseXS
284 * internal macro that we're free to redefine for varying linkage due
285 * to the EXPORT_XSUB_SYMBOLS XS keyword. This is internal, use
286 * XS_EXTERNAL(name) or XS_INTERNAL(name) in your code if you need to!
287 */
288
289#undef XS_EUPXS
290#if defined(PERL_EUPXS_ALWAYS_EXPORT)
291# define XS_EUPXS(name)static void name( CV* cv __attribute__((unused))) XS_EXTERNAL(name)void name( CV* cv __attribute__((unused)))
292#else
293 /* default to internal */
294# define XS_EUPXS(name)static void name( CV* cv __attribute__((unused))) XS_INTERNAL(name)static void name( CV* cv __attribute__((unused)))
295#endif
296
297#ifndef PERL_ARGS_ASSERT_CROAK_XS_USAGE((void)0); ((void)0)
298#define PERL_ARGS_ASSERT_CROAK_XS_USAGE((void)0); ((void)0) assert(cv)((void)0); assert(params)((void)0)
299
300/* prototype to pass -Wmissing-prototypes */
301STATICstatic void
302S_croak_xs_usage(const CV *const cv, const char *const params);
303
304STATICstatic void
305S_croak_xs_usage(const CV *const cv, const char *const params)
306{
307 const GV *const gv = CvGV(cv)Perl_CvGV( (CV *)(cv));
308
309 PERL_ARGS_ASSERT_CROAK_XS_USAGE((void)0); ((void)0);
310
311 if (gv) {
312 const char *const gvname = GvNAME(gv)((((XPVGV*)(gv)->sv_any)->xiv_u.xivu_namehek))->hek_key;
313 const HV *const stash = GvSTASH(gv)(((XPVGV*)(gv)->sv_any)->xnv_u.xgv_stash);
314 const char *const hvname = stash ? HvNAME(stash)((((stash)->sv_flags & 0x02000000) && ((struct
xpvhv_aux*)&(((stash)->sv_u.svu_hash)[((XPVHV*) (stash
)->sv_any)->xhv_max+1]))->xhv_name_u.xhvnameu_name &&
( ((struct xpvhv_aux*)&(((stash)->sv_u.svu_hash)[((XPVHV
*) (stash)->sv_any)->xhv_max+1]))->xhv_name_count ? *
((struct xpvhv_aux*)&(((stash)->sv_u.svu_hash)[((XPVHV
*) (stash)->sv_any)->xhv_max+1]))->xhv_name_u.xhvnameu_names
: ((struct xpvhv_aux*)&(((stash)->sv_u.svu_hash)[((XPVHV
*) (stash)->sv_any)->xhv_max+1]))->xhv_name_u.xhvnameu_name
)) ? (( ((struct xpvhv_aux*)&(((stash)->sv_u.svu_hash
)[((XPVHV*) (stash)->sv_any)->xhv_max+1]))->xhv_name_count
? *((struct xpvhv_aux*)&(((stash)->sv_u.svu_hash)[((XPVHV
*) (stash)->sv_any)->xhv_max+1]))->xhv_name_u.xhvnameu_names
: ((struct xpvhv_aux*)&(((stash)->sv_u.svu_hash)[((XPVHV
*) (stash)->sv_any)->xhv_max+1]))->xhv_name_u.xhvnameu_name
))->hek_key : ((void*)0))
: NULL((void*)0);
315
316 if (hvname)
317 Perl_croak_nocontextPerl_croak("Usage: %s::%s(%s)", hvname, gvname, params);
318 else
319 Perl_croak_nocontextPerl_croak("Usage: %s(%s)", gvname, params);
320 } else {
321 /* Pants. I don't think that it should be possible to get here. */
322 Perl_croak_nocontextPerl_croak("Usage: CODE(0x%" UVxf"lx" ")(%s)", PTR2UV(cv)(UV)(cv), params);
323 }
324}
325#undef PERL_ARGS_ASSERT_CROAK_XS_USAGE((void)0); ((void)0)
326
327#define croak_xs_usagePerl_croak_xs_usage S_croak_xs_usage
328
329#endif
330
331/* NOTE: the prototype of newXSproto() is different in versions of perls,
332 * so we define a portable version of newXSproto()
333 */
334#ifdef newXS_flags
335#define newXSproto_portable(name, c_impl, file, proto)Perl_newXS_flags( name,c_impl,file,proto,0) newXS_flags(name, c_impl, file, proto, 0)Perl_newXS_flags( name,c_impl,file,proto,0)
336#else
337#define newXSproto_portable(name, c_impl, file, proto)Perl_newXS_flags( name,c_impl,file,proto,0) (PL_Sv=(SV*)newXS(name, c_impl, file)Perl_newXS( name,c_impl,file), sv_setpv(PL_Sv, proto)Perl_sv_setpv( PL_Sv,proto), (CV*)PL_Sv)
338#endif /* !defined(newXS_flags) */
339
340#if PERL_VERSION_LE(5, 21, 5)((5*1000000 + 32*1000 + 1) <= (5*1000000 + 21*1000 + 5))
341# define newXS_deffile(a,b)Perl_newXS_deffile( a,b) Perl_newXS(aTHX_ a,b,file)
342#else
343# define newXS_deffile(a,b)Perl_newXS_deffile( a,b) Perl_newXS_deffile(aTHX_ a,b)
344#endif
345
346#line 347 "Call.c"
347#define IDX(my_cxt.x_current_idx) current_idx(my_cxt.x_current_idx)
348
349XS_EUPXS(XS_Filter__Util__Call_filter_read)static void XS_Filter__Util__Call_filter_read( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
350XS_EUPXS(XS_Filter__Util__Call_filter_read)static void XS_Filter__Util__Call_filter_read( CV* cv __attribute__
((unused)))
351{
352 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
353 if (items < 0 || items > 1)
354 croak_xs_usagePerl_croak_xs_usage(cv, "size=0");
355 {
356 int size;
357 int RETVAL;
358 dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad
[PL_op->op_targ]) : Perl_sv_newmortal())
;
359
360 if (items < 1)
361 size = 0;
362 else {
363 size = (int)SvIV(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000100|0x00200000
)) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (0)])->sv_any
)->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + (
0)],2))
364;
365 }
366#line 204 "Call.xs"
367 {
368 dMY_CXTstruct Perl___notused_struct;
369 SV * buffer = DEFSV(*((0+(PL_defgv)->sv_u.svu_gp)->gp_sv ? &((0+(PL_defgv
)->sv_u.svu_gp)->gp_sv) : &((0+(Perl_gv_add_by_type
( (PL_defgv),SVt_NULL))->sv_u.svu_gp)->gp_sv)))
;
370
371 RETVAL = FILTER_READ(IDX + 1, buffer, size)Perl_filter_read( (my_cxt.x_current_idx) + 1,buffer,size) ;
372 }
373#line 374 "Call.c"
374 XSprePUSH(sp = PL_stack_base + ax - 1); PUSHi((IV)RETVAL)do { do { IV TARGi_iv = (IV)RETVAL; if (__builtin_expect(((((
(targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800
|0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) &
(1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool)
0),(0))) ? (_Bool)1 : (_Bool)0)) : 1)) ? (_Bool)1 : (_Bool)0)
,(1))) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000
); targ->sv_u.svu_iv = TARGi_iv; } else Perl_sv_setiv_mg( targ
,TARGi_iv); } while (0); (*++sp = (targ)); } while (0)
;
375 }
376 XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } while (0)
;
377}
378
379
380XS_EUPXS(XS_Filter__Util__Call_real_import)static void XS_Filter__Util__Call_real_import( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
381XS_EUPXS(XS_Filter__Util__Call_real_import)static void XS_Filter__Util__Call_real_import( CV* cv __attribute__
((unused)))
382{
383 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
384 if (items != 3)
385 croak_xs_usagePerl_croak_xs_usage(cv, "object, perlmodule, coderef");
386 PERL_UNUSED_VAR(ax)((void)sizeof(ax)); /* -Wall */
387 SPsp -= items;
388 {
389 SV * object = ST(0)PL_stack_base[ax + (0)]
390;
391 char * perlmodule = (char *)SvPV_nolen(ST(1))((((PL_stack_base[ax + (1)])->sv_flags & (0x00000400|0x00200000
)) == 0x00000400) ? ((PL_stack_base[ax + (1)])->sv_u.svu_pv
) : Perl_sv_2pv_flags( PL_stack_base[ax + (1)],0,2))
392;
393 IV coderef = (IV)SvIV(ST(2))((((PL_stack_base[ax + (2)])->sv_flags & (0x00000100|0x00200000
)) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (2)])->sv_any
)->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + (
2)],2))
394;
395#line 222 "Call.xs"
396 {
397 SV * sv = newSV(1)Perl_newSV( 1) ;
398
399 (void)SvPOK_only(sv)( (sv)->sv_flags &= ~((0x00000100|0x00000200|0x00000400
|0x00000800| 0x00001000|0x00002000|0x00004000|0x00008000)| 0x80000000
|0x20000000), (sv)->sv_flags |= (0x00000400|0x00004000))
;
400 filter_add(filter_call, sv)Perl_filter_add( filter_call,sv) ;
401
402 PERL_MODULE(sv)((XPVIO*) (sv)->sv_any)->xio_bottom_name = savepv(perlmodule)Perl_savepv( perlmodule) ;
403 PERL_OBJECT(sv)((XPVIO*) (sv)->sv_any)->xio_top_gv = (GV*) newSVsv(object)Perl_newSVsv_flags( (object),2|16) ;
404 FILTER_ACTIVE(sv)((XPVIO*) (sv)->sv_any)->xiv_u.xivu_iv = TRUE(1) ;
405 BUF_OFFSET(sv)((XPVIO*) (sv)->sv_any)->xio_page_len = 0 ;
406 CODE_REF(sv)((XPVIO*) (sv)->sv_any)->xio_page = coderef ;
407
408 SvCUR_set(sv, 0)do { ((void)0); ((void)0); ((void)0); (((XPV*) (sv)->sv_any
)->xpv_cur = (0)); } while (0)
;
409
410 }
411#line 412 "Call.c"
412 PUTBACKPL_stack_sp = sp;
413 return;
414 }
415}
416
417
418XS_EUPXS(XS_Filter__Util__Call_filter_del)static void XS_Filter__Util__Call_filter_del( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
419XS_EUPXS(XS_Filter__Util__Call_filter_del)static void XS_Filter__Util__Call_filter_del( CV* cv __attribute__
((unused)))
420{
421 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
422 if (items != 0)
423 croak_xs_usagePerl_croak_xs_usage(cv, "");
424 {
425#line 241 "Call.xs"
426 dMY_CXTstruct Perl___notused_struct;
427 if (PERL_FILTER_EXISTS(IDX)(PL_parser && PL_parser->rsfp_filters && (
(my_cxt.x_current_idx)) <= Perl_av_top_index( PL_parser->
rsfp_filters))
&& FILTER_DATA(IDX)(PL_parser ? ((PL_parser->rsfp_filters)->sv_u.svu_array
)[(my_cxt.x_current_idx)] : ((void*)0))
&& FILTER_ACTIVE(FILTER_DATA(IDX))((XPVIO*) ((PL_parser ? ((PL_parser->rsfp_filters)->sv_u
.svu_array)[(my_cxt.x_current_idx)] : ((void*)0)))->sv_any
)->xiv_u.xivu_iv
)
428 FILTER_ACTIVE(FILTER_DATA(IDX))((XPVIO*) ((PL_parser ? ((PL_parser->rsfp_filters)->sv_u
.svu_array)[(my_cxt.x_current_idx)] : ((void*)0)))->sv_any
)->xiv_u.xivu_iv
= FALSE(0) ;
429#line 430 "Call.c"
430 }
431 XSRETURN_EMPTYdo { do { const IV tmpXSoff = (0); ((void)0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } while (0); } while (0)
;
432}
433
434
435XS_EUPXS(XS_Filter__Util__Call_unimport)static void XS_Filter__Util__Call_unimport( CV* cv __attribute__
((unused)))
; /* prototype to pass -Wmissing-prototypes */
436XS_EUPXS(XS_Filter__Util__Call_unimport)static void XS_Filter__Util__Call_unimport( CV* cv __attribute__
((unused)))
437{
438 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
439 PERL_UNUSED_VAR(cv)((void)sizeof(cv)); /* -W */
440 PERL_UNUSED_VAR(items)((void)sizeof(items)); /* -W */
441 PERL_UNUSED_VAR(ax)((void)sizeof(ax)); /* -Wall */
442 SPsp -= items;
443 {
444 const char * package;
445
446 if (items < 1)
447 package = "Filter::Util::Call";
448 else {
449 package = (const char *)SvPV_nolen(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000400|0x00200000
)) == 0x00000400) ? ((PL_stack_base[ax + (0)])->sv_u.svu_pv
) : Perl_sv_2pv_flags( PL_stack_base[ax + (0)],0,2))
Value stored to 'package' is never read
450;
451 }
452#line 251 "Call.xs"
453 PERL_UNUSED_VAR(package)((void)sizeof(package));
454 filter_del(filter_call)Perl_filter_del( filter_call);
455#line 456 "Call.c"
456 PUTBACKPL_stack_sp = sp;
457 return;
458 }
459}
460
461#ifdef __cplusplus
462extern "C"
463#endif
464XS_EXTERNAL(boot_Filter__Util__Call)void boot_Filter__Util__Call( CV* cv __attribute__((unused))); /* prototype to pass -Wmissing-prototypes */
465XS_EXTERNAL(boot_Filter__Util__Call)void boot_Filter__Util__Call( CV* cv __attribute__((unused)))
466{
467#if PERL_VERSION_LE(5, 21, 5)((5*1000000 + 32*1000 + 1) <= (5*1000000 + 21*1000 + 5))
468 dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base
+ ax++; I32 items = (I32)(sp - mark)
;
469#else
470 dVARstruct Perl___notused_struct; dXSBOOTARGSXSAPIVERCHKI32 ax = Perl_xs_handshake((((sizeof(struct PerlHandShakeInterpreter
)) << 16) | ((sizeof("" "1.59" "")-1) > 0xFF ? (Perl_croak
("panic: handshake overflow"), 0xFF) : (sizeof("" "1.59" "")-
1) << 8) | ((((1)) ? (_Bool)1 : (_Bool)0) ? 0x00000020 :
0) | ((((0)) ? (_Bool)1 : (_Bool)0) ? 0x00000080 : 0) | ((((
1)) ? (_Bool)1 : (_Bool)0) ? 0x00000040 : 0) | ((sizeof("" "v"
"5" "." "32" "." "0" "")-1) > 0x0000001F ? (Perl_croak("panic: handshake overflow"
), 0x0000001F) : (sizeof("" "v" "5" "." "32" "." "0" "")-1)))
, cv, "Call.c", "v" "5" "." "32" "." "0", "1.59"); SV **mark =
PL_stack_base + ax; SV **sp = PL_stack_sp; I32 items = (I32)
(sp - mark)
;
471#endif
472#if (PERL_REVISION5 == 5 && PERL_VERSION32 < 9)
473 char* file = __FILE__"Call.c";
474#else
475 const char* file = __FILE__"Call.c";
476#endif
477
478 PERL_UNUSED_VAR(file)((void)sizeof(file));
479
480 PERL_UNUSED_VAR(cv)((void)sizeof(cv)); /* -W */
481 PERL_UNUSED_VAR(items)((void)sizeof(items)); /* -W */
482#if PERL_VERSION_LE(5, 21, 5)((5*1000000 + 32*1000 + 1) <= (5*1000000 + 21*1000 + 5))
483 XS_VERSION_BOOTCHECKPerl_xs_handshake((((sizeof(struct PerlHandShakeInterpreter))
<< 16) | ((sizeof("" "1.59" "")-1) > 0xFF ? (Perl_croak
("panic: handshake overflow"), 0xFF) : (sizeof("" "1.59" "")-
1) << 8) | ((((0)) ? (_Bool)1 : (_Bool)0) ? 0x00000020 :
0) | ((((0)) ? (_Bool)1 : (_Bool)0) ? 0x00000080 : 0) | ((((
0)) ? (_Bool)1 : (_Bool)0) ? 0x00000040 : 0) | ((sizeof("" ""
"")-1) > 0x0000001F ? (Perl_croak("panic: handshake overflow"
), 0x0000001F) : (sizeof("" "" "")-1))), cv, "Call.c", items,
ax, "1.59")
;
484# ifdef XS_APIVERSION_BOOTCHECKPerl_xs_handshake((((sizeof(struct PerlHandShakeInterpreter))
<< 16) | ((sizeof("" "" "")-1) > 0xFF ? (Perl_croak
("panic: handshake overflow"), 0xFF) : (sizeof("" "" "")-1) <<
8) | ((((0)) ? (_Bool)1 : (_Bool)0) ? 0x00000020 : 0) | ((((
0)) ? (_Bool)1 : (_Bool)0) ? 0x00000080 : 0) | ((((0)) ? (_Bool
)1 : (_Bool)0) ? 0x00000040 : 0) | ((sizeof("" "v" "5" "." "32"
"." "0" "")-1) > 0x0000001F ? (Perl_croak("panic: handshake overflow"
), 0x0000001F) : (sizeof("" "v" "5" "." "32" "." "0" "")-1)))
, cv, "Call.c", items, ax, "v" "5" "." "32" "." "0")
485 XS_APIVERSION_BOOTCHECKPerl_xs_handshake((((sizeof(struct PerlHandShakeInterpreter))
<< 16) | ((sizeof("" "" "")-1) > 0xFF ? (Perl_croak
("panic: handshake overflow"), 0xFF) : (sizeof("" "" "")-1) <<
8) | ((((0)) ? (_Bool)1 : (_Bool)0) ? 0x00000020 : 0) | ((((
0)) ? (_Bool)1 : (_Bool)0) ? 0x00000080 : 0) | ((((0)) ? (_Bool
)1 : (_Bool)0) ? 0x00000040 : 0) | ((sizeof("" "v" "5" "." "32"
"." "0" "")-1) > 0x0000001F ? (Perl_croak("panic: handshake overflow"
), 0x0000001F) : (sizeof("" "v" "5" "." "32" "." "0" "")-1)))
, cv, "Call.c", items, ax, "v" "5" "." "32" "." "0")
;
486# endif
487#endif
488
489 (void)newXSproto_portable("Filter::Util::Call::filter_read", XS_Filter__Util__Call_filter_read, file, ";$")Perl_newXS_flags( "Filter::Util::Call::filter_read",XS_Filter__Util__Call_filter_read
,file,";$",0)
;
490 (void)newXSproto_portable("Filter::Util::Call::real_import", XS_Filter__Util__Call_real_import, file, "$$$")Perl_newXS_flags( "Filter::Util::Call::real_import",XS_Filter__Util__Call_real_import
,file,"$$$",0)
;
491 (void)newXSproto_portable("Filter::Util::Call::filter_del", XS_Filter__Util__Call_filter_del, file, "")Perl_newXS_flags( "Filter::Util::Call::filter_del",XS_Filter__Util__Call_filter_del
,file,"",0)
;
492 (void)newXSproto_portable("Filter::Util::Call::unimport", XS_Filter__Util__Call_unimport, file, ";$@")Perl_newXS_flags( "Filter::Util::Call::unimport",XS_Filter__Util__Call_unimport
,file,";$@",0)
;
493
494 /* Initialisation Section */
495
496#line 256 "Call.xs"
497 {
498 MY_CXT_INIT(void)0;
499#ifdef FDEBUG
500 fdebug(my_cxt.x_fdebug) = 1;
501#else
502 fdebug(my_cxt.x_fdebug) = 0;
503#endif
504 /* temporary hack to control debugging in toke.c */
505 if (fdebug(my_cxt.x_fdebug))
506 filter_add(NULL, (fdebug) ? (SV*)"1" : (SV*)"0")Perl_filter_add( ((void*)0),((my_cxt.x_fdebug)) ? (SV*)"1" : (
SV*)"0")
;
507 }
508
509#line 510 "Call.c"
510
511 /* End of Initialisation Section */
512
513#if PERL_VERSION_LE(5, 21, 5)((5*1000000 + 32*1000 + 1) <= (5*1000000 + 21*1000 + 5))
514# if PERL_VERSION_GE(5, 9, 0)((5*1000000 + 32*1000 + 1) >= (5*1000000 + 9*1000 + 0))
515 if (PL_unitcheckav)
516 call_list(PL_scopestack_ix, PL_unitcheckav)Perl_call_list( PL_scopestack_ix,PL_unitcheckav);
517# endif
518 XSRETURN_YESdo { (PL_stack_base[ax + (0)] = &(PL_sv_immortals[0]) ); do
{ const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base
+ ax + (tmpXSoff - 1); return; } while (0); } while (0)
;
519#else
520 Perl_xs_boot_epilog(aTHX_ ax);
521#endif
522}
523