diff --git a/clang/include/clang/Basic/ObjCRuntime.h b/clang/include/clang/Basic/ObjCRuntime.h index f65cc9345c23..fa375f4e183e 100644 --- a/clang/include/clang/Basic/ObjCRuntime.h +++ b/clang/include/clang/Basic/ObjCRuntime.h @@ -100,10 +100,10 @@ public: return false; } else if ((getKind() == MacOSX) && isNonFragile() && - (getVersion() >= VersionTuple(10, 5)) && + (getVersion() >= VersionTuple(10, 0)) && (getVersion() < VersionTuple(10, 6))) return Arch != llvm::Triple::x86_64; - // Except for deployment target of 10.5, + // Except for deployment target of 10.5 or less, // Mac runtimes use legacy dispatch everywhere now. return true; } diff --git a/clang/test/Driver/darwin-objc-defaults.m b/clang/test/Driver/darwin-objc-defaults.m index 6f5ed87d286a..1b3f7a844445 100644 --- a/clang/test/Driver/darwin-objc-defaults.m +++ b/clang/test/Driver/darwin-objc-defaults.m @@ -31,10 +31,18 @@ // x86_64 +// RUN: %clang -target x86_64-apple-darwin10 -S -### %s \ +// RUN: -arch x86_64 -mmacosx-version-min=10.4 2> %t +// RUN: FileCheck --check-prefix CHECK-CHECK-X86_64_OSX10_4 < %t %s + +// CHECK-CHECK-X86_64_OSX10_4: "-cc1" +// CHECK-CHECK-X86_64_OSX10_4: -fobjc-dispatch-method=non-legacy + // RUN: %clang -target x86_64-apple-darwin10 -S -### %s \ // RUN: -arch x86_64 -mmacosx-version-min=10.5 2> %t // RUN: FileCheck --check-prefix CHECK-CHECK-X86_64_OSX10_5 < %t %s + // CHECK-CHECK-X86_64_OSX10_5: "-cc1" // CHECK-CHECK-X86_64_OSX10_5: -fobjc-runtime=macosx-10.5 // CHECK-CHECK-X86_64_OSX10_5: -fobjc-dispatch-method=non-legacy