#define SAVEt_SAVESWITCHSTACK 40
#define SAVEt_COP_ARYBASE 41
#define SAVEt_RE_STATE 42
+#define SAVEt_COMPILE_WARNINGS 43
#ifndef SCOPE_SAVES_SIGNAL_MASK
#define SCOPE_SAVES_SIGNAL_MASK 0
GvHV(PL_hintgv) = Perl_hv_copy_hints_hv(aTHX_ GvHV(PL_hintgv)); \
} \
if (PL_compiling.cop_hints) { \
+ HINTS_REFCNT_LOCK; \
PL_compiling.cop_hints->refcounted_he_refcnt++; \
+ HINTS_REFCNT_UNLOCK; \
} \
SSPUSHPTR(PL_compiling.cop_hints); \
SSPUSHINT(PL_hints); \
SSPUSHINT(SAVEt_COP_ARYBASE); \
} STMT_END
+/* Need to do the cop warnings like this, rather than a "SAVEFREESHAREDPV",
+ because realloc() means that the value can actually change. Possibly
+ could have done savefreesharedpvREF, but this way actually seems cleaner,
+ as it simplifies the code that does the saves, and reduces the load on the
+ save stack. */
+#define SAVECOMPILEWARNINGS() \
+ STMT_START { \
+ SSCHECK(2); \
+ SSPUSHPTR(PL_compiling.cop_warnings); \
+ SSPUSHINT(SAVEt_COMPILE_WARNINGS); \
+ } STMT_END
#ifdef USE_ITHREADS
# define SAVECOPSTASH(c) SAVEPPTR(CopSTASHPV(c))