freetype-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ft-devel] Minor misc patches to freetype cvs, from custom chang


From: Behdad Esfahbod
Subject: Re: [ft-devel] Minor misc patches to freetype cvs, from custom changes in vtk
Date: Thu, 22 Mar 2007 05:23:15 -0400

On Thu, 2007-03-22 at 04:35 -0400, David Turner wrote:
> On Thu, 22 Mar 2007 11:43:58 +0900, "Miles Bader"
> <address@hidden> said:
> > "David Turner" <address@hidden> writes:
> > > this will generate an error with certain compilers/pre-processors
> if
> > > __LP64__ is not defined.  generally speaking #if XXXXX is not a
> > > portable statement, except if you ensure that the macro is always
> > > defined beforehand.
> > 
> > Is this true according to the C standard, or a problem with any
> > non-obsolete compilers?
> > 
> 
> This is one of these things that are certainly not clarified in the C
> standard [1],
> which specifies that #if shall be followed by any
> "constant-expression", the latter
> being defined very loosely in the C language description, and specific
> constraints
> not really detailed.

The relevant part is where it says how to handle incorrect expression
syntax in an #if statement.  Because where FOO is undefined, #if FOO
expands to a null expression which is not a valid one...

> So "#if FOO, where FOO is undefined" is ok with GNU cpp [2] but not
> with Visual C++ [3]
> I haven't looked at other compilers, but I wouldn't be surprised to
> see that this is
> a GNU-specific extension, or it may come from a tradition of various
> Unix pre-processors,
> but certainly can't be generalized... 

Well, a trick I have used in one of my projects is to write "#if FOO+0"
but most people don't like it.

-- 
behdad
http://behdad.org/

"Those who would give up Essential Liberty to purchase a little
 Temporary Safety, deserve neither Liberty nor Safety."
        -- Benjamin Franklin, 1759







reply via email to

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