Skip to content

Commit a1df727

Browse files
committed
Misc fixes
1 parent ba63c9f commit a1df727

File tree

2 files changed

+5
-6
lines changed

2 files changed

+5
-6
lines changed

bolt/lib/Passes/PAuthGadgetScanner.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -644,7 +644,7 @@ template <typename StateTy> class CFGUnawareAnalysis {
644644
return BC.MIB->getAnnotationAs<StateTy>(Inst, StateAnnotationIndex);
645645
}
646646

647-
~CFGUnawareAnalysis() { cleanStateAnnotations(); }
647+
virtual ~CFGUnawareAnalysis() { cleanStateAnnotations(); }
648648
};
649649

650650
// A simplified implementation of DataflowSrcSafetyAnalysis for functions
@@ -1314,7 +1314,6 @@ shouldReportAuthOracle(const BinaryContext &BC, const MCInstReference &Inst,
13141314
if (!AuthReg || IsChecked)
13151315
return std::nullopt;
13161316

1317-
assert(*AuthReg != BC.MIB->getNoRegister());
13181317
LLVM_DEBUG({
13191318
traceInst(BC, "Found auth inst", Inst);
13201319
traceReg(BC, "Authenticated reg", *AuthReg);

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ simple:
113113
// CHECK-EMPTY:
114114
// PAUTH-NEXT: Found sign inst: 00000000: paciasp # DataflowSrcSafetyAnalysis: src-state<SafeToDerefRegs: BitVector, TrustedRegs: BitVector, Insts: >
115115
// PAUTH-NEXT: Signed reg: LR
116-
// PAUTH-NEXT: TrustedRegs: LR W30 W30_HI
116+
// PAUTH-NEXT: TrustedRegs: LR W30 W30_HI{{[ \t]*$}}
117117
// PAUTH-NEXT: Found call inst: 00000000: blr x0 # DataflowSrcSafetyAnalysis: src-state<SafeToDerefRegs: BitVector, TrustedRegs: BitVector, Insts: >
118118
// PAUTH-NEXT: Call destination reg: X0
119119
// PAUTH-NEXT: SafeToDerefRegs: W0 X0 W0_HI{{[ \t]*$}}
@@ -220,10 +220,10 @@ nocfg:
220220
// CHECK-EMPTY:
221221
// PAUTH-NEXT: Found call inst: 00000000: br x0 # UNKNOWN CONTROL FLOW # Offset: 4 # CFGUnawareSrcSafetyAnalysis: src-state<SafeToDerefRegs: BitVector, TrustedRegs: BitVector, Insts: >
222222
// PAUTH-NEXT: Call destination reg: X0
223-
// PAUTH-NEXT: SafeToDerefRegs: LR W0 W30 X0 W0_HI W30_HI
223+
// PAUTH-NEXT: SafeToDerefRegs: LR W0 W30 X0 W0_HI W30_HI{{[ \t]*$}}
224224
// CHECK-NEXT: Found RET inst: 00000000: ret # Offset: 8 # CFGUnawareSrcSafetyAnalysis: src-state<SafeToDerefRegs: BitVector, TrustedRegs: BitVector, Insts: >
225225
// CHECK-NEXT: RetReg: LR
226-
// CHECK-NEXT: SafeToDerefRegs:
226+
// CHECK-NEXT: SafeToDerefRegs:{{[ \t]*$}}
227227
// CHECK-EMPTY:
228228
// CHECK-NEXT: Running detailed src register safety analysis...
229229
// CHECK-NEXT: SrcSafetyAnalysis::ComputeNext( adr x0, __ENTRY_nocfg@0x[[ENTRY_ADDR]], src-state<SafeToDerefRegs: LR W30 W30_HI , TrustedRegs: LR W30 W30_HI , Insts: [0]()>)
@@ -304,7 +304,7 @@ auth_oracle:
304304
// PAUTH-EMPTY:
305305
// PAUTH-NEXT: Found auth inst: 00000000: autia x0, x1 # DataflowDstSafetyAnalysis: dst-state<CannotEscapeUnchecked: BitVector, Insts: >
306306
// PAUTH-NEXT: Authenticated reg: X0
307-
// PAUTH-NEXT: safe output registers: LR W30 W30_HI
307+
// PAUTH-NEXT: safe output registers: LR W30 W30_HI{{[ \t]*$}}
308308
// PAUTH-EMPTY:
309309
// PAUTH-NEXT: Running detailed dst register safety analysis...
310310
// PAUTH-NEXT: DstSafetyAnalysis::ComputeNext( ret x30, dst-state<CannotEscapeUnchecked: , Insts: [0]()>)

0 commit comments

Comments
 (0)