如何在clang中使用FunctionDecl*D获取函数名称

 手机用户2602915451 发布于 2023-02-09 07:31

在我的一个检查器中,我使用FunctionDecl类来获取函数声明.现在我想获得我输入checkASTDecl方法的函数的名称.我们知道在checkASTDecl()中我们得到类FunctionDecl的指针.所以,任何人都可以帮助我获取我输入checkASTDecl的函数名称.

这是我写的示例代码:

namespace {

    class FuncPrototypeChecker :  public Checker > {
            mutable OwningPtr TernaryOperatorBug;

            public:
            void checkASTDecl(const FunctionDecl *D,
                AnalysisManager &mgr, BugReporter &BR) const;

    };

}

void FuncPrototypeChecker::checkASTDecl(const FunctionDecl *D,
                                    AnalysisManager &mgr,
                                    BugReporter &BR) const {
/* Get the name of the function from FunctionDecl *D */
}

我想获取我输入方法FuncPrototypeChecker :: checkASTDecl()的函数的名称.请帮助我实现它的方式.提前致谢.

1 个回答
  • 实际上,clang有一个类来存储decls的名字(不仅仅是a FunctionDecl),叫做DeclarationNameInfo(声明为StatementNameInfo的clang api)

    您可以使用API​​调用获取DeclarationNameInfo实例FunctionDecl:

    functionDecl->getNameInfo();
    

    并通过以下方式获取名称作为字符串:

    functionDecl->getNameInfo().getAsString();
    

    返回的结果将是a std::string.

    有关在FunctionDecl的clang api中FunctionDecl可用的API的更多信息.

    2023-02-09 07:41 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有