[kernel] Computing Branches
[kernel] preprocessing with "gcc -C -E -I.  tests/misc/cabscond.c"
/* Generated by Frama-C */
extern int f(int);
int test(int a, int b, int c)
{
  int __retres;
  int tmp;
  int tmp_2;
  tmp = f(a);
  /*[CID:0] IF ((here && !(_)) || _) */
  if (tmp) {
    int tmp_0;
    tmp_0 = f(b);
    /*[CID:0] IF ((_ && !(here)) || _) */
    if (tmp_0) { goto _LAND; }
    else { goto _LOR; }
  }
  else {
    int tmp_1;
    _LAND: /* internal */ tmp_1 = f(c);
    /*[CID:0] IF ((_ && !(_)) || here) */
    if (tmp_1) {
      _LOR: /* internal */ 
      /*[THEN:0]*/
      __retres = 0;
      goto return_label;
    }
    else { /*[ELSE:0]*/ __retres = 1; goto return_label; }
  }
  tmp_2 = f(a);
  /*[CID:1] IF ((here && !(_)) || _) */
  if (tmp_2) {
    int tmp_3;
    tmp_3 = f(a);
    /*[CID:1] IF ((_ && !(here)) || _) */
    if (tmp_3) { goto _LAND_0; }
    else { goto _LOR_0; }
  }
  else {
    int tmp_4;
    _LAND_0: /* internal */ tmp_4 = f(a);
    /*[CID:1] IF ((_ && !(_)) || here) */
    if (tmp_4) {
      _LOR_0: /* internal */ 
      /*[THEN:1]*/
      __retres = 0;
      goto return_label;
    }
    else { /*[ELSE:1]*/ __retres = 1; goto return_label; }
  }
  while (1) {
    int tmp_5;
    tmp_5 = f(a);
    /*[CID:2] WHILE ((here && !(_)) || _) */
    if (tmp_5) {
      int tmp_6;
      tmp_6 = f(a);
      /*[CID:2] WHILE ((_ && !(here)) || _) */
      if (tmp_6) { goto _LAND_1; }
    }
    else {
      int tmp_7;
      _LAND_1: /* internal */ tmp_7 = f(c);
      /*[CID:2] WHILE ((_ && !(_)) || here) */
      if (! tmp_7) { /*[ELSE:2]*/ break; }
    }
    __retres = 0;
    goto return_label;
  }
  a = 0;
  while (1) {
    int tmp_8;
    tmp_8 = f(a);
    /*[CID:3] FOR ((here && !(_)) || _) */
    if (tmp_8) {
      int tmp_9;
      tmp_9 = f(b);
      /*[CID:3] FOR ((_ && !(here)) || _) */
      if (tmp_9) { goto _LAND_2; }
    }
    else {
      int tmp_10;
      _LAND_2: /* internal */ tmp_10 = f(c);
      /*[CID:3] FOR ((_ && !(_)) || here) */
      if (! tmp_10) { /*[ELSE:3]*/ break; }
    }
    __retres = 0;
    goto return_label;
    a += c;
  }
  return_label: /* internal */ 
  return (__retres);
}


