aboutsummaryrefslogtreecommitdiff
path: root/lib/Basic
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Basic')
-rw-r--r--lib/Basic/Targets.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
index 80fbaaeb72..c72982bf22 100644
--- a/lib/Basic/Targets.cpp
+++ b/lib/Basic/Targets.cpp
@@ -149,8 +149,12 @@ static void GetDarwinLanguageOptions(LangOptions &Opts,
return;
// Blocks default to on for 10.6 (darwin10) and beyond.
- if (Maj > 9)
+ // As does nonfragile-abi for 64bit mode
+ if (Maj > 9) {
Opts.Blocks = 1;
+ if (Opts.ObjC1 && !strncmp(Triple, "x86_64", 6))
+ Opts.ObjCNonFragileABI = 1;
+ }
}