Home | History | Annotate | Download | only in Sema

Lines Matching defs:NewFD

5416     Sema &SemaRef, LookupResult &Previous, FunctionDecl *NewFD,
5419 DeclarationName Name = NewFD->getDeclName();
5420 DeclContext *NewDC = NewFD->getDeclContext();
5421 LookupResult Prev(SemaRef, Name, NewFD->getLocation(),
5431 NewFD->setInvalidDecl();
5435 CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(NewFD);
5436 DifferentNameValidatorCCC Validator(SemaRef.Context, NewFD,
5443 hasSimilarParameters(SemaRef.Context, FD, NewFD, MismatchedParams)) {
5468 hasSimilarParameters(SemaRef.Context, FD, NewFD, MismatchedParams)) {
5479 NewFD->getTypeSourceInfo(), Previous, ExtraArgs.TemplateParamLists,
5511 SourceRange FixItLoc(NewFD->getLocation());
5515 SemaRef.Diag(NewFD->getLocStart(), DiagMsg)
5520 SemaRef.Diag(NewFD->getLocation(), DiagMsg)
5521 << Name << NewDC << NewFD->getLocation();
5525 if (CXXMethodDecl *NewMD = dyn_cast<CXXMethodDecl>(NewFD))
5541 << Idx << FDParam->getType() << NewFD->getParamDecl(Idx-1)->getType();
5595 FunctionDecl *NewFD = 0;
5611 NewFD = FunctionDecl::Create(SemaRef.Context, DC,
5616 NewFD->setInvalidDecl();
5619 NewFD->setLexicalDeclContext(SemaRef.CurContext);
5621 return NewFD;
5810 FunctionDecl *NewFD = CreateNewFunctionDecl(*this, D, DC, R, TInfo, SC,
5812 if (!NewFD) return 0;
5815 NewFD->setTopLevelDeclInObjCContainer();
5827 NewFD->setImplicitlyInline();
5834 dyn_cast<CXXRecordDecl>(NewFD->getDeclContext())) {
5835 if (Parent->isInterface() && cast<CXXMethodDecl>(NewFD)->isUserProvided())
5836 NewFD->setPure(true);
5839 SetNestedNameSpecifier(NewFD, D);
5843 NewFD->setInvalidDecl();
5848 NewFD->setLexicalDeclContext(CurContext);
5872 Diag(NewFD->getLocation(), diag::err_destructor_template);
5887 NewFD->getLocation(),
5889 NewFD);
5891 NewFD->setDescribedFunctionTemplate(FunctionTemplate);
5895 NewFD->setTemplateParameterListsInfo(Context,
5903 NewFD->setTemplateParameterListsInfo(Context,
5935 NewFD->setTemplateParameterListsInfo(Context,
5941 NewFD->setInvalidDecl();
5951 if (isVirtual && !NewFD->isInvalidDecl()) {
5960 } else if (NewFD->getDescribedFunctionTemplate()) {
5968 NewFD->setVirtualAsWritten(true);
5975 if (isInline && !NewFD->isInvalidDecl()) {
5988 if (isExplicit && !NewFD->isInvalidDecl()) {
5994 } else if (!isa<CXXConstructorDecl>(NewFD) &&
5995 !isa<CXXConversionDecl>(NewFD)) {
6007 NewFD->setImplicitlyInline();
6012 if (isa<CXXDestructorDecl>(NewFD))
6025 NewFD->setModulePrivate();
6037 NewFD->setObjectOfFriendDecl(false);
6038 NewFD->setAccess(AS_public);
6048 NewFD->setDefaulted();
6052 NewFD->setDeletedAsWritten();
6056 if (isa<CXXMethodDecl>(NewFD) && DC == CurContext &&
6061 NewFD->setImplicitlyInline();
6064 if (SC == SC_Static && isa<CXXMethodDecl>(NewFD) &&
6087 NewFD->setType(Context.getFunctionType(FPT->getResultType(),
6095 FilterLookupForScope(Previous, DC, S, shouldConsiderLinkage(NewFD),
6103 NewFD->addAttr(::new (Context) AsmLabelAttr(SE->getStrTokenLoc(0), Context,
6107 ExtnameUndeclaredIdentifiers.find(NewFD->getIdentifier());
6109 NewFD->addAttr(I->second);
6115 // declaration NewFD, if they are available. First scavenge them into Params.
6133 assert(Param->getDeclContext() != NewFD && "Was set before ?");
6134 Param->setDeclContext(NewFD);
6138 NewFD->setInvalidDecl();
6156 BuildParmVarDeclForTypedef(NewFD, D.getIdentifierLoc(), *AI);
6161 assert(R->isFunctionNoProtoType() && NewFD->getNumParams() == 0 &&
6166 NewFD->setParams(Params);
6169 // and add to NewFD. This lets us track decls such 'enum Y' in:
6174 NewFD->setDeclsInPrototypeScope(DeclsInPrototypeScope);
6178 NewFD->addAttr(
6183 ProcessDeclAttributes(S, NewFD, D,
6188 if (!NewFD->isInvalidDecl() &&
6189 NewFD->getResultType()->isVariablyModifiedType()) {
6190 Diag(NewFD->getLocation(), diag::err_vm_func_decl);
6191 NewFD->setInvalidDecl();
6195 ProcessDeclAttributes(S, NewFD, D,
6198 QualType RetType = NewFD->getResultType();
6201 if (!NewFD->isInvalidDecl() && !NewFD->hasAttr<WarnUnusedResultAttr>() &&
6203 const CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(NewFD);
6205 NewFD->addAttr(new (Context) WarnUnusedResultAttr(SourceRange(),
6213 if (!NewFD->isInvalidDecl()) {
6214 if (NewFD->isMain())
6215 CheckMain(NewFD, D.getDeclSpec());
6216 D.setRedeclaration(CheckFunctionDeclaration(S, NewFD, Previous,
6222 assert((NewFD->isInvalidDecl() || !D.isRedeclaration() ||
6239 if (NewFD->isInvalidDecl()) {
6281 (NewFD->getType()->isDependentType() || DC->isDependentContext() ||
6287 if (CheckDependentFunctionTemplateSpecialization(NewFD
6289 NewFD->setInvalidDecl();
6294 Diag(NewFD->getLocation(), getLangOpts().MicrosoftExt ?
6297 << NewFD->getDeclName();
6298 } else if (CheckFunctionTemplateSpecialization(NewFD,
6301 NewFD->setInvalidDecl();
6307 if (SC != NewFD->getStorageClass())
6308 Diag(NewFD->getLocation(),
6315 Diag(NewFD->getLocation(),
6321 } else if (isExplicitSpecialization && isa<CXXMethodDecl>(NewFD)) {
6322 if (CheckMemberSpecialization(NewFD, Previous))
6323 NewFD->setInvalidDecl();
6328 if (NewFD->isInvalidDecl()) {
6331 if (CXXMethodDecl* methodDecl = dyn_cast<CXXMethodDecl>(NewFD))
6334 if (NewFD->isMain())
6335 CheckMain(NewFD, D.getDeclSpec());
6336 D.setRedeclaration(CheckFunctionDeclaration(S, NewFD, Previous,
6341 assert((NewFD->isInvalidDecl() || !D.isRedeclaration() ||
6347 : NewFD);
6351 if (!NewFD->isInvalidDecl())
6352 Access = NewFD->getPreviousDecl()->getAccess();
6354 NewFD->setAccess(Access);
6360 if (NewFD->isOverloadedOperator() && !DC->isRecord() &&
6382 if (NewFD->isInvalidDecl()) {
6388 if (isa<CXXRecordDecl>(NewFD->getDeclContext()))
6389 NewFD->setAccess(AS_public);
6424 NewFD,
6435 NewFD,
6452 Diag(NewFD->getLocation(), diag::ext_out_of_line_declaration)
6457 ProcessPragmaWeak(S, NewFD);
6458 checkAttributesAfterMerging(*this, *NewFD);
6460 AddKnownFunctionAttributes(NewFD);
6462 if (NewFD->hasAttr<OverloadableAttr>() &&
6463 !NewFD->getType()->getAs<FunctionProtoType>()) {
6464 Diag(NewFD->getLocation(),
6466 << NewFD;
6469 const FunctionType *FT = NewFD->getType()->getAs<FunctionType>();
6477 NewFD->setType(R);
6482 if (!DC->isRecord() && NewFD->hasExternalLinkage())
6483 AddPushedVisibilityAttribute(NewFD);
6487 AddCFAuditedAttribute(NewFD);
6491 if (CurContext->isFunctionOrMethod() && NewFD->isExternC()
6492 && !NewFD->isInvalidDecl())
6493 RegisterLocallyScopedExternCDecl(NewFD, Previous, S);
6496 NewFD->setRangeEnd(D.getSourceRange().getEnd());
6500 if (NewFD->isInvalidDecl())
6506 if (NewFD->hasAttr<OpenCLKernelAttr>()) {
6515 if (!NewFD->getResultType()->isVoidType()) {
6521 for (FunctionDecl::param_iterator PI = NewFD->param_begin(),
6522 PE = NewFD->param_end(); PI != PE; ++PI) {
6544 MarkUnusedFileScopedDecl(NewFD);
6547 if (IdentifierInfo *II = NewFD->getIdentifier())
6548 if (!NewFD->isInvalidDecl() &&
6549 NewFD->getDeclContext()->getRedeclContext()->isTranslationUnit()) {
6552 Diag(NewFD->getLocation(), diag::err_config_scalar_return);
6554 Context.setcudaConfigureCallDecl(NewFD);
6565 cast<CXXMethodDecl>(NewFD),
6571 return NewFD;
6577 /// NewFD. This routine performs all semantic checking that does not
6587 /// This sets NewFD->isInvalidDecl() to true if there was an error.
6590 bool Sema::CheckFunctionDeclaration(Scope *S, FunctionDecl *NewFD,
6593 assert(!NewFD->getResultType()->isVariablyModifiedType()
6597 if (Previous.empty() && mayConflictWithNonVisibleExternC(NewFD)) {
6601 = findLocallyScopedExternCDecl(NewFD->getDeclName());
6607 filterNonConflictingPreviousDecls(Context, NewFD, Previous);
6615 // Determine whether NewFD is an overload of PrevDecl or
6623 switch (CheckOverload(S, NewFD, Previous, OldDecl,
6638 if (!getLangOpts().CPlusPlus && !NewFD->hasAttr<OverloadableAttr>()) {
6641 Diag(NewFD->getLocation(), diag::err_attribute_overloadable_missing)
6642 << Redeclaration << NewFD;
6651 NewFD->addAttr(::new (Context) OverloadableAttr(SourceLocation(),
6663 CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(NewFD);
6684 // NewFD
6686 if (MergeFunctionDecl(NewFD, OldDecl, S)) {
6687 NewFD->setInvalidDecl();
6696 NewFD->setPreviousDeclaration(OldTemplateDecl->getTemplatedDecl());
6698 = NewFD->getDescribedFunctionTemplate();
6716 NewFD->setPreviousDeclaration(cast<FunctionDecl>(OldDecl));
6718 if (isa<CXXMethodDecl>(NewFD)) {
6726 NewFD->setAccess(oldMethod->getAccess());
6729 if (NewFD->isInlined() &&
6746 if (CXXConstructorDecl *Constructor = dyn_cast<CXXConstructorDecl>(NewFD)) {
6749 dyn_cast<CXXDestructorDecl>(NewFD)) {
6759 if (NewFD->getDeclName() != Name) {
6760 Diag(NewFD->getLocation(), diag::err_destructor_name);
6761 NewFD->setInvalidDecl();
6766 = dyn_cast<CXXConversionDecl>(NewFD)) {
6771 if (CXXMethodDecl *Method = dyn_cast<CXXMethodDecl>(NewFD)) {
6777 if (NewFD->getStorageClass() == SC_Static) {
6788 if (NewFD->isOverloadedOperator() &&
6789 CheckOverloadedOperatorDeclaration(NewFD)) {
6790 NewFD->setInvalidDecl();
6795 if (NewFD->getLiteralIdentifier() &&
6796 CheckLiteralOperatorDeclaration(NewFD)) {
6797 NewFD->setInvalidDecl();
6805 CheckCXXDefaultArguments(NewFD);
6809 if (unsigned BuiltinID = NewFD->getBuiltinID()) {
6811 LookupPredefedObjCSuperType(*this, S, NewFD->getIdentifier());
6813 if (!T.isNull() && !Context.hasSameType(T, NewFD->getType())) {
6824 if (NewFD->isExternC() && Previous.empty()) {
6825 QualType R = NewFD->getResultType();
6827 Diag(NewFD->getLocation(), diag::warn_return_value_udt_incomplete)
6828 << NewFD << R;
6831 Diag(NewFD->getLocation(), diag::warn_return_value_udt) << NewFD << R;
10304 FieldDecl *NewFD
10308 if (NewFD->isInvalidDecl())
10312 NewFD->setModulePrivate();
10314 if (NewFD->isInvalidDecl() && PrevDecl) {
10315 // Don't introduce NewFD into scope; there's already something
10318 PushOnScopeChains(NewFD, S);
10320 Record->addDecl(NewFD);
10322 return NewFD;
10437 FieldDecl *NewFD = FieldDecl::Create(Context, Record, TSSL, Loc, II, T, TInfo,
10440 NewFD->setInvalidDecl();
10445 NewFD->setInvalidDecl();
10458 if (CheckNontrivialField(NewFD))
10459 NewFD->setInvalidDecl();
10466 Diag(NewFD->getLocation(), diag::err_union_member_of_reference_type)
10467 << NewFD->getDeclName() << EltTy;
10468 NewFD->setInvalidDecl();
10477 ProcessDeclAttributes(TUScope, NewFD, *D);
10479 if (NewFD->hasAttrs())
10480 CheckAlignasUnderalignment(NewFD);
10485 if (getLangOpts().ObjCAutoRefCount && inferObjCARCLifetime(NewFD))
10486 NewFD->setInvalidDecl();
10491 NewFD->setAccess(AS);
10492 return NewFD;