Convert CRLF. NFC.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@353751 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/COFF/crt-dyn-initializer-order.test b/test/COFF/crt-dyn-initializer-order.test
index 963b065..40f2e0c 100644
--- a/test/COFF/crt-dyn-initializer-order.test
+++ b/test/COFF/crt-dyn-initializer-order.test
@@ -1,100 +1,100 @@
-# // a.cpp

-# #include <iostream>

-# #include <vector>

-# 

-# template <int Magic> struct TemplatedObject {

-#   static std::vector<TemplatedObject<Magic> *> Instances;

-#   TemplatedObject() { Instances.push_back(this); }

-# };

-# 

-# using Object = TemplatedObject<0>;

-# template <> std::vector<Object *> Object::Instances{};

-# Object idle{};

-# 

-# int main() {

-#   if (Object::Instances.size() == 0)

-#     std::cout << "It's broken" << std::endl;

-#   else

-#     std::cout << "It works!" << std::endl;

-#   return 0;

-# }

-# // using `clang-cl /c a.cpp | lld-link a.obj` works

-# // using `cl /c a.cpp | lld-link a.obj` fails without lld/COFF/Writer.cpp/Writer::sortSectionChunks()

-

-# RUN: yaml2obj %s > %t.obj

-# RUN: yaml2obj %S/Inputs/crt-dyn-initializer-order_1.yaml > %t1.obj

-# RUN: yaml2obj %S/Inputs/crt-dyn-initializer-order_2.yaml > %t2.obj

-

-# CHECK: Name: .CRT

-# CHECK: Characteristics [

-# CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA

-# CHECK-NEXT: IMAGE_SCN_MEM_READ

-# CHECK-NEXT: ]

-# CHECK-NEXT: SectionData (

-

-# RUN: lld-link /out:%t.dll /entry:__ImageBase /dll %t.obj %t1.obj %t2.obj 

-# RUN: llvm-readobj -sections -section-data %t.dll | FileCheck %s --check-prefixes CHECK,CASE1

-# CASE1-NEXT: 01020304 55701011 1205

-

-# RUN: lld-link /out:%t.dll /entry:__ImageBase /dll %t.obj %t2.obj %t1.obj 

-# RUN: llvm-readobj -sections -section-data %t.dll | FileCheck %s --check-prefixes CHECK,CASE2

-# CASE2-NEXT: 01020304 10111255 7005

-

-# RUN: lld-link /out:%t.dll /entry:__ImageBase /dll %t1.obj %t2.obj %t.obj 

-# RUN: llvm-readobj -sections -section-data %t.dll | FileCheck %s --check-prefixes CHECK,CASE3

-# CASE3-NEXT: 01557010 11120203 0405

-

-# RUN: lld-link /out:%t.dll /entry:__ImageBase /dll %t1.obj %t.obj %t2.obj 

-# RUN: llvm-readobj -sections -section-data %t.dll | FileCheck %s --check-prefixes CHECK,CASE4

-# CASE4-NEXT: 01557002 03041011 1205

-

-# RUN: lld-link /out:%t.dll /entry:__ImageBase /dll %t2.obj %t1.obj %t.obj 

-# RUN: llvm-readobj -sections -section-data %t.dll | FileCheck %s --check-prefixes CHECK,CASE5

-# CASE5-NEXT: 01101112 55700203 0405

-

-# RUN: lld-link /out:%t.dll /entry:__ImageBase /dll %t2.obj %t.obj %t1.obj

-# RUN: llvm-readobj -sections -section-data %t.dll | FileCheck %s --check-prefixes CHECK,CASE6

-# CASE6-NEXT: 01101112 02030455 7005

-

-# CHECK-NEXT: )

-

---- !COFF

-header:

-  Machine:         IMAGE_FILE_MACHINE_AMD64

-  Characteristics: [  ]

-sections:

-  - Name:            '.CRT$XCA'

-    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]

-    Alignment:       1

-    SectionData:     01

-  - Name:            '.CRT$XCU'

-    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]

-    Alignment:       1

-    SectionData:     02

-  - Name:            '.CRT$XCU'

-    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_LNK_COMDAT ]

-    Alignment:       1

-    SectionData:     03

-  - Name:            '.CRT$XCU'

-    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]

-    Alignment:       1

-    SectionData:     04

-  - Name:            '.CRT$XCZ'

-    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]

-    Alignment:       1

-    SectionData:     05

-symbols:

-  - Name:            '.CRT$XCU'

-    Value:           0

-    SectionNumber:   3

-    SimpleType:      IMAGE_SYM_TYPE_NULL

-    ComplexType:     IMAGE_SYM_DTYPE_NULL

-    StorageClass:    IMAGE_SYM_CLASS_STATIC

-    SectionDefinition:

-      Length:          1

-      NumberOfRelocations: 0

-      NumberOfLinenumbers: 0

-      CheckSum:        1

-      Number:          2

-      Selection:       IMAGE_COMDAT_SELECT_ASSOCIATIVE

-...

