summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-02-01 21:07:43 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-02-01 21:07:43 +0000
commit98188414efda91290120654d49900fab94da6dc0 (patch)
tree7f87343f67e24457e12ca0a3ca8a0049adb7dcb7 /clang/lib
parentca5e3eb7f7b1bb6cb93c6a69d106fa04739e038a (diff)
downloadbcm5719-llvm-98188414efda91290120654d49900fab94da6dc0.tar.gz
bcm5719-llvm-98188414efda91290120654d49900fab94da6dc0.zip
Driver/Darwin: Darwin uses -fobjc-legacy-dispatch on ARM.
llvm-svn: 95006
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Driver/ToolChains.h5
-rw-r--r--clang/lib/Driver/Tools.cpp2
2 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/Driver/ToolChains.h b/clang/lib/Driver/ToolChains.h
index e683c2d4842..fbb1136199d 100644
--- a/clang/lib/Driver/ToolChains.h
+++ b/clang/lib/Driver/ToolChains.h
@@ -161,6 +161,11 @@ public:
// Non-fragile ABI default to on for iPhoneOS and x86-64.
return isTargetIPhoneOS() || getTriple().getArch() == llvm::Triple::x86_64;
}
+ virtual bool IsObjCLegacyDispatchDefault() const {
+ // This is only used with the non-fragile ABI.
+ return (getTriple().getArch() == llvm::Triple::arm ||
+ getTriple().getArch() == llvm::Triple::thumb);
+ }
virtual bool IsUnwindTablesDefault() const;
virtual unsigned GetDefaultStackProtectorLevel() const {
// Stack protectors default to on for 10.6 and beyond.
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 88dffa98f96..b0278b8aece 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -1031,7 +1031,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
// defaults to off.
if (Args.hasFlag(options::OPT_fobjc_legacy_dispatch,
options::OPT_fno_objc_legacy_dispatch,
- false))
+ getToolChain().IsObjCLegacyDispatchDefault()))
CmdArgs.push_back("-fobjc-legacy-dispatch");
}
}
OpenPOWER on IntegriCloud