[cfe-dev] Even more clang ideas
Chris Lattner
clattner at apple.com
Fri Jul 25 22:09:36 PDT 2008
On Jul 25, 2008, at 6:28 PM, Ted Kremenek wrote:
>>
>> It really starts to become a problem when you turn on the optimizer
>> and it begins to do optimizations that are dependent on this
>> aliasing invariant. When I realized that this could actually be a
>> serious, very subtle problem, and started digging I found evidence
>> to support it. For example, '-fstrict-aliasing' is disabled on
>> Apples GCC for ObjC code.
>
> Interesting. I think this illustrates my point that the strict
> aliasing rules in C99 don't really apply to Objective-C, at least in
> the implementation provided by GCC. This is clearly a deliberate
> choice, likely to avoid the issues you mentioned.
-fstrict-aliasing being off by default has more to do with its
implementation in GCC than it does the objc type system. I don't
think that any of the things John is talking about affect -fstrict-
aliasing.
When llvm-gcc (and eventually clang) supports type based alias
analysis, it will almost certainly be on by default, even on the mac.
>> Using '-fast' on .m files causes the compiler to emit 'cc1obj:
>> warning: command line option "-fast" is valid for C/C++ but not for
>> ObjC'
-fast is basically the "optimize for SPEC" flag. There are no objc
programs in spec.
-Chris
More information about the cfe-dev
mailing list