Нашёл в исходниках gcc
#define def_mbuiltin(MASK, NAME, TYPE, CODE) \
do \
{ \
if ((MASK) & insn_flags) \
builtin_function ((NAME), (TYPE), (CODE), BUILT_IN_MD, NULL, NULL_TREE); \
} \
while (0)
Зачем так делают? Ведь можно было бы просто
#define def_mbuiltin(MASK, NAME, TYPE, CODE) \
{ \
if ((MASK) & insn_flags) \
builtin_function ((NAME), (TYPE), (CODE), BUILT_IN_MD, NULL, NULL_TREE); \
}
И так сплошь и рядом. Соглашение у них какое-то наверное.