diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2010-04-19 17:53:30 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2010-04-19 17:53:30 +0000 |
commit | dfb39835251df32455fc22eb09c36711bb5fd5cf (patch) | |
tree | 1d683fd231a2e63d1ba24267d59499ffc3bec3aa | |
parent | b0071d041f15056f7d7d21fe8c7608d15b70bbfb (diff) | |
download | bcm5719-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.cpp | 5 | ||||
-rw-r--r-- | clang/test/CodeGenObjC/legacy-api-leopard-test.m | 19 |
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 |