xref: /aosp_15_r20/external/llvm/test/MC/COFF/seh-section-2.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker# RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s | llvm-readobj -symbols | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker# This assembly should make an object with two .text sections, two .xdata
4*9880d681SAndroid Build Coastguard Worker# sections, and two .pdata sections.
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker        .def     f;
7*9880d681SAndroid Build Coastguard Worker        .scl    2;
8*9880d681SAndroid Build Coastguard Worker        .type   32;
9*9880d681SAndroid Build Coastguard Worker        .endef
10*9880d681SAndroid Build Coastguard Worker        .section        .text,"xr",discard,f
11*9880d681SAndroid Build Coastguard Worker        .globl  f
12*9880d681SAndroid Build Coastguard Worker        .p2align        4, 0x90
13*9880d681SAndroid Build Coastguard Workerf:                                      # @f
14*9880d681SAndroid Build Coastguard Worker.Ltmp0:
15*9880d681SAndroid Build Coastguard Worker.seh_proc f
16*9880d681SAndroid Build Coastguard Worker# BB#0:
17*9880d681SAndroid Build Coastguard Worker        subq    $40, %rsp
18*9880d681SAndroid Build Coastguard Worker.Ltmp1:
19*9880d681SAndroid Build Coastguard Worker        .seh_stackalloc 40
20*9880d681SAndroid Build Coastguard Worker.Ltmp2:
21*9880d681SAndroid Build Coastguard Worker        .seh_endprologue
22*9880d681SAndroid Build Coastguard Worker        callq   g
23*9880d681SAndroid Build Coastguard Worker        nop
24*9880d681SAndroid Build Coastguard Worker        addq    $40, %rsp
25*9880d681SAndroid Build Coastguard Worker        retq
26*9880d681SAndroid Build Coastguard Worker        .seh_handlerdata
27*9880d681SAndroid Build Coastguard Worker        .section        .text,"xr",discard,f
28*9880d681SAndroid Build Coastguard Worker.Ltmp3:
29*9880d681SAndroid Build Coastguard Worker        .seh_endproc
30*9880d681SAndroid Build Coastguard Worker
31*9880d681SAndroid Build Coastguard Worker        .def     g;
32*9880d681SAndroid Build Coastguard Worker        .scl    3;
33*9880d681SAndroid Build Coastguard Worker        .type   32;
34*9880d681SAndroid Build Coastguard Worker        .endef
35*9880d681SAndroid Build Coastguard Worker        .section        .text,"xr",associative,f
36*9880d681SAndroid Build Coastguard Worker        .p2align        4, 0x90
37*9880d681SAndroid Build Coastguard Workerg:                                      # @g
38*9880d681SAndroid Build Coastguard Worker.Ltmp4:
39*9880d681SAndroid Build Coastguard Worker.seh_proc g
40*9880d681SAndroid Build Coastguard Worker# BB#0:
41*9880d681SAndroid Build Coastguard Worker.Ltmp5:
42*9880d681SAndroid Build Coastguard Worker        .seh_endprologue
43*9880d681SAndroid Build Coastguard Worker        retq
44*9880d681SAndroid Build Coastguard Worker        .seh_handlerdata
45*9880d681SAndroid Build Coastguard Worker        .section        .text,"xr",associative,f
46*9880d681SAndroid Build Coastguard Worker.Ltmp6:
47*9880d681SAndroid Build Coastguard Worker        .seh_endproc
48*9880d681SAndroid Build Coastguard Worker
49*9880d681SAndroid Build Coastguard Worker
50*9880d681SAndroid Build Coastguard Worker# CHECK: Symbols [
51*9880d681SAndroid Build Coastguard Worker# CHECK:   Symbol {
52*9880d681SAndroid Build Coastguard Worker# CHECK:     Name: .text
53*9880d681SAndroid Build Coastguard Worker# CHECK:     Section: .text (4)
54*9880d681SAndroid Build Coastguard Worker# CHECK:     AuxSymbolCount: 1
55*9880d681SAndroid Build Coastguard Worker# CHECK:     AuxSectionDef {
56*9880d681SAndroid Build Coastguard Worker# CHECK:       Length: 15
57*9880d681SAndroid Build Coastguard Worker# CHECK:       RelocationCount: 1
58*9880d681SAndroid Build Coastguard Worker# CHECK:       LineNumberCount: 0
59*9880d681SAndroid Build Coastguard Worker# CHECK:       Checksum: 0xE17CBB7
60*9880d681SAndroid Build Coastguard Worker# CHECK:       Number: 4
61*9880d681SAndroid Build Coastguard Worker# CHECK:       Selection: Any (0x2)
62*9880d681SAndroid Build Coastguard Worker# CHECK:     }
63*9880d681SAndroid Build Coastguard Worker# CHECK:   }
64*9880d681SAndroid Build Coastguard Worker# CHECK:   Symbol {
65*9880d681SAndroid Build Coastguard Worker# CHECK:     Name: .xdata
66*9880d681SAndroid Build Coastguard Worker# CHECK:     Value: 0
67*9880d681SAndroid Build Coastguard Worker# CHECK:     Section: .xdata (5)
68*9880d681SAndroid Build Coastguard Worker# CHECK:     BaseType: Null (0x0)
69*9880d681SAndroid Build Coastguard Worker# CHECK:     ComplexType: Null (0x0)
70*9880d681SAndroid Build Coastguard Worker# CHECK:     StorageClass: Static (0x3)
71*9880d681SAndroid Build Coastguard Worker# CHECK:     AuxSymbolCount: 1
72*9880d681SAndroid Build Coastguard Worker# CHECK:     AuxSectionDef {
73*9880d681SAndroid Build Coastguard Worker# CHECK:       Length: 8
74*9880d681SAndroid Build Coastguard Worker# CHECK:       RelocationCount: 0
75*9880d681SAndroid Build Coastguard Worker# CHECK:       LineNumberCount: 0
76*9880d681SAndroid Build Coastguard Worker# CHECK:       Checksum: 0xFC539D1
77*9880d681SAndroid Build Coastguard Worker# CHECK:       Number: 4
78*9880d681SAndroid Build Coastguard Worker# CHECK:       Selection: Associative (0x5)
79*9880d681SAndroid Build Coastguard Worker# CHECK:       AssocSection: .text (4)
80*9880d681SAndroid Build Coastguard Worker# CHECK:     }
81*9880d681SAndroid Build Coastguard Worker# CHECK:   }
82*9880d681SAndroid Build Coastguard Worker# CHECK:   Symbol {
83*9880d681SAndroid Build Coastguard Worker# CHECK:     Name: .text
84*9880d681SAndroid Build Coastguard Worker# CHECK:     Value: 0
85*9880d681SAndroid Build Coastguard Worker# CHECK:     Section: .text (6)
86*9880d681SAndroid Build Coastguard Worker# CHECK:     BaseType: Null (0x0)
87*9880d681SAndroid Build Coastguard Worker# CHECK:     ComplexType: Null (0x0)
88*9880d681SAndroid Build Coastguard Worker# CHECK:     StorageClass: Static (0x3)
89*9880d681SAndroid Build Coastguard Worker# CHECK:     AuxSymbolCount: 1
90*9880d681SAndroid Build Coastguard Worker# CHECK:     AuxSectionDef {
91*9880d681SAndroid Build Coastguard Worker# CHECK:       Length: 1
92*9880d681SAndroid Build Coastguard Worker# CHECK:       RelocationCount: 0
93*9880d681SAndroid Build Coastguard Worker# CHECK:       LineNumberCount: 0
94*9880d681SAndroid Build Coastguard Worker# CHECK:       Checksum: 0x26D930A
95*9880d681SAndroid Build Coastguard Worker# CHECK:       Number: 4
96*9880d681SAndroid Build Coastguard Worker# CHECK:       Selection: Associative (0x5)
97*9880d681SAndroid Build Coastguard Worker# CHECK:       AssocSection: .text (4)
98*9880d681SAndroid Build Coastguard Worker# CHECK:     }
99*9880d681SAndroid Build Coastguard Worker# CHECK:   }
100*9880d681SAndroid Build Coastguard Worker# CHECK:   Symbol {
101*9880d681SAndroid Build Coastguard Worker# CHECK:     Name: .xdata
102*9880d681SAndroid Build Coastguard Worker# CHECK:     Value: 0
103*9880d681SAndroid Build Coastguard Worker# CHECK:     Section: .xdata (7)
104*9880d681SAndroid Build Coastguard Worker# CHECK:     BaseType: Null (0x0)
105*9880d681SAndroid Build Coastguard Worker# CHECK:     ComplexType: Null (0x0)
106*9880d681SAndroid Build Coastguard Worker# CHECK:     StorageClass: Static (0x3)
107*9880d681SAndroid Build Coastguard Worker# CHECK:     AuxSymbolCount: 1
108*9880d681SAndroid Build Coastguard Worker# CHECK:     AuxSectionDef {
109*9880d681SAndroid Build Coastguard Worker# CHECK:       Length: 8
110*9880d681SAndroid Build Coastguard Worker# CHECK:       RelocationCount: 0
111*9880d681SAndroid Build Coastguard Worker# CHECK:       LineNumberCount: 0
112*9880d681SAndroid Build Coastguard Worker# CHECK:       Checksum: 0xCCAA009E
113*9880d681SAndroid Build Coastguard Worker# CHECK:       Number: 4
114*9880d681SAndroid Build Coastguard Worker# CHECK:       Selection: Associative (0x5)
115*9880d681SAndroid Build Coastguard Worker# CHECK:       AssocSection: .text (4)
116*9880d681SAndroid Build Coastguard Worker# CHECK:     }
117*9880d681SAndroid Build Coastguard Worker# CHECK:   }
118*9880d681SAndroid Build Coastguard Worker# CHECK:   Symbol {
119*9880d681SAndroid Build Coastguard Worker# CHECK:     Name: .pdata
120*9880d681SAndroid Build Coastguard Worker# CHECK:     Value: 0
121*9880d681SAndroid Build Coastguard Worker# CHECK:     Section: .pdata (8)
122*9880d681SAndroid Build Coastguard Worker# CHECK:     BaseType: Null (0x0)
123*9880d681SAndroid Build Coastguard Worker# CHECK:     ComplexType: Null (0x0)
124*9880d681SAndroid Build Coastguard Worker# CHECK:     StorageClass: Static (0x3)
125*9880d681SAndroid Build Coastguard Worker# CHECK:     AuxSymbolCount: 1
126*9880d681SAndroid Build Coastguard Worker# CHECK:     AuxSectionDef {
127*9880d681SAndroid Build Coastguard Worker# CHECK:       Length: 12
128*9880d681SAndroid Build Coastguard Worker# CHECK:       RelocationCount: 3
129*9880d681SAndroid Build Coastguard Worker# CHECK:       LineNumberCount: 0
130*9880d681SAndroid Build Coastguard Worker# CHECK:       Checksum: 0xD92012AC
131*9880d681SAndroid Build Coastguard Worker# CHECK:       Number: 4
132*9880d681SAndroid Build Coastguard Worker# CHECK:       Selection: Associative (0x5)
133*9880d681SAndroid Build Coastguard Worker# CHECK:       AssocSection: .text (4)
134*9880d681SAndroid Build Coastguard Worker# CHECK:     }
135*9880d681SAndroid Build Coastguard Worker# CHECK:   }
136*9880d681SAndroid Build Coastguard Worker# CHECK:   Symbol {
137*9880d681SAndroid Build Coastguard Worker# CHECK:     Name: .pdata
138*9880d681SAndroid Build Coastguard Worker# CHECK:     Value: 0
139*9880d681SAndroid Build Coastguard Worker# CHECK:     Section: .pdata (9)
140*9880d681SAndroid Build Coastguard Worker# CHECK:     BaseType: Null (0x0)
141*9880d681SAndroid Build Coastguard Worker# CHECK:     ComplexType: Null (0x0)
142*9880d681SAndroid Build Coastguard Worker# CHECK:     StorageClass: Static (0x3)
143*9880d681SAndroid Build Coastguard Worker# CHECK:     AuxSymbolCount: 1
144*9880d681SAndroid Build Coastguard Worker# CHECK:     AuxSectionDef {
145*9880d681SAndroid Build Coastguard Worker# CHECK:       Length: 12
146*9880d681SAndroid Build Coastguard Worker# CHECK:       RelocationCount: 3
147*9880d681SAndroid Build Coastguard Worker# CHECK:       LineNumberCount: 0
148*9880d681SAndroid Build Coastguard Worker# CHECK:       Checksum: 0xCCAA009E
149*9880d681SAndroid Build Coastguard Worker# CHECK:       Number: 4
150*9880d681SAndroid Build Coastguard Worker# CHECK:       Selection: Associative (0x5)
151*9880d681SAndroid Build Coastguard Worker# CHECK:       AssocSection: .text (4)
152*9880d681SAndroid Build Coastguard Worker# CHECK:     }
153*9880d681SAndroid Build Coastguard Worker# CHECK:   }
154*9880d681SAndroid Build Coastguard Worker# CHECK: ]
155