1 // This test checks that the COFF object emitter works for the most basic
\r
4 // RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s | coff-dump.py | FileCheck %s
\r
5 // I WOULD RUN, BUT THIS FAILS: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s
\r
17 movl $L_.str, (%esp)
\r
25 .asciz "Hello World"
\r
28 // CHECK: MachineType = IMAGE_FILE_MACHINE_I386 (0x14C)
\r
29 // CHECK: NumberOfSections = 2
\r
30 // CHECK: TimeDateStamp = {{[0-9]+}}
\r
31 // CHECK: PointerToSymbolTable = 0x{{[0-9A-F]+}}
\r
32 // CHECK: NumberOfSymbols = 6
\r
33 // CHECK: SizeOfOptionalHeader = 0
\r
34 // CHECK: Characteristics = 0x0
\r
35 // CHECK: Sections = [
\r
37 // CHECK: Name = .text
\r
38 // CHECK: VirtualSize = 0
\r
39 // CHECK: VirtualAddress = 0
\r
40 // CHECK: SizeOfRawData = {{[0-9]+}}
\r
41 // CHECK: PointerToRawData = 0x{{[0-9A-F]+}}
\r
42 // CHECK: PointerToRelocations = 0x{{[0-9A-F]+}}
\r
43 // CHECK: PointerToLineNumbers = 0x0
\r
44 // CHECK: NumberOfRelocations = 2
\r
45 // CHECK: NumberOfLineNumbers = 0
\r
46 // CHECK: Charateristics = 0x60500020
\r
47 // CHECK: IMAGE_SCN_CNT_CODE
\r
48 // CHECK: IMAGE_SCN_ALIGN_16BYTES
\r
49 // CHECK: IMAGE_SCN_MEM_EXECUTE
\r
50 // CHECK: IMAGE_SCN_MEM_READ
\r
51 // CHECK: SectionData =
\r
52 // CHECK: Relocations = [
\r
54 // CHECK: VirtualAddress = 0x{{[0-9A-F]+}}
\r
55 // CHECK: SymbolTableIndex = 2
\r
56 // CHECK: Type = IMAGE_REL_I386_DIR32 (6)
\r
57 // CHECK: SymbolName = .data
\r
60 // CHECK: VirtualAddress = 0x{{[0-9A-F]+}}
\r
61 // CHECK: SymbolTableIndex = 5
\r
62 // CHECK: Type = IMAGE_REL_I386_REL32 (20)
\r
63 // CHECK: SymbolName = _printf
\r
68 // CHECK: Name = .data
\r
69 // CHECK: VirtualSize = 0
\r
70 // CHECK: VirtualAddress = 0
\r
71 // CHECK: SizeOfRawData = {{[0-9]+}}
\r
72 // CHECK: PointerToRawData = 0x{{[0-9A-F]+}}
\r
73 // CHECK: PointerToRelocations = 0x0
\r
74 // CHECK: PointerToLineNumbers = 0x0
\r
75 // CHECK: NumberOfRelocations = 0
\r
76 // CHECK: NumberOfLineNumbers = 0
\r
77 // CHECK: Charateristics = 0xC0100040
\r
78 // CHECK: IMAGE_SCN_CNT_INITIALIZED_DATA
\r
79 // CHECK: IMAGE_SCN_ALIGN_1BYTES
\r
80 // CHECK: IMAGE_SCN_MEM_READ
\r
81 // CHECK: IMAGE_SCN_MEM_WRITE
\r
82 // CHECK: SectionData =
\r
83 // CHECK: 48 65 6C 6C 6F 20 57 6F - 72 6C 64 00 |Hello World.|
\r
84 // CHECK: Relocations = None
\r
87 // CHECK: Symbols = [
\r
89 // CHECK: Name = .text
\r
91 // CHECK: SectionNumber = 1
\r
92 // CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
\r
93 // CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
\r
94 // CHECK: StorageClass = IMAGE_SYM_CLASS_STATIC (3)
\r
95 // CHECK: NumberOfAuxSymbols = 1
\r
96 // CHECK: AuxillaryData =
\r
97 // CHECK: 15 00 00 00 02 00 00 00 - 00 00 00 00 01 00 00 00 |................|
\r
98 // CHECK: 00 00 |..|
\r
101 // CHECK: Name = .data
\r
102 // CHECK: Value = 0
\r
103 // CHECK: SectionNumber = 2
\r
104 // CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
\r
105 // CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
\r
106 // CHECK: StorageClass = IMAGE_SYM_CLASS_STATIC (3)
\r
107 // CHECK: NumberOfAuxSymbols = 1
\r
108 // CHECK: AuxillaryData =
\r
109 // CHECK: 0C 00 00 00 00 00 00 00 - 00 00 00 00 02 00 00 00 |................|
\r
110 // CHECK: 00 00 |..|
\r
113 // CHECK: Name = _main
\r
114 // CHECK: Value = 0
\r
115 // CHECK: SectionNumber = 1
\r
116 // CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
\r
117 // CHECK: ComplexType = IMAGE_SYM_DTYPE_FUNCTION (2)
\r
118 // CHECK: StorageClass = IMAGE_SYM_CLASS_EXTERNAL (2)
\r
119 // CHECK: NumberOfAuxSymbols = 0
\r
120 // CHECK: AuxillaryData =
\r
123 // CHECK: Name = _printf
\r
124 // CHECK: Value = 0
\r
125 // CHECK: SectionNumber = 0
\r
126 // CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
\r
127 // CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
\r
128 // CHECK: StorageClass = IMAGE_SYM_CLASS_EXTERNAL (2)
\r
129 // CHECK: NumberOfAuxSymbols = 0
\r
130 // CHECK: AuxillaryData =
\r