[kernel] Parsing inline_calls.i (no preprocessing)
[kernel:CERT:MSC:37] inline_calls.i:43: Warning: 
  Body of function f1 falls-through. Adding a return statement
/* Generated by Frama-C */
int f(void)
{
  int __retres;
  __retres = 2;
  return __retres;
}

__inline static int in_f__fc_inline(void)
{
  int __retres;
  __retres = 3;
  return __retres;
}

int volatile v;
int g(void)
{
  int __retres;
  if (v) {
    int tmp;
    {
       /* __blockattribute__(____fc_inlined__("f")) */int __retres_5;
      __retres_5 = 2;
      tmp = __retres_5;
    }
    __retres = tmp;
    goto return_label;
  }
  else {
    int tmp_0;
    {
       /* __blockattribute__(____fc_inlined__("in_f__fc_inline")) */int __retres_6;
      __retres_6 = 3;
      tmp_0 = __retres_6;
    }
    __retres = tmp_0;
    goto return_label;
  }
  return_label: return __retres;
}

int h(void)
{
  int tmp;
  {
     /* __blockattribute__(____fc_inlined__("g")) */int __retres;
    if (v) {
      int tmp_3;
      {
         /* __blockattribute__(____fc_inlined__("f")) */int __retres_5;
        __retres_5 = 2;
        tmp_3 = __retres_5;
      }
      __retres = tmp_3;
      goto return_label;
    }
    else {
      int tmp_0;
      {
         /* __blockattribute__(____fc_inlined__("in_f__fc_inline")) */
        int __retres_6;
        __retres_6 = 3;
        tmp_0 = __retres_6;
      }
      __retres = tmp_0;
      goto return_label;
    }
    return_label: tmp = __retres;
  }
  return tmp;
}

int i(void)
{
  int __retres;
  /*@ assert i: \true; */ ;
  __retres = 0;
  return __retres;
}

int rec(int x_0)
{
  int __retres;
  int tmp;
  if (x_0 < 0) {
    __retres = x_0;
    goto return_label;
  }
  {
     /* __blockattribute__(____fc_inlined__("rec")) */int __retres_7;
                                                      int tmp_6;
    int x_0_5 = x_0 - 1;
    if (x_0_5 < 0) {
      __retres_7 = x_0_5;
      goto return_label_0;
    }
    tmp_6 = rec(x_0_5 - 1);
    __retres_7 = tmp_6;
    return_label_0: tmp = __retres_7;
  }
  __retres = tmp;
  return_label: return __retres;
}

int f1(int a);

int g1(int a);

int volatile nondet;
int f1(int a)
{
  int __retres;
  if (nondet) {
    int __inline_tmp;
    {
       /* __blockattribute__(____fc_inlined__("g1")) */int a_5 = 1;
      if (nondet) g1(4);
      __inline_tmp = a_5;
    }
  }
  else 
    if (nondet) {
      int __inline_tmp_6;
      {
         /* __blockattribute__(____fc_inlined__("f1")) */int __retres_9;
        int a_8 = 2;
        if (nondet) {
          int __inline_tmp_10;
          {
             /* __blockattribute__(____fc_inlined__("g1")) */int a_5_11 = 1;
            if (nondet) g1(4);
            __inline_tmp_10 = a_5_11;
          }
        }
        else 
          if (nondet) {
            int __inline_tmp_6_12;
            f1(2);
          }
        /*@ assert missing_return: \false; */ ;
        __retres_9 = 0;
        __inline_tmp_6 = __retres_9;
      }
    }
  /*@ assert missing_return: \false; */ ;
  __retres = 0;
  return __retres;
}

int g1(int a)
{
  if (nondet) {
    int __inline_tmp;
    {
       /* __blockattribute__(____fc_inlined__("g1")) */int a_4 = 4;
      if (nondet) {
        int __inline_tmp_5;
        g1(4);
      }
      __inline_tmp = a_4;
    }
  }
  return a;
}

