[kernel] Parsing share/libc/__fc_builtin_for_normalization.i (no preprocessing)
[kernel] Parsing tests/slicing/sizeof.c (with preprocessing)
[value] Analyzing a complete application starting at main
[value] Computing initial state
[value] Initial state computed
[value] Values of globals at initialization
  st ∈ {0}
tests/slicing/sizeof.c:93:[value] Assertion got status valid.
[value] computing for function SizeOf_1 <- main.
        Called from tests/slicing/sizeof.c:94.
[value] Recording results for SizeOf_1
[value] Done for function SizeOf_1
[value] computing for function SizeOf_2 <- main.
        Called from tests/slicing/sizeof.c:95.
[value] Recording results for SizeOf_2
[value] Done for function SizeOf_2
[value] computing for function SizeOfE_pt1 <- main.
        Called from tests/slicing/sizeof.c:96.
[value] Recording results for SizeOfE_pt1
[value] Done for function SizeOfE_pt1
[value] computing for function SizeOfE_pt2 <- main.
        Called from tests/slicing/sizeof.c:97.
[value] Recording results for SizeOfE_pt2
[value] Done for function SizeOfE_pt2
[value] computing for function SizeOfE_pt3 <- main.
        Called from tests/slicing/sizeof.c:98.
[value] Recording results for SizeOfE_pt3
[value] Done for function SizeOfE_pt3
[value] computing for function SizeOfE_pt_deref_1 <- main.
        Called from tests/slicing/sizeof.c:99.
[value] Recording results for SizeOfE_pt_deref_1
[value] Done for function SizeOfE_pt_deref_1
[value] computing for function SizeOfE_tab_1 <- main.
        Called from tests/slicing/sizeof.c:100.
[value] Recording results for SizeOfE_tab_1
[value] Done for function SizeOfE_tab_1
[value] computing for function SizeOfE_pt_tab_1 <- main.
        Called from tests/slicing/sizeof.c:101.
[value] Recording results for SizeOfE_pt_tab_1
[value] Done for function SizeOfE_pt_tab_1
[value] computing for function SizeOfE_pt_tab_2 <- main.
        Called from tests/slicing/sizeof.c:102.
[value] Recording results for SizeOfE_pt_tab_2
[value] Done for function SizeOfE_pt_tab_2
[value] computing for function SizeOfE_tab_acces_1 <- main.
        Called from tests/slicing/sizeof.c:103.
[value] Recording results for SizeOfE_tab_acces_1
[value] Done for function SizeOfE_tab_acces_1
[value] Recording results for main
[value] done for function main
[from] Computing for function SizeOfE_pt1
[from] Done for function SizeOfE_pt1
[from] Computing for function SizeOfE_pt2
[from] Done for function SizeOfE_pt2
[from] Computing for function SizeOfE_pt3
[from] Done for function SizeOfE_pt3
[from] Computing for function SizeOfE_pt_deref_1
[from] Done for function SizeOfE_pt_deref_1
[from] Computing for function SizeOfE_pt_tab_1
[from] Done for function SizeOfE_pt_tab_1
[from] Computing for function SizeOfE_pt_tab_2
[from] Done for function SizeOfE_pt_tab_2
[from] Computing for function SizeOfE_tab_1
[from] Done for function SizeOfE_tab_1
[from] Computing for function SizeOfE_tab_acces_1
[from] Done for function SizeOfE_tab_acces_1
[from] Computing for function SizeOf_1
[from] Done for function SizeOf_1
[from] Computing for function SizeOf_2
[from] Done for function SizeOf_2
[from] Computing for function main
[from] Done for function main
[from] ====== DEPENDENCIES COMPUTED ======
       These dependencies hold at termination for the executions that terminate:
[from] Function SizeOfE_pt1:
  \result FROM \nothing
[from] Function SizeOfE_pt2:
  \result FROM \nothing
[from] Function SizeOfE_pt3:
  \result FROM \nothing
[from] Function SizeOfE_pt_deref_1:
  \result FROM \nothing
[from] Function SizeOfE_pt_tab_1:
  \result FROM \nothing
[from] Function SizeOfE_pt_tab_2:
  \result FROM \nothing
[from] Function SizeOfE_tab_1:
  \result FROM \nothing
[from] Function SizeOfE_tab_acces_1:
  \result FROM \nothing
[from] Function SizeOf_1:
  \result FROM \nothing
[from] Function SizeOf_2:
  \result FROM \nothing
[from] Function main:
  \result FROM \nothing
[from] ====== END OF DEPENDENCIES ======
[slicing] slicing requests in progress...
[slicing] making slicing project 'Slicing'...
[slicing] interpreting slicing requests from the command line...
[pdg] computing for function main
[pdg] done for function main
[slicing] applying all slicing requests...
[slicing] applying 0 actions...
[slicing] applying all slicing requests...
[slicing] applying 1 actions...
[slicing] applying actions: 1/1...
[pdg] computing for function SizeOfE_tab_acces_1
[pdg] done for function SizeOfE_tab_acces_1
[pdg] computing for function SizeOfE_pt_tab_2
[pdg] done for function SizeOfE_pt_tab_2
[pdg] computing for function SizeOfE_pt_tab_1
[pdg] done for function SizeOfE_pt_tab_1
[pdg] computing for function SizeOfE_tab_1
[pdg] done for function SizeOfE_tab_1
[pdg] computing for function SizeOfE_pt_deref_1
[pdg] done for function SizeOfE_pt_deref_1
[pdg] computing for function SizeOfE_pt3
[pdg] done for function SizeOfE_pt3
[pdg] computing for function SizeOfE_pt2
[pdg] done for function SizeOfE_pt2
[pdg] computing for function SizeOfE_pt1
[pdg] done for function SizeOfE_pt1
[pdg] computing for function SizeOf_2
[pdg] done for function SizeOf_2
[pdg] computing for function SizeOf_1
[pdg] done for function SizeOf_1
[slicing] exporting project to 'Slicing export'...
[slicing] applying all slicing requests...
[slicing] applying 0 actions...
[sparecode] remove unused global declarations from project 'Slicing export tmp'
[sparecode] removed unused global declarations in new project 'Slicing export'
/* Generated by Frama-C */
struct St {
   int i ;
   int *p ;
   int tab[5] ;
};
unsigned int SizeOf_1_slice_1(void)
{
  unsigned int __retres;
  __retres = sizeof(int *);
  return __retres;
}

unsigned int SizeOf_2_slice_1(void)
{
  unsigned int __retres;
  __retres = sizeof(struct St);
  return __retres;
}

unsigned int SizeOfE_pt1_slice_1(void)
{
  unsigned int __retres;
  int x;
  __retres = sizeof(& x);
  return __retres;
}

unsigned int SizeOfE_pt2_slice_1(void)
{
  unsigned int __retres;
  int *p;
  __retres = sizeof(p);
  return __retres;
}

unsigned int SizeOfE_pt3_slice_1(void)
{
  unsigned int __retres;
  int i;
  int *p;
  __retres = sizeof(p + i);
  return __retres;
}

unsigned int SizeOfE_pt_deref_1_slice_1(void)
{
  unsigned int __retres;
  int i;
  int *p;
  __retres = sizeof(*(p + i));
  return __retres;
}

unsigned int SizeOfE_tab_1_slice_1(void)
{
  unsigned int __retres;
  int tab[5];
  __retres = sizeof(tab);
  return __retres;
}

unsigned int SizeOfE_pt_tab_1_slice_1(void)
{
  unsigned int __retres;
  int i;
  int tab[5];
  __retres = sizeof(& tab[i]);
  return __retres;
}

unsigned int SizeOfE_pt_tab_2_slice_1(void)
{
  unsigned int __retres;
  int i;
  int tab[5];
  __retres = sizeof(& tab[i]);
  return __retres;
}

unsigned int SizeOfE_tab_acces_1_slice_1(void)
{
  unsigned int __retres;
  int i;
  int tab[5];
  __retres = sizeof(tab[i]);
  return __retres;
}

void main(void)
{
  int r;
  unsigned int tmp;
  unsigned int tmp_0;
  unsigned int tmp_1;
  unsigned int tmp_2;
  unsigned int tmp_3;
  unsigned int tmp_4;
  unsigned int tmp_5;
  unsigned int tmp_6;
  unsigned int tmp_7;
  unsigned int tmp_8;
  r = 0;
  r = (int)((unsigned int)r + sizeof(struct St));
  /*@ assert r ≢ 0; */ ;
  { /* sequence */
    tmp = SizeOf_1_slice_1();
    r = (int)((unsigned int)r + tmp);
  }
  { /* sequence */
    tmp_0 = SizeOf_2_slice_1();
    r = (int)((unsigned int)r + tmp_0);
  }
  { /* sequence */
    tmp_1 = SizeOfE_pt1_slice_1();
    r = (int)((unsigned int)r + tmp_1);
  }
  { /* sequence */
    tmp_2 = SizeOfE_pt2_slice_1();
    r = (int)((unsigned int)r + tmp_2);
  }
  { /* sequence */
    tmp_3 = SizeOfE_pt3_slice_1();
    r = (int)((unsigned int)r + tmp_3);
  }
  { /* sequence */
    tmp_4 = SizeOfE_pt_deref_1_slice_1();
    r = (int)((unsigned int)r + tmp_4);
  }
  { /* sequence */
    tmp_5 = SizeOfE_tab_1_slice_1();
    r = (int)((unsigned int)r + tmp_5);
  }
  { /* sequence */
    tmp_6 = SizeOfE_pt_tab_1_slice_1();
    r = (int)((unsigned int)r + tmp_6);
  }
  { /* sequence */
    tmp_7 = SizeOfE_pt_tab_2_slice_1();
    r = (int)((unsigned int)r + tmp_7);
  }
  { /* sequence */
    tmp_8 = SizeOfE_tab_acces_1_slice_1();
    r = (int)((unsigned int)r + tmp_8);
  }
  /*@ slice pragma expr r; */ ;
  return;
}


