Lines Matching refs:FD
78 if (const auto *FD = dyn_cast<FunctionDecl>(D))
79 if (FD->isExternC())
80 return FD->getASTContext().getTranslationUnitDecl();
436 void mangleFunctionEncoding(const FunctionDecl *FD);
468 void mangleFunctionEncodingBareType(const FunctionDecl *FD);
530 const FunctionDecl *FD = nullptr);
562 AbiTagList makeFunctionReturnTypeTags(const FunctionDecl *FD);
570 const FunctionDecl *FD = dyn_cast<FunctionDecl>(D);
571 if (FD) {
572 LanguageLinkage L = FD->getLanguageLinkage();
574 if (FD->hasAttr<OverloadableAttr>())
578 if (FD->isMain())
583 if (!FD->getDeclName().isIdentifier() || L == CXXLanguageLinkage)
633 if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
634 mangleFunctionEncoding(FD);
643 void CXXNameMangler::mangleFunctionEncoding(const FunctionDecl *FD) {
647 if (!Context.shouldMangleDeclName(FD)) {
648 mangleName(FD);
652 AbiTagList ReturnTypeAbiTags = makeFunctionReturnTypeTags(FD);
655 mangleName(FD);
656 mangleFunctionEncodingBareType(FD);
668 FunctionEncodingMangler.mangleNameWithAbiTags(FD, nullptr);
672 FunctionEncodingMangler.mangleFunctionEncodingBareType(FD);
686 mangleNameWithAbiTags(FD, &AdditionalAbiTags);
690 void CXXNameMangler::mangleFunctionEncodingBareType(const FunctionDecl *FD) {
691 if (FD->hasAttr<EnableIfAttr>()) {
696 for (AttrVec::const_reverse_iterator I = FD->getAttrs().rbegin(),
697 E = FD->getAttrs().rend();
712 if (auto *CD = dyn_cast<CXXConstructorDecl>(FD))
714 FD = Inherited.getConstructor();
733 if (FunctionTemplateDecl *PrimaryTemplate = FD->getPrimaryTemplate()) {
734 if (!(isa<CXXConstructorDecl>(FD) || isa<CXXDestructorDecl>(FD) ||
735 isa<CXXConversionDecl>(FD)))
739 FD = PrimaryTemplate->getTemplatedDecl();
742 mangleBareFunctionType(FD->getType()->castAs<FunctionProtoType>(),
743 MangleReturnType, FD);
776 if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) {
777 if (const TemplateDecl *TD = FD->getPrimaryTemplate()) {
778 TemplateArgs = FD->getTemplateSpecializationArgs();
1239 const FieldDecl *FD = RD->findFirstNamedDataMember();
1244 if (!FD) break;
1245 assert(FD->getIdentifier() && "Data member name isn't an identifier!");
1247 mangleSourceName(FD->getIdentifier());
2542 const FunctionDecl *FD) {
2552 if (Proto->getExtInfo().getProducesResult() && FD == nullptr)
2575 assert(!FD || FD->getNumParams() == Proto->getNumParams());
2578 if (Proto->hasExtParameterInfos() && FD == nullptr) {
2586 if (FD) {
2587 if (auto *Attr = FD->getParamDecl(I)->getAttr<PassObjectSizeAttr>()) {
4409 CXXNameMangler::makeFunctionReturnTypeTags(const FunctionDecl *FD) {
4419 cast<FunctionProtoType>(FD->getType()->getAs<FunctionType>());