r223455 - Driver: Objective-C should respect -fno-exceptions

David Majnemer david.majnemer at gmail.com
Fri Dec 5 13:00:13 PST 2014


On Fri, Dec 5, 2014 at 12:37 PM, Nico Weber <thakis at chromium.org> wrote:

> On Fri, Dec 5, 2014 at 11:55 AM, David Majnemer <david.majnemer at gmail.com>
> wrote:
>
>>
>>
>> On Fri, Dec 5, 2014 at 11:47 AM, Nico Weber <thakis at chromium.org> wrote:
>>
>>> On Fri, Dec 5, 2014 at 11:41 AM, David Majnemer <
>>> david.majnemer at gmail.com> wrote:
>>>
>>>>
>>>>
>>>> On Fri, Dec 5, 2014 at 11:25 AM, Nico Weber <thakis at chromium.org>
>>>> wrote:
>>>>
>>>>> On Fri, Dec 5, 2014 at 12:56 AM, David Majnemer <
>>>>> david.majnemer at gmail.com> wrote:
>>>>>
>>>>>> Author: majnemer
>>>>>> Date: Fri Dec  5 02:56:55 2014
>>>>>> New Revision: 223455
>>>>>>
>>>>>> URL: http://llvm.org/viewvc/llvm-project?rev=223455&view=rev
>>>>>> Log:
>>>>>> Driver: Objective-C should respect -fno-exceptions
>>>>>>
>>>>>> Clang attempted to replicate a GCC bug: -fobjc-exceptions forces
>>>>>> -fexceptions to be enabled.  However, this has unintended effects and
>>>>>> other awkard side effects that Clang doesn't "correctly" ape (e.g.
>>>>>> it's
>>>>>> impossible to turn off C++ exceptions in ObjC++ mode
>>>>>
>>>>>
>>>>> What does "impossible to turn off exceptions" mean here?
>>>>>
>>>>> $ clang -c test.mm -fno-exceptions
>>>>> test.mm:2:3: error: cannot use 'try' with exceptions disabled
>>>>>   try {} catch (...) {}
>>>>>   ^
>>>>> 1 error generated.
>>>>>
>>>>
>>>> You should try that with GCC, not clang :)
>>>>
>>>>
>>>>>
>>>>> ).
>>>>>>
>>>>>> Instead, -f[no]objc-exceptions and -f[no]cxx-exceptions now have an
>>>>>> identical relationship with -f[no]exceptions.
>>>>>>
>>>>>
>>>>> Did anyone from Apple review this? I thought the intention was that
>>>>> -fno-exceptions disables c++ exceptions but keeps objc exceptions enabled,
>>>>> since a) many people don't want c++ exceptions so they use -fno-exceptions
>>>>> but b) cocoa uses exceptions so you can't really build without objc
>>>>> exceptions.
>>>>>
>>>>> (I'm guessing I'm misunderstanding the patch somehow.)
>>>>>
>>>>
>>>> The original code was trying to mimic GCC's behavior where
>>>> -fobjc-exceptions _ignores_ -fno-exceptions.
>>>> In GCC, this means that ObjC++ code cannot _ever_ opt out of C++
>>>> exceptions because they don't have a -fcxx-exceptions, they just have
>>>> -fexceptions.  Clang has a different dichotomy of exception
>>>> enabling/disabling flags and it doesn't make sense to copy GCC's arbitrary
>>>> behavior.
>>>>
>>>> If you want Objective-C exceptions but not C++ exceptions,
>>>> -fobjc-exceptions -fno-cxx-exceptions should do the trick.
>>>>
>>>
>>> I'm somewhat sure that when these flags got added they were explicitly
>>> put in a state where -fno-exceptions disables c++ exceptions but not objc
>>> exceptions, for the reason I mentioned above. I don't remember anything
>>> about gcc compatibility.
>>>
>>
>>
>> http://llvm.org/klaus/clang/commit/d47ea693706f7b0ffa68e879b73a71609a337786/
>>
>> "Be compatible with GCC behavior in that -fno-exceptions *does not*
>> disable Obj-C exceptions."
>> "This is not necessarily sensible, but follows GCC."
>>
>>
>>>
>>> Most software doesn't use Objective-C, and when folks say
>>> -fno-exceptions they mean "no c++ exceptions".
>>>
>>
>> Sure, but that's not what -fno-exceptions does in GCC.
>>
>> In C, it disables -fexceptions; this will ensure that calls to
>> __gcc_personality_v0 will not occur.  It also changes the behavior of
>> __attribute__((cleanup)).
>> In Objective C, it does nothing.
>> In C++, it disables -fexceptions; this will ensure that calls to
>> __gxx_personality_v0 will not occur. It makes it illegal to mention 'try'
>> and 'catch'.
>> In Objective C++, it does nothing.
>>
>
> What gcc does for Objective-C nowadays doesn't matter much, almost
> everyone building Objective-C code uses clang. The gcc behavior is
> nonsensical, clang's previous behavior wasn't.
>
> This commit changes behavior fairly severely, without much of a motivation
> from what I understand.
>
> I think clang's previous behavior makes a lot of sense: You have
> -fno-exceptions in all your build files, and you want that to disable c++
> exceptions on linux. You want the same flag mean the same thing on OS X in
> .mm files. If you're writing regular mac apps, you can't realistically
> disable objc exceptions as some framework apis use them.
>
> Having said that, from what I can tell this commit doesn't help with what
> I think it was supposed to help with:
>
> $ ~/src/llvm-build/bin/clang -fno-exceptions -fobjc-exceptions
> -fno-cxx-exceptions -E -dM -x objective-c++ /dev/null | grep EXCEP
> #define OBJC_ZEROCOST_EXCEPTIONS 1
> #define __EXCEPTIONS 1
>

