Can't understand what VC++ 6 and Borland don't like about it. There
is similar code for SvMAGIC and SvSTASH already in sv.h. Must be
compiler bugs since VC++ 7 and MinGW (and compilers on other platforms)
are all happy.
p4raw-id: //depot/perl@26634
#define GvXPVGV(gv) ((XPVGV*)SvANY(gv))
-#ifdef DEBUGGING
+/* MSVC++ 6.0 (_MSC_VER == 1200) can't compile pp_hot.c with DEBUGGING enabled
+ * if we include the following assert(). Must be a compiler bug because it
+ * works fine with MSVC++ 7.0. Borland (5.5.1) has the same problem. */
+#if defined(DEBUGGING) && \
+ ((!defined(_MSC_VER) || _MSC_VER > 1200) && !defined(__BORLANDC__))
# define GvGP(gv) (*(assert(SvTYPE(gv) == SVt_PVGV || \
SvTYPE(gv) == SVt_PVLV), \
&(GvXPVGV(gv)->xgv_gp)))