// RUN: llvm-mc -filetype=obj %s -o - -triple x86_64-pc-linux | llvm-objdump -s - | FileCheck %s
// RUN: not llvm-mc -filetype=obj -triple x86_64 --defsym ERR=1 %s -o /dev/null 2>&1 | FileCheck %s --check-prefix=ERR --implicit-check-not=error:
// CHECK: Contents of section .text:
// CHECK-NEXT: 0000 03042502 00000003 04250100 0000ebf7
.text 1
add 1, %eax
jmp label
.subsection
add 2, %eax
label:
// CHECK-NOT: Contents of section .rela.text:
// CHECK: Contents of section .data:
// CHECK-NEXT: 0000 01030402 74657374
.data
l0:
.byte 1
.subsection 1+1
l1:
.byte 2
l2:
.subsection l2-l1
.byte l1-l0
.subsection 3
.ascii "test"
.previous
.byte 4
// CHECK: Contents of section test:
// CHECK-NEXT: 0000 010302
.section test
.byte 1
.pushsection test, 1
.byte 2
.popsection
.byte 3
.ifdef ERR
// ERR: :[[#@LINE+1]]:13: error: cannot evaluate subsection number
.subsection l2
// ERR: <unknown>:0: error: subsection number -1 is not within [0,2147483647]
.subsection 0-1
.subsection 2147483647
// ERR: <unknown>:0: error: subsection number 2147483648 is not within [0,2147483647]
.subsection 2147483648
.endif