Add new tests for keys in %+ and %-
[p5sagit/p5-mst-13.2.git] / gv.h
diff --git a/gv.h b/gv.h
index 25961ef..cbc6840 100644 (file)
--- a/gv.h
+++ b/gv.h
@@ -25,7 +25,7 @@ struct gp {
 #define GvXPVGV(gv)    ((XPVGV*)SvANY(gv))
 
 
-#if defined (DEBUGGING) && defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
+#if defined (DEBUGGING) && defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN) && !defined(__INTEL_COMPILER)
 #  define GvGP(gv)                                                     \
        (*({GV *const shplep = (GV *) (gv);                             \
            assert(SvTYPE(shplep) == SVt_PVGV || SvTYPE(shplep) == SVt_PVLV); \
@@ -46,6 +46,7 @@ struct gp {
        (*({ GV * const zzzz = (GV *) (gv);                             \
           assert(isGV_with_GP(zzzz));                                  \
           assert(SvTYPE(zzzz) == SVt_PVGV || SvTYPE(zzzz) >= SVt_PVLV); \
+          assert(!SvVALID(zzzz));                                      \
           &(GvXPVGV(zzzz)->xiv_u.xivu_namehek);                        \
         }))
 #  define GvNAME_get(gv)       ({ assert(GvNAME_HEK(gv)); HEK_KEY(GvNAME_HEK(gv)); })
@@ -206,6 +207,10 @@ Return the SV from the GV.
 /*      SVf_UTF8 (more accurately the return value from SvUTF8) is also valid
        as a flag to gv_fetch_pvn_flags, so ensure it lies outside this range.
 */
+
+#define GV_NOADD_MASK  (SVf_UTF8|GV_NOADD_NOINIT|GV_NOEXPAND|GV_NOTQUAL)
+/* The bit flags that don't cause gv_fetchpv() to add a symbol if not found */
+
 #define gv_fullname3(sv,gv,prefix) gv_fullname4(sv,gv,prefix,TRUE)
 #define gv_efullname3(sv,gv,prefix) gv_efullname4(sv,gv,prefix,TRUE)
 #define gv_fetchmethod(stash, name) gv_fetchmethod_autoload(stash, name, TRUE)