Lines Matching refs:FD
1411 FunctionDecl *FD = D->getAsFunction(); in ActOnReenterFunctionContext() local
1412 if (!FD) in ActOnReenterFunctionContext()
1417 assert(CurContext == FD->getLexicalParent() && in ActOnReenterFunctionContext()
1419 CurContext = FD; in ActOnReenterFunctionContext()
1422 for (unsigned P = 0, NumParams = FD->getNumParams(); P < NumParams; ++P) { in ActOnReenterFunctionContext()
1423 ParmVarDecl *Param = FD->getParamDecl(P); in ActOnReenterFunctionContext()
1687 if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) { in ShouldWarnIfUnusedFileScopedDecl() local
1688 if (FD->getTemplateSpecializationKind() == TSK_ImplicitInstantiation) in ShouldWarnIfUnusedFileScopedDecl()
1692 if (FD->getTemplateSpecializationKind() == TSK_ExplicitSpecialization && in ShouldWarnIfUnusedFileScopedDecl()
1693 FD->getMemberSpecializationInfo() && !FD->isOutOfLine()) in ShouldWarnIfUnusedFileScopedDecl()
1696 if (const CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(FD)) { in ShouldWarnIfUnusedFileScopedDecl()
1701 if (FD->isInlined() && !isMainFileLoc(*this, FD->getLocation())) in ShouldWarnIfUnusedFileScopedDecl()
1705 if (FD->doesThisDeclarationHaveABody() && in ShouldWarnIfUnusedFileScopedDecl()
1706 Context.DeclMustBeEmitted(FD)) in ShouldWarnIfUnusedFileScopedDecl()
1742 if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) { in MarkUnusedFileScopedDecl() local
1743 const FunctionDecl *First = FD->getFirstDecl(); in MarkUnusedFileScopedDecl()
1744 if (FD != First && ShouldWarnIfUnusedFileScopedDecl(First)) in MarkUnusedFileScopedDecl()
1954 if (const auto *FD = dyn_cast<FieldDecl>(ShadowI->second)) { in ActOnPopScope() local
1956 << D << FD << FD->getParent(); in ActOnPopScope()
1957 Diag(FD->getLocation(), diag::note_previous_declaration); in ActOnPopScope()
2647 if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) { in getDefinition() local
2649 if (FD->isDefined(Def, true)) in getDefinition()
2677 if (FunctionDecl *FD = dyn_cast<FunctionDecl>(New)) { in checkNewAttributesAfterDef() local
2679 S.CheckForFunctionRedefinition(FD, cast<FunctionDecl>(Def), &SkipBody); in checkNewAttributesAfterDef()
3085 static bool canRedefineFunction(const FunctionDecl *FD, in canRedefineFunction() argument
3087 return ((FD->hasAttr<GNUInlineAttr>() || LangOpts.GNUInline) && in canRedefineFunction()
3089 FD->isInlineSpecified() && in canRedefineFunction()
3090 FD->getStorageClass() == SC_Extern); in canRedefineFunction()
3208 if (auto *FD = dyn_cast<FunctionDecl>(NewD)) in adjustDeclContextForDeclaratorDecl() local
3209 FixSemaDC(FD->getDescribedFunctionTemplate()); in adjustDeclContextForDeclaratorDecl()
4440 if (auto *FD = dyn_cast<FieldDecl>(D)) { in getNonCLikeKindForAnonymousStruct() local
4441 if (FD->hasInClassInitializer()) { in getNonCLikeKindForAnonymousStruct()
4442 auto *Init = FD->getInClassInitializer(); in getNonCLikeKindForAnonymousStruct()
4960 const auto *FD = dyn_cast<FieldDecl>(I); in findDefaultInitializer() local
4962 FD = IFD->getAnonField(); in findDefaultInitializer()
4963 if (FD && FD->hasInClassInitializer()) in findDefaultInitializer()
4964 return FD->getLocation(); in findDefaultInitializer()
5083 if (auto *FD = dyn_cast<FieldDecl>(Mem)) { in BuildAnonymousStructOrUnion() local
5087 assert(FD->getAccess() != AS_none); in BuildAnonymousStructOrUnion()
5088 if (FD->getAccess() != AS_public) { in BuildAnonymousStructOrUnion()
5089 Diag(FD->getLocation(), diag::err_anonymous_record_nonpublic_member) in BuildAnonymousStructOrUnion()
5090 << Record->isUnion() << (FD->getAccess() == AS_protected); in BuildAnonymousStructOrUnion()
5099 if (CheckNontrivialField(FD)) in BuildAnonymousStructOrUnion()
6458 if (const auto *FD = dyn_cast<FunctionDecl>(&ND)) { in checkAttributesAfterMerging() local
6463 for (TypeLoc TL = FD->getTypeSourceInfo()->getTypeLoc(); in checkAttributesAfterMerging()
6470 const auto *MD = dyn_cast<CXXMethodDecl>(FD); in checkAttributesAfterMerging()
6528 auto *FD = dyn_cast<FunctionDecl>(OldDecl); in checkDLLAttributeRedeclaration() local
6529 if (FD && FD->getTemplatedKind() == FunctionDecl::TK_NonTemplate) in checkDLLAttributeRedeclaration()
6565 } else if (const auto *FD = dyn_cast<FunctionDecl>(NewDecl)) { in checkDLLAttributeRedeclaration() local
6566 IsInline = FD->isInlined(); in checkDLLAttributeRedeclaration()
6567 IsQualifiedFriend = FD->getQualifier() && in checkDLLAttributeRedeclaration()
6568 FD->getFriendObjectKind() == Decl::FOK_Declared; in checkDLLAttributeRedeclaration()
6621 static bool isFunctionDefinitionDiscarded(Sema &S, FunctionDecl *FD) { in isFunctionDefinitionDiscarded() argument
6625 if (!FD->isInlined()) return false; in isFunctionDefinitionDiscarded()
6628 if (S.getLangOpts().CPlusPlus && !FD->hasAttr<GNUInlineAttr>()) in isFunctionDefinitionDiscarded()
6632 return S.Context.GetGVALinkageForFunction(FD) == GVA_AvailableExternally; in isFunctionDefinitionDiscarded()
6680 static bool shouldConsiderLinkage(const FunctionDecl *FD) { in shouldConsiderLinkage() argument
6681 const DeclContext *DC = FD->getDeclContext()->getRedeclContext(); in shouldConsiderLinkage()
6733 if (const auto *FD = dyn_cast<FunctionDecl>(D)) in isDeclExternC() local
6734 return FD->isExternC(); in isDeclExternC()
7619 if (FieldDecl *FD = dyn_cast<FieldDecl>(ShadowedDecl)) { in CheckShadow() local
7631 ShadowingDecls.insert({PVD->getCanonicalDecl(), FD}); in CheckShadow()
7838 if (FunctionDecl *FD = dyn_cast<FunctionDecl>(Prev)) in checkGlobalOrExternCConflict() local
7839 Prev = FD->getFirstDecl(); in checkGlobalOrExternCConflict()
7993 FunctionDecl *FD = getCurFunctionDecl(); in CheckVariableDeclarationType() local
7996 if (FD && !FD->hasAttr<OpenCLKernelAttr>()) { in CheckVariableDeclarationType()
8008 if (FD && FD->hasAttr<OpenCLKernelAttr>()) { in CheckVariableDeclarationType()
8252 FunctionDecl *FD = dyn_cast<FunctionDecl>(*CDecl); in ValidateCandidate() local
8254 if (FD && !FD->hasBody() && in ValidateCandidate()
8255 hasSimilarParameters(Context, FD, OriginalFD, MismatchedParams)) { in ValidateCandidate()
8256 if (CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(FD)) { in ValidateCandidate()
8325 FunctionDecl *FD = dyn_cast<FunctionDecl>(*Func); in DiagnoseInvalidRedeclaration() local
8326 if (FD && in DiagnoseInvalidRedeclaration()
8327 hasSimilarParameters(SemaRef.Context, FD, NewFD, MismatchedParams)) { in DiagnoseInvalidRedeclaration()
8332 NearMatches.push_back(std::make_pair(FD, ParamNum)); in DiagnoseInvalidRedeclaration()
8348 FunctionDecl *FD = dyn_cast<FunctionDecl>(*CDecl); in DiagnoseInvalidRedeclaration() local
8349 if (FD && !FD->hasBody() && in DiagnoseInvalidRedeclaration()
8350 hasSimilarParameters(SemaRef.Context, FD, NewFD, MismatchedParams)) { in DiagnoseInvalidRedeclaration()
8351 Previous.addDecl(FD); in DiagnoseInvalidRedeclaration()
8413 FunctionDecl *FD = NearMatch->first; in DiagnoseInvalidRedeclaration() local
8414 CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(FD); in DiagnoseInvalidRedeclaration()
8420 ParmVarDecl *FDParam = FD->getParamDecl(Idx-1); in DiagnoseInvalidRedeclaration()
8422 if (Loc.isInvalid()) Loc = FD->getLocation(); in DiagnoseInvalidRedeclaration()
8428 SemaRef.Diag(FD->getLocation(), diag::note_member_def_close_const_match) in DiagnoseInvalidRedeclaration()
8429 << NewFDisConst << FD->getSourceRange().getEnd(); in DiagnoseInvalidRedeclaration()
8431 SemaRef.Diag(FD->getLocation(), in DiagnoseInvalidRedeclaration()
8870 for (const auto *FD : RD->fields()) { in checkIsValidOpenCLKernelParameter() local
8871 QualType QT = FD->getType(); in checkIsValidOpenCLKernelParameter()
8881 VisitStack.push_back(FD); in checkIsValidOpenCLKernelParameter()
8913 S.Diag(FD->getLocation(), diag::note_illegal_field_declared_here) in checkIsValidOpenCLKernelParameter()
10021 static Attr *getImplicitCodeSegAttrFromClass(Sema &S, const FunctionDecl *FD) { in getImplicitCodeSegAttrFromClass() argument
10022 const auto *Method = dyn_cast<CXXMethodDecl>(FD); in getImplicitCodeSegAttrFromClass()
10056 Attr *Sema::getImplicitCodeSegOrSectionAttrForFunction(const FunctionDecl *FD, in getImplicitCodeSegOrSectionAttrForFunction() argument
10058 if (Attr *A = getImplicitCodeSegAttrFromClass(*this, FD)) in getImplicitCodeSegOrSectionAttrForFunction()
10060 if (!FD->hasAttr<SectionAttr>() && IsDefinition && in getImplicitCodeSegOrSectionAttrForFunction()
10141 static bool CheckMultiVersionValue(Sema &S, const FunctionDecl *FD) { in CheckMultiVersionValue() argument
10142 const auto *TA = FD->getAttr<TargetAttr>(); in CheckMultiVersionValue()
10150 S.Diag(FD->getLocation(), diag::err_bad_multiversion_option) in CheckMultiVersionValue()
10158 S.Diag(FD->getLocation(), diag::err_bad_multiversion_option) in CheckMultiVersionValue()
10165 S.Diag(FD->getLocation(), diag::err_bad_multiversion_option) in CheckMultiVersionValue()
10191 const FunctionDecl *FD, in checkNonMultiVersionCompatAttributes() argument
10197 const auto Diagnose = [FD, CausedFD, IsCPUSpecificCPUDispatchMVType]( in checkNonMultiVersionCompatAttributes()
10199 S.Diag(FD->getLocation(), diag::err_multiversion_disallowed_other_attr) in checkNonMultiVersionCompatAttributes()
10206 for (const Attr *A : FD->attrs()) { in checkNonMultiVersionCompatAttributes()
10385 static bool CheckMultiVersionFirstFunction(Sema &S, FunctionDecl *FD, in CheckMultiVersionFirstFunction() argument
10396 if (MVType == MultiVersionKind::Target && CheckMultiVersionValue(S, FD)) { in CheckMultiVersionFirstFunction()
10397 FD->setInvalidDecl(); in CheckMultiVersionFirstFunction()
10401 if (CheckMultiVersionAdditionalRules(S, nullptr, FD, true, MVType)) { in CheckMultiVersionFirstFunction()
10402 FD->setInvalidDecl(); in CheckMultiVersionFirstFunction()
10406 FD->setIsMultiVersion(); in CheckMultiVersionFirstFunction()
10410 static bool PreviousDeclsHaveMultiVersionAttribute(const FunctionDecl *FD) { in PreviousDeclsHaveMultiVersionAttribute() argument
10411 for (const Decl *D = FD->getPreviousDecl(); D; D = D->getPreviousDecl()) { in PreviousDeclsHaveMultiVersionAttribute()
10477 for (const auto *FD : OldFD->redecls()) { in CheckTargetCausesMultiVersioning() local
10478 const auto *CurTA = FD->getAttr<TargetAttr>(); in CheckTargetCausesMultiVersioning()
10481 if (PreviousDeclsHaveMultiVersionAttribute(FD) && in CheckTargetCausesMultiVersioning()
10483 S.Diag(FD->getLocation(), diag::err_multiversion_required_in_redecl) in CheckTargetCausesMultiVersioning()
10920 const auto *FD = dyn_cast<FunctionDecl>(ND); in CheckFunctionDeclaration() local
10921 return FD && !FD->hasAttr<OverloadableAttr>(); in CheckFunctionDeclaration()
11068 void Sema::CheckMain(FunctionDecl* FD, const DeclSpec& DS) { in CheckMain() argument
11076 if (FD->getStorageClass() == SC_Static) in CheckMain()
11080 if (FD->isInlineSpecified()) in CheckMain()
11090 if (FD->isConstexpr()) { in CheckMain()
11092 << FD->isConsteval() in CheckMain()
11094 FD->setConstexprKind(ConstexprSpecKind::Unspecified); in CheckMain()
11098 Diag(FD->getLocation(), diag::err_opencl_no_main) in CheckMain()
11099 << FD->hasAttr<OpenCLKernelAttr>(); in CheckMain()
11100 FD->setInvalidDecl(); in CheckMain()
11104 QualType T = FD->getType(); in CheckMain()
11111 FD->setType(QualType(FT, 0)); in CheckMain()
11112 T = Context.getCanonicalType(FD->getType()); in CheckMain()
11122 FD->setHasImplicitReturnZero(true); in CheckMain()
11124 Diag(FD->getTypeSpecStartLoc(), diag::ext_main_returns_nonint); in CheckMain()
11125 SourceRange RTRange = FD->getReturnTypeSourceRange(); in CheckMain()
11137 FD->setHasImplicitReturnZero(true); in CheckMain()
11140 SourceRange RTRange = FD->getReturnTypeSourceRange(); in CheckMain()
11141 Diag(FD->getTypeSpecStartLoc(), diag::err_main_returns_nonint) in CheckMain()
11144 FD->setInvalidDecl(true); in CheckMain()
11153 assert(FD->getNumParams() == nparams); in CheckMain()
11158 Diag(FD->getLocation(), diag::ext_variadic_main); in CheckMain()
11170 Diag(FD->getLocation(), diag::err_main_surplus_args) << nparams; in CheckMain()
11171 FD->setInvalidDecl(true); in CheckMain()
11207 Diag(FD->getLocation(), diag::err_main_arg_wrong) << i << Expected[i]; in CheckMain()
11209 FD->setInvalidDecl(true); in CheckMain()
11213 if (nparams == 1 && !FD->isInvalidDecl()) { in CheckMain()
11214 Diag(FD->getLocation(), diag::warn_main_one_arg); in CheckMain()
11217 if (!FD->isInvalidDecl() && FD->getDescribedFunctionTemplate()) { in CheckMain()
11218 Diag(FD->getLocation(), diag::err_mainlike_template_decl) << FD; in CheckMain()
11219 FD->setInvalidDecl(); in CheckMain()
11223 static bool isDefaultStdCall(FunctionDecl *FD, Sema &S) { in isDefaultStdCall() argument
11226 if (FD->getName() == "main" || FD->getName() == "wmain") in isDefaultStdCall()
11242 void Sema::CheckMSVCRTEntryPoint(FunctionDecl *FD) { in CheckMSVCRTEntryPoint() argument
11243 QualType T = FD->getType(); in CheckMSVCRTEntryPoint()
11253 if (FD->getName() != "DllMain") in CheckMSVCRTEntryPoint()
11254 FD->setHasImplicitReturnZero(true); in CheckMSVCRTEntryPoint()
11258 if (isDefaultStdCall(FD, *this)) { in CheckMSVCRTEntryPoint()
11262 FD->setType(QualType(FT, 0)); in CheckMSVCRTEntryPoint()
11267 FD->setType(QualType(FT, 0)); in CheckMSVCRTEntryPoint()
11271 if (!FD->isInvalidDecl() && FD->getDescribedFunctionTemplate()) { in CheckMSVCRTEntryPoint()
11272 Diag(FD->getLocation(), diag::err_mainlike_template_decl) << FD; in CheckMSVCRTEntryPoint()
11273 FD->setInvalidDecl(); in CheckMSVCRTEntryPoint()
11359 FieldDecl *FD = dyn_cast<FieldDecl>(ME->getMemberDecl()); in CheckInitListMemberExpr() local
11360 if (!FD) in CheckInitListMemberExpr()
11362 Fields.push_back(FD); in CheckInitListMemberExpr()
11363 if (FD->getType()->isReferenceType()) in CheckInitListMemberExpr()
11850 bool shouldIgnoreForRecordTriviality(const FieldDecl *FD) { in shouldIgnoreForRecordTriviality() argument
11856 return FD->hasAttr<UnavailableAttr>(); in shouldIgnoreForRecordTriviality()
11872 const FieldDecl *FD, bool InNonTrivialUnion) { in visitWithKind()
11874 return this->asDerived().visit(S.Context.getBaseElementType(AT), FD, in visitWithKind()
11876 return Super::visitWithKind(PDIK, QT, FD, InNonTrivialUnion); in visitWithKind()
11879 void visitARCStrong(QualType QT, const FieldDecl *FD, in visitARCStrong()
11882 S.Diag(FD->getLocation(), diag::note_non_trivial_c_union) in visitARCStrong()
11883 << 1 << 0 << QT << FD->getName(); in visitARCStrong()
11886 void visitARCWeak(QualType QT, const FieldDecl *FD, bool InNonTrivialUnion) { in visitARCWeak()
11888 S.Diag(FD->getLocation(), diag::note_non_trivial_c_union) in visitARCWeak()
11889 << 1 << 0 << QT << FD->getName(); in visitARCWeak()
11892 void visitStruct(QualType QT, const FieldDecl *FD, bool InNonTrivialUnion) { in visitStruct()
11911 for (const FieldDecl *FD : RD->fields()) in visitStruct() local
11912 if (!shouldIgnoreForRecordTriviality(FD)) in visitStruct()
11913 asDerived().visit(FD->getType(), FD, InNonTrivialUnion); in visitStruct()
11916 void visitTrivial(QualType QT, const FieldDecl *FD, bool InNonTrivialUnion) {} in visitTrivial()
11937 const FieldDecl *FD, bool InNonTrivialUnion) { in visitWithKind()
11939 return this->asDerived().visit(S.Context.getBaseElementType(AT), FD, in visitWithKind()
11941 return Super::visitWithKind(DK, QT, FD, InNonTrivialUnion); in visitWithKind()
11944 void visitARCStrong(QualType QT, const FieldDecl *FD, in visitARCStrong()
11947 S.Diag(FD->getLocation(), diag::note_non_trivial_c_union) in visitARCStrong()
11948 << 1 << 1 << QT << FD->getName(); in visitARCStrong()
11951 void visitARCWeak(QualType QT, const FieldDecl *FD, bool InNonTrivialUnion) { in visitARCWeak()
11953 S.Diag(FD->getLocation(), diag::note_non_trivial_c_union) in visitARCWeak()
11954 << 1 << 1 << QT << FD->getName(); in visitARCWeak()
11957 void visitStruct(QualType QT, const FieldDecl *FD, bool InNonTrivialUnion) { in visitStruct()
11976 for (const FieldDecl *FD : RD->fields()) in visitStruct() local
11977 if (!shouldIgnoreForRecordTriviality(FD)) in visitStruct()
11978 asDerived().visit(FD->getType(), FD, InNonTrivialUnion); in visitStruct()
11981 void visitTrivial(QualType QT, const FieldDecl *FD, bool InNonTrivialUnion) {} in visitTrivial()
11982 void visitCXXDestructor(QualType QT, const FieldDecl *FD, in visitCXXDestructor()
12003 const FieldDecl *FD, bool InNonTrivialUnion) { in visitWithKind()
12005 return this->asDerived().visit(S.Context.getBaseElementType(AT), FD, in visitWithKind()
12007 return Super::visitWithKind(PCK, QT, FD, InNonTrivialUnion); in visitWithKind()
12010 void visitARCStrong(QualType QT, const FieldDecl *FD, in visitARCStrong()
12013 S.Diag(FD->getLocation(), diag::note_non_trivial_c_union) in visitARCStrong()
12014 << 1 << 2 << QT << FD->getName(); in visitARCStrong()
12017 void visitARCWeak(QualType QT, const FieldDecl *FD, bool InNonTrivialUnion) { in visitARCWeak()
12019 S.Diag(FD->getLocation(), diag::note_non_trivial_c_union) in visitARCWeak()
12020 << 1 << 2 << QT << FD->getName(); in visitARCWeak()
12023 void visitStruct(QualType QT, const FieldDecl *FD, bool InNonTrivialUnion) { in visitStruct()
12042 for (const FieldDecl *FD : RD->fields()) in visitStruct() local
12043 if (!shouldIgnoreForRecordTriviality(FD)) in visitStruct()
12044 asDerived().visit(FD->getType(), FD, InNonTrivialUnion); in visitStruct()
12048 const FieldDecl *FD, bool InNonTrivialUnion) {} in preVisit()
12049 void visitTrivial(QualType QT, const FieldDecl *FD, bool InNonTrivialUnion) {} in visitTrivial()
12050 void visitVolatileTrivial(QualType QT, const FieldDecl *FD, in visitVolatileTrivial()
13258 auto *FD = dyn_cast_or_null<FunctionDecl>(VD->getParentFunctionOrMethod()); in CheckStaticLocalForDllExport() local
13261 while (FD && !getDLLAttr(FD) && in CheckStaticLocalForDllExport()
13262 !FD->hasAttr<DLLExportStaticLocalAttr>() && in CheckStaticLocalForDllExport()
13263 !FD->hasAttr<DLLImportStaticLocalAttr>()) { in CheckStaticLocalForDllExport()
13264 FD = dyn_cast_or_null<FunctionDecl>(FD->getParentFunctionOrMethod()); in CheckStaticLocalForDllExport()
13267 if (!FD) in CheckStaticLocalForDllExport()
13271 if (Attr *A = getDLLAttr(FD)) { in CheckStaticLocalForDllExport()
13275 } else if (Attr *A = FD->getAttr<DLLExportStaticLocalAttr>()) { in CheckStaticLocalForDllExport()
13282 if (!FD->hasAttr<DLLExportAttr>()) in CheckStaticLocalForDllExport()
13283 FD->addAttr(NewAttr); in CheckStaticLocalForDllExport()
13285 } else if (Attr *A = FD->getAttr<DLLImportStaticLocalAttr>()) { in CheckStaticLocalForDllExport()
13975 ShouldWarnAboutMissingPrototype(const FunctionDecl *FD, in ShouldWarnAboutMissingPrototype() argument
13978 if (FD->isInvalidDecl()) in ShouldWarnAboutMissingPrototype()
13982 if (!FD->isGlobal()) in ShouldWarnAboutMissingPrototype()
13986 if (isa<CXXMethodDecl>(FD)) in ShouldWarnAboutMissingPrototype()
13990 if (isa<TranslationUnitDecl>(FD->getDeclContext()->getRedeclContext())) in ShouldWarnAboutMissingPrototype()
13991 if (IdentifierInfo *II = FD->getIdentifier()) in ShouldWarnAboutMissingPrototype()
13996 if (FD->isInlined()) in ShouldWarnAboutMissingPrototype()
14000 if (FD->getDescribedFunctionTemplate()) in ShouldWarnAboutMissingPrototype()
14004 if (FD->isFunctionTemplateSpecialization()) in ShouldWarnAboutMissingPrototype()
14008 if (FD->hasAttr<OpenCLKernelAttr>()) in ShouldWarnAboutMissingPrototype()
14012 if (FD->isDeleted()) in ShouldWarnAboutMissingPrototype()
14015 for (const FunctionDecl *Prev = FD->getPreviousDecl(); in ShouldWarnAboutMissingPrototype()
14030 Sema::CheckForFunctionRedefinition(FunctionDecl *FD, in CheckForFunctionRedefinition() argument
14035 !FD->isDefined(Definition, /*CheckForPendingFriendDefinition*/ true)) in CheckForFunctionRedefinition()
14040 if (FunctionDecl *OrigFD = FD->getInstantiatedFromMemberFunction()) { in CheckForFunctionRedefinition()
14045 cast<Decl>(FD->getLexicalDeclContext()))) in CheckForFunctionRedefinition()
14076 Diag(FD->getLocation(), diag::err_redefinition_extern_inline) in CheckForFunctionRedefinition()
14077 << FD << getLangOpts().CPlusPlus; in CheckForFunctionRedefinition()
14079 Diag(FD->getLocation(), diag::err_redefinition) << FD; in CheckForFunctionRedefinition()
14082 FD->setInvalidDecl(); in CheckForFunctionRedefinition()
14142 FunctionDecl *FD = nullptr; in ActOnStartOfFunctionDef() local
14145 FD = FunTmpl->getTemplatedDecl(); in ActOnStartOfFunctionDef()
14147 FD = cast<FunctionDecl>(D); in ActOnStartOfFunctionDef()
14151 if (!isLambdaCallOperator(FD)) in ActOnStartOfFunctionDef()
14153 FD->isConsteval() ? ExpressionEvaluationContext::ConstantEvaluated in ActOnStartOfFunctionDef()
14157 if (const auto *Attr = FD->getAttr<AliasAttr>()) { in ActOnStartOfFunctionDef()
14158 Diag(Attr->getLocation(), diag::err_alias_is_definition) << FD << 0; in ActOnStartOfFunctionDef()
14159 FD->dropAttr<AliasAttr>(); in ActOnStartOfFunctionDef()
14160 FD->setInvalidDecl(); in ActOnStartOfFunctionDef()
14162 if (const auto *Attr = FD->getAttr<IFuncAttr>()) { in ActOnStartOfFunctionDef()
14163 Diag(Attr->getLocation(), diag::err_alias_is_definition) << FD << 1; in ActOnStartOfFunctionDef()
14164 FD->dropAttr<IFuncAttr>(); in ActOnStartOfFunctionDef()
14165 FD->setInvalidDecl(); in ActOnStartOfFunctionDef()
14168 if (auto *Ctor = dyn_cast<CXXConstructorDecl>(FD)) { in ActOnStartOfFunctionDef()
14180 if (!FD->willHaveBody() && !FD->isLateTemplateParsed() && in ActOnStartOfFunctionDef()
14181 !FD->isThisDeclarationInstantiatedFromAFriendDefinition()) { in ActOnStartOfFunctionDef()
14182 CheckForFunctionRedefinition(FD, nullptr, SkipBody); in ActOnStartOfFunctionDef()
14192 FD->setWillHaveBody(); in ActOnStartOfFunctionDef()
14203 if (isGenericLambdaCallOperatorSpecialization(FD)) { in ActOnStartOfFunctionDef()
14214 if (unsigned BuiltinID = FD->getBuiltinID()) { in ActOnStartOfFunctionDef()
14217 Diag(FD->getLocation(), diag::err_builtin_definition) << FD; in ActOnStartOfFunctionDef()
14218 FD->setInvalidDecl(); in ActOnStartOfFunctionDef()
14224 QualType ResultType = FD->getReturnType(); in ActOnStartOfFunctionDef()
14226 !FD->isInvalidDecl() && in ActOnStartOfFunctionDef()
14227 RequireCompleteType(FD->getLocation(), ResultType, in ActOnStartOfFunctionDef()
14229 FD->setInvalidDecl(); in ActOnStartOfFunctionDef()
14232 PushDeclContext(FnBodyScope, FD); in ActOnStartOfFunctionDef()
14235 CheckParmsForFunctionDef(FD->parameters(), in ActOnStartOfFunctionDef()
14241 for (Decl *NPD : FD->decls()) { in ActOnStartOfFunctionDef()
14262 for (auto Param : FD->parameters()) { in ActOnStartOfFunctionDef()
14263 Param->setOwningFunction(FD); in ActOnStartOfFunctionDef()
14274 if (const FunctionProtoType *FPT = FD->getType()->getAs<FunctionProtoType>()) in ActOnStartOfFunctionDef()
14278 if (FD->hasAttr<DLLImportAttr>() && !FD->isInlined() && in ActOnStartOfFunctionDef()
14279 !FD->isTemplateInstantiation()) { in ActOnStartOfFunctionDef()
14280 assert(!FD->hasAttr<DLLExportAttr>()); in ActOnStartOfFunctionDef()
14281 Diag(FD->getLocation(), diag::err_attribute_dllimport_function_definition); in ActOnStartOfFunctionDef()
14282 FD->setInvalidDecl(); in ActOnStartOfFunctionDef()
14291 Diag(FD->getLocation(), diag::warn_function_def_in_objc_container); in ActOnStartOfFunctionDef()
14349 if (const FunctionDecl *FD = D->getAsFunction()) { in canSkipFunctionBody() local
14350 if (FD->isConstexpr()) in canSkipFunctionBody()
14355 if (FD->getReturnType()->getContainedDeducedType()) in canSkipFunctionBody()
14364 if (FunctionDecl *FD = Decl->getAsFunction()) in ActOnSkippedFunctionBody() local
14365 FD->setHasSkippedBody(); in ActOnSkippedFunctionBody()
14422 FunctionDecl *FD = dcl ? dcl->getAsFunction() : nullptr; in ActOnFinishFunctionBody() local
14424 if (FSI->UsesFPIntrin && !FD->hasAttr<StrictFPAttr>()) in ActOnFinishFunctionBody()
14425 FD->addAttr(StrictFPAttr::CreateImplicit(Context)); in ActOnFinishFunctionBody()
14431 CheckCompletedCoroutineBody(FD, Body); in ActOnFinishFunctionBody()
14436 ExitFunctionBodyRAII ExitRAII(*this, isLambdaCallOperator(FD)); in ActOnFinishFunctionBody()
14438 if (FD) { in ActOnFinishFunctionBody()
14439 FD->setBody(Body); in ActOnFinishFunctionBody()
14440 FD->setWillHaveBody(false); in ActOnFinishFunctionBody()
14443 if (!FD->isInvalidDecl() && Body && !FD->isDependentContext() && in ActOnFinishFunctionBody()
14444 FD->getReturnType()->isUndeducedType()) { in ActOnFinishFunctionBody()
14448 if (!FD->getReturnType()->getAs<AutoType>()) { in ActOnFinishFunctionBody()
14450 << FD->getReturnType(); in ActOnFinishFunctionBody()
14451 FD->setInvalidDecl(); in ActOnFinishFunctionBody()
14454 TypeLoc ResultType = getReturnTypeLoc(FD); in ActOnFinishFunctionBody()
14456 FD, SubstAutoType(ResultType.getType(), Context.VoidTy)); in ActOnFinishFunctionBody()
14459 } else if (getLangOpts().CPlusPlus11 && isLambdaCallOperator(FD)) { in ActOnFinishFunctionBody()
14473 const auto *Proto = FD->getType()->castAs<FunctionProtoType>(); in ActOnFinishFunctionBody()
14474 FD->setType(Context.getFunctionType(RetType, Proto->getParamTypes(), in ActOnFinishFunctionBody()
14481 if (FD->hasImplicitReturnZero() || FD->hasAttr<NakedAttr>()) in ActOnFinishFunctionBody()
14486 if (getLangOpts().MicrosoftExt && FD->isPure() && !FD->isOutOfLine()) in ActOnFinishFunctionBody()
14487 Diag(FD->getLocation(), diag::ext_pure_function_definition); in ActOnFinishFunctionBody()
14489 if (!FD->isInvalidDecl()) { in ActOnFinishFunctionBody()
14491 if (!FD->isDeleted() && !FD->isDefaulted() && !FD->hasSkippedBody()) in ActOnFinishFunctionBody()
14492 DiagnoseUnusedParameters(FD->parameters()); in ActOnFinishFunctionBody()
14493 DiagnoseSizeOfParametersAndReturnValue(FD->parameters(), in ActOnFinishFunctionBody()
14494 FD->getReturnType(), FD); in ActOnFinishFunctionBody()
14497 if (CXXConstructorDecl *Constructor = dyn_cast<CXXConstructorDecl>(FD)) in ActOnFinishFunctionBody()
14498 MarkVTableUsed(FD->getLocation(), Constructor->getParent()); in ActOnFinishFunctionBody()
14499 else if (CXXDestructorDecl *Destructor = dyn_cast<CXXDestructorDecl>(FD)) in ActOnFinishFunctionBody()
14500 MarkVTableUsed(FD->getLocation(), Destructor->getParent()); in ActOnFinishFunctionBody()
14505 if (FD->getReturnType()->isRecordType() && in ActOnFinishFunctionBody()
14506 (!getLangOpts().CPlusPlus || !FD->isDependentContext())) in ActOnFinishFunctionBody()
14516 if (ShouldWarnAboutMissingPrototype(FD, PossiblePrototype)) { in ActOnFinishFunctionBody()
14517 Diag(FD->getLocation(), diag::warn_missing_prototype) << FD; in ActOnFinishFunctionBody()
14527 << (FD->getNumParams() != 0) in ActOnFinishFunctionBody()
14528 << (FD->getNumParams() == 0 in ActOnFinishFunctionBody()
14559 if ((FD->getReturnType()->isAnyPointerType() && in ActOnFinishFunctionBody()
14560 FD->getReturnType()->getPointeeType().isConstQualified()) || in ActOnFinishFunctionBody()
14561 FD->getReturnType().isConstQualified()) { in ActOnFinishFunctionBody()
14564 if (isLocAtConst(FD->getBeginLoc(), getSourceManager(), in ActOnFinishFunctionBody()
14567 return FD->getBeginLoc(); in ActOnFinishFunctionBody()
14569 return FD->getTypeSpecStartLoc(); in ActOnFinishFunctionBody()
14571 Diag(FD->getTypeSpecStartLoc(), diag::note_static_for_internal_linkage) in ActOnFinishFunctionBody()
14573 << (FD->getStorageClass() == SC_None in ActOnFinishFunctionBody()
14582 if (!FD->hasWrittenPrototype()) { in ActOnFinishFunctionBody()
14583 TypeSourceInfo *TI = FD->getTypeSourceInfo(); in ActOnFinishFunctionBody()
14591 if (FD->isMultiVersion() && FD->hasAttr<CPUDispatchAttr>() && Body) in ActOnFinishFunctionBody()
14597 if (auto *MD = dyn_cast<CXXMethodDecl>(FD)) { in ActOnFinishFunctionBody()
14604 if (FD->isInlined() && in ActOnFinishFunctionBody()
14616 MarkVTableUsed(FD->getLocation(), MD->getParent(), true); in ActOnFinishFunctionBody()
14621 assert((FD == getCurFunctionDecl() || getCurLambda()->CallOperator == FD) && in ActOnFinishFunctionBody()
14689 if (Body && (!FD || !FD->isDefaulted())) { in ActOnFinishFunctionBody()
14693 if (FD && isa<CXXConstructorDecl>(FD) && isa<CXXTryStmt>(Body)) in ActOnFinishFunctionBody()
14723 if (!IsInstantiation && FD && FD->isConstexpr() && !FD->isInvalidDecl() && in ActOnFinishFunctionBody()
14724 !CheckConstexprFunctionDefinition(FD, CheckConstexprKind::Diagnose)) in ActOnFinishFunctionBody()
14725 FD->setInvalidDecl(); in ActOnFinishFunctionBody()
14727 if (FD && FD->hasAttr<NakedAttr>()) { in ActOnFinishFunctionBody()
14746 Diag(FD->getAttr<NakedAttr>()->getLocation(), diag::note_attribute); in ActOnFinishFunctionBody()
14747 FD->setInvalidDecl(); in ActOnFinishFunctionBody()
14772 if (FD && (LangOpts.OpenMP || LangOpts.CUDA || LangOpts.SYCLIsDevice)) { in ActOnFinishFunctionBody()
14773 auto ES = getEmissionStatus(FD); in ActOnFinishFunctionBody()
14776 DeclsToCheckForDeferredDiags.insert(FD); in ActOnFinishFunctionBody()
14902 FunctionDecl *FD = cast<FunctionDecl>(ActOnDeclarator(BlockScope, D)); in ImplicitlyDefineFunction() local
14903 FD->setImplicit(); in ImplicitlyDefineFunction()
14905 AddKnownFunctionAttributes(FD); in ImplicitlyDefineFunction()
14907 return FD; in ImplicitlyDefineFunction()
14917 FunctionDecl *FD) { in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction() argument
14918 if (FD->isInvalidDecl()) in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
14921 if (FD->getDeclName().getCXXOverloadedOperator() != OO_New && in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
14922 FD->getDeclName().getCXXOverloadedOperator() != OO_Array_New) in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
14927 if (!FD->isReplaceableGlobalAllocationFunction(&AlignmentParam, &IsNothrow)) in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
14935 if (!IsNothrow && !FD->hasAttr<ReturnsNonNullAttr>()) in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
14936 FD->addAttr(ReturnsNonNullAttr::CreateImplicit(Context, FD->getLocation())); in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
14952 if (!FD->hasAttr<AllocSizeAttr>()) { in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
14953 FD->addAttr(AllocSizeAttr::CreateImplicit( in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
14954 Context, /*ElemSizeParam=*/ParamIdx(1, FD), in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
14955 /*NumElemsParam=*/ParamIdx(), FD->getLocation())); in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
14964 if (AlignmentParam.hasValue() && !FD->hasAttr<AllocAlignAttr>()) { in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
14965 FD->addAttr(AllocAlignAttr::CreateImplicit( in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
14966 Context, ParamIdx(AlignmentParam.getValue(), FD), FD->getLocation())); in AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()
14990 void Sema::AddKnownFunctionAttributes(FunctionDecl *FD) { in AddKnownFunctionAttributes() argument
14991 if (FD->isInvalidDecl()) in AddKnownFunctionAttributes()
14996 if (unsigned BuiltinID = FD->getBuiltinID()) { in AddKnownFunctionAttributes()
15001 if (!FD->hasAttr<FormatAttr>()) { in AddKnownFunctionAttributes()
15003 unsigned int NumParams = FD->getNumParams(); in AddKnownFunctionAttributes()
15005 FD->getParamDecl(FormatIdx)->getType()->isObjCObjectPointerType()) in AddKnownFunctionAttributes()
15007 FD->addAttr(FormatAttr::CreateImplicit(Context, in AddKnownFunctionAttributes()
15011 FD->getLocation())); in AddKnownFunctionAttributes()
15016 if (!FD->hasAttr<FormatAttr>()) in AddKnownFunctionAttributes()
15017 FD->addAttr(FormatAttr::CreateImplicit(Context, in AddKnownFunctionAttributes()
15021 FD->getLocation())); in AddKnownFunctionAttributes()
15026 if (!FD->hasAttr<CallbackAttr>() && in AddKnownFunctionAttributes()
15028 FD->addAttr(CallbackAttr::CreateImplicit( in AddKnownFunctionAttributes()
15029 Context, Encoding.data(), Encoding.size(), FD->getLocation())); in AddKnownFunctionAttributes()
15034 if (!getLangOpts().MathErrno && !FD->hasAttr<ConstAttr>() && in AddKnownFunctionAttributes()
15036 FD->addAttr(ConstAttr::CreateImplicit(Context, FD->getLocation())); in AddKnownFunctionAttributes()
15043 !FD->hasAttr<ConstAttr>()) { in AddKnownFunctionAttributes()
15051 FD->addAttr(ConstAttr::CreateImplicit(Context, FD->getLocation())); in AddKnownFunctionAttributes()
15059 !FD->hasAttr<ReturnsTwiceAttr>()) in AddKnownFunctionAttributes()
15060 FD->addAttr(ReturnsTwiceAttr::CreateImplicit(Context, in AddKnownFunctionAttributes()
15061 FD->getLocation())); in AddKnownFunctionAttributes()
15062 if (Context.BuiltinInfo.isNoThrow(BuiltinID) && !FD->hasAttr<NoThrowAttr>()) in AddKnownFunctionAttributes()
15063 FD->addAttr(NoThrowAttr::CreateImplicit(Context, FD->getLocation())); in AddKnownFunctionAttributes()
15064 if (Context.BuiltinInfo.isPure(BuiltinID) && !FD->hasAttr<PureAttr>()) in AddKnownFunctionAttributes()
15065 FD->addAttr(PureAttr::CreateImplicit(Context, FD->getLocation())); in AddKnownFunctionAttributes()
15066 if (Context.BuiltinInfo.isConst(BuiltinID) && !FD->hasAttr<ConstAttr>()) in AddKnownFunctionAttributes()
15067 FD->addAttr(ConstAttr::CreateImplicit(Context, FD->getLocation())); in AddKnownFunctionAttributes()
15069 !FD->hasAttr<CUDADeviceAttr>() && !FD->hasAttr<CUDAHostAttr>()) { in AddKnownFunctionAttributes()
15075 FD->addAttr(CUDADeviceAttr::CreateImplicit(Context, FD->getLocation())); in AddKnownFunctionAttributes()
15077 FD->addAttr(CUDAHostAttr::CreateImplicit(Context, FD->getLocation())); in AddKnownFunctionAttributes()
15081 AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction(FD); in AddKnownFunctionAttributes()
15087 FD->isExternC() && !FD->hasAttr<NoThrowAttr>()) { in AddKnownFunctionAttributes()
15088 const auto *FPT = FD->getType()->getAs<FunctionProtoType>(); in AddKnownFunctionAttributes()
15090 FD->addAttr(NoThrowAttr::CreateImplicit(Context, FD->getLocation())); in AddKnownFunctionAttributes()
15093 IdentifierInfo *Name = FD->getIdentifier(); in AddKnownFunctionAttributes()
15097 FD->getDeclContext()->isTranslationUnit()) || in AddKnownFunctionAttributes()
15098 (isa<LinkageSpecDecl>(FD->getDeclContext()) && in AddKnownFunctionAttributes()
15099 cast<LinkageSpecDecl>(FD->getDeclContext())->getLanguage() == in AddKnownFunctionAttributes()
15109 if (!FD->hasAttr<FormatAttr>()) in AddKnownFunctionAttributes()
15110 FD->addAttr(FormatAttr::CreateImplicit(Context, in AddKnownFunctionAttributes()
15113 FD->getLocation())); in AddKnownFunctionAttributes()
15119 if (!FD->hasAttr<FormatArgAttr>()) in AddKnownFunctionAttributes()
15120 FD->addAttr(FormatArgAttr::CreateImplicit(Context, ParamIdx(1, FD), in AddKnownFunctionAttributes()
15121 FD->getLocation())); in AddKnownFunctionAttributes()
16954 bool Sema::CheckNontrivialField(FieldDecl *FD) { in CheckNontrivialField() argument
16955 assert(FD); in CheckNontrivialField()
16958 if (FD->isInvalidDecl() || FD->getType()->isDependentType()) in CheckNontrivialField()
16961 QualType EltTy = Context.getBaseElementType(FD->getType()); in CheckNontrivialField()
16992 SourceLocation Loc = FD->getLocation(); in CheckNontrivialField()
16994 if (!FD->hasAttr<UnavailableAttr>()) in CheckNontrivialField()
16995 FD->addAttr(UnavailableAttr::CreateImplicit(Context, "", in CheckNontrivialField()
17001 Diag(FD->getLocation(), getLangOpts().CPlusPlus11 ? in CheckNontrivialField()
17004 << FD->getParent()->isUnion() << FD->getDeclName() << member; in CheckNontrivialField()
17220 FieldDecl *FD = cast<FieldDecl>(*i); in ActOnFields() local
17223 const Type *FDTy = FD->getType().getTypePtr(); in ActOnFields()
17225 if (!FD->isAnonymousStructOrUnion()) { in ActOnFields()
17227 RecFields.push_back(FD); in ActOnFields()
17232 if (FD->isInvalidDecl()) { in ActOnFields()
17250 Diag(FD->getLocation(), diag::err_field_declared_as_function) in ActOnFields()
17251 << FD->getDeclName(); in ActOnFields()
17252 FD->setInvalidDecl(); in ActOnFields()
17264 Diag(FD->getLocation(), diag::err_flexible_array_not_at_end) in ActOnFields()
17265 << FD->getDeclName() << FD->getType() << Record->getTagKind(); in ActOnFields()
17267 FD->setInvalidDecl(); in ActOnFields()
17284 Diag(FD->getLocation(), DiagID) << FD->getDeclName() in ActOnFields()
17292 Diag(FD->getLocation(), diag::err_flexible_array_virtual_base) in ActOnFields()
17293 << FD->getDeclName() << Record->getTagKind(); in ActOnFields()
17295 Diag(FD->getLocation(), diag::ext_c99_flexible_array_member) in ActOnFields()
17296 << FD->getDeclName() << Record->getTagKind(); in ActOnFields()
17303 QualType BaseElem = Context.getBaseElementType(FD->getType()); in ActOnFields()
17305 Diag(FD->getLocation(), diag::err_flexible_array_has_nontrivial_dtor) in ActOnFields()
17306 << FD->getDeclName() << FD->getType(); in ActOnFields()
17307 FD->setInvalidDecl(); in ActOnFields()
17320 FD->getLocation(), FD->getType(), in ActOnFields()
17323 FD->setInvalidDecl(); in ActOnFields()
17336 Diag(FD->getLocation(), diag::ext_variable_sized_type_in_struct) in ActOnFields()
17337 << FD->getDeclName() << FD->getType(); in ActOnFields()
17341 Diag(FD->getLocation(), diag::ext_flexible_array_in_struct) in ActOnFields()
17342 << FD->getDeclName(); in ActOnFields()
17347 RequireNonAbstractType(FD->getLocation(), FD->getType(), in ActOnFields()
17351 FD->setInvalidDecl(); in ActOnFields()
17359 Diag(FD->getLocation(), diag::err_statically_allocated_object) in ActOnFields()
17360 << FixItHint::CreateInsertion(FD->getLocation(), "*"); in ActOnFields()
17361 QualType T = Context.getObjCObjectPointerType(FD->getType()); in ActOnFields()
17362 FD->setType(T); in ActOnFields()
17364 FD->getType().hasNonTrivialObjCLifetime() && in ActOnFields()
17365 getSourceManager().isInSystemHeader(FD->getLocation()) && in ActOnFields()
17366 !getLangOpts().CPlusPlus && !FD->hasAttr<UnavailableAttr>() && in ActOnFields()
17367 (FD->getType().getObjCLifetime() != Qualifiers::OCL_Strong || in ActOnFields()
17368 !Context.hasDirectOwnershipQualifier(FD->getType()))) { in ActOnFields()
17375 FD->addAttr(UnavailableAttr::CreateImplicit( in ActOnFields()
17377 FD->getLocation())); in ActOnFields()
17381 if (FD->getType()->isObjCObjectPointerType() || in ActOnFields()
17382 FD->getType().isObjCGCStrong()) in ActOnFields()
17384 else if (Context.getAsArrayType(FD->getType())) { in ActOnFields()
17385 QualType BaseType = Context.getBaseElementType(FD->getType()); in ActOnFields()
17396 !shouldIgnoreForRecordTriviality(FD)) { in ActOnFields()
17397 QualType FT = FD->getType(); in ActOnFields()
17425 if (Record && FD->getType().isVolatileQualified()) in ActOnFields()
17428 if (FD->getIdentifier()) in ActOnFields()
18441 Sema::FunctionEmissionStatus Sema::getEmissionStatus(FunctionDecl *FD, in getEmissionStatus() argument
18443 assert(FD && "Expected non-null FunctionDecl"); in getEmissionStatus()
18447 if (LangOpts.SYCLIsDevice && FD->hasAttr<SYCLKernelAttr>()) in getEmissionStatus()
18451 if (FD->isDependentContext()) in getEmissionStatus()
18455 auto IsEmittedForExternalSymbol = [this, FD]() { in getEmissionStatus()
18459 FunctionDecl *Def = FD->getDefinition(); in getEmissionStatus()
18469 OMPDeclareTargetDeclAttr::getDeviceType(FD->getCanonicalDecl()); in getEmissionStatus()
18491 OMPDeclareTargetDeclAttr::getDeviceType(FD->getCanonicalDecl()); in getEmissionStatus()
18505 Sema::CUDAFunctionTarget T = IdentifyCUDATarget(FD); in getEmissionStatus()