Skip to content

Commit 8b1df05

Browse files
committed
Update gs-pauth-debug-output.s test
1 parent 9046acb commit 8b1df05

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed

bolt/test/binary-analysis/AArch64/gs-pauth-debug-output.s

+79
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,85 @@ clobber:
158158
// CHECK-EMPTY:
159159
// CHECK-NEXT: Attaching clobbering info to: 00000000: ret # PacRetAnalysis: pacret-state<SafeToDerefRegs: BitVector, Insts: [0](0x{{[0-9a-f]+}} )>
160160

161+
.globl nocfg
162+
.type nocfg,@function
163+
nocfg:
164+
adr x0, 1f
165+
br x0
166+
1:
167+
ret
168+
.size nocfg, .-nocfg
169+
170+
// CHECK-LABEL:Analyzing in function nocfg, AllocatorId 1
171+
// CHECK-NEXT: Binary Function "nocfg" {
172+
// CHECK-NEXT: Number : 3
173+
// CHECK-NEXT: State : disassembled
174+
// ...
175+
// CHECK: IsSimple : 0
176+
// CHECK-NEXT: IsMultiEntry: 1
177+
// CHECK-NEXT: IsSplit : 0
178+
// CHECK-NEXT: BB Count : 0
179+
// CHECK-NEXT: Secondary Entry Points : __ENTRY_nocfg@0x[[ENTRY_ADDR:[0-9a-f]+]]
180+
// CHECK-NEXT: }
181+
// CHECK-NEXT: .{{[A-Za-z0-9]+}}:
182+
// CHECK-NEXT: 00000000: adr x0, __ENTRY_nocfg@0x[[ENTRY_ADDR]]
183+
// CHECK-NEXT: 00000004: br x0 # UNKNOWN CONTROL FLOW # Offset: 4
184+
// CHECK-NEXT: __ENTRY_nocfg@0x[[ENTRY_ADDR]] (Entry Point):
185+
// CHECK-NEXT: .{{[A-Za-z0-9]+}}:
186+
// CHECK-NEXT: 00000008: ret # Offset: 8
187+
// CHECK-NEXT: DWARF CFI Instructions:
188+
// CHECK-NEXT: <empty>
189+
// CHECK-NEXT: End of Function "nocfg"
190+
// CHECK-EMPTY:
191+
// CHECK-NEXT: PacRetAnalysis::ComputeNext( adr x0, __ENTRY_nocfg@0x[[ENTRY_ADDR]], pacret-state<SafeToDerefRegs: LR W30 W30_HI , Insts: >)
192+
// CHECK-NEXT: .. result: (pacret-state<SafeToDerefRegs: LR W0 W30 X0 W0_HI W30_HI , Insts: >)
193+
// CHECK-NEXT: PacRetAnalysis::ComputeNext( ret x30, pacret-state<SafeToDerefRegs: , Insts: >)
194+
// CHECK-NEXT: .. result: (pacret-state<SafeToDerefRegs: , Insts: >)
195+
// CHECK-NEXT: After PacRetAnalysis:
196+
// CHECK-NEXT: Binary Function "nocfg" {
197+
// CHECK-NEXT: Number : 3
198+
// CHECK-NEXT: State : disassembled
199+
// ...
200+
// CHECK: Secondary Entry Points : __ENTRY_nocfg@0x[[ENTRY_ADDR]]
201+
// CHECK-NEXT: }
202+
// CHECK-NEXT: .{{[A-Za-z0-9]+}}:
203+
// CHECK-NEXT: 00000000: adr x0, __ENTRY_nocfg@0x[[ENTRY_ADDR]] # NoCFGPacRetAnalysis: pacret-state<SafeToDerefRegs: BitVector, Insts: >
204+
// CHECK-NEXT: 00000004: br x0 # UNKNOWN CONTROL FLOW # Offset: 4 # NoCFGPacRetAnalysis: pacret-state<SafeToDerefRegs: BitVector, Insts: >
205+
// CHECK-NEXT: __ENTRY_nocfg@0x[[ENTRY_ADDR]] (Entry Point):
206+
// CHECK-NEXT: .{{[A-Za-z0-9]+}}:
207+
// CHECK-NEXT: 00000008: ret # Offset: 8 # NoCFGPacRetAnalysis: pacret-state<SafeToDerefRegs: BitVector, Insts: >
208+
// CHECK-NEXT: DWARF CFI Instructions:
209+
// CHECK-NEXT: <empty>
210+
// CHECK-NEXT: End of Function "nocfg"
211+
// CHECK-EMPTY:
212+
// PAUTH-NEXT: Found call inst: 00000000: br x0 # UNKNOWN CONTROL FLOW # Offset: 4 # NoCFGPacRetAnalysis: pacret-state<SafeToDerefRegs: BitVector, Insts: >
213+
// PAUTH-NEXT: Call destination reg: X0
214+
// PAUTH-NEXT: SafeToDerefRegs: LR W0 W30 X0 W0_HI W30_HI
215+
// CHECK-NEXT: Found RET inst: 00000000: ret # Offset: 8 # NoCFGPacRetAnalysis: pacret-state<SafeToDerefRegs: BitVector, Insts: >
216+
// CHECK-NEXT: RetReg: LR
217+
// CHECK-NEXT: Authenticated reg: (none)
218+
// CHECK-NEXT: SafeToDerefRegs:
219+
// CHECK-NEXT: PacRetAnalysis::ComputeNext( adr x0, __ENTRY_nocfg@0x[[ENTRY_ADDR]], pacret-state<SafeToDerefRegs: LR W30 W30_HI , Insts: [0]()>)
220+
// CHECK-NEXT: .. result: (pacret-state<SafeToDerefRegs: LR W0 W30 X0 W0_HI W30_HI , Insts: [0]()>)
221+
// CHECK-NEXT: PacRetAnalysis::ComputeNext( ret x30, pacret-state<SafeToDerefRegs: , Insts: [0]()>)
222+
// CHECK-NEXT: .. result: (pacret-state<SafeToDerefRegs: , Insts: [0]()>)
223+
// CHECK-NEXT: After detailed PacRetAnalysis:
224+
// CHECK-NEXT: Binary Function "nocfg" {
225+
// CHECK-NEXT: Number : 3
226+
// ...
227+
// CHECK: Secondary Entry Points : __ENTRY_nocfg@0x[[ENTRY_ADDR]]
228+
// CHECK-NEXT: }
229+
// CHECK-NEXT: .{{[A-Za-z0-9]+}}:
230+
// CHECK-NEXT: 00000000: adr x0, __ENTRY_nocfg@0x[[ENTRY_ADDR]] # NoCFGPacRetAnalysis: pacret-state<SafeToDerefRegs: BitVector, Insts: [0]()>
231+
// CHECK-NEXT: 00000004: br x0 # UNKNOWN CONTROL FLOW # Offset: 4 # NoCFGPacRetAnalysis: pacret-state<SafeToDerefRegs: BitVector, Insts: [0]()>
232+
// CHECK-NEXT: __ENTRY_nocfg@0x[[ENTRY_ADDR]] (Entry Point):
233+
// CHECK-NEXT: .{{[A-Za-z0-9]+}}:
234+
// CHECK-NEXT: 00000008: ret # Offset: 8 # NoCFGPacRetAnalysis: pacret-state<SafeToDerefRegs: BitVector, Insts: [0]()>
235+
// CHECK-NEXT: DWARF CFI Instructions:
236+
// CHECK-NEXT: <empty>
237+
// CHECK-NEXT: End of Function "nocfg"
238+
// CHECK-EMPTY:
239+
// CHECK-NEXT: Attaching clobbering info to: 00000000: ret # Offset: 8 # NoCFGPacRetAnalysis: pacret-state<SafeToDerefRegs: BitVector, Insts: [0]()>
161240

162241
// CHECK-LABEL:Analyzing in function main, AllocatorId 1
163242
.globl main

0 commit comments

Comments
 (0)