Write sections mostly in one pass.
[oota-llvm.git] / test / MC / ELF / empty.s
1 // RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s | FileCheck %s
2
3 // Test that like gnu as we create text, data and bss by default. Also test
4 // that shstrtab, symtab and strtab are listed.
5
6 // CHECK:        Section {
7 // CHECK:          Name: .shstrtab
8 // CHECK-NEXT:     Type: SHT_STRTAB
9 // CHECK-NEXT:     Flags [
10 // CHECK-NEXT:     ]
11 // CHECK-NEXT:     Address: 0x0
12 // CHECK-NEXT:     Offset:
13 // CHECK-NEXT:     Size: 44
14 // CHECK-NEXT:     Link: 0
15 // CHECK-NEXT:     Info: 0
16 // CHECK-NEXT:     AddressAlignment: 1
17 // CHECK-NEXT:     EntrySize: 0
18 // CHECK-NEXT:   }
19 // CHECK:        Section {
20 // CHECK:          Name: .text
21 // CHECK-NEXT:     Type: SHT_PROGBITS
22 // CHECK-NEXT:     Flags [
23 // CHECK-NEXT:       SHF_ALLOC
24 // CHECK-NEXT:       SHF_EXECINSTR
25 // CHECK-NEXT:     ]
26 // CHECK-NEXT:     Address: 0x0
27 // CHECK-NEXT:     Offset: 0x40
28 // CHECK-NEXT:     Size: 0
29 // CHECK-NEXT:     Link: 0
30 // CHECK-NEXT:     Info: 0
31 // CHECK-NEXT:     AddressAlignment: 4
32 // CHECK-NEXT:     EntrySize: 0
33 // CHECK-NEXT:   }
34 // CHECK:        Section {
35 // CHECK:          Name: .data
36 // CHECK-NEXT:     Type: SHT_PROGBITS
37 // CHECK-NEXT:     Flags [
38 // CHECK-NEXT:       SHF_ALLOC
39 // CHECK-NEXT:       SHF_WRITE
40 // CHECK-NEXT:     ]
41 // CHECK-NEXT:     Address: 0x0
42 // CHECK-NEXT:     Offset: 0x40
43 // CHECK-NEXT:     Size: 0
44 // CHECK-NEXT:     Link: 0
45 // CHECK-NEXT:     Info: 0
46 // CHECK-NEXT:     AddressAlignment: 4
47 // CHECK-NEXT:     EntrySize: 0
48 // CHECK-NEXT:   }
49 // CHECK:        Section {
50 // CHECK:          Name: .bss
51 // CHECK-NEXT:     Type: SHT_NOBITS
52 // CHECK-NEXT:     Flags [
53 // CHECK-NEXT:       SHF_ALLOC
54 // CHECK-NEXT:       SHF_WRITE
55 // CHECK-NEXT:     ]
56 // CHECK-NEXT:     Address: 0x0
57 // CHECK-NEXT:     Offset: 0x40
58 // CHECK-NEXT:     Size: 0
59 // CHECK-NEXT:     Link: 0
60 // CHECK-NEXT:     Info: 0
61 // CHECK-NEXT:     AddressAlignment: 4
62 // CHECK-NEXT:     EntrySize: 0
63 // CHECK-NEXT:   }
64 // CHECK:        Section {
65 // CHECK:          Name: .symtab
66 // CHECK-NEXT:     Type: SHT_SYMTAB
67 // CHECK-NEXT:     Flags [
68 // CHECK-NEXT:     ]
69 // CHECK-NEXT:     Address: 0x0
70 // CHECK-NEXT:     Offset:
71 // CHECK-NEXT:     Size: 96
72 // CHECK-NEXT:     Link:
73 // CHECK-NEXT:     Info: 4
74 // CHECK-NEXT:     AddressAlignment: 8
75 // CHECK-NEXT:     EntrySize: 24
76 // CHECK-NEXT:   }
77 // CHECK:        Section {
78 // CHECK:          Name: .strtab
79 // CHECK-NEXT:     Type: SHT_STRTAB
80 // CHECK-NEXT:     Flags [
81 // CHECK-NEXT:     ]
82 // CHECK-NEXT:     Address: 0x0
83 // CHECK-NEXT:     Offset:
84 // CHECK-NEXT:     Size: 1
85 // CHECK-NEXT:     Link: 0
86 // CHECK-NEXT:     Info: 0
87 // CHECK-NEXT:     AddressAlignment: 1
88 // CHECK-NEXT:     EntrySize: 0
89 // CHECK-NEXT:   }