reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/Sema/SemaDecl.cpp
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();