summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2014-03-18 22:09:05 +0000
committerJim Grosbach <grosbach@apple.com>2014-03-18 22:09:05 +0000
commitd55fc3f151f3167da4aa467cf2ff4038f82e3664 (patch)
treef178c30a8dc074fd457634ac48513b3bf1331fc8 /test
parent802d81591a1695604e0c78fbd76261d0900b5ee3 (diff)
downloadllvm-d55fc3f151f3167da4aa467cf2ff4038f82e3664.tar.gz
llvm-d55fc3f151f3167da4aa467cf2ff4038f82e3664.tar.bz2
llvm-d55fc3f151f3167da4aa467cf2ff4038f82e3664.tar.xz
Darwin: Add assembler directives to create version-min load commands.
Allow object files to be tagged with a version-min load command for iOS or MacOSX. Teach macho-dump to understand the version-min load commands for testcases. rdar://11337778 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204190 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/MC/AsmParser/version-min-diagnostics.s49
-rw-r--r--test/MC/AsmParser/version-min.s21
-rw-r--r--test/MC/MachO/ios-version-min-load-command.s10
-rw-r--r--test/MC/MachO/osx-version-min-load-command.s10
4 files changed, 90 insertions, 0 deletions
diff --git a/test/MC/AsmParser/version-min-diagnostics.s b/test/MC/AsmParser/version-min-diagnostics.s
new file mode 100644
index 0000000000..15d44d3166
--- /dev/null
+++ b/test/MC/AsmParser/version-min-diagnostics.s
@@ -0,0 +1,49 @@
+// RUN: not llvm-mc -triple i386-apple-darwin %s 2> %t
+// RUN: FileCheck %s < %t
+// RUN: not llvm-mc -triple x86_64-apple-darwin %s 2> %t
+// RUN: FileCheck %s < %t
+// RUN: not llvm-mc -triple armv7-apple-ios %s 2> %t
+// RUN: FileCheck %s < %t
+
+.ios_version_min 5,2,257
+.ios_version_min 5,256,1
+.ios_version_min 5,-1,1
+.ios_version_min 0,1,1
+.ios_version_min 70000,1
+.macosx_version_min 99,2,257
+.macosx_version_min 50,256,1
+.macosx_version_min 10,-1,1
+.macosx_version_min 0,1,1
+.macosx_version_min 70000,1
+
+
+// CHECK: error: invalid OS update number
+// CHECK: .ios_version_min 5,2,257
+// CHECK: ^
+// CHECK: error: invalid OS minor version number
+// CHECK: .ios_version_min 5,256,1
+// CHECK: ^
+// CHECK: error: invalid OS minor version number
+// CHECK: .ios_version_min 5,-1,1
+// CHECK: ^
+// CHECK: error: invalid OS major version number
+// CHECK: .ios_version_min 0,1,1
+// CHECK: ^
+// CHECK: error: invalid OS major version number
+// CHECK: .ios_version_min 70000,1
+// CHECK: ^
+// CHECK: error: invalid OS update number
+// CHECK: .macosx_version_min 99,2,257
+// CHECK: ^
+// CHECK: error: invalid OS minor version number
+// CHECK: .macosx_version_min 50,256,1
+// CHECK: ^
+// CHECK: error: invalid OS minor version number
+// CHECK: .macosx_version_min 10,-1,1
+// CHECK: ^
+// CHECK: error: invalid OS major version number
+// CHECK: .macosx_version_min 0,1,1
+// CHECK: ^
+// CHECK: error: invalid OS major version number
+// CHECK: .macosx_version_min 70000,1
+// CHECK: ^
diff --git a/test/MC/AsmParser/version-min.s b/test/MC/AsmParser/version-min.s
new file mode 100644
index 0000000000..0a40338ed5
--- /dev/null
+++ b/test/MC/AsmParser/version-min.s
@@ -0,0 +1,21 @@
+// RUN: llvm-mc -triple i386-apple-darwin %s | FileCheck %s
+// RUN: llvm-mc -triple x86_64-apple-darwin %s | FileCheck %s
+// RUN: llvm-mc -triple armv7s-apple-ios %s | FileCheck %s
+
+// Test the parsing of well-formed version-min directives.
+
+.ios_version_min 5,2,0
+.ios_version_min 3,2,1
+.ios_version_min 5,0
+
+// CHECK: .ios_version_min 5, 2
+// CHECK: .ios_version_min 3, 2, 1
+// CHECK: .ios_version_min 5, 0
+
+.macosx_version_min 10,2,0
+.macosx_version_min 10,8,1
+.macosx_version_min 2,0
+
+// CHECK: .macosx_version_min 10, 2
+// CHECK: .macosx_version_min 10, 8, 1
+// CHECK: .macosx_version_min 2, 0
diff --git a/test/MC/MachO/ios-version-min-load-command.s b/test/MC/MachO/ios-version-min-load-command.s
new file mode 100644
index 0000000000..e065d147be
--- /dev/null
+++ b/test/MC/MachO/ios-version-min-load-command.s
@@ -0,0 +1,10 @@
+// RUN: llvm-mc -triple armv7-apple-ios %s -filetype=obj -o - | macho-dump | FileCheck %s
+
+// Test the formation of the version-min load command in the MachO.
+// use a nonsense but well formed version.
+.ios_version_min 99,8,7
+// CHECK: (('command', 37)
+// CHECK: ('size', 16)
+// CHECK: ('version, 6490119)
+// CHECK: ('reserved, 0)
+// CHECK: ),
diff --git a/test/MC/MachO/osx-version-min-load-command.s b/test/MC/MachO/osx-version-min-load-command.s
new file mode 100644
index 0000000000..2a73609dc0
--- /dev/null
+++ b/test/MC/MachO/osx-version-min-load-command.s
@@ -0,0 +1,10 @@
+// RUN: llvm-mc -triple x86_64-apple-darwin %s -filetype=obj -o - | macho-dump | FileCheck %s
+
+// Test the formation of the version-min load command in the MachO.
+// use a nonsense but well formed version.
+.macosx_version_min 25,3,1
+// CHECK: (('command', 36)
+// CHECK: ('size', 16)
+// CHECK: ('version, 1639169)
+// CHECK: ('reserved, 0)
+// CHECK: ),