Author: Simon Pilgrim
Date: 2022-01-08T16:18:55Z
New Revision: 6ee589e2f563a2a5c91f9aeb2762f092dd197e32

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

LOG: [CGObjCMac] Use castAs<> instead of getAs<> to avoid dereference of 
nullptr inside BuildRCBlockVarRecordLayout

This will assert the cast is correct instead of returning nullptr (UnionType is 
a subtype of RecordType so this should be clean).

Added: 
    

Modified: 
    clang/lib/CodeGen/CGObjCMac.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/CodeGen/CGObjCMac.cpp b/clang/lib/CodeGen/CGObjCMac.cpp
index d769574c1f5ef..d07524be127bb 100644
--- a/clang/lib/CodeGen/CGObjCMac.cpp
+++ b/clang/lib/CodeGen/CGObjCMac.cpp
@@ -2487,7 +2487,7 @@ void CGObjCCommonMac::BuildRCRecordLayout(const 
llvm::StructLayout *RecLayout,
       if (FQT->isUnionType())
         HasUnion = true;
 
-      BuildRCBlockVarRecordLayout(FQT->getAs<RecordType>(),
+      BuildRCBlockVarRecordLayout(FQT->castAs<RecordType>(),
                                   BytePos + FieldOffset, HasUnion);
       continue;
     }


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

Reply via email to