xref: /aosp_15_r20/external/llvm/test/MC/COFF/seh-linkonce.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -triple x86_64-pc-win32 -filetype=obj %s | llvm-readobj -sections -section-symbols | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker        .text
4*9880d681SAndroid Build Coastguard Worker        .def     weak_func;
5*9880d681SAndroid Build Coastguard Worker        .scl    2;
6*9880d681SAndroid Build Coastguard Worker        .type   32;
7*9880d681SAndroid Build Coastguard Worker        .endef
8*9880d681SAndroid Build Coastguard Worker        .section        .text,"xr",discard,weak_func
9*9880d681SAndroid Build Coastguard Worker        .globl  weak_func
10*9880d681SAndroid Build Coastguard Worker        .align  16, 0x90
11*9880d681SAndroid Build Coastguard Workerweak_func:                              # @weak_func
12*9880d681SAndroid Build Coastguard Worker.Ltmp0:
13*9880d681SAndroid Build Coastguard Worker.seh_proc weak_func
14*9880d681SAndroid Build Coastguard Worker# BB#0:                                 # %entry
15*9880d681SAndroid Build Coastguard Worker        pushq   %rbp
16*9880d681SAndroid Build Coastguard Worker.Ltmp1:
17*9880d681SAndroid Build Coastguard Worker        .seh_pushreg 5
18*9880d681SAndroid Build Coastguard Worker        movq    %rsp, %rbp
19*9880d681SAndroid Build Coastguard Worker.Ltmp2:
20*9880d681SAndroid Build Coastguard Worker        .seh_setframe 5, 0
21*9880d681SAndroid Build Coastguard Worker.Ltmp3:
22*9880d681SAndroid Build Coastguard Worker        .seh_endprologue
23*9880d681SAndroid Build Coastguard Worker        xorl    %eax, %eax
24*9880d681SAndroid Build Coastguard Worker        popq    %rbp
25*9880d681SAndroid Build Coastguard Worker        retq
26*9880d681SAndroid Build Coastguard Worker.Leh_func_end0:
27*9880d681SAndroid Build Coastguard Worker.Ltmp4:
28*9880d681SAndroid Build Coastguard Worker        .seh_endproc
29*9880d681SAndroid Build Coastguard Worker
30*9880d681SAndroid Build Coastguard Worker// CHECK: Sections [
31*9880d681SAndroid Build Coastguard Worker// CHECK:   Section {
32*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: .text
33*9880d681SAndroid Build Coastguard Worker// CHECK:   }
34*9880d681SAndroid Build Coastguard Worker// CHECK:   Section {
35*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: .data
36*9880d681SAndroid Build Coastguard Worker// CHECK:   }
37*9880d681SAndroid Build Coastguard Worker// CHECK:   Section {
38*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: .bss
39*9880d681SAndroid Build Coastguard Worker// CHECK:   }
40*9880d681SAndroid Build Coastguard Worker// CHECK:   Section {
41*9880d681SAndroid Build Coastguard Worker// CHECK:     Number: [[TEXT_SECNUM:[0-9]+]]
42*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: .text
43*9880d681SAndroid Build Coastguard Worker// CHECK:     Characteristics [
44*9880d681SAndroid Build Coastguard Worker// CHECK:       IMAGE_SCN_LNK_COMDAT
45*9880d681SAndroid Build Coastguard Worker// CHECK:     ]
46*9880d681SAndroid Build Coastguard Worker// CHECK:   }
47*9880d681SAndroid Build Coastguard Worker// CHECK:   Section {
48*9880d681SAndroid Build Coastguard Worker// CHECK:     Number: [[XDATA_SECNUM:[0-9]+]]
49*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: .xdata
50*9880d681SAndroid Build Coastguard Worker// CHECK:     Characteristics [
51*9880d681SAndroid Build Coastguard Worker// CHECK:       IMAGE_SCN_LNK_COMDAT
52*9880d681SAndroid Build Coastguard Worker// CHECK:     ]
53*9880d681SAndroid Build Coastguard Worker// CHECK:     Symbols [
54*9880d681SAndroid Build Coastguard Worker// CHECK:       Symbol {
55*9880d681SAndroid Build Coastguard Worker// CHECK:         Name: .xdata
56*9880d681SAndroid Build Coastguard Worker// CHECK:         Section: .xdata ([[XDATA_SECNUM]])
57*9880d681SAndroid Build Coastguard Worker// CHECK:         StorageClass: Static (0x3)
58*9880d681SAndroid Build Coastguard Worker// CHECK:         AuxSymbolCount: 1
59*9880d681SAndroid Build Coastguard Worker// CHECK:         AuxSectionDef {
60*9880d681SAndroid Build Coastguard Worker// CHECK:           Selection: Associative (0x5)
61*9880d681SAndroid Build Coastguard Worker// CHECK:           AssocSection: .text ([[TEXT_SECNUM]])
62*9880d681SAndroid Build Coastguard Worker// CHECK:         }
63*9880d681SAndroid Build Coastguard Worker// CHECK:       }
64*9880d681SAndroid Build Coastguard Worker// CHECK:     ]
65*9880d681SAndroid Build Coastguard Worker// CHECK:   }
66*9880d681SAndroid Build Coastguard Worker// CHECK:   Section {
67*9880d681SAndroid Build Coastguard Worker// CHECK:     Number: [[PDATA_SECNUM:[0-9]+]]
68*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: .pdata
69*9880d681SAndroid Build Coastguard Worker// CHECK:     Characteristics [
70*9880d681SAndroid Build Coastguard Worker// CHECK:       IMAGE_SCN_LNK_COMDAT
71*9880d681SAndroid Build Coastguard Worker// CHECK:     ]
72*9880d681SAndroid Build Coastguard Worker// CHECK:     Symbols [
73*9880d681SAndroid Build Coastguard Worker// CHECK:       Symbol {
74*9880d681SAndroid Build Coastguard Worker// CHECK:         Name: .pdata
75*9880d681SAndroid Build Coastguard Worker// CHECK:         Section: .pdata ([[PDATA_SECNUM]])
76*9880d681SAndroid Build Coastguard Worker// CHECK:         StorageClass: Static (0x3)
77*9880d681SAndroid Build Coastguard Worker// CHECK:         AuxSymbolCount: 1
78*9880d681SAndroid Build Coastguard Worker// CHECK:         AuxSectionDef {
79*9880d681SAndroid Build Coastguard Worker// CHECK:           Selection: Associative (0x5)
80*9880d681SAndroid Build Coastguard Worker// CHECK:           AssocSection: .text ([[TEXT_SECNUM]])
81*9880d681SAndroid Build Coastguard Worker// CHECK:         }
82*9880d681SAndroid Build Coastguard Worker// CHECK:       }
83*9880d681SAndroid Build Coastguard Worker// CHECK:     ]
84*9880d681SAndroid Build Coastguard Worker// CHECK:   }
85*9880d681SAndroid Build Coastguard Worker// CHECK: ]
86