+#define CvCVGV_RC(cv) (CvFLAGS(cv) & CVf_CVGV_RC)
+#define CvCVGV_RC_on(cv) (CvFLAGS(cv) |= CVf_CVGV_RC)
+#define CvCVGV_RC_off(cv) (CvFLAGS(cv) &= ~CVf_CVGV_RC)
+
+#ifdef PERL_CORE
+# define CvSLABBED(cv) (CvFLAGS(cv) & CVf_SLABBED)
+# define CvSLABBED_on(cv) (CvFLAGS(cv) |= CVf_SLABBED)
+# define CvSLABBED_off(cv) (CvFLAGS(cv) &= ~CVf_SLABBED)
+#endif
+
+#define CvDYNFILE(cv) (CvFLAGS(cv) & CVf_DYNFILE)
+#define CvDYNFILE_on(cv) (CvFLAGS(cv) |= CVf_DYNFILE)
+#define CvDYNFILE_off(cv) (CvFLAGS(cv) &= ~CVf_DYNFILE)
+
+#define CvAUTOLOAD(cv) (CvFLAGS(cv) & CVf_AUTOLOAD)
+#define CvAUTOLOAD_on(cv) (CvFLAGS(cv) |= CVf_AUTOLOAD)
+#define CvAUTOLOAD_off(cv) (CvFLAGS(cv) &= ~CVf_AUTOLOAD)
+
+#define CvHASEVAL(cv) (CvFLAGS(cv) & CVf_HASEVAL)
+#define CvHASEVAL_on(cv) (CvFLAGS(cv) |= CVf_HASEVAL)
+#define CvHASEVAL_off(cv) (CvFLAGS(cv) &= ~CVf_HASEVAL)
+
+#define CvNAMED(cv) (CvFLAGS(cv) & CVf_NAMED)
+#define CvNAMED_on(cv) (CvFLAGS(cv) |= CVf_NAMED)
+#define CvNAMED_off(cv) (CvFLAGS(cv) &= ~CVf_NAMED)
+
+#define CvLEXICAL(cv) (CvFLAGS(cv) & CVf_LEXICAL)
+#define CvLEXICAL_on(cv) (CvFLAGS(cv) |= CVf_LEXICAL)
+#define CvLEXICAL_off(cv) (CvFLAGS(cv) &= ~CVf_LEXICAL)
+
+#define CvANONCONST(cv) (CvFLAGS(cv) & CVf_ANONCONST)
+#define CvANONCONST_on(cv) (CvFLAGS(cv) |= CVf_ANONCONST)
+#define CvANONCONST_off(cv) (CvFLAGS(cv) &= ~CVf_ANONCONST)
+
+/* Flags for newXS_flags */
+#define XS_DYNAMIC_FILENAME 0x01 /* The filename isn't static */
+
+PERL_STATIC_INLINE HEK *
+CvNAME_HEK(CV *sv)
+{
+ return CvNAMED(sv)
+ ? ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_gv_u.xcv_hek
+ : 0;
+}
+/* This lowers the refernce count of the previous value, but does *not*
+ increment the reference count of the new value. */
+#define CvNAME_HEK_set(cv, hek) ( \
+ CvNAME_HEK((CV *)(cv)) \
+ ? unshare_hek(SvANY((CV *)(cv))->xcv_gv_u.xcv_hek) \
+ : (void)0, \
+ ((XPVCV*)MUTABLE_PTR(SvANY(cv)))->xcv_gv_u.xcv_hek = (hek), \
+ CvNAMED_on(cv) \
+ )
+