Home | History | Annotate | Download | only in Sema

Lines Matching defs:NewFD

6283     Sema &SemaRef, LookupResult &Previous, FunctionDecl *NewFD,
6285 DeclarationName Name = NewFD->getDeclName();
6286 DeclContext *NewDC = NewFD->getDeclContext();
6293 LookupResult Prev(SemaRef, Name, NewFD->getLocation(),
6298 NewFD->setInvalidDecl();
6305 CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(NewFD);
6306 DifferentNameValidatorCCC Validator(SemaRef.Context, NewFD,
6313 hasSimilarParameters(SemaRef.Context, FD, NewFD, MismatchedParams)) {
6336 hasSimilarParameters(SemaRef.Context, FD, NewFD, MismatchedParams)) {
6355 NewFD->getTypeSourceInfo(), Previous, ExtraArgs.TemplateParamLists,
6387 SemaRef.Diag(NewFD->getLocation(), DiagMsg)
6388 << Name << NewDC << IsDefinition << NewFD->getLocation();
6391 if (CXXMethodDecl *NewMD = dyn_cast<CXXMethodDecl>(NewFD))
6410 << NewFD->getParamDecl(Idx - 1)->getType();
6466 FunctionDecl *NewFD = nullptr;
6479 NewFD = FunctionDecl::Create(SemaRef.Context, DC,
6484 NewFD->setInvalidDecl();
6487 NewFD->setLexicalDeclContext(SemaRef.CurContext);
6489 return NewFD;
6812 FunctionDecl *NewFD = CreateNewFunctionDecl(*this, D, DC, R, TInfo, SC,
6814 if (!NewFD) return nullptr;
6817 NewFD->setTopLevelDeclInObjCContainer();
6822 NewFD->setLexicalDeclContext(CurContext);
6825 NewFD->setLocalExternDecl();
6837 NewFD->setImplicitlyInline();
6844 dyn_cast<CXXRecordDecl>(NewFD->getDeclContext())) {
6845 if (Parent->isInterface() && cast<CXXMethodDecl>(NewFD)->isUserProvided())
6846 NewFD->setPure(true);
6849 SetNestedNameSpecifier(NewFD, D);
6853 NewFD->setInvalidDecl();
6876 Diag(NewFD->getLocation(), diag::err_destructor_template);
6891 NewFD->getLocation(),
6893 NewFD);
6895 NewFD->setDescribedFunctionTemplate(FunctionTemplate);
6899 NewFD->setTemplateParameterListsInfo(Context,
6908 NewFD->setTemplateParameterListsInfo(Context,
6940 NewFD->setTemplateParameterListsInfo(Context,
6946 NewFD->setInvalidDecl();
6956 if (isVirtual && !NewFD->isInvalidDecl()) {
6965 } else if (NewFD->getDescribedFunctionTemplate()) {
6973 NewFD->setVirtualAsWritten(true);
6977 NewFD->getReturnType()->isUndeducedType())
6982 (NewFD->isDependentContext() ||
6984 NewFD->getReturnType()->isUndeducedType()) {
6992 NewFD->getType()->castAs<FunctionProtoType>();
6995 NewFD->setType(Context.getFunctionType(Result, FPT->getParamTypes(),
7002 if (isInline && !NewFD->isInvalidDecl()) {
7015 if (isExplicit && !NewFD->isInvalidDecl()) {
7021 } else if (!isa<CXXConstructorDecl>(NewFD) &&
7022 !isa<CXXConversionDecl>(NewFD)) {
7034 NewFD->setImplicitlyInline();
7039 if (isa<CXXDestructorDecl>(NewFD))
7052 NewFD->setModulePrivate();
7063 NewFD->setObjectOfFriendDecl();
7064 NewFD->setAccess(AS_public);
7076 NewFD->setDefaulted();
7080 NewFD->setDeletedAsWritten();
7084 if (isa<CXXMethodDecl>(NewFD) && DC == CurContext &&
7089 NewFD->setImplicitlyInline();
7092 if (SC == SC_Static && isa<CXXMethodDecl>(NewFD) &&
7115 NewFD->setType(Context.getFunctionType(FPT->getReturnType(),
7121 FilterLookupForScope(Previous, OriginalDC, S, shouldConsiderLinkage(NewFD),
7130 NewFD->addAttr(::new (Context) AsmLabelAttr(SE->getStrTokenLoc(0), Context,
7134 ExtnameUndeclaredIdentifiers.find(NewFD->getIdentifier());
7136 NewFD->addAttr(I->second);
7142 // declaration NewFD, if they are available. First scavenge them into Params.
7155 assert(Param->getDeclContext() != NewFD && "Was set before ?");
7156 Param->setDeclContext(NewFD);
7160 NewFD->setInvalidDecl();
7177 BuildParmVarDeclForTypedef(NewFD, D.getIdentifierLoc(), AI);
7182 assert(R->isFunctionNoProtoType() && NewFD->getNumParams() == 0 &&
7187 NewFD->setParams(Params);
7190 // and add to NewFD. This lets us track decls such 'enum Y' in:
7195 NewFD->setDeclsInPrototypeScope(DeclsInPrototypeScope);
7199 NewFD->addAttr(
7205 if (!NewFD->isInvalidDecl() &&
7206 NewFD->getReturnType()->isVariablyModifiedType()) {
7207 Diag(NewFD->getLocation(), diag::err_vm_func_decl);
7208 NewFD->setInvalidDecl();
7212 !NewFD->hasAttr<SectionAttr>()) {
7213 NewFD->addAttr(
7218 PSF_Implicit | PSF_Execute | PSF_Read, NewFD))
7219 NewFD->dropAttr<SectionAttr>();
7223 ProcessDeclAttributes(S, NewFD, D);
7225 QualType RetType = NewFD->getReturnType();
7228 if (!NewFD->isInvalidDecl() && !NewFD->hasAttr<WarnUnusedResultAttr>() &&
7230 const CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(NewFD);
7235 NewFD->addAttr(WarnUnusedResultAttr::CreateImplicit(Context));
7245 Diag(NewFD->getLocation(),
7247 NewFD->setInvalidDecl();
7254 if (!NewFD->isInvalidDecl() && NewFD->isMain())
7255 CheckMain(NewFD, D.getDeclSpec());
7257 if (!NewFD->isInvalidDecl() && NewFD->isMSVCRTEntryPoint())
7258 CheckMSVCRTEntryPoint(NewFD);
7260 if (!NewFD->isInvalidDecl())
7261 D.setRedeclaration(CheckFunctionDeclaration(S, NewFD, Previous,
7266 assert((NewFD->isInvalidDecl() || !D.isRedeclaration() ||
7278 NewFD->isReplaceableGlobalAllocationFunction() &&
7279 !NewFD->hasAttr<UsedAttr>())
7282 << NewFD->getDeclName();
7297 if (NewFD->isInvalidDecl()) {
7330 (NewFD->getType()->isDependentType() || DC->isDependentContext() ||
7336 if (CheckDependentFunctionTemplateSpecialization(NewFD, TemplateArgs,
7338 NewFD->setInvalidDecl();
7343 Diag(NewFD->getLocation(), getLangOpts().MicrosoftExt ?
7346 << NewFD->getDeclName();
7347 } else if (CheckFunctionTemplateSpecialization(NewFD,
7351 NewFD->setInvalidDecl();
7357 NewFD->getTemplateSpecializationInfo();
7360 Diag(NewFD->getLocation(),
7367 Diag(NewFD->getLocation(),
7373 } else if (isExplicitSpecialization && isa<CXXMethodDecl>(NewFD)) {
7374 if (CheckMemberSpecialization(NewFD, Previous))
7375 NewFD->setInvalidDecl();
7380 if (!NewFD->isInvalidDecl() && NewFD->isMain())
7381 CheckMain(NewFD, D.getDeclSpec());
7383 if (!NewFD->isInvalidDecl() && NewFD->isMSVCRTEntryPoint())
7384 CheckMSVCRTEntryPoint(NewFD);
7386 if (!NewFD->isInvalidDecl())
7387 D.setRedeclaration(CheckFunctionDeclaration(S, NewFD, Previous,
7391 assert((NewFD->isInvalidDecl() || !D.isRedeclaration() ||
7397 : NewFD);
7401 if (!NewFD->isInvalidDecl())
7402 Access = NewFD->getPreviousDecl()->getAccess();
7404 NewFD->setAccess(Access);
7408 if (NewFD->isOverloadedOperator() && !DC->isRecord() &&
7431 if (NewFD->isInvalidDecl()) {
7437 if (isa<CXXRecordDecl>(NewFD->getDeclContext()))
7438 NewFD->setAccess(AS_public);
7473 *this, Previous, NewFD, ExtraArgs, false, nullptr)) {
7483 *this, Previous, NewFD, ExtraArgs, true, S)) {
7490 isa<CXXMethodDecl>(NewFD) && NewFD->isOutOfLine() &&
7500 Diag(NewFD->getLocation(), diag::ext_out_of_line_declaration)
7505 ProcessPragmaWeak(S, NewFD);
7506 checkAttributesAfterMerging(*this, *NewFD);
7508 AddKnownFunctionAttributes(NewFD);
7510 if (NewFD->hasAttr<OverloadableAttr>() &&
7511 !NewFD->getType()->getAs<FunctionProtoType>()) {
7512 Diag(NewFD->getLocation(),
7514 << NewFD;
7517 const FunctionType *FT = NewFD->getType()->getAs<FunctionType>();
7524 NewFD->setType(R);
7529 if (!DC->isRecord() && NewFD->isExternallyVisible())
7530 NewFD);
7534 AddCFAuditedAttribute(NewFD);
7539 AddRangeBasedOptnone(NewFD);
7543 if (NewFD->isFirstDecl() && !NewFD->isInvalidDecl() &&
7544 isIncompleteDeclExternC(*this, NewFD))
7545 RegisterLocallyScopedExternCDecl(NewFD, S);
7548 NewFD->setRangeEnd(D.getSourceRange().getEnd());
7552 *this, dyn_cast<NamedDecl>(Previous.getRepresentativeDecl()), NewFD,
7558 if (NewFD->isInvalidDecl())
7564 if (NewFD->hasAttr<OpenCLKernelAttr>()) {
7573 if (!NewFD->getReturnType()->isVoidType()) {
7574 SourceRange RTRange = NewFD->getReturnTypeSourceRange();
7582 for (auto Param : NewFD->params())
7586 MarkUnusedFileScopedDecl(NewFD);
7589 if (IdentifierInfo *II = NewFD->getIdentifier())
7590 if (!NewFD->isInvalidDecl() &&
7591 NewFD->getDeclContext()->getRedeclContext()->isTranslationUnit()) {
7594 Diag(NewFD->getLocation(), diag::err_config_scalar_return);
7596 Context.setcudaConfigureCallDecl(NewFD);
7607 cast<CXXMethodDecl>(NewFD),
7613 return NewFD;
7619 /// NewFD. This routine performs all semantic checking that does not
7629 /// This sets NewFD->isInvalidDecl() to true if there was an error.
7632 bool Sema::CheckFunctionDeclaration(Scope *S, FunctionDecl *NewFD,
7635 assert(!NewFD->getReturnType()->isVariablyModifiedType() &&
7645 filterNonConflictingPreviousDecls(Context, NewFD, Previous);
7653 // Determine whether NewFD is an overload of PrevDecl or
7659 if (shouldLinkPossiblyHiddenDecl(Candidate, NewFD)) {
7664 switch (CheckOverload(S, NewFD, Previous, OldDecl,
7679 if (!getLangOpts().CPlusPlus && !NewFD->hasAttr<OverloadableAttr>()) {
7682 Diag(NewFD->getLocation(), diag::err_attribute_overloadable_missing)
7683 << Redeclaration << NewFD;
7692 NewFD->addAttr(OverloadableAttr::CreateImplicit(Context));
7699 checkForConflictWithNonVisibleExternC(*this, NewFD, Previous)) {
7700 filterNonConflictingPreviousDecls(Context, NewFD, Previous);
7710 if (!getLangOpts().CPlusPlus && !NewFD->hasAttr<OverloadableAttr>()) {
7711 Diag(NewFD->getLocation(), diag::err_attribute_overloadable_missing)
7712 << Redeclaration << NewFD;
7715 NewFD->addAttr(OverloadableAttr::CreateImplicit(Context));
7717 if (IsOverload(NewFD, cast<FunctionDecl>(OldDecl), false)) {
7734 CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(NewFD);
7764 // NewFD and OldDecl represent declarations that need to be
7766 if (MergeFunctionDecl(NewFD, OldDecl, S, MergeTypeWithPrevious)) {
7767 NewFD->setInvalidDecl();
7776 NewFD->setPreviousDeclaration(OldTemplateDecl->getTemplatedDecl());
7778 = NewFD->getDescribedFunctionTemplate();
7796 NewFD->setPreviousDeclaration(cast<FunctionDecl>(OldDecl));
7798 if (isa<CXXMethodDecl>(NewFD)) {
7806 NewFD->setAccess(oldMethod->getAccess());
7809 if (NewFD->isInlined() &&
7826 if (CXXConstructorDecl *Constructor = dyn_cast<CXXConstructorDecl>(NewFD)) {
7829 dyn_cast<CXXDestructorDecl>(NewFD)) {
7839 if (NewFD->getDeclName() != Name) {
7840 Diag(NewFD->getLocation(), diag::err_destructor_name);
7841 NewFD->setInvalidDecl();
7846 = dyn_cast<CXXConversionDecl>(NewFD)) {
7851 if (CXXMethodDecl *Method = dyn_cast<CXXMethodDecl>(NewFD)) {
7857 if (NewFD->getStorageClass() == SC_Static) {
7868 if (NewFD->isOverloadedOperator() &&
7869 CheckOverloadedOperatorDeclaration(NewFD)) {
7870 NewFD->setInvalidDecl();
7875 if (NewFD->getLiteralIdentifier() &&
7876 CheckLiteralOperatorDeclaration(NewFD)) {
7877 NewFD->setInvalidDecl();
7885 CheckCXXDefaultArguments(NewFD);
7889 if (unsigned BuiltinID = NewFD->getBuiltinID()) {
7891 LookupPredefedObjCSuperType(*this, S, NewFD->getIdentifier());
7893 if (!T.isNull() && !Context.hasSameType(T, NewFD->getType())) {
7904 if (NewFD->isExternC() && Previous.empty()) {
7905 QualType R = NewFD->getReturnType();
7907 Diag(NewFD->getLocation(), diag::warn_return_value_udt_incomplete)
7908 << NewFD << R;
7911 Diag(NewFD->getLocation(), diag::warn_return_value_udt) << NewFD << R;
11796 FieldDecl *NewFD
11800 if (NewFD->isInvalidDecl())
11804 NewFD->setModulePrivate();
11806 if (NewFD->isInvalidDecl() && PrevDecl) {
11807 // Don't introduce NewFD into scope; there's already something
11810 PushOnScopeChains(NewFD, S);
11812 Record->addDecl(NewFD);
11814 return NewFD;
11936 FieldDecl *NewFD = FieldDecl::Create(Context, Record, TSSL, Loc, II, T, TInfo,
11939 NewFD->setInvalidDecl();
11944 NewFD->setInvalidDecl();
11957 if (CheckNontrivialField(NewFD))
11958 NewFD->setInvalidDecl();
11966 Diag(NewFD->getLocation(), getLangOpts().MicrosoftExt ?
11969 << NewFD->getDeclName() << EltTy;
11971 NewFD->setInvalidDecl();
11980 ProcessDeclAttributes(getCurScope(), NewFD, *D);
11982 if (NewFD->hasAttrs())
11983 CheckAlignasUnderalignment(NewFD);
11988 if (getLangOpts().ObjCAutoRefCount && inferObjCARCLifetime(NewFD))
11989 NewFD->setInvalidDecl();
11994 NewFD->setAccess(AS);
11995 return NewFD;