[kernel] Parsing share/libc/__fc_builtin_for_normalization.i (no preprocessing)
[kernel] Parsing tests/slicing/select_simple.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
  Unknown ∈ {0}
  G ∈ {0}
  S ∈ {0}
  S1 ∈ {0}
  S2 ∈ {0}
tests/slicing/simple_intra_slice.c:98:[value] entering loop for the first time
tests/slicing/simple_intra_slice.c:99:[kernel] warning: signed overflow. assert -2147483648 ≤ uninit-1;
tests/slicing/simple_intra_slice.c:99:[kernel] warning: signed overflow. assert Unknown+1 ≤ 2147483647;
tests/slicing/simple_intra_slice.c:99:[kernel] warning: signed overflow. assert -2147483648 ≤ Unknown-1;
tests/slicing/simple_intra_slice.c:100:[value] entering loop for the first time
tests/slicing/simple_intra_slice.c:101:[kernel] warning: signed overflow. assert -2147483648 ≤ uninit2-1;
tests/slicing/simple_intra_slice.c:101:[kernel] warning: signed overflow. assert S.a+1 ≤ 2147483647;
tests/slicing/simple_intra_slice.c:101:[kernel] warning: signed overflow. assert -2147483648 ≤ S.a-1;
[value] computing for function f2 <- main.
        Called from tests/slicing/simple_intra_slice.c:103.
[value] computing for function f1 <- f2 <- main.
        Called from tests/slicing/simple_intra_slice.c:23.
[value] Recording results for f1
[value] Done for function f1
[value] Recording results for f2
[value] Done for function f2
[value] computing for function f3 <- main.
        Called from tests/slicing/simple_intra_slice.c:104.
[value] Recording results for f3
[value] Done for function f3
[value] computing for function f4 <- main.
        Called from tests/slicing/simple_intra_slice.c:105.
[value] Recording results for f4
[value] Done for function f4
[value] computing for function f5 <- main.
        Called from tests/slicing/simple_intra_slice.c:106.
[value] Recording results for f5
[value] Done for function f5
[value] computing for function f6 <- main.
        Called from tests/slicing/simple_intra_slice.c:107.
tests/slicing/simple_intra_slice.c:59:[value] entering loop for the first time
tests/slicing/simple_intra_slice.c:71:[kernel] warning: signed overflow. assert -2147483648 ≤ 10*n;
tests/slicing/simple_intra_slice.c:71:[kernel] warning: signed overflow. assert 10*n ≤ 2147483647;
[value] Recording results for f6
[value] Done for function f6
tests/slicing/simple_intra_slice.c:107:[kernel] warning: signed overflow. assert res+tmp_3 ≤ 2147483647;
                                   (tmp_3 from f6(Unknown))
[value] computing for function f7 <- main.
        Called from tests/slicing/simple_intra_slice.c:108.
tests/slicing/simple_intra_slice.c:79:[kernel] warning: signed overflow. assert S.a+3 ≤ 2147483647;
tests/slicing/simple_intra_slice.c:82:[kernel] warning: signed overflow. assert s0.a+1 ≤ 2147483647;
[value] Recording results for f7
[value] Done for function f7
[value] computing for function f8 <- main.
        Called from tests/slicing/simple_intra_slice.c:110.
[value] Recording results for f8
[value] Done for function f8
[value] computing for function f8 <- main.
        Called from tests/slicing/simple_intra_slice.c:112.
