Lines Matching defs:NewFD

6880     Sema &SemaRef, LookupResult &Previous, FunctionDecl *NewFD,
6882 DeclarationName Name = NewFD->getDeclName();
6883 DeclContext *NewDC = NewFD->getDeclContext();
6890 LookupResult Prev(SemaRef, Name, NewFD->getLocation(),
6895 NewFD->setInvalidDecl();
6902 CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(NewFD);
6908 hasSimilarParameters(SemaRef.Context, FD, NewFD, MismatchedParams)) {
6921 SemaRef.Context, NewFD, MD ? MD->getParent() : nullptr),
6933 hasSimilarParameters(SemaRef.Context, FD, NewFD, MismatchedParams)) {
6952 NewFD->getTypeSourceInfo(), Previous, ExtraArgs.TemplateParamLists,
6984 SemaRef.Diag(NewFD->getLocation(), DiagMsg)
6985 << Name << NewDC << IsDefinition << NewFD->getLocation();
6988 if (CXXMethodDecl *NewMD = dyn_cast<CXXMethodDecl>(NewFD))
7007 << NewFD->getParamDecl(Idx - 1)->getType();
7062 FunctionDecl *NewFD = nullptr;
7075 NewFD = FunctionDecl::Create(SemaRef.Context, DC,
7080 NewFD->setInvalidDecl();
7082 return NewFD;
7413 FunctionDecl *NewFD = CreateNewFunctionDecl(*this, D, DC, R, TInfo, SC,
7415 if (!NewFD) return nullptr;
7418 NewFD->setTopLevelDeclInObjCContainer();
7423 NewFD->setLexicalDeclContext(CurContext);
7426 NewFD->setLocalExternDecl();
7439 NewFD->setImplicitlyInline();
7446 dyn_cast<CXXRecordDecl>(NewFD->getDeclContext())) {
7447 if (Parent->isInterface() && cast<CXXMethodDecl>(NewFD)->isUserProvided())
7448 NewFD->setPure(true);
7456 SetNestedNameSpecifier(NewFD, D);
7460 NewFD->setInvalidDecl();
7479 NewFD->setInvalidDecl();
7483 Diag(NewFD->getLocation(), diag::err_destructor_template);
7484 NewFD->setInvalidDecl();
7498 NewFD->getLocation(),
7500 NewFD);
7502 NewFD->setDescribedFunctionTemplate(FunctionTemplate);
7506 NewFD->setTemplateParameterListsInfo(Context,
7514 NewFD->setTemplateParameterListsInfo(Context, TemplateParamLists);
7544 NewFD->setTemplateParameterListsInfo(Context, TemplateParamLists);
7548 NewFD->setInvalidDecl();
7558 if (isVirtual && !NewFD->isInvalidDecl()) {
7567 } else if (NewFD->getDescribedFunctionTemplate()) {
7575 NewFD->setVirtualAsWritten(true);
7579 NewFD->getReturnType()->isUndeducedType())
7584 (NewFD->isDependentContext() ||
7586 NewFD->getReturnType()->isUndeducedType()) {
7594 NewFD->getType()->castAs<FunctionProtoType>();
7597 NewFD->setType(Context.getFunctionType(Result, FPT->getParamTypes(),
7604 if (isInline && !NewFD->isInvalidDecl()) {
7617 if (isExplicit && !NewFD->isInvalidDecl()) {
7623 } else if (!isa<CXXConstructorDecl>(NewFD) &&
7624 !isa<CXXConversionDecl>(NewFD)) {
7636 NewFD->setImplicitlyInline();
7641 if (isa<CXXDestructorDecl>(NewFD))
7651 NewFD->setInvalidDecl();
7662 Diag(NewFD->getLocation(), diag::err_function_concept_exception_spec)
7664 NewFD->setInvalidDecl();
7666 Context.adjustExceptionSpec(NewFD, EST_BasicNoexcept);
7674 Diag(NewFD->getLocation(), diag::err_function_concept_with_params);
7679 NewFD->setImplicitlyInline();
7688 NewFD->setInvalidDecl(true);
7695 NewFD->setInvalidDecl(true);
7702 NewFD->setInvalidDecl(true);
7715 NewFD->setModulePrivate();
7726 NewFD->setObjectOfFriendDecl();
7727 NewFD->setAccess(AS_public);
7739 NewFD->setDefaulted();
7743 NewFD->setDeletedAsWritten();
7747 if (isa<CXXMethodDecl>(NewFD) && DC == CurContext &&
7752 NewFD->setImplicitlyInline();
7755 if (SC == SC_Static && isa<CXXMethodDecl>(NewFD) &&
7776 NewFD->setType(Context.getFunctionType(
7782 FilterLookupForScope(Previous, OriginalDC, S, shouldConsiderLinkage(NewFD),
7791 NewFD->addAttr(::new (Context) AsmLabelAttr(SE->getStrTokenLoc(0), Context,
7795 ExtnameUndeclaredIdentifiers.find(NewFD->getIdentifier());
7797 if (isDeclExternC(NewFD)) {
7798 NewFD->addAttr(I->second);
7801 Diag(NewFD->getLocation(), diag::warn_redefine_extname_not_applied)
7802 << /*Variable*/0 << NewFD;
7807 // declaration NewFD, if they are available. First scavenge them into Params.
7820 assert(Param->getDeclContext() != NewFD && "Was set before ?");
7821 Param->setDeclContext(NewFD);
7825 NewFD->setInvalidDecl();
7842 BuildParmVarDeclForTypedef(NewFD, D.getIdentifierLoc(), AI);
7847 assert(R->isFunctionNoProtoType() && NewFD->getNumParams() == 0 &&
7852 NewFD->setParams(Params);
7855 // and add to NewFD. This lets us track decls such 'enum Y' in:
7860 NewFD->setDeclsInPrototypeScope(DeclsInPrototypeScope);
7864 NewFD->addAttr(
7870 if (!NewFD->isInvalidDecl() &&
7871 NewFD->getReturnType()->isVariablyModifiedType()) {
7872 Diag(NewFD->getLocation(), diag::err_vm_func_decl);
7873 NewFD->setInvalidDecl();
7878 !NewFD->hasAttr<SectionAttr>()) {
7879 NewFD->addAttr(
7886 NewFD))
7887 NewFD->dropAttr<SectionAttr>();
7891 ProcessDeclAttributes(S, NewFD, D);
7896 unsigned AddressSpace = NewFD->getReturnType().getAddressSpace();
7900 Diag(NewFD->getLocation(),
7902 NewFD->setInvalidDecl();
7909 if (!NewFD->isInvalidDecl() && NewFD->isMain())
7910 CheckMain(NewFD, D.getDeclSpec());
7912 if (!NewFD->isInvalidDecl() && NewFD->isMSVCRTEntryPoint())
7913 CheckMSVCRTEntryPoint(NewFD);
7915 if (!NewFD->isInvalidDecl())
7916 D.setRedeclaration(CheckFunctionDeclaration(S, NewFD, Previous,
7921 assert((NewFD->isInvalidDecl() || !D.isRedeclaration() ||
7928 const FunctionType *FT = NewFD->getType()->castAs<FunctionType>();
7936 Diag(NewFD->getLocation(), DiagID)
7949 NewFD->isReplaceableGlobalAllocationFunction() &&
7950 !NewFD->hasAttr<UsedAttr>())
7953 << NewFD->getDeclName();
7968 if (NewFD->isInvalidDecl()) {
8001 (NewFD->getType()->isDependentType() || DC->isDependentContext() ||
8007 if (CheckDependentFunctionTemplateSpecialization(NewFD, TemplateArgs,
8009 NewFD->setInvalidDecl();
8014 Diag(NewFD->getLocation(), getLangOpts().MicrosoftExt ?
8017 << NewFD->getDeclName();
8018 } else if (CheckFunctionTemplateSpecialization(NewFD,
8022 NewFD->setInvalidDecl();
8028 NewFD->getTemplateSpecializationInfo();
8031 Diag(NewFD->getLocation(),
8038 Diag(NewFD->getLocation(),
8044 } else if (isExplicitSpecialization && isa<CXXMethodDecl>(NewFD)) {
8045 if (CheckMemberSpecialization(NewFD, Previous))
8046 NewFD->setInvalidDecl();
8051 if (!NewFD->isInvalidDecl() && NewFD->isMain())
8052 CheckMain(NewFD, D.getDeclSpec());
8054 if (!NewFD->isInvalidDecl() && NewFD->isMSVCRTEntryPoint())
8055 CheckMSVCRTEntryPoint(NewFD);
8057 if (!NewFD->isInvalidDecl())
8058 D.setRedeclaration(CheckFunctionDeclaration(S, NewFD, Previous,
8065 assert((NewFD->isInvalidDecl() || !D.isRedeclaration() ||
8071 : NewFD);
8075 if (!NewFD->isInvalidDecl())
8076 Access = NewFD->getPreviousDecl()->getAccess();
8078 NewFD->setAccess(Access);
8082 if (NewFD->isOverloadedOperator() && !DC->isRecord() &&
8105 if (NewFD->isInvalidDecl()) {
8111 if (isa<CXXRecordDecl>(NewFD->getDeclContext()))
8112 NewFD->setAccess(AS_public);
8147 *this, Previous, NewFD, ExtraArgs, false, nullptr)) {
8157 *this, Previous, NewFD, ExtraArgs, true, S)) {
8164 isa<CXXMethodDecl>(NewFD) && NewFD->isOutOfLine() &&
8174 Diag(NewFD->getLocation(), diag::ext_out_of_line_declaration)
8179 ProcessPragmaWeak(S, NewFD);
8180 checkAttributesAfterMerging(*this, *NewFD);
8182 AddKnownFunctionAttributes(NewFD);
8184 if (NewFD->hasAttr<OverloadableAttr>() &&
8185 !NewFD->getType()->getAs<FunctionProtoType>()) {
8186 Diag(NewFD->getLocation(),
8188 << NewFD;
8191 const FunctionType *FT = NewFD->getType()->getAs<FunctionType>();
8198 NewFD->setType(R);
8203 if (!DC->isRecord() && NewFD->isExternallyVisible())
8204 AddPushedVisibilityAttribute(NewFD);
8208 AddCFAuditedAttribute(NewFD);
8213 AddRangeBasedOptnone(NewFD);
8217 if (NewFD->isFirstDecl() && !NewFD->isInvalidDecl() &&
8218 isIncompleteDeclExternC(*this, NewFD))
8219 RegisterLocallyScopedExternCDecl(NewFD, S);
8222 NewFD->setRangeEnd(D.getSourceRange().getEnd());
8226 *this, dyn_cast<NamedDecl>(Previous.getRepresentativeDecl()), NewFD,
8232 if (NewFD->isInvalidDecl())
8238 if (NewFD->hasAttr<OpenCLKernelAttr>()) {
8247 if (!NewFD->getReturnType()->isVoidType()) {
8248 SourceRange RTRange = NewFD->getReturnTypeSourceRange();
8256 for (auto Param : NewFD->params())
8259 for (FunctionDecl::param_iterator PI = NewFD->param_begin(),
8260 PE = NewFD->param_end(); PI != PE; ++PI) {
8277 MarkUnusedFileScopedDecl(NewFD);
8280 if (IdentifierInfo *II = NewFD->getIdentifier())
8281 if (!NewFD->isInvalidDecl() &&
8282 NewFD->getDeclContext()->getRedeclContext()->isTranslationUnit()) {
8285 Diag(NewFD->getLocation(), diag::err_config_scalar_return);
8287 Context.setcudaConfigureCallDecl(NewFD);
8298 cast<CXXMethodDecl>(NewFD),
8304 return NewFD;
8310 /// NewFD. This routine performs all semantic checking that does not
8320 /// This sets NewFD->isInvalidDecl() to true if there was an error.
8323 bool Sema::CheckFunctionDeclaration(Scope *S, FunctionDecl *NewFD,
8326 assert(!NewFD->getReturnType()->isVariablyModifiedType() &&
8341 // Determine whether NewFD is an overload of PrevDecl or
8347 if (shouldLinkPossiblyHiddenDecl(Candidate, NewFD)) {
8352 switch (CheckOverload(S, NewFD, Previous, OldDecl,
8367 if (!getLangOpts().CPlusPlus && !NewFD->hasAttr<OverloadableAttr>()) {
8370 Diag(NewFD->getLocation(), diag::err_attribute_overloadable_missing)
8371 << Redeclaration << NewFD;
8380 NewFD->addAttr(OverloadableAttr::CreateImplicit(Context));
8387 checkForConflictWithNonVisibleExternC(*this, NewFD, Previous)) {
8397 if (!getLangOpts().CPlusPlus && !NewFD->hasAttr<OverloadableAttr>()) {
8398 Diag(NewFD->getLocation(), diag::err_attribute_overloadable_missing)
8399 << Redeclaration << NewFD;
8402 NewFD->addAttr(OverloadableAttr::CreateImplicit(Context));
8404 if (IsOverload(NewFD, cast<FunctionDecl>(OldDecl), false)) {
8421 CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(NewFD);
8451 // NewFD and OldDecl represent declarations that need to be
8453 if (MergeFunctionDecl(NewFD, OldDecl, S, MergeTypeWithPrevious)) {
8454 NewFD->setInvalidDecl();
8463 NewFD->setPreviousDeclaration(OldTemplateDecl->getTemplatedDecl());
8465 = NewFD->getDescribedFunctionTemplate();
8483 NewFD->setPreviousDeclaration(cast<FunctionDecl>(OldDecl));
8485 if (isa<CXXMethodDecl>(NewFD))
8486 NewFD->setAccess(OldDecl->getAccess());
8494 if (CXXConstructorDecl *Constructor = dyn_cast<CXXConstructorDecl>(NewFD)) {
8497 dyn_cast<CXXDestructorDecl>(NewFD)) {
8507 if (NewFD->getDeclName() != Name) {
8508 Diag(NewFD->getLocation(), diag::err_destructor_name);
8509 NewFD->setInvalidDecl();
8514 = dyn_cast<CXXConversionDecl>(NewFD)) {
8519 if (CXXMethodDecl *Method = dyn_cast<CXXMethodDecl>(NewFD)) {
8525 if (NewFD->getStorageClass() == SC_Static) {
8536 if (NewFD->isOverloadedOperator() &&
8537 CheckOverloadedOperatorDeclaration(NewFD)) {
8538 NewFD->setInvalidDecl();
8543 if (NewFD->getLiteralIdentifier() &&
8544 CheckLiteralOperatorDeclaration(NewFD)) {
8545 NewFD->setInvalidDecl();
8553 CheckCXXDefaultArguments(NewFD);
8557 if (unsigned BuiltinID = NewFD->getBuiltinID()) {
8559 LookupPredefedObjCSuperType(*this, S, NewFD->getIdentifier());
8561 if (!T.isNull() && !Context.hasSameType(T, NewFD->getType())) {
8572 if (Previous.empty() && NewFD->isExternC()) {
8573 QualType R = NewFD->getReturnType();
8575 Diag(NewFD->getLocation(), diag::warn_return_value_udt_incomplete)
8576 << NewFD << R;
8579 Diag(NewFD->getLocation(), diag::warn_return_value_udt) << NewFD << R;
13012 FieldDecl *NewFD
13016 if (NewFD->isInvalidDecl())
13020 NewFD->setModulePrivate();
13022 if (NewFD->isInvalidDecl() && PrevDecl) {
13023 // Don't introduce NewFD into scope; there's already something
13026 PushOnScopeChains(NewFD, S);
13028 Record->addDecl(NewFD);
13030 return NewFD;
13157 FieldDecl *NewFD = FieldDecl::Create(Context, Record, TSSL, Loc, II, T, TInfo,
13160 NewFD->setInvalidDecl();
13165 NewFD->setInvalidDecl();
13178 if (CheckNontrivialField(NewFD))
13179 NewFD->setInvalidDecl();
13187 Diag(NewFD->getLocation(), getLangOpts().MicrosoftExt ?
13190 << NewFD->getDeclName() << EltTy;
13192 NewFD->setInvalidDecl();
13201 ProcessDeclAttributes(getCurScope(), NewFD, *D);
13203 if (NewFD->hasAttrs())
13204 CheckAlignasUnderalignment(NewFD);
13209 if (getLangOpts().ObjCAutoRefCount && inferObjCARCLifetime(NewFD))
13210 NewFD->setInvalidDecl();
13215 NewFD->setAccess(AS);
13216 return NewFD;