Add tests for the -C switch. Depending on the
[p5sagit/p5-mst-13.2.git] / cv.h
diff --git a/cv.h b/cv.h
index 6e8383a..e1191b6 100644 (file)
--- a/cv.h
+++ b/cv.h
@@ -11,7 +11,7 @@
  * in sv.h  */
 
 struct xpvcv {
-    char *     xpv_pv;         /* pointer to malloced string */
+    char *     xpv_pv;         /* pointer to malloced string (for prototype) */
     STRLEN     xpv_cur;        /* length of xp_pv as a C string */
     STRLEN     xpv_len;        /* allocated size */
     IV         xof_off;        /* integer value */
@@ -82,9 +82,10 @@ Returns the stash of the CV.
 #define CVf_LVALUE     0x0100  /* CV return value can be used as lvalue */
 #define CVf_CONST      0x0200  /* inlinable sub */
 #define CVf_WEAKOUTSIDE        0x0400  /* CvOUTSIDE isn't ref counted */
+#define CVf_ASSERTION   0x0800  /* CV called only when asserting */
 
 /* This symbol for optimised communication between toke.c and op.c: */
-#define CVf_BUILTIN_ATTRS      (CVf_METHOD|CVf_LOCKED|CVf_LVALUE)
+#define CVf_BUILTIN_ATTRS      (CVf_METHOD|CVf_LOCKED|CVf_LVALUE|CVf_ASSERTION)
 
 #define CvCLONE(cv)            (CvFLAGS(cv) & CVf_CLONE)
 #define CvCLONE_on(cv)         (CvFLAGS(cv) |= CVf_CLONE)
@@ -124,6 +125,10 @@ Returns the stash of the CV.
 #define CvLVALUE_on(cv)                (CvFLAGS(cv) |= CVf_LVALUE)
 #define CvLVALUE_off(cv)       (CvFLAGS(cv) &= ~CVf_LVALUE)
 
+#define CvASSERTION(cv)                (CvFLAGS(cv) & CVf_ASSERTION)
+#define CvASSERTION_on(cv)     (CvFLAGS(cv) |= CVf_ASSERTION)
+#define CvASSERTION_off(cv)    (CvFLAGS(cv) &= ~CVf_ASSERTION)
+
 #define CvEVAL(cv)             (CvUNIQUE(cv) && !SvFAKE(cv))
 #define CvEVAL_on(cv)          (CvUNIQUE_on(cv),SvFAKE_off(cv))
 #define CvEVAL_off(cv)         CvUNIQUE_off(cv)