This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
It seems that our assert() macro wasn't good enough.
[perl5.git] / sv.h
diff --git a/sv.h b/sv.h
index bc03bb8..f05df1c 100644 (file)
--- a/sv.h
+++ b/sv.h
@@ -741,8 +741,8 @@ and leaves the UTF-8 status as it was.
 #define SvENDx(sv) ((PL_Sv = (sv)), SvEND(PL_Sv))
 
 #ifdef DEBUGGING
-#define SvMAGIC(sv)    ((assert(SvTYPE(sv) >= SVt_PVMG)), ((XPVMG*)  SvANY(sv))->xmg_magic)
-#define SvSTASH(sv)    ((XPVMG*)  SvANY(sv))->xmg_stash
+#define SvMAGIC(sv)    (*(assert(SvTYPE(sv) >= SVt_PVMG), &((XPVMG*)  SvANY(sv))->xmg_magic))
+#define SvSTASH(sv)    (*(assert(SvTYPE(sv) >= SVt_PVMG), &((XPVMG*)  SvANY(sv))->xmg_stash))
 #else
 #define SvMAGIC(sv)    ((XPVMG*)  SvANY(sv))->xmg_magic
 #define SvSTASH(sv)    ((XPVMG*)  SvANY(sv))->xmg_stash