gAlfonso-bit created this revision. gAlfonso-bit added a reviewer: ahatanak. gAlfonso-bit requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits.
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. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D110068 Files: clang/lib/AST/DeclPrinter.cpp clang/lib/AST/Type.cpp clang/lib/AST/TypePrinter.cpp Index: clang/lib/AST/TypePrinter.cpp =================================================================== --- clang/lib/AST/TypePrinter.cpp +++ clang/lib/AST/TypePrinter.cpp @@ -310,7 +310,6 @@ SaveAndRestore<bool> PrevPHIsEmpty(HasEmptyPlaceHolder); // Print qualifiers as appropriate. - bool CanPrefixQualifiers = false; bool NeedARCStrongQualifier = false; CanPrefixQualifiers = canPrefixQualifiers(T, NeedARCStrongQualifier); Index: clang/lib/AST/Type.cpp =================================================================== --- clang/lib/AST/Type.cpp +++ clang/lib/AST/Type.cpp @@ -2785,7 +2785,6 @@ case DependentTemplateSpecialization: case ObjCInterface: case ObjCObject: - case ObjCObjectPointer: // FIXME: object pointers aren't really specifiers return true; default: return false; Index: clang/lib/AST/DeclPrinter.cpp =================================================================== --- clang/lib/AST/DeclPrinter.cpp +++ clang/lib/AST/DeclPrinter.cpp @@ -153,11 +153,14 @@ 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();
Index: clang/lib/AST/TypePrinter.cpp =================================================================== --- clang/lib/AST/TypePrinter.cpp +++ clang/lib/AST/TypePrinter.cpp @@ -310,7 +310,6 @@ SaveAndRestore<bool> PrevPHIsEmpty(HasEmptyPlaceHolder); // Print qualifiers as appropriate. - bool CanPrefixQualifiers = false; bool NeedARCStrongQualifier = false; CanPrefixQualifiers = canPrefixQualifiers(T, NeedARCStrongQualifier); Index: clang/lib/AST/Type.cpp =================================================================== --- clang/lib/AST/Type.cpp +++ clang/lib/AST/Type.cpp @@ -2785,7 +2785,6 @@ case DependentTemplateSpecialization: case ObjCInterface: case ObjCObject: - case ObjCObjectPointer: // FIXME: object pointers aren't really specifiers return true; default: return false; Index: clang/lib/AST/DeclPrinter.cpp =================================================================== --- clang/lib/AST/DeclPrinter.cpp +++ clang/lib/AST/DeclPrinter.cpp @@ -153,11 +153,14 @@ 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();
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits