-// This test checks that the COFF object emitter works for the most basic\r
-// programs.\r
-\r
-// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s | coff-dump.py | FileCheck %s\r
-// I WOULD RUN, BUT THIS FAILS: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s\r
-\r
-.def _main;\r
- .scl 2;\r
- .type 32;\r
- .endef\r
- .text\r
- .globl _main\r
- .align 16, 0x90\r
-_main: # @main\r
-# BB#0: # %entry\r
- subl $4, %esp\r
- movl $L_.str, (%esp)\r
- calll _printf\r
- xorl %eax, %eax\r
- addl $4, %esp\r
- ret\r
-\r
- .data\r
-L_.str: # @.str\r
- .asciz "Hello World"\r
-\r
-// CHECK: {\r
-// CHECK: MachineType = IMAGE_FILE_MACHINE_I386 (0x14C)\r
-// CHECK: NumberOfSections = 2\r
-// CHECK: TimeDateStamp = {{[0-9]+}}\r
-// CHECK: PointerToSymbolTable = 0x{{[0-9A-F]+}}\r
-// CHECK: NumberOfSymbols = 6\r
-// CHECK: SizeOfOptionalHeader = 0\r
-// CHECK: Characteristics = 0x0\r
-// CHECK: Sections = [\r
-// CHECK: 1 = {\r
-// CHECK: Name = .text\r
-// CHECK: VirtualSize = 0\r
-// CHECK: VirtualAddress = 0\r
-// CHECK: SizeOfRawData = {{[0-9]+}}\r
-// CHECK: PointerToRawData = 0x{{[0-9A-F]+}}\r
-// CHECK: PointerToRelocations = 0x{{[0-9A-F]+}}\r
-// CHECK: PointerToLineNumbers = 0x0\r
-// CHECK: NumberOfRelocations = 2\r
-// CHECK: NumberOfLineNumbers = 0\r
-// CHECK: Charateristics = 0x60500020\r
-// CHECK: IMAGE_SCN_CNT_CODE\r
-// CHECK: IMAGE_SCN_ALIGN_16BYTES\r
-// CHECK: IMAGE_SCN_MEM_EXECUTE\r
-// CHECK: IMAGE_SCN_MEM_READ\r
-// CHECK: SectionData =\r
-// CHECK: Relocations = [\r
-// CHECK: 0 = {\r
-// CHECK: VirtualAddress = 0x{{[0-9A-F]+}}\r
-// CHECK: SymbolTableIndex = 2\r
-// CHECK: Type = IMAGE_REL_I386_DIR32 (6)\r
-// CHECK: SymbolName = .data\r
-// CHECK: }\r
-// CHECK: 1 = {\r
-// CHECK: VirtualAddress = 0x{{[0-9A-F]+}}\r
-// CHECK: SymbolTableIndex = 5\r
-// CHECK: Type = IMAGE_REL_I386_REL32 (20)\r
-// CHECK: SymbolName = _printf\r
-// CHECK: }\r
-// CHECK: ]\r
-// CHECK: }\r
-// CHECK: 2 = {\r
-// CHECK: Name = .data\r
-// CHECK: VirtualSize = 0\r
-// CHECK: VirtualAddress = 0\r
-// CHECK: SizeOfRawData = {{[0-9]+}}\r
-// CHECK: PointerToRawData = 0x{{[0-9A-F]+}}\r
-// CHECK: PointerToRelocations = 0x0\r
-// CHECK: PointerToLineNumbers = 0x0\r
-// CHECK: NumberOfRelocations = 0\r
-// CHECK: NumberOfLineNumbers = 0\r
-// CHECK: Charateristics = 0xC0300040\r
-// CHECK: IMAGE_SCN_CNT_INITIALIZED_DATA\r
-// CHECK: IMAGE_SCN_ALIGN_4BYTES\r
-// CHECK: IMAGE_SCN_MEM_READ\r
-// CHECK: IMAGE_SCN_MEM_WRITE\r
-// CHECK: SectionData =\r
-// CHECK: 48 65 6C 6C 6F 20 57 6F - 72 6C 64 00 |Hello World.|\r
-// CHECK: Relocations = None\r
-// CHECK: }\r
-// CHECK: ]\r
-// CHECK: Symbols = [\r
-// CHECK: 0 = {\r
-// CHECK: Name = .text\r
-// CHECK: Value = 0\r
-// CHECK: SectionNumber = 1\r
-// CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)\r
-// CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)\r
-// CHECK: StorageClass = IMAGE_SYM_CLASS_STATIC (3)\r
-// CHECK: NumberOfAuxSymbols = 1\r
-// CHECK: AuxillaryData =\r
-// CHECK: 15 00 00 00 02 00 00 00 - 00 00 00 00 01 00 00 00 |................|\r
-// CHECK: 00 00 |..|\r
-// CHECK: }\r
-// CHECK: 2 = {\r
-// CHECK: Name = .data\r
-// CHECK: Value = 0\r
-// CHECK: SectionNumber = 2\r
-// CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)\r
-// CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)\r
-// CHECK: StorageClass = IMAGE_SYM_CLASS_STATIC (3)\r
-// CHECK: NumberOfAuxSymbols = 1\r
-// CHECK: AuxillaryData =\r
-// CHECK: 0C 00 00 00 00 00 00 00 - 00 00 00 00 02 00 00 00 |................|\r
-// CHECK: 00 00 |..|\r
-// CHECK: }\r
-// CHECK: 4 = {\r
-// CHECK: Name = _main\r
-// CHECK: Value = 0\r
-// CHECK: SectionNumber = 1\r
-// CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)\r
-// CHECK: ComplexType = IMAGE_SYM_DTYPE_FUNCTION (2)\r
-// CHECK: StorageClass = IMAGE_SYM_CLASS_EXTERNAL (2)\r
-// CHECK: NumberOfAuxSymbols = 0\r
-// CHECK: AuxillaryData =\r
-// CHECK: }\r
-// CHECK: 5 = {\r
-// CHECK: Name = _printf\r
-// CHECK: Value = 0\r
-// CHECK: SectionNumber = 0\r
-// CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)\r
-// CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)\r
-// CHECK: StorageClass = IMAGE_SYM_CLASS_EXTERNAL (2)\r
-// CHECK: NumberOfAuxSymbols = 0\r
-// CHECK: AuxillaryData =\r
-// CHECK: }\r
-// CHECK: ]\r
-// CHECK: }\r
+// This test checks that the COFF object emitter works for the most basic
+// programs.
+
+// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s | llvm-readobj -h -s -sr -sd -t | FileCheck %s
+
+.def _main;
+ .scl 2;
+ .type 32;
+ .endef
+ .text
+ .globl _main
+ .align 16, 0x90
+_main: # @main
+# BB#0: # %entry
+ subl $4, %esp
+ movl $L_.str, (%esp)
+ call _printf
+ xorl %eax, %eax
+ addl $4, %esp
+ ret
+
+ .data
+L_.str: # @.str
+ .asciz "Hello World"
+
+// CHECK: ImageFileHeader {
+// CHECK: Machine: IMAGE_FILE_MACHINE_I386
+// CHECK: SectionCount: 3
+// CHECK: TimeDateStamp: {{[0-9]+}}
+// CHECK: PointerToSymbolTable: 0x{{[0-9A-F]+}}
+// CHECK: SymbolCount: 8
+// CHECK: OptionalHeaderSize: 0
+// CHECK: Characteristics [ (0x0)
+// CHECK: ]
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Number: [[TextNum:[0-9]+]]
+// CHECK: Name: .text
+// CHECK: VirtualSize: 0
+// CHECK: VirtualAddress: 0
+// CHECK: RawDataSize: {{[0-9]+}}
+// CHECK: PointerToRawData: 0x{{[0-9A-F]+}}
+// CHECK: PointerToRelocations: 0x{{[0-9A-F]+}}
+// CHECK: PointerToLineNumbers: 0x0
+// CHECK: RelocationCount: 2
+// CHECK: LineNumberCount: 0
+// CHECK: Characteristics [ (0x60500020)
+// CHECK: IMAGE_SCN_ALIGN_16BYTES
+// CHECK: IMAGE_SCN_CNT_CODE
+// CHECK: IMAGE_SCN_MEM_EXECUTE
+// CHECK: IMAGE_SCN_MEM_READ
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: 0x{{[0-9A-F]+}} IMAGE_REL_I386_DIR32 .data
+// CHECK: 0x{{[0-9A-F]+}} IMAGE_REL_I386_REL32 _printf
+// CHECK: ]
+// CHECK: }
+// CHECK: Section {
+// CHECK: Number: [[DataNum:[0-9]+]]
+// CHECK: Name: .data
+// CHECK: VirtualSize: 0
+// CHECK: VirtualAddress: 0
+// CHECK: RawDataSize: {{[0-9]+}}
+// CHECK: PointerToRawData: 0x{{[0-9A-F]+}}
+// CHECK: PointerToRelocations: 0x0
+// CHECK: PointerToLineNumbers: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: LineNumberCount: 0
+// CHECK: Characteristics [ (0xC0300040)
+// CHECK: IMAGE_SCN_ALIGN_4BYTES
+// CHECK: IMAGE_SCN_CNT_INITIALIZED_DATA
+// CHECK: IMAGE_SCN_MEM_READ
+// CHECK: IMAGE_SCN_MEM_WRITE
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: ]
+// CHECK: SectionData (
+// CHECK: 0000: 48656C6C 6F20576F 726C6400 |Hello World.|
+// CHECK: )
+// CHECK: }
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: .text
+// CHECK: Value: 0
+// CHECK: Section: .text
+// CHECK: BaseType: Null
+// CHECK: ComplexType: Null
+// CHECK: StorageClass: Static
+// CHECK: AuxSymbolCount: 1
+// CHECK: AuxSectionDef {
+// CHECK: Length: 21
+// CHECK: RelocationCount: 2
+// CHECK: LineNumberCount: 0
+// CHECK: Checksum: 0xC6461CBE
+// CHECK: Number: 1
+// CHECK: Selection: 0x0
+// CHECK: }
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: .data
+// CHECK: Value: 0
+// CHECK: Section: .data
+// CHECK: BaseType: Null
+// CHECK: ComplexType: Null
+// CHECK: StorageClass: Static
+// CHECK: AuxSymbolCount: 1
+// CHECK: AuxSectionDef {
+// CHECK: Length: 12
+// CHECK: RelocationCount: 0
+// CHECK: LineNumberCount: 0
+// CHECK: Checksum: 0x2B95CA92
+// CHECK: Number: 2
+// CHECK: Selection: 0x0
+// CHECK: }
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _main
+// CHECK: Value: 0
+// CHECK: Section: .text
+// CHECK: BaseType: Null
+// CHECK: ComplexType: Function
+// CHECK: StorageClass: External
+// CHECK: AuxSymbolCount: 0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _printf
+// CHECK: Value: 0
+// CHECK: Section: IMAGE_SYM_UNDEFINED (0)
+// CHECK: BaseType: Null
+// CHECK: ComplexType: Null
+// CHECK: StorageClass: External
+// CHECK: AuxSymbolCount: 0
+// CHECK: }
+// CHECK: ]