forked from OSchip/llvm-project
CGObjCMac - silence static analyzer dyn_cast<>/getAs<> null dereference warnings. NFCI.
The static analyzer is warning about potential null dereferences, but we should be able to use cast<>/castAs<> directly and if not assert will fire for us. llvm-svn: 373520
This commit is contained in:
parent
c7be067974
commit
5a8b229c97
|
@ -2517,14 +2517,12 @@ void CGObjCCommonMac::BuildRCRecordLayout(const llvm::StructLayout *RecLayout,
|
|||
}
|
||||
|
||||
if (const ArrayType *Array = CGM.getContext().getAsArrayType(FQT)) {
|
||||
const ConstantArrayType *CArray =
|
||||
dyn_cast_or_null<ConstantArrayType>(Array);
|
||||
auto *CArray = cast<ConstantArrayType>(Array);
|
||||
uint64_t ElCount = CArray->getSize().getZExtValue();
|
||||
assert(CArray && "only array with known element size is supported");
|
||||
FQT = CArray->getElementType();
|
||||
while (const ArrayType *Array = CGM.getContext().getAsArrayType(FQT)) {
|
||||
const ConstantArrayType *CArray =
|
||||
dyn_cast_or_null<ConstantArrayType>(Array);
|
||||
auto *CArray = cast<ConstantArrayType>(Array);
|
||||
ElCount *= CArray->getSize().getZExtValue();
|
||||
FQT = CArray->getElementType();
|
||||
}
|
||||
|
@ -4902,7 +4900,7 @@ LValue CGObjCMac::EmitObjCValueForIvar(CodeGen::CodeGenFunction &CGF,
|
|||
const ObjCIvarDecl *Ivar,
|
||||
unsigned CVRQualifiers) {
|
||||
const ObjCInterfaceDecl *ID =
|
||||
ObjectTy->getAs<ObjCObjectType>()->getInterface();
|
||||
ObjectTy->castAs<ObjCObjectType>()->getInterface();
|
||||
return EmitValueForIvarAtOffset(CGF, ID, BaseValue, Ivar, CVRQualifiers,
|
||||
EmitIvarOffset(CGF, ID, Ivar));
|
||||
}
|
||||
|
@ -7053,7 +7051,7 @@ LValue CGObjCNonFragileABIMac::EmitObjCValueForIvar(
|
|||
llvm::Value *BaseValue,
|
||||
const ObjCIvarDecl *Ivar,
|
||||
unsigned CVRQualifiers) {
|
||||
ObjCInterfaceDecl *ID = ObjectTy->getAs<ObjCObjectType>()->getInterface();
|
||||
ObjCInterfaceDecl *ID = ObjectTy->castAs<ObjCObjectType>()->getInterface();
|
||||
llvm::Value *Offset = EmitIvarOffset(CGF, ID, Ivar);
|
||||
return EmitValueForIvarAtOffset(CGF, ID, BaseValue, Ivar, CVRQualifiers,
|
||||
Offset);
|
||||
|
|
Loading…
Reference in New Issue