* Michael Krasnik: > #ifdef PRODUCTION > #define X_ABC(x) ( check( x ), x->abc ) > #else > #define X_ABC(x) x->abc > #endif > > which expands > > X_ABC(x) = y; > > to: > > ( check( x ), x->abc ) = y;
> Eliminating this construct makes macros much less flexible > and requires much more work for creating self-verifying > frameworks, which is a big issue for small companies with > large codebase. There seems to be a trivial fix: modifiy the check function to return its argument.