Lines Matching refs:FD
1424 FunctionDecl *FD = D->getAsFunction(); in ActOnReenterFunctionContext() local
1425 if (!FD) in ActOnReenterFunctionContext()
1430 assert(CurContext == FD->getLexicalParent() && in ActOnReenterFunctionContext()
1432 CurContext = FD; in ActOnReenterFunctionContext()
1435 for (unsigned P = 0, NumParams = FD->getNumParams(); P < NumParams; ++P) { in ActOnReenterFunctionContext()
1436 ParmVarDecl *Param = FD->getParamDecl(P); in ActOnReenterFunctionContext()
1700 if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) { in ShouldWarnIfUnusedFileScopedDecl() local
1701 if (FD->getTemplateSpecializationKind() == TSK_ImplicitInstantiation) in ShouldWarnIfUnusedFileScopedDecl()
1705 if (FD->getTemplateSpecializationKind() == TSK_ExplicitSpecialization && in ShouldWarnIfUnusedFileScopedDecl()
1706 FD->getMemberSpecializationInfo() && !FD->isOutOfLine()) in ShouldWarnIfUnusedFileScopedDecl()
1709 if (const CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(FD)) { in ShouldWarnIfUnusedFileScopedDecl()
1714 if (FD->isInlined() && !isMainFileLoc(*this, FD->getLocation())) in ShouldWarnIfUnusedFileScopedDecl()
1718 if (FD->doesThisDeclarationHaveABody() && in ShouldWarnIfUnusedFileScopedDecl()
1719 Context.DeclMustBeEmitted(FD)) in ShouldWarnIfUnusedFileScopedDecl()
1755 if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) { in MarkUnusedFileScopedDecl() local
1756 const FunctionDecl *First = FD->getFirstDecl(); in MarkUnusedFileScopedDecl()
1757 if (FD != First && ShouldWarnIfUnusedFileScopedDecl(First)) in MarkUnusedFileScopedDecl()
2006 if (const auto *FD = dyn_cast<FieldDecl>(ShadowI->second)) { in ActOnPopScope() local
2008 << D << FD << FD->getParent(); in ActOnPopScope()
2009 Diag(FD->getLocation(), diag::note_previous_declaration); in ActOnPopScope()
2699 if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) { in getDefinition() local
2701 if (FD->isDefined(Def, true)) in getDefinition()
2729 if (FunctionDecl *FD = dyn_cast<FunctionDecl>(New)) { in checkNewAttributesAfterDef() local
2731 S.CheckForFunctionRedefinition(FD, cast<FunctionDecl>(Def), &SkipBody); in checkNewAttributesAfterDef()
3137 static bool canRedefineFunction(const FunctionDecl *FD, in canRedefineFunction() argument
3139 return ((FD->hasAttr<GNUInlineAttr>() || LangOpts.GNUInline) && in canRedefineFunction()
3141 FD->isInlineSpecified() && in canRedefineFunction()
3142 FD->getStorageClass() == SC_Extern); in canRedefineFunction()
3261 if (auto *FD = dyn_cast<FunctionDecl>(NewD)) in adjustDeclContextForDeclaratorDecl() local
3262 FixSemaDC(FD->getDescribedFunctionTemplate()); in adjustDeclContextForDeclaratorDecl()
4503 if (auto *FD = dyn_cast<FieldDecl>(D)) { in getNonCLikeKindForAnonymousStruct() local
4504 if (FD->hasInClassInitializer()) { in getNonCLikeKindForAnonymousStruct()
4505 auto *Init = FD->getInClassInitializer(); in getNonCLikeKindForAnonymousStruct()
5023 const auto *FD = dyn_cast<FieldDecl>(I); in findDefaultInitializer() local
5025 FD = IFD->getAnonField(); in findDefaultInitializer()
5026 if (FD && FD->hasInClassInitializer()) in findDefaultInitializer()
5027 return FD->getLocation(); in findDefaultInitializer()
5146 if (auto *FD = dyn_cast<FieldDecl>(Mem)) { in BuildAnonymousStructOrUnion() local
5150 assert(FD->getAccess() != AS_none); in BuildAnonymousStructOrUnion()
5151 if (FD->getAccess() != AS_public) { in BuildAnonymousStructOrUnion()
5152 Diag(FD->getLocation(), diag::err_anonymous_record_nonpublic_member) in BuildAnonymousStructOrUnion()
5153 << Record->isUnion() << (FD->getAccess() == AS_protected); in BuildAnonymousStructOrUnion()
5162 if (CheckNontrivialField(FD)) in BuildAnonymousStructOrUnion()
6525 if (const auto *FD = dyn_cast<FunctionDecl>(&ND)) { in checkAttributesAfterMerging() local
6530 for (TypeLoc TL = FD->getTypeSourceInfo()->getTypeLoc(); in checkAttributesAfterMerging()
6537 const auto *MD = dyn_cast<CXXMethodDecl>(FD); in checkAttributesAfterMerging()
6595 auto *FD = dyn_cast<FunctionDecl>(OldDecl); in checkDLLAttributeRedeclaration() local
6596 if (FD && FD->getTemplatedKind() == FunctionDecl::TK_NonTemplate) in checkDLLAttributeRedeclaration()
6632 } else if (const auto *FD = dyn_cast<FunctionDecl>(NewDecl)) { in checkDLLAttributeRedeclaration() local
6633 IsInline = FD->isInlined(); in checkDLLAttributeRedeclaration()
6634 IsQualifiedFriend = FD->getQualifier() && in checkDLLAttributeRedeclaration()
6635 FD->getFriendObjectKind() == Decl::FOK_Declared; in checkDLLAttributeRedeclaration()
6688 static bool isFunctionDefinitionDiscarded(Sema &S, FunctionDecl *FD) { in isFunctionDefinitionDiscarded() argument
6692 if (!FD->isInlined()) return false; in isFunctionDefinitionDiscarded()
6695 if (S.getLangOpts().CPlusPlus && !FD->hasAttr<GNUInlineAttr>()) in isFunctionDefinitionDiscarded()
6699 return S.Context.GetGVALinkageForFunction(FD) == GVA_AvailableExternally; in isFunctionDefinitionDiscarded()
6747 static bool shouldConsiderLinkage(const FunctionDecl *FD) { in shouldConsiderLinkage() argument
6748 const DeclContext *DC = FD->getDeclContext()->getRedeclContext(); in shouldConsiderLinkage()
6800 if (const auto *FD = dyn_cast<FunctionDecl>(D)) in isDeclExternC() local
6801 return FD->isExternC(); in isDeclExternC()
7685 if (FieldDecl *FD = dyn_cast<FieldDecl>(ShadowedDecl)) { in CheckShadow() local
7697 ShadowingDecls.insert({PVD->getCanonicalDecl(), FD}); in CheckShadow()
7904 if (FunctionDecl *FD = dyn_cast<FunctionDecl>(Prev)) in checkGlobalOrExternCConflict() local
7905 Prev = FD->getFirstDecl(); in checkGlobalOrExternCConflict()
8052 FunctionDecl *FD = getCurFunctionDecl(); in CheckVariableDeclarationType() local
8055 if (FD && !FD->hasAttr<OpenCLKernelAttr>()) { in CheckVariableDeclarationType()
8067 if (FD && FD->hasAttr<OpenCLKernelAttr>()) { in CheckVariableDeclarationType()
8311 FunctionDecl *FD = dyn_cast<FunctionDecl>(*CDecl); in ValidateCandidate() local
8313 if (FD && !FD->hasBody() && in ValidateCandidate()
8314 hasSimilarParameters(Context, FD, OriginalFD, MismatchedParams)) { in ValidateCandidate()
8315 if (CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(FD)) { in ValidateCandidate()
8384 FunctionDecl *FD = dyn_cast<FunctionDecl>(*Func); in DiagnoseInvalidRedeclaration() local
8385 if (FD && in DiagnoseInvalidRedeclaration()
8386 hasSimilarParameters(SemaRef.Context, FD, NewFD, MismatchedParams)) { in DiagnoseInvalidRedeclaration()
8391 NearMatches.push_back(std::make_pair(FD, ParamNum)); in DiagnoseInvalidRedeclaration()
8407 FunctionDecl *FD = dyn_cast<FunctionDecl>(*CDecl); in DiagnoseInvalidRedeclaration() local
8408 if (FD && !FD->hasBody() && in DiagnoseInvalidRedeclaration()
8409 hasSimilarParameters(SemaRef.Context, FD, NewFD, MismatchedParams)) { in DiagnoseInvalidRedeclaration()
8410 Previous.addDecl(FD); in DiagnoseInvalidRedeclaration()
8472 FunctionDecl *FD = NearMatch->first; in DiagnoseInvalidRedeclaration() local
8473 CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(FD); in DiagnoseInvalidRedeclaration()
8479 ParmVarDecl *FDParam = FD->getParamDecl(Idx-1); in DiagnoseInvalidRedeclaration()
8481 if (Loc.isInvalid()) Loc = FD->getLocation(); in DiagnoseInvalidRedeclaration()
8487 SemaRef.Diag(FD->getLocation(), diag::note_member_def_close_const_match) in DiagnoseInvalidRedeclaration()
8488 << NewFDisConst << FD->getSourceRange().getEnd(); in DiagnoseInvalidRedeclaration()
8490 SemaRef.Diag(FD->getLocation(), in DiagnoseInvalidRedeclaration()
8929 for (const auto *FD : RD->fields()) { in checkIsValidOpenCLKernelParameter() local
8930 QualType QT = FD->getType(); in checkIsValidOpenCLKernelParameter()
8940 VisitStack.push_back(FD); in checkIsValidOpenCLKernelParameter()
8972 S.Diag(FD->getLocation(), diag::note_illegal_field_declared_here) in checkIsValidOpenCLKernelParameter()
10080 static Attr *getImplicitCodeSegAttrFromClass(Sema &S, const FunctionDecl *FD) { in getImplicitCodeSegAttrFromClass() argument
10081 const auto *Method = dyn_cast<CXXMethodDecl>(FD); in getImplicitCodeSegAttrFromClass()
10115 Attr *Sema::getImplicitCodeSegOrSectionAttrForFunction(const FunctionDecl *FD, in getImplicitCodeSegOrSectionAttrForFunction() argument
10117 if (Attr *A = getImplicitCodeSegAttrFromClass(*this, FD)) in getImplicitCodeSegOrSectionAttrForFunction()
10119 if (!FD->hasAttr<SectionAttr>() && IsDefinition && in getImplicitCodeSegOrSectionAttrForFunction()
10200 static bool CheckMultiVersionValue(Sema &S, const FunctionDecl *FD) { in CheckMultiVersionValue() argument
10201 const auto *TA = FD->getAttr<TargetAttr>(); in CheckMultiVersionValue()
10209 S.Diag(FD->getLocation(), diag::err_bad_multiversion_option) in CheckMultiVersionValue()
10217 S.Diag(FD->getLocation(), diag::err_bad_multiversion_option) in CheckMultiVersionValue()
10224 S.Diag(FD->getLocation(), diag::err_bad_multiversion_option) in CheckMultiVersionValue()
10250 const FunctionDecl *FD, in checkNonMultiVersionCompatAttributes() argument
10256 const auto Diagnose = [FD, CausedFD, IsCPUSpecificCPUDispatchMVType]( in checkNonMultiVersionCompatAttributes()
10258 S.Diag(FD->getLocation(), diag::err_multiversion_disallowed_other_attr) in checkNonMultiVersionCompatAttributes()
10265 for (const Attr *A : FD->attrs()) { in checkNonMultiVersionCompatAttributes()
10444 static bool CheckMultiVersionFirstFunction(Sema &S, FunctionDecl *FD, in CheckMultiVersionFirstFunction() argument
10455 if (MVType == MultiVersionKind::Target && CheckMultiVersionValue(S, FD)) { in CheckMultiVersionFirstFunction()
10456 FD->setInvalidDecl(); in CheckMultiVersionFirstFunction()
10460 if (CheckMultiVersionAdditionalRules(S, nullptr, FD, true, MVType)) { in CheckMultiVersionFirstFunction()
10461 FD->setInvalidDecl(); in CheckMultiVersionFirstFunction()
10465 FD->setIsMultiVersion(); in CheckMultiVersionFirstFunction()
10469 static bool PreviousDeclsHaveMultiVersionAttribute(const FunctionDecl *FD) { in PreviousDeclsHaveMultiVersionAttribute() argument
10470 for (const Decl *D = FD->getPreviousDecl(); D; D = D->getPreviousDecl()) { in PreviousDeclsHaveMultiVersionAttribute()
10536 for (const auto *FD : OldFD->redecls()) { in CheckTargetCausesMultiVersioning() local
10537 const auto *CurTA = FD->getAttr<TargetAttr>(); in CheckTargetCausesMultiVersioning()
10540 if (PreviousDeclsHaveMultiVersionAttribute(FD) && in CheckTargetCausesMultiVersioning()
10542 S.Diag(FD->getLocation(), diag::err_multiversion_required_in_redecl) in CheckTargetCausesMultiVersioning()
10979 const auto *FD = dyn_cast<FunctionDecl>(ND); in CheckFunctionDeclaration() local
10980 return FD && !FD->hasAttr<OverloadableAttr>(); in CheckFunctionDeclaration()
11127 void Sema::CheckMain(FunctionDecl* FD, const DeclSpec& DS) { in CheckMain() argument
11135 if (FD->getStorageClass() == SC_Static) in CheckMain()
11139 if (FD->isInlineSpecified()) in CheckMain()
11149 if (FD->isConstexpr()) { in CheckMain()
11151 << FD->isConsteval() in CheckMain()
11153 FD->setConstexprKind(ConstexprSpecKind::Unspecified); in CheckMain()
11157 Diag(FD->getLocation(), diag::err_opencl_no_main) in CheckMain()
11158 << FD->hasAttr<OpenCLKernelAttr>(); in CheckMain()
11159 FD->setInvalidDecl(); in CheckMain()
11163 QualType T = FD->getType(); in CheckMain()
11170 FD->setType(QualType(FT, 0)); in CheckMain()
11171 T = Context.getCanonicalType(FD->getType()); in CheckMain()
11181 FD->setHasImplicitReturnZero(true); in CheckMain()
11183 Diag(FD->getTypeSpecStartLoc(), diag::ext_main_returns_nonint); in CheckMain()
11184 SourceRange RTRange = FD->getReturnTypeSourceRange(); in CheckMain()
11196 FD->setHasImplicitReturnZero(true); in CheckMain()
11199 SourceRange RTRange = FD->getReturnTypeSourceRange(); in CheckMain()
11200 Diag(FD->getTypeSpecStartLoc(), diag::err_main_returns_nonint) in CheckMain()
11203 FD->setInvalidDecl(true); in CheckMain()
11212 assert(FD->getNumParams() == nparams); in CheckMain()
11217 Diag(FD->getLocation(), diag::ext_variadic_main); in CheckMain()
11229 Diag(FD->getLocation(), diag::err_main_surplus_args) << nparams; in CheckMain()
11230 FD->setInvalidDecl(true); in CheckMain()
11266 Diag(FD->getLocation(), diag::err_main_arg_wrong) << i << Expected[i]; in CheckMain()
11268 FD->setInvalidDecl(true); in CheckMain()
11272 if (nparams == 1 && !FD->isInvalidDecl()) { in CheckMain()
11273 Diag(FD->getLocation(), diag::warn_main_one_arg); in CheckMain()
11276 if (!FD->isInvalidDecl() && FD->getDescribedFunctionTemplate()) { in CheckMain()
11277 Diag(FD->getLocation(), diag::err_mainlike_template_decl) << FD; in CheckMain()
11278 FD->setInvalidDecl(); in CheckMain()
11282 static bool isDefaultStdCall(FunctionDecl *FD, Sema &S) { in isDefaultStdCall() argument
11285 if (FD->getName() == "main" || FD->getName() == "wmain") in isDefaultStdCall()
11301 void Sema::CheckMSVCRTEntryPoint(FunctionDecl *FD) { in CheckMSVCRTEntryPoint() argument
11302 QualType T = FD->getType(); in CheckMSVCRTEntryPoint()
11312 if (FD->getName() != "DllMain") in CheckMSVCRTEntryPoint()
11313 FD->setHasImplicitReturnZero(true); in CheckMSVCRTEntryPoint()
11317 if (isDefaultStdCall(FD, *this)) { in CheckMSVCRTEntryPoint()
11321 FD->setType(QualType(FT, 0)); in CheckMSVCRTEntryPoint()
11326 FD->setType(QualType(FT, 0)); in CheckMSVCRTEntryPoint()
11330 if (!FD->isInvalidDecl() && FD->getDescribedFunctionTemplate()) { in CheckMSVCRTEntryPoint()
11331 Diag(FD->getLocation(), diag::err_mainlike_template_decl) << FD; in CheckMSVCRTEntryPoint()
11332 FD->setInvalidDecl(); in CheckMSVCRTEntryPoint()
11418 FieldDecl *FD = dyn_cast<FieldDecl>(ME->getMemberDecl()); in CheckInitListMemberExpr() local
11419 if (!FD) in CheckInitListMemberExpr()
11421 Fields.push_back(FD); in CheckInitListMemberExpr()
11422 if (FD->getType()->isReferenceType()) in CheckInitListMemberExpr()
11909 bool shouldIgnoreForRecordTriviality(const FieldDecl *FD) { in shouldIgnoreForRecordTriviality() argument
11915 return FD->hasAttr<UnavailableAttr>(); in shouldIgnoreForRecordTriviality()
11931 const FieldDecl *FD, bool InNonTrivialUnion) { in visitWithKind()
11933 return this->asDerived().visit(S.Context.getBaseElementType(AT), FD, in visitWithKind()
11935 return Super::visitWithKind(PDIK, QT, FD, InNonTrivialUnion); in visitWithKind()
11938 void visitARCStrong(QualType QT, const FieldDecl *FD, in visitARCStrong()
11941 S.Diag(FD->getLocation(), diag::note_non_trivial_c_union) in visitARCStrong()
11942 << 1 << 0 << QT << FD->getName(); in visitARCStrong()
11945 void visitARCWeak(QualType QT, const FieldDecl *FD, bool InNonTrivialUnion) { in visitARCWeak()
11947 S.Diag(FD->getLocation(), diag::note_non_trivial_c_union) in visitARCWeak()
11948 << 1 << 0 << QT << FD->getName(); in visitARCWeak()
11951 void visitStruct(QualType QT, const FieldDecl *FD, bool InNonTrivialUnion) { in visitStruct()
11970 for (const FieldDecl *FD : RD->fields()) in visitStruct() local
11971 if (!shouldIgnoreForRecordTriviality(FD)) in visitStruct()
11972 asDerived().visit(FD->getType(), FD, InNonTrivialUnion); in visitStruct()
11975 void visitTrivial(QualType QT, const FieldDecl *FD, bool InNonTrivialUnion) {} in visitTrivial()
11996 const FieldDecl *FD, bool InNonTrivialUnion) { in visitWithKind()
11998 return this->asDerived().visit(S.Context.getBaseElementType(AT), FD, in visitWithKind()
12000 return Super::visitWithKind(DK, QT, FD, InNonTrivialUnion); in visitWithKind()
12003 void visitARCStrong(QualType QT, const FieldDecl *FD, in visitARCStrong()
12006 S.Diag(FD->getLocation(), diag::note_non_trivial_c_union) in visitARCStrong()
12007 << 1 << 1 << QT << FD->getName(); in visitARCStrong()
12010 void visitARCWeak(QualType QT, const FieldDecl *FD, bool InNonTrivialUnion) { in visitARCWeak()
12012 S.Diag(FD->getLocation(), diag::note_non_trivial_c_union) in visitARCWeak()
12013 << 1 << 1 << QT << FD->getName(); in visitARCWeak()
12016 void visitStruct(QualType QT, const FieldDecl *FD, bool InNonTrivialUnion) { in visitStruct()
12035 for (const FieldDecl *FD : RD->fields()) in visitStruct() local
12036 if (!shouldIgnoreForRecordTriviality(FD)) in visitStruct()
12037 asDerived().visit(FD->getType(), FD, InNonTrivialUnion); in visitStruct()
12040 void visitTrivial(QualType QT, const FieldDecl *FD, bool InNonTrivialUnion) {} in visitTrivial()
12041 void visitCXXDestructor(QualType QT, const FieldDecl *FD, in visitCXXDestructor()
12062 const FieldDecl *FD, bool InNonTrivialUnion) { in visitWithKind()
12064 return this->asDerived().visit(S.Context.getBaseElementType(AT), FD, in visitWithKind()
12066 return Super::visitWithKind(PCK, QT, FD, InNonTrivialUnion); in visitWithKind()
12069 void visitARCStrong(QualType QT, const FieldDecl *FD, in visitARCStrong()
12072 S.Diag(FD->getLocation(), diag::note_non_trivial_c_union) in visitARCStrong()
12073 << 1 << 2 << QT << FD->getName(); in visitARCStrong()
12076 void visitARCWeak(QualType QT, const FieldDecl *FD, bool InNonTrivialUnion) { in visitARCWeak()
12078 S.Diag(FD->getLocation(), diag::note_non_trivial_c_union) in visitARCWeak()
12079 << 1 << 2 << QT << FD->getName(); in visitARCWeak()
12082 void visitStruct(QualType QT, const FieldDecl *FD, bool InNonTrivialUnion) { in visitStruct()
12101 for (const FieldDecl *FD : RD->fields()) in visitStruct() local
12102 if (!shouldIgnoreForRecordTriviality(FD)) in visitStruct()
12103 asDerived().visit(FD->getType(), FD, InNonTrivialUnion); in visitStruct()
12107 const FieldDecl *FD, bool InNonTrivialUnion) {} in preVisit()
12108 void visitTrivial(QualType QT, const FieldDecl *FD, bool InNonTrivialUnion) {} in visitTrivial()
12109 void visitVolatileTrivial(QualType QT, const FieldDecl *FD, in visitVolatileTrivial()
13315 auto *FD = dyn_cast_or_null<FunctionDecl>(VD->getParentFunctionOrMethod()); in CheckStaticLocalForDllExport() local
13318 while (FD && !getDLLAttr(FD) && in CheckStaticLocalForDllExport()
13319 !FD->hasAttr<DLLExportStaticLocalAttr>() && in CheckStaticLocalForDllExport()
13320 !FD->hasAttr<DLLImportStaticLocalAttr>()) { in CheckStaticLocalForDllExport()
13321 FD = dyn_cast_or_null<FunctionDecl>(FD->getParentFunctionOrMethod()); in CheckStaticLocalForDllExport()
13324 if (!FD) in CheckStaticLocalForDllExport()
13328 if (Attr *A = getDLLAttr(FD)) { in CheckStaticLocalForDllExport()
13332 } else if (Attr *A = FD->getAttr<DLLExportStaticLocalAttr>()) { in CheckStaticLocalForDllExport()
13339 if (!FD->hasAttr<DLLExportAttr>()) in CheckStaticLocalForDllExport()
13340 FD->addAttr(NewAttr); in CheckStaticLocalForDllExport()
13342 } else if (Attr *A = FD->getAttr<DLLImportStaticLocalAttr>()) { in CheckStaticLocalForDllExport()
14031 ShouldWarnAboutMissingPrototype(const FunctionDecl *FD, in ShouldWarnAboutMissingPrototype() argument
14034 if (FD->isInvalidDecl()) in ShouldWarnAboutMissingPrototype()
14038 if (!FD->isGlobal()) in ShouldWarnAboutMissingPrototype()
14042 if (isa<CXXMethodDecl>(FD)) in ShouldWarnAboutMissingPrototype()
14046 if (isa<TranslationUnitDecl>(FD->getDeclContext()->getRedeclContext())) in ShouldWarnAboutMissingPrototype()
14047 if (IdentifierInfo *II = FD->getIdentifier()) in ShouldWarnAboutMissingPrototype()
14052 if (FD->isInlined()) in ShouldWarnAboutMissingPrototype()
14056 if (FD->getDescribedFunctionTemplate()) in ShouldWarnAboutMissingPrototype()
14060 if (FD->isFunctionTemplateSpecialization()) in ShouldWarnAboutMissingPrototype()
14064 if (FD->hasAttr<OpenCLKernelAttr>()) in ShouldWarnAboutMissingPrototype()
14068 if (FD->isDeleted()) in ShouldWarnAboutMissingPrototype()
14071 for (const FunctionDecl *Prev = FD->getPreviousDecl(); in ShouldWarnAboutMissingPrototype()
14086 Sema::CheckForFunctionRedefinition(FunctionDecl *FD, in CheckForFunctionRedefinition() argument
14091 !FD->isDefined(Definition, /*CheckForPendingFriendDefinition*/ true)) in CheckForFunctionRedefinition()
14096 if (FunctionDecl *OrigFD = FD->getInstantiatedFromMemberFunction()) { in CheckForFunctionRedefinition()
14101 cast<Decl>(FD->getLexicalDeclContext()))) in CheckForFunctionRedefinition()
14132 Diag(FD->getLocation(), diag::err_redefinition_extern_inline) in CheckForFunctionRedefinition()
14133 << FD << getLangOpts().CPlusPlus; in CheckForFunctionRedefinition()
14135 Diag(FD->getLocation(), diag::err_redefinition) << FD; in CheckForFunctionRedefinition()
14138 FD->setInvalidDecl(); in CheckForFunctionRedefinition()
14198 FunctionDecl *FD = nullptr; in ActOnStartOfFunctionDef() local
14201 FD = FunTmpl->getTemplatedDecl(); in ActOnStartOfFunctionDef()
14203 FD = cast<FunctionDecl>(D); in ActOnStartOfFunctionDef()
14207 if (!isLambdaCallOperator(FD)) in ActOnStartOfFunctionDef()
14209 FD->isConsteval() ? ExpressionEvaluationContext::ConstantEvaluated in ActOnStartOfFunctionDef()
14213 if (const auto *Attr = FD->getAttr<AliasAttr>()) { in ActOnStartOfFunctionDef()
14214 Diag(Attr->getLocation(), diag::err_alias_is_definition) << FD << 0; in ActOnStartOfFunctionDef()
14215 FD->dropAttr<AliasAttr>(); in ActOnStartOfFunctionDef()
14216 FD->setInvalidDecl(); in ActOnStartOfFunctionDef()
14218 if (const auto *Attr = FD->getAttr<IFuncAttr>()) { in ActOnStartOfFunctionDef()
14219 Diag(Attr->getLocation(), diag::err_alias_is_definition) << FD << 1; in ActOnStartOfFunctionDef()
14220 FD->dropAttr<IFuncAttr>(); in ActOnStartOfFunctionDef()
14221 FD->setInvalidDecl(); in ActOnStartOfFunctionDef()
14224 if (auto *Ctor = dyn_cast<CXXConstructorDecl>(FD)) { in ActOnStartOfFunctionDef()
14236 if (!FD->willHaveBody() && !FD->isLateTemplateParsed() && in ActOnStartOfFunctionDef()
14237 !FD->isThisDeclarationInstantiatedFromAFriendDefinition()) { in ActOnStartOfFunctionDef()
14238 CheckForFunctionRedefinition(FD, nullptr, SkipBody); in ActOnStartOfFunctionDef()
14248 FD->setWillHaveBody(); in ActOnStartOfFunctionDef()
14259 if (isGenericLambdaCallOperatorSpecialization(FD)) { in ActOnStartOfFunctionDef()
14270 if (unsigned BuiltinID = FD->getBuiltinID()) { in ActOnStartOfFunctionDef()
14273 Diag(FD->getLocation(), diag::err_builtin_definition) << FD; in ActOnStartOfFunctionDef()
14274 FD->setInvalidDecl(); in ActOnStartOfFunctionDef()
14280 QualType ResultType = FD->getReturnType(); in ActOnStartOfFunctionDef()
14282 !FD->isInvalidDecl() && in ActOnStartOfFunctionDef()
14283 RequireCompleteType(FD->getLocation(), ResultType, in ActOnStartOfFunctionDef()
14285 FD->setInvalidDecl(); in ActOnStartOfFunctionDef()
14288 PushDeclContext(FnBodyScope, FD); in ActOnStartOfFunctionDef()
14291 CheckParmsForFunctionDef(FD->parameters(), in ActOnStartOfFunctionDef()
14297 for (Decl *NPD : FD->decls()) { in ActOnStartOfFunctionDef()
14318 for (auto Param : FD->parameters()) { in ActOnStartOfFunctionDef()
14319 Param->setOwningFunction(FD); in ActOnStartOfFunctionDef()
14330 if (const FunctionProtoType *FPT = FD->getType()->getAs<FunctionProtoType>()) in ActOnStartOfFunctionDef()
14334 if (FD->hasAttr<DLLImportAttr>() && !FD->isInlined() && in ActOnStartOfFunctionDef()
14335 !FD->isTemplateInstantiation()) { in ActOnStartOfFunctionDef()
14336 assert(!FD->hasAttr<DLLExportAttr>()); in ActOnStartOfFunctionDef()
14337 Diag(FD->getLocation(), diag::err_attribute_dllimport_function_definition); in ActOnStartOfFunctionDef()
14338 FD->setInvalidDecl(); in ActOnStartOfFunctionDef()
14347 Diag(FD->getLocation(), diag::warn_function_def_in_objc_container); in ActOnStartOfFunctionDef()
14405 if (const FunctionDecl *FD = D->getAsFunction()) { in canSkipFunctionBody() local
14406 if (FD->isConstexpr()) in canSkipFunctionBody()
14411 if (FD->getReturnType()->getContainedDeducedType()) in canSkipFunctionBody()
14420 if (FunctionDecl *FD = Decl->getAsFunction()) in ActOnSkippedFunctionBody() local
14421 FD->setHasSkippedBody(); in ActOnSkippedFunctionBody()
14478 FunctionDecl *FD = dcl ? dcl->getAsFunction() : nullptr; in ActOnFinishFunctionBody() local
14480 if (FSI->UsesFPIntrin && !FD->hasAttr<StrictFPAttr>()) in ActOnFinishFunctionBody()
14481 FD->addAttr(StrictFPAttr::CreateImplicit(Context)); in ActOnFinishFunctionBody()
14487 CheckCompletedCoroutineBody(FD, Body); in ActOnFinishFunctionBody()
14492 ExitFunctionBodyRAII ExitRAII(*this, isLambdaCallOperator(FD)); in ActOnFinishFunctionBody()
14494 if (FD) { in ActOnFinishFunctionBody()
14495 FD->setBody(Body); in ActOnFinishFunctionBody()
14496 FD->setWillHaveBody(false); in ActOnFinishFunctionBody()
14499 if (!FD->isInvalidDecl() && Body && !FD->isDependentContext() && in ActOnFinishFunctionBody()
14500 FD->getReturnType()->isUndeducedType()) { in ActOnFinishFunctionBody()
14504 if (!FD->getReturnType()->getAs<AutoType>()) { in ActOnFinishFunctionBody()
14506 << FD->getReturnType(); in ActOnFinishFunctionBody()
14507 FD->setInvalidDecl(); in ActOnFinishFunctionBody()
14510 TypeLoc ResultType = getReturnTypeLoc(FD); in ActOnFinishFunctionBody()
14512 FD, SubstAutoType(ResultType.getType(), Context.VoidTy)); in ActOnFinishFunctionBody()
14515 } else if (getLangOpts().CPlusPlus11 && isLambdaCallOperator(FD)) { in ActOnFinishFunctionBody()
14529 const auto *Proto = FD->getType()->castAs<FunctionProtoType>(); in ActOnFinishFunctionBody()
14530 FD->setType(Context.getFunctionType(RetType, Proto->getParamTypes(), in ActOnFinishFunctionBody()
14537 if (FD->hasImplicitReturnZero() || FD->hasAttr<NakedAttr>()) in ActOnFinishFunctionBody()
14542 if (getLangOpts().MicrosoftExt && FD->isPure() && !FD->isOutOfLine()) in ActOnFinishFunctionBody()
14543 Diag(FD->getLocation(), diag::ext_pure_function_definition); in ActOnFinishFunctionBody()
14545 if (!FD->isInvalidDecl()) { in ActOnFinishFunctionBody()
14547 if (!FD->isDeleted() && !FD->isDefaulted() && !FD->hasSkippedBody()) in ActOnFinishFunctionBody()
14548 DiagnoseUnusedParameters(FD->parameters()); in ActOnFinishFunctionBody()
14549 DiagnoseSizeOfParametersAndReturnValue(FD->parameters(), in ActOnFinishFunctionBody()
14550 FD->getReturnType(), FD); in ActOnFinishFunctionBody()
14553 if (CXXConstructorDecl *Constructor = dyn_cast<CXXConstructorDecl>(FD)) in ActOnFinishFunctionBody()
14554 MarkVTableUsed(FD->getLocation(), Constructor->getParent()); in ActOnFinishFunctionBody()
14555 else if (CXXDestructorDecl *Destructor = dyn_cast<CXXDestructorDecl>(FD)) in ActOnFinishFunctionBody()
14556 MarkVTableUsed(FD->getLocation(), Destructor->getParent()); in ActOnFinishFunctionBody()
14561 if (FD->getReturnType()->isRecordType() && in ActOnFinishFunctionBody()
14562 (!getLangOpts().CPlusPlus || !FD->isDependentContext())) in ActOnFinishFunctionBody()
14572 if (ShouldWarnAboutMissingPrototype(FD, PossiblePrototype)) { in ActOnFinishFunctionBody()
14573 Diag(FD->getLocation(), diag::warn_missing_prototype) << FD; in ActOnFinishFunctionBody()
14583 << (FD->getNumParams() != 0) in ActOnFinishFunctionBody()
14584 << (FD->getNumParams() == 0 in ActOnFinishFunctionBody()
14615 if ((FD->getReturnType()->isAnyPointerType() && in ActOnFinishFunctionBody()
14616 FD->getReturnType()->getPointeeType().isConstQualified()) || in ActOnFinishFunctionBody()
14617 FD->getReturnType().isConstQualified()) { in ActOnFinishFunctionBody()
14620 if (isLocAtConst(FD->getBeginLoc(), getSourceManager(), in ActOnFinishFunctionBody()
14623 return FD->getBeginLoc(); in ActOnFinishFunctionBody()
14625 return FD->getTypeSpecStartLoc(); in ActOnFinishFunctionBody()
14627 Diag(FD->getTypeSpecStartLoc(), diag::note_static_for_internal_linkage) in ActOnFinishFunctionBody()
14629 << (FD->getStorageClass() == SC_None in ActOnFinishFunctionBody()
14638 if (!FD->hasWrittenPrototype()) { in ActOnFinishFunctionBody()
14639 TypeSourceInfo *TI = FD->getTypeSourceInfo(); in ActOnFinishFunctionBody()
14647 if (FD->isMultiVersion() && FD->hasAttr<CPUDispatchAttr>() && Body) in ActOnFinishFunctionBody()
14653 if (auto *MD = dyn_cast<CXXMethodDecl>(FD)) { in ActOnFinishFunctionBody()
14660 if (FD->isInlined() && in ActOnFinishFunctionBody()
14672 MarkVTableUsed(FD->getLocation(), MD->getParent(), true); in ActOnFinishFunctionBody()
14677 assert((FD == getCurFunctionDecl() || getCurLambda()->CallOperator == FD) && in ActOnFinishFunctionBody()
14745 if (Body && (!FD || !FD->isDefaulted())) { in ActOnFinishFunctionBody()
14749 if (FD && isa<CXXConstructorDecl>(FD) && isa<CXXTryStmt>(Body)) in ActOnFinishFunctionBody()
14779 if (!IsInstantiation && FD && FD->isConstexpr() && !FD->isInvalidDecl() && in ActOnFinishFunctionBody()
14780 !CheckConstexprFunctionDefinition(FD, CheckConstexprKind::Diagnose)) in ActOnFinishFunctionBody()
14781 FD->setInvalidDecl(); in ActOnFinishFunctionBody()
14783 if (FD && FD->hasAttr<NakedAttr>()) { in ActOnFinishFunctionBody()
14802 Diag(FD->getAttr<NakedAttr>()->getLocation(), diag::note_attribute); in ActOnFinishFunctionBody()
14803 FD->setInvalidDecl(); in ActOnFinishFunctionBody()
14828 if (FD && (LangOpts.OpenMP || LangOpts.CUDA || LangOpts.SYCLIsDevice)) { in ActOnFinishFunctionBody()
14829 auto ES = getEmissionStatus(FD); in ActOnFinishFunctionBody()
14832 DeclsToCheckForDeferredDiags.insert(FD); in ActOnFinishFunctionBody()
14958 FunctionDecl *FD = cast<FunctionDecl>(ActOnDeclarator(BlockScope, D)); in ImplicitlyDefineFunction() local
14959 FD->setImplicit(); in ImplicitlyDefineFunction()
14961 AddKnownFunctionAttributes(FD); in ImplicitlyDefineFunction()
14963 return FD; in ImplicitlyDefineFunction()
14973 FunctionDecl *FD) { in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction() argument
14974 if (FD->isInvalidDecl()) in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
14977 if (FD->getDeclName().getCXXOverloadedOperator() != OO_New && in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
14978 FD->getDeclName().getCXXOverloadedOperator() != OO_Array_New) in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
14983 if (!FD->isReplaceableGlobalAllocationFunction(&AlignmentParam, &IsNothrow)) in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
14991 if (!IsNothrow && !FD->hasAttr<ReturnsNonNullAttr>()) in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
14992 FD->addAttr(ReturnsNonNullAttr::CreateImplicit(Context, FD->getLocation())); in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
15008 if (!FD->hasAttr<AllocSizeAttr>()) { in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
15009 FD->addAttr(AllocSizeAttr::CreateImplicit( in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
15010 Context, /*ElemSizeParam=*/ParamIdx(1, FD), in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
15011 /*NumElemsParam=*/ParamIdx(), FD->getLocation())); in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
15020 if (AlignmentParam.hasValue() && !FD->hasAttr<AllocAlignAttr>()) { in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
15021 FD->addAttr(AllocAlignAttr::CreateImplicit( in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
15022 Context, ParamIdx(AlignmentParam.getValue(), FD), FD->getLocation())); in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
15046 void Sema::AddKnownFunctionAttributes(FunctionDecl *FD) { in AddKnownFunctionAttributes() argument
15047 if (FD->isInvalidDecl()) in AddKnownFunctionAttributes()
15052 if (unsigned BuiltinID = FD->getBuiltinID()) { in AddKnownFunctionAttributes()
15057 if (!FD->hasAttr<FormatAttr>()) { in AddKnownFunctionAttributes()
15059 unsigned int NumParams = FD->getNumParams(); in AddKnownFunctionAttributes()
15061 FD->getParamDecl(FormatIdx)->getType()->isObjCObjectPointerType()) in AddKnownFunctionAttributes()
15063 FD->addAttr(FormatAttr::CreateImplicit(Context, in AddKnownFunctionAttributes()
15067 FD->getLocation())); in AddKnownFunctionAttributes()
15072 if (!FD->hasAttr<FormatAttr>()) in AddKnownFunctionAttributes()
15073 FD->addAttr(FormatAttr::CreateImplicit(Context, in AddKnownFunctionAttributes()
15077 FD->getLocation())); in AddKnownFunctionAttributes()
15082 if (!FD->hasAttr<CallbackAttr>() && in AddKnownFunctionAttributes()
15084 FD->addAttr(CallbackAttr::CreateImplicit( in AddKnownFunctionAttributes()
15085 Context, Encoding.data(), Encoding.size(), FD->getLocation())); in AddKnownFunctionAttributes()
15090 if (!getLangOpts().MathErrno && !FD->hasAttr<ConstAttr>() && in AddKnownFunctionAttributes()
15092 FD->addAttr(ConstAttr::CreateImplicit(Context, FD->getLocation())); in AddKnownFunctionAttributes()
15099 !FD->hasAttr<ConstAttr>()) { in AddKnownFunctionAttributes()
15107 FD->addAttr(ConstAttr::CreateImplicit(Context, FD->getLocation())); in AddKnownFunctionAttributes()
15115 !FD->hasAttr<ReturnsTwiceAttr>()) in AddKnownFunctionAttributes()
15116 FD->addAttr(ReturnsTwiceAttr::CreateImplicit(Context, in AddKnownFunctionAttributes()
15117 FD->getLocation())); in AddKnownFunctionAttributes()
15118 if (Context.BuiltinInfo.isNoThrow(BuiltinID) && !FD->hasAttr<NoThrowAttr>()) in AddKnownFunctionAttributes()
15119 FD->addAttr(NoThrowAttr::CreateImplicit(Context, FD->getLocation())); in AddKnownFunctionAttributes()
15120 if (Context.BuiltinInfo.isPure(BuiltinID) && !FD->hasAttr<PureAttr>()) in AddKnownFunctionAttributes()
15121 FD->addAttr(PureAttr::CreateImplicit(Context, FD->getLocation())); in AddKnownFunctionAttributes()
15122 if (Context.BuiltinInfo.isConst(BuiltinID) && !FD->hasAttr<ConstAttr>()) in AddKnownFunctionAttributes()
15123 FD->addAttr(ConstAttr::CreateImplicit(Context, FD->getLocation())); in AddKnownFunctionAttributes()
15125 !FD->hasAttr<CUDADeviceAttr>() && !FD->hasAttr<CUDAHostAttr>()) { in AddKnownFunctionAttributes()
15131 FD->addAttr(CUDADeviceAttr::CreateImplicit(Context, FD->getLocation())); in AddKnownFunctionAttributes()
15133 FD->addAttr(CUDAHostAttr::CreateImplicit(Context, FD->getLocation())); in AddKnownFunctionAttributes()
15137 AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction(FD); in AddKnownFunctionAttributes()
15143 FD->isExternC() && !FD->hasAttr<NoThrowAttr>()) { in AddKnownFunctionAttributes()
15144 const auto *FPT = FD->getType()->getAs<FunctionProtoType>(); in AddKnownFunctionAttributes()
15146 FD->addAttr(NoThrowAttr::CreateImplicit(Context, FD->getLocation())); in AddKnownFunctionAttributes()
15149 IdentifierInfo *Name = FD->getIdentifier(); in AddKnownFunctionAttributes()
15153 FD->getDeclContext()->isTranslationUnit()) || in AddKnownFunctionAttributes()
15154 (isa<LinkageSpecDecl>(FD->getDeclContext()) && in AddKnownFunctionAttributes()
15155 cast<LinkageSpecDecl>(FD->getDeclContext())->getLanguage() == in AddKnownFunctionAttributes()
15165 if (!FD->hasAttr<FormatAttr>()) in AddKnownFunctionAttributes()
15166 FD->addAttr(FormatAttr::CreateImplicit(Context, in AddKnownFunctionAttributes()
15169 FD->getLocation())); in AddKnownFunctionAttributes()
15175 if (!FD->hasAttr<FormatArgAttr>()) in AddKnownFunctionAttributes()
15176 FD->addAttr(FormatArgAttr::CreateImplicit(Context, ParamIdx(1, FD), in AddKnownFunctionAttributes()
15177 FD->getLocation())); in AddKnownFunctionAttributes()
17011 bool Sema::CheckNontrivialField(FieldDecl *FD) { in CheckNontrivialField() argument
17012 assert(FD); in CheckNontrivialField()
17015 if (FD->isInvalidDecl() || FD->getType()->isDependentType()) in CheckNontrivialField()
17018 QualType EltTy = Context.getBaseElementType(FD->getType()); in CheckNontrivialField()
17049 SourceLocation Loc = FD->getLocation(); in CheckNontrivialField()
17051 if (!FD->hasAttr<UnavailableAttr>()) in CheckNontrivialField()
17052 FD->addAttr(UnavailableAttr::CreateImplicit(Context, "", in CheckNontrivialField()
17058 Diag(FD->getLocation(), getLangOpts().CPlusPlus11 ? in CheckNontrivialField()
17061 << FD->getParent()->isUnion() << FD->getDeclName() << member; in CheckNontrivialField()
17277 FieldDecl *FD = cast<FieldDecl>(*i); in ActOnFields() local
17280 const Type *FDTy = FD->getType().getTypePtr(); in ActOnFields()
17282 if (!FD->isAnonymousStructOrUnion()) { in ActOnFields()
17284 RecFields.push_back(FD); in ActOnFields()
17289 if (FD->isInvalidDecl()) { in ActOnFields()
17307 Diag(FD->getLocation(), diag::err_field_declared_as_function) in ActOnFields()
17308 << FD->getDeclName(); in ActOnFields()
17309 FD->setInvalidDecl(); in ActOnFields()
17321 Diag(FD->getLocation(), diag::err_flexible_array_not_at_end) in ActOnFields()
17322 << FD->getDeclName() << FD->getType() << Record->getTagKind(); in ActOnFields()
17324 FD->setInvalidDecl(); in ActOnFields()
17341 Diag(FD->getLocation(), DiagID) << FD->getDeclName() in ActOnFields()
17349 Diag(FD->getLocation(), diag::err_flexible_array_virtual_base) in ActOnFields()
17350 << FD->getDeclName() << Record->getTagKind(); in ActOnFields()
17352 Diag(FD->getLocation(), diag::ext_c99_flexible_array_member) in ActOnFields()
17353 << FD->getDeclName() << Record->getTagKind(); in ActOnFields()
17360 QualType BaseElem = Context.getBaseElementType(FD->getType()); in ActOnFields()
17362 Diag(FD->getLocation(), diag::err_flexible_array_has_nontrivial_dtor) in ActOnFields()
17363 << FD->getDeclName() << FD->getType(); in ActOnFields()
17364 FD->setInvalidDecl(); in ActOnFields()
17377 FD->getLocation(), FD->getType(), in ActOnFields()
17380 FD->setInvalidDecl(); in ActOnFields()
17393 Diag(FD->getLocation(), diag::ext_variable_sized_type_in_struct) in ActOnFields()
17394 << FD->getDeclName() << FD->getType(); in ActOnFields()
17398 Diag(FD->getLocation(), diag::ext_flexible_array_in_struct) in ActOnFields()
17399 << FD->getDeclName(); in ActOnFields()
17404 RequireNonAbstractType(FD->getLocation(), FD->getType(), in ActOnFields()
17408 FD->setInvalidDecl(); in ActOnFields()
17416 Diag(FD->getLocation(), diag::err_statically_allocated_object) in ActOnFields()
17417 << FixItHint::CreateInsertion(FD->getLocation(), "*"); in ActOnFields()
17418 QualType T = Context.getObjCObjectPointerType(FD->getType()); in ActOnFields()
17419 FD->setType(T); in ActOnFields()
17421 FD->getType().hasNonTrivialObjCLifetime() && in ActOnFields()
17422 getSourceManager().isInSystemHeader(FD->getLocation()) && in ActOnFields()
17423 !getLangOpts().CPlusPlus && !FD->hasAttr<UnavailableAttr>() && in ActOnFields()
17424 (FD->getType().getObjCLifetime() != Qualifiers::OCL_Strong || in ActOnFields()
17425 !Context.hasDirectOwnershipQualifier(FD->getType()))) { in ActOnFields()
17432 FD->addAttr(UnavailableAttr::CreateImplicit( in ActOnFields()
17434 FD->getLocation())); in ActOnFields()
17438 if (FD->getType()->isObjCObjectPointerType() || in ActOnFields()
17439 FD->getType().isObjCGCStrong()) in ActOnFields()
17441 else if (Context.getAsArrayType(FD->getType())) { in ActOnFields()
17442 QualType BaseType = Context.getBaseElementType(FD->getType()); in ActOnFields()
17453 !shouldIgnoreForRecordTriviality(FD)) { in ActOnFields()
17454 QualType FT = FD->getType(); in ActOnFields()
17482 if (Record && FD->getType().isVolatileQualified()) in ActOnFields()
17485 if (FD->getIdentifier()) in ActOnFields()
18498 Sema::FunctionEmissionStatus Sema::getEmissionStatus(FunctionDecl *FD, in getEmissionStatus() argument
18500 assert(FD && "Expected non-null FunctionDecl"); in getEmissionStatus()
18504 if (LangOpts.SYCLIsDevice && FD->hasAttr<SYCLKernelAttr>()) in getEmissionStatus()
18508 if (FD->isDependentContext()) in getEmissionStatus()
18512 auto IsEmittedForExternalSymbol = [this, FD]() { in getEmissionStatus()
18516 FunctionDecl *Def = FD->getDefinition(); in getEmissionStatus()
18526 OMPDeclareTargetDeclAttr::getDeviceType(FD->getCanonicalDecl()); in getEmissionStatus()
18548 OMPDeclareTargetDeclAttr::getDeviceType(FD->getCanonicalDecl()); in getEmissionStatus()
18562 Sema::CUDAFunctionTarget T = IdentifyCUDATarget(FD); in getEmissionStatus()