--- /dev/null
+; RUN: llc -filetype=obj %s -o %t\r
+; RUN: coff-dump.py %abs_tmp | FileCheck %s\r
+\r
+; ModuleID = 'coff-fragment-test.c'\r
+target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f80:128:128-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32"\r
+target triple = "i686-pc-win32"\r
+\r
+@.str = private constant [7 x i8] c"Hello \00" ; <[7 x i8]*> [#uses=1]\r
+@str = internal constant [7 x i8] c"World!\00" ; <[7 x i8]*> [#uses=1]\r
+\r
+define i32 @main() nounwind {\r
+entry:\r
+ %call = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([7 x i8]* @.str, i32 0, i32 0)) nounwind ; <i32> [#uses=0]\r
+ %puts = tail call i32 @puts(i8* getelementptr inbounds ([7 x i8]* @str, i32 0, i32 0)) ; <i32> [#uses=0]\r
+ ret i32 0\r
+}\r
+\r
+declare i32 @printf(i8* nocapture, ...) nounwind\r
+\r
+declare i32 @puts(i8* nocapture) nounwind\r
+\r
+; CHECK: {\r
+; CHECK: MachineType = IMAGE_FILE_MACHINE_I386 (0x14C)\r
+; CHECK: NumberOfSections = 2\r
+; CHECK: TimeDateStamp = {{[0-9]+}}\r
+; CHECK: PointerToSymbolTable = 0xBB\r
+; CHECK: NumberOfSymbols = 9\r
+; CHECK: SizeOfOptionalHeader = 0\r
+; CHECK: Characteristics = 0x0\r
+; CHECK: Sections = [\r
+; CHECK: 0 = {\r
+; CHECK: Name = .text\r
+; CHECK: VirtualSize = 0\r
+; CHECK: VirtualAddress = 0\r
+; CHECK: SizeOfRawData = 33\r
+; CHECK: PointerToRawData = 0x64\r
+; CHECK: PointerToRelocations = 0x85\r
+; CHECK: PointerToLineNumbers = 0x0\r
+; CHECK: NumberOfRelocations = 4\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: 83 EC 04 C7 04 24 00 00 - 00 00 E8 00 00 00 00 C7 |.....$..........|\r
+; CHECK: 04 24 00 00 00 00 E8 00 - 00 00 00 31 C0 83 C4 04 |.$.........1....|\r
+; CHECK: C3 |.|\r
+\r
+; CHECK: Relocations = [\r
+; CHECK: 0 = {\r
+; CHECK: VirtualAddress = 0x6\r
+; CHECK: SymbolTableIndex = 5\r
+; CHECK: Type = IMAGE_REL_I386_DIR32 (6)\r
+; CHECK: SymbolName = _main\r
+; CHECK: }\r
+; CHECK: 1 = {\r
+; CHECK: VirtualAddress = 0xB\r
+; CHECK: SymbolTableIndex = 6\r
+; CHECK: Type = IMAGE_REL_I386_REL32 (20)\r
+; CHECK: SymbolName = L_.str\r
+; CHECK: }\r
+; CHECK: 2 = {\r
+; CHECK: VirtualAddress = 0x12\r
+; CHECK: SymbolTableIndex = 7\r
+; CHECK: Type = IMAGE_REL_I386_DIR32 (6)\r
+; CHECK: SymbolName = _printf\r
+; CHECK: }\r
+; CHECK: 3 = {\r
+; CHECK: VirtualAddress = 0x17\r
+; CHECK: SymbolTableIndex = 8\r
+; CHECK: Type = IMAGE_REL_I386_REL32 (20)\r
+; CHECK: SymbolName = _str\r
+; CHECK: }\r
+; CHECK: ]\r
+; CHECK: }\r
+; CHECK: 1 = {\r
+; CHECK: Name = .data\r
+; CHECK: VirtualSize = 0\r
+; CHECK: VirtualAddress = 0\r
+; CHECK: SizeOfRawData = 14\r
+; CHECK: PointerToRawData = 0xAD\r
+; CHECK: PointerToRelocations = 0x0\r
+; CHECK: PointerToLineNumbers = 0x0\r
+; CHECK: NumberOfRelocations = 0\r
+; CHECK: NumberOfLineNumbers = 0\r
+; CHECK: Charateristics = 0xC0100040\r
+; CHECK: IMAGE_SCN_CNT_INITIALIZED_DATA\r
+; CHECK: IMAGE_SCN_ALIGN_1BYTES\r
+; CHECK: IMAGE_SCN_MEM_READ\r
+; CHECK: IMAGE_SCN_MEM_WRITE\r
+; CHECK: SectionData =\r
+; CHECK: 48 65 6C 6C 6F 20 00 57 - 6F 72 6C 64 21 00 |Hello .World!.|\r
+\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: 21 00 00 00 04 00 00 00 - 00 00 00 00 01 00 00 00 |!...............|\r
+; CHECK: 00 00 |..|\r
+\r
+; CHECK: }\r
+; CHECK: 1 = {\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: 0E 00 00 00 00 00 00 00 - 00 00 00 00 02 00 00 00 |................|\r
+; CHECK: 00 00 |..|\r
+\r
+; CHECK: }\r
+; CHECK: 2 = {\r
+; CHECK: Name = _main\r
+; CHECK: Value = 0\r
+; CHECK: SectionNumber = 1\r
+; CHECK: SimpleType = unknown (32)\r
+; CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)\r
+; CHECK: StorageClass = IMAGE_SYM_CLASS_EXTERNAL (2)\r
+; CHECK: NumberOfAuxSymbols = 0\r
+; CHECK: AuxillaryData =\r
+\r
+; CHECK: }\r
+; CHECK: 3 = {\r
+; CHECK: Name = L_.str\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 = 0\r
+; CHECK: AuxillaryData =\r
+\r
+; CHECK: }\r
+; CHECK: 4 = {\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
+\r
+; CHECK: }\r
+; CHECK: 5 = {\r
+; CHECK: Name = _str\r
+; CHECK: Value = 7\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 = 0\r
+; CHECK: AuxillaryData =\r
+\r
+; CHECK: }\r
+; CHECK: 6 = {\r
+; CHECK: Name = _puts\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
+\r
+; CHECK: }\r
+; CHECK: ]\r
+; CHECK: }\r