On Tue, Jun 24, 2014 at 7:05 PM, Per Hedbor () @ Pike (-) developers
forum <10353(a)lyskom.lysator.liu.se> wrote:
> Could you give this version of SET_SVAL a try, perhaps?
>
> #define SET_SVAL(SVAL, TYPE, SUBTYPE, FIELD, EXPR) do { \
> /* Set the type afterwards to avoid a clobbered \
> * svalue in case EXPR throws. */ \
> struct svalue * _sv_ptr=&( SVAL ); \
> _sv_ptr->u.FIELD = (EXPR); \
> *((ptrdiff_t*)&_sv_ptr->type) = TYPE_SUBTYPE(TYPE,SUBTYPE);\
> } while(0)
Has exactly the same result.
It's entirely possible I'm misdiagnosing this. To come to the
conclusion I did, I took the current 8.0 branch, reverted that one
commit, and then began applying it piece by piece. The change to
configure.in didn't break anything, the change to svalue.h did. Within
that, changing from INT16 to short had no effect (on my system, I
believe INT16 compiles to short anyway); adding structures and unused
defines, unsurprisingly, didn't break anything; and changing the
definition of SET_SVAL induced the error message. That's all the info
I have to offer.
I'm starting up a completely fresh Pike clone to see if somehow I've
accumulated cruft of some sort. If that behaves differently, I'll let
you know.
ChrisA