+# // a.cpp
+# #include <iostream>
+# #include <vector>
+#
+# template <int Magic> struct TemplatedObject {
+#   static std::vector<TemplatedObject<Magic> *> Instances;
+#   TemplatedObject() { Instances.push_back(this); }
+# };
+#
+# using Object = TemplatedObject<0>;
+# template <> std::vector<Object *> Object::Instances{};
+# Object idle{};
+#
+# int main() {
+#   if (Object::Instances.size() == 0)
+#     std::cout << "It's broken" << std::endl;
+#   else
+#     std::cout << "It works!" << std::endl;
+#   return 0;
+# }
+# // using `clang-cl /c a.cpp | lld-link a.obj` works
+# // using `cl /c a.cpp | lld-link a.obj` fails without lld/COFF/Writer.cpp/Writer::sortSectionChunks()
+
+# RUN: yaml2obj %s > %t.obj
+# RUN: yaml2obj %S/Inputs/crt-dyn-initializer-order_1.yaml > %t1.obj
+# RUN: yaml2obj %S/Inputs/crt-dyn-initializer-order_2.yaml > %t2.obj
+
+# CHECK: Name: .CRT
+# CHECK: Characteristics [
+# CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA
+# CHECK-NEXT: IMAGE_SCN_MEM_READ
+# CHECK-NEXT: ]
+# CHECK-NEXT: SectionData (
+
+# RUN: lld-link /out:%t.dll /entry:__ImageBase /dll %t.obj %t1.obj %t2.obj
+# RUN: llvm-readobj -sections -section-data %t.dll | FileCheck %s --check-prefixes CHECK,CASE1
+# CASE1-NEXT: 01020304 55701011 1205
+
+# RUN: lld-link /out:%t.dll /entry:__ImageBase /dll %t.obj %t2.obj %t1.obj
+# RUN: llvm-readobj -sections -section-data %t.dll | FileCheck %s --check-prefixes CHECK,CASE2
+# CASE2-NEXT: 01020304 10111255 7005
+
+# RUN: lld-link /out:%t.dll /entry:__ImageBase /dll %t1.obj %t2.obj %t.obj
+# RUN: llvm-readobj -sections -section-data %t.dll | FileCheck %s --check-prefixes CHECK,CASE3
+# CASE3-NEXT: 01557010 11120203 0405
+
+# RUN: lld-link /out:%t.dll /entry:__ImageBase /dll %t1.obj %t.obj %t2.obj
+# RUN: llvm-readobj -sections -section-data %t.dll | FileCheck %s --check-prefixes CHECK,CASE4
+# CASE4-NEXT: 01557002 03041011 1205
+
+# RUN: lld-link /out:%t.dll /entry:__ImageBase /dll %t2.obj %t1.obj %t.obj
+# RUN: llvm-readobj -sections -section-data %t.dll | FileCheck %s --check-prefixes CHECK,CASE5
+# CASE5-NEXT: 01101112 55700203 0405
+
+# RUN: lld-link /out:%t.dll /entry:__ImageBase /dll %t2.obj %t.obj %t1.obj
+# RUN: llvm-readobj -sections -section-data %t.dll | FileCheck %s --check-prefixes CHECK,CASE6
+# CASE6-NEXT: 01101112 02030455 7005
+
+# CHECK-NEXT: )
+
+--- !COFF
+header:
+  Machine:         IMAGE_FILE_MACHINE_AMD64
+  Characteristics: [  ]
+sections:
+  - Name:            '.CRT$XCA'
+    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
+    Alignment:       1
+    SectionData:     01
+  - Name:            '.CRT$XCU'
+    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
+    Alignment:       1
+    SectionData:     02
+  - Name:            '.CRT$XCU'
+    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_LNK_COMDAT ]
+    Alignment:       1
+    SectionData:     03
+  - Name:            '.CRT$XCU'
+    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
+    Alignment:       1
+    SectionData:     04
+  - Name:            '.CRT$XCZ'
+    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
+    Alignment:       1
+    SectionData:     05
+symbols:
+  - Name:            '.CRT$XCU'
+    Value:           0
+    SectionNumber:   3
+    SimpleType:      IMAGE_SYM_TYPE_NULL
+    ComplexType:     IMAGE_SYM_DTYPE_NULL
+    StorageClass:    IMAGE_SYM_CLASS_STATIC
+    SectionDefinition:
+      Length:          1
+      NumberOfRelocations: 0
+      NumberOfLinenumbers: 0
+      CheckSum:        1
+      Number:          2
+      Selection:       IMAGE_COMDAT_SELECT_ASSOCIATIVE
+...
diff --git a/test/COFF/precomp-link.test b/test/COFF/precomp-link.test
index b60b0b2..7ba747e 100644
--- a/test/COFF/precomp-link.test
+++ b/test/COFF/precomp-link.test
@@ -1,42 +1,42 @@
-RUN: lld-link %S/Inputs/precomp-a.obj %S/Inputs/precomp-b.obj %S/Inputs/precomp.obj /nodefaultlib /entry:main /debug /pdb:%t.pdb /out:%t.exe /opt:ref /opt:icf

-RUN: llvm-pdbutil dump -types %t.pdb | FileCheck %s

-

-RUN: lld-link %S/Inputs/precomp.obj %S/Inputs/precomp-a.obj %S/Inputs/precomp-b.obj /nodefaultlib /entry:main /debug /pdb:%t.pdb /out:%t.exe /opt:ref /opt:icf

-RUN: llvm-pdbutil dump -types %t.pdb | FileCheck %s

-

-RUN: lld-link %S/Inputs/precomp-a.obj %S/Inputs/precomp-invalid.obj %S/Inputs/precomp.obj /nodefaultlib /entry:main /debug /pdb:%t.pdb /out:%t.exe /opt:ref /opt:icf 2>&1 | FileCheck %s -check-prefix FAILURE

-

-RUN: not lld-link %S/Inputs/precomp-a.obj %S/Inputs/precomp-b.obj /nodefaultlib /entry:main /debug /pdb:%t.pdb /out:%t.exe /opt:ref /opt:icf 2>&1 | FileCheck %s -check-prefix FAILURE-MISSING-PRECOMPOBJ

-

-FAILURE: warning: Cannot use debug info for 'precomp-invalid.obj' [LNK4099]

-FAILURE-NEXT: failed to load reference '{{.*}}precomp.obj': The signature does not match; the file(s) might be out of date.

-

-FAILURE-MISSING-PRECOMPOBJ: warning: Cannot use debug info for 'precomp-a.obj' [LNK4099]

-FAILURE-MISSING-PRECOMPOBJ-NEXT: failed to load reference '{{.*}}precomp.obj': The path to this file must be provided on the command-line

-

-CHECK: Types (TPI Stream)

-CHECK-NOT: LF_PRECOMP

-CHECK-NOT: LF_ENDPRECOMP

-

-// precomp.h

-#pragma once

-int Function(char A);

-

-// precomp.cpp

-#include "precomp.h"

-

-// a.cpp

-#include "precomp.h"

-int main(void) {

-  Function('a');

-  return 0;

-}

-

-// b.cpp

-#include "precomp.h"

-int Function(char a) {

-  return (int)a;

-}

-

-// cl.exe precomp.cpp /Z7 /Ycprecomp.h /c

-// cl.exe a.cpp b.cpp /Z7 /Yuprecomp.h /c

+RUN: lld-link %S/Inputs/precomp-a.obj %S/Inputs/precomp-b.obj %S/Inputs/precomp.obj /nodefaultlib /entry:main /debug /pdb:%t.pdb /out:%t.exe /opt:ref /opt:icf
+RUN: llvm-pdbutil dump -types %t.pdb | FileCheck %s
+
+RUN: lld-link %S/Inputs/precomp.obj %S/Inputs/precomp-a.obj %S/Inputs/precomp-b.obj /nodefaultlib /entry:main /debug /pdb:%t.pdb /out:%t.exe /opt:ref /opt:icf
+RUN: llvm-pdbutil dump -types %t.pdb | FileCheck %s
+
+RUN: lld-link %S/Inputs/precomp-a.obj %S/Inputs/precomp-invalid.obj %S/Inputs/precomp.obj /nodefaultlib /entry:main /debug /pdb:%t.pdb /out:%t.exe /opt:ref /opt:icf 2>&1 | FileCheck %s -check-prefix FAILURE
+
+RUN: not lld-link %S/Inputs/precomp-a.obj %S/Inputs/precomp-b.obj /nodefaultlib /entry:main /debug /pdb:%t.pdb /out:%t.exe /opt:ref /opt:icf 2>&1 | FileCheck %s -check-prefix FAILURE-MISSING-PRECOMPOBJ
+
+FAILURE: warning: Cannot use debug info for 'precomp-invalid.obj' [LNK4099]
+FAILURE-NEXT: failed to load reference '{{.*}}precomp.obj': The signature does not match; the file(s) might be out of date.
+
+FAILURE-MISSING-PRECOMPOBJ: warning: Cannot use debug info for 'precomp-a.obj' [LNK4099]
+FAILURE-MISSING-PRECOMPOBJ-NEXT: failed to load reference '{{.*}}precomp.obj': The path to this file must be provided on the command-line
+
+CHECK: Types (TPI Stream)
+CHECK-NOT: LF_PRECOMP
+CHECK-NOT: LF_ENDPRECOMP
+
+// precomp.h
+#pragma once
+int Function(char A);
+
+// precomp.cpp
+#include "precomp.h"
+
+// a.cpp
+#include "precomp.h"
+int main(void) {
+  Function('a');
+  return 0;
+}
+
+// b.cpp
+#include "precomp.h"
+int Function(char a) {
+  return (int)a;
+}
+
+// cl.exe precomp.cpp /Z7 /Ycprecomp.h /c
+// cl.exe a.cpp b.cpp /Z7 /Yuprecomp.h /c
diff --git a/test/COFF/s_udt.s b/test/COFF/s_udt.s
index 8ad342e..900948a 100644
--- a/test/COFF/s_udt.s
+++ b/test/COFF/s_udt.s
@@ -27,450 +27,450 @@
 # CHECK-NEXT: ============================================================
 # CHECK:      {{.*}} | S_GPROC32 [size = 44] `main`
 # CHECK-NEXT:          parent = 0, end = 252, addr = 0001:0000, code size = 52
