3

CIL(C Intermediate Language)に新機能を追加しました。を使用して新しいモジュールを実行できます

$cilly --dotestmodule --save-temps -D HAPPY_MOOD -o test test.c

ここで、テストモジュールで、test.cファイルに対してCfg.computeFileCFGを呼び出します。しかし、モジュール内のtest.cファイルにアクセスする方法がわかりません。

Cil.fileを使ってみました。ただし、「バインドされていない値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を計算する方法を教えてください。

4

1 に答える 1

3

私は CIL の専門家ではありませんが、ここにいくつかの注意事項があります。

  • CIL オンライン ドキュメントには、これが Ocaml タイプであると記載されています。を引数として関数Cil.fileに渡すことは、おそらくここでやりたいことではありません。
  • fd_doit機能記述子の関数は、処理しようとしているファイルを引数として取るようですf
  • Cillyマニュアルによると、 の型はfですCil.file。便利なことに、これは関数が必要とする引数の型のようですcomputeFileCFG

うまくいけば、ここからそれを取ることができます。幸運を!

于 2012-05-09T17:21:53.693 に答える