int main(void)
{
  int __inline_tmp_11;
  int __inline_tmp_8;
  int __inline_tmp;
  int tmp_1;
  {
     /* __blockattribute__(____fc_inlined__("i")) */int __retres;
    /*@ assert i: \true; */ ;
    __retres = 0;
    __inline_tmp = __retres;
  }
  int local_init = __inline_tmp;
  {
     /* __blockattribute__(____fc_inlined__("rec")) */int __retres_10;
                                                      int tmp;
    int x_0 = local_init;
    if (x_0 < 0) {
      __retres_10 = x_0;
      goto return_label;
    }
    {
       /* __blockattribute__(____fc_inlined__("rec")) */int __retres_7;
                                                        int tmp_6;
      int x_0_5 = x_0 - 1;
      if (x_0_5 < 0) {
        __retres_7 = x_0_5;
        goto return_label_0;
      }
      tmp_6 = rec(x_0_5 - 1);
      __retres_7 = tmp_6;
      return_label_0: tmp = __retres_7;
    }
    __retres_10 = tmp;
    return_label: __inline_tmp_8 = __retres_10;
  }
  int t = __inline_tmp_8;
  {
     /* __blockattribute__(____fc_inlined__("f1")) */int __retres_13;
    int a = 2;
    if (nondet) {
      int __inline_tmp_14;
      {
         /* __blockattribute__(____fc_inlined__("g1")) */int a_5 = 1;
        if (nondet) g1(4);
        __inline_tmp_14 = a_5;
      }
    }
    else 
      if (nondet) {
        int __inline_tmp_6;
        {
           /* __blockattribute__(____fc_inlined__("f1")) */int __retres_9;
          int a_8 = 2;
          if (nondet) {
            int __inline_tmp_10;
            {
               /* __blockattribute__(____fc_inlined__("g1")) */int a_5_11 =
                                                                 1;
              if (nondet) g1(4);
              __inline_tmp_10 = a_5_11;
            }
          }
          else 
            if (nondet) {
              int __inline_tmp_6_12;
              f1(2);
            }
          /*@ assert missing_return: \false; */ ;
          __retres_9 = 0;
          __inline_tmp_6 = __retres_9;
        }
      }
    /*@ assert missing_return: \false; */ ;
    __retres_13 = 0;
    __inline_tmp_11 = __retres_13;
  }
  {
     /* __blockattribute__(____fc_inlined__("h")) */int tmp_15;
    {
       /* __blockattribute__(____fc_inlined__("g")) */int __retres_16;
      if (v) {
        int tmp_3;
        {
           /* __blockattribute__(____fc_inlined__("f")) */int __retres_5;
          __retres_5 = 2;
          tmp_3 = __retres_5;
        }
        __retres_16 = tmp_3;
        goto return_label_1;
      }
      else {
        int tmp_0;
        {
           /* __blockattribute__(____fc_inlined__("in_f__fc_inline")) */
          int __retres_6;
          __retres_6 = 3;
          tmp_0 = __retres_6;
        }
        __retres_16 = tmp_0;
        goto return_label_1;
      }
      return_label_1: tmp_15 = __retres_16;
    }
    tmp_1 = tmp_15;
  }
  return tmp_1;
}

int with_static(void);

static int with_static_count = 0;
int with_static(void)
{
  with_static_count ++;
  return with_static_count;
}

int call_with_static(void)
{
  int tmp;
  {
     /* __blockattribute__(____fc_inlined__("with_static")) */with_static_count ++;
    tmp = with_static_count;
  }
  return tmp;
}

void builtin_acsl(void)
{
  float g_0 = 0.f;
  /*@ assert ¬\is_NaN(g_0); */ ;
  return;
}

void call_builtin_acsl(void)
{
  {
     /* __blockattribute__(____fc_inlined__("builtin_acsl")) */float g_0 =
                                                                 0.f;
    /*@ assert ¬\is_NaN(g_0); */ ;
    ;
  }
  return;
}

void f_slevel(void)
{
  /*@ \eva::slevel 0; */ ;
  return;
}

void call_f_slevel(void)
{
  {
     /* __blockattribute__(____fc_inlined__("f_slevel")) *//*@
                                                           \eva::slevel 0; */
                                                           ;
    ;
  }
  return;
}

void pre_decl(void);

extern int x;

extern int y;

void post_decl(void);

void middle_decl(void)
{
  {
     /* __blockattribute__(____fc_inlined__("pre_decl")) */x ++;
    y ++;
    post_decl();
    ;
  }
  return;
}

void post_decl(void);

void pre_decl(void)
{
  x ++;
  y ++;
  post_decl();
  return;
}