-# CHECK-NEXT:          type = `0x1002 (int (int, char**))`, debug start = 0, debug end = 0, flags = none

+# CHECK-NEXT:          type = `0x1002 (int (int, char**))`, debug start = 0, debug end = 0, flags = none
 # CHECK-NOT:  {{.*}} | S_END
 # CHECK:      {{.*}} | S_UDT [size = 28] `main::LocalTypedef`
 # CHECK-NEXT:          original type = 0x1004
-# CHECK:      {{.*}} | S_END [size = 4]

-

-# source code to re-generate:

-# clang-cl /Z7 /GS- /GR- /c foo.cpp

-#

-# struct Struct {

-#   int x;

-# };

-# 

-# using IntTypedef = int;

-# using StructTypedef = Struct;

-# Struct S;

-# StructTypedef SS;

-# IntTypedef I;

-# 

-# int main(int argc, char **argv) {

-#   using LocalTypedef = Struct*;

-#   LocalTypedef SPtr;

-#   return I + S.x + SS.x + SPtr->x;

+# CHECK:      {{.*}} | S_END [size = 4]
+
+# source code to re-generate:
+# clang-cl /Z7 /GS- /GR- /c foo.cpp
+#
+# struct Struct {
+#   int x;
+# };
+#
+# using IntTypedef = int;
+# using StructTypedef = Struct;
+# Struct S;
+# StructTypedef SS;
+# IntTypedef I;
+#
+# int main(int argc, char **argv) {
+#   using LocalTypedef = Struct*;
+#   LocalTypedef SPtr;
+#   return I + S.x + SS.x + SPtr->x;
 # }
 
-	.text

-	.def	 @feat.00;

-	.scl	3;

-	.type	0;

-	.endef

-	.globl	@feat.00

-.set @feat.00, 0

-	.intel_syntax noprefix

-	.def	 main;

-	.scl	2;

-	.type	32;

-	.endef

-	.globl	main                    # -- Begin function main

-	.p2align	4, 0x90

-main:                                   # @main

-.Lfunc_begin0:

-	.cv_func_id 0

-	.cv_file	1 "D:\\src\\llvmbuild\\cl\\Debug\\x64\\foo.cpp" "2B62298EE3EEF94E1D81FDFE18BD46A6" 1

-	.cv_loc	0 1 12 0                # foo.cpp:12:0

-.seh_proc main

-# %bb.0:                                # %entry

-	sub	rsp, 32

-	.seh_stackalloc 32

-	.seh_endprologue

-	mov	dword ptr [rsp + 28], 0

-	mov	qword ptr [rsp + 16], rdx

-	mov	dword ptr [rsp + 12], ecx

-.Ltmp0:

-	.cv_loc	0 1 15 0                # foo.cpp:15:0

-	mov	ecx, dword ptr [rip + "?I@@3HA"]

-	add	ecx, dword ptr [rip + "?S@@3UStruct@@A"]

-	add	ecx, dword ptr [rip + "?SS@@3UStruct@@A"]

-	mov	rdx, qword ptr [rsp]

-	add	ecx, dword ptr [rdx]

-	mov	eax, ecx

-	add	rsp, 32

-	ret

-.Ltmp1:

-.Lfunc_end0:

-	.seh_handlerdata

-	.text

-	.seh_endproc

-                                        # -- End function

-	.bss

-	.globl	"?S@@3UStruct@@A"       # @"?S@@3UStruct@@A"

-	.p2align	2

-"?S@@3UStruct@@A":

-	.zero	4

-

-	.globl	"?SS@@3UStruct@@A"      # @"?SS@@3UStruct@@A"

-	.p2align	2

-"?SS@@3UStruct@@A":

-	.zero	4

-

-	.globl	"?I@@3HA"               # @"?I@@3HA"

-	.p2align	2

-"?I@@3HA":

-	.long	0                       # 0x0

-

-	.section	.drectve,"yn"

-	.ascii	" /DEFAULTLIB:libcmt.lib"

-	.ascii	" /DEFAULTLIB:oldnames.lib"

-	.section	.debug$S,"dr"

-	.p2align	2

-	.long	4                       # Debug section magic

-	.long	241

-	.long	.Ltmp3-.Ltmp2           # Subsection size

-.Ltmp2:

-	.short	.Ltmp5-.Ltmp4           # Record length

-.Ltmp4:

-	.short	4412                    # Record kind: S_COMPILE3

-	.long	1                       # Flags and language

-	.short	208                     # CPUType

-	.short	8                       # Frontend version

-	.short	0

-	.short	0

-	.short	0

-	.short	8000                    # Backend version

-	.short	0

-	.short	0

-	.short	0

-	.asciz	"clang version 8.0.0 "  # Null-terminated compiler version string

-.Ltmp5:

-.Ltmp3:

-	.p2align	2

-	.long	241                     # Symbol subsection for main

-	.long	.Ltmp7-.Ltmp6           # Subsection size

-.Ltmp6:

-	.short	.Ltmp9-.Ltmp8           # Record length

-.Ltmp8:

-	.short	4423                    # Record kind: S_GPROC32_ID

-	.long	0                       # PtrParent

-	.long	0                       # PtrEnd

-	.long	0                       # PtrNext

-	.long	.Lfunc_end0-main        # Code size

-	.long	0                       # Offset after prologue

-	.long	0                       # Offset before epilogue

-	.long	4099                    # Function type index

-	.secrel32	main            # Function section relative address

-	.secidx	main                    # Function section index

-	.byte	0                       # Flags

-	.asciz	"main"                  # Function name

-.Ltmp9:

-	.short	.Ltmp11-.Ltmp10         # Record length

