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