[ELF] Reorder SectionBase/InputSectionBase members
[llvm-project.git] / llvm / test / CodeGen / PowerPC / aix-xcoff-funcsect-explicitsect.ll
blob4e94228404d61abff3631d973bb8ffd17b9cfe8a
1 ; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc-ibm-aix-xcoff \
2 ; RUN:     -xcoff-traceback-table=false -filetype=obj -function-sections -o %t.o < %s
3 ; RUN: llvm-readobj -s %t.o | FileCheck %s
5 define dso_local signext i32 @foo1() section "sect" {
6 entry:
7   ret i32 1
10 define dso_local signext i32 @foo2() section "sect2" {
11 entry:
12   ret i32 2
15 define dso_local signext i32 @foo3()  section "sect2" {
16 entry:
17   ret i32 3
20 define dso_local signext i32 @foo4() {
21 entry:
22   ret i32 4
25 ; CHECK:       Symbol {{[{][[:space:]] *}}Index: [[#INDX:]]{{[[:space:]] *}}Name: sect
26 ; CHECK-NEXT:    Value (RelocatableAddress): 0x0
27 ; CHECK-NEXT:    Section: .text
28 ; CHECK-NEXT:    Type: 0x0
29 ; CHECK-NEXT:    StorageClass: C_HIDEXT (0x6B)
30 ; CHECK-NEXT:    NumberOfAuxEntries: 1
31 ; CHECK-NEXT:    CSECT Auxiliary Entry {
32 ; CHECK-NEXT:      Index: [[#INDX+1]]
33 ; CHECK-NEXT:      SectionLen: 8
34 ; CHECK-NEXT:      ParameterHashIndex: 0x0
35 ; CHECK-NEXT:      TypeChkSectNum: 0x0
36 ; CHECK-NEXT:      SymbolAlignmentLog2: 5
37 ; CHECK-NEXT:      SymbolType: XTY_SD (0x1)
38 ; CHECK-NEXT:      StorageMappingClass: XMC_PR (0x0)
39 ; CHECK-NEXT:      StabInfoIndex: 0x0
40 ; CHECK-NEXT:      StabSectNum: 0x0
41 ; CHECK-NEXT:    }
42 ; CHECK-NEXT:  }
43 ; CHECK-NEXT:  Symbol {
44 ; CHECK-NEXT:    Index: [[#INDX+2]]
45 ; CHECK-NEXT:    Name: .foo1
46 ; CHECK-NEXT:    Value (RelocatableAddress): 0x0
47 ; CHECK-NEXT:    Section: .text
48 ; CHECK-NEXT:    Type: 0x0
49 ; CHECK-NEXT:    StorageClass: C_EXT (0x2)
50 ; CHECK-NEXT:    NumberOfAuxEntries: 1
51 ; CHECK-NEXT:    CSECT Auxiliary Entry {
52 ; CHECK-NEXT:      Index:  [[#INDX+3]]
53 ; CHECK-NEXT:      ContainingCsectSymbolIndex: [[#INDX]]
54 ; CHECK-NEXT:      ParameterHashIndex: 0x0
55 ; CHECK-NEXT:      TypeChkSectNum: 0x0
56 ; CHECK-NEXT:      SymbolAlignmentLog2: 0
57 ; CHECK-NEXT:      SymbolType: XTY_LD (0x2)
58 ; CHECK-NEXT:      StorageMappingClass: XMC_PR (0x0)
59 ; CHECK-NEXT:      StabInfoIndex: 0x0
60 ; CHECK-NEXT:      StabSectNum: 0x0
61 ; CHECK-NEXT:    }
62 ; CHECK-NEXT:  }
63 ; CHECK-NEXT:  Symbol {
64 ; CHECK-NEXT:    Index: [[#INDX+4]]
65 ; CHECK-NEXT:    Name: sect2
66 ; CHECK-NEXT:    Value (RelocatableAddress): 0x20
67 ; CHECK-NEXT:    Section: .text
68 ; CHECK-NEXT:    Type: 0x0
69 ; CHECK-NEXT:    StorageClass: C_HIDEXT (0x6B)
70 ; CHECK-NEXT:    NumberOfAuxEntries: 1
71 ; CHECK-NEXT:    CSECT Auxiliary Entry {
72 ; CHECK-NEXT:      Index: [[#INDX+5]]
73 ; CHECK-NEXT:      SectionLen: 24
74 ; CHECK-NEXT:      ParameterHashIndex: 0x0
75 ; CHECK-NEXT:      TypeChkSectNum: 0x0
76 ; CHECK-NEXT:      SymbolAlignmentLog2: 5
77 ; CHECK-NEXT:      SymbolType: XTY_SD (0x1)
78 ; CHECK-NEXT:      StorageMappingClass: XMC_PR (0x0)
79 ; CHECK-NEXT:      StabInfoIndex: 0x0
80 ; CHECK-NEXT:      StabSectNum: 0x0
81 ; CHECK-NEXT:    }
82 ; CHECK-NEXT:  }
83 ; CHECK-NEXT:  Symbol {
84 ; CHECK-NEXT:    Index: [[#INDX+6]]
85 ; CHECK-NEXT:    Name: .foo2
86 ; CHECK-NEXT:    Value (RelocatableAddress): 0x20
87 ; CHECK-NEXT:    Section: .text
88 ; CHECK-NEXT:    Type: 0x0
89 ; CHECK-NEXT:    StorageClass: C_EXT (0x2)
90 ; CHECK-NEXT:    NumberOfAuxEntries: 1
91 ; CHECK-NEXT:    CSECT Auxiliary Entry {
92 ; CHECK-NEXT:      Index: [[#INDX+7]]
93 ; CHECK-NEXT:      ContainingCsectSymbolIndex: [[#INDX+4]]
94 ; CHECK-NEXT:      ParameterHashIndex: 0x0
95 ; CHECK-NEXT:      TypeChkSectNum: 0x0
96 ; CHECK-NEXT:      SymbolAlignmentLog2: 0
97 ; CHECK-NEXT:      SymbolType: XTY_LD (0x2)
98 ; CHECK-NEXT:      StorageMappingClass: XMC_PR (0x0)
99 ; CHECK-NEXT:      StabInfoIndex: 0x0
100 ; CHECK-NEXT:      StabSectNum: 0x0
101 ; CHECK-NEXT:    }
102 ; CHECK-NEXT:  }
103 ; CHECK-NEXT:  Symbol {
104 ; CHECK-NEXT:    Index: [[#INDX+8]]
105 ; CHECK-NEXT:    Name: .foo3
106 ; CHECK-NEXT:    Value (RelocatableAddress): 0x30
107 ; CHECK-NEXT:    Section: .text
108 ; CHECK-NEXT:    Type: 0x0
109 ; CHECK-NEXT:    StorageClass: C_EXT (0x2)
110 ; CHECK-NEXT:    NumberOfAuxEntries: 1
111 ; CHECK-NEXT:    CSECT Auxiliary Entry {
112 ; CHECK-NEXT:      Index: [[#INDX+9]]
113 ; CHECK-NEXT:      ContainingCsectSymbolIndex: [[#INDX+4]]
114 ; CHECK-NEXT:      ParameterHashIndex: 0x0
115 ; CHECK-NEXT:      TypeChkSectNum: 0x0
116 ; CHECK-NEXT:      SymbolAlignmentLog2: 0
117 ; CHECK-NEXT:      SymbolType: XTY_LD (0x2)
118 ; CHECK-NEXT:      StorageMappingClass: XMC_PR (0x0)
119 ; CHECK-NEXT:      StabInfoIndex: 0x0
120 ; CHECK-NEXT:      StabSectNum: 0x0
121 ; CHECK-NEXT:    }
122 ; CHECK-NEXT:  }
123 ; CHECK-NEXT:  Symbol {
124 ; CHECK-NEXT:    Index: [[#INDX+10]]
125 ; CHECK-NEXT:    Name: .foo4
126 ; CHECK-NEXT:    Value (RelocatableAddress): 0x40
127 ; CHECK-NEXT:    Section: .text
128 ; CHECK-NEXT:    Type: 0x0
129 ; CHECK-NEXT:    StorageClass: C_EXT (0x2)
130 ; CHECK-NEXT:    NumberOfAuxEntries: 1
131 ; CHECK-NEXT:    CSECT Auxiliary Entry {
132 ; CHECK-NEXT:      Index: 16
133 ; CHECK-NEXT:      SectionLen: 8
134 ; CHECK-NEXT:      ParameterHashIndex: 0x0
135 ; CHECK-NEXT:      TypeChkSectNum: 0x0
136 ; CHECK-NEXT:      SymbolAlignmentLog2: 5
137 ; CHECK-NEXT:      SymbolType: XTY_SD (0x1)
138 ; CHECK-NEXT:      StorageMappingClass: XMC_PR (0x0)
139 ; CHECK-NEXT:      StabInfoIndex: 0x0
140 ; CHECK-NEXT:      StabSectNum: 0x0
141 ; CHECK-NEXT:    }
142 ; CHECK-NEXT:  }