Manna created this revision. Manna added a reviewer: erichkeane. Herald added subscribers: manas, ASDenysPetrov, dkrupp, donat.nagy, Szelethus, a.sidorin, baloghadamsoftware. Herald added a project: All. Manna requested review of this revision. Herald added a project: clang.
This patch uses castAs instead of getAs to resolve dereference issue with nullptr boundObjC when calling canAssignObjCInterfaces() or isObjCIdType() in applyObjCTypeArgs() since getAs returns nullptr. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D151964 Files: clang/lib/Sema/SemaType.cpp Index: clang/lib/Sema/SemaType.cpp =================================================================== --- clang/lib/Sema/SemaType.cpp +++ clang/lib/Sema/SemaType.cpp @@ -950,7 +950,7 @@ // Retrieve the bound. QualType bound = typeParam->getUnderlyingType(); - const auto *boundObjC = bound->getAs<ObjCObjectPointerType>(); + const auto *boundObjC = bound->castAs<ObjCObjectPointerType>(); // Determine whether the type argument is substitutable for the bound. if (typeArgObjC->isObjCIdType()) {
Index: clang/lib/Sema/SemaType.cpp =================================================================== --- clang/lib/Sema/SemaType.cpp +++ clang/lib/Sema/SemaType.cpp @@ -950,7 +950,7 @@ // Retrieve the bound. QualType bound = typeParam->getUnderlyingType(); - const auto *boundObjC = bound->getAs<ObjCObjectPointerType>(); + const auto *boundObjC = bound->castAs<ObjCObjectPointerType>(); // Determine whether the type argument is substitutable for the bound. if (typeArgObjC->isObjCIdType()) {
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits