On Fri, Dec 5, 2014 at 5:12 PM, Nico Weber <[email protected]> wrote:
> On Fri, Dec 5, 2014 at 1:00 PM, David Majnemer <[email protected]> > wrote: > >> >> >> On Fri, Dec 5, 2014 at 12:37 PM, Nico Weber <[email protected]> wrote: >> >>> On Fri, Dec 5, 2014 at 11:55 AM, David Majnemer < >>> [email protected]> wrote: >>> >>>> >>>> >>>> On Fri, Dec 5, 2014 at 11:47 AM, Nico Weber <[email protected]> >>>> wrote: >>>> >>>>> On Fri, Dec 5, 2014 at 11:41 AM, David Majnemer < >>>>> [email protected]> wrote: >>>>> >>>>>> >>>>>> >>>>>> On Fri, Dec 5, 2014 at 11:25 AM, Nico Weber <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> On Fri, Dec 5, 2014 at 12:56 AM, David Majnemer < >>>>>>> [email protected]> 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. >> > > Code in the wild uses is to check if it's ok to use try / catch. > We were able to agree that code which uses __EXCEPTIONS to determine if try / catch can be used is broken but the old interaction between -fobjc-exceptions and -fexceptions should be preserved. > > >> -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 >>>>>>>> [email protected] >>>>>>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> On Fri, Dec 5, 2014 at 11:25 AM, Nico Weber <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> On Fri, Dec 5, 2014 at 12:56 AM, David Majnemer < >>>>>>> [email protected]> 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 >>>>>>>> [email protected] >>>>>>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
