From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16756 invoked by alias); 5 Jun 2010 21:33:39 -0000 Received: (qmail 16704 invoked by alias); 5 Jun 2010 21:33:27 -0000 Date: Sat, 05 Jun 2010 21:33:00 -0000 Message-ID: <20100605213327.16703.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug bootstrap/44426] [4.4/4.5/4.6 Regression] gcc 4.5.0 requires c9x compiler to build In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "joseph at codesourcery dot com" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2010-06/txt/msg00594.txt.bz2 ------- 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