reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
4035 bool IsQualifiedFunction = T->isFunctionProtoType() && 4036 (!T->castAs<FunctionProtoType>()->getMethodQuals().empty() || 4037 T->castAs<FunctionProtoType>()->getRefQualifier() != RQ_None); 4043 if (auto *DT = T->getAs<DeducedType>()) { 4044 const AutoType *AT = T->getAs<AutoType>(); 4130 if (T->canHaveNullability(/*ResultIfUnknown*/false) && 4131 !T->getNullability(S.Context)) { 4189 switch (classifyPointerDeclarator(S, T, D, wrappingKind)) { 4345 if (T->canHaveNullability(/*ResultIfUnknown*/false) && 4346 !T->getNullability(S.Context)) { 4347 if (isVaList(T)) { 4353 if (T->isBlockPointerType()) 4355 else if (T->isMemberPointerType()) 4363 T = state.getAttributedType( 4364 createNullabilityAttr(Context, *attr, *inferNullability), T, T); 4364 createNullabilityAttr(Context, *attr, *inferNullability), T, T); 4370 T->isArrayType() && !T->getNullability(S.Context) && !isVaList(T) && 4370 T->isArrayType() && !T->getNullability(S.Context) && !isVaList(T) && 4370 T->isArrayType() && !T->getNullability(S.Context) && !isVaList(T) && 4392 warnAboutRedundantParens(S, D, T); 4393 T = S.BuildParenType(T); 4393 T = S.BuildParenType(T); 4405 T = S.BuildBlockPointerType(T, D.getIdentifierLoc(), Name); 4405 T = S.BuildBlockPointerType(T, D.getIdentifierLoc(), Name); 4411 T = S.BuildQualifiedType(T, DeclType.Loc, DeclType.Cls.TypeQuals); 4411 T = S.BuildQualifiedType(T, DeclType.Loc, DeclType.Cls.TypeQuals); 4417 if (LangOpts.CPlusPlus && S.CheckDistantExceptionSpec(T)) { 4428 if (LangOpts.ObjC && T->getAs<ObjCObjectType>()) { 4429 T = Context.getObjCObjectPointerType(T); 4429 T = Context.getObjCObjectPointerType(T); 4431 T = S.BuildQualifiedType(T, DeclType.Loc, DeclType.Ptr.TypeQuals); 4431 T = S.BuildQualifiedType(T, DeclType.Loc, DeclType.Ptr.TypeQuals); 4439 if (T->isImageType() || T->isSamplerT() || T->isPipeType() || 4439 if (T->isImageType() || T->isSamplerT() || T->isPipeType() || 4439 if (T->isImageType() || T->isSamplerT() || T->isPipeType() || 4440 T->isBlockPointerType()) { 4441 S.Diag(D.getIdentifierLoc(), diag::err_opencl_pointer_to_type) << T; 4446 T = S.BuildPointerType(T, DeclType.Loc, Name); 4446 T = S.BuildPointerType(T, DeclType.Loc, Name); 4448 T = S.BuildQualifiedType(T, DeclType.Loc, DeclType.Ptr.TypeQuals); 4448 T = S.BuildQualifiedType(T, DeclType.Loc, DeclType.Ptr.TypeQuals); 4453 if (LangOpts.CPlusPlus && S.CheckDistantExceptionSpec(T)) { 4458 T = S.BuildReferenceType(T, DeclType.Ref.LValueRef, DeclType.Loc, Name); 4458 T = S.BuildReferenceType(T, DeclType.Ref.LValueRef, DeclType.Loc, Name); 4461 T = S.BuildQualifiedType(T, DeclType.Loc, Qualifiers::Restrict); 4461 T = S.BuildQualifiedType(T, DeclType.Loc, Qualifiers::Restrict); 4467 if (LangOpts.CPlusPlus && S.CheckDistantExceptionSpec(T)) { 4516 const AutoType *AT = T->getContainedAutoType(); 4524 << getPrintableNameForEntity(Name) << T; 4525 T = QualType(); 4539 T = S.BuildArrayType(T, ASM, ArraySize, ATI.TypeQuals, 4539 T = S.BuildArrayType(T, ASM, ArraySize, ATI.TypeQuals, 4563 T = Context.IntTy; 4571 if (isa<ParenType>(T)) { 4573 << T << D.getSourceRange(); 4577 if (T != Context.DependentTy) { 4584 (T.hasQualifiers() || !isa<AutoType>(T) || 4584 (T.hasQualifiers() || !isa<AutoType>(T) || 4585 cast<AutoType>(T)->getKeyword() != 4589 << T << D.getDeclSpec().getSourceRange(); 4592 T = S.GetTypeFromParser(FTI.getTrailingReturnType(), &TInfo); 4593 if (T.isNull()) { 4595 T = Context.IntTy; 4606 if (!D.isInvalidType() && (T->isArrayType() || T->isFunctionType()) && 4606 if (!D.isInvalidType() && (T->isArrayType() || T->isFunctionType()) && 4615 S.Diag(DeclType.Loc, diagID) << T->isFunctionType() << T; 4615 S.Diag(DeclType.Loc, diagID) << T->isFunctionType() << T; 4616 T = Context.IntTy; 4622 if (T->isHalfType()) { 4626 << T << 0 /*pointer hint*/; 4639 if (T->isBlockPointerType() || T->isImageType() || T->isSamplerT() || 4639 if (T->isBlockPointerType() || T->isImageType() || T->isSamplerT() || 4639 if (T->isBlockPointerType() || T->isImageType() || T->isSamplerT() || 4640 T->isPipeType()) { 4642 << T << 1 /*hint off*/; 4660 if (T->isObjCObjectType()) { 4670 << 0 << T 4673 T = Context.getObjCObjectPointerType(T); 4673 T = Context.getObjCObjectPointerType(T); 4677 ObjCObjectPointerTypeLoc TLoc = TLB.push<ObjCObjectPointerTypeLoc>(T); 4679 TInfo = TLB.getTypeSourceInfo(Context, T); 4687 if ((T.getCVRQualifiers() || T->isAtomicType()) && 4687 if ((T.getCVRQualifiers() || T->isAtomicType()) && 4689 (T->isDependentType() || T->isRecordType()))) { 4689 (T->isDependentType() || T->isRecordType()))) { 4690 if (T->isVoidType() && !S.getLangOpts().CPlusPlus && 4695 S.Diag(DeclType.Loc, diag::err_func_returning_qualified_void) << T; 4697 diagnoseRedundantReturnTypeQualifiers(S, T, D, chunkIndex); 4701 if (T.isVolatileQualified() && S.getLangOpts().CPlusPlus2a) 4702 S.Diag(DeclType.Loc, diag::warn_deprecated_volatile_return) << T; 4708 if (T.getQualifiers().hasObjCLifetime()) { 4737 << T.getQualifiers().getObjCLifetime(); 4760 warnAboutAmbiguousFunction(S, D, DeclType, T); 4768 T = Context.getFunctionNoProtoType(T, EI); 4768 T = Context.getFunctionNoProtoType(T, EI); 4784 T = Context.getFunctionNoProtoType(T, EI); 4784 T = Context.getFunctionNoProtoType(T, EI); 4952 T = Context.getFunctionType(T, ParamTys, EPI); 4952 T = Context.getFunctionType(T, ParamTys, EPI); 5006 T = S.BuildMemberPointerType(T, ClsType, DeclType.Loc, 5006 T = S.BuildMemberPointerType(T, ClsType, DeclType.Loc, 5008 if (T.isNull()) { 5009 T = Context.IntTy; 5012 T = S.BuildQualifiedType(T, DeclType.Loc, DeclType.Mem.TypeQuals); 5012 T = S.BuildQualifiedType(T, DeclType.Loc, DeclType.Mem.TypeQuals); 5018 T = S.BuildReadPipeType(T, DeclType.Loc); 5018 T = S.BuildReadPipeType(T, DeclType.Loc); 5019 processTypeAttrs(state, T, TAL_DeclSpec, 5025 if (T.isNull()) { 5027 T = Context.IntTy; 5031 processTypeAttrs(state, T, TAL_DeclChunk, DeclType.getAttrs()); 5078 assert(!T.isNull() && "T must not be null after this point"); 5080 if (LangOpts.CPlusPlus && T->isFunctionType()) { 5081 const FunctionProtoType *FnTy = T->getAs<FunctionProtoType>(); 5153 << Kind << D.isFunctionDeclarator() << T 5162 T = Context.getFunctionType(FnTy->getReturnType(), FnTy->getParamTypes(), 5168 T = S.BuildParenType(T); 5168 T = S.BuildParenType(T); 5174 processTypeAttrs(state, T, TAL_DeclName, D.getAttributes()); 5177 state.diagnoseIgnoredTypeAttrs(T); 5183 T->isObjectType()) 5184 T.addConst(); 5188 if (T.isVolatileQualified() && S.getLangOpts().CPlusPlus2a && 5191 S.Diag(D.getIdentifierLoc(), diag::warn_deprecated_volatile_param) << T; 5212 if (!T->containsUnexpandedParameterPack()) { 5215 << T << D.getSourceRange(); 5218 T = Context.getPackExpansionType(T, None); 5218 T = Context.getPackExpansionType(T, None); 5230 if (T->containsUnexpandedParameterPack()) 5231 T = Context.getPackExpansionType(T, None); 5231 T = Context.getPackExpansionType(T, None); 5273 assert(!T.isNull() && "T must not be null at the end of this function"); 5275 return Context.getTrivialTypeSourceInfo(T); 5277 return GetTypeSourceInfoForDeclarator(state, T, TInfo);