使用 LLVM PASS 或 Clang 将 int 变量插入 class

Insert int variable into the class using LLVM PASS or Clang

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

如何操作?

例如..

class foo {
     int a;
}

我想插入如下新值。

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

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

非常感谢:)

我的建议是为此使用 Clang,因为 LLVM 在位码 (IR) 上运行,而您想要的操作与 C++ 非常相关,那么为什么不利用 Clang 关于 AST 的知识呢?

LibTooling you can write stand-alone tool to do exactly what you want. More specifically, use an AST Matcher查找所有C++ class声明(cxxRecordDecl)。然后,您可以在回调中插入一个新的 FieldDecl

更多信息:LibTooling and LibASTMatchers Tutorial