[value] Recording results for f8
[value] Done for function f8
[value] Recording results for main
[value] done for function main
[from] Computing for function f1
[from] Done for function f1
[from] Computing for function f2
[from] Done for function f2
[from] Computing for function f3
[from] Done for function f3
[from] Computing for function f4
[from] Done for function f4
[from] Computing for function f5
[from] Done for function f5
[from] Computing for function f6
[from] Done for function f6
[from] Computing for function f7
[from] Done for function f7
[from] Computing for function f8
[from] Done for function f8
[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 f1:
  G FROM x
  \result FROM y
[from] Function f2:
  G FROM \nothing
  \result FROM \nothing
[from] Function f3:
  G FROM Unknown; c (and SELF)
  \result FROM Unknown; c
[from] Function f4:
  G FROM Unknown; c (and SELF)
  \result FROM Unknown; c
[from] Function f5:
  G FROM Unknown; G; c (and SELF)
  \result FROM Unknown; c
[from] Function f6:
  \result FROM Unknown; n
[from] Function f7:
  S.a FROM S.a; s0
   {.b; .c} FROM S.a; s0 (and SELF)
[from] Function f8:
  S1.a FROM S1.a; S2.a; ps (and SELF)
    .b FROM S1.b; S2.b; ps (and SELF)
  S2.a FROM S1.a; S2.a; ps (and SELF)
    .b FROM S1.b; S2.b; ps (and SELF)
[from] Function main:
  Unknown FROM Unknown (and SELF)
  G FROM Unknown
  S.a FROM S
   {.b; .c} FROM S (and SELF)
  S1.a FROM Unknown; S1.a; S2.a (and SELF)
    .b FROM Unknown; S1.b; S2.b (and SELF)
  S2.a FROM Unknown; S1.a; S2.a (and SELF)
    .b FROM Unknown; S1.b; S2.b (and SELF)
  \result FROM Unknown
[from] ====== END OF DEPENDENCIES ======
[slicing] making slicing project 'slicing_1'...
[pdg] computing for function f1
[pdg] done for function f1
Slicing project worklist [default/slicing_1] =
[f1_slice_1 = (n:11(restrict to G) ,<[--d], [---]>)]

[slicing] exporting project to 'Sliced code'...
[slicing] applying all slicing requests...
[slicing] applying 1 actions...
[slicing] applying actions: 1/1...
[sparecode] remove unused global declarations from project 'Sliced code tmp'
[sparecode] removed unused global declarations in new project 'Sliced code'
/* Generated by Frama-C */
int G;
void f1_slice_1(int x)
{
  int a;
  a = 1;
  G = x + a;
  return;
}


[slicing] making slicing project 'slicing_2'...
Slicing project worklist [default/slicing_2] =
[f1_slice_1 = (n:13(restrict to __retres) ,<[--d], [---]>)]

[slicing] exporting project to 'Sliced code'...
[slicing] applying all slicing requests...
[slicing] applying 1 actions...
[slicing] applying actions: 1/1...
[sparecode] remove unused global declarations from project 'Sliced code tmp'
[sparecode] removed unused global declarations in new project 'Sliced code'
/* Generated by Frama-C */
int f1_slice_1(int y)
{
  int __retres;
  int b;
  b = 2;
  __retres = y + b;
  return __retres;
}


[slicing] making slicing project 'slicing_3'...
[pdg] computing for function f2
[pdg] done for function f2
Slicing project worklist [default/slicing_3] =
[f2_slice_1 = (n:28(restrict to tmp) ,<[--d], [---]>)]

[slicing] exporting project to 'Sliced code'...
[slicing] applying all slicing requests...
[slicing] applying 1 actions...
[slicing] applying actions: 1/1...
[sparecode] remove unused global declarations from project 'Sliced code tmp'
[sparecode] removed unused global declarations in new project 'Sliced code'
/* Generated by Frama-C */
int f1_slice_1(int y)
{
  int __retres;
  int b;
  b = 2;
  __retres = y + b;
  return __retres;
}

int f2_slice_1(void)
{
  int c;
  int tmp;
  c = 3;
  tmp = f1_slice_1(c);
  return tmp;
}


[slicing] making slicing project 'slicing_4'...
[pdg] computing for function f6
[pdg] done for function f6
Slicing project worklist [default/slicing_4] =
[f6_slice_1 = (n:32(restrict to n) ,<[--d], [---]>)(n:42(restrict to 
n) ,<[--d], [---]>)]

[slicing] exporting project to 'Sliced code'...
[slicing] applying all slicing requests...
[slicing] applying 1 actions...
[slicing] applying actions: 1/1...
[sparecode] remove unused global declarations from project 'Sliced code tmp'
[sparecode] removed unused global declarations in new project 'Sliced code'
/* Generated by Frama-C */
int Unknown;
void f6_slice_1(int n)
{
  while (n < 10) {
    if (Unknown > 3) break;
    if (n % 2) continue;
    n ++;
  }
  return;
}


[slicing] making slicing project 'slicing_5'...
[pdg] computing for function f7
[pdg] done for function f7
[slicing] making slicing project 'slicing_6'...
Impossible to select 'retres' for a void function (f7)
Slicing project worklist [default/slicing_6] =
[f7_slice_1 = (n:61(restrict to S.a) ,<[--d], [---]>)(n:63(restrict to 
S.a) ,<[--d], [---]>)]

[slicing] exporting project to 'Sliced code'...
[slicing] applying all slicing requests...
[slicing] applying 1 actions...
[slicing] applying actions: 1/1...
[sparecode] remove unused global declarations from project 'Sliced code tmp'
[sparecode] removed unused global declarations in new project 'Sliced code'
/* Generated by Frama-C */
struct __anonstruct_Tstr_1 {
   int a ;
   int b ;
   int c ;
};
typedef struct __anonstruct_Tstr_1 Tstr;
Tstr S;
void f7_slice_1(Tstr s0)
{
  int x;
  x = S.a;
  if (x > 0) S.a += 3;
  else {
    (s0.a) ++;
    S = s0;
  }
  return;
}


[slicing] making slicing project 'slicing_7'...
Slicing project worklist [default/slicing_7] =
[f7_slice_1 = (UndefIn S.b:<[--d], [---]>)(n:63(restrict to S.b) ,<[--d],
                                                                  [---]>)]

[slicing] exporting project to 'Sliced code'...
[slicing] applying all slicing requests...
[slicing] applying 1 actions...
[slicing] applying actions: 1/1...
[sparecode] remove unused global declarations from project 'Sliced code tmp'
[sparecode] removed unused global declarations in new project 'Sliced code'
/* Generated by Frama-C */
struct __anonstruct_Tstr_1 {
   int a ;
   int b ;
   int c ;
};
typedef struct __anonstruct_Tstr_1 Tstr;
Tstr S;
void f7_slice_1(Tstr s0)
{
  int x;
  x = S.a;
  if (! (x > 0)) {
    (s0.a) ++;
    S = s0;
  }
  return;
}


[slicing] making slicing project 'slicing_8'...
Slicing project worklist [default/slicing_8] =
[f7_slice_1 = (UndefIn S{.b; .c}:<[--d], [---]>)(n:61(restrict to S.a) ,
<[--d],
[---]>)(n:63(restrict to S.a) ,<[--d], [---]>)(n:63(restrict to S{.b; .c}) ,
<[--d],
[---]>)]

[slicing] exporting project to 'Sliced code'...
[slicing] applying all slicing requests...
[slicing] applying 1 actions...
[slicing] applying actions: 1/1...
[sparecode] remove unused global declarations from project 'Sliced code tmp'
[sparecode] removed unused global declarations in new project 'Sliced code'
/* Generated by Frama-C */
struct __anonstruct_Tstr_1 {
   int a ;
   int b ;
   int c ;
};
typedef struct __anonstruct_Tstr_1 Tstr;
Tstr S;
void f7_slice_1(Tstr s0)
{
  int x;
  x = S.a;
  if (x > 0) S.a += 3;
  else {
    (s0.a) ++;
    S = s0;
  }
  return;
}


[slicing] making slicing project 'slicing_9'...
[slicing] making slicing project 'slicing_10'...
[pdg] computing for function f8
[pdg] done for function f8
Impossible to select this data : XXX in f7
Slicing project worklist [default/slicing_10] =
[f8_slice_1 = (n:69(restrict to S1.a) ,<[--d], [---]>)(n:69(restrict to 
S2.a) ,<[--d], [---]>)(n:75(restrict to S2.a) ,<[--d], [---]>)(n:74(restrict to 
S1.a) ,<[--d], [---]>)]

[slicing] exporting project to 'Sliced code'...
[slicing] applying all slicing requests...
[slicing] applying 1 actions...
[slicing] applying actions: 1/1...
[sparecode] remove unused global declarations from project 'Sliced code tmp'
[sparecode] removed unused global declarations in new project 'Sliced code'
/* Generated by Frama-C */
struct __anonstruct_Tstr_1 {
   int a ;
   int b ;
   int c ;
};
typedef struct __anonstruct_Tstr_1 Tstr;
void f8_slice_1(Tstr *ps)
{
  (ps->a) ++;
  return;
}


[slicing] making slicing project 'slicing_11'...
Slicing project worklist [default/slicing_11] =
[f8_slice_1 = (n:70(restrict to S1.b) ,<[--d], [---]>)(n:70(restrict to 
S2.b) ,<[--d], [---]>)(n:73(restrict to S2.b) ,<[--d], [---]>)(n:72(restrict to 
S1.b) ,<[--d], [---]>)]

[slicing] exporting project to 'Sliced code'...
[slicing] applying all slicing requests...
[slicing] applying 1 actions...
[slicing] applying actions: 1/1...
[sparecode] remove unused global declarations from project 'Sliced code tmp'
[sparecode] removed unused global declarations in new project 'Sliced code'
/* Generated by Frama-C */
struct __anonstruct_Tstr_1 {
   int a ;
   int b ;
   int c ;
};
typedef struct __anonstruct_Tstr_1 Tstr;
void f8_slice_1(Tstr *ps)
{
  (ps->b) ++;
  return;
}


[slicing] making slicing project 'slicing_12'...
Slicing project worklist [default/slicing_12] =
[f8_slice_1 = (UndefIn S1.c;
S2.c:<[--d], [---]>)]

[slicing] exporting project to 'Sliced code'...
[slicing] applying all slicing requests...
[slicing] applying 1 actions...
[slicing] applying actions: 1/1...
[sparecode] remove unused global declarations from project 'Sliced code tmp'
[sparecode] removed unused global declarations in new project 'Sliced code'
/* Generated by Frama-C */
void f8_slice_1(void)
{
  return;
}


[slicing] making slicing project 'slicing_13'...
Slicing project worklist [default/slicing_13] =
[f8_slice_1 = (UndefIn S1.c;
S2.c:<[--d], [---]>)(n:69(restrict to S1.a) ,<[--d], [---]>)(n:70(restrict to 
S1.b) ,<[--d], [---]>)(n:69(restrict to S2.a) ,<[--d], [---]>)(n:70(restrict to 
S2.b) ,<[--d], [---]>)(n:73(restrict to S2.b) ,<[--d], [---]>)(n:75(restrict to 
S2.a) ,<[--d], [---]>)(n:72(restrict to S1.b) ,<[--d], [---]>)(n:74(restrict to 
S1.a) ,<[--d], [---]>)]

[slicing] exporting project to 'Sliced code'...
[slicing] applying all slicing requests...
[slicing] applying 1 actions...
[slicing] applying actions: 1/1...
[sparecode] remove unused global declarations from project 'Sliced code tmp'
[sparecode] removed unused global declarations in new project 'Sliced code'
/* Generated by Frama-C */
struct __anonstruct_Tstr_1 {
   int a ;
   int b ;
   int c ;
};
typedef struct __anonstruct_Tstr_1 Tstr;
void f8_slice_1(Tstr *ps)
{
  (ps->a) ++;
  (ps->b) ++;
  return;
}


