This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Move generation of ExtUtils::Miniperl to ext/ExtUtils-Miniperl from minimod.pl
[perl5.git] / scope.c
diff --git a/scope.c b/scope.c
index ab09eff..3ac3990 100644 (file)
--- a/scope.c
+++ b/scope.c
@@ -394,7 +394,7 @@ Perl_save_int(pTHX_ int *intp)
 {
     dVAR;
     const int i = *intp;
-    UV type = ((UV)(i << SAVE_TIGHT_SHIFT) | SAVEt_INT_SMALL);
+    UV type = ((UV)((UV)i << SAVE_TIGHT_SHIFT) | SAVEt_INT_SMALL);
     int size = 2;
     dSS_ADD;
 
@@ -441,7 +441,7 @@ Perl_save_I32(pTHX_ I32 *intp)
 {
     dVAR;
     const I32 i = *intp;
-    UV type = ((I32)(i << SAVE_TIGHT_SHIFT) | SAVEt_I32_SMALL);
+    UV type = ((I32)((U32)i << SAVE_TIGHT_SHIFT) | SAVEt_I32_SMALL);
     int size = 2;
     dSS_ADD;
 
@@ -724,8 +724,9 @@ Perl_save_alloc(pTHX_ I32 size, I32 pad)
     const UV elems_shifted = elems << SAVE_TIGHT_SHIFT;
 
     if ((elems_shifted >> SAVE_TIGHT_SHIFT) != elems)
-       Perl_croak(aTHX_ "panic: save_alloc elems %"UVuf" out of range (%ld-%ld)",
-                  elems, size, pad);
+       Perl_croak(aTHX_
+            "panic: save_alloc elems %"UVuf" out of range (%"IVdf"-%"IVdf")",
+                  elems, (IV)size, (IV)pad);
 
     SSGROW(elems + 1);
 
@@ -915,7 +916,9 @@ Perl_leave_scope(pTHX_ I32 base)
            break;
        case SAVEt_BOOL:                        /* bool reference */
            *(bool*)ARG0_PTR = cBOOL(uv >> 8);
-#if !NO_TAINT_SUPPORT
+#ifdef NO_TAINT_SUPPORT
+            PERL_UNUSED_VAR(was);
+#else
            if (ARG0_PTR == &(TAINT_get)) {
                /* If we don't update <was>, to reflect what was saved on the
                 * stack for PL_tainted, then we will overwrite this attempt to
@@ -1222,31 +1225,18 @@ Perl_leave_scope(pTHX_ I32 base)
 
            PL_compiling.cop_warnings = (STRLEN*)ARG0_PTR;
            break;
-       case SAVEt_RE_STATE:
-           {
-               const struct re_save_state *const state
-                   = (struct re_save_state *)
-                   (PL_savestack + PL_savestack_ix
-                    - SAVESTACK_ALLOC_FOR_RE_SAVE_STATE);
-               PL_savestack_ix -= SAVESTACK_ALLOC_FOR_RE_SAVE_STATE;
-
-               if (PL_reg_poscache != state->re_state_reg_poscache) {
-                   Safefree(PL_reg_poscache);
-               }
-               Copy(state, &PL_reg_state, 1, struct re_save_state);
-           }
-           break;
        case SAVEt_PARSER:
            parser_free((yy_parser *) ARG0_PTR);
            break;
+       case SAVEt_READONLY_OFF:
+           SvREADONLY_off(ARG0_SV);
+           break;
        default:
            Perl_croak(aTHX_ "panic: leave_scope inconsistency %u", type);
        }
     }
 
     TAINT_set(was);
-
-    PERL_ASYNC_CHECK();
 }
 
 void