This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
make pp_return() use leave_adjust_stacks()
[perl5.git] / pp.h
diff --git a/pp.h b/pp.h
index 60fe9ee..e3222e4 100644 (file)
--- a/pp.h
+++ b/pp.h
@@ -56,35 +56,46 @@ Refetch the stack pointer.  Used after a callback.  See L<perlcall>.
 #define TARG targ
 
 #if defined(DEBUGGING) && defined(PERL_USE_GCC_BRACE_GROUPS)
-#  define PUSHMARK(p)                                                   \
+
+#  define PUSHMARK(p) \
     STMT_START {                                                      \
         I32 * mark_stack_entry;                                       \
-        if (UNLIKELY((mark_stack_entry = ++PL_markstack_ptr) == PL_markstack_max)) \
+        if (UNLIKELY((mark_stack_entry = ++PL_markstack_ptr)          \
+                                           == PL_markstack_max))      \
            mark_stack_entry = markstack_grow();                      \
         *mark_stack_entry  = (I32)((p) - PL_stack_base);              \
-        DEBUG_s(PerlIO_printf(Perl_debug_log, "MARK push %p %d\n",    \
-                PL_markstack_ptr, *mark_stack_entry));                \
+        DEBUG_s(DEBUG_v(PerlIO_printf(Perl_debug_log,                 \
+                "MARK push %p %"IVdf"\n",                             \
+                PL_markstack_ptr, (IV)*mark_stack_entry)));           \
     } STMT_END
-#  define TOPMARK                                                       \
+
+#  define TOPMARK \
     ({                                                                \
-        DEBUG_s(PerlIO_printf(Perl_debug_log, "MARK top  %p %d\n",    \
-                PL_markstack_ptr, *PL_markstack_ptr));                \
+        DEBUG_s(DEBUG_v(PerlIO_printf(Perl_debug_log,                 \
+                "MARK top  %p %"IVdf"\n",                             \
+                PL_markstack_ptr, (IV)*PL_markstack_ptr)));           \
         *PL_markstack_ptr;                                            \
     })
-#  define POPMARK                                                       \
+
+#  define POPMARK \
     ({                                                                \
-        DEBUG_s(PerlIO_printf(Perl_debug_log, "MARK pop  %p %d\n",    \
-                (PL_markstack_ptr-1), *(PL_markstack_ptr-1)));        \
+        DEBUG_s(DEBUG_v(PerlIO_printf(Perl_debug_log,                 \
+                "MARK pop  %p %"IVdf"\n",                             \
+                (PL_markstack_ptr-1), (IV)*(PL_markstack_ptr-1))));   \
         assert((PL_markstack_ptr > PL_markstack) || !"MARK underflow");\
         *PL_markstack_ptr--;                                          \
     })
-#  define INCMARK                                                       \
+
+#  define INCMARK \
     ({                                                                \
-        DEBUG_s(PerlIO_printf(Perl_debug_log, "MARK inc  %p %d\n",    \
-                (PL_markstack_ptr+1), *(PL_markstack_ptr+1)));        \
+        DEBUG_s(DEBUG_v(PerlIO_printf(Perl_debug_log,                 \
+                "MARK inc  %p %"IVdf"\n",                             \
+                (PL_markstack_ptr+1), (IV)*(PL_markstack_ptr+1))));   \
         *PL_markstack_ptr++;                                          \
     })
+
 #else
+
 #  define PUSHMARK(p)                                                   \
     STMT_START {                                                     \
         I32 * mark_stack_entry;                                       \