gpt4 book ai didi

python - 寻找一种轻量级解决方案来系统地检测 C 函数的 if 条件

转载 作者:行者123 更新时间:2023-11-30 19:13:43 25 4
gpt4 key购买 nike

我需要使用轻量级检测工具(例如,使用一些现有的 Python 或 C 预处理器框架)来系统地在 C 函数的 if 条件中插入语句:

例如,让 foo 为 C 函数:

int foo(int x){
if (x>3)
return x;
}

我需要将其转换为

int foo(int x){
if (x>3){
print ("%d", x);
return x;
}
}

我尝试过使用 LLVM,但它并没有与代码的其他部分更好地集成。在这里,我更喜欢 Python/C 预处理器框架解决方案。感谢您的想法。

最佳答案

您可以考虑使用GCC MELT或者也许是GCC Python Plugin自定义GCC编译器转换其 Gimple 表示形式。这将是一个完整的解决方案,但我不确定它是否符合“轻量级”的标准(因为您需要了解 GCC 内部的细节),但 Clang/LLVM 方法都不是。您可能需要一周多的时间(特别是了解 GCC 或 Clang/LLVM 的内部结构)

顺便说一句,你的问题并不像你想象的那么容易,因为

int foobar(int x) { return (x>3)?(x*6):(x*x); } 

包含条件。另外,您的原始函数完全相当于

int foo(int x){
while (x>3) // this while is done 0 or 1 time
return x;
}

而且很容易找到许多其他方式来表达它。

所以纯粹的语法方法永远不会完全有效。因此,你不能指望一些“轻松”的东西。

(我的观点是,C 代码检测从来都不是一个轻量级问题)

关于python - 寻找一种轻量级解决方案来系统地检测 C 函数的 if 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35275926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com