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

hl037_

在使用libtooling的程序中,是否有办法将某些类型识别为“内置类型”?例如,我想将int16_t,uint32_t等识别为规范的内置类型,而不是将typedef定义为short,unsigned等。

马特·彼得森(Mats Petersson)

如果您看一看".../llvm/tools/clang/include/clang/AST/BuiltinTypes.def",则将声明内置类型,如intlong long这并不完全是直截了当的。您将需要修改很多代码,例如".../llvm/tools/clang/lib/Sema/Sema.cpp"和中的类型定义部分".../llvm/tools/clang/lib/AST/Type.cpp"如果您使用grep Int128(很好的选择,因为clang本身本身并没有使用太多)(例如size_t,与之相反),您会发现它出现在很多地方。您必须用其他代码覆盖所有(或至少大多数)地方,以介绍自己制作的新类型。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章