------- Comment #6 from manu at gcc dot gnu dot org  2010-06-05 19:04 -------
(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.



-- 


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

Reply via email to