On Tue, Jun 24, 2014 at 7:05 PM, Per Hedbor () @ Pike (-) developers
forum <[email protected]> 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
  • Cas... Chris Angelico
    • ... Per Hedbor () @ Pike (-) developers forum
    • ... Chris Angelico
      • ... Chris Angelico
        • ... Arne Goedeke
          • ... Arne Goedeke
            • ... Per Hedbor () @ Pike (-) developers forum
              • ... Marcus Comstedt (ACROSS) (Hail Ilpalazzo!) @ Pike (-) developers forum
            • ... Henrik Grubbstr�m (Lysator) @ Pike (-) developers forum

Reply via email to