summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2010-04-19 17:53:30 +0000
committerFariborz Jahanian <fjahanian@apple.com>2010-04-19 17:53:30 +0000
commitdfb39835251df32455fc22eb09c36711bb5fd5cf (patch)
tree1d683fd231a2e63d1ba24267d59499ffc3bec3aa
parentb0071d041f15056f7d7d21fe8c7608d15b70bbfb (diff)
downloadbcm5719-llvm-dfb39835251df32455fc22eb09c36711bb5fd5cf.tar.gz
bcm5719-llvm-dfb39835251df32455fc22eb09c36711bb5fd5cf.zip
Force clang to produce legacy api for messaging
in for pre-snowleoprd (NeXt runtime). Fixes radar 7866951 llvm-svn: 101791
-rw-r--r--clang/lib/CodeGen/CGObjCMac.cpp5
-rw-r--r--clang/test/CodeGenObjC/legacy-api-leopard-test.m19
2 files changed, 23 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGObjCMac.cpp b/clang/lib/CodeGen/CGObjCMac.cpp
index f038509edc5..d70537e49c9 100644
--- a/clang/lib/CodeGen/CGObjCMac.cpp
+++ b/clang/lib/CodeGen/CGObjCMac.cpp
@@ -4264,7 +4264,10 @@ void CGObjCNonFragileABIMac::FinishNonFragileABIModule() {
bool CGObjCNonFragileABIMac::LegacyDispatchedSelector(Selector Sel) {
if (CGM.getCodeGenOpts().ObjCLegacyDispatch)
return true;
-
+ /* Leopard */
+ if (CGM.getContext().Target.getTriple().getDarwinMajorNumber() <= 9)
+ return false;
+
if (NonLegacyDispatchMethods.empty()) {
NonLegacyDispatchMethods.insert(GetNullarySelector("alloc"));
NonLegacyDispatchMethods.insert(GetNullarySelector("class"));
diff --git a/clang/test/CodeGenObjC/legacy-api-leopard-test.m b/clang/test/CodeGenObjC/legacy-api-leopard-test.m
new file mode 100644
index 00000000000..1a229c6bb78
--- /dev/null
+++ b/clang/test/CodeGenObjC/legacy-api-leopard-test.m
@@ -0,0 +1,19 @@
+// RUN: %clang_cc1 -triple x86_64-apple-darwin9 -fobjc-nonfragile-abi -emit-llvm -o - %s | FileCheck -check-prefix LP64 %s
+// rdar: // 7866951
+
+@interface NSObject
+- (id)init;
+@end
+
+@interface ClangTest : NSObject @end
+
+@implementation ClangTest
+- (id)init
+{
+ [super init];
+ return self;
+}
+@end
+
+// CHECK-LP64: objc_msgSendSuper2_fixup_init
+// CHECK-LP64: objc_msgSendSuper2_fixup
OpenPOWER on IntegriCloud