On Mon, Mar 20, 2017 at 09:37:10AM -0400, Jason Merrill wrote:
> On Mon, Mar 20, 2017 at 9:28 AM, Marek Polacek <pola...@redhat.com> wrote:
> >  #define DEF_SANITIZER_BUILTIN(ENUM, NAME, TYPE, ATTRS) \
> > +  do {                                                                 \
> > +    decl = add_builtin_function ("__builtin_" NAME, TYPE, ENUM,            
> >     \
> > +                                BUILT_IN_NORMAL, NAME, NULL_TREE);     \
> > +    set_call_expr_flags (decl, ATTRS);                                 \
> > +    set_builtin_decl (ENUM, decl, true);                               \
> > +  } while (0);
> 
> We leave out the trailing ; in a macro like this.

True, but that wasn't possible in this case, otherwise I got tons of

/home/marek/src/gcc/gcc/asan.c:2570:3: error: expected ‘;’ before ‘do’
   do {         \
   ^
/home/marek/src/gcc/gcc/sanitizer.def:459:1: note: in expansion of macro 
‘DEF_SANITIZER_BUILTIN’
 DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT

        Marek

Reply via email to