-.Ltmp10:

-	.short	4114                    # Record kind: S_FRAMEPROC

-	.long	32                      # FrameSize

-	.long	0                       # Padding

-	.long	0                       # Offset of padding

-	.long	0                       # Bytes of callee saved registers

-	.long	0                       # Exception handler offset

-	.short	0                       # Exception handler section

-	.long	81920                   # Flags (defines frame register)

-.Ltmp11:

-	.short	.Ltmp13-.Ltmp12         # Record length

-.Ltmp12:

-	.short	4414                    # Record kind: S_LOCAL

-	.long	116                     # TypeIndex

-	.short	1                       # Flags

-	.asciz	"argc"

-.Ltmp13:

-	.cv_def_range	 .Ltmp0 .Ltmp1, "B\021\f\000\000\000"

-	.short	.Ltmp15-.Ltmp14         # Record length

-.Ltmp14:

-	.short	4414                    # Record kind: S_LOCAL

-	.long	4096                    # TypeIndex

-	.short	1                       # Flags

-	.asciz	"argv"

-.Ltmp15:

-	.cv_def_range	 .Ltmp0 .Ltmp1, "B\021\020\000\000\000"

-	.short	.Ltmp17-.Ltmp16         # Record length

-.Ltmp16:

-	.short	4414                    # Record kind: S_LOCAL

-	.long	4101                    # TypeIndex

-	.short	0                       # Flags

-	.asciz	"SPtr"

-.Ltmp17:

-	.cv_def_range	 .Ltmp0 .Ltmp1, "B\021\000\000\000\000"

-	.short	.Ltmp19-.Ltmp18         # Record length

-.Ltmp18:

-	.short	4360                    # Record kind: S_UDT

-	.long	4101                    # Type

-	.asciz	"main::LocalTypedef"

-.Ltmp19:

-	.short	2                       # Record length

-	.short	4431                    # Record kind: S_PROC_ID_END

-.Ltmp7:

-	.p2align	2

-	.cv_linetable	0, main, .Lfunc_end0

-	.long	241                     # Symbol subsection for globals

-	.long	.Ltmp21-.Ltmp20         # Subsection size

-.Ltmp20:

-	.short	.Ltmp23-.Ltmp22         # Record length

-.Ltmp22:

-	.short	4365                    # Record kind: S_GDATA32

-	.long	4103                    # Type

-	.secrel32	"?S@@3UStruct@@A" # DataOffset

-	.secidx	"?S@@3UStruct@@A"       # Segment

-	.asciz	"S"                     # Name

-.Ltmp23:

-	.short	.Ltmp25-.Ltmp24         # Record length

-.Ltmp24:

-	.short	4365                    # Record kind: S_GDATA32

-	.long	4100                    # Type

-	.secrel32	"?SS@@3UStruct@@A" # DataOffset

-	.secidx	"?SS@@3UStruct@@A"      # Segment

-	.asciz	"SS"                    # Name

-.Ltmp25:

-	.short	.Ltmp27-.Ltmp26         # Record length

-.Ltmp26:

-	.short	4365                    # Record kind: S_GDATA32

-	.long	116                     # Type

-	.secrel32	"?I@@3HA"       # DataOffset

-	.secidx	"?I@@3HA"               # Segment

-	.asciz	"I"                     # Name

-.Ltmp27:

-.Ltmp21:

-	.p2align	2

-	.long	241

-	.long	.Ltmp29-.Ltmp28         # Subsection size

-.Ltmp28:

-	.short	.Ltmp31-.Ltmp30         # Record length

-.Ltmp30:

-	.short	4360                    # Record kind: S_UDT

-	.long	4103                    # Type

-	.asciz	"Struct"

-.Ltmp31:

-	.short	.Ltmp33-.Ltmp32         # Record length

-.Ltmp32:

-	.short	4360                    # Record kind: S_UDT

-	.long	4100                    # Type

-	.asciz	"StructTypedef"

-.Ltmp33:

-	.short	.Ltmp35-.Ltmp34         # Record length

-.Ltmp34:

-	.short	4360                    # Record kind: S_UDT

-	.long	116                     # Type

-	.asciz	"IntTypedef"

-.Ltmp35:

-.Ltmp29:

-	.p2align	2

-	.cv_filechecksums               # File index to string table offset subsection

-	.cv_stringtable                 # String table

-	.long	241

-	.long	.Ltmp37-.Ltmp36         # Subsection size

-.Ltmp36:

-	.short	6                       # Record length

-	.short	4428                    # Record kind: S_BUILDINFO

-	.long	4108                    # LF_BUILDINFO index

-.Ltmp37:

-	.p2align	2

-	.section	.debug$T,"dr"

-	.p2align	2

-	.long	4                       # Debug section magic

-	# Pointer (0x1000) {

-	#   TypeLeafKind: LF_POINTER (0x1002)

-	#   PointeeType: char* (0x670)

-	#   PtrType: Near64 (0xC)

-	#   PtrMode: Pointer (0x0)

-	#   IsFlat: 0

-	#   IsConst: 0

-	#   IsVolatile: 0

-	#   IsUnaligned: 0

-	#   IsRestrict: 0

-	#   IsThisPtr&: 0

-	#   IsThisPtr&&: 0

-	#   SizeOf: 8

-	# }

-	.byte	0x0a, 0x00, 0x02, 0x10

-	.byte	0x70, 0x06, 0x00, 0x00

-	.byte	0x0c, 0x00, 0x01, 0x00

-	# ArgList (0x1001) {

-	#   TypeLeafKind: LF_ARGLIST (0x1201)

-	#   NumArgs: 2

-	#   Arguments [

-	#     ArgType: int (0x74)

-	#     ArgType: char** (0x1000)

-	#   ]

-	# }

-	.byte	0x0e, 0x00, 0x01, 0x12

-	.byte	0x02, 0x00, 0x00, 0x00

-	.byte	0x74, 0x00, 0x00, 0x00

-	.byte	0x00, 0x10, 0x00, 0x00

-	# Procedure (0x1002) {

-	#   TypeLeafKind: LF_PROCEDURE (0x1008)

-	#   ReturnType: int (0x74)

-	#   CallingConvention: NearC (0x0)

-	#   FunctionOptions [ (0x0)

-	#   ]

-	#   NumParameters: 2

-	#   ArgListType: (int, char**) (0x1001)

-	# }

-	.byte	0x0e, 0x00, 0x08, 0x10

-	.byte	0x74, 0x00, 0x00, 0x00

-	.byte	0x00, 0x00, 0x02, 0x00

-	.byte	0x01, 0x10, 0x00, 0x00

-	# FuncId (0x1003) {

-	#   TypeLeafKind: LF_FUNC_ID (0x1601)

-	#   ParentScope: 0x0

-	#   FunctionType: int (int, char**) (0x1002)

-	#   Name: main

-	# }

-	.byte	0x12, 0x00, 0x01, 0x16

-	.byte	0x00, 0x00, 0x00, 0x00