The only thing __EXCEPTIONS really *reliably* corresponds to whether or not
__attribute__((cleanup)) does special stuff if an exception is thrown.
Why? Because __EXCEPTIONS *must* be set to 1 in 'C' mode if -fexceptions is
enabled.

-fobjc-exceptions enables this functionality in clang and gcc, both before
*and* after my change.

The best way to determine if C++ exceptions are available is
__has_feature(cxx_exceptions).


>
>
>>
>>>
>>>
>>>>
>>>>
>>>>>
>>>>>>
>>>>>> Added:
>>>>>>     cfe/trunk/test/Driver/exceptions.mm
>>>>>> Removed:
>>>>>>     cfe/trunk/test/Driver/exceptions.m
>>>>>> Modified:
>>>>>>     cfe/trunk/lib/Driver/Tools.cpp
>>>>>>     cfe/trunk/test/Driver/rewrite-legacy-objc.m
>>>>>>
>>>>>> Modified: cfe/trunk/lib/Driver/Tools.cpp
>>>>>> URL:
>>>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=223455&r1=223454&r2=223455&view=diff
>>>>>>
>>>>>> ==============================================================================
>>>>>> --- cfe/trunk/lib/Driver/Tools.cpp (original)
>>>>>> +++ cfe/trunk/lib/Driver/Tools.cpp Fri Dec  5 02:56:55 2014
>>>>>> @@ -1894,23 +1894,6 @@ static void getTargetFeatures(const Driv
>>>>>>    }
>>>>>>  }
>>>>>>
>>>>>> -static bool
>>>>>> -shouldUseExceptionTablesForObjCExceptions(const ObjCRuntime &runtime,
>>>>>> -                                          const llvm::Triple
>>>>>> &Triple) {
>>>>>> -  // We use the zero-cost exception tables for Objective-C if the
>>>>>> non-fragile
>>>>>> -  // ABI is enabled or when compiling for x86_64 and ARM on Snow
>>>>>> Leopard and
>>>>>> -  // later.
>>>>>> -  if (runtime.isNonFragile())
>>>>>> -    return true;
>>>>>> -
>>>>>> -  if (!Triple.isMacOSX())
>>>>>> -    return false;
>>>>>> -
>>>>>> -  return (!Triple.isMacOSXVersionLT(10,5) &&
>>>>>> -          (Triple.getArch() == llvm::Triple::x86_64 ||
>>>>>> -           Triple.getArch() == llvm::Triple::arm));
>>>>>> -}
>>>>>> -
>>>>>>  // exceptionSettings() exists to share the logic between -cc1 and
>>>>>> linker
>>>>>>  // invocations.
>>>>>>  static bool exceptionSettings(const ArgList &Args, const
>>>>>> llvm::Triple &Triple) {
>>>>>> @@ -1947,15 +1930,21 @@ static void addExceptionArgs(const ArgLi
>>>>>>    // Gather the exception settings from the command line arguments.
>>>>>>    bool EH = exceptionSettings(Args, Triple);
>>>>>>
>>>>>> -  // Obj-C exceptions are enabled by default, regardless of
>>>>>> -fexceptions. This
>>>>>> -  // is not necessarily sensible, but follows GCC.
>>>>>> -  if (types::isObjC(InputType) &&
>>>>>> -      Args.hasFlag(options::OPT_fobjc_exceptions,
>>>>>> -                   options::OPT_fno_objc_exceptions,
>>>>>> -                   true)) {
>>>>>> -    CmdArgs.push_back("-fobjc-exceptions");
>>>>>> +  if (types::isObjC(InputType)) {
>>>>>> +    bool ObjCExceptionsEnabled = true;
>>>>>> +    if (Arg *A = Args.getLastArg(options::OPT_fobjc_exceptions,
>>>>>> +                                 options::OPT_fno_objc_exceptions,
>>>>>> +                                 options::OPT_fexceptions,
>>>>>> +                                 options::OPT_fno_exceptions))
>>>>>> +      ObjCExceptionsEnabled =
>>>>>> +          A->getOption().matches(options::OPT_fobjc_exceptions) ||
>>>>>> +          A->getOption().matches(options::OPT_fexceptions);
>>>>>> +
>>>>>> +    if (ObjCExceptionsEnabled) {
>>>>>> +      CmdArgs.push_back("-fobjc-exceptions");
>>>>>>
>>>>>> -    EH |= shouldUseExceptionTablesForObjCExceptions(objcRuntime,
>>>>>> Triple);
>>>>>> +      EH = true;
>>>>>> +    }
>>>>>>    }
>>>>>>
>>>>>>    if (types::isCXX(InputType)) {
>>>>>>
>>>>>> Removed: cfe/trunk/test/Driver/exceptions.m
>>>>>> URL:
>>>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/exceptions.m?rev=223454&view=auto
>>>>>>
>>>>>> ==============================================================================
>>>>>> --- cfe/trunk/test/Driver/exceptions.m (original)
>>>>>> +++ cfe/trunk/test/Driver/exceptions.m (removed)
>>>>>> @@ -1,19 +0,0 @@
>>>>>> -// RUN: %clang -target x86_64-apple-darwin9 \
>>>>>> -// RUN:   -fsyntax-only -fno-exceptions %s
>>>>>> -
>>>>>> -void f1() {
>>>>>> -  @throw @"A";
>>>>>> -}
>>>>>> -
>>>>>> -void f0() {
>>>>>> -  @try {
>>>>>> -    f1();
>>>>>> -  } @catch (id x) {
>>>>>> -    ;
>>>>>> -  }
>>>>>> -}
>>>>>> -
>>>>>> -int main() {
>>>>>> -  f0();
>>>>>> -  return 0;
>>>>>> -}
>>>>>>
>>>>>> Added: cfe/trunk/test/Driver/exceptions.mm
>>>>>> URL:
>>>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/exceptions.mm?rev=223455&view=auto
>>>>>>
>>>>>> ==============================================================================
>>>>>> --- cfe/trunk/test/Driver/exceptions.mm (added)
>>>>>> +++ cfe/trunk/test/Driver/exceptions.mm Fri Dec  5 02:56:55 2014
>>>>>> @@ -0,0 +1,6 @@
>>>>>> +// RUN: %clang -target x86_64-apple-darwin11 -fno-exceptions %s -o -
>>>>>> -### 2>&1 | \
>>>>>> +// RUN:   FileCheck %s
>>>>>> +
>>>>>> +CHECK-NOT: "-fobjc-exceptions"
>>>>>> +CHECK-NOT: "-fcxx-exceptions"
>>>>>> +CHECK-NOT: "-fexceptions"
>>>>>>
>>>>>> Modified: cfe/trunk/test/Driver/rewrite-legacy-objc.m
>>>>>> URL:
>>>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/rewrite-legacy-objc.m?rev=223455&r1=223454&r2=223455&view=diff
>>>>>>
>>>>>> ==============================================================================
>>>>>> --- cfe/trunk/test/Driver/rewrite-legacy-objc.m (original)
>>>>>> +++ cfe/trunk/test/Driver/rewrite-legacy-objc.m Fri Dec  5 02:56:55
>>>>>> 2014
>>>>>> @@ -9,5 +9,5 @@
>>>>>>  // RUN:   FileCheck -check-prefix=TEST1 %s
>>>>>>  // RUN: %clang -no-canonical-prefixes -target
>>>>>> i386-apple-macosx10.6.0 -rewrite-legacy-objc %s -o - -### 2>&1 | \
>>>>>>  // RUN:   FileCheck -check-prefix=TEST2 %s
>>>>>> -// TEST1: "-fmessage-length" "0" "-stack-protector" "1"
>>>>>> "-mstackrealign" "-fblocks" "-fobjc-runtime=macosx-fragile"
>>>>>> "-fobjc-subscripting-legacy-runtime" "-fencode-extended-block-signature"
>>>>>> "-fno-objc-infer-related-result-type" "-fobjc-exceptions"
>>>>>> "-fmax-type-align=16" "-fdiagnostics-show-option"
>>>>>> -// TEST2: "-fmessage-length" "0" "-stack-protector" "1"
>>>>>> "-mstackrealign" "-fblocks" "-fobjc-runtime=macosx-fragile"
>>>>>> "-fencode-extended-block-signature" "-fno-objc-infer-related-result-type"
>>>>>> "-fobjc-exceptions" "-fmax-type-align=16" "-fdiagnostics-show-option"
>>>>>> +// TEST1: "-fmessage-length" "0" "-stack-protector" "1"
>>>>>> "-mstackrealign" "-fblocks" "-fobjc-runtime=macosx-fragile"
>>>>>> "-fobjc-subscripting-legacy-runtime" "-fencode-extended-block-signature"
>>>>>> "-fno-objc-infer-related-result-type" "-fobjc-exceptions" "-fexceptions"
>>>>>> "-fmax-type-align=16" "-fdiagnostics-show-option"
>>>>>> +// TEST2: "-fmessage-length" "0" "-stack-protector" "1"
>>>>>> "-mstackrealign" "-fblocks" "-fobjc-runtime=macosx-fragile"
>>>>>> "-fencode-extended-block-signature" "-fno-objc-infer-related-result-type"
>>>>>> "-fobjc-exceptions" "-fexceptions" "-fmax-type-align=16"
>>>>>> "-fdiagnostics-show-option"
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> cfe-commits mailing list
>>>>>> cfe-commits at cs.uiuc.edu
>>>>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>>>>>
>>>>>
>>>>>
>>>>
>>>> On Fri, Dec 5, 2014 at 11:25 AM, Nico Weber <thakis at chromium.org>
>>>> wrote:
>>>>
>>>>> On Fri, Dec 5, 2014 at 12:56 AM, David Majnemer <
>>>>> david.majnemer at gmail.com> wrote:
>>>>>
>>>>>> Author: majnemer
>>>>>> Date: Fri Dec  5 02:56:55 2014
>>>>>> New Revision: 223455
>>>>>>
>>>>>> URL: http://llvm.org/viewvc/llvm-project?rev=223455&view=rev
>>>>>> Log:
>>>>>> Driver: Objective-C should respect -fno-exceptions
>>>>>>
>>>>>> Clang attempted to replicate a GCC bug: -fobjc-exceptions forces
>>>>>> -fexceptions to be enabled.  However, this has unintended effects and
>>>>>> other awkard side effects that Clang doesn't "correctly" ape (e.g.
>>>>>> it's
>>>>>> impossible to turn off C++ exceptions in ObjC++ mode
>>>>>
>>>>>
>>>>> What does "impossible to turn off exceptions" mean here?
>>>>>
>>>>> $ clang -c test.mm -fno-exceptions
>>>>> test.mm:2:3: error: cannot use 'try' with exceptions disabled
>>>>>   try {} catch (...) {}
>>>>>   ^
>>>>> 1 error generated.
>>>>>
>>>>> ).
>>>>>>
>>>>>> Instead, -f[no]objc-exceptions and -f[no]cxx-exceptions now have an
>>>>>> identical relationship with -f[no]exceptions.
>>>>>>
>>>>>
>>>>> Did anyone from Apple review this? I thought the intention was that
>>>>> -fno-exceptions disables c++ exceptions but keeps objc exceptions enabled,
>>>>> since a) many people don't want c++ exceptions so they use -fno-exceptions
>>>>> but b) cocoa uses exceptions so you can't really build without objc
>>>>> exceptions.
>>>>>
>>>>> (I'm guessing I'm misunderstanding the patch somehow.)
>>>>>
>>>>>
>>>>>>
>>>>>> Added:
>>>>>>     cfe/trunk/test/Driver/exceptions.mm
>>>>>> Removed:
>>>>>>     cfe/trunk/test/Driver/exceptions.m
>>>>>> Modified:
>>>>>>     cfe/trunk/lib/Driver/Tools.cpp
>>>>>>     cfe/trunk/test/Driver/rewrite-legacy-objc.m
>>>>>>
>>>>>> Modified: cfe/trunk/lib/Driver/Tools.cpp
>>>>>> URL:
>>>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=223455&r1=223454&r2=223455&view=diff
>>>>>>
>>>>>> ==============================================================================
>>>>>> --- cfe/trunk/lib/Driver/Tools.cpp (original)
>>>>>> +++ cfe/trunk/lib/Driver/Tools.cpp Fri Dec  5 02:56:55 2014
>>>>>> @@ -1894,23 +1894,6 @@ static void getTargetFeatures(const Driv
>>>>>>    }
>>>>>>  }
>>>>>>
>>>>>> -static bool
>>>>>> -shouldUseExceptionTablesForObjCExceptions(const ObjCRuntime &runtime,
>>>>>> -                                          const llvm::Triple
>>>>>> &Triple) {
>>>>>> -  // We use the zero-cost exception tables for Objective-C if the
>>>>>> non-fragile
>>>>>> -  // ABI is enabled or when compiling for x86_64 and ARM on Snow
>>>>>> Leopard and
>>>>>> -  // later.
>>>>>> -  if (runtime.isNonFragile())
>>>>>> -    return true;
>>>>>> -
>>>>>> -  if (!Triple.isMacOSX())
>>>>>> -    return false;
>>>>>> -
>>>>>> -  return (!Triple.isMacOSXVersionLT(10,5) &&
>>>>>> -          (Triple.getArch() == llvm::Triple::x86_64 ||
>>>>>> -           Triple.getArch() == llvm::Triple::arm));
>>>>>> -}
>>>>>> -
>>>>>>  // exceptionSettings() exists to share the logic between -cc1 and
>>>>>> linker
>>>>>>  // invocations.
>>>>>>  static bool exceptionSettings(const ArgList &Args, const
>>>>>> llvm::Triple &Triple) {
>>>>>> @@ -1947,15 +1930,21 @@ static void addExceptionArgs(const ArgLi
>>>>>>    // Gather the exception settings from the command line arguments.
>>>>>>    bool EH = exceptionSettings(Args, Triple);
>>>>>>
>>>>>> -  // Obj-C exceptions are enabled by default, regardless of
>>>>>> -fexceptions. This
>>>>>> -  // is not necessarily sensible, but follows GCC.
>>>>>> -  if (types::isObjC(InputType) &&
>>>>>> -      Args.hasFlag(options::OPT_fobjc_exceptions,
>>>>>> -                   options::OPT_fno_objc_exceptions,
>>>>>> -                   true)) {
>>>>>> -    CmdArgs.push_back("-fobjc-exceptions");
>>>>>> +  if (types::isObjC(InputType)) {
>>>>>> +    bool ObjCExceptionsEnabled = true;
>>>>>> +    if (Arg *A = Args.getLastArg(options::OPT_fobjc_exceptions,
>>>>>> +                                 options::OPT_fno_objc_exceptions,
>>>>>> +                                 options::OPT_fexceptions,
>>>>>> +                                 options::OPT_fno_exceptions))
>>>>>> +      ObjCExceptionsEnabled =
>>>>>> +          A->getOption().matches(options::OPT_fobjc_exceptions) ||
>>>>>> +          A->getOption().matches(options::OPT_fexceptions);
>>>>>> +
>>>>>> +    if (ObjCExceptionsEnabled) {
>>>>>> +      CmdArgs.push_back("-fobjc-exceptions");
>>>>>>
>>>>>> -    EH |= shouldUseExceptionTablesForObjCExceptions(objcRuntime,
>>>>>> Triple);
>>>>>> +      EH = true;
>>>>>> +    }
>>>>>>    }
>>>>>>
>>>>>>    if (types::isCXX(InputType)) {
>>>>>>
>>>>>> Removed: cfe/trunk/test/Driver/exceptions.m
>>>>>> URL:
>>>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/exceptions.m?rev=223454&view=auto
>>>>>>
>>>>>> ==============================================================================
>>>>>> --- cfe/trunk/test/Driver/exceptions.m (original)
>>>>>> +++ cfe/trunk/test/Driver/exceptions.m (removed)
>>>>>> @@ -1,19 +0,0 @@
>>>>>> -// RUN: %clang -target x86_64-apple-darwin9 \
>>>>>> -// RUN:   -fsyntax-only -fno-exceptions %s
>>>>>> -
>>>>>> -void f1() {
>>>>>> -  @throw @"A";
>>>>>> -}
>>>>>> -
>>>>>> -void f0() {
>>>>>> -  @try {
>>>>>> -    f1();
>>>>>> -  } @catch (id x) {
>>>>>> -    ;
>>>>>> -  }
>>>>>> -}
>>>>>> -
>>>>>> -int main() {
>>>>>> -  f0();
>>>>>> -  return 0;
>>>>>> -}
>>>>>>
>>>>>> Added: cfe/trunk/test/Driver/exceptions.mm
>>>>>> URL:
>>>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/exceptions.mm?rev=223455&view=auto
>>>>>>
>>>>>> ==============================================================================
>>>>>> --- cfe/trunk/test/Driver/exceptions.mm (added)
>>>>>> +++ cfe/trunk/test/Driver/exceptions.mm Fri Dec  5 02:56:55 2014
>>>>>> @@ -0,0 +1,6 @@
>>>>>> +// RUN: %clang -target x86_64-apple-darwin11 -fno-exceptions %s -o -
>>>>>> -### 2>&1 | \
>>>>>> +// RUN:   FileCheck %s
>>>>>> +
>>>>>> +CHECK-NOT: "-fobjc-exceptions"
>>>>>> +CHECK-NOT: "-fcxx-exceptions"
>>>>>> +CHECK-NOT: "-fexceptions"
>>>>>>
>>>>>> Modified: cfe/trunk/test/Driver/rewrite-legacy-objc.m
>>>>>> URL:
>>>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/rewrite-legacy-objc.m?rev=223455&r1=223454&r2=223455&view=diff
>>>>>>
>>>>>> ==============================================================================
>>>>>> --- cfe/trunk/test/Driver/rewrite-legacy-objc.m (original)
>>>>>> +++ cfe/trunk/test/Driver/rewrite-legacy-objc.m Fri Dec  5 02:56:55
>>>>>> 2014
>>>>>> @@ -9,5 +9,5 @@
>>>>>>  // RUN:   FileCheck -check-prefix=TEST1 %s
>>>>>>  // RUN: %clang -no-canonical-prefixes -target
>>>>>> i386-apple-macosx10.6.0 -rewrite-legacy-objc %s -o - -### 2>&1 | \
>>>>>>  // RUN:   FileCheck -check-prefix=TEST2 %s
>>>>>> -// TEST1: "-fmessage-length" "0" "-stack-protector" "1"
>>>>>> "-mstackrealign" "-fblocks" "-fobjc-runtime=macosx-fragile"
>>>>>> "-fobjc-subscripting-legacy-runtime" "-fencode-extended-block-signature"
>>>>>> "-fno-objc-infer-related-result-type" "-fobjc-exceptions"
>>>>>> "-fmax-type-align=16" "-fdiagnostics-show-option"
>>>>>> -// TEST2: "-fmessage-length" "0" "-stack-protector" "1"
>>>>>> "-mstackrealign" "-fblocks" "-fobjc-runtime=macosx-fragile"
>>>>>> "-fencode-extended-block-signature" "-fno-objc-infer-related-result-type"
>>>>>> "-fobjc-exceptions" "-fmax-type-align=16" "-fdiagnostics-show-option"
>>>>>> +// TEST1: "-fmessage-length" "0" "-stack-protector" "1"
>>>>>> "-mstackrealign" "-fblocks" "-fobjc-runtime=macosx-fragile"
>>>>>> "-fobjc-subscripting-legacy-runtime" "-fencode-extended-block-signature"
>>>>>> "-fno-objc-infer-related-result-type" "-fobjc-exceptions" "-fexceptions"
>>>>>> "-fmax-type-align=16" "-fdiagnostics-show-option"
>>>>>> +// TEST2: "-fmessage-length" "0" "-stack-protector" "1"
>>>>>> "-mstackrealign" "-fblocks" "-fobjc-runtime=macosx-fragile"
>>>>>> "-fencode-extended-block-signature" "-fno-objc-infer-related-result-type"
>>>>>> "-fobjc-exceptions" "-fexceptions" "-fmax-type-align=16"
>>>>>> "-fdiagnostics-show-option"
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> cfe-commits mailing list
>>>>>> cfe-commits at cs.uiuc.edu
>>>>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20141205/131681ee/attachment.html>


More information about the cfe-commits mailing list