Author: Shafik Yaghmour
Date: 2025-08-23T19:13:22-07:00
New Revision: eadf0ebc9026f4593db10502f26a15ac0cdedbb5

URL: 
https://github.com/llvm/llvm-project/commit/eadf0ebc9026f4593db10502f26a15ac0cdedbb5
DIFF: 
https://github.com/llvm/llvm-project/commit/eadf0ebc9026f4593db10502f26a15ac0cdedbb5.diff

LOG: [Clang][Codegen][NFC] Add nullptr check in fillOutputFields (#154623)

Static analysis flagged that we were checking for nullptr in Member.FD
but soon after unconditionally accessing it. It looks like we should be
checking, so I added a check.

Added: 
    

Modified: 
    clang/lib/CodeGen/CGRecordLayoutBuilder.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp 
b/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
index e1310aed818ad..5f6136c917ac2 100644
--- a/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
+++ b/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
@@ -1027,8 +1027,11 @@ void CGRecordLowering::fillOutputFields() {
       if (Member.FD)
         Fields[Member.FD->getCanonicalDecl()] = FieldTypes.size() - 1;
       // A field without storage must be a bitfield.
-      if (!Member.Data)
+      if (!Member.Data) {
+        assert(Member.FD &&
+               "Member.Data is a nullptr so Member.FD should not be");
         setBitFieldInfo(Member.FD, Member.Offset, FieldTypes.back());
+      }
     } else if (Member.Kind == MemberInfo::Base)
       NonVirtualBases[Member.RD] = FieldTypes.size() - 1;
     else if (Member.Kind == MemberInfo::VBase)


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to