[clang] [Clang] Prevent null pointer dereference in target attribute mangling (PR #94228)
via cfe-commits
cfe-commits at lists.llvm.org
Mon Jun 3 07:23:10 PDT 2024
https://github.com/smanna12 created https://github.com/llvm/llvm-project/pull/94228
This patch adds an assert in getMangledNameImpl() to ensure that the expected attributes (TargetAttr, TargetVersionAttr, and TargetClonesAttr) are checked for NULL value before being used by appendAttributeMangling().
>From 5459e49d79f0916b198446fe9a0c06e7f24f7f7d Mon Sep 17 00:00:00 2001
From: "Manna, Soumi" <soumi.manna at intel.com>
Date: Fri, 31 May 2024 16:38:52 -0700
Subject: [PATCH] [Clang] Prevent null pointer dereference in target attribute
mangling
This patch adds an assert in getMangledNameImpl() to ensure that the
expected attributes (TargetAttr, TargetVersionAttr, and
TargetClonesAttr) are checked for NULL value before being used by appendAttributeMangling().
---
clang/lib/CodeGen/CodeGenModule.cpp | 3 +++
1 file changed, 3 insertions(+)
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp
index c2314c3a57d33..7541817e41e86 100644
--- a/clang/lib/CodeGen/CodeGenModule.cpp
+++ b/clang/lib/CodeGen/CodeGenModule.cpp
@@ -1853,18 +1853,21 @@ static std::string getMangledNameImpl(CodeGenModule &CGM, GlobalDecl GD,
break;
case MultiVersionKind::Target: {
auto *Attr = FD->getAttr<TargetAttr>();
+ assert(Attr && "Expected TargetAttr to be present for attribute mangling");
const ABIInfo &Info = CGM.getTargetCodeGenInfo().getABIInfo();
Info.appendAttributeMangling(Attr, Out);
break;
}
case MultiVersionKind::TargetVersion: {
auto *Attr = FD->getAttr<TargetVersionAttr>();
+ assert(Attr && "Expected TargetVersionAttr to be present for attribute mangling");
const ABIInfo &Info = CGM.getTargetCodeGenInfo().getABIInfo();
Info.appendAttributeMangling(Attr, Out);
break;
}
case MultiVersionKind::TargetClones: {
auto *Attr = FD->getAttr<TargetClonesAttr>();
+ assert(Attr && "Expected TargetClonesAttr to be present for attribute mangling");
unsigned Index = GD.getMultiVersionIndex();
const ABIInfo &Info = CGM.getTargetCodeGenInfo().getABIInfo();
Info.appendAttributeMangling(Attr, Index, Out);
More information about the cfe-commits
mailing list