@@ -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