我想了解如何以编程方式与LLVM / Clang集成以查找我的Xcode项目中的所有fclose()
调用。我意识到我可以通过普通的文本搜索来实现这一点,但这只是更详细问题的第一步。
答案 0 :(得分:1)
您可以编写函数pass并找到函数的名称,如下所示:
#include "llvm/Pass.h"
#include "llvm/IR/Function.h"
#include "llvm/Support/raw_ostream.h"
using namespace llvm;
namespace {
struct Hello : public FunctionPass {
static char ID;
Hello() : FunctionPass(ID) {}
virtual bool runOnFunction(Function &F) {
errs() << "Hello: ";
errs().write_escaped(F.getName()) << '\n';
return false;
}
};
}
char Hello::ID = 0;
static RegisterPass<Hello> X("hello", "Hello World Pass", false, false);
使用opt
从opt -hello input.ll
调用此传递,您将获得所有打印功能的名称。更改上面代码中的逻辑以查找所需的功能。有关写通行证的更多详细信息,请参阅以下链接: