"Safe multi-line macros" have been suggested before, and turned down. The C extension that gcc supports is statement expressions: https://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html
On Sat, Mar 12, 2016 at 11:15 AM, walter harms <wha...@bfs.de> wrote: > > > Am 12.03.2016 19:43, schrieb Matt Turner: >> On Sat, Mar 12, 2016 at 10:24 AM, walter harms <wha...@bfs.de> wrote: >>> >>> >>> Am 12.03.2016 19:15, schrieb Alan Coopersmith: >>>> Cleans up several -Wempty-body warnings from gcc 5.3 >>>> >>>> Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com> >>>> --- >>>> def.h | 4 ++-- >>>> 1 file changed, 2 insertions(+), 2 deletions(-) >>>> >>>> diff --git a/def.h b/def.h >>>> index 1930cde..59670a9 100644 >>>> --- a/def.h >>>> +++ b/def.h >>>> @@ -82,9 +82,9 @@ extern int _debugmask; >>>> * 3 show #include SYMBOL >>>> * 4-6 unused >>>> */ >>>> -#define debug(level,arg) { if (_debugmask & (1 << level)) warning arg; } >>>> +#define debug(level,arg) do { if (_debugmask & (1 << level)) warning arg; >>>> } while(0) >>>> #else >>>> -#define debug(level,arg) /**/ >>>> +#define debug(level,arg) do { /**/ } while (0) >>>> #endif /* DEBUG */ >>>> >>>> typedef unsigned char boolean; >>> >>> >>> #define debug(level,arg) while(0) >>> >>> should be sufficient (not tested) >> >> Maybe, but that sure looks strange to my eye, while the do { ... } >> while(0) pattern is well recognized. > > for me other way around :) > > never mind, both are a noop, someone could propose this as C extension ,) > > re, > wh > _______________________________________________ > xorg-devel@lists.x.org: X.Org development > Archives: http://lists.x.org/archives/xorg-devel > Info: https://lists.x.org/mailman/listinfo/xorg-devel -- Jasper _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel