[llvm] Silence illegal address computation warning (PR #83244)

Timm Baeder via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 1 07:25:06 PST 2024


https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/83244

>From 74f74cff40ebd567643a7b8c0f96dddc36987d68 Mon Sep 17 00:00:00 2001
From: Martin Wehking <martin.wehking at codeplay.com>
Date: Wed, 28 Feb 2024 10:03:17 +0000
Subject: [PATCH 1/2] Silence illegal address computation warning

Add an assertion before an access of ValMappings to ensure that
it is within the array bounds.
Silence a static analyzer warning through this.
---
 llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def | 1 +
 1 file changed, 1 insertion(+)

diff --git a/llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def b/llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def
index d6a94c972340ea..e7b3afc91d6520 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def
+++ b/llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def
@@ -284,6 +284,7 @@ const RegisterBankInfo::ValueMapping *getValueMapping(unsigned BankID,
     break;
   }
 
+  assert(Idx < sizeof(ValMappings) / sizeof(ValMappings[0]));
   assert(Log2_32_Ceil(Size) == Log2_32_Ceil(ValMappings[Idx].BreakDown->Length));
   assert(BankID == ValMappings[Idx].BreakDown->RegBank->getID());
 

>From 389f6420b0e2abc708b91f08980cd1b02165ee9b Mon Sep 17 00:00:00 2001
From: Martin Wehking <martin.wehking at codeplay.com>
Date: Fri, 1 Mar 2024 14:46:47 +0000
Subject: [PATCH 2/2] Use std::size for C-array size calculation

---
 llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def b/llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def
index e7b3afc91d6520..0d41d5d2186fd8 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def
+++ b/llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def
@@ -284,7 +284,7 @@ const RegisterBankInfo::ValueMapping *getValueMapping(unsigned BankID,
     break;
   }
 
-  assert(Idx < sizeof(ValMappings) / sizeof(ValMappings[0]));
+  assert(Idx < std::size(ValMappings));
   assert(Log2_32_Ceil(Size) == Log2_32_Ceil(ValMappings[Idx].BreakDown->Length));
   assert(BankID == ValMappings[Idx].BreakDown->RegBank->getID());
 



More information about the llvm-commits mailing list