C VST内置注释支持
我有一个问题,关于VST对compcert内置注释机制的支持。 假设我们有一个C函数:C VST内置注释支持,c,coq,verification,formal-verification,verifiable-c,C,Coq,Verification,Formal Verification,Verifiable C,我有一个问题,关于VST对compcert内置注释机制的支持。 假设我们有一个C函数: int f(int *p) { // p is not null __builtin_annot("_p <> nullval"); int t = *p; return t; } 当我试图证明这一点时,我到达了一个状态,在那里我有一个语句(内置EF_annot 1“\u p nullval”[]([]); 为了证明下一步,我不能从这里继续前进 提示策略没有帮助,转发及其变体(i
int f(int *p) {
// p is not null
__builtin_annot("_p <> nullval");
int t = *p;
return t;
}
当我试图证明这一点时,我到达了一个状态,在那里我有一个语句(内置EF_annot 1“\u p nullval”[]([]);
为了证明下一步,我不能从这里继续前进
提示
策略没有帮助,转发
及其变体(if、loop等)也不起作用
所以问题是,我如何(如果可以的话)从这里向前迈进
Definition f_spec : ident * funspec :=
DECLARE _f
WITH p_b : block, p_ofs : ptrofs, a : Z
PRE [(tptr tint)]
PROP ()
PARAMS (Vptr p_b p_ofs)
GLOBALS ()
SEP (data_at Tsh (tptr tint) (Vint (Int.repr a)) (Vptr p_b p_ofs))
POST [tint]
PROP ()
LOCAL (temp ret_temp (Vint (Int.repr a)))
SEP (data_at Tsh (tptr tint) (Vint (Int.repr a)) (Vptr p_b p_ofs)).