-	.byte	0x02, 0x10, 0x00, 0x00

-	.byte	0x6d, 0x61, 0x69, 0x6e

-	.byte	0x00, 0xf3, 0xf2, 0xf1

-	# Struct (0x1004) {

-	#   TypeLeafKind: LF_STRUCTURE (0x1505)

-	#   MemberCount: 0

-	#   Properties [ (0x280)

-	#     ForwardReference (0x80)

-	#     HasUniqueName (0x200)

-	#   ]

-	#   FieldList: 0x0

-	#   DerivedFrom: 0x0

-	#   VShape: 0x0

-	#   SizeOf: 0

-	#   Name: Struct

-	#   LinkageName: .?AUStruct@@

-	# }

-	.byte	0x2a, 0x00, 0x05, 0x15

-	.byte	0x00, 0x00, 0x80, 0x02

-	.byte	0x00, 0x00, 0x00, 0x00

-	.byte	0x00, 0x00, 0x00, 0x00

-	.byte	0x00, 0x00, 0x00, 0x00

-	.byte	0x00, 0x00, 0x53, 0x74

-	.byte	0x72, 0x75, 0x63, 0x74

-	.byte	0x00, 0x2e, 0x3f, 0x41

-	.byte	0x55, 0x53, 0x74, 0x72

-	.byte	0x75, 0x63, 0x74, 0x40

-	.byte	0x40, 0x00, 0xf2, 0xf1

-	# Pointer (0x1005) {

-	#   TypeLeafKind: LF_POINTER (0x1002)

-	#   PointeeType: Struct (0x1004)

-	#   PtrType: Near64 (0xC)

-	#   PtrMode: Pointer (0x0)

-	#   IsFlat: 0

-	#   IsConst: 0

-	#   IsVolatile: 0

-	#   IsUnaligned: 0

-	#   IsRestrict: 0

-	#   IsThisPtr&: 0

-	#   IsThisPtr&&: 0

-	#   SizeOf: 8

-	# }

-	.byte	0x0a, 0x00, 0x02, 0x10

-	.byte	0x04, 0x10, 0x00, 0x00

-	.byte	0x0c, 0x00, 0x01, 0x00

-	# FieldList (0x1006) {

-	#   TypeLeafKind: LF_FIELDLIST (0x1203)

-	#   DataMember {

-	#     TypeLeafKind: LF_MEMBER (0x150D)

-	#     AccessSpecifier: Public (0x3)

-	#     Type: int (0x74)

-	#     FieldOffset: 0x0

-	#     Name: x

-	#   }

-	# }

-	.byte	0x0e, 0x00, 0x03, 0x12

-	.byte	0x0d, 0x15, 0x03, 0x00

-	.byte	0x74, 0x00, 0x00, 0x00

-	.byte	0x00, 0x00, 0x78, 0x00

-	# Struct (0x1007) {

-	#   TypeLeafKind: LF_STRUCTURE (0x1505)

-	#   MemberCount: 1

-	#   Properties [ (0x200)

-	#     HasUniqueName (0x200)

-	#   ]

-	#   FieldList: <field list> (0x1006)

-	#   DerivedFrom: 0x0

-	#   VShape: 0x0

-	#   SizeOf: 4

-	#   Name: Struct

-	#   LinkageName: .?AUStruct@@

-	# }

-	.byte	0x2a, 0x00, 0x05, 0x15

-	.byte	0x01, 0x00, 0x00, 0x02

-	.byte	0x06, 0x10, 0x00, 0x00

-	.byte	0x00, 0x00, 0x00, 0x00

-	.byte	0x00, 0x00, 0x00, 0x00

-	.byte	0x04, 0x00, 0x53, 0x74

-	.byte	0x72, 0x75, 0x63, 0x74

-	.byte	0x00, 0x2e, 0x3f, 0x41

-	.byte	0x55, 0x53, 0x74, 0x72

-	.byte	0x75, 0x63, 0x74, 0x40

-	.byte	0x40, 0x00, 0xf2, 0xf1

-	# StringId (0x1008) {

-	#   TypeLeafKind: LF_STRING_ID (0x1605)

-	#   Id: 0x0

-	#   StringData: D:\src\llvmbuild\cl\Debug\x64\foo.cpp

-	# }

-	.byte	0x2e, 0x00, 0x05, 0x16

-	.byte	0x00, 0x00, 0x00, 0x00

-	.byte	0x44, 0x3a, 0x5c, 0x73

-	.byte	0x72, 0x63, 0x5c, 0x6c

-	.byte	0x6c, 0x76, 0x6d, 0x62

-	.byte	0x75, 0x69, 0x6c, 0x64

-	.byte	0x5c, 0x63, 0x6c, 0x5c

-	.byte	0x44, 0x65, 0x62, 0x75

-	.byte	0x67, 0x5c, 0x78, 0x36

-	.byte	0x34, 0x5c, 0x66, 0x6f

-	.byte	0x6f, 0x2e, 0x63, 0x70

-	.byte	0x70, 0x00, 0xf2, 0xf1

-	# UdtSourceLine (0x1009) {

-	#   TypeLeafKind: LF_UDT_SRC_LINE (0x1606)

-	#   UDT: Struct (0x1007)

-	#   SourceFile: D:\src\llvmbuild\cl\Debug\x64\foo.cpp (0x1008)

-	#   LineNumber: 1

-	# }

-	.byte	0x0e, 0x00, 0x06, 0x16

-	.byte	0x07, 0x10, 0x00, 0x00

-	.byte	0x08, 0x10, 0x00, 0x00

-	.byte	0x01, 0x00, 0x00, 0x00

-	# StringId (0x100A) {

-	#   TypeLeafKind: LF_STRING_ID (0x1605)

-	#   Id: 0x0

-	#   StringData: D:\\src\\llvmbuild\\cl\\Debug\\x64

-	# }

-	.byte	0x2a, 0x00, 0x05, 0x16

-	.byte	0x00, 0x00, 0x00, 0x00

-	.byte	0x44, 0x3a, 0x5c, 0x5c

-	.byte	0x73, 0x72, 0x63, 0x5c

-	.byte	0x5c, 0x6c, 0x6c, 0x76

-	.byte	0x6d, 0x62, 0x75, 0x69

-	.byte	0x6c, 0x64, 0x5c, 0x5c

-	.byte	0x63, 0x6c, 0x5c, 0x5c

-	.byte	0x44, 0x65, 0x62, 0x75

-	.byte	0x67, 0x5c, 0x5c, 0x78

-	.byte	0x36, 0x34, 0x00, 0xf1

-	# StringId (0x100B) {

-	#   TypeLeafKind: LF_STRING_ID (0x1605)

-	#   Id: 0x0

-	#   StringData: foo.cpp

-	# }

-	.byte	0x0e, 0x00, 0x05, 0x16

-	.byte	0x00, 0x00, 0x00, 0x00

-	.byte	0x66, 0x6f, 0x6f, 0x2e

-	.byte	0x63, 0x70, 0x70, 0x00

