[Orc] Remote the <unistd> include introduced in r257305 - it's not needed, and
[oota-llvm.git] / test / MC / COFF / symbol-fragment-offset.s
1 // The purpose of this test is to see if the COFF object writer is emitting the
2 // proper relocations for multiple pieces of data in a single data fragment.
3
4 // RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s | llvm-readobj -h -s -sr -sd -t | FileCheck %s
5
6 .def     _main;
7         .scl    2;
8         .type   32;
9         .endef
10         .text
11         .globl  _main
12         .align  16, 0x90
13 _main:                                  # @main
14 # BB#0:                                 # %entry
15         subl    $4, %esp
16         movl    $L_.str0, (%esp)
17         calll   _printf
18         movl    $L_.str1, (%esp)
19         calll   _puts
20         movl    $L_.str2, (%esp)
21         calll   _puts
22         xorl    %eax, %eax
23         addl    $4, %esp
24         ret
25
26         .data
27 L_.str0:                                # @.str0
28         .asciz   "Hello "
29
30 L_.str1:                                # @.str1
31         .asciz   "World!"
32
33         .align  16                      # @.str2
34 L_.str2:
35         .asciz   "I'm The Last Line."
36
37 // CHECK: {
38 // CHECK:   Machine:                   IMAGE_FILE_MACHINE_I386 (0x14C)
39 // CHECK:   SectionCount:              3
40 // CHECK:   TimeDateStamp:             {{[0-9]+}}
41 // CHECK:   PointerToSymbolTable:      0x{{[0-9A-F]+}}
42 // CHECK:   SymbolCount:               9
43 // CHECK:   OptionalHeaderSize:        0
44 // CHECK:   Characteristics [ (0x0)
45 // CHECK:   ]
46 // CHECK: }
47 // CHECK: Sections [
48 // CHECK:   Section {
49 // CHECK:     Number:                    1
50 // CHECK:     Name:                      .text
51 // CHECK:     VirtualSize:               0
52 // CHECK:     VirtualAddress:            0
53 // CHECK:     RawDataSize:               {{[0-9]+}}
54 // CHECK:     PointerToRawData:          0x{{[0-9A-F]+}}
55 // CHECK:     PointerToRelocations:      0x{{[0-9A-F]+}}
56 // CHECK:     PointerToLineNumbers:      0x0
57 // CHECK:     RelocationCount:           6
58 // CHECK:     LineNumberCount:           0
59 // CHECK:     Characteristics [ (0x60500020)
60 // CHECK:       IMAGE_SCN_ALIGN_16BYTES
61 // CHECK:       IMAGE_SCN_CNT_CODE
62 // CHECK:       IMAGE_SCN_MEM_EXECUTE
63 // CHECK:       IMAGE_SCN_MEM_READ
64 // CHECK:     ]
65 // CHECK:     Relocations [
66 // CHECK:       0x6  IMAGE_REL_I386_DIR32 .data
67 // CHECK:       0xB  IMAGE_REL_I386_REL32 _printf
68 // CHECK:       0x12 IMAGE_REL_I386_DIR32 .data
69 // CHECK:       0x17 IMAGE_REL_I386_REL32 _puts
70 // CHECK:       0x1E IMAGE_REL_I386_DIR32 .data
71 // CHECK:       0x23 IMAGE_REL_I386_REL32 _puts
72 // CHECK:     ]
73 // CHECK:     SectionData (
74 // CHECK:       0000: 83EC04C7 04240000 0000E800 000000C7 |.....$..........|
75 // CHECK:       0010: 04240700 0000E800 000000C7 04241000 |.$...........$..|
76 // CHECK:       0020: 0000E800 00000031 C083C404 C3       |.......1.....|
77 // CHECK:     )
78 // CHECK:   }
79 // CHECK:   Section {
80 // CHECK:     Number:                    2
81 // CHECK:     Name:                      .data
82 // CHECK:     VirtualSize:               0
83 // CHECK:     VirtualAddress:            0
84 // CHECK:     RawDataSize:               {{[0-9]+}}
85 // CHECK:     PointerToRawData:          0x{{[0-9A-F]+}}
86 // CHECK:     PointerToRelocations:      0x0
87 // CHECK:     PointerToLineNumbers:      0x0
88 // CHECK:     RelocationCount:           0
89 // CHECK:     LineNumberCount:           0
90 // CHECK:     Characteristics [ (0xC0500040)
91 // CHECK:       IMAGE_SCN_ALIGN_16BYTES
92 // CHECK:       IMAGE_SCN_CNT_INITIALIZED_DATA
93 // CHECK:       IMAGE_SCN_MEM_READ
94 // CHECK:       IMAGE_SCN_MEM_WRITE
95 // CHECK:     Relocations [
96 // CHECK:     ]
97 // CHECK:     SectionData (
98 // CHECK:       0000: 48656C6C 6F200057 6F726C64 21000000 |Hello .World!...|
99 // CHECK:       0010: 49276D20 54686520 4C617374 204C696E |I'm The Last Lin|
100 // CHECK:       0020: 652E00                              |e..|
101 // CHECK:     )
102 // CHECK:   }
103 // CHECK: ]
104 // CHECK: Symbols [
105 // CHECK:   Symbol {
106 // CHECK:     Name:                      .text
107 // CHECK:     Value:                     0
108 // CHECK:     Section:                   .text
109 // CHECK:     BaseType:                  Null
110 // CHECK:     ComplexType:               Null
111 // CHECK:     StorageClass:              Static
112 // CHECK:     AuxSymbolCount:            1
113 // CHECK:     AuxSectionDef {
114 // CHECK:       Length: 45
115 // CHECK:       RelocationCount: 6
116 // CHECK:       LineNumberCount: 0
117 // CHECK:       Checksum: 0xDED1DC2
118 // CHECK:       Number: 1
119 // CHECK:       Selection: 0x0
120 // CHECK:     }
121 // CHECK:   }
122 // CHECK:   Symbol {
123 // CHECK:     Name:                      .data
124 // CHECK:     Value:                     0
125 // CHECK:     Section:                   .data
126 // CHECK:     BaseType:                  Null
127 // CHECK:     ComplexType:               Null
128 // CHECK:     StorageClass:              Static
129 // CHECK:     AuxSymbolCount:            1
130 // CHECK:     AuxSectionDef {
131 // CHECK:       Length: 35
132 // CHECK:       RelocationCount: 0
133 // CHECK:       LineNumberCount: 0
134 // CHECK:       Checksum: 0xB0A4C21
135 // CHECK:       Number: 2
136 // CHECK:       Selection: 0x0
137 // CHECK:     }
138 // CHECK:   }
139 // CHECK:   Symbol {
140 // CHECK:     Name:                      _main
141 // CHECK:     Value:                     0
142 // CHECK:     Section:                   .text
143 // CHECK:     BaseType:                  Null
144 // CHECK:     ComplexType:               Function
145 // CHECK:     StorageClass:              External
146 // CHECK:     AuxSymbolCount:            0
147 // CHECK:   }
148 // CHECK:   Symbol {
149 // CHECK:     Name:                      _printf
150 // CHECK:     Value:                     0
151 // CHECK:     Section:                   IMAGE_SYM_UNDEFINED (0)
152 // CHECK:     BaseType:                  Null
153 // CHECK:     ComplexType:               Null
154 // CHECK:     StorageClass:              External
155 // CHECK:     AuxSymbolCount:            0
156 // CHECK:   }
157 // CHECK:   Symbol {
158 // CHECK:     Name:                      _puts
159 // CHECK:     Value:                     0
160 // CHECK:     Section:                   IMAGE_SYM_UNDEFINED (0)
161 // CHECK:     BaseType:                  Null
162 // CHECK:     ComplexType:               Null
163 // CHECK:     StorageClass:              External
164 // CHECK:     AuxSymbolCount:            0
165 // CHECK:   }
166 // CHECK: ]