0
我想知道如何从输入 源定义的LLVM通输出恒定的字符数组。这是我想要做的一个例子。
测试输入源
char* msg = "hello, world\n";
void msg_out(char * in) {
printf("msg: %s \n", in);
}
main() {
...
msg_out(msg);
...
}
LLVM通片断
...
const CallInst* ci = dyn_cast<CallInst>(val);
const Function* func = ci->getCalledFunction();
if (func->getName() == "msg_out") {
errs() << ci->getOperand(0);
}
...
随着源,上述LLVM通将打印以下输出。
输出
i8* getelementptr inbounds ([8 x i8]* @10, i32 0, i32 0)
不过,我希望实现反而是
- 识别第一个参数是一个常数字符数组
- 如果是这样,打印出“你好,世界\ n“
任何人都可以让我知道如何实现这一点?
非常感谢您的帮助! /Kangkook