This is a live mirror of the Perl 5 development currently hosted at
https://github.com/perl/perl5
https://perl5.git.perl.org
/
perl5.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
We were failing to pring "not ok" if the text exited uncleanly
[perl5.git]
/
XSUB.h
diff --git
a/XSUB.h
b/XSUB.h
index
b611581
..
52f66a6
100644
(file)
--- a/
XSUB.h
+++ b/
XSUB.h
@@
-54,6
+54,10
@@
C<xsubpp>.
Sets up the C<ax> variable.
This is usually handled automatically by C<xsubpp> by calling C<dXSARGS>.
Sets up the C<ax> variable.
This is usually handled automatically by C<xsubpp> by calling C<dXSARGS>.
+=for apidoc Ams||dAXMARK
+Sets up the C<ax> variable and stack marker variable C<mark>.
+This is usually handled automatically by C<xsubpp> by calling C<dXSARGS>.
+
=for apidoc Ams||dITEMS
Sets up the C<items> variable.
This is usually handled automatically by C<xsubpp> by calling C<dXSARGS>.
=for apidoc Ams||dITEMS
Sets up the C<items> variable.
This is usually handled automatically by C<xsubpp> by calling C<dXSARGS>.
@@
-88,18
+92,25
@@
is a lexical $_ in scope.
# define XS(name) EXPORT_C void name(pTHX_ CV* cv)
#endif
#ifndef XS
# define XS(name) EXPORT_C void name(pTHX_ CV* cv)
#endif
#ifndef XS
-# define XS(name) void name(pTHX_ CV* cv)
+# ifdef HASATTRIBUTE_UNUSED
+# define XS(name) void name(pTHX_ CV* cv __attribute__unused__)
+# else
+# define XS(name) void name(pTHX_ CV* cv)
+# endif
#endif
#endif
-#define dAX I32 ax = MARK - PL_stack_base + 1
+#define dAX const I32 ax = MARK - PL_stack_base + 1
+
+#define dAXMARK \
+ I32 ax = POPMARK; \
+ register SV ** const mark = PL_stack_base + ax++
#define dITEMS I32 items = SP - MARK
#define dXSARGS \
#define dITEMS I32 items = SP - MARK
#define dXSARGS \
- dSP; dMARK; \
- dAX; dITEMS
+ dSP; dAXMARK; dITEMS
-#define dXSTARG SV * targ = ((PL_op->op_private & OPpENTERSUB_HASTARG) \
+#define dXSTARG SV *
const
targ = ((PL_op->op_private & OPpENTERSUB_HASTARG) \
? PAD_SV(PL_op->op_targ) : sv_newmortal())
/* Should be used before final PUSHi etc. if not in PPCODE section. */
? PAD_SV(PL_op->op_targ) : sv_newmortal())
/* Should be used before final PUSHi etc. if not in PPCODE section. */
@@
-249,8
+260,8
@@
Rethrows a previously caught exception. See L<perlguts/"Exception Handling">.
#ifdef XS_VERSION
# define XS_VERSION_BOOTCHECK \
STMT_START { \
#ifdef XS_VERSION
# define XS_VERSION_BOOTCHECK \
STMT_START { \
- SV *_sv;
STRLEN n_a;
\
- const char *vn = Nullch, *module = SvPV
(ST(0),n_a);
\
+ SV *_sv;
\
+ const char *vn = Nullch, *module = SvPV
_nolen_const(ST(0));
\
if (items >= 2) /* version supplied as bootstrap arg */ \
_sv = ST(1); \
else { \
if (items >= 2) /* version supplied as bootstrap arg */ \
_sv = ST(1); \
else { \