[kernel] Parsing share/libc/__fc_builtin_for_normalization.i (no preprocessing)
[kernel] Parsing tests/spec/logic_label.c (with preprocessing)
/* Generated by Frama-C */
void f(void)
{
  int x;
  x = 0;
  L: x ++;
  /*@ ensures \at(\true,Pre); */
  x ++;
  /*@ assert \at(x,L) ≡ 0; */ ;
  /*@ assert \at(x ≡ 0,L); */ ;
  return;
}

int g(int i)
{
  lab: /*@ assert i ≡ \at(i,lab); */ ;
       return i;
}

/*@ predicate modified{L1, L2}(int x) = \at(x,L1) ≢ \at(x,L2);
 */
/*@ logic ℤ diff{L1, L2}(ℤ x) = \at(x,L1)-\at(x,L2);

*/
int h(void)
{
  int __retres;
  int x;
  x = 0;
  l: x ++;
  /*@ assert modified{Here, l}(x) ∧ diff{Here, l}(x) ≡ 1; */ ;
  __retres = 0;
  return __retres;
}

/*@ logic ℤ foo{L}(ℤ x) = x+1;

*/
/*@ assigns *(x+(0 .. foo{Old}(0))); */
int u(int *x)
{
  int __retres;
  int *tmp;
  { /* sequence */
    tmp = x;
    x ++;
    *tmp = 0;
  }
  *x = 1;
  /*@ assert \at(\true,Pre); */ ;
  __retres = *x;
  return __retres;
}

int X;
void labels_in_stmt_annot(void)
{
  X ++;
  /*@ requires X > \at(X,Pre);
      ensures X ≡ \old(X)+1;
      ensures X ≡ \at(X,Pre)+2;
      ensures X ≡ \at(X,Post);
  */
  X ++;
  /*@ ensures X ≡ \at(X,Here); */
  X ++;
  /*@ assert X ≡ \at(X,Pre)+3; */ ;
  return;
}


