使用LLVM PASS或Clang将int变量插入到类中

时间:2016-04-06 00:10:46

标签: variables clang llvm llvm-clang llvm-ir

我想使用LLVM PASS或Clang将整数变量插入到所有类中。

怎么做?

例如......

class foo {
     int a;
}

我想插入新值,如下所示。

class foo {
     int a;
     unsigned int b; // I want to insert this.
}

如何使用LLVM PASS或Clang执行此操作?   - 我更喜欢LLVM PASS。

非常感谢:)

1 个答案:

答案 0 :(得分:0)

我的建议是使用Clang,因为LLVM在bitcode(IR)上运行,你想要的操作与C ++有很大关系,为什么不利用Clang对AST的了解?

使用LibTooling,您可以编写独立工具来完全按照自己的意愿行事。更具体地说,使用AST Matcher查找所有C ++类声明( cxxRecordDecl )。然后,您可以在回调中插入新的 FieldDecl

更多信息:LibTooling and LibASTMatchers Tutorial