From 2bbff803070072e06f3b7f7371ff05e50c0f809c Mon Sep 17 00:00:00 2001 From: zhangshouxu Date: Thu, 17 Jul 2025 16:39:34 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9vptr=E5=92=8Cvcall?= =?UTF-8?q?=E9=80=89=E9=A1=B9=E5=85=B1=E5=90=8C=E9=85=8D=E7=BD=AE=E6=97=B6?= =?UTF-8?q?hint-only=E9=80=89=E9=A1=B9=E5=85=BC=E5=AE=B9=E5=A4=84=E7=90=86?= =?UTF-8?q?=E5=A4=B1=E6=95=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Zhang Shouxu --- llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp b/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp index ddafb534ecae..8e9311fddef8 100644 --- a/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp +++ b/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp @@ -2325,19 +2325,19 @@ AArch64AsmPrinter::lowerConstantPtrAuth(const ConstantPtrAuth &CPA) { // Convert DA/DB to IA/IB if hint-only option is on, since only // autia1716/autib1716 is used and it will failed for DA/DB. auto sti = Ctx.getSubtargetInfo(); - auto STI = static_cast(sti); - assert(STI && "Unable to create subtarget info"); - - if (STI && STI->hasPAuthHintOnly()) { - switch ((AArch64PACKey::ID)(KeyID)) { - case AArch64PACKey::DA: - KeyID = AArch64PACKey::IA; - break; - case AArch64PACKey::DB: - KeyID = AArch64PACKey::IB; - break; - default: - break; + if (sti) { + const FeatureBitset &Bits = sti->getFeatureBits(); + if (Bits[AArch64::FeaturePAuthHintOnly]) { + switch ((AArch64PACKey::ID)(KeyID)) { + case AArch64PACKey::DA: + KeyID = AArch64PACKey::IA; + break; + case AArch64PACKey::DB: + KeyID = AArch64PACKey::IB; + break; + default: + break; + } } } -- Gitee