-	# BuildInfo (0x100C) {

-	#   TypeLeafKind: LF_BUILDINFO (0x1603)

-	#   NumArgs: 5

-	#   Arguments [

-	#     ArgType: D:\\src\\llvmbuild\\cl\\Debug\\x64 (0x100A)

-	#     ArgType: 0x0

-	#     ArgType: foo.cpp (0x100B)

-	#     ArgType: 0x0

-	#     ArgType: 0x0

-	#   ]

-	# }

-	.byte	0x1a, 0x00, 0x03, 0x16

-	.byte	0x05, 0x00, 0x0a, 0x10

-	.byte	0x00, 0x00, 0x00, 0x00

-	.byte	0x00, 0x00, 0x0b, 0x10

-	.byte	0x00, 0x00, 0x00, 0x00

-	.byte	0x00, 0x00, 0x00, 0x00

-	.byte	0x00, 0x00, 0xf2, 0xf1

-

-	.addrsig

-	.addrsig_sym "?S@@3UStruct@@A"

-	.addrsig_sym "?SS@@3UStruct@@A"

-	.addrsig_sym "?I@@3HA"

+	.text
+	.def	 @feat.00;
+	.scl	3;
+	.type	0;
+	.endef
+	.globl	@feat.00
+.set @feat.00, 0
+	.intel_syntax noprefix
+	.def	 main;
+	.scl	2;
+	.type	32;
+	.endef
+	.globl	main                    # -- Begin function main
+	.p2align	4, 0x90
+main:                                   # @main
+.Lfunc_begin0:
+	.cv_func_id 0
+	.cv_file	1 "D:\\src\\llvmbuild\\cl\\Debug\\x64\\foo.cpp" "2B62298EE3EEF94E1D81FDFE18BD46A6" 1
+	.cv_loc	0 1 12 0                # foo.cpp:12:0
+.seh_proc main
+# %bb.0:                                # %entry
+	sub	rsp, 32
+	.seh_stackalloc 32
+	.seh_endprologue
+	mov	dword ptr [rsp + 28], 0
+	mov	qword ptr [rsp + 16], rdx
+	mov	dword ptr [rsp + 12], ecx
+.Ltmp0:
+	.cv_loc	0 1 15 0                # foo.cpp:15:0
+	mov	ecx, dword ptr [rip + "?I@@3HA"]
+	add	ecx, dword ptr [rip + "?S@@3UStruct@@A"]
+	add	ecx, dword ptr [rip + "?SS@@3UStruct@@A"]
+	mov	rdx, qword ptr [rsp]
+	add	ecx, dword ptr [rdx]
+	mov	eax, ecx
+	add	rsp, 32
+	ret
+.Ltmp1:
+.Lfunc_end0:
+	.seh_handlerdata
+	.text
+	.seh_endproc
+                                        # -- End function
+	.bss
+	.globl	"?S@@3UStruct@@A"       # @"?S@@3UStruct@@A"
+	.p2align	2
+"?S@@3UStruct@@A":
+	.zero	4
+
+	.globl	"?SS@@3UStruct@@A"      # @"?SS@@3UStruct@@A"
+	.p2align	2
+"?SS@@3UStruct@@A":
+	.zero	4
+
+	.globl	"?I@@3HA"               # @"?I@@3HA"
+	.p2align	2
+"?I@@3HA":
+	.long	0                       # 0x0
+
+	.section	.drectve,"yn"
+	.ascii	" /DEFAULTLIB:libcmt.lib"
+	.ascii	" /DEFAULTLIB:oldnames.lib"
+	.section	.debug$S,"dr"
+	.p2align	2
+	.long	4                       # Debug section magic
+	.long	241
+	.long	.Ltmp3-.Ltmp2           # Subsection size
+.Ltmp2:
+	.short	.Ltmp5-.Ltmp4           # Record length
+.Ltmp4:
+	.short	4412                    # Record kind: S_COMPILE3
+	.long	1                       # Flags and language
+	.short	208                     # CPUType
+	.short	8                       # Frontend version
+	.short	0
+	.short	0
+	.short	0
+	.short	8000                    # Backend version
+	.short	0
+	.short	0
+	.short	0
+	.asciz	"clang version 8.0.0 "  # Null-terminated compiler version string
+.Ltmp5:
+.Ltmp3:
+	.p2align	2
+	.long	241                     # Symbol subsection for main
+	.long	.Ltmp7-.Ltmp6           # Subsection size
+.Ltmp6:
+	.short	.Ltmp9-.Ltmp8           # Record length
+.Ltmp8:
+	.short	4423                    # Record kind: S_GPROC32_ID
+	.long	0                       # PtrParent
+	.long	0                       # PtrEnd
+	.long	0                       # PtrNext
+	.long	.Lfunc_end0-main        # Code size
+	.long	0                       # Offset after prologue
+	.long	0                       # Offset before epilogue
+	.long	4099                    # Function type index
+	.secrel32	main            # Function section relative address
+	.secidx	main                    # Function section index
+	.byte	0                       # Flags
+	.asciz	"main"                  # Function name
+.Ltmp9:
+	.short	.Ltmp11-.Ltmp10         # Record length
+.Ltmp10:
+	.short	4114                    # Record kind: S_FRAMEPROC
+	.long	32                      # FrameSize
+	.long	0                       # Padding
+	.long	0                       # Offset of padding
+	.long	0                       # Bytes of callee saved registers
+	.long	0                       # Exception handler offset
+	.short	0                       # Exception handler section
+	.long	81920                   # Flags (defines frame register)
+.Ltmp11:
+	.short	.Ltmp13-.Ltmp12         # Record length
+.Ltmp12:
+	.short	4414                    # Record kind: S_LOCAL
+	.long	116                     # TypeIndex
+	.short	1                       # Flags
+	.asciz	"argc"
+.Ltmp13:
+	.cv_def_range	 .Ltmp0 .Ltmp1, "B\021\f\000\000\000"
+	.short	.Ltmp15-.Ltmp14         # Record length
+.Ltmp14:
+	.short	4414                    # Record kind: S_LOCAL
+	.long	4096                    # TypeIndex
+	.short	1                       # Flags
+	.asciz	"argv"
+.Ltmp15:
+	.cv_def_range	 .Ltmp0 .Ltmp1, "B\021\020\000\000\000"
+	.short	.Ltmp17-.Ltmp16         # Record length
+.Ltmp16:
+	.short	4414                    # Record kind: S_LOCAL
+	.long	4101                    # TypeIndex
+	.short	0                       # Flags
+	.asciz	"SPtr"
+.Ltmp17:
+	.cv_def_range	 .Ltmp0 .Ltmp1, "B\021\000\000\000\000"
+	.short	.Ltmp19-.Ltmp18         # Record length
+.Ltmp18:
+	.short	4360                    # Record kind: S_UDT
+	.long	4101                    # Type
+	.asciz	"main::LocalTypedef"
+.Ltmp19:
+	.short	2                       # Record length
+	.short	4431                    # Record kind: S_PROC_ID_END
+.Ltmp7:
+	.p2align	2
+	.cv_linetable	0, main, .Lfunc_end0
+	.long	241                     # Symbol subsection for globals
+	.long	.Ltmp21-.Ltmp20         # Subsection size
+.Ltmp20:
+	.short	.Ltmp23-.Ltmp22         # Record length
+.Ltmp22:
+	.short	4365                    # Record kind: S_GDATA32
+	.long	4103                    # Type
+	.secrel32	"?S@@3UStruct@@A" # DataOffset
+	.secidx	"?S@@3UStruct@@A"       # Segment
+	.asciz	"S"                     # Name
+.Ltmp23:
+	.short	.Ltmp25-.Ltmp24         # Record length
+.Ltmp24:
+	.short	4365                    # Record kind: S_GDATA32
+	.long	4100                    # Type
+	.secrel32	"?SS@@3UStruct@@A" # DataOffset
+	.secidx	"?SS@@3UStruct@@A"      # Segment
+	.asciz	"SS"                    # Name
+.Ltmp25:
+	.short	.Ltmp27-.Ltmp26         # Record length
+.Ltmp26:
+	.short	4365                    # Record kind: S_GDATA32
+	.long	116                     # Type
+	.secrel32	"?I@@3HA"       # DataOffset
+	.secidx	"?I@@3HA"               # Segment
+	.asciz	"I"                     # Name
+.Ltmp27:
+.Ltmp21:
+	.p2align	2
+	.long	241
+	.long	.Ltmp29-.Ltmp28         # Subsection size
+.Ltmp28:
+	.short	.Ltmp31-.Ltmp30         # Record length
+.Ltmp30:
+	.short	4360                    # Record kind: S_UDT
+	.long	4103                    # Type
+	.asciz	"Struct"
+.Ltmp31:
+	.short	.Ltmp33-.Ltmp32         # Record length
+.Ltmp32:
+	.short	4360                    # Record kind: S_UDT
+	.long	4100                    # Type
+	.asciz	"StructTypedef"
+.Ltmp33:
+	.short	.Ltmp35-.Ltmp34         # Record length
+.Ltmp34:
+	.short	4360                    # Record kind: S_UDT
+	.long	116                     # Type
+	.asciz	"IntTypedef"
+.Ltmp35:
+.Ltmp29:
+	.p2align	2
+	.cv_filechecksums               # File index to string table offset subsection
+	.cv_stringtable                 # String table
+	.long	241
+	.long	.Ltmp37-.Ltmp36         # Subsection size
+.Ltmp36:
+	.short	6                       # Record length
+	.short	4428                    # Record kind: S_BUILDINFO
+	.long	4108                    # LF_BUILDINFO index
+.Ltmp37:
+	.p2align	2
+	.section	.debug$T,"dr"
+	.p2align	2
+	.long	4                       # Debug section magic
+	# Pointer (0x1000) {
+	#   TypeLeafKind: LF_POINTER (0x1002)
+	#   PointeeType: char* (0x670)
+	#   PtrType: Near64 (0xC)
+	#   PtrMode: Pointer (0x0)
+	#   IsFlat: 0
+	#   IsConst: 0
+	#   IsVolatile: 0
+	#   IsUnaligned: 0
+	#   IsRestrict: 0
+	#   IsThisPtr&: 0
+	#   IsThisPtr&&: 0
+	#   SizeOf: 8
+	# }
+	.byte	0x0a, 0x00, 0x02, 0x10
+	.byte	0x70, 0x06, 0x00, 0x00
+	.byte	0x0c, 0x00, 0x01, 0x00
+	# ArgList (0x1001) {
+	#   TypeLeafKind: LF_ARGLIST (0x1201)
+	#   NumArgs: 2
+	#   Arguments [
+	#     ArgType: int (0x74)
+	#     ArgType: char** (0x1000)
+	#   ]
+	# }
+	.byte	0x0e, 0x00, 0x01, 0x12
+	.byte	0x02, 0x00, 0x00, 0x00
+	.byte	0x74, 0x00, 0x00, 0x00
+	.byte	0x00, 0x10, 0x00, 0x00
+	# Procedure (0x1002) {
+	#   TypeLeafKind: LF_PROCEDURE (0x1008)
+	#   ReturnType: int (0x74)
+	#   CallingConvention: NearC (0x0)
+	#   FunctionOptions [ (0x0)
+	#   ]
+	#   NumParameters: 2
+	#   ArgListType: (int, char**) (0x1001)
+	# }
+	.byte	0x0e, 0x00, 0x08, 0x10
+	.byte	0x74, 0x00, 0x00, 0x00
+	.byte	0x00, 0x00, 0x02, 0x00
+	.byte	0x01, 0x10, 0x00, 0x00
+	# FuncId (0x1003) {
+	#   TypeLeafKind: LF_FUNC_ID (0x1601)
+	#   ParentScope: 0x0
+	#   FunctionType: int (int, char**) (0x1002)
+	#   Name: main
+	# }
+	.byte	0x12, 0x00, 0x01, 0x16
+	.byte	0x00, 0x00, 0x00, 0x00
+	.byte	0x02, 0x10, 0x00, 0x00
+	.byte	0x6d, 0x61, 0x69, 0x6e
+	.byte	0x00, 0xf3, 0xf2, 0xf1
+	# Struct (0x1004) {
+	#   TypeLeafKind: LF_STRUCTURE (0x1505)
+	#   MemberCount: 0
+	#   Properties [ (0x280)
+	#     ForwardReference (0x80)
+	#     HasUniqueName (0x200)
+	#   ]
+	#   FieldList: 0x0
+	#   DerivedFrom: 0x0
+	#   VShape: 0x0
+	#   SizeOf: 0
+	#   Name: Struct
+	#   LinkageName: .?AUStruct@@
+	# }
+	.byte	0x2a, 0x00, 0x05, 0x15
+	.byte	0x00, 0x00, 0x80, 0x02
+	.byte	0x00, 0x00, 0x00, 0x00
+	.byte	0x00, 0x00, 0x00, 0x00
+	.byte	0x00, 0x00, 0x00, 0x00
+	.byte	0x00, 0x00, 0x53, 0x74
+	.byte	0x72, 0x75, 0x63, 0x74
+	.byte	0x00, 0x2e, 0x3f, 0x41
+	.byte	0x55, 0x53, 0x74, 0x72
+	.byte	0x75, 0x63, 0x74, 0x40
+	.byte	0x40, 0x00, 0xf2, 0xf1
+	# Pointer (0x1005) {
+	#   TypeLeafKind: LF_POINTER (0x1002)
+	#   PointeeType: Struct (0x1004)
+	#   PtrType: Near64 (0xC)
+	#   PtrMode: Pointer (0x0)
+	#   IsFlat: 0
+	#   IsConst: 0
+	#   IsVolatile: 0
+	#   IsUnaligned: 0
+	#   IsRestrict: 0
+	#   IsThisPtr&: 0
+	#   IsThisPtr&&: 0
+	#   SizeOf: 8
+	# }
+	.byte	0x0a, 0x00, 0x02, 0x10
+	.byte	0x04, 0x10, 0x00, 0x00
+	.byte	0x0c, 0x00, 0x01, 0x00
+	# FieldList (0x1006) {
+	#   TypeLeafKind: LF_FIELDLIST (0x1203)
+	#   DataMember {
+	#     TypeLeafKind: LF_MEMBER (0x150D)
+	#     AccessSpecifier: Public (0x3)
+	#     Type: int (0x74)
+	#     FieldOffset: 0x0
+	#     Name: x
+	#   }
+	# }
+	.byte	0x0e, 0x00, 0x03, 0x12
+	.byte	0x0d, 0x15, 0x03, 0x00
+	.byte	0x74, 0x00, 0x00, 0x00
+	.byte	0x00, 0x00, 0x78, 0x00
+	# Struct (0x1007) {
+	#   TypeLeafKind: LF_STRUCTURE (0x1505)
+	#   MemberCount: 1
+	#   Properties [ (0x200)
+	#     HasUniqueName (0x200)
+	#   ]
+	#   FieldList: <field list> (0x1006)
+	#   DerivedFrom: 0x0
+	#   VShape: 0x0
+	#   SizeOf: 4
+	#   Name: Struct
+	#   LinkageName: .?AUStruct@@
+	# }
+	.byte	0x2a, 0x00, 0x05, 0x15
+	.byte	0x01, 0x00, 0x00, 0x02
+	.byte	0x06, 0x10, 0x00, 0x00
+	.byte	0x00, 0x00, 0x00, 0x00
+	.byte	0x00, 0x00, 0x00, 0x00
+	.byte	0x04, 0x00, 0x53, 0x74
+	.byte	0x72, 0x75, 0x63, 0x74
+	.byte	0x00, 0x2e, 0x3f, 0x41
+	.byte	0x55, 0x53, 0x74, 0x72
+	.byte	0x75, 0x63, 0x74, 0x40
+	.byte	0x40, 0x00, 0xf2, 0xf1
+	# StringId (0x1008) {
+	#   TypeLeafKind: LF_STRING_ID (0x1605)
+	#   Id: 0x0
+	#   StringData: D:\src\llvmbuild\cl\Debug\x64\foo.cpp
+	# }
+	.byte	0x2e, 0x00, 0x05, 0x16
+	.byte	0x00, 0x00, 0x00, 0x00
+	.byte	0x44, 0x3a, 0x5c, 0x73
+	.byte	0x72, 0x63, 0x5c, 0x6c
+	.byte	0x6c, 0x76, 0x6d, 0x62
+	.byte	0x75, 0x69, 0x6c, 0x64
+	.byte	0x5c, 0x63, 0x6c, 0x5c
+	.byte	0x44, 0x65, 0x62, 0x75
+	.byte	0x67, 0x5c, 0x78, 0x36
+	.byte	0x34, 0x5c, 0x66, 0x6f
+	.byte	0x6f, 0x2e, 0x63, 0x70
+	.byte	0x70, 0x00, 0xf2, 0xf1
+	# UdtSourceLine (0x1009) {
+	#   TypeLeafKind: LF_UDT_SRC_LINE (0x1606)
+	#   UDT: Struct (0x1007)
+	#   SourceFile: D:\src\llvmbuild\cl\Debug\x64\foo.cpp (0x1008)
+	#   LineNumber: 1
+	# }
+	.byte	0x0e, 0x00, 0x06, 0x16
+	.byte	0x07, 0x10, 0x00, 0x00
+	.byte	0x08, 0x10, 0x00, 0x00
+	.byte	0x01, 0x00, 0x00, 0x00
+	# StringId (0x100A) {
+	#   TypeLeafKind: LF_STRING_ID (0x1605)
+	#   Id: 0x0
+	#   StringData: D:\\src\\llvmbuild\\cl\\Debug\\x64
+	# }
+	.byte	0x2a, 0x00, 0x05, 0x16
+	.byte	0x00, 0x00, 0x00, 0x00
+	.byte	0x44, 0x3a, 0x5c, 0x5c
+	.byte	0x73, 0x72, 0x63, 0x5c
+	.byte	0x5c, 0x6c, 0x6c, 0x76
+	.byte	0x6d, 0x62, 0x75, 0x69
+	.byte	0x6c, 0x64, 0x5c, 0x5c
+	.byte	0x63, 0x6c, 0x5c, 0x5c
+	.byte	0x44, 0x65, 0x62, 0x75
+	.byte	0x67, 0x5c, 0x5c, 0x78
+	.byte	0x36, 0x34, 0x00, 0xf1
+	# StringId (0x100B) {
+	#   TypeLeafKind: LF_STRING_ID (0x1605)
+	#   Id: 0x0
+	#   StringData: foo.cpp
+	# }
+	.byte	0x0e, 0x00, 0x05, 0x16
+	.byte	0x00, 0x00, 0x00, 0x00
+	.byte	0x66, 0x6f, 0x6f, 0x2e
+	.byte	0x63, 0x70, 0x70, 0x00
+	# BuildInfo (0x100C) {
+	#   TypeLeafKind: LF_BUILDINFO (0x1603)
+	#   NumArgs: 5
+	#   Arguments [
+	#     ArgType: D:\\src\\llvmbuild\\cl\\Debug\\x64 (0x100A)
+	#     ArgType: 0x0
+	#     ArgType: foo.cpp (0x100B)
+	#     ArgType: 0x0
+	#     ArgType: 0x0
+	#   ]
+	# }
+	.byte	0x1a, 0x00, 0x03, 0x16
+	.byte	0x05, 0x00, 0x0a, 0x10
+	.byte	0x00, 0x00, 0x00, 0x00
+	.byte	0x00, 0x00, 0x0b, 0x10
+	.byte	0x00, 0x00, 0x00, 0x00
+	.byte	0x00, 0x00, 0x00, 0x00
+	.byte	0x00, 0x00, 0xf2, 0xf1
+
+	.addrsig
+	.addrsig_sym "?S@@3UStruct@@A"
+	.addrsig_sym "?SS@@3UStruct@@A"
+	.addrsig_sym "?I@@3HA"
diff --git a/test/ELF/Inputs/print-icf.s b/test/ELF/Inputs/print-icf.s
index a67bee2..df9bcbc 100644
--- a/test/ELF/Inputs/print-icf.s
+++ b/test/ELF/Inputs/print-icf.s
@@ -1,9 +1,9 @@
-.section .text.f6, "ax"

-f6:

-  mov $60, %rax

-  mov $42, %rdi

-  syscall

-

-  .section .text.f7, "ax"

-f7:

-  mov $0, %rax

+.section .text.f6, "ax"
+f6:
+  mov $60, %rax
+  mov $42, %rdi
+  syscall
+
+  .section .text.f7, "ax"
+f7:
+  mov $0, %rax