On 06/02/2014 12:53 AM, Paul Eggert wrote: > Paul Eggert wrote: >> Pádraig Brady wrote: >> >>> +# define _GL_UNUSED_LABEL _GL_UNUSED; >> >> Why is there a semicolon at the end of that macro definition? > > I removed it just now (since I was syncing to Emacs and I couldn't stand > seeing the typo there...).
Well the ; is needed in C++ but optional in C. I was worried about users leaving out the ; by mistake and not noticing in the normal case of compiling in C. I suppose one could contrive a change in behavior using something like if (false) label: _GL_UNUSED_LABEL puts("true"); That would output "true" always. Better to give the compile error on C++ rather than that silent gotcha. thanks, Pádraig.