
LLVM
llvm
imred
天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。人之为学有难易乎?学之,则难者亦易矣;不学,则易者亦难矣。
展开
-
clang:FunctionDecl::isOutOfLine()和FunctionDecl::isInlined()能同时返回true吗?
最近读clang源码时发现这么一段代码:FunctionDecl *FD = ............if (auto *MD = dyn_cast<CXXMethodDecl>(FD)) { ...... if (MD->isOutOfLine() && ......) { ...... if (FD...原创 2020-03-16 00:32:46 · 527 阅读 · 0 评论 -
利用libtooling提取C++中enum值与名的映射
之前的一篇文章中,有思考过如何将enum的值与名进行映射,其中一种方法是利用工具进行预处理生成。最近由于项目中有类似的需求,所以学习了libclang,写了一个小工具实现映射。整体流程非常简单:匹配enum声明的AST节点。获取enum声明AST节点的类型(即枚举类名前面附上作用域)获取enum声明所在文件名(用于过滤系统头文件中的枚举)获取enum声明所在文件行号(可用于区分同一命名...原创 2019-06-04 23:57:16 · 1692 阅读 · 1 评论