__VA_REF
: "0" ((((union { int i, j; } *__VA_REF) (AP))++)->i)); \
: "0" ((((union { int i, j; } *__VA_REF) (AP))++)->i)); \
? (((union { TYPE t; int i;} *__VA_REF) (AP))++)->t \
: ((union {TYPE t;TYPE u;}*) ((char *)++(int *__VA_REF)(AP) - sizeof (TYPE)))->t);})