Author: Alfonso Gregory Date: 2021-10-20T10:32:46-07:00 New Revision: 2caf7571e1020ae1024ab3f2d52ecc9aea85687d
URL: https://github.com/llvm/llvm-project/commit/2caf7571e1020ae1024ab3f2d52ecc9aea85687d DIFF: https://github.com/llvm/llvm-project/commit/2caf7571e1020ae1024ab3f2d52ecc9aea85687d.diff LOG: [Clang][AST] Resolve FIXME: Remove ObjCObjectPointer from isSpecifierType There is no reason to have this here, (since all tests pass) and it isn't even a specifier anyway. We can just treat it as a pointer instead. Differential Revision: https://reviews.llvm.org/D110068 Added: Modified: clang/lib/AST/DeclPrinter.cpp clang/lib/AST/Type.cpp Removed: ################################################################################ diff --git a/clang/lib/AST/DeclPrinter.cpp b/clang/lib/AST/DeclPrinter.cpp index 4dcf3d0e6ab12..f2d7a792567d4 100644 --- a/clang/lib/AST/DeclPrinter.cpp +++ b/clang/lib/AST/DeclPrinter.cpp @@ -153,11 +153,14 @@ static QualType GetBaseType(QualType T) { while (!BaseType->isSpecifierType()) { if (const PointerType *PTy = BaseType->getAs<PointerType>()) BaseType = PTy->getPointeeType(); + else if (const ObjCObjectPointerType *OPT = + BaseType->getAs<ObjCObjectPointerType>()) + BaseType = OPT->getPointeeType(); else if (const BlockPointerType *BPy = BaseType->getAs<BlockPointerType>()) BaseType = BPy->getPointeeType(); - else if (const ArrayType* ATy = dyn_cast<ArrayType>(BaseType)) + else if (const ArrayType *ATy = dyn_cast<ArrayType>(BaseType)) BaseType = ATy->getElementType(); - else if (const FunctionType* FTy = BaseType->getAs<FunctionType>()) + else if (const FunctionType *FTy = BaseType->getAs<FunctionType>()) BaseType = FTy->getReturnType(); else if (const VectorType *VTy = BaseType->getAs<VectorType>()) BaseType = VTy->getElementType(); diff --git a/clang/lib/AST/Type.cpp b/clang/lib/AST/Type.cpp index 58cae0378a98c..e7cdf58839631 100644 --- a/clang/lib/AST/Type.cpp +++ b/clang/lib/AST/Type.cpp @@ -2785,7 +2785,6 @@ bool Type::isSpecifierType() const { case DependentTemplateSpecialization: case ObjCInterface: case ObjCObject: - case ObjCObjectPointer: // FIXME: object pointers aren't really specifiers return true; default: return false; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits