我向CIL(C中间语言)添加了新功能。我可以使用执行新模块
$cilly --dotestmodule --save-temps -D HAPPY_MOOD -o test test.c
现在,在我的testmodule中,我想为test.c文件调用Cfg.computeFileCFG。但是我不知道如何访问模块中的test.c文件。
我尝试使用Cil.file。但显示“未绑定(bind)值Cil.file”。
我的代码:
open Pretty
open Cfg
open Cil
module RD = Reachingdefs
let () = Cfg.computeFileCFG Cil.file
let rec fact n = if n < 2 then 1 else n * fact(n-1)
let doIt n = fact n
let feature : featureDescr =
{ fd_name = "testmodule";
fd_enabled = ref false;
fd_description = "simple test 1240";
fd_extraopt = [];
fd_doit = (function (f: file) -> ignore (doIt 10));
fd_post_check = true;
}
请告诉我如何计算test.c文件的Cfg。
最佳答案
我不是CIL专家,但请注意以下几点:
Cil.file
是Ocaml类型。将类型作为参数传递给函数可能不是您想要在此处执行的操作; fd_doit
函数将您要处理的文件作为其参数f
; f
的类型为Cil.file
。方便地,此seems是computeFileCFG
函数所需的参数的类型。 希望你可以从这里拿走。祝好运!
关于ocaml - 如何在我的CIL模块中访问提供给cilly的文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10515254/