[perl #37648] segfault with PERLIO_DEBUG
[p5sagit/p5-mst-13.2.git] / XSUB.h
diff --git a/XSUB.h b/XSUB.h
index bec91a8..c38ccd2 100644 (file)
--- a/XSUB.h
+++ b/XSUB.h
@@ -82,14 +82,17 @@ is a lexical $_ in scope.
 =cut
 */
 
-#ifndef LINT_UNUSED_ARG
+#ifndef PERL_UNUSED_ARG
 #  ifdef lint
 #    include <note.h>
-#    define LINT_UNUSED_ARG(x) NOTE(ARGUNUSED(x))
+#    define PERL_UNUSED_ARG(x) NOTE(ARGUNUSED(x))
 #  else
-#    define LINT_UNUSED_ARG(x)
+#    define PERL_UNUSED_ARG(x) ((void)x)
 #  endif
 #endif
+#ifndef PERL_UNUSED_VAR
+#  define PERL_UNUSED_VAR(x) ((void)x)
+#endif
 
 #define ST(off) PL_stack_base[ax + (off)]
 
@@ -97,7 +100,7 @@ is a lexical $_ in scope.
 #if defined(__CYGWIN__) && defined(USE_DYNAMIC_LOADING)
 #  define XS(name) __declspec(dllexport) void name(pTHX_ CV* cv)
 #endif
-#if defined(SYMBIAN)
+#if defined(__SYMBIAN32__)
 #  define XS(name) EXPORT_C void name(pTHX_ CV* cv)
 #endif
 #ifndef XS
@@ -112,13 +115,18 @@ is a lexical $_ in scope.
 
 #define dAXMARK                                \
        I32 ax = POPMARK;       \
-       register SV ** const mark = PL_stack_base + ax++
+       register SV **mark = PL_stack_base + ax++
 
 #define dITEMS I32 items = SP - MARK
 
-#define dXSARGS \
-       LINT_UNUSED_ARG(cv) \
+#ifdef lint
+#  define dXSARGS \
+       NOTE(ARGUNUSED(cv)) \
+       dSP; dAXMARK; dITEMS
+#else
+#  define dXSARGS \
        dSP; dAXMARK; dITEMS
+#endif
 
 #define dXSTARG SV * const targ = ((PL_op->op_private & OPpENTERSUB_HASTARG) \
                             ? PAD_SV(PL_op->op_targ) : sv_newmortal())
@@ -221,7 +229,7 @@ C<xsubpp>.  See L<perlxs/"The VERSIONCHECK: Keyword">.
 =head1 Simple Exception Handling Macros
 
 =for apidoc Ams||dXCPT
-Set up neccessary local variables for exception handling.
+Set up necessary local variables for exception handling.
 See L<perlguts/"Exception Handling">.
 
 =for apidoc AmU||XCPT_TRY_START