summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cop.h6
-rw-r--r--cv.h2
-rw-r--r--gv.h4
-rw-r--r--sv.h4
4 files changed, 8 insertions, 8 deletions
diff --git a/cop.h b/cop.h
index fc1dcd30dd..0544dbf7cf 100644
--- a/cop.h
+++ b/cop.h
@@ -813,9 +813,9 @@ struct block_loop {
? &GvSV((c)->blk_loop.itervar_u.gv) \
: (SV **)&(c)->blk_loop.itervar_u.gv)
-#define CxLABEL(c) (0 + CopLABEL((c)->blk_oldcop))
-#define CxLABEL_len(c,len) (0 + CopLABEL_len((c)->blk_oldcop, len))
-#define CxLABEL_len_flags(c,len,flags) (0 + CopLABEL_len_flags((c)->blk_oldcop, len, flags))
+#define CxLABEL(c) (CopLABEL((c)->blk_oldcop))
+#define CxLABEL_len(c,len) (CopLABEL_len((c)->blk_oldcop, len))
+#define CxLABEL_len_flags(c,len,flags) ((const char *)CopLABEL_len_flags((c)->blk_oldcop, len, flags))
#define CxHASARGS(c) (((c)->cx_type & CXp_HASARGS) == CXp_HASARGS)
/* CxLVAL(): the lval flags of the call site: the relevant flag bits from
diff --git a/cv.h b/cv.h
index 4076eec532..9b4df6fb11 100644
--- a/cv.h
+++ b/cv.h
@@ -38,7 +38,7 @@ See L<perlguts/Autoloading with XSUBs>.
# define Nullcv Null(CV*)
#endif
-#define CvSTASH(sv) (0+((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_stash)
+#define CvSTASH(sv) (MUTABLE_HV(((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_stash))
#define CvSTASH_set(cv,st) Perl_cvstash_set(aTHX_ cv, st)
#define CvSTART(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_start_u.xcv_start
#define CvROOT(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_root_u.xcv_root
diff --git a/gv.h b/gv.h
index 962825de65..ccdc97a1fb 100644
--- a/gv.h
+++ b/gv.h
@@ -28,7 +28,7 @@ struct gp {
#if defined (DEBUGGING) && defined(PERL_USE_GCC_BRACE_GROUPS) && !defined(__INTEL_COMPILER)
# define GvGP(gv) \
- (0+(*({GV *const _gvgp = (GV *) (gv); \
+ ((GP *)(*({GV *const _gvgp = (GV *) (gv); \
assert(SvTYPE(_gvgp) == SVt_PVGV || SvTYPE(_gvgp) == SVt_PVLV); \
assert(isGV_with_GP(_gvgp)); \
&((_gvgp)->sv_u.svu_gp);})))
@@ -134,7 +134,7 @@ Return the CV from the GV.
GvGP(gv)->gp_hv : \
GvGP(gv_HVadd(gv))->gp_hv)
-#define GvCV(gv) (0+GvGP(gv)->gp_cv)
+#define GvCV(gv) ((CV*)GvGP(gv)->gp_cv)
#define GvCV_set(gv,cv) (GvGP(gv)->gp_cv = (cv))
#define GvCVGEN(gv) (GvGP(gv)->gp_cvgen)
#define GvCVu(gv) (GvGP(gv)->gp_cvgen ? NULL : GvGP(gv)->gp_cv)
diff --git a/sv.h b/sv.h
index 1eecc31403..d4d5681541 100644
--- a/sv.h
+++ b/sv.h
@@ -1398,8 +1398,8 @@ object type. Exposed to perl code via Internals::SvREADONLY().
#ifndef PERL_POISON
/* Given that these two are new, there can't be any existing code using them
* as LVALUEs, so prevent that from happening */
-# define SvPVX_mutable(sv) (0 + (sv)->sv_u.svu_pv)
-# define SvPVX_const(sv) ((const char*)(0 + (sv)->sv_u.svu_pv))
+# define SvPVX_mutable(sv) ((char *)((sv)->sv_u.svu_pv))
+# define SvPVX_const(sv) ((const char*)((sv)->sv_u.svu_pv))
#else
/* Except for the poison code, which uses & to scribble over the pointer after
free() is called. */