<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On Jan 21, 2014, at 4:29 PM, Bob Wilson <<a href="mailto:bob.wilson@apple.com">bob.wilson@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><br>On Jan 21, 2014, at 4:13 PM, jahanian <<a href="mailto:fjahanian@apple.com">fjahanian@apple.com</a>> wrote:<br><br><blockquote type="cite"><br>On Jan 21, 2014, at 4:08 PM, Bob Wilson <<a href="mailto:bob.wilson@apple.com">bob.wilson@apple.com</a>> wrote:<br><br><blockquote type="cite"><br>On Jan 20, 2014, at 11:32 AM, Fariborz Jahanian <<a href="mailto:fjahanian@apple.com">fjahanian@apple.com</a>> wrote:<br><br><blockquote type="cite">Author: fjahanian<br>Date: Mon Jan 20 13:32:33 2014<br>New Revision: 199682<br><br>URL: <a href="http://llvm.org/viewvc/llvm-project?rev=199682&view=rev">http://llvm.org/viewvc/llvm-project?rev=199682&view=rev</a><br>Log:<br>ObjectiveC driver. reinstate -fno-objc-legacy-dispatch behavior <br>when the deployment target is 10.5. // <a href="rdar://15852259">rdar://15852259</a><br><br>Modified:<br> cfe/trunk/include/clang/Basic/ObjCRuntime.h<br> cfe/trunk/lib/Driver/Tools.cpp<br> cfe/trunk/test/Driver/darwin-objc-defaults.m<br><br>Modified: cfe/trunk/include/clang/Basic/ObjCRuntime.h<br>URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/ObjCRuntime.h?rev=199682&r1=199681&r2=199682&view=diff">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/ObjCRuntime.h?rev=199682&r1=199681&r2=199682&view=diff</a><br>==============================================================================<br>--- cfe/trunk/include/clang/Basic/ObjCRuntime.h (original)<br>+++ cfe/trunk/include/clang/Basic/ObjCRuntime.h Mon Jan 20 13:32:33 2014<br>@@ -99,6 +99,15 @@ public:<br>        Arch == llvm::Triple::x86_64)<br>      return false;<br>  }<br>+    else if (isNeXTFamily() && getVersion().getMajor() == 10) {<br>+      unsigned minor = 0;<br>+      if (getVersion().getMinor().hasValue())<br>+        minor = getVersion().getMinor().getValue();<br>+      if (minor == 5 &&<br>+          (Arch == llvm::Triple::x86 || Arch == llvm::Triple::x86_64))<br>+        return false;<br>+    }<br>+    // Except for deployment target of 10.5,<br>  // Mac runtimes use legacy dispatch everywhere now.<br>  return true;<br>}<br></blockquote><br>isNextFamily() returns true for iOS. We haven’t gotten to iOS 10 yet, but in the interest of future-proofing, I think this needs to check specifically for OS X.<br></blockquote>OK.<br><br><blockquote type="cite"><br>The version check can just be "getVersion() == VersionTuple(10, 5)", can’t it?<br></blockquote><br>No. This fails for, say, 10.5.2 (but not for pure 10.5).<br></blockquote><br>OK, well, how about checking for 10.5 <= version < 10.6?  I just find the getVersion().getMinor().hasValue() code really hard to read.<br></blockquote>In r<span style="font-family: Menlo; font-size: 11px;">199780.</span></div><div><span style="font-family: Menlo; font-size: 11px;"><br></span></div><div><font face="Menlo"><span style="font-size: 11px;">- Fariborz</span></font></div><div><font face="Menlo"><span style="font-size: 11px;"><br></span></font></div><br></body></html>