首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >clang,libtooling添加新的规范内置数据类型

clang,libtooling添加新的规范内置数据类型
EN

Stack Overflow用户
提问于 2014-04-25 07:10:58
回答 1查看 1K关注 0票数 0

在使用libtooling的程序中,是否有一种方法可以使某些类型被识别为“内置类型”?例如,我想让int16_t、uint32_t等被识别为规范的内置类型,而不是它的类型类型( typedef )到短、无符号等等。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-25 07:50:33

如果您看一下".../llvm/tools/clang/include/clang/AST/BuiltinTypes.def",那么就会声明intlong long这样的内置类型。这并不完全是直接的。您将需要修改相当多的代码,例如,在".../llvm/tools/clang/lib/Sema/Sema.cpp"".../llvm/tools/clang/lib/AST/Type.cpp"中有部分类型定义。如果您对Int128进行grep (很好的选择,因为clang本身并没有使用太多,例如size_t),那么您将看到它出现在很多地方。您必须用额外的代码覆盖所有(或至少大多数)这些地方,以引入您自己制作的新类型。

我想说,做像clang -include cstdint myprog.cpp这样的事情可能要容易得多。换句话说,确保#include <cstdint>或您自己版本的同类文件是在编译器的幕后完成的--您也可以在自己的代码中将其添加到驱动程序中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23286440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档