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 | 0148c88c080cce52c09bd9bfc4dd2127734a6a9e (patch) | |
| tree | 75fe343be05f900e3dc0e5b8aec67e790995e718 /llvm/test/MC/MachO | |
| parent | 2c1fa4feb183b7168d98f5dba8984b9dfde4ab31 (diff) | |
| download | bcm5719-llvm-0148c88c080cce52c09bd9bfc4dd2127734a6a9e.tar.gz bcm5719-llvm-0148c88c080cce52c09bd9bfc4dd2127734a6a9e.zip | |
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.
llvm-svn: 320661
Diffstat (limited to 'llvm/test/MC/MachO')
| -rw-r--r-- | llvm/test/MC/MachO/ARM/build-version-diagnostics.s | 56 | ||||
| -rw-r--r-- | llvm/test/MC/MachO/ARM/build-version-encode.s | 10 | ||||
| -rw-r--r-- | llvm/test/MC/MachO/ARM/build-version.s | 19 | ||||
| -rw-r--r-- | llvm/test/MC/MachO/ARM/version-min-diagnostics.s | 8 | ||||
| -rw-r--r-- | llvm/test/MC/MachO/ARM/version-min-diagnostics2.s | 38 |
5 files changed, 108 insertions, 23 deletions
diff --git a/llvm/test/MC/MachO/ARM/build-version-diagnostics.s b/llvm/test/MC/MachO/ARM/build-version-diagnostics.s new file mode 100644 index 00000000000..31aa87add3a --- /dev/null +++ b/llvm/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/llvm/test/MC/MachO/ARM/build-version-encode.s b/llvm/test/MC/MachO/ARM/build-version-encode.s new file mode 100644 index 00000000000..19e75fafae9 --- /dev/null +++ b/llvm/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/llvm/test/MC/MachO/ARM/build-version.s b/llvm/test/MC/MachO/ARM/build-version.s new file mode 100644 index 00000000000..e3e3f14df08 --- /dev/null +++ b/llvm/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/llvm/test/MC/MachO/ARM/version-min-diagnostics.s b/llvm/test/MC/MachO/ARM/version-min-diagnostics.s index 76c3268dafb..786fe6f2ac4 100644 --- a/llvm/test/MC/MachO/ARM/version-min-diagnostics.s +++ b/llvm/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/llvm/test/MC/MachO/ARM/version-min-diagnostics2.s b/llvm/test/MC/MachO/ARM/version-min-diagnostics2.s index 0689cd41f70..fb984d85b29 100644 --- a/llvm/test/MC/MachO/ARM/version-min-diagnostics2.s +++ b/llvm/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 |

