diff --git a/clang/lib/Parse/ParseStmt.cpp b/clang/lib/Parse/ParseStmt.cpp --- a/clang/lib/Parse/ParseStmt.cpp +++ b/clang/lib/Parse/ParseStmt.cpp @@ -883,8 +883,10 @@ Stmt *NextDeepest = Case.get(); if (TopLevelCase.isInvalid()) TopLevelCase = Case; - else + else { + assert(DeepestParsedCaseStmt && "DeepestParsedCaseStmt cannot be null"); Actions.ActOnCaseStmtBody(DeepestParsedCaseStmt, Case.get()); + } DeepestParsedCaseStmt = NextDeepest; } diff --git a/clang/lib/Sema/SemaExprObjC.cpp b/clang/lib/Sema/SemaExprObjC.cpp --- a/clang/lib/Sema/SemaExprObjC.cpp +++ b/clang/lib/Sema/SemaExprObjC.cpp @@ -2438,6 +2438,7 @@ if (!ReceiverType.isNull()) receiverTypeInfo = Context.getTrivialTypeSourceInfo(ReceiverType); + assert(receiverTypeInfo && "receiverTypeInfo cannot be null"); return BuildClassMessage(receiverTypeInfo, ReceiverType, /*SuperLoc=*/isSuperReceiver ? Loc : SourceLocation(), Sel, Method, Loc, Loc, Loc, Args, diff --git a/clang/lib/Sema/SemaObjCProperty.cpp b/clang/lib/Sema/SemaObjCProperty.cpp --- a/clang/lib/Sema/SemaObjCProperty.cpp +++ b/clang/lib/Sema/SemaObjCProperty.cpp @@ -1363,10 +1363,9 @@ if (!Context.hasSameType(PropertyIvarType, IvarType)) { if (isa(PropertyIvarType) && isa(IvarType)) - compat = - Context.canAssignObjCInterfaces( - PropertyIvarType->getAs(), - IvarType->getAs()); + compat = Context.canAssignObjCInterfaces( + PropertyIvarType->castAs(), + IvarType->castAs()); else { compat = (CheckAssignmentConstraints(PropertyIvarLoc, PropertyIvarType, IvarType) diff --git a/clang/lib/Sema/SemaType.cpp b/clang/lib/Sema/SemaType.cpp --- a/clang/lib/Sema/SemaType.cpp +++ b/clang/lib/Sema/SemaType.cpp @@ -2709,7 +2709,7 @@ } // Only support _BitInt elements with byte-sized power of 2 NumBits. if (CurType->isBitIntType()) { - unsigned NumBits = CurType->getAs()->getNumBits(); + unsigned NumBits = CurType->casttAs()->getNumBits(); if (!llvm::isPowerOf2_32(NumBits) || NumBits < 8) { Diag(AttrLoc, diag::err_attribute_invalid_bitint_vector_type) << (NumBits < 8);