我用llvm libtooling编程,代码里解析一个cpp文件,遍历var,打印ast节点信息,如下第二段代码,string类型ast是invalid,int类型ast节点是正确的为什么呢。被解析的cpp code包含string头文件了,第三段代码
bool Visitor::VisitVarDecl(VarDecl *VD)
{
SourceLocation srcLoc = VD->getLocation();
if (srcMgr.isInSystemHeader(srcMgr.getExpansionLoc(VD->getBeginLoc()))) {
return true;
}
if (srcMgr.getFileCharacteristic(srcLoc) == SrcMgr::C_System ||
srcMgr.getFileCharacteristic(srcLoc) == SrcMgr::C_ExternCSystem) {
return true;
}
VD->dump();
return true;
}
'''
'''
VarDecl 0x55d65df37a68 </root/h30038243/k30056123/test/tmp_case5/e.cpp:16:2, col:14> col:14 invalid s2 'std::string':'std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >'
VarDecl 0x55d65df37b18 </root/h30038243/k30056123/test/tmp_case5/e.cpp:17:2, col:9> col:9 invalid s1 'std::string':'std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >'
VarDecl 0x55d65df37ba8 </root/h30038243/k30056123/test/tmp_case5/e.cpp:18:2, col:9> col:9 invalid s3 'std::string':'std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >'
VarDecl 0x55bda4199000 </home/cpp_parser/llvm-project-llvmorg-15.0.4/clang/tools/syn-analyze/test/tmp_case5/e.cpp:20:2, col:10> col:6 a 'int' cinit
`-IntegerLiteral 0x55bda4199068 <col:10> 'int' 1
'''
'''
#include "e.h"
#include <memory>
#include <string>
using namespace std;
int main(int argc, const char *argv[]){
std::string s2 = "abc";
string s1 = func();
string s3 = "a";
int a = 1;
int b = func2();
int64_t c = 2;
return 0;
}
why VD->dump() show string invalid vartype? but int type show no invalid
没尝试,无解决思路
添加环境变量就可以了
export CPLUS_INCLUDE_PATH=/home/cpp_parser/llvm-project-llvmorg-15.0.4/build/lib/clang/15.0.4/include
我已经编写了一个程序,允许我输入业务或个人联系人,然后能够查看他们。我为不同类型的联系人使用了子类。当我查看联系人时,我希望能够看到他们是商务还是私人,但还没有找到正确的方法。我已经包括了一段代码,显示了我是如何输入它们的,以及我调用什么来查看它们的。 因此,现在当我查看一个我添加的联系人时,我看到的是名字、姓氏、地址、电子邮件、电话,然后取决于联系人的类型—出生日期(个人)或职位和组织(业务)。
我正在尝试开发一个消息传递应用程序,它总是抛出一个异常 类型_InternalLinkedHashMap 当我试图给信息的背景颜色。它还表明 renderflex溢出99335像素 在列表中而不是列表中使用MessageBubble时。
本文向大家介绍Python中的类与类型示例详解,包括了Python中的类与类型示例详解的使用技巧和注意事项,需要的朋友参考一下 1.经典类与新式类 在了解Python的类与类型前,需要对Python的经典类(classic classes)与新式类(new-style classes)有个简单的概念。 在Python 2.x及以前的版本中,由任意内置类型派生出的类(只要一个内置类型位于类树的某个位
本文向大家介绍详解Swift中的Characters字符类型与String字符串类型,包括了详解Swift中的Characters字符类型与String字符串类型的使用技巧和注意事项,需要的朋友参考一下 一、引言 Swift中提供了String类型与Characters类型来处理字符串和字符数据,Swift中的String类型除了提供了许多方便开发者使用的方法外,还可以与Foundation框架的
我想看看在phpUnit运行期间当前执行哪个测试。 我使用参数,但仍然只得到点: : 这是什么原因呢?
我是一个新手,我需要从api读取数据并存储在列表中,但我得到的错误类型“\u TypeError”不是“String”类型的子类型,请帮助我 }