寻找一个轻量级的解决方案来系统地测试ifc函数的条件

2024-04-25 12:53:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要使用轻量级工具(例如,使用一些现有的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预处理器框架解决方案。谢谢你的建议。你知道吗


Tags: 工具函数代码框架returniffoo语句
1条回答
网友
1楼 · 发布于 2024-04-25 12:53:30

您可以考虑使用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代码插装从来都不是轻量级的问题)

相关问题 更多 >