[kernel] Parsing share/libc/__fc_builtin_for_normalization.i (no preprocessing)
[kernel] Parsing tests/spec/volatile.c (with preprocessing)
[kernel] Parsing tests/spec/volatile_aux.c (with preprocessing)
[kernel] Repeat final merging phase: tests/spec/volatile_aux.c
/* Generated by Frama-C */
typedef int volatile VINT;
struct st {
   int a ;
   int volatile v ;
};
typedef struct st ST;
struct vst {
   int b ;
   ST v ;
};
int f(int x);

__inline int r(VINT *v_0)
{
  int __retres;
  __retres = *v_0;
  return __retres;
}

__inline int w(int volatile *v_0, int new)
{
  *v_0 = new;
  return new;
}

int volatile v;
int volatile tab[10];
VINT *pt;
struct st s;
/*@ volatile v, tab[..] reads r writes w; */
/*@ volatile *pt writes w; */
/*@ volatile s.v reads r;
*/
struct vst vs;
extern struct vst rs(struct vst *p);

extern struct vst ws(struct vst *p, struct vst v);

/*@ volatile vs reads rs writes ws; */
int const c = 1;
int *p;
/*@ lemma comp_const_addr{L}: p ≡ &c;
 */
/*@ lemma comp_volatile_addr{L}: p ≡ &v;
 */
/*@ lemma volatile_in_annot_is_illegal{L}: v ≡ 1 ⇒ v ≡ 1;

*/
int main(void)
{
  int __retres;
  int x;
  x = v;
  v = f(x);
  __retres = 0;
  return __retres;
}

int f(int x)
{
  int __retres;
  x ++;
  v = x;
  __retres = v + x;
  return __retres;
}


