Lines Matching defs:OldFD

11235     const FunctionDecl *OldFD, const FunctionDecl *NewFD,
11262 if (NoProtoDiagID.getDiagID() != 0 && OldFD &&
11263 !OldFD->getType()->getAs<FunctionProtoType>()) {
11264 Diag(OldFD->getLocation(), NoProtoDiagID);
11313 if (OldFD) {
11314 QualType OldQType = Context.getCanonicalType(OldFD->getType());
11319 const auto *OldFPT = OldFD->getType()->getAs<FunctionProtoType>();
11341 if (OldFD->getConstexprKind() != NewFD->getConstexprKind())
11344 if (OldFD->isInlineSpecified() != NewFD->isInlineSpecified())
11347 if (OldFD->getFormalLinkage() != NewFD->getFormalLinkage())
11350 if (!CLinkageMayDiffer && OldFD->isExternC() != NewFD->isExternC())
11353 if (CheckEquivalentExceptionSpec(OldFPT, OldFD->getLocation(), NewFPT,
11360 static bool CheckMultiVersionAdditionalRules(Sema &S, const FunctionDecl *OldFD,
11366 if (OldFD)
11367 S.Diag(OldFD->getLocation(), diag::note_previous_declaration);
11375 if (CausesMV && OldFD &&
11376 checkNonMultiVersionCompatAttributes(S, OldFD, NewFD, MVKind))
11383 if (OldFD && CausesMV && OldFD->isUsed(false)) {
11385 S.Diag(OldFD->getLocation(), diag::note_previous_declaration);
11390 OldFD, NewFD, S.PDiag(diag::err_multiversion_noproto),
11458 static bool CheckDeclarationCausesMultiVersioning(Sema &S, FunctionDecl *OldFD,
11463 assert(!OldFD->isMultiVersion() && "Unexpected MultiVersion");
11466 const auto *OldTA = OldFD->getAttr<TargetAttr>();
11468 const auto *OldTVA = OldFD->getAttr<TargetVersionAttr>();
11475 patchDefaultTargetVersion(NewFD, OldFD);
11484 if (CheckMultiVersionAdditionalRules(S, OldFD, NewFD, true,
11500 OldDecl = OldFD;
11501 OldFD->setIsMultiVersion();
11506 if ((OldTA || OldTVA) && CheckMultiVersionValue(S, OldFD)) {
11524 S.Diag(OldFD->getLocation(), diag::note_previous_declaration);
11530 for (const auto *FD : OldFD->redecls()) {
11546 OldFD->setIsMultiVersion();
11586 Sema &S, FunctionDecl *OldFD, FunctionDecl *NewFD,
11592 if (!MultiVersionTypesCompatible(OldFD, NewFD)) {
11594 S.Diag(OldFD->getLocation(), diag::note_previous_declaration);
11600 patchDefaultTargetVersion(OldFD, NewFD);
11601 patchDefaultTargetVersion(NewFD, OldFD);
11606 [[maybe_unused]] MultiVersionKind OldMVKind = OldFD->getMultiVersionKind();
11808 if (CheckMultiVersionAdditionalRules(S, OldFD, NewFD,
11809 !OldFD->isMultiVersion(), NewMVKind)) {
11815 if (!OldFD->isMultiVersion()) {
11816 OldFD->setIsMultiVersion();
11819 OldDecl = OldFD;
11885 FunctionDecl *OldFD = OldDecl->getAsFunction();
11887 if (!OldFD->isMultiVersion() && MVKind == MultiVersionKind::None)
11892 if (OldFD->isMultiVersion() && MVKind == MultiVersionKind::None &&
11893 OldFD->getMultiVersionKind() != MultiVersionKind::TargetClones &&
11894 OldFD->getMultiVersionKind() != MultiVersionKind::TargetVersion) {
11896 << (OldFD->getMultiVersionKind() != MultiVersionKind::Target);
11901 if (!OldFD->isMultiVersion()) {
11906 S, OldFD, NewFD, Redeclaration, OldDecl, Previous);
11908 if (OldFD->isUsed(false)) {
11912 OldFD->setIsMultiVersion();
11922 // At this point, we have a multiversion function decl (in OldFD) AND an
11925 return CheckMultiVersionAdditionalDecl(S, OldFD, NewFD, NewCPUDisp,
12120 auto *OldFD = OldTemplateDecl->getTemplatedDecl();
12130 NewFD->setPreviousDeclaration(OldFD);
12144 if (OldFD->isDeleted()) {
12146 assert(OldFD->getCanonicalDecl() == OldFD);
12148 OldFD->setDeletedAsWritten(false);
12154 auto *OldFD = cast<FunctionDecl>(OldDecl);
12156 NewFD->setPreviousDeclaration(OldFD);
12158 NewFD->setAccess(OldFD->getAccess());