switch (*constraint) {
default:
weight = TargetLowering::getSingleConstraintMatchWeight(info, constraint);
- break;\r
+ break;
case 'd':
case 'y':
if (type->isIntegerTy())
-// 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 | coff-dump.py | FileCheck %s
+// I WOULD RUN, BUT THIS FAILS: llvm-mc -filetype=obj -triple x86_64-pc-win32 %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)
+ calll _printf
+ xorl %eax, %eax
+ addl $4, %esp
+ ret
+
+ .data
+L_.str: # @.str
+ .asciz "Hello World"
+
+// CHECK: {
+// CHECK: MachineType = IMAGE_FILE_MACHINE_I386 (0x14C)
+// CHECK: NumberOfSections = 2
+// CHECK: TimeDateStamp = {{[0-9]+}}
+// CHECK: PointerToSymbolTable = 0x{{[0-9A-F]+}}
+// CHECK: NumberOfSymbols = 6
+// CHECK: SizeOfOptionalHeader = 0
+// CHECK: Characteristics = 0x0
+// CHECK: Sections = [
+// CHECK: 1 = {
+// CHECK: Name = .text
+// CHECK: VirtualSize = 0
+// CHECK: VirtualAddress = 0
+// CHECK: SizeOfRawData = {{[0-9]+}}
+// CHECK: PointerToRawData = 0x{{[0-9A-F]+}}
+// CHECK: PointerToRelocations = 0x{{[0-9A-F]+}}
+// CHECK: PointerToLineNumbers = 0x0
+// CHECK: NumberOfRelocations = 2
+// CHECK: NumberOfLineNumbers = 0
+// CHECK: Charateristics = 0x60500020
+// CHECK: IMAGE_SCN_CNT_CODE
+// CHECK: IMAGE_SCN_ALIGN_16BYTES
+// CHECK: IMAGE_SCN_MEM_EXECUTE
+// CHECK: IMAGE_SCN_MEM_READ
+// CHECK: SectionData =
+// CHECK: Relocations = [
+// CHECK: 0 = {
+// CHECK: VirtualAddress = 0x{{[0-9A-F]+}}
+// CHECK: SymbolTableIndex = 2
+// CHECK: Type = IMAGE_REL_I386_DIR32 (6)
+// CHECK: SymbolName = .data
+// CHECK: }
+// CHECK: 1 = {
+// CHECK: VirtualAddress = 0x{{[0-9A-F]+}}
+// CHECK: SymbolTableIndex = 5
+// CHECK: Type = IMAGE_REL_I386_REL32 (20)
+// CHECK: SymbolName = _printf
+// CHECK: }
+// CHECK: ]
+// CHECK: }
+// CHECK: 2 = {
+// CHECK: Name = .data
+// CHECK: VirtualSize = 0
+// CHECK: VirtualAddress = 0
+// CHECK: SizeOfRawData = {{[0-9]+}}
+// CHECK: PointerToRawData = 0x{{[0-9A-F]+}}
+// CHECK: PointerToRelocations = 0x0
+// CHECK: PointerToLineNumbers = 0x0
+// CHECK: NumberOfRelocations = 0
+// CHECK: NumberOfLineNumbers = 0
+// CHECK: Charateristics = 0xC0300040
+// CHECK: IMAGE_SCN_CNT_INITIALIZED_DATA
+// CHECK: IMAGE_SCN_ALIGN_4BYTES
+// CHECK: IMAGE_SCN_MEM_READ
+// CHECK: IMAGE_SCN_MEM_WRITE
+// CHECK: SectionData =
+// CHECK: 48 65 6C 6C 6F 20 57 6F - 72 6C 64 00 |Hello World.|
+// CHECK: Relocations = None
+// CHECK: }
+// CHECK: ]
+// CHECK: Symbols = [
+// CHECK: 0 = {
+// CHECK: Name = .text
+// CHECK: Value = 0
+// CHECK: SectionNumber = 1
+// CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
+// CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
+// CHECK: StorageClass = IMAGE_SYM_CLASS_STATIC (3)
+// CHECK: NumberOfAuxSymbols = 1
+// CHECK: AuxillaryData =
+// CHECK: 15 00 00 00 02 00 00 00 - 00 00 00 00 01 00 00 00 |................|
+// CHECK: 00 00 |..|
+// CHECK: }
+// CHECK: 2 = {
+// CHECK: Name = .data
+// CHECK: Value = 0
+// CHECK: SectionNumber = 2
+// CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
+// CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
+// CHECK: StorageClass = IMAGE_SYM_CLASS_STATIC (3)
+// CHECK: NumberOfAuxSymbols = 1
+// CHECK: AuxillaryData =
+// CHECK: 0C 00 00 00 00 00 00 00 - 00 00 00 00 02 00 00 00 |................|
+// CHECK: 00 00 |..|
+// CHECK: }
+// CHECK: 4 = {
+// CHECK: Name = _main
+// CHECK: Value = 0
+// CHECK: SectionNumber = 1
+// CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
+// CHECK: ComplexType = IMAGE_SYM_DTYPE_FUNCTION (2)
+// CHECK: StorageClass = IMAGE_SYM_CLASS_EXTERNAL (2)
+// CHECK: NumberOfAuxSymbols = 0
+// CHECK: AuxillaryData =
+// CHECK: }
+// CHECK: 5 = {
+// CHECK: Name = _printf
+// CHECK: Value = 0
+// CHECK: SectionNumber = 0
+// CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
+// CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
+// CHECK: StorageClass = IMAGE_SYM_CLASS_EXTERNAL (2)
+// CHECK: NumberOfAuxSymbols = 0
+// CHECK: AuxillaryData =
+// CHECK: }
+// CHECK: ]
+// CHECK: }
-// The purpose of this test is to verify that bss sections are emited correctly.\r
-\r
-// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s | coff-dump.py | FileCheck %s\r
-// RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s | coff-dump.py | FileCheck %s\r
-\r
- .bss\r
- .globl _g0\r
- .align 4\r
-_g0:\r
- .long 0\r
-\r
-// CHECK: Name = .bss\r
-// CHECK-NEXT: VirtualSize = 0\r
-// CHECK-NEXT: VirtualAddress = 0\r
-// CHECK-NEXT: SizeOfRawData = 4\r
+// The purpose of this test is to verify that bss sections are emited correctly.
+
+// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s | coff-dump.py | FileCheck %s
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s | coff-dump.py | FileCheck %s
+
+ .bss
+ .globl _g0
+ .align 4
+_g0:
+ .long 0
+
+// CHECK: Name = .bss
+// CHECK-NEXT: VirtualSize = 0
+// CHECK-NEXT: VirtualAddress = 0
+// CHECK-NEXT: SizeOfRawData = 4
-// The purpose of this test is to verify that we do not produce unneeded\r
-// relocations when symbols are in the same section and we know their offset.\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 | coff-dump.py | FileCheck %s\r
-\r
- .def _foo;\r
- .scl 2;\r
- .type 32;\r
- .endef\r
- .text\r
- .globl _foo\r
- .align 16, 0x90\r
-_foo: # @foo\r
-# BB#0: # %e\r
- .align 16, 0x90\r
-LBB0_1: # %i\r
- # =>This Inner Loop Header: Depth=1\r
- jmp LBB0_1\r
-\r
- .def _bar;\r
- .scl 2;\r
- .type 32;\r
- .endef\r
- .globl _bar\r
- .align 16, 0x90\r
-_bar: # @bar\r
-# BB#0: # %e\r
- .align 16, 0x90\r
-LBB1_1: # %i\r
- # =>This Inner Loop Header: Depth=1\r
- jmp LBB1_1\r
-\r
- .def _baz;\r
- .scl 2;\r
- .type 32;\r
- .endef\r
- .globl _baz\r
- .align 16, 0x90\r
-_baz: # @baz\r
-# BB#0: # %e\r
- subl $4, %esp\r
-Ltmp0:\r
- calll _baz\r
- addl $4, %esp\r
- ret\r
-\r
-// CHECK: Sections = [\r
-// CHECK-NOT: NumberOfRelocations = {{[^0]}}\r
-// CHECK: Symbols = [\r
+// The purpose of this test is to verify that we do not produce unneeded
+// relocations when symbols are in the same section and we know their offset.
+
+// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s | coff-dump.py | FileCheck %s
+// I WOULD RUN, BUT THIS FAILS: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s | coff-dump.py | FileCheck %s
+
+ .def _foo;
+ .scl 2;
+ .type 32;
+ .endef
+ .text
+ .globl _foo
+ .align 16, 0x90
+_foo: # @foo
+# BB#0: # %e
+ .align 16, 0x90
+LBB0_1: # %i
+ # =>This Inner Loop Header: Depth=1
+ jmp LBB0_1
+
+ .def _bar;
+ .scl 2;
+ .type 32;
+ .endef
+ .globl _bar
+ .align 16, 0x90
+_bar: # @bar
+# BB#0: # %e
+ .align 16, 0x90
+LBB1_1: # %i
+ # =>This Inner Loop Header: Depth=1
+ jmp LBB1_1
+
+ .def _baz;
+ .scl 2;
+ .type 32;
+ .endef
+ .globl _baz
+ .align 16, 0x90
+_baz: # @baz
+# BB#0: # %e
+ subl $4, %esp
+Ltmp0:
+ calll _baz
+ addl $4, %esp
+ ret
+
+// CHECK: Sections = [
+// CHECK-NOT: NumberOfRelocations = {{[^0]}}
+// CHECK: Symbols = [
-// The purpose of this test is to verify that symbol aliases\r
-// (@foo = alias <type> @bar) generate the correct entries in the symbol table.\r
-// They should be identical except for the name.\r
-\r
-// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s | coff-dump.py | FileCheck %s\r
-// RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s | coff-dump.py | FileCheck %s\r
-\r
- .def _foo;\r
- .scl 2;\r
- .type 32;\r
- .endef\r
- .text\r
- .globl _foo\r
- .align 16, 0x90\r
-_foo: # @foo\r
-# BB#0: # %entry\r
- ret\r
-\r
- .data\r
- .globl _bar # @bar\r
- .align 4\r
-_bar:\r
- .long 0 # 0x0\r
-\r
-\r
- .globl _foo_alias\r
-_foo_alias = _foo\r
- .globl _bar_alias\r
-_bar_alias = _bar\r
-\r
-// CHECK: Name = {{_?}}foo\r
-// CHECK-NEXT: Value = [[FOO_VALUE:.*$]]\r
-// CHECK-NEXT: SectionNumber = [[FOO_SECTION_NUMBER:.*$]]\r
-// CHECK-NEXT: SimpleType = [[FOO_SIMPLE_TYPE:.*$]]\r
-// CHECK-NEXT: ComplexType = [[FOO_COMPLEX_TYPE:.*$]]\r
-// CHECK-NEXT: StorageClass = [[FOO_STORAGE_CLASS:.*$]]\r
-// CHECK-NEXT: NumberOfAuxSymbols = [[FOO_NUMBER_OF_AUX_SYMBOLS:.*$]]\r
-\r
-// CHECK: Name = {{_?}}bar\r
-// CHECK-NEXT: Value = [[BAR_VALUE:.*$]]\r
-// CHECK-NEXT: SectionNumber = [[BAR_SECTION_NUMBER:.*$]]\r
-// CHECK-NEXT: SimpleType = [[BAR_SIMPLE_TYPE:.*$]]\r
-// CHECK-NEXT: ComplexType = [[BAR_COMPLEX_TYPE:.*$]]\r
-// CHECK-NEXT: StorageClass = [[BAR_STORAGE_CLASS:.*$]]\r
-// CHECK-NEXT: NumberOfAuxSymbols = [[BAR_NUMBER_OF_AUX_SYMBOLS:.*$]]\r
-\r
-// CHECK: Name = {{_?}}foo_alias\r
-// CHECK-NEXT: Value = [[FOO_VALUE]]\r
-// CHECK-NEXT: SectionNumber = [[FOO_SECTION_NUMBER]]\r
-// CHECK-NEXT: SimpleType = [[FOO_SIMPLE_TYPE]]\r
-// CHECK-NEXT: ComplexType = [[FOO_COMPLEX_TYPE]]\r
-// CHECK-NEXT: StorageClass = [[FOO_STORAGE_CLASS]]\r
-// CHECK-NEXT: NumberOfAuxSymbols = [[FOO_NUMBER_OF_AUX_SYMBOLS]]\r
-\r
-// CHECK: Name = {{_?}}bar_alias\r
-// CHECK-NEXT: Value = [[BAR_VALUE]]\r
-// CHECK-NEXT: SectionNumber = [[BAR_SECTION_NUMBER]]\r
-// CHECK-NEXT: SimpleType = [[BAR_SIMPLE_TYPE]]\r
-// CHECK-NEXT: ComplexType = [[BAR_COMPLEX_TYPE]]\r
-// CHECK-NEXT: StorageClass = [[BAR_STORAGE_CLASS]]\r
-// CHECK-NEXT: NumberOfAuxSymbols = [[BAR_NUMBER_OF_AUX_SYMBOLS]]\r
-\r
+// The purpose of this test is to verify that symbol aliases
+// (@foo = alias <type> @bar) generate the correct entries in the symbol table.
+// They should be identical except for the name.
+
+// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s | coff-dump.py | FileCheck %s
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s | coff-dump.py | FileCheck %s
+
+ .def _foo;
+ .scl 2;
+ .type 32;
+ .endef
+ .text
+ .globl _foo
+ .align 16, 0x90
+_foo: # @foo
+# BB#0: # %entry
+ ret
+
+ .data
+ .globl _bar # @bar
+ .align 4
+_bar:
+ .long 0 # 0x0
+
+
+ .globl _foo_alias
+_foo_alias = _foo
+ .globl _bar_alias
+_bar_alias = _bar
+
+// CHECK: Name = {{_?}}foo
+// CHECK-NEXT: Value = [[FOO_VALUE:.*$]]
+// CHECK-NEXT: SectionNumber = [[FOO_SECTION_NUMBER:.*$]]
+// CHECK-NEXT: SimpleType = [[FOO_SIMPLE_TYPE:.*$]]
+// CHECK-NEXT: ComplexType = [[FOO_COMPLEX_TYPE:.*$]]
+// CHECK-NEXT: StorageClass = [[FOO_STORAGE_CLASS:.*$]]
+// CHECK-NEXT: NumberOfAuxSymbols = [[FOO_NUMBER_OF_AUX_SYMBOLS:.*$]]
+
+// CHECK: Name = {{_?}}bar
+// CHECK-NEXT: Value = [[BAR_VALUE:.*$]]
+// CHECK-NEXT: SectionNumber = [[BAR_SECTION_NUMBER:.*$]]
+// CHECK-NEXT: SimpleType = [[BAR_SIMPLE_TYPE:.*$]]
+// CHECK-NEXT: ComplexType = [[BAR_COMPLEX_TYPE:.*$]]
+// CHECK-NEXT: StorageClass = [[BAR_STORAGE_CLASS:.*$]]
+// CHECK-NEXT: NumberOfAuxSymbols = [[BAR_NUMBER_OF_AUX_SYMBOLS:.*$]]
+
+// CHECK: Name = {{_?}}foo_alias
+// CHECK-NEXT: Value = [[FOO_VALUE]]
+// CHECK-NEXT: SectionNumber = [[FOO_SECTION_NUMBER]]
+// CHECK-NEXT: SimpleType = [[FOO_SIMPLE_TYPE]]
+// CHECK-NEXT: ComplexType = [[FOO_COMPLEX_TYPE]]
+// CHECK-NEXT: StorageClass = [[FOO_STORAGE_CLASS]]
+// CHECK-NEXT: NumberOfAuxSymbols = [[FOO_NUMBER_OF_AUX_SYMBOLS]]
+
+// CHECK: Name = {{_?}}bar_alias
+// CHECK-NEXT: Value = [[BAR_VALUE]]
+// CHECK-NEXT: SectionNumber = [[BAR_SECTION_NUMBER]]
+// CHECK-NEXT: SimpleType = [[BAR_SIMPLE_TYPE]]
+// CHECK-NEXT: ComplexType = [[BAR_COMPLEX_TYPE]]
+// CHECK-NEXT: StorageClass = [[BAR_STORAGE_CLASS]]
+// CHECK-NEXT: NumberOfAuxSymbols = [[BAR_NUMBER_OF_AUX_SYMBOLS]]
+
-// The purpose of this test is to see if the COFF object writer is emitting the\r
-// proper relocations for multiple pieces of data in a single data fragment.\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_.str0, (%esp)\r
- calll _printf\r
- movl $L_.str1, (%esp)\r
- calll _puts\r
- movl $L_.str2, (%esp)\r
- calll _puts\r
- xorl %eax, %eax\r
- addl $4, %esp\r
- ret\r
-\r
- .data\r
-L_.str0: # @.str0\r
- .asciz "Hello "\r
-\r
-L_.str1: # @.str1\r
- .asciz "World!"\r
-\r
- .align 16 # @.str2\r
-L_.str2:\r
- .asciz "I'm The Last Line."\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 = 7\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 = 6\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 07 00 00 00 E8 00 - 00 00 00 C7 04 24 10 00 |.$...........$..|\r
-// CHECK: 00 00 E8 00 00 00 00 31 - C0 83 C4 04 C3 |.......1.....|\r
-// CHECK: Relocations = [\r
-// CHECK: 0 = {\r
-// CHECK: VirtualAddress = 0x6\r
-// CHECK: SymbolTableIndex = 2\r
-// CHECK: Type = IMAGE_REL_I386_DIR32 (6)\r
-// CHECK: SymbolName = .data\r
-// CHECK: }\r
-// CHECK: 1 = {\r
-// CHECK: VirtualAddress = 0xB\r
-// CHECK: SymbolTableIndex = 5\r
-// CHECK: Type = IMAGE_REL_I386_REL32 (20)\r
-// CHECK: SymbolName = _printf\r
-// CHECK: }\r
-// CHECK: 2 = {\r
-// CHECK: VirtualAddress = 0x12\r
-// CHECK: SymbolTableIndex = 2\r
-// CHECK: Type = IMAGE_REL_I386_DIR32 (6)\r
-// CHECK: SymbolName = .data\r
-// CHECK: }\r
-// CHECK: 3 = {\r
-// CHECK: VirtualAddress = 0x17\r
-// CHECK: SymbolTableIndex = 6\r
-// CHECK: Type = IMAGE_REL_I386_REL32 (20)\r
-// CHECK: SymbolName = _puts\r
-// CHECK: }\r
-// CHECK: 4 = {\r
-// CHECK: VirtualAddress = 0x1E\r
-// CHECK: SymbolTableIndex = 2\r
-// CHECK: Type = IMAGE_REL_I386_DIR32 (6)\r
-// CHECK: SymbolName = .data\r
-// CHECK: }\r
-// CHECK: 5 = {\r
-// CHECK: VirtualAddress = 0x23\r
-// CHECK: SymbolTableIndex = 6\r
-// CHECK: Type = IMAGE_REL_I386_REL32 (20)\r
-// CHECK: SymbolName = _puts\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 = 0xC0500040\r
-// CHECK: IMAGE_SCN_CNT_INITIALIZED_DATA\r
-// CHECK: IMAGE_SCN_ALIGN_16BYTES\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 00 00 |Hello .World!...|\r
-// CHECK: 49 27 6D 20 54 68 65 20 - 4C 61 73 74 20 4C 69 6E |I'm The Last Lin|\r
-// CHECK: 65 2E 00 |e..|\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: 2D 00 00 00 06 00 00 00 - 00 00 00 00 01 00 00 00 |-...............|\r
-// CHECK: 00 00 |..|\r
-\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: 23 00 00 00 00 00 00 00 - 00 00 00 00 02 00 00 00 |#...............|\r
-// CHECK: 00 00 |..|\r
-\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
-\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
-\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
+// The purpose of this test is to see if the COFF object writer is emitting the
+// proper relocations for multiple pieces of data in a single data fragment.
+
+// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s | coff-dump.py | FileCheck %s
+// I WOULD RUN, BUT THIS FAILS: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s
+
+.def _main;
+ .scl 2;
+ .type 32;
+ .endef
+ .text
+ .globl _main
+ .align 16, 0x90
+_main: # @main
+# BB#0: # %entry
+ subl $4, %esp
+ movl $L_.str0, (%esp)
+ calll _printf
+ movl $L_.str1, (%esp)
+ calll _puts
+ movl $L_.str2, (%esp)
+ calll _puts
+ xorl %eax, %eax
+ addl $4, %esp
+ ret
+
+ .data
+L_.str0: # @.str0
+ .asciz "Hello "
+
+L_.str1: # @.str1
+ .asciz "World!"
+
+ .align 16 # @.str2
+L_.str2:
+ .asciz "I'm The Last Line."
+
+// CHECK: {
+// CHECK: MachineType = IMAGE_FILE_MACHINE_I386 (0x14C)
+// CHECK: NumberOfSections = 2
+// CHECK: TimeDateStamp = {{[0-9]+}}
+// CHECK: PointerToSymbolTable = 0x{{[0-9A-F]+}}
+// CHECK: NumberOfSymbols = 7
+// CHECK: SizeOfOptionalHeader = 0
+// CHECK: Characteristics = 0x0
+// CHECK: Sections = [
+// CHECK: 1 = {
+// CHECK: Name = .text
+// CHECK: VirtualSize = 0
+// CHECK: VirtualAddress = 0
+// CHECK: SizeOfRawData = {{[0-9]+}}
+// CHECK: PointerToRawData = 0x{{[0-9A-F]+}}
+// CHECK: PointerToRelocations = 0x{{[0-9A-F]+}}
+// CHECK: PointerToLineNumbers = 0x0
+// CHECK: NumberOfRelocations = 6
+// CHECK: NumberOfLineNumbers = 0
+// CHECK: Charateristics = 0x60500020
+// CHECK: IMAGE_SCN_CNT_CODE
+// CHECK: IMAGE_SCN_ALIGN_16BYTES
+// CHECK: IMAGE_SCN_MEM_EXECUTE
+// CHECK: IMAGE_SCN_MEM_READ
+// CHECK: SectionData =
+// CHECK: 83 EC 04 C7 04 24 00 00 - 00 00 E8 00 00 00 00 C7 |.....$..........|
+// CHECK: 04 24 07 00 00 00 E8 00 - 00 00 00 C7 04 24 10 00 |.$...........$..|
+// CHECK: 00 00 E8 00 00 00 00 31 - C0 83 C4 04 C3 |.......1.....|
+// CHECK: Relocations = [
+// CHECK: 0 = {
+// CHECK: VirtualAddress = 0x6
+// CHECK: SymbolTableIndex = 2
+// CHECK: Type = IMAGE_REL_I386_DIR32 (6)
+// CHECK: SymbolName = .data
+// CHECK: }
+// CHECK: 1 = {
+// CHECK: VirtualAddress = 0xB
+// CHECK: SymbolTableIndex = 5
+// CHECK: Type = IMAGE_REL_I386_REL32 (20)
+// CHECK: SymbolName = _printf
+// CHECK: }
+// CHECK: 2 = {
+// CHECK: VirtualAddress = 0x12
+// CHECK: SymbolTableIndex = 2
+// CHECK: Type = IMAGE_REL_I386_DIR32 (6)
+// CHECK: SymbolName = .data
+// CHECK: }
+// CHECK: 3 = {
+// CHECK: VirtualAddress = 0x17
+// CHECK: SymbolTableIndex = 6
+// CHECK: Type = IMAGE_REL_I386_REL32 (20)
+// CHECK: SymbolName = _puts
+// CHECK: }
+// CHECK: 4 = {
+// CHECK: VirtualAddress = 0x1E
+// CHECK: SymbolTableIndex = 2
+// CHECK: Type = IMAGE_REL_I386_DIR32 (6)
+// CHECK: SymbolName = .data
+// CHECK: }
+// CHECK: 5 = {
+// CHECK: VirtualAddress = 0x23
+// CHECK: SymbolTableIndex = 6
+// CHECK: Type = IMAGE_REL_I386_REL32 (20)
+// CHECK: SymbolName = _puts
+// CHECK: }
+// CHECK: ]
+// CHECK: }
+// CHECK: 2 = {
+// CHECK: Name = .data
+// CHECK: VirtualSize = 0
+// CHECK: VirtualAddress = 0
+// CHECK: SizeOfRawData = {{[0-9]+}}
+// CHECK: PointerToRawData = 0x{{[0-9A-F]+}}
+// CHECK: PointerToRelocations = 0x0
+// CHECK: PointerToLineNumbers = 0x0
+// CHECK: NumberOfRelocations = 0
+// CHECK: NumberOfLineNumbers = 0
+// CHECK: Charateristics = 0xC0500040
+// CHECK: IMAGE_SCN_CNT_INITIALIZED_DATA
+// CHECK: IMAGE_SCN_ALIGN_16BYTES
+// CHECK: IMAGE_SCN_MEM_READ
+// CHECK: IMAGE_SCN_MEM_WRITE
+// CHECK: SectionData =
+// CHECK: 48 65 6C 6C 6F 20 00 57 - 6F 72 6C 64 21 00 00 00 |Hello .World!...|
+// CHECK: 49 27 6D 20 54 68 65 20 - 4C 61 73 74 20 4C 69 6E |I'm The Last Lin|
+// CHECK: 65 2E 00 |e..|
+// CHECK: Relocations = None
+// CHECK: }
+// CHECK: ]
+// CHECK: Symbols = [
+// CHECK: 0 = {
+// CHECK: Name = .text
+// CHECK: Value = 0
+// CHECK: SectionNumber = 1
+// CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
+// CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
+// CHECK: StorageClass = IMAGE_SYM_CLASS_STATIC (3)
+// CHECK: NumberOfAuxSymbols = 1
+// CHECK: AuxillaryData =
+// CHECK: 2D 00 00 00 06 00 00 00 - 00 00 00 00 01 00 00 00 |-...............|
+// CHECK: 00 00 |..|
+
+// CHECK: }
+// CHECK: 2 = {
+// CHECK: Name = .data
+// CHECK: Value = 0
+// CHECK: SectionNumber = 2
+// CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
+// CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
+// CHECK: StorageClass = IMAGE_SYM_CLASS_STATIC (3)
+// CHECK: NumberOfAuxSymbols = 1
+// CHECK: AuxillaryData =
+// CHECK: 23 00 00 00 00 00 00 00 - 00 00 00 00 02 00 00 00 |#...............|
+// CHECK: 00 00 |..|
+
+// CHECK: }
+// CHECK: 4 = {
+// CHECK: Name = _main
+// CHECK: Value = 0
+// CHECK: SectionNumber = 1
+// CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
+// CHECK: ComplexType = IMAGE_SYM_DTYPE_FUNCTION (2)
+// CHECK: StorageClass = IMAGE_SYM_CLASS_EXTERNAL (2)
+// CHECK: NumberOfAuxSymbols = 0
+// CHECK: AuxillaryData =
+
+// CHECK: 5 = {
+// CHECK: Name = _printf
+// CHECK: Value = 0
+// CHECK: SectionNumber = 0
+// CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
+// CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
+// CHECK: StorageClass = IMAGE_SYM_CLASS_EXTERNAL (2)
+// CHECK: NumberOfAuxSymbols = 0
+// CHECK: AuxillaryData =
+
+// CHECK: }
+// CHECK: 6 = {
+// CHECK: Name = _puts
+// CHECK: Value = 0
+// CHECK: SectionNumber = 0
+// CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
+// CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
+// CHECK: StorageClass = IMAGE_SYM_CLASS_EXTERNAL (2)
+// CHECK: NumberOfAuxSymbols = 0
+// CHECK: AuxillaryData =
+
+// CHECK: }
+// CHECK: ]
+// CHECK: }
-// This tests that default-null weak symbols (a GNU extension) are created\r
-// properly via the .weak directive.\r
-\r
-// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 < %s | coff-dump.py | FileCheck %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 $_test_weak, %eax\r
- testl %eax, %eax\r
- je LBB0_2\r
-# BB#1: # %if.then\r
- calll _test_weak\r
- movl $1, %eax\r
- addl $4, %esp\r
- ret\r
-LBB0_2: # %return\r
- xorl %eax, %eax\r
- addl $4, %esp\r
- ret\r
-\r
- .weak _test_weak\r
-\r
-// CHECK: Symbols = [\r
-\r
-// CHECK: Name = _test_weak\r
-// CHECK-NEXT: Value = 0\r
-// CHECK-NEXT: SectionNumber = 0\r
-// CHECK-NEXT: SimpleType = IMAGE_SYM_TYPE_NULL (0)\r
-// CHECK-NEXT: ComplexType = IMAGE_SYM_DTYPE_NULL (0)\r
-// CHECK-NEXT: StorageClass = IMAGE_SYM_CLASS_WEAK_EXTERNAL (105)\r
-// CHECK-NEXT: NumberOfAuxSymbols = 1\r
-// CHECK-NEXT: AuxillaryData =\r
-// CHECK-NEXT: 05 00 00 00 02 00 00 00 - 00 00 00 00 00 00 00 00 |................|\r
-// CHECK-NEXT: 00 00 |..|\r
-\r
-// CHECK: Name = .weak._test_weak.default\r
-// CHECK-NEXT: Value = 0\r
-// CHECK-NEXT: SectionNumber = 65535\r
-// CHECK-NEXT: SimpleType = IMAGE_SYM_TYPE_NULL (0)\r
-// CHECK-NEXT: ComplexType = IMAGE_SYM_DTYPE_NULL (0)\r
-// CHECK-NEXT: StorageClass = IMAGE_SYM_CLASS_EXTERNAL (2)\r
-// CHECK-NEXT: NumberOfAuxSymbols = 0\r
-// CHECK-NEXT: AuxillaryData =\r
+// This tests that default-null weak symbols (a GNU extension) are created
+// properly via the .weak directive.
+
+// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 < %s | coff-dump.py | FileCheck %s
+
+ .def _main;
+ .scl 2;
+ .type 32;
+ .endef
+ .text
+ .globl _main
+ .align 16, 0x90
+_main: # @main
+# BB#0: # %entry
+ subl $4, %esp
+ movl $_test_weak, %eax
+ testl %eax, %eax
+ je LBB0_2
+# BB#1: # %if.then
+ calll _test_weak
+ movl $1, %eax
+ addl $4, %esp
+ ret
+LBB0_2: # %return
+ xorl %eax, %eax
+ addl $4, %esp
+ ret
+
+ .weak _test_weak
+
+// CHECK: Symbols = [
+
+// CHECK: Name = _test_weak
+// CHECK-NEXT: Value = 0
+// CHECK-NEXT: SectionNumber = 0
+// CHECK-NEXT: SimpleType = IMAGE_SYM_TYPE_NULL (0)
+// CHECK-NEXT: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
+// CHECK-NEXT: StorageClass = IMAGE_SYM_CLASS_WEAK_EXTERNAL (105)
+// CHECK-NEXT: NumberOfAuxSymbols = 1
+// CHECK-NEXT: AuxillaryData =
+// CHECK-NEXT: 05 00 00 00 02 00 00 00 - 00 00 00 00 00 00 00 00 |................|
+// CHECK-NEXT: 00 00 |..|
+
+// CHECK: Name = .weak._test_weak.default
+// CHECK-NEXT: Value = 0
+// CHECK-NEXT: SectionNumber = 65535
+// CHECK-NEXT: SimpleType = IMAGE_SYM_TYPE_NULL (0)
+// CHECK-NEXT: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
+// CHECK-NEXT: StorageClass = IMAGE_SYM_CLASS_EXTERNAL (2)
+// CHECK-NEXT: NumberOfAuxSymbols = 0
+// CHECK-NEXT: AuxillaryData =