diff options
author | Matthias Braun <matze@braunis.de> | 2017-12-14 00:12:46 +0000 |
---|---|---|
committer | Matthias Braun <matze@braunis.de> | 2017-12-14 00:12:46 +0000 |
commit | 177a4fc2d2ce419e07e5607ccf598c602b67ae3d (patch) | |
tree | b5786e66e855e1ee040be44a50c8decc16549e76 /test | |
parent | 5d4223acf15ec03013c189fa23cdd9c89489c1f9 (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.s | 56 | ||||
-rw-r--r-- | test/MC/MachO/ARM/build-version-encode.s | 10 | ||||
-rw-r--r-- | test/MC/MachO/ARM/build-version.s | 19 | ||||
-rw-r--r-- | test/MC/MachO/ARM/version-min-diagnostics.s | 8 | ||||
-rw-r--r-- | test/MC/MachO/ARM/version-min-diagnostics2.s | 38 |
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 |