- (*({GV *const shplep = (GV *) gv; \
- assert(SvTYPE(shplep) == SVt_PVGV || \
- SvTYPE(shplep) == SVt_PVLV); \
- assert(isGV_with_GP(shplep)); \
- &((shplep)->sv_u.svu_gp);}))
+ (0+(*({GV *const _gvgp = (GV *) (gv); \
+ assert(SvTYPE(_gvgp) == SVt_PVGV || SvTYPE(_gvgp) == SVt_PVLV); \
+ assert(isGV_with_GP(_gvgp)); \
+ &((_gvgp)->sv_u.svu_gp);})))
+# define GvGP_set(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 = (gp); }