This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug bootstrap/44426] [4.4/4.5/4.6 Regression] gcc 4.5.0 requires c9x compiler to build
- From: "joseph at codesourcery dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 5 Jun 2010 21:33:27 -0000
- Subject: [Bug bootstrap/44426] [4.4/4.5/4.6 Regression] gcc 4.5.0 requires c9x compiler to build
- References: <bug-44426-16543@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #9 from joseph at codesourcery dot com 2010-06-05 21:33 -------
Subject: Re: [4.4/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:
>
>
> ------- 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.
At least in some cases for which variadic macros have been used, I suppose
they result in a faster compiler than the alternative - for example, they
were used when transitioning from variadic "build" to separate
(non-variadic, so faster) buildN functions. There may be less use for
conditional uses in the present cases.
You can't readily use an inline function to replace the present uses of
variadic macros; __builtin_va_arg_pack (a GNU extension) would be needed
for a straightforward conversion.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44426