[cfe-dev] linux build fix

Chris Lattner clattner at apple.com
Sun Dec 9 15:16:51 PST 2007


On Dec 9, 2007, at 2:04 PM, Sean Middleditch wrote:
> On Sun, 2007-12-09 at 10:05 -0800, Chris Lattner wrote:
>> This should be parsed as a "builtin" builtin like
>> __builtin_type_compatible_p, which has its own parsing logic and
>> builds its own explicit AST.  The nice thing about this is that it
>> preserves some amount of target parameterization in the AST, reduces
>> the amount of stuff we have to slam into the macro table at startup,
>> reduces pressure on the identifier table, and is nicely extensible to
>> other things in the future.
>
> I like it.  Anything that removes the giant nest of #if tests and  
> cutesy
> math in headers is a good thing in my book, especially having dug
> through those headers.  Whether they're defined by a standard or not,
> it's still nice to have clean, well-commented, easy-to-read headers
> shipped with your development environment.

Yep, the other big win is that with one binary you'd be able to do:

clang foo.c -triple sparc-sun-solaris8
clang foo.c -triple i386-pc-linux-gnu

or whatever.  This requires installing headers for all targets in and  
making them work in place.

> Hmm.  Wouldn't it be better to have those kinds of builtins  
> evaluated at
> pre-processing time anyway, both to avoid special-casing support for  
> it
> in #if macros as well as making end-user debugging of pre-processed  
> code
> a tiny bit easier?  Leaking compiler magic into pre-processed code  
> might
> not be the coolest idea.

As Neil mentioned, I don't think this is an issue.

-Chris



More information about the cfe-dev mailing list