Complete.Org: Mailing Lists: Archives: freeciv-dev: February 2003:
[Freeciv-Dev] Re: (PR#3427) Remove noreturn attribute
Home

[Freeciv-Dev] Re: (PR#3427) Remove noreturn attribute

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: undisclosed-recipients:;
Subject: [Freeciv-Dev] Re: (PR#3427) Remove noreturn attribute
From: "Raimar Falke" <rf13@xxxxxxxxxxxxxxxxx>
Date: Thu, 27 Feb 2003 01:50:41 -0800
Reply-to: rt@xxxxxxxxxxxxxx

On Thu, Feb 27, 2003 at 01:42:21AM -0800, Jason Short wrote:
> Raimar Falke wrote:
> > On Thu, Feb 27, 2003 at 12:37:16AM -0800, Jason Short wrote:
> 
> >>Can you point to any documentation on portably using variadic arguments
> >>in macros?
> > 
> > 
> > This construct is part of the C99 standard.
> > 
> > 6.10.3.1 Argument substitution
> > ...
> > 
> > An identifier __VA_ARGS__ that occurs in the replacement list shall be
> > treated as if it were a parameter, and the variable arguments shall
> > form the preprocessing tokens used to replace it.
> > 
> > There is also a nice example of its usage in "6.10.3.5 Scope of macro
> > definitions".
> 
> Well, that's good, but unfortunately it brings us back to the C99 argument.
> 
> I'm in favor of using C99 (instead of C89).

Me too. At least this feature is supported by icc 6.0, gcc 2.96 and
3.2 and "Sun WorkShop 6 update 2 C 5.3". The test is easy:

$ cat a.c
#define x(...) #__VA_ARGS__

x(a,b)
$ gcc -E a.c
# 1 "a.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "a.c"


"a,b"
$

So if you have access to other compilers please test and report the
results.

        Raimar

-- 
 email: rf13@xxxxxxxxxxxxxxxxx
 "Like the ad says, at 300 dpi you can tell she's wearing a
  swimsuit. At 600 dpi you can tell it's wet. At 1200 dpi you
  can tell it's painted on. I suppose at 2400 dpi you can tell
  if the paint is giving her a rash."
    -- Joshua R. Poulson




[Prev in Thread] Current Thread [Next in Thread]