print st_shndx with the correct number of bits.
[oota-llvm.git] / test / MC / ELF / set.s
1 // RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump  --dump-section-data | FileCheck  %s
2
3 // Test that we emit the correct value.
4
5 .set kernbase,0xffffffff80000000
6
7 // CHECK:         (('st_name', 0x00000001) # 'kernbase'
8 // CHECK-NEXT:     ('st_bind', 0x0)
9 // CHECK-NEXT:     ('st_type', 0x0)
10 // CHECK-NEXT:     ('st_other', 0x00)
11 // CHECK-NEXT:     ('st_shndx', 0xfff1)
12 // CHECK-NEXT:     ('st_value', 0xffffffff80000000)
13 // CHECK-NEXT:     ('st_size', 0x0000000000000000)
14 // CHECK-NEXT:    ),
15
16 // Test that we accept .set of a symbol after it has been used in a statement.
17
18         jmp foo
19         .set foo, bar
20
21 // or a .quad
22
23         .quad   foo2
24         .set    foo2,bar2
25
26 // Test that there is an undefined reference to bar
27 // CHECK:      (('st_name', 0x0000000a) # 'bar'
28 // CHECK-NEXT:  ('st_bind', 0x1)
29 // CHECK-NEXT:  ('st_type', 0x0)
30 // CHECK-NEXT:  ('st_other', 0x00)
31 // CHECK-NEXT:  ('st_shndx', 0x0000)
32 // CHECK-NEXT:  ('st_value', 0x0000000000000000)
33 // CHECK-NEXT:  ('st_size', 0x0000000000000000)
34 // CHECK-NEXT: ),