diff options
author | Rui Ueyama <ruiu@google.com> | 2019-02-11 21:38:20 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2019-02-11 21:38:20 +0000 |
commit | 83a25ddffc9d0ac9abe713a9d57b978177594c70 (patch) | |
tree | edc7bc00d93645be91e11e6a3827ef75611c4dc0 | |
parent | 6b28e9547148c343533176d6ec77db0fe9bff0bc (diff) | |
download | lld-83a25ddffc9d0ac9abe713a9d57b978177594c70.tar.gz |
Convert CRLF. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@353751 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | test/COFF/crt-dyn-initializer-order.test | 200 | ||||
-rw-r--r-- | test/COFF/precomp-link.test | 84 | ||||
-rw-r--r-- | test/COFF/s_udt.s | 884 | ||||
-rw-r--r-- | test/ELF/Inputs/print-icf.s | 18 |
4 files changed, 593 insertions, 593 deletions
diff --git a/test/COFF/crt-dyn-initializer-order.test b/test/COFF/crt-dyn-initializer-order.test index 963b06577..40f2e0ca1 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 b60b0b2f1..7ba747e26 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 8ad342e4e..900948aa8 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 a67bee2f1..df9bcbc09 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 |