diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2002-03-21 20:19:31 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2002-03-21 20:19:31 +0000 |
commit | dd7d6c2b9820b80b8bc1446051bad2f6e173499a (patch) | |
tree | 4634b80ac82f42d07301aaf4c58abd3700b4b7f5 /op.h | |
parent | d503bed0ad10125976d438fa47e4b223f7cdb98c (diff) | |
download | perl-dd7d6c2b9820b80b8bc1446051bad2f6e173499a.tar.gz |
It seems that the strange failure (core dump) of
t/uni/fold.t on ithreads Solaris builds is a gcc bug:
(1) using Sun's cc helps
(2) rewriting the ithreads PM_SETRE() to do the
setting in two steps helps
(3) no other platforms have the crash
(4) Tru64's Third Degree sees nothing evil
So we implement (2).
p4raw-id: //depot/perl@15400
Diffstat (limited to 'op.h')
-rw-r--r-- | op.h | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -263,7 +263,7 @@ struct pmop { #ifdef USE_ITHREADS #define PM_GETRE(o) (INT2PTR(REGEXP*,SvIVX(PL_regex_pad[(o)->op_pmoffset]))) -#define PM_SETRE(o,r) (sv_setiv(PL_regex_pad[(o)->op_pmoffset], PTR2IV(r))) +#define PM_SETRE(o,r) STMT_START { SV* sv = PL_regex_pad[(o)->op_pmoffset]; sv_setiv(sv, PTR2IV(r)); } STMT_END #define PM_GETRE_SAFE(o) (PL_regex_pad ? PM_GETRE(o) : (REGEXP*)0) #define PM_SETRE_SAFE(o,r) if (PL_regex_pad) PM_SETRE(o,r) #else |