// 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 --symbols - | 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: ]
