/* XSUB.h
*
- * Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999,
- * 2000, 2001, 2002, 2003, 2004, 2005 by Larry Wall and others
+ * Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+ * 2003, 2004, 2005, 2006, 2007 by Larry Wall and others
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
# endif
#endif
-#define dAX const I32 ax = MARK - PL_stack_base + 1
+#define dAX const I32 ax = (I32)(MARK - PL_stack_base + 1)
#define dAXMARK \
I32 ax = POPMARK; \
register SV **mark = PL_stack_base + ax++
-#define dITEMS I32 items = SP - MARK
+#define dITEMS I32 items = (I32)(SP - MARK)
#if defined(lint) && defined(S_SPLINT_S) /* www.splint.org */
# define dXSARGS \
#define XSRETURN(off) \
STMT_START { \
- IV tmpXSoff = (off); \
+ const IV tmpXSoff = (off); \
PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); \
return; \
} STMT_END