Skip to content
Snippets Groups Projects
assign.res.oracle 1.83 KiB
Newer Older
[kernel] Parsing tests/rte/assign.c (with preprocessing)
[rte] annotating function rte
/* Generated by Frama-C */
int global_x;
int global_y;
/*@ assigns \nothing; */
void g(void);

/*@ assigns \nothing; */
int fnd1(void);

/*@ assigns global_x; */
int fnd2(void);

/*@ assigns global_x, global_y; */
int fnd3(void);

int fnd4(void);

/*@ assigns global_x;
    
    behavior normal:
      assumes cond ≢ 0;
      assigns \nothing;
    
    behavior other:
      assumes cond ≡ 0;
      assigns global_x;
 */
int fnd5(int cond);

/*@ assigns \nothing; */
int fnd6(void);

/*@ assigns *x;
    assigns *x \from *y; */
int fnd7(int *x, int *y);

int rte(int cond)
{
  int __retres;
  int a;
  int b;
  int tmp;
  g();
  tmp = fnd1();
  if (tmp) {
    int tmp_0;
    tmp_0 = fnd2();
    if (tmp_0) {
      int tmp_1;
      tmp_1 = fnd3();
      if (tmp_1) {
        int tmp_2;
        tmp_2 = fnd4();
        if (tmp_2) {
          int tmp_3;
          tmp_3 = fnd5(cond);
          if (tmp_3) {
            int tmp_4;
            tmp_4 = fnd6();
            if (tmp_4) {
              int tmp_5;
              tmp_5 = fnd7(& a,& b);
              if (tmp_5) {
                __retres = 1;
                goto return_label;
              }
              else {
                __retres = 0;
                goto return_label;
              }
            }
            else {
              __retres = 0;
              goto return_label;
            }
          }
          else {
            __retres = 0;
            goto return_label;
          }
        }
        else {
          __retres = 0;
          goto return_label;
        }
      }
      else {
        __retres = 0;
        goto return_label;
      }
    }
    else {
      __retres = 0;
      goto return_label;
    }
  }
  else {
    __retres = 0;
    goto return_label;
  }
  return_label: return __retres;
}