summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMatthias Braun <matze@braunis.de>2017-12-14 00:12:46 +0000
committerMatthias Braun <matze@braunis.de>2017-12-14 00:12:46 +0000
commit177a4fc2d2ce419e07e5607ccf598c602b67ae3d (patch)
treeb5786e66e855e1ee040be44a50c8decc16549e76 /test
parent5d4223acf15ec03013c189fa23cdd9c89489c1f9 (diff)
MC: Add support for mach-o build_version
LC_BUILD_VERSION is a new load command superseding the previously used LC_XXX_MIN_VERSION commands. This adds an assembler directive along with encoding/streaming support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320661 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/MC/MachO/ARM/build-version-diagnostics.s56
-rw-r--r--test/MC/MachO/ARM/build-version-encode.s10
-rw-r--r--test/MC/MachO/ARM/build-version.s19
-rw-r--r--test/MC/MachO/ARM/version-min-diagnostics.s8
-rw-r--r--test/MC/MachO/ARM/version-min-diagnostics2.s38
5 files changed, 108 insertions, 23 deletions
diff --git a/test/MC/MachO/ARM/build-version-diagnostics.s b/test/MC/MachO/ARM/build-version-diagnostics.s
new file mode 100644
index 00000000000..31aa87add3a
--- /dev/null
+++ b/test/MC/MachO/ARM/build-version-diagnostics.s
@@ -0,0 +1,56 @@
+// RUN: not llvm-mc -triple x86_64-apple-tvos %s 2>&1 | FileCheck %s
+
+.build_version tvos,65535,0,255
+// CHECK-NOT: build-version-diagnostics.s:[[@LINE-1]]
+
+.build_version macos,1,2,3
+// CHECK: build-version-diagnostics.s:[[@LINE-1]]:1: warning: .build_version macos used while targeting tvos
+// CHECK: build-version-diagnostics.s:[[@LINE-2]]:1: warning: overriding previous version directive
+
+.build_version 1,2,3
+// CHECK: build-version-diagnostics.s:[[@LINE-1]]:16: error: platform name expected
+
+.build_version macos 1,2
+// CHECK: build-version-diagnostics.s:[[@LINE-1]]:22: error: version number required, comma expected
+
+.build_version noos,1,2
+// CHECK: build-version-diagnostics.s:[[@LINE-1]]:16: error: unknown platform name
+
+.build_version macos,a
+// CHECK: build-version-diagnostics.s:[[@LINE-1]]:22: error: invalid OS major version number, integer expected
+
+.build_version macos,0,1
+// CHECK: build-version-diagnostics.s:[[@LINE-1]]:22: error: invalid OS major version number
+
+.build_version macos,-1,1
+// CHECK: build-version-diagnostics.s:[[@LINE-1]]:22: error: invalid OS major version number
+
+.build_version macos,65536,1
+// CHECK: build-version-diagnostics.s:[[@LINE-1]]:22: error: invalid OS major version number
+
+.build_version ios,10 0
+// CHECK: build-version-diagnostics.s:[[@LINE-1]]:23: error: OS minor version number required, comma expected
+
+.build_version ios,10,
+// CHECK: build-version-diagnostics.s:[[@LINE-1]]:23: error: invalid OS minor version number, integer expected
+
+.build_version ios,10,-1
+// CHECK: build-version-diagnostics.s:[[@LINE-1]]:23: error: invalid OS minor version number
+
+.build_version ios,10,256
+// CHECK: build-version-diagnostics.s:[[@LINE-1]]:23: error: invalid OS minor version number
+
+.build_version watchos,10,0 a
+// CHECK: build-version-diagnostics.s:[[@LINE-1]]:29: error: invalid OS update specifier, comma expected
+
+.build_version watchos,10,0 ,
+// CHECK: build-version-diagnostics.s:[[@LINE-1]]:30: error: invalid OS update version number, integer expected
+
+.build_version ios,10,0,-1
+// CHECK: build-version-diagnostics.s:[[@LINE-1]]:25: error: invalid OS update version number
+
+.build_version ios,10,0,256
+// CHECK: build-version-diagnostics.s:[[@LINE-1]]:25: error: invalid OS update version number
+
+.build_version ios,10,0,0,
+// CHECK: build-version-diagnostics.s:[[@LINE-1]]:26: error: unexpected token in '.build_version' directive
diff --git a/test/MC/MachO/ARM/build-version-encode.s b/test/MC/MachO/ARM/build-version-encode.s
new file mode 100644
index 00000000000..19e75fafae9
--- /dev/null
+++ b/test/MC/MachO/ARM/build-version-encode.s
@@ -0,0 +1,10 @@
+// RUN: llvm-mc %s -triple x86_64-apple-tvos -filetype=obj | llvm-readobj -macho-version-min | FileCheck %s
+
+.build_version tvos,1,2,3
+// CHECK: MinVersion {
+// CHECK: Cmd: LC_BUILD_VERSION
+// CHECK: Size: 24
+// CHECK: Platform: tvos
+// CHECK: Version: 1.2.3
+// CHECK: SDK: n/a
+// CHECK: }
diff --git a/test/MC/MachO/ARM/build-version.s b/test/MC/MachO/ARM/build-version.s
new file mode 100644
index 00000000000..e3e3f14df08
--- /dev/null
+++ b/test/MC/MachO/ARM/build-version.s
@@ -0,0 +1,19 @@
+// RUN: llvm-mc -triple x86_64-apple-macos %s | FileCheck %s
+
+.build_version macos,1,2
+// CHECK: .build_version macos, 1, 2
+
+.build_version macos,1,2,0
+// CHECK: .build_version macos, 1, 2
+
+.build_version macos,3,4,5
+// CHECK: .build_version macos, 3, 4, 5
+
+.build_version ios,6,7
+// CHECK: .build_version ios, 6, 7
+
+.build_version tvos,8,9
+// CHECK: .build_version tvos, 8, 9
+
+.build_version watchos,10,11
+// CHECK: .build_version watchos, 10, 11
diff --git a/test/MC/MachO/ARM/version-min-diagnostics.s b/test/MC/MachO/ARM/version-min-diagnostics.s
index 76c3268dafb..786fe6f2ac4 100644
--- a/test/MC/MachO/ARM/version-min-diagnostics.s
+++ b/test/MC/MachO/ARM/version-min-diagnostics.s
@@ -27,7 +27,7 @@
.watchos_version_min 70000,1
-// CHECK: error: invalid OS update number
+// CHECK: error: invalid OS update version number
// CHECK: .ios_version_min 5,2,257
// CHECK: ^
// CHECK: error: invalid OS minor version number
@@ -42,7 +42,7 @@
// CHECK: error: invalid OS major version number
// CHECK: .ios_version_min 70000,1
// CHECK: ^
-// CHECK: error: invalid OS update number
+// CHECK: error: invalid OS update version number
// CHECK: .macosx_version_min 99,2,257
// CHECK: ^
// CHECK: error: invalid OS minor version number
@@ -57,7 +57,7 @@
// CHECK: error: invalid OS major version number
// CHECK: .macosx_version_min 70000,1
// CHECK: ^
-// CHECK: error: invalid OS update number
+// CHECK: error: invalid OS update version number
// CHECK: .tvos_version_min 99,2,257
// CHECK: ^
// CHECK: error: invalid OS minor version number
@@ -72,7 +72,7 @@
// CHECK: error: invalid OS major version number
// CHECK: .tvos_version_min 70000,1
// CHECK: ^
-// CHECK: error: invalid OS update number
+// CHECK: error: invalid OS update version number
// CHECK: .watchos_version_min 99,2,257
// CHECK: ^
// CHECK: error: invalid OS minor version number
diff --git a/test/MC/MachO/ARM/version-min-diagnostics2.s b/test/MC/MachO/ARM/version-min-diagnostics2.s
index 0689cd41f70..fb984d85b29 100644
--- a/test/MC/MachO/ARM/version-min-diagnostics2.s
+++ b/test/MC/MachO/ARM/version-min-diagnostics2.s
@@ -4,31 +4,31 @@
// RUN: llvm-mc -triple i386-apple-macosx %s 2>&1 | FileCheck %s --check-prefix=CHECK --check-prefix=MACOSX
.ios_version_min 1,2,3
-// WATCHOS: version-min-diagnostics2.s:[[@LINE-1]]:1: warning: .ios_version_min should only be used for ios targets
-// TVOS: version-min-diagnostics2.s:[[@LINE-2]]:1: warning: .ios_version_min should only be used for ios targets
-// MACOSX: version-min-diagnostics2.s:[[@LINE-3]]:1: warning: .ios_version_min should only be used for ios targets
-// IOS-NOT: warning: .ios_version_min should only be used for ios targets
+// WATCHOS: version-min-diagnostics2.s:[[@LINE-1]]:1: warning: .ios_version_min used while targeting watchos
+// TVOS: version-min-diagnostics2.s:[[@LINE-2]]:1: warning: .ios_version_min used while targeting tvos
+// MACOSX: version-min-diagnostics2.s:[[@LINE-3]]:1: warning: .ios_version_min used while targeting macos
+// IOS-NOT: warning: .ios_version_min used while targeting
.macosx_version_min 4,5,6
-// WATCHOS: version-min-diagnostics2.s:[[@LINE-1]]:1: warning: .macosx_version_min should only be used for macosx targets
-// TVOS: version-min-diagnostics2.s:[[@LINE-2]]:1: warning: .macosx_version_min should only be used for macosx targets
-// IOS: version-min-diagnostics2.s:[[@LINE-3]]:1: warning: .macosx_version_min should only be used for macosx targets
-// MACOSX-NOT: warning: .macosx_version_min should only be used for macosx targets
-// CHECK: version-min-diagnostics2.s:[[@LINE-5]]:1: warning: overriding previous version_min directive
+// WATCHOS: version-min-diagnostics2.s:[[@LINE-1]]:1: warning: .macosx_version_min used while targeting watchos
+// TVOS: version-min-diagnostics2.s:[[@LINE-2]]:1: warning: .macosx_version_min used while targeting tvos
+// IOS: version-min-diagnostics2.s:[[@LINE-3]]:1: warning: .macosx_version_min used while targeting ios
+// MACOSX-NOT: warning: .macosx_version_min used while targeting
+// CHECK: version-min-diagnostics2.s:[[@LINE-5]]:1: warning: overriding previous version directive
// CHECK: version-min-diagnostics2.s:[[@LINE-12]]:1: note: previous definition is here
.tvos_version_min 7,8,9
-// WATCHOS: version-min-diagnostics2.s:[[@LINE-1]]:1: warning: .tvos_version_min should only be used for tvos targets
-// MACOSX: version-min-diagnostics2.s:[[@LINE-2]]:1: warning: .tvos_version_min should only be used for tvos targets
-// IOS: version-min-diagnostics2.s:[[@LINE-3]]:1: warning: .tvos_version_min should only be used for tvos targets
-// TVOS-NOT: warning: .tvos_version_min should only be used for tvos targets
-// CHECK: version-min-diagnostics2.s:[[@LINE-5]]:1: warning: overriding previous version_min directive
+// WATCHOS: version-min-diagnostics2.s:[[@LINE-1]]:1: warning: .tvos_version_min used while targeting watchos
+// MACOSX: version-min-diagnostics2.s:[[@LINE-2]]:1: warning: .tvos_version_min used while targeting macos
+// IOS: version-min-diagnostics2.s:[[@LINE-3]]:1: warning: .tvos_version_min used while targeting ios
+// TVOS-NOT: warning: .tvos_version_min used while targeting
+// CHECK: version-min-diagnostics2.s:[[@LINE-5]]:1: warning: overriding previous version directive
// CHECK: version-min-diagnostics2.s:[[@LINE-14]]:1: note: previous definition is here
.watchos_version_min 10,11,12
-// MACOSX: version-min-diagnostics2.s:[[@LINE-1]]:1: warning: .watchos_version_min should only be used for watchos targets
-// IOS: version-min-diagnostics2.s:[[@LINE-2]]:1: warning: .watchos_version_min should only be used for watchos targets
-// TVOS-NOT: warning: .tvos_version_min should only be used for tvos targets
-// WATCHOS-NOT: warning: .watchos_version_min should only be used for watchos targets
-// CHECK: version-min-diagnostics2.s:[[@LINE-5]]:1: warning: overriding previous version_min directive
+// MACOSX: version-min-diagnostics2.s:[[@LINE-1]]:1: warning: .watchos_version_min used while targeting macos
+// IOS: version-min-diagnostics2.s:[[@LINE-2]]:1: warning: .watchos_version_min used while targeting ios
+// TVOS: version-min-diagnostics2.s:[[@LINE-3]]:1: warning: .watchos_version_min used while targeting tvos
+// WATCHOS-NOT: warning: .watchos_version_min used while targeting watchos
+// CHECK: version-min-diagnostics2.s:[[@LINE-5]]:1: warning: overriding previous version directive
// CHECK: version-min-diagnostics2.s:[[@LINE-14]]:1: note: previous definition is here