问题标签 [c-intermediate-language]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ocaml - 如何在我的 CIL 模块中访问给 cilly 的文件
我在 CIL(C 中间语言)中添加了一个新功能。我可以使用执行我的新模块
现在,在我的 testmodule 中,我想为 test.c 文件调用 Cfg.computeFileCFG。但我不知道如何访问我模块中的 test.c 文件。
我尝试使用 Cil.file。但它说“未绑定值 Cil.file”。
我的代码:
请告诉我如何计算 test.c 文件的 Cfg。
linux-kernel - 使用 CIL 合并 Linux 内核
我正在尝试使用 CIL 合并来合并 Linux 内核并对其进行分析。我在不同版本的内核上试过这个。每个人都给出了不同的错误。
Linux-3.4.2:
在 Linux Kernel-3.4.2 源文件夹中,我使用了以下命令
$ make CC="cilly --save-temps --dofsvd --merge"
它给出了以下错误
/home/srikanth/projects2test/linux-3.4.2/arch/x86/include/asm/cpufeature.h[345:0-0]:语法错误解析错误致命错误:异常Frontc.ParseError(“解析错误”)
错误是由于这一行:
asm goto(... : : "i" (bit) : : t_no);
它无法识别“asm”指令。我用谷歌搜索它。在 BLAST 错误报告(此处)中,我发现我们可以使用一些外观选项来防止此类构造。但我不知道使用什么选项。如何忽略 asm(或任何其他不受支持的构造)?
Linux-2.4.5:
在 Linux Kernel-2.4.5 源文件夹中,我使用了以下命令
$ make CC="cilly --save-temps --dofsvd --merge"
上面的命令给出了以下错误
Makefile:229: arch/x86_64/Makefile: 没有这样的文件或目录 make: *没有规则来制作目标 `arch/x86_64/Makefile'。停止。
为此,我包含了 ARCH=i386 选项来制作文件。
$ make ARCH=i386 CC="cilly --save-temps --dofsvd --merge"
它说
init/main.c:1:0:错误:您选择的 CPU 不支持 x86-64 指令集
如何修复此错误?
我想在 Linux Kernel(任何版本)上运行分析。由于这些错误,我无法合并它。请帮我解决这些问题。
types - 具有有限数量元素的类型 - OCaml
我正在使用 CIL 来处理使用 pthread 库的 C 程序。我必须以不同于 pthread 函数的方式处理用户定义和非 pthread 函数。我可以有一个看起来像这样的类型定义:
这样我首先对函数名称进行模式匹配,然后将其发送到
或者
static-analysis - 将所有源 C 文件合并到一个 C 文件中以进行静态分析
我正在研究一些静态代码分析算法,如果在整个程序上完成这些算法会更有效(也更容易)。为此,我需要将目标程序的所有 C 源文件合并到一个 C 文件中。我尝试了CIL合并,但它只支持 ISO C89。我主要针对 GNU,它主要针对 gnu99 进行编译。
那么,是否有任何工具可以结合 C 的其他风格或 GNU 扩展?扩展 CIL 以支持 C99 或 gnu99 需要什么?