]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/COFF/string-tail-merge.s
Vendor import of lld trunk r338150:
[FreeBSD/FreeBSD.git] / test / COFF / string-tail-merge.s
1 # REQUIRES: x86
2 # RUN: llvm-mc -triple=x86_64-windows-msvc -filetype=obj -o %t.obj %s
3 # RUN: lld-link %t.obj /out:%t.exe /entry:main /subsystem:console
4 # RUN: llvm-objdump -s %t.exe | FileCheck %s
5 # RUN: lld-link %t.obj /out:%t.exe /entry:main /subsystem:console /opt:noicf /opt:lldtailmerge
6 # RUN: llvm-objdump -s %t.exe | FileCheck %s
7 # RUN: lld-link %t.obj /out:%t.exe /entry:main /subsystem:console /opt:noicf
8 # RUN: llvm-objdump -s %t.exe | FileCheck --check-prefix=NOSTM %s
9 # RUN: lld-link %t.obj /out:%t.exe /entry:main /subsystem:console /opt:nolldtailmerge
10 # RUN: llvm-objdump -s %t.exe | FileCheck --check-prefix=NOSTM %s
11
12 # CHECK: Contents of section .text:
13 # NOSTM: Contents of section .text:
14 .globl main
15 main:
16 # CHECK-NEXT: 140001000 11200040 01000000 17200040 01000000
17 # NOSTM-NEXT: 140001000 00200040 01000000 0c200040 01000000
18 .8byte "??_C@_0M@LACCCNMM@hello?5world?$AA@"
19 .8byte "??_C@_05MCBCHHEJ@world?$AA@"
20 # CHECK-NEXT: 140001010 2a200040 01000000 36200040 01000000
21 # NOSTM-NEXT: 140001010 12200040 01000000 2a200040 01000000
22 .8byte "??_C@_1BI@HHJHKLLN@?$AAh?$AAe?$AAl?$AAl?$AAo?$AA?5?$AAw?$AAo?$AAr?$AAl?$AAd?$AA?$AA@"
23 .8byte "??_C@_1M@NBBDDHIO@?$AAw?$AAo?$AAr?$AAl?$AAd?$AA?$AA@"
24 # CHECK-NEXT: 140001020 00200040 01000000 0c200040 01000000
25 # NOSTM-NEXT: 140001020 36200040 01000000 42200040 01000000
26 .8byte "??_D@not_a_string_literal"
27 .8byte "??_C@string_literal_with_relocs"
28 # CHECK-NEXT: 140001030 00300040 01000000 1e200040 01000000
29 # NOSTM-NEXT: 140001030 00300040 01000000 48200040 01000000
30 .8byte "??_C@string_literal_in_wrong_section"
31 .8byte "??_C@overaligned_string_literal"
32
33 # CHECK: Contents of section .rdata:
34 # CHECK-NEXT:  140002000 68656c6c 6f20776f 726c6400 6f826ca4  hello world.o.l.
35 # CHECK-NEXT:  140002010 0068656c 6c6f2077 6f726c64 00006865  .hello world..he
36 # CHECK-NEXT:  140002020 6c6c6f20 776f726c 64006800 65006c00  llo world.h.e.l.
37 # CHECK-NEXT:  140002030 6c006f00 20007700 6f007200 6c006400  l.o. .w.o.r.l.d.
38 # CHECK-NEXT:  140002040 0000                                 ..
39
40 # NOSTM: Contents of section .rdata:
41 # NOSTM-NEXT:  140002000 68656c6c 6f20776f 726c6400 776f726c  hello world.worl
42 # NOSTM-NEXT:  140002010 64006800 65006c00 6c006f00 20007700  d.h.e.l.l.o. .w.
43 # NOSTM-NEXT:  140002020 6f007200 6c006400 00007700 6f007200  o.r.l.d...w.o.r.
44 # NOSTM-NEXT:  140002030 6c006400 00006865 6c6c6f20 776f726c  l.d...hello worl
45 # NOSTM-NEXT:  140002040 64006f82 6ca40000 68656c6c 6f20776f  d.o.l...hello wo
46 # NOSTM-NEXT:  140002050 726c6400                             rld.
47
48 .section .rdata,"dr",discard,"??_C@_0M@LACCCNMM@hello?5world?$AA@"
49 .globl "??_C@_0M@LACCCNMM@hello?5world?$AA@"
50 "??_C@_0M@LACCCNMM@hello?5world?$AA@":
51 .asciz "hello world"
52
53 .section .rdata,"dr",discard,"??_C@_05MCBCHHEJ@world?$AA@"
54 .globl "??_C@_05MCBCHHEJ@world?$AA@"
55 "??_C@_05MCBCHHEJ@world?$AA@":
56 .asciz "world"
57
58 .section .rdata,"dr",discard,"??_C@_1BI@HHJHKLLN@?$AAh?$AAe?$AAl?$AAl?$AAo?$AA?5?$AAw?$AAo?$AAr?$AAl?$AAd?$AA?$AA@"
59 .globl "??_C@_1BI@HHJHKLLN@?$AAh?$AAe?$AAl?$AAl?$AAo?$AA?5?$AAw?$AAo?$AAr?$AAl?$AAd?$AA?$AA@"
60 .p2align 1
61 "??_C@_1BI@HHJHKLLN@?$AAh?$AAe?$AAl?$AAl?$AAo?$AA?5?$AAw?$AAo?$AAr?$AAl?$AAd?$AA?$AA@":
62 .short 104
63 .short 101
64 .short 108
65 .short 108
66 .short 111
67 .short 32
68 .short 119
69 .short 111
70 .short 114
71 .short 108
72 .short 100
73 .short 0
74
75 .section .rdata,"dr",discard,"??_C@_1M@NBBDDHIO@?$AAw?$AAo?$AAr?$AAl?$AAd?$AA?$AA@"
76 .globl "??_C@_1M@NBBDDHIO@?$AAw?$AAo?$AAr?$AAl?$AAd?$AA?$AA@"
77 .p2align 1
78 "??_C@_1M@NBBDDHIO@?$AAw?$AAo?$AAr?$AAl?$AAd?$AA?$AA@":
79 .short 119
80 .short 111
81 .short 114
82 .short 108
83 .short 100
84 .short 0
85
86 .section .data,"drw",discard,"??_C@string_literal_in_wrong_section"
87 .globl "??_C@string_literal_in_wrong_section"
88 "??_C@string_literal_in_wrong_section":
89 .asciz "hello world"
90
91 .section .rdata,"dr",discard,"??_D@not_a_string_literal"
92 .globl "??_D@not_a_string_literal"
93 "??_D@not_a_string_literal":
94 .asciz "hello world"
95
96 .section .rdata,"dr",discard,"??_C@string_literal_with_relocs"
97 .globl "??_C@string_literal_with_relocs"
98 "??_C@string_literal_with_relocs":
99 .4byte main + 111 + (114 << 8) + (108 << 16) + (100 << 24) # main + "orld"
100 .byte 0
101
102 .section .rdata,"dr",discard,"??_C@overaligned_string_literal"
103 .globl "??_C@overaligned_string_literal"
104 .p2align 1
105 "??_C@overaligned_string_literal":
106 .asciz "hello world"