aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2009-02-24 23:34:44 +0000
committerFariborz Jahanian <fjahanian@apple.com>2009-02-24 23:34:44 +0000
commit66a5c2c0da225d45334c8062f10e73b7dee50681 (patch)
treed6014c45ca0bd6072398a054d08b9df4daf8a5b9
parent6431a269563de05e011fd1cfbd0d95b96eb5fea8 (diff)
patch for two things.
make sure objc2's nonfragile abi is enacted for Leopard too. add -fobjc-gc-only flag to the image_info symbol. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65413 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Basic/Targets.cpp5
-rw-r--r--lib/CodeGen/CGObjCMac.cpp8
2 files changed, 8 insertions, 5 deletions
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
index b2d4db1844..455cdfa7ca 100644
--- a/lib/Basic/Targets.cpp
+++ b/lib/Basic/Targets.cpp
@@ -152,11 +152,12 @@ static void GetDarwinLanguageOptions(LangOptions &Opts,
// Blocks default to on for 10.6 (darwin10) and beyond.
// As does nonfragile-abi for 64bit mode
- if (Maj > 9) {
+ if (Maj > 9)
Opts.Blocks = 1;
+
+ if (Maj >= 9)
if (Opts.ObjC1 && !strncmp(Triple, "x86_64", 6))
Opts.ObjCNonFragileABI = 1;
- }
}
diff --git a/lib/CodeGen/CGObjCMac.cpp b/lib/CodeGen/CGObjCMac.cpp
index 3dec1dd796..ca12f83a9b 100644
--- a/lib/CodeGen/CGObjCMac.cpp
+++ b/lib/CodeGen/CGObjCMac.cpp
@@ -3429,9 +3429,11 @@ void CGObjCNonFragileABIMac::FinishNonFragileABIModule() {
std::vector<llvm::Constant*> Values(2);
Values[0] = llvm::ConstantInt::get(ObjCTypes.IntTy, 0);
unsigned int flags = 0;
- // FIXME -fobjc-gc-only flags is 6.
- if (CGM.getContext().getLangOptions().getGCMode() != LangOptions::NonGC)
- flags |= 2;
+ // FIXME: Fix and continue?
+ if (CGM.getLangOptions().getGCMode() != LangOptions::NonGC)
+ flags |= eImageInfo_GarbageCollected;
+ if (CGM.getLangOptions().getGCMode() == LangOptions::GCOnly)
+ flags |= eImageInfo_GCOnly;
Values[1] = llvm::ConstantInt::get(ObjCTypes.IntTy, flags);
llvm::Constant* Init = llvm::ConstantArray::get(
llvm::ArrayType::get(ObjCTypes.IntTy, 2),