Home | History | Annotate | Download | only in Sema

Lines Matching defs:NewFD

8295     Sema &SemaRef, LookupResult &Previous, FunctionDecl *NewFD,
8297 DeclarationName Name = NewFD->getDeclName();
8298 DeclContext *NewDC = NewFD->getDeclContext();
8305 NewFD->getFriendObjectKind() ? diag::err_qualified_friend_no_match :
8307 LookupResult Prev(SemaRef, Name, NewFD->getLocation(),
8312 NewFD->setInvalidDecl();
8319 CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(NewFD);
8320 DifferentNameValidatorCCC CCC(SemaRef.Context, NewFD,
8327 hasSimilarParameters(SemaRef.Context, FD, NewFD, MismatchedParams)) {
8350 hasSimilarParameters(SemaRef.Context, FD, NewFD, MismatchedParams)) {
8369 NewFD->getTypeSourceInfo(), Previous, ExtraArgs.TemplateParamLists,
8403 SemaRef.Diag(NewFD->getLocation(), DiagMsg)
8404 << Name << NewDC << IsDefinition << NewFD->getLocation();
8407 if (CXXMethodDecl *NewMD = dyn_cast<CXXMethodDecl>(NewFD))
8426 << NewFD->getParamDecl(Idx - 1)->getType();
8482 FunctionDecl *NewFD = nullptr;
8496 NewFD = FunctionDecl::Create(SemaRef.Context, DC, D.getBeginLoc(), NameInfo,
8501 NewFD->setInvalidDecl();
8503 return NewFD;
8994 FunctionDecl *NewFD = CreateNewFunctionDecl(*this, D, DC, R, TInfo, SC,
8996 if (!NewFD) return nullptr;
8999 NewFD->setTopLevelDeclInObjCContainer();
9004 NewFD->setLexicalDeclContext(CurContext);
9007 NewFD->setLocalExternDecl();
9018 NewFD->setImplicitlyInline();
9025 dyn_cast<CXXRecordDecl>(NewFD->getDeclContext())) {
9026 if (Parent->isInterface() && cast<CXXMethodDecl>(NewFD)->isUserProvided())
9027 NewFD->setPure(true);
9035 SetNestedNameSpecifier(*this, NewFD, D);
9039 NewFD->setInvalidDecl();
9056 NewFD->setInvalidDecl();
9063 Diag(NewFD->getLocation(), diag::err_destructor_template);
9064 NewFD->setInvalidDecl();
9077 NewFD->getLocation(),
9079 NewFD);
9081 NewFD->setDescribedFunctionTemplate(FunctionTemplate);
9085 NewFD->setTemplateParameterListsInfo(Context,
9094 NewFD->setTemplateParameterListsInfo(Context, TemplateParamLists);
9122 NewFD->setInvalidDecl();
9128 NewFD->setTemplateParameterListsInfo(Context, TemplateParamLists);
9132 NewFD->setInvalidDecl();
9142 if (isVirtual && !NewFD->isInvalidDecl()) {
9151 } else if (NewFD->getDescribedFunctionTemplate()) {
9159 NewFD->setVirtualAsWritten(true);
9163 NewFD->getReturnType()->isUndeducedType())
9168 (NewFD->isDependentContext() ||
9170 NewFD->getReturnType()->isUndeducedType()) {
9178 NewFD->getType()->castAs<FunctionProtoType>();
9181 NewFD->setType(Context.getFunctionType(Result, FPT->getParamTypes(),
9188 if (isInline && !NewFD->isInvalidDecl()) {
9201 if (hasExplicit && !NewFD->isInvalidDecl() &&
9202 !isa<CXXDeductionGuideDecl>(NewFD)) {
9208 } else if (!isa<CXXConstructorDecl>(NewFD) &&
9209 !isa<CXXConversionDecl>(NewFD)) {
9222 NewFD->setImplicitlyInline();
9227 if (isa<CXXDestructorDecl>(NewFD) &&
9232 NewFD->setConstexprKind(getLangOpts().CPlusPlus20
9240 (NewFD->getOverloadedOperator() == OO_New ||
9241 NewFD->getOverloadedOperator() == OO_Array_New ||
9242 NewFD->getOverloadedOperator() == OO_Delete ||
9243 NewFD->getOverloadedOperator() == OO_Array_Delete)) {
9246 << NewFD;
9247 NewFD->setConstexprKind(ConstexprSpecKind::Constexpr);
9260 NewFD->setModulePrivate();
9271 NewFD->setObjectOfFriendDecl();
9272 NewFD->setAccess(AS_public);
9283 NewFD->setDefaulted();
9287 NewFD->setDeletedAsWritten();
9291 if (isa<CXXMethodDecl>(NewFD) && DC == CurContext &&
9296 NewFD->setImplicitlyInline();
9299 if (SC == SC_Static && isa<CXXMethodDecl>(NewFD) &&
9315 (getLangOpts().MSVCCompat && NewFD->getDescribedFunctionTemplate()))
9327 NewFD->setType(Context.getFunctionType(
9333 FilterLookupForScope(Previous, OriginalDC, S, shouldConsiderLinkage(NewFD),
9342 NewFD->addAttr(AsmLabelAttr::Create(Context, SE->getString(),
9347 ExtnameUndeclaredIdentifiers.find(NewFD->getIdentifier());
9349 if (isDeclExternC(NewFD)) {
9350 NewFD->addAttr(I->second);
9353 Diag(NewFD->getLocation(), diag::warn_redefine_extname_not_applied)
9354 << /*Variable*/0 << NewFD;
9359 // declaration NewFD, if they are available. First scavenge them into Params.
9373 assert(Param->getDeclContext() != NewFD && "Was set before ?");
9374 Param->setDeclContext(NewFD);
9378 NewFD->setInvalidDecl();
9388 getTagInjectionContext(NewFD->getLexicalDeclContext());
9404 TD->setDeclContext(NewFD);
9405 NewFD->addDecl(TD);
9429 BuildParmVarDeclForTypedef(NewFD, D.getIdentifierLoc(), AI);
9434 assert(R->isFunctionNoProtoType() && NewFD->getNumParams() == 0 &&
9439 NewFD->setParams(Params);
9442 NewFD->addAttr(C11NoReturnAttr::Create(Context,
9448 if (!NewFD->isInvalidDecl() &&
9449 NewFD->getReturnType()->isVariablyModifiedType()) {
9450 Diag(NewFD->getLocation(), diag::err_vm_func_decl);
9451 NewFD->setInvalidDecl();
9456 !NewFD->hasAttr<SectionAttr>())
9457 NewFD->addAttr(PragmaClangTextSectionAttr::CreateImplicit(
9463 !NewFD->hasAttr<SectionAttr>()) {
9464 NewFD->addAttr(SectionAttr::CreateImplicit(
9471 NewFD))
9472 NewFD->dropAttr<SectionAttr>();
9477 if (!NewFD->hasAttr<CodeSegAttr>()) {
9478 if (Attr *SAttr = getImplicitCodeSegOrSectionAttrForFunction(NewFD,
9480 NewFD->addAttr(SAttr);
9485 ProcessDeclAttributes(S, NewFD, D);
9490 LangAS AddressSpace = NewFD->getReturnType().getAddressSpace();
9492 Diag(NewFD->getLocation(),
9494 NewFD->setInvalidDecl();
9499 checkDeviceDecl(NewFD, D.getBeginLoc());
9503 if (!NewFD->isInvalidDecl() && NewFD->isMain())
9504 CheckMain(NewFD, D.getDeclSpec());
9506 if (!NewFD->isInvalidDecl() && NewFD->isMSVCRTEntryPoint())
9507 CheckMSVCRTEntryPoint(NewFD);
9509 if (!NewFD->isInvalidDecl())
9510 D.setRedeclaration(CheckFunctionDeclaration(S, NewFD, Previous,
9515 assert((NewFD->isInvalidDecl() || !D.isRedeclaration() ||
9522 const FunctionType *FT = NewFD->getType()->castAs<FunctionType>();
9530 Diag(NewFD->getLocation(), DiagID)
9535 if (NewFD->getReturnType().hasNonTrivialToPrimitiveDestructCUnion() ||
9536 NewFD->getReturnType().hasNonTrivialToPrimitiveCopyCUnion())
9537 checkNonTrivialCUnion(NewFD->getReturnType(),
9538 NewFD->getReturnTypeSourceRange().getBegin(),
9549 NewFD->isReplaceableGlobalAllocationFunction() &&
9550 !NewFD->hasAttr<UsedAttr>())
9553 << NewFD->getDeclName();
9568 if (NewFD->isInvalidDecl()) {
9602 maybeAddCUDAHostDeviceAttrs(NewFD, Previous);
9609 (NewFD->getType()->isDependentType() || DC->isDependentContext() ||
9614 if (CheckDependentFunctionTemplateSpecialization(NewFD, TemplateArgs,
9616 NewFD->setInvalidDecl();
9621 } else if (!NewFD->isInvalidDecl() &&
9623 NewFD, (HasExplicitTemplateArgs ? &TemplateArgs : nullptr),
9625 NewFD->setInvalidDecl();
9631 NewFD->getTemplateSpecializationInfo();
9634 Diag(NewFD->getLocation(),
9641 Diag(NewFD->getLocation(),
9646 } else if (isMemberSpecialization && isa<CXXMethodDecl>(NewFD)) {
9647 if (CheckMemberSpecialization(NewFD, Previous))
9648 NewFD->setInvalidDecl();
9653 if (!NewFD->isInvalidDecl() && NewFD->isMain())
9654 CheckMain(NewFD, D.getDeclSpec());
9656 if (!NewFD->isInvalidDecl() && NewFD->isMSVCRTEntryPoint())
9657 CheckMSVCRTEntryPoint(NewFD);
9659 if (!NewFD->isInvalidDecl())
9660 D.setRedeclaration(CheckFunctionDeclaration(S, NewFD, Previous,
9667 assert((NewFD->isInvalidDecl() || !D.isRedeclaration() ||
9673 : NewFD);
9675 if (isFriend && NewFD->getPreviousDecl()) {
9677 if (!NewFD->isInvalidDecl())
9678 Access = NewFD->getPreviousDecl()->getAccess();
9680 NewFD->setAccess(Access);
9684 if (NewFD->isOverloadedOperator() && !DC->isRecord() &&
9707 if (NewFD->isInvalidDecl()) {
9713 if (isa<CXXRecordDecl>(NewFD->getDeclContext()))
9714 NewFD->setAccess(AS_public);
9735 } else if (NewFD->isCPUDispatchMultiVersion() ||
9736 NewFD->isCPUSpecificMultiVersion()) {
9756 *this, Previous, NewFD, ExtraArgs, false, nullptr)) {
9766 *this, Previous, NewFD, ExtraArgs, true, S)) {
9772 isa<CXXMethodDecl>(NewFD) && NewFD->isOutOfLine() &&
9782 Diag(NewFD->getLocation(), diag::ext_out_of_line_declaration)
9790 NewFD->getDeclContext()->getRedeclContext()->isFileContext()) {
9793 if (NewFD->getLanguageLinkage() == CLanguageLinkage) {
9797 NewFD->addAttr(BuiltinAttr::CreateImplicit(Context, BuiltinID));
9805 NewFD->getType(), BuiltinType))
9806 NewFD->addAttr(BuiltinAttr::CreateImplicit(Context, BuiltinID));
9811 NewFD->addAttr(BuiltinAttr::CreateImplicit(Context, BuiltinID));
9817 ProcessPragmaWeak(S, NewFD);
9818 checkAttributesAfterMerging(*this, *NewFD);
9820 AddKnownFunctionAttributes(NewFD);
9822 if (NewFD->hasAttr<OverloadableAttr>() &&
9823 !NewFD->getType()->getAs<FunctionProtoType>()) {
9824 Diag(NewFD->getLocation(),
9826 << NewFD;
9829 const FunctionType *FT = NewFD->getType()->getAs<FunctionType>();
9836 NewFD->setType(R);
9841 if (!DC->isRecord() && NewFD->isExternallyVisible())
9842 AddPushedVisibilityAttribute(NewFD);
9846 AddCFAuditedAttribute(NewFD);
9851 AddRangeBasedOptnone(NewFD);
9855 if (NewFD->isFirstDecl() && !NewFD->isInvalidDecl() &&
9856 isIncompleteDeclExternC(*this, NewFD))
9857 RegisterLocallyScopedExternCDecl(NewFD, S);
9860 NewFD->setRangeEnd(D.getSourceRange().getEnd());
9864 checkDLLAttributeRedeclaration(*this, Prev, NewFD,
9871 IdentifierInfo *II = NewFD->getIdentifier();
9873 !NewFD->isInvalidDecl() &&
9874 NewFD->getDeclContext()->getRedeclContext()->isTranslationUnit()) {
9876 Diag(NewFD->getLocation(), diag::err_config_scalar_return)
9878 Context.setcudaConfigureCallDecl(NewFD);
9884 if (!getLangOpts().CUDAAllowVariadicFunctions && NewFD->isVariadic() &&
9885 (NewFD->hasAttr<CUDADeviceAttr>() ||
9886 NewFD->hasAttr<CUDAGlobalAttr>()) &&
9887 !(II && II->isStr("printf") && NewFD->isExternC() &&
9889 Diag(NewFD->getLocation(), diag::err_variadic_device_fn);
9893 MarkUnusedFileScopedDecl(NewFD);
9897 if (getLangOpts().OpenCL && NewFD->hasAttr<OpenCLKernelAttr>()) {
9906 if (!NewFD->getReturnType()->isVoidType()) {
9907 SourceRange RTRange = NewFD->getReturnTypeSourceRange();
9915 for (auto Param : NewFD->parameters())
9932 if (NewFD->isInvalidDecl())
9937 if (isMemberSpecialization && !NewFD->isInvalidDecl())
9938 CompleteMemberSpecialization(NewFD, Previous);
9941 for (const ParmVarDecl *Param : NewFD->parameters()) {
9963 Context, CurContext, NewFD->getLocation(),
9964 cast<CXXMethodDecl>(NewFD),
9972 if (const auto *attr = NewFD->getAttr<AvailabilityAttr>()) {
9973 if (NewFD->hasAttr<ConstructorAttr>()) {
9976 NewFD->dropAttr<AvailabilityAttr>();
9978 if (NewFD->hasAttr<DestructorAttr>()) {
9981 NewFD->dropAttr<AvailabilityAttr>();
9992 if (const auto *NBA = NewFD->getAttr<NoBuiltinAttr>())
10008 return NewFD;
10228 const FunctionDecl *OldFD, const FunctionDecl *NewFD,
10262 !NewFD->getType()->getAs<FunctionProtoType>())
10263 return Diag(NewFD->getLocation(), NoProtoDiagID);
10266 NewFD->getTemplatedKind() == FunctionDecl::TK_FunctionTemplate)
10270 if (const auto *NewCXXFD = dyn_cast<CXXMethodDecl>(NewFD)) {
10284 if (NewFD->isDeleted())
10288 if (NewFD->isDefaulted())
10292 if (!ConstexprSupported && NewFD->isConstexpr())
10294 << (NewFD->isConsteval() ? ConstevalFuncs : ConstexprFuncs);
10296 QualType NewQType = Context.getCanonicalType(NewFD->getType());
10319 if (OldFD->getConstexprKind() != NewFD->getConstexprKind())
10322 if (OldFD->isInlineSpecified() != NewFD->isInlineSpecified())
10325 if (OldFD->getStorageClass() != NewFD->getStorageClass())
10328 if (!CLinkageMayDiffer && OldFD->isExternC() != NewFD->isExternC())
10333 NewFD->getType()->getAs<FunctionProtoType>(), NewFD->getLocation()))
10340 const FunctionDecl *NewFD,
10344 S.Diag(NewFD->getLocation(), diag::err_multiversion_not_supported);
10355 checkNonMultiVersionCompatAttributes(S, OldFD, NewFD, MVType))
10358 if (checkNonMultiVersionCompatAttributes(S, NewFD, nullptr, MVType))
10363 return S.Diag(NewFD->getLocation(), diag::err_multiversion_after_used);
10366 OldFD, NewFD, S.PDiag(diag::err_multiversion_noproto),
10367 PartialDiagnosticAt(NewFD->getLocation(),
10369 PartialDiagnosticAt(NewFD->getLocation(),
10372 PartialDiagnosticAt(NewFD->getLocation(),
10382 /// This sets NewFD->isInvalidDecl() to true if there was an error.
10420 Sema &S, FunctionDecl *OldFD, FunctionDecl *NewFD, const TargetAttr *NewTA,
10436 S.Diag(NewFD->getLocation(), diag::err_multiversion_not_supported);
10438 NewFD->setInvalidDecl();
10442 if (CheckMultiVersionAdditionalRules(S, OldFD, NewFD, true,
10444 NewFD->setInvalidDecl();
10448 if (CheckMultiVersionValue(S, NewFD)) {
10449 NewFD->setInvalidDecl();
10458 NewFD->setIsMultiVersion();
10463 S.Diag(NewFD->getLocation(), diag::note_multiversioning_caused_here);
10464 NewFD->setInvalidDecl();
10471 S.Diag(NewFD->getLocation(), diag::err_multiversion_duplicate);
10473 NewFD->setInvalidDecl();
10485 S.Diag(NewFD->getLocation(), diag::note_multiversioning_caused_here);
10486 NewFD->setInvalidDecl();
10492 NewFD->setIsMultiVersion();
10503 Sema &S, FunctionDecl *OldFD, FunctionDecl *NewFD,
10515 S.Diag(NewFD->getLocation(), diag::err_multiversion_types_mixed);
10517 NewFD->setInvalidDecl();
10528 S.CurContext->isRecord() && !NewFD->getFriendObjectKind();
10536 if (S.IsOverload(NewFD, CurFD, UseMemberUsingDeclRules))
10542 NewFD->setIsMultiVersion();
10550 S.Diag(NewFD->getLocation(), diag::err_multiversion_duplicate);
10552 NewFD->setInvalidDecl();
10570 NewFD->setIsMultiVersion();
10577 S.Diag(NewFD->getLocation(), diag::err_cpu_dispatch_mismatch);
10579 NewFD->setInvalidDecl();
10591 NewFD->setIsMultiVersion();
10601 S.Diag(NewFD->getLocation(), diag::err_cpu_specific_multiple_defs)
10604 NewFD->setInvalidDecl();
10619 CheckMultiVersionValue(S, NewFD)) {
10620 NewFD->setInvalidDecl();
10624 if (CheckMultiVersionAdditionalRules(S, OldFD, NewFD,
10626 NewFD->setInvalidDecl();
10633 NewFD->setIsMultiVersion();
10639 NewFD->setIsMultiVersion();
10651 /// This sets NewFD->isInvalidDecl() to true if there was an error.
10654 static bool CheckMultiVersionFunction(Sema &S, FunctionDecl *NewFD,
10658 const auto *NewTA = NewFD->getAttr<TargetAttr>();
10659 const auto *NewCPUDisp = NewFD->getAttr<CPUDispatchAttr>();
10660 const auto *NewCPUSpec = NewFD->getAttr<CPUSpecificAttr>();
10665 S.Diag(NewFD->getLocation(), diag::err_multiversion_types_mixed);
10666 NewFD->setInvalidDecl();
10670 MultiVersionKind MVType = NewFD->getMultiVersionKind();
10674 if (NewFD->isMain()) {
10678 S.Diag(NewFD->getLocation(), diag::err_multiversion_not_allowed_on_main);
10679 NewFD->setInvalidDecl();
10687 NewFD->getDeclContext()->getRedeclContext()) {
10692 return CheckMultiVersionFirstFunction(S, NewFD, MVType, NewTA);
10701 S.Diag(NewFD->getLocation(), diag::err_multiversion_required_in_redecl)
10703 NewFD->setInvalidDecl();
10709 return CheckTargetCausesMultiVersioning(S, OldFD, NewFD, NewTA,
10717 S, OldFD, NewFD, MVType, NewTA, NewCPUDisp, NewCPUSpec, Redeclaration,
10724 /// NewFD. This routine performs all semantic checking that does not
10735 /// This sets NewFD->isInvalidDecl() to true if there was an error.
10738 bool Sema::CheckFunctionDeclaration(Scope *S, FunctionDecl *NewFD,
10741 assert(!NewFD->getReturnType()->isVariablyModifiedType() &&
10757 // Determine whether NewFD is an overload of PrevDecl or
10761 if (!AllowOverloadingOfFunction(Previous, Context, NewFD)) {
10763 if (shouldLinkPossiblyHiddenDecl(Candidate, NewFD)) {
10769 switch (CheckOverload(S, NewFD, Previous, OldDecl,
10788 checkForConflictWithNonVisibleExternC(*this, NewFD, Previous)) {
10798 NewFD->hasAttr<OverloadableAttr>()) {
10799 if (IsOverload(NewFD, cast<FunctionDecl>(OldDecl), false)) {
10808 if (CheckMultiVersionFunction(*this, NewFD, Redeclaration, OldDecl,
10814 CheckPPCMMAType(NewFD->getReturnType(), NewFD->getLocation())) {
10815 NewFD->setInvalidDecl();
10827 CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(NewFD);
10857 // NewFD and OldDecl represent declarations that need to be
10859 if (MergeFunctionDecl(NewFD, OldDecl, S, MergeTypeWithPrevious)) {
10860 NewFD->setInvalidDecl();
10871 = NewFD->getDescribedFunctionTemplate();
10879 NewFD->setPreviousDeclaration(OldFD);
10880 if (NewFD->isCXXClassMember()) {
10881 NewFD->setAccess(OldTemplateDecl->getAccess());
10902 if (shouldLinkDependentDeclWithPrevious(NewFD, OldDecl)) {
10905 NewFD->setPreviousDeclaration(OldFD);
10906 if (NewFD->isCXXClassMember())
10907 NewFD->setAccess(OldFD->getAccess());
10911 !NewFD->getAttr<OverloadableAttr>()) {
10925 Diag(NewFD->getLocation(),
10931 NewFD->addAttr(OverloadableAttr::CreateImplicit(Context));
10936 ActOnFinishedFunctionDefinitionInOpenMPAssumeScope(NewFD);
10942 if (CXXConstructorDecl *Constructor = dyn_cast<CXXConstructorDecl>(NewFD)) {
10945 dyn_cast<CXXDestructorDecl>(NewFD)) {
10955 if (NewFD->getDeclName() != Name) {
10956 Diag(NewFD->getLocation(), diag::err_destructor_name);
10957 NewFD->setInvalidDecl();
10961 } else if (auto *Guide = dyn_cast<CXXDeductionGuideDecl>(NewFD)) {
10973 if (CXXMethodDecl *Method = dyn_cast<CXXMethodDecl>(NewFD)) {
10979 if (Method->isVirtual() && NewFD->getTrailingRequiresClause())
10982 Diag(NewFD->getTrailingRequiresClause()->getBeginLoc(),
10989 if (CXXConversionDecl *Conversion = dyn_cast<CXXConversionDecl>(NewFD))
10993 if (NewFD->isOverloadedOperator() &&
10994 CheckOverloadedOperatorDeclaration(NewFD)) {
10995 NewFD->setInvalidDecl();
11000 if (NewFD->getLiteralIdentifier() &&
11001 CheckLiteralOperatorDeclaration(NewFD)) {
11002 NewFD->setInvalidDecl();
11010 CheckCXXDefaultArguments(NewFD);
11016 if (Previous.empty() && NewFD->isExternC()) {
11017 QualType R = NewFD->getReturnType();
11019 Diag(NewFD->getLocation(), diag::warn_return_value_udt_incomplete)
11020 << NewFD << R;
11023 Diag(NewFD->getLocation(), diag::warn_return_value_udt) << NewFD << R;
11035 if (!getLangOpts().CPlusPlus17 && !NewFD->getPrimaryTemplate()) {
11052 auto *FPT = NewFD->getType()->castAs<FunctionProtoType>();
11057 Diag(NewFD->getLocation(),
11059 << NewFD;
11063 checkCUDATargetOverload(NewFD, Previous);
16734 FieldDecl *NewFD
16738 if (NewFD->isInvalidDecl())
16742 NewFD->setModulePrivate();
16744 if (NewFD->isInvalidDecl() && PrevDecl) {
16745 // Don't introduce NewFD into scope; there's already something
16748 PushOnScopeChains(NewFD, S);
16750 Record->addDecl(NewFD);
16752 return NewFD;
16887 FieldDecl *NewFD = FieldDecl::Create(Context, Record, TSSL, Loc, II, T, TInfo,
16890 NewFD->setInvalidDecl();
16895 NewFD->setInvalidDecl();
16908 if (CheckNontrivialField(NewFD))
16909 NewFD->setInvalidDecl();
16917 Diag(NewFD->getLocation(), getLangOpts().MicrosoftExt ?
16920 << NewFD->getDeclName() << EltTy;
16922 NewFD->setInvalidDecl();
16931 ProcessDeclAttributes(getCurScope(), NewFD, *D);
16933 if (NewFD->hasAttrs())
16934 CheckAlignasUnderalignment(NewFD);
16939 if (getLangOpts().ObjCAutoRefCount && inferObjCARCLifetime(NewFD))
16940 NewFD->setInvalidDecl();
16947 CheckPPCMMAType(T, NewFD->getLocation()))
16948 NewFD->setInvalidDecl();
16950 NewFD->setAccess(AS);
16951 return NewFD;