reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
13765 CheckCompletedCoroutineBody(FD, Body); 13770 ExitFunctionBodyRAII ExitRAII(*this, isLambdaCallOperator(FD)); 13772 if (FD) { 13773 FD->setBody(Body); 13774 FD->setWillHaveBody(false); 13777 if (!FD->isInvalidDecl() && Body && !FD->isDependentContext() && 13777 if (!FD->isInvalidDecl() && Body && !FD->isDependentContext() && 13778 FD->getReturnType()->isUndeducedType()) { 13782 if (!FD->getReturnType()->getAs<AutoType>()) { 13784 << FD->getReturnType(); 13785 FD->setInvalidDecl(); 13788 TypeLoc ResultType = getReturnTypeLoc(FD); 13790 FD, SubstAutoType(ResultType.getType(), Context.VoidTy)); 13793 } else if (getLangOpts().CPlusPlus11 && isLambdaCallOperator(FD)) { 13808 FD->getType()->getAs<FunctionProtoType>(); 13809 FD->setType(Context.getFunctionType(RetType, Proto->getParamTypes(), 13816 if (FD->hasImplicitReturnZero() || FD->hasAttr<NakedAttr>()) 13816 if (FD->hasImplicitReturnZero() || FD->hasAttr<NakedAttr>()) 13821 if (getLangOpts().MicrosoftExt && FD->isPure() && !FD->isOutOfLine()) 13821 if (getLangOpts().MicrosoftExt && FD->isPure() && !FD->isOutOfLine()) 13822 Diag(FD->getLocation(), diag::ext_pure_function_definition); 13824 if (!FD->isInvalidDecl()) { 13826 if (!FD->isDeleted() && !FD->isDefaulted() && !FD->hasSkippedBody()) 13826 if (!FD->isDeleted() && !FD->isDefaulted() && !FD->hasSkippedBody()) 13826 if (!FD->isDeleted() && !FD->isDefaulted() && !FD->hasSkippedBody()) 13827 DiagnoseUnusedParameters(FD->parameters()); 13828 DiagnoseSizeOfParametersAndReturnValue(FD->parameters(), 13829 FD->getReturnType(), FD); 13829 FD->getReturnType(), FD); 13832 if (CXXConstructorDecl *Constructor = dyn_cast<CXXConstructorDecl>(FD)) 13833 MarkVTableUsed(FD->getLocation(), Constructor->getParent()); 13834 else if (CXXDestructorDecl *Destructor = dyn_cast<CXXDestructorDecl>(FD)) 13835 MarkVTableUsed(FD->getLocation(), Destructor->getParent()); 13840 if (FD->getReturnType()->isRecordType() && 13841 (!getLangOpts().CPlusPlus || !FD->isDependentContext())) 13851 if (ShouldWarnAboutMissingPrototype(FD, PossiblePrototype)) { 13852 Diag(FD->getLocation(), diag::warn_missing_prototype) << FD; 13852 Diag(FD->getLocation(), diag::warn_missing_prototype) << FD; 13862 << (FD->getNumParams() != 0) 13863 << (FD->getNumParams() == 0 13868 Diag(FD->getTypeSpecStartLoc(), diag::note_static_for_internal_linkage) 13870 << (FD->getStorageClass() == SC_None 13871 ? FixItHint::CreateInsertion(FD->getTypeSpecStartLoc(), 13883 if (!FD->hasWrittenPrototype() && FD->getNumParams() > 0 && 13883 if (!FD->hasWrittenPrototype() && FD->getNumParams() > 0 && 13885 TypeSourceInfo *TI = FD->getTypeSourceInfo(); 13893 if (FD->isMultiVersion() && FD->hasAttr<CPUDispatchAttr>() && Body) 13893 if (FD->isMultiVersion() && FD->hasAttr<CPUDispatchAttr>() && Body) 13899 if (auto *MD = dyn_cast<CXXMethodDecl>(FD)) { 13906 if (FD->isInlined() && 13918 MarkVTableUsed(FD->getLocation(), MD->getParent(), true); 13923 assert((FD == getCurFunctionDecl() || getCurLambda()->CallOperator == FD) && 13923 assert((FD == getCurFunctionDecl() || getCurLambda()->CallOperator == FD) && 13991 if (Body && (!FD || !FD->isDefaulted())) { 13991 if (Body && (!FD || !FD->isDefaulted())) { 13995 if (FD && isa<CXXConstructorDecl>(FD) && isa<CXXTryStmt>(Body)) 13995 if (FD && isa<CXXConstructorDecl>(FD) && isa<CXXTryStmt>(Body)) 14025 if (!IsInstantiation && FD && FD->isConstexpr() && !FD->isInvalidDecl() && 14025 if (!IsInstantiation && FD && FD->isConstexpr() && !FD->isInvalidDecl() && 14025 if (!IsInstantiation && FD && FD->isConstexpr() && !FD->isInvalidDecl() && 14026 !CheckConstexprFunctionDefinition(FD, CheckConstexprKind::Diagnose)) 14027 FD->setInvalidDecl(); 14029 if (FD && FD->hasAttr<NakedAttr>()) { 14029 if (FD && FD->hasAttr<NakedAttr>()) { 14048 Diag(FD->getAttr<NakedAttr>()->getLocation(), diag::note_attribute); 14049 FD->setInvalidDecl();