summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@apple.com>2012-05-09 18:09:58 +0000
committerChad Rosier <mcrosier@apple.com>2012-05-09 18:09:58 +0000
commitf761fe9d238894b8cefd79c380308b94ee021903 (patch)
treee38872be91d7c1e24fd9d07be9c25541d36b773a /clang
parent951949723db7c8bb400a50a95ae7357d3c7652f2 (diff)
downloadbcm5719-llvm-f761fe9d238894b8cefd79c380308b94ee021903.tar.gz
bcm5719-llvm-f761fe9d238894b8cefd79c380308b94ee021903.zip
[driver] Use the iOS target triple to infer the deployment target.
rdar://11409204 llvm-svn: 156489
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Driver/ToolChains.cpp10
-rw-r--r--clang/test/Driver/target-triple-deployment.c33
2 files changed, 41 insertions, 2 deletions
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp
index cc1adb1ea83..86fef4fe693 100644
--- a/clang/lib/Driver/ToolChains.cpp
+++ b/clang/lib/Driver/ToolChains.cpp
@@ -524,8 +524,14 @@ void Darwin::AddDeploymentTarget(DerivedArgList &Args) const {
// If no OSX or iOS target has been specified and we're compiling for armv7,
// go ahead as assume we're targeting iOS.
if (OSXTarget.empty() && iOSTarget.empty())
- if (getDarwinArchName(Args) == "armv7")
- iOSTarget = "0.0";
+ if (getDarwinArchName(Args) == "armv7") {
+ std::string iOSVersionMin;
+ unsigned Major, Minor, Micro;
+ getTriple().getiOSVersion(Major, Minor, Micro);
+ llvm::raw_string_ostream(iOSVersionMin)
+ << Major << '.' << Minor << '.' << Micro;
+ iOSTarget = iOSVersionMin;
+ }
// Handle conflicting deployment targets
//
diff --git a/clang/test/Driver/target-triple-deployment.c b/clang/test/Driver/target-triple-deployment.c
new file mode 100644
index 00000000000..56e512c9605
--- /dev/null
+++ b/clang/test/Driver/target-triple-deployment.c
@@ -0,0 +1,33 @@
+// RUN: touch %t.o
+// RUN: %clang -target x86_64-apple-macosx -### %t.o 2> %t.log
+// RUN: %clang -target x86_64-apple-darwin9 -### %t.o 2>> %t.log
+// RUN: %clang -target x86_64-apple-macosx10.7 -### %t.o 2>> %t.log
+//
+// RUN: %clang -target armv7-apple-ios -### %t.o 2>> %t.log
+// RUN: %clang -target armv7-apple-ios0.0 -### %t.o 2>> %t.log
+// RUN: %clang -target armv7-apple-ios1.2.3 -### %t.o 2>> %t.log
+// RUN: %clang -target armv7-apple-ios5.0 -### %t.o 2>> %t.log
+//
+// RUN: FileCheck %s < %t.log
+
+// CHECK: {{ld(.exe)?"}}
+// CHECK: -macosx_version_min
+// CHECK: 10.4.0
+// CHECK: {{ld(.exe)?"}}
+// CHECK: -macosx_version_min
+// CHECK: 10.5.0
+// CHECK: {{ld(.exe)?"}}
+// CHECK: -macosx_version_min
+// CHECK: 10.7.0
+// CHECK: {{ld(.exe)?"}}
+// CHECK: -iphoneos_version_min
+// CHECK: 0.0.0
+// CHECK: {{ld(.exe)?"}}
+// CHECK: -iphoneos_version_min
+// CHECK: 0.0.0
+// CHECK: {{ld(.exe)?"}}
+// CHECK: -iphoneos_version_min
+// CHECK: 1.2.3
+// CHECK: {{ld(.exe)?"}}
+// CHECK: -iphoneos_version_min
+// CHECK: 5.0.0
OpenPOWER on IntegriCloud