On Tue, Aug 01, 2006 at 11:45:53AM +0159, Jiri Slaby wrote:Peter Zijlstra wrote:On Tue, 2006-08-01 at 02:03 -0700, Hua Zhong wrote:Bulls^WNope, it was a bad example (we don't want to break the compilation, just not want to emit a warn or an err).No, and that is the whole point.#if KILLER == 1Really? Does it compile?
#define MACRO
#else
#define MACRO do { } while (0)
#endif
{
if (some_condition)
MACRO
if_this_is_not_called_you_loose_your_data();
}
How do you want to define KILLER, 0 or 1? I personally choose 0.
The empty 'do {} while (0)' makes the missing semicolon a syntax error.
Your sentence does not make sense, but I'm going to take it as saying
that you disagree that the above will cause a syntax error. Try it: