从帖子Understanding Frama-C slicer results开始,Frama-C似乎支持使用Frama-C进行前向条件切片。对于以下示例test.c,我想知道如何使用特定函数“event”进行前向条件切片。 @Pascal Cuoq
/*@ requires a == 1 ;
*/
#include <stdio.h>
int event() {
int r;
scanf("%d", &r);
if (r>10) return 1;
else return 0;
}
void event_process() {
int x=0;
printf("event process\n");
x=1;
}
void no_event()
{
int y=0;
printf("no event\n");
}
void main ( ) {
int a;
if((a=event()) == 1)
event_process();
else
no_event();
printf("in main\n");
return;
}
我尝试了frama -c test.c -slice-calls事件-then-on'Fippinging export'-print,为什么输出如下:
/* Generated by Frama-C */
void event_slice_1(void)
{
return;
}
void main(void)
{
event_slice_1();
return;
}