[cfe-dev] Results of the FreeBSD Ports build with CC=clang

Chris Lattner clattner at apple.com
Tue Jun 2 10:03:30 PDT 2009

On Jun 2, 2009, at 12:23 AM, Eli Friedman wrote:
> Nested functions: We aren't going to have these anytime soon.  We
> don't have a bug on file; go ahead and file it if you feel like it,
> though.

It's unclear to me that we really want to support nested functions.   
If implemented, they should be defaulted to off.  I really don't like  
nested functions because they make error recovery for "missing } at  
the end of a function" completely broken (subsequent functions are  
parsed as nested functions, hilarity ensues).

> __label__ support: This shouldn't be too hard to fix.  This is PR3429.


> -Werror: The errors involving %m are PR4142.  The others look like
> legitimate warnings; they're asking for it by using -Werror :)

Warnings should be convertible back into warnings with -Werror -Wno- 

> --signed-char: The ability to use a signed character type is available
> to the AST, but it isn't exposed in a way that can be easily added as
> a command-line option.  I'm not entirely sure how we want to implement
> this.  Please file a bug to keep track of this.

Is this hard to implement?  We should just support the same interface  
that GCC does.  If you don't specify a signed-char flag, it defaults  
to what the target wants, if you do, the command line overrides it.

> -rpath/--no-undefined: These appear to be platform-specific options;
> do we have a policy about those at the moment?

No idea, Daniel?

> -O4: You could patch the packages, although I'm slightly hesitant to
> suggest that... anyone have any better suggestions?

This is tricky.  I wonder if there is some magic that the clang driver  
can do for -O4 when the linker doesn't support LTO?

> Constant folder doesn't support strlen(): This is kind of nasty... I'm
> strongly tempted to classify it into the category of "things we will
> not support".  Fixing it is really simple: change the relevant line to
> 'static char asn_str[sizeof("65535.65535")];'.

Definitely shouldn't fix this.  This is a great example of a slippery  
slope: if we implement this, next step is to implement all of "fold". :)

Thanks Eli!


More information about the cfe-dev mailing list