[llvm] Add non-null check before accessing pointer (PR #83459)

via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 29 10:28:20 PST 2024


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-backend-amdgpu

Author: Martin Wehking (MartinWehking)

<details>
<summary>Changes</summary>

Add a check if RC is not null to ensure that a consecutive access is safe.

A static analyzer flagged this issue since hasVectorRegisters potentially dereferences RC.

---
Full diff: https://github.com/llvm/llvm-project/pull/83459.diff


1 Files Affected:

- (modified) llvm/lib/Target/AMDGPU/SIFoldOperands.cpp (+1-1) 


``````````diff
diff --git a/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp b/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
index 634b4aeb30a730..1cef4f1fa81e3a 100644
--- a/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
+++ b/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
@@ -1054,7 +1054,7 @@ void SIFoldOperands::foldOperand(
       // Don't fold if OpToFold doesn't hold an aligned register.
       const TargetRegisterClass *RC =
           TRI->getRegClassForReg(*MRI, OpToFold.getReg());
-      if (TRI->hasVectorRegisters(RC) && OpToFold.getSubReg()) {
+      if (RC && TRI->hasVectorRegisters(RC) && OpToFold.getSubReg()) {
         unsigned SubReg = OpToFold.getSubReg();
         if (const TargetRegisterClass *SubRC =
                 TRI->getSubRegisterClass(RC, SubReg))

``````````

</details>


https://github.com/llvm/llvm-project/pull/83459


More information about the llvm-commits mailing list