------- Comment #7 from rguenth at gcc dot gnu dot org  2010-06-05 19:10 -------
(In reply to comment #6)
> (In reply to comment #4)
> > Subject: Re:  [4.5/4.6 Regression] gcc 4.5.0 requires
> >  c9x compiler to build
> > 
> > On Sat, 5 Jun 2010, manu at gcc dot gnu dot org wrote:
> > 
> > > Do you mean we should not use VA_ARGS in GCC? Then, what? static inline? 
> > > Is
> > > this warned by -pedantic? Shouldn't it?
> > 
> > Variadic macros are not standard C90 or C++98 and should only be used 
> > *conditionally* if the compiler being used to build GCC supports them.  
> 
> Why add a conditional definition if an alternative without VA_ARGS is needed?
> Using VA_ARGS+alternative does not seem to give any benefits.
> 
> > I think
> > 
> > #if GCC_VERSION >= 3000 || __STDC_VERSION__ >= 199901L
> > 
> > is a suitable condition for support of variadic macros.
> > 
> > Because these macros may be used *conditionally*, GCC is built with 
> > -Wno-variadic-macros.
> 
> I don't see the benefit on using them conditionally. I would rather not use
> them at all than have to fix something afterwards.
> 
> > For the cases that are inserting UNKNOWN_LOCATION, I'd suggest just 
> > changing all the call sites of the macro to pass UNKNOWN_LOCATION 
> > explicitly, and removing the macro.  That should deal with build_call_expr 
> > and with build_call_nofold in builtins.c.
> 
> OK for me but this was done on purpose. So I won't even try to fix this until
> the corresponding maintainer pre-approves such patch.

Please instead make a static inline variadic alternative instead (so we
still use variadic macros if available).


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44426

Reply via email to