Change 29490 by [EMAIL PROTECTED] on 2006/12/08 22:56:54

        Wrap some macro arguments in () to avoid precedence problems.

Affected files ...

... //depot/perl/sv.h#288 edit

Differences ...

==== //depot/perl/sv.h#288 (text) ====
Index: perl/sv.h
--- perl/sv.h#287~29487~        2006-12-08 14:11:56.000000000 -0800
+++ perl/sv.h   2006-12-08 14:56:54.000000000 -0800
@@ -1132,7 +1132,7 @@
 #  if defined (DEBUGGING) && defined(__GNUC__) && 
!defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
 /* These get expanded inside other macros that already use a variable _sv  */
 #    define SvPVX(sv)                                                  \
-       (*({ SV *const _svi = (SV *) sv;                                \
+       (*({ SV *const _svi = (SV *) (sv);                              \
            assert(SvTYPE(_svi) >= SVt_PV);                             \
            assert(SvTYPE(_svi) != SVt_PVAV);                           \
            assert(SvTYPE(_svi) != SVt_PVHV);                           \
@@ -1140,7 +1140,7 @@
            &((_svi)->sv_u.svu_pv);                                     \
         }))
 #    define SvCUR(sv)                                                  \
-       (*({ SV *const _svi = (SV *) sv;                                \
+       (*({ SV *const _svi = (SV *) (sv);                              \
            assert(SvTYPE(_svi) >= SVt_PV);                             \
            assert(SvTYPE(_svi) != SVt_PVAV);                           \
            assert(SvTYPE(_svi) != SVt_PVHV);                           \
@@ -1148,7 +1148,7 @@
            &(((XPV*) SvANY(_svi))->xpv_cur);                           \
         }))
 #    define SvIVX(sv)                                                  \
-       (*({ SV *const _svi = (SV *) sv;                                \
+       (*({ SV *const _svi = (SV *) (sv);                              \
            assert(SvTYPE(_svi) == SVt_IV || SvTYPE(_svi) >= SVt_PVIV); \
            assert(SvTYPE(_svi) != SVt_PVAV);                           \
            assert(SvTYPE(_svi) != SVt_PVHV);                           \
@@ -1157,7 +1157,7 @@
            &(((XPVIV*) SvANY(_svi))->xiv_iv);                          \
         }))
 #    define SvUVX(sv)                                                  \
-       (*({ SV *const _svi = (SV *) sv;                                \
+       (*({ SV *const _svi = (SV *) (sv);                              \
            assert(SvTYPE(_svi) == SVt_IV || SvTYPE(_svi) >= SVt_PVIV); \
            assert(SvTYPE(_svi) != SVt_PVAV);                           \
            assert(SvTYPE(_svi) != SVt_PVHV);                           \
@@ -1166,7 +1166,7 @@
            &(((XPVUV*) SvANY(_svi))->xuv_uv);                          \
         }))
 #    define SvNVX(sv)                                                  \
-       (*({ SV *const _svi = (SV *) sv;                                \
+       (*({ SV *const _svi = (SV *) (sv);                              \
            assert(SvTYPE(_svi) == SVt_NV || SvTYPE(_svi) >= SVt_PVNV); \
            assert(SvTYPE(_svi) != SVt_PVAV);                           \
            assert(SvTYPE(_svi) != SVt_PVHV);                           \
@@ -1176,14 +1176,14 @@
           &(((XPVNV*) SvANY(_svi))->xnv_u.xnv_nv);                     \
         }))
 #    define SvMAGIC(sv)                                                        
\
-       (*({ SV *const _svi = (SV *) sv;                                \
+       (*({ SV *const _svi = (SV *) (sv);                              \
            assert(SvTYPE(_svi) >= SVt_PVMG);                           \
            if(SvTYPE(_svi) == SVt_PVMG)                                \
                assert(!SvPAD_OUR(_svi));                               \
            &(((XPVMG*) SvANY(_svi))->xmg_u.xmg_magic);                 \
          }))
 #    define SvSTASH(sv)                                                        
\
-       (*({ SV *const _svi = (SV *) sv;                                \
+       (*({ SV *const _svi = (SV *) (sv);                              \
            assert(SvTYPE(_svi) >= SVt_PVMG);                           \
            &(((XPVMG*) SvANY(_svi))->xmg_stash);                       \
          }))
End of Patch.

Reply via email to