teemperor created this revision. Herald added subscribers: lldb-commits, JDevlieghere, abidh. Herald added a project: LLDB.
All type in these functions need be valid and Clang types, so we might as well replace these checks with IsClangType. Also lets IsClangType explicitly check for validity instead of assuming that the TypeSystem is a nullptr. Repository: rLLDB LLDB https://reviews.llvm.org/D70001 Files: lldb/source/Symbol/ClangASTContext.cpp lldb/source/Symbol/ClangUtil.cpp Index: lldb/source/Symbol/ClangUtil.cpp =================================================================== --- lldb/source/Symbol/ClangUtil.cpp +++ lldb/source/Symbol/ClangUtil.cpp @@ -15,6 +15,10 @@ using namespace lldb_private; bool ClangUtil::IsClangType(const CompilerType &ct) { + // Invalid types are never Clang types. + if (!ct) + return false; + if (llvm::dyn_cast_or_null<ClangASTContext>(ct.GetTypeSystem()) == nullptr) return false; Index: lldb/source/Symbol/ClangASTContext.cpp =================================================================== --- lldb/source/Symbol/ClangASTContext.cpp +++ lldb/source/Symbol/ClangASTContext.cpp @@ -3601,7 +3601,7 @@ } bool ClangASTContext::IsObjCClassType(const CompilerType &type) { - if (type) { + if (ClangUtil::IsClangType(type)) { clang::QualType qual_type(ClangUtil::GetCanonicalQualType(type)); const clang::ObjCObjectPointerType *obj_pointer_type = @@ -3886,7 +3886,7 @@ bool ClangASTContext::IsObjCObjectPointerType(const CompilerType &type, CompilerType *class_type_ptr) { - if (!type) + if (!ClangUtil::IsClangType(type)) return false; clang::QualType qual_type(ClangUtil::GetCanonicalQualType(type));
Index: lldb/source/Symbol/ClangUtil.cpp =================================================================== --- lldb/source/Symbol/ClangUtil.cpp +++ lldb/source/Symbol/ClangUtil.cpp @@ -15,6 +15,10 @@ using namespace lldb_private; bool ClangUtil::IsClangType(const CompilerType &ct) { + // Invalid types are never Clang types. + if (!ct) + return false; + if (llvm::dyn_cast_or_null<ClangASTContext>(ct.GetTypeSystem()) == nullptr) return false; Index: lldb/source/Symbol/ClangASTContext.cpp =================================================================== --- lldb/source/Symbol/ClangASTContext.cpp +++ lldb/source/Symbol/ClangASTContext.cpp @@ -3601,7 +3601,7 @@ } bool ClangASTContext::IsObjCClassType(const CompilerType &type) { - if (type) { + if (ClangUtil::IsClangType(type)) { clang::QualType qual_type(ClangUtil::GetCanonicalQualType(type)); const clang::ObjCObjectPointerType *obj_pointer_type = @@ -3886,7 +3886,7 @@ bool ClangASTContext::IsObjCObjectPointerType(const CompilerType &type, CompilerType *class_type_ptr) { - if (!type) + if (!ClangUtil::IsClangType(type)) return false; clang::QualType qual_type(ClangUtil::GetCanonicalQualType(type));
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits