【发布时间】:2014-11-01 00:58:58
【问题描述】:
我正在尝试使用 frama-c 验证以下代码
/*@ ensures \result != \null;
@ assigns \nothing;
@*/
extern int *new_value();
//@ assigns *p;
void f(int* p){
*p = 8;
}
//@ assigns \nothing;
int main(void){
int *p = new_value();
f(p);
}
证明者无法证明 main 没有赋值,这是有道理的,因为 main 通过函数 f 赋值给 *p。但是,我应该如何在 \assigns 子句中声明,因为 p 是局部变量,不能在注释中访问。
【问题讨论】:
标签: frama-c