Frank Mehnert <fm3@xxxxxxxxxxxxxxxxxxxx> writes: > My problem is the following: > > #define BREAK_ON_ERROR(i) \ > if (1) \ > { \ > if (i < 0) \ > break; \ > } \ > else do \ > { \ > } while (0) \ > > int foo(void) > { > for (;;) > { > int bar = 1, buzz = 2; > if (bar) > BREAK_ON_ERROR(buzz); > } > } > > gcc-4.3 will warn with > > 'warning: suggest explicit braces to avoid ambiguous `else' Use a gcc extension. #define BREAK_ON_ERROR(i) ({ if (i < 0) break; }) Ian