C VST内置注释支持

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

我有一个问题,关于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”[]([]);

为了证明下一步,我不能从这里继续前进

提示
策略没有帮助,
转发
及其变体(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)).