Lines Matching refs:OldFD

11193     const FunctionDecl *OldFD, const FunctionDecl *NewFD,  in areMultiversionVariantFunctionsCompatible()  argument
11220 if (NoProtoDiagID.getDiagID() != 0 && OldFD && in areMultiversionVariantFunctionsCompatible()
11221 !OldFD->getType()->getAs<FunctionProtoType>()) { in areMultiversionVariantFunctionsCompatible()
11222 Diag(OldFD->getLocation(), NoProtoDiagID); in areMultiversionVariantFunctionsCompatible()
11271 if (OldFD) { in areMultiversionVariantFunctionsCompatible()
11272 QualType OldQType = Context.getCanonicalType(OldFD->getType()); in areMultiversionVariantFunctionsCompatible()
11285 if (OldFD->getConstexprKind() != NewFD->getConstexprKind()) in areMultiversionVariantFunctionsCompatible()
11288 if (OldFD->isInlineSpecified() != NewFD->isInlineSpecified()) in areMultiversionVariantFunctionsCompatible()
11291 if (OldFD->getFormalLinkage() != NewFD->getFormalLinkage()) in areMultiversionVariantFunctionsCompatible()
11294 if (!CLinkageMayDiffer && OldFD->isExternC() != NewFD->isExternC()) in areMultiversionVariantFunctionsCompatible()
11298 OldFD->getType()->getAs<FunctionProtoType>(), OldFD->getLocation(), in areMultiversionVariantFunctionsCompatible()
11305 static bool CheckMultiVersionAdditionalRules(Sema &S, const FunctionDecl *OldFD, in CheckMultiVersionAdditionalRules() argument
11311 if (OldFD) in CheckMultiVersionAdditionalRules()
11312 S.Diag(OldFD->getLocation(), diag::note_previous_declaration); in CheckMultiVersionAdditionalRules()
11320 if (CausesMV && OldFD && in CheckMultiVersionAdditionalRules()
11321 checkNonMultiVersionCompatAttributes(S, OldFD, NewFD, MVKind)) in CheckMultiVersionAdditionalRules()
11328 if (OldFD && CausesMV && OldFD->isUsed(false)) in CheckMultiVersionAdditionalRules()
11332 OldFD, NewFD, S.PDiag(diag::err_multiversion_noproto), in CheckMultiVersionAdditionalRules()
11385 static bool CheckTargetCausesMultiVersioning(Sema &S, FunctionDecl *OldFD, in CheckTargetCausesMultiVersioning() argument
11392 const auto *OldTA = OldFD->getAttr<TargetAttr>(); in CheckTargetCausesMultiVersioning()
11393 const auto *OldTVA = OldFD->getAttr<TargetVersionAttr>(); in CheckTargetCausesMultiVersioning()
11403 if (CheckMultiVersionAdditionalRules(S, OldFD, NewFD, true, in CheckTargetCausesMultiVersioning()
11416 if (!OldFD->isMultiVersion() && in CheckTargetCausesMultiVersioning()
11420 OldDecl = OldFD; in CheckTargetCausesMultiVersioning()
11421 OldFD->setIsMultiVersion(); in CheckTargetCausesMultiVersioning()
11426 if (CheckMultiVersionValue(S, OldFD)) { in CheckTargetCausesMultiVersioning()
11444 S.Diag(OldFD->getLocation(), diag::note_previous_declaration); in CheckTargetCausesMultiVersioning()
11460 S.Diag(OldFD->getLocation(), diag::note_previous_declaration); in CheckTargetCausesMultiVersioning()
11466 for (const auto *FD : OldFD->redecls()) { in CheckTargetCausesMultiVersioning()
11482 OldFD->setIsMultiVersion(); in CheckTargetCausesMultiVersioning()
11505 Sema &S, FunctionDecl *OldFD, FunctionDecl *NewFD, in CheckMultiVersionAdditionalDecl() argument
11511 MultiVersionKind OldMVKind = OldFD->getMultiVersionKind(); in CheckMultiVersionAdditionalDecl()
11515 S.Diag(OldFD->getLocation(), diag::note_previous_declaration); in CheckMultiVersionAdditionalDecl()
11697 if (CheckMultiVersionAdditionalRules(S, OldFD, NewFD, in CheckMultiVersionAdditionalDecl()
11698 !OldFD->isMultiVersion(), NewMVKind)) { in CheckMultiVersionAdditionalDecl()
11704 if (!OldFD->isMultiVersion()) { in CheckMultiVersionAdditionalDecl()
11705 OldFD->setIsMultiVersion(); in CheckMultiVersionAdditionalDecl()
11708 OldDecl = OldFD; in CheckMultiVersionAdditionalDecl()
11764 FunctionDecl *OldFD = OldDecl->getAsFunction(); in CheckMultiVersionFunction() local
11766 if (!OldFD->isMultiVersion() && MVKind == MultiVersionKind::None) { in CheckMultiVersionFunction()
11767 if (NewTVA || !OldFD->getAttr<TargetVersionAttr>()) in CheckMultiVersionFunction()
11778 OldFD->setIsMultiVersion(); in CheckMultiVersionFunction()
11779 OldDecl = OldFD; in CheckMultiVersionFunction()
11787 if (OldFD->isMultiVersion() && MVKind == MultiVersionKind::None && in CheckMultiVersionFunction()
11788 OldFD->getMultiVersionKind() != MultiVersionKind::TargetClones && in CheckMultiVersionFunction()
11789 OldFD->getMultiVersionKind() != MultiVersionKind::TargetVersion) { in CheckMultiVersionFunction()
11791 << (OldFD->getMultiVersionKind() != MultiVersionKind::Target); in CheckMultiVersionFunction()
11796 if (!OldFD->isMultiVersion()) { in CheckMultiVersionFunction()
11800 return CheckTargetCausesMultiVersioning(S, OldFD, NewFD, Redeclaration, in CheckMultiVersionFunction()
11803 if (OldFD->isUsed(false)) { in CheckMultiVersionFunction()
11807 OldFD->setIsMultiVersion(); in CheckMultiVersionFunction()
11820 return CheckMultiVersionAdditionalDecl(S, OldFD, NewFD, MVKind, NewCPUDisp, in CheckMultiVersionFunction()
12002 auto *OldFD = OldTemplateDecl->getTemplatedDecl(); in CheckFunctionDeclaration() local
12012 NewFD->setPreviousDeclaration(OldFD); in CheckFunctionDeclaration()
12026 if (OldFD->isDeleted()) { in CheckFunctionDeclaration()
12028 assert(OldFD->getCanonicalDecl() == OldFD); in CheckFunctionDeclaration()
12030 OldFD->setDeletedAsWritten(false); in CheckFunctionDeclaration()
12036 auto *OldFD = cast<FunctionDecl>(OldDecl); in CheckFunctionDeclaration() local
12038 NewFD->setPreviousDeclaration(OldFD); in CheckFunctionDeclaration()
12040 NewFD->setAccess(OldFD->getAccess()); in CheckFunctionDeclaration()