Skip to content
Snippets Groups Projects
Commit 56d3b4ef authored by Jan Rochel's avatar Jan Rochel
Browse files

[alias] print graphs in tests

parent c17f3133
No related branches found
No related tags found
No related merge requests found
Showing
with 540 additions and 0 deletions
......@@ -2,16 +2,38 @@
[alias] analysing function: main
[alias] analysing instruction: a = & x;
[alias] May-aliases after instruction a = & x; are { *a; x }
[alias] May-alias graph after instruction a = & x; is
0:{ a } → 1:{ x } 1:{ x } → 3:{ }
[alias] analysing instruction: b = & y;
[alias] May-aliases after instruction b = & y; are { *a; x } { *b; y }
[alias] May-alias graph after instruction b = & y; is
0:{ a } → 1:{ x } 1:{ x } → 3:{ } 5:{ b } → 6:{ y }
6:{ y } → 8:{ }
[alias] analysing instruction: y = & z;
[alias] May-aliases after instruction y = & z; are
{ *a; x } { *b; y } { *(*b); *y; z }
[alias] May-alias graph after instruction y = & z; is
0:{ a } → 1:{ x } 1:{ x } → 3:{ } 5:{ b } → 6:{ y }
6:{ y } → 8:{ z } 8:{ z } → 11:{ }
[alias] analysing instruction: *y = x;
[alias] May-aliases after instruction *y = x; are
{ *(*b); *a; *y; x } { *b; a; y }
[alias] May-alias graph after instruction *y = x; is
0:{ a } → 8:{ *y; x } 5:{ b } → 6:{ y } 6:{ y } → 8:{ *y; x }
8:{ *y; x } → 3:{ }
[alias] analysing instruction: __retres = 0;
[alias] May-aliases after instruction __retres = 0; are
{ *b; a; y } { *(*b); *a; *y; x; z }
[alias] May-alias graph after instruction __retres = 0; is
0:{ a } → 1:{ *y; x; z } 1:{ *y; x; z } → 3:{ }
5:{ b } → 6:{ y } 6:{ y } → 1:{ *y; x; z }
[alias] May-aliases at the end of function main:
{ *b; a; y } { *(*b); *a; *y; x; z }
[alias] May-alias graph at the end of function main:
0:{ a } → 1:{ *y; x; z } 1:{ *y; x; z } → 3:{ }
5:{ b } → 6:{ y } 6:{ y } → 1:{ *y; x; z }
[alias] Summary of function main:
formals:
locals: a→{ *y; x; z } b→{ y } y→{ *y; x; z } x z p __retres
returns: __retres state: { *b; a; y } { *(*b); *a; *y; x; z }
[alias] Analysis complete
......@@ -2,18 +2,33 @@
[alias] analysing function: main
[alias] analysing instruction: int *a = (int *)0;
[alias] May-aliases after instruction int *a = (int *)0; are <none>
[alias] May-alias graph after instruction int *a = (int *)0; is <empty>
[alias] analysing instruction: int *b = (int *)0;
[alias] May-aliases after instruction int *b = (int *)0; are <none>
[alias] May-alias graph after instruction int *b = (int *)0; is <empty>
[alias] analysing instruction: int *c = (int *)0;
[alias] May-aliases after instruction int *c = (int *)0; are <none>
[alias] May-alias graph after instruction int *c = (int *)0; is <empty>
[alias] analysing instruction: int *d = (int *)0;
[alias] May-aliases after instruction int *d = (int *)0; are <none>
[alias] May-alias graph after instruction int *d = (int *)0; is <empty>
[alias] analysing instruction: a = b;
[alias] May-aliases after instruction a = b; are { a; b }
[alias] May-alias graph after instruction a = b; is 0:{ a; b } → 1:{ }
[alias] analysing instruction: b = c;
[alias] May-aliases after instruction b = c; are { a; b; c }
[alias] May-alias graph after instruction b = c; is 0:{ a; b; c } → 1:{ }
[alias] analysing instruction: a = d;
[alias] May-aliases after instruction a = d; are { a; b; c; d }
[alias] May-alias graph after instruction a = d; is 0:{ a; b; c; d } → 1:{ }
[alias] analysing instruction: __retres = 0;
[alias] May-aliases after instruction __retres = 0; are { a; b; c; d }
[alias] May-alias graph after instruction __retres = 0; is
0:{ a; b; c; d } → 1:{ }
[alias] May-aliases at the end of function main: { a; b; c; d }
[alias] May-alias graph at the end of function main:
0:{ a; b; c; d } → 1:{ }
[alias] Summary of function main:
formals: locals: a b c d __retres returns: __retres
state: { a; b; c; d }
[alias] Analysis complete
......@@ -2,18 +2,38 @@
[alias] analysing function: main
[alias] analysing instruction: int **a = (int **)0;
[alias] May-aliases after instruction int **a = (int **)0; are <none>
[alias] May-alias graph after instruction int **a = (int **)0; is <empty>
[alias] analysing instruction: int *b = (int *)0;
[alias] May-aliases after instruction int *b = (int *)0; are <none>
[alias] May-alias graph after instruction int *b = (int *)0; is <empty>
[alias] analysing instruction: int **c = (int **)0;
[alias] May-aliases after instruction int **c = (int **)0; are <none>
[alias] May-alias graph after instruction int **c = (int **)0; is <empty>
[alias] analysing instruction: int *d = (int *)0;
[alias] May-aliases after instruction int *d = (int *)0; are <none>
[alias] May-alias graph after instruction int *d = (int *)0; is <empty>
[alias] analysing instruction: *a = b;
[alias] May-aliases after instruction *a = b; are { *a; b }
[alias] May-alias graph after instruction *a = b; is
0:{ a } → 1:{ *a; b } 1:{ *a; b } → 3:{ }
[alias] analysing instruction: *c = d;
[alias] May-aliases after instruction *c = d; are { *a; b } { *c; d }
[alias] May-alias graph after instruction *c = d; is
0:{ a } → 1:{ *a; b } 1:{ *a; b } → 3:{ } 4:{ c } → 5:{ *c; d }
5:{ *c; d } → 7:{ }
[alias] analysing instruction: a = c;
[alias] May-aliases after instruction a = c; are { a; c } { *a; *c; b; d }
[alias] May-alias graph after instruction a = c; is
0:{ a; c } → 1:{ *a; *c; b; d } 1:{ *a; *c; b; d } → 3:{ }
[alias] analysing instruction: __retres = 0;
[alias] May-aliases after instruction __retres = 0; are { a; c } { *a; *c; b; d }
[alias] May-alias graph after instruction __retres = 0; is
0:{ a; c } → 1:{ *a; *c; b; d } 1:{ *a; *c; b; d } → 3:{ }
[alias] May-aliases at the end of function main: { a; c } { *a; *c; b; d }
[alias] May-alias graph at the end of function main:
0:{ a; c } → 1:{ *a; *c; b; d } 1:{ *a; *c; b; d } → 3:{ }
[alias] Summary of function main:
formals:
locals: a→{ *a; *c; b; d } b c→{ *a; *c; b; d } d __retres
returns: __retres state: { a; c } { *a; *c; b; d }
[alias] Analysis complete
......@@ -2,14 +2,28 @@
[alias] analysing function: main
[alias] analysing instruction: int *a = (int *)0;
[alias] May-aliases after instruction int *a = (int *)0; are <none>
[alias] May-alias graph after instruction int *a = (int *)0; is <empty>
[alias] analysing instruction: int b = 0;
[alias] May-aliases after instruction int b = 0; are <none>
[alias] May-alias graph after instruction int b = 0; is <empty>
[alias] analysing instruction: int *c = (int *)0;
[alias] May-aliases after instruction int *c = (int *)0; are <none>
[alias] May-alias graph after instruction int *c = (int *)0; is <empty>
[alias] analysing instruction: a = & b;
[alias] May-aliases after instruction a = & b; are <none>
[alias] May-alias graph after instruction a = & b; is 0:{ a } → 1:{ b }
[alias] analysing instruction: c = & b;
[alias] May-aliases after instruction c = & b; are { a; c }
[alias] May-alias graph after instruction c = & b; is
0:{ a } → 5:{ b } 4:{ c } → 5:{ b }
[alias] analysing instruction: __retres = 0;
[alias] May-aliases after instruction __retres = 0; are { a; c }
[alias] May-alias graph after instruction __retres = 0; is
0:{ a } → 5:{ b } 4:{ c } → 5:{ b }
[alias] May-aliases at the end of function main: { a; c }
[alias] May-alias graph at the end of function main:
0:{ a } → 5:{ b } 4:{ c } → 5:{ b }
[alias] Summary of function main:
formals: locals: a→{ b } b c→{ b } __retres
returns: __retres state: { a; c }
[alias] Analysis complete
......@@ -2,18 +2,41 @@
[alias] analysing function: main
[alias] analysing instruction: int **a = (int **)0;
[alias] May-aliases after instruction int **a = (int **)0; are <none>
[alias] May-alias graph after instruction int **a = (int **)0; is <empty>
[alias] analysing instruction: int *b = (int *)0;
[alias] May-aliases after instruction int *b = (int *)0; are <none>
[alias] May-alias graph after instruction int *b = (int *)0; is <empty>
[alias] analysing instruction: int **c = (int **)0;
[alias] May-aliases after instruction int **c = (int **)0; are <none>
[alias] May-alias graph after instruction int **c = (int **)0; is <empty>
[alias] analysing instruction: int *d = (int *)0;
[alias] May-aliases after instruction int *d = (int *)0; are <none>
[alias] May-alias graph after instruction int *d = (int *)0; is <empty>
[alias] analysing instruction: *a = b;
[alias] May-aliases after instruction *a = b; are { *a; b }
[alias] May-alias graph after instruction *a = b; is
0:{ a } → 1:{ *a; b } 1:{ *a; b } → 3:{ }
[alias] analysing instruction: *c = d;
[alias] May-aliases after instruction *c = d; are { *a; b } { *c; d }
[alias] May-alias graph after instruction *c = d; is
0:{ a } → 1:{ *a; b } 1:{ *a; b } → 3:{ } 4:{ c } → 5:{ *c; d }
5:{ *c; d } → 7:{ }
[alias] analysing instruction: b = d;
[alias] May-aliases after instruction b = d; are { a; c } { *a; *c; b; d }
[alias] May-alias graph after instruction b = d; is
0:{ a } → 1:{ *a; *c; b; d } 1:{ *a; *c; b; d } → 3:{ }
4:{ c } → 1:{ *a; *c; b; d }
[alias] analysing instruction: __retres = 0;
[alias] May-aliases after instruction __retres = 0; are { a; c } { *a; *c; b; d }
[alias] May-alias graph after instruction __retres = 0; is
0:{ a } → 1:{ *a; *c; b; d } 1:{ *a; *c; b; d } → 3:{ }
4:{ c } → 1:{ *a; *c; b; d }
[alias] May-aliases at the end of function main: { a; c } { *a; *c; b; d }
[alias] May-alias graph at the end of function main:
0:{ a } → 1:{ *a; *c; b; d } 1:{ *a; *c; b; d } → 3:{ }
4:{ c } → 1:{ *a; *c; b; d }
[alias] Summary of function main:
formals:
locals: a→{ *a; *c; b; d } b c→{ *a; *c; b; d } d __retres
returns: __retres state: { a; c } { *a; *c; b; d }
[alias] Analysis complete
......@@ -2,20 +2,43 @@
[alias] analysing function: main
[alias] analysing instruction: int ***a = (int ***)0;
[alias] May-aliases after instruction int ***a = (int ***)0; are <none>
[alias] May-alias graph after instruction int ***a = (int ***)0; is <empty>
[alias] analysing instruction: int **b = (int **)0;
[alias] May-aliases after instruction int **b = (int **)0; are <none>
[alias] May-alias graph after instruction int **b = (int **)0; is <empty>
[alias] analysing instruction: int *c = (int *)0;
[alias] May-aliases after instruction int *c = (int *)0; are <none>
[alias] May-alias graph after instruction int *c = (int *)0; is <empty>
[alias] analysing instruction: int *d = (int *)0;
[alias] May-aliases after instruction int *d = (int *)0; are <none>
[alias] May-alias graph after instruction int *d = (int *)0; is <empty>
[alias] analysing instruction: *a = b;
[alias] May-aliases after instruction *a = b; are { *a; b }
[alias] May-alias graph after instruction *a = b; is
0:{ a } → 1:{ *a; b } 1:{ *a; b } → 3:{ }
[alias] analysing instruction: *b = c;
[alias] May-aliases after instruction *b = c; are { *a; b } { *(*a); *b; c }
[alias] May-alias graph after instruction *b = c; is
0:{ a } → 1:{ *a; b } 1:{ *a; b } → 3:{ *b; c }
3:{ *b; c } → 5:{ }
[alias] analysing instruction: d = *(*a);
[alias] May-aliases after instruction d = *(*a); are
{ *a; b } { *(*a); *b; c; d }
[alias] May-alias graph after instruction d = *(*a); is
0:{ a } → 1:{ *a; b } 1:{ *a; b } → 6:{ *(*a); *b; c; d }
6:{ *(*a); *b; c; d } → 7:{ }
[alias] analysing instruction: __retres = 0;
[alias] May-aliases after instruction __retres = 0; are
{ *a; b } { *(*a); *b; c; d }
[alias] May-alias graph after instruction __retres = 0; is
0:{ a } → 1:{ *a; b } 1:{ *a; b } → 6:{ *(*a); *b; c; d }
6:{ *(*a); *b; c; d } → 7:{ }
[alias] May-aliases at the end of function main: { *a; b } { *(*a); *b; c; d }
[alias] May-alias graph at the end of function main:
0:{ a } → 1:{ *a; b } 1:{ *a; b } → 6:{ *(*a); *b; c; d }
6:{ *(*a); *b; c; d } → 7:{ }
[alias] Summary of function main:
formals:
locals: a→{ *a; b } b→{ *(*a); *b; c; d } c d __retres
returns: __retres state: { *a; b } { *(*a); *b; c; d }
[alias] Analysis complete
......@@ -2,18 +2,33 @@
[alias] analysing function: main
[alias] analysing instruction: int *a = (int *)0;
[alias] May-aliases after instruction int *a = (int *)0; are <none>
[alias] May-alias graph after instruction int *a = (int *)0; is <empty>
[alias] analysing instruction: int *b = (int *)0;
[alias] May-aliases after instruction int *b = (int *)0; are <none>
[alias] May-alias graph after instruction int *b = (int *)0; is <empty>
[alias] analysing instruction: float *c = (float *)0;
[alias] May-aliases after instruction float *c = (float *)0; are <none>
[alias] May-alias graph after instruction float *c = (float *)0; is <empty>
[alias] analysing instruction: float *d = (float *)0;
[alias] May-aliases after instruction float *d = (float *)0; are <none>
[alias] May-alias graph after instruction float *d = (float *)0; is <empty>
[alias] analysing instruction: a = (int *)c;
[alias:unsafe-cast] cast1.c:10: Warning: unsafe cast from float * to int *
[alias] May-aliases after instruction a = (int *)c; are { a; c }
[alias] May-alias graph after instruction a = (int *)c; is 0:{ a; c } → 1:{ }
[alias] analysing instruction: d = (float *)b;
[alias:unsafe-cast] cast1.c:11: Warning: unsafe cast from int * to float *
[alias] May-aliases after instruction d = (float *)b; are { a; c } { b; d }
[alias] May-alias graph after instruction d = (float *)b; is
0:{ a; c } → 1:{ } 4:{ b; d } → 5:{ }
[alias] analysing instruction: __retres = 0;
[alias] May-aliases after instruction __retres = 0; are { a; c } { b; d }
[alias] May-alias graph after instruction __retres = 0; is
0:{ a; c } → 1:{ } 4:{ b; d } → 5:{ }
[alias] May-aliases at the end of function main: { a; c } { b; d }
[alias] May-alias graph at the end of function main:
0:{ a; c } → 1:{ } 4:{ b; d } → 5:{ }
[alias] Summary of function main:
formals: locals: a b c d __retres returns: __retres
state: { a; c } { b; d }
[alias] Analysis complete
......@@ -2,16 +2,30 @@
[alias] analysing function: main
[alias] analysing instruction: int *a = (int *)0;
[alias] May-aliases after instruction int *a = (int *)0; are <none>
[alias] May-alias graph after instruction int *a = (int *)0; is <empty>
[alias] analysing instruction: int *b = (int *)0;
[alias] May-aliases after instruction int *b = (int *)0; are <none>
[alias] May-alias graph after instruction int *b = (int *)0; is <empty>
[alias] analysing instruction: int *c = (int *)0;
[alias] May-aliases after instruction int *c = (int *)0; are <none>
[alias] May-alias graph after instruction int *c = (int *)0; is <empty>
[alias] analysing instruction: a = b;
[alias] May-aliases after instruction a = b; are { a; b }
[alias] May-alias graph after instruction a = b; is 0:{ a; b } → 1:{ }
[alias] analysing instruction: a = c;
[alias] May-aliases after instruction a = c; are { a; c }
[alias] May-alias graph after instruction a = c; is 4:{ a; c } → 5:{ }
[alias] analysing instruction: *a = 4;
[alias] May-aliases after instruction *a = 4; are { a; b; c }
[alias] May-alias graph after instruction *a = 4; is 0:{ a; b; c } → 1:{ }
[alias] analysing instruction: __retres = 0;
[alias] May-aliases after instruction __retres = 0; are { a; b; c }
[alias] May-alias graph after instruction __retres = 0; is
0:{ a; b; c } → 1:{ }
[alias] May-aliases at the end of function main: { a; b; c }
[alias] May-alias graph at the end of function main:
0:{ a; b; c } → 1:{ }
[alias] Summary of function main:
formals: locals: a b c __retres returns: __retres
state: { a; b; c }
[alias] Analysis complete
......@@ -2,18 +2,38 @@
[alias] analysing function: main
[alias] analysing instruction: b = & c;
[alias] May-aliases after instruction b = & c; are { *b; c }
[alias] May-alias graph after instruction b = & c; is
0:{ b } → 1:{ c } 1:{ c } → 3:{ }
[alias] analysing instruction: c = & d;
[alias] May-aliases after instruction c = & d; are { *b; c } { *(*b); *c; d }
[alias] May-alias graph after instruction c = & d; is
0:{ b } → 1:{ c } 1:{ c } → 3:{ d } 3:{ d } → 6:{ }
[alias] analysing instruction: d = & e;
[alias] May-aliases after instruction d = & e; are { *b; c } { *(*b); *c; d }
[alias] May-alias graph after instruction d = & e; is
0:{ b } → 1:{ c } 1:{ c } → 3:{ d } 3:{ d } → 6:{ e }
[alias] analysing instruction: a = b;
[alias] May-aliases after instruction a = b; are
{ *a; *b; c } { *(*a); *(*b); *c; d } { a; b }
[alias] May-alias graph after instruction a = b; is
3:{ d } → 6:{ e } 10:{ a; b } → 11:{ c } 11:{ c } → 3:{ d }
[alias] analysing instruction: a = & c;
[alias] May-aliases after instruction a = & c; are
{ *a; *b; c } { *(*a); *(*b); *c; d } { a; b }
[alias] May-alias graph after instruction a = & c; is
0:{ b } → 13:{ c } 3:{ d } → 6:{ e } 12:{ a } → 13:{ c }
13:{ c } → 3:{ d }
[alias] analysing instruction: __retres = 0;
[alias] May-aliases after instruction __retres = 0; are
{ *a; *b; c } { *(*a); *(*b); *c; d } { a; b }
[alias] May-alias graph after instruction __retres = 0; is
3:{ d } → 6:{ e } 10:{ a; b } → 11:{ c } 11:{ c } → 3:{ d }
[alias] May-aliases at the end of function main:
{ *a; *b; c } { *(*a); *(*b); *c; d } { a; b }
[alias] May-alias graph at the end of function main:
3:{ d } → 6:{ e } 10:{ a; b } → 11:{ c } 11:{ c } → 3:{ d }
[alias] Summary of function main:
formals:
locals: a→{ c } b→{ c } c→{ d } d→{ e } e __retres
returns: __retres state: { *a; *b; c } { *(*a); *(*b); *c; d } { a; b }
[alias] Analysis complete
......@@ -2,34 +2,68 @@
[alias] analysing function: main
[alias] analysing instruction: a = b;
[alias] May-aliases after instruction a = b; are { a; b }
[alias] May-alias graph after instruction a = b; is 0:{ a; b } → 1:{ }
[alias] analysing instruction: b = & i;
[alias] May-aliases after instruction b = & i; are { a; b } { *a; *b; i }
[alias] May-alias graph after instruction b = & i; is
0:{ a; b } → 1:{ i } 1:{ i } → 5:{ }
[alias] analysing instruction: i = & x;
[alias] May-aliases after instruction i = & x; are
{ a; b } { *a; *b; i } { *(*a); *(*b); *i; x }
[alias] May-alias graph after instruction i = & x; is
0:{ a; b } → 1:{ i } 1:{ i } → 5:{ x } 5:{ x } → 8:{ }
[alias] analysing instruction: x = & t;
[alias] May-aliases after instruction x = & t; are
{ a; b } { *a; *b; i } { *(*a); *(*b); *i; x }
{ *(*(*a)); *(*(*b)); *(*i); *x; t }
[alias] May-alias graph after instruction x = & t; is
0:{ a; b } → 1:{ i } 1:{ i } → 5:{ x } 5:{ x } → 8:{ t }
8:{ t } → 11:{ }
[alias] analysing instruction: a = c;
[alias] May-aliases after instruction a = c; are { a; c }
[alias] May-alias graph after instruction a = c; is 13:{ a; c } → 14:{ }
[alias] analysing instruction: c = & j;
[alias] May-aliases after instruction c = & j; are { a; c } { *a; *c; j }
[alias] May-alias graph after instruction c = & j; is
13:{ a; c } → 14:{ j } 14:{ j } → 18:{ }
[alias] analysing instruction: j = & y;
[alias] May-aliases after instruction j = & y; are
{ a; c } { *a; *c; j } { *(*a); *(*c); *j; y }
[alias] May-alias graph after instruction j = & y; is
13:{ a; c } → 14:{ j } 14:{ j } → 18:{ y } 18:{ y } → 21:{ }
[alias] analysing instruction: y = & u;
[alias] May-aliases after instruction y = & u; are
{ a; c } { *a; *c; j } { *(*a); *(*c); *j; y }
{ *(*(*a)); *(*(*c)); *(*j); *y; u }
[alias] May-alias graph after instruction y = & u; is
13:{ a; c } → 14:{ j } 14:{ j } → 18:{ y } 18:{ y } → 21:{ u }
21:{ u } → 24:{ }
[alias] analysing instruction: p = 0;
[alias] May-aliases after instruction p = 0; are
{ a; b; c } { *a; *b; *c; i; j } { *(*a); *(*b); *(*c); *i; *j; x; y }
{ *(*(*a)); *(*(*b)); *(*(*c)); *(*i); *(*j); *x; *y; t; u }
[alias] May-alias graph after instruction p = 0; is
0:{ a; b; c } → 1:{ i; j } 1:{ i; j } → 5:{ x; y }
5:{ x; y } → 8:{ t; u } 8:{ t; u } → 11:{ }
[alias] analysing instruction: __retres = 0;
[alias] May-aliases after instruction __retres = 0; are
{ a; b; c } { *a; *b; *c; i; j } { *(*a); *(*b); *(*c); *i; *j; x; y }
{ *(*(*a)); *(*(*b)); *(*(*c)); *(*i); *(*j); *x; *y; t; u }
[alias] May-alias graph after instruction __retres = 0; is
0:{ a; b; c } → 1:{ i; j } 1:{ i; j } → 5:{ x; y }
5:{ x; y } → 8:{ t; u } 8:{ t; u } → 11:{ }
[alias] May-aliases at the end of function main:
{ a; b; c } { *a; *b; *c; i; j } { *(*a); *(*b); *(*c); *i; *j; x; y }
{ *(*(*a)); *(*(*b)); *(*(*c)); *(*i); *(*j); *x; *y; t; u }
[alias] May-alias graph at the end of function main:
0:{ a; b; c } → 1:{ i; j } 1:{ i; j } → 5:{ x; y }
5:{ x; y } → 8:{ t; u } 8:{ t; u } → 11:{ }
[alias] Summary of function main:
formals:
locals: a→{ i; j } b→{ i; j } c→{ i; j } i→{ x; y } j→{ x; y }
x→{ t; u } y→{ t; u } t u p __retres
returns: __retres
state: { a; b; c } { *a; *b; *c; i; j }
{ *(*a); *(*b); *(*c); *i; *j; x; y }
{ *(*(*a)); *(*(*b)); *(*(*c)); *(*i); *(*j); *x; *y; t; u }
[alias] Analysis complete
......@@ -2,30 +2,62 @@
[alias] analysing function: main
[alias] analysing instruction: int *a = (int *)0;
[alias] May-aliases after instruction int *a = (int *)0; are <none>
[alias] May-alias graph after instruction int *a = (int *)0; is <empty>
[alias] analysing instruction: int *b = (int *)0;
[alias] May-aliases after instruction int *b = (int *)0; are <none>
[alias] May-alias graph after instruction int *b = (int *)0; is <empty>
[alias] analysing instruction: int *c = (int *)0;
[alias] May-aliases after instruction int *c = (int *)0; are <none>
[alias] May-alias graph after instruction int *c = (int *)0; is <empty>
[alias] analysing instruction: int *d = (int *)0;
[alias] May-aliases after instruction int *d = (int *)0; are <none>
[alias] May-alias graph after instruction int *d = (int *)0; is <empty>
[alias] analysing instruction: swap(a,b);
[alias] analysing function: swap
[alias] analysing instruction: int *z = (int *)0;
[alias] May-aliases after instruction int *z = (int *)0; are <none>
[alias] May-alias graph after instruction int *z = (int *)0; is <empty>
[alias] analysing instruction: z = x;
[alias] May-aliases after instruction z = x; are { x; z }
[alias] May-alias graph after instruction z = x; is 0:{ x; z } → 1:{ }
[alias] analysing instruction: x = y;
[alias] May-aliases after instruction x = y; are { x; y; z }
[alias] May-alias graph after instruction x = y; is 0:{ x; y; z } → 1:{ }
[alias] analysing instruction: y = z;
[alias] May-aliases after instruction y = z; are { x; y; z }
[alias] May-alias graph after instruction y = z; is 0:{ x; y; z } → 1:{ }
[alias] May-aliases at the end of function swap: { x; y; z }
[alias] May-alias graph at the end of function swap:
0:{ x; y; z } → 1:{ }
[alias] Summary of function swap:
formals: x y locals: z returns: <none> state: { x; y; z }
[alias] May-aliases after instruction swap(a,b); are { a; b }
[alias] May-alias graph after instruction swap(a,b); is
8:{ a } → 7:{ } 10:{ b } → 7:{ }
[alias] analysing instruction: swap(c,d);
[alias] May-aliases after instruction swap(c,d); are { a; b } { c; d }
[alias] May-alias graph after instruction swap(c,d); is
8:{ a } → 7:{ } 10:{ b } → 7:{ } 14:{ c } → 13:{ }
16:{ d } → 13:{ }
[alias] analysing instruction: __retres = 0;
[alias] May-aliases after instruction __retres = 0; are { a; b } { c; d }
[alias] May-alias graph after instruction __retres = 0; is
8:{ a } → 7:{ } 10:{ b } → 7:{ } 14:{ c } → 13:{ }
16:{ d } → 13:{ }
[alias] May-aliases at the end of function main: { a; b } { c; d }
[alias] May-alias graph at the end of function main:
8:{ a } → 7:{ } 10:{ b } → 7:{ } 14:{ c } → 13:{ }
16:{ d } → 13:{ }
[alias] Summary of function main:
formals: locals: a b c d __retres returns: __retres
state: { a; b } { c; d }
[alias] analysing function: swap
[alias] analysing instruction: int *z = (int *)0;
[alias] May-aliases after instruction int *z = (int *)0; are <none>
[alias] May-alias graph after instruction int *z = (int *)0; is <empty>
[alias] May-aliases at the end of function swap: { x; y; z }
[alias] May-alias graph at the end of function swap:
0:{ x; y; z } → 1:{ }
[alias] Summary of function swap:
formals: x y locals: z returns: <none> state: { x; y; z }
[alias] Analysis complete
[kernel] Parsing function2.c (with preprocessing)
[alias] analysing function: _Exit
[alias] May-aliases at the end of function _Exit: ⊥
[alias] May-alias graph at the end of function _Exit:
[alias] analysing function: abort
[alias] May-aliases at the end of function abort: ⊥
[alias] May-alias graph at the end of function abort:
[alias] analysing function: abs
[alias] May-aliases at the end of function abs: ⊥
[alias] May-alias graph at the end of function abs:
[alias] analysing function: at_quick_exit
[alias] May-aliases at the end of function at_quick_exit: ⊥
[alias] May-alias graph at the end of function at_quick_exit:
[alias] analysing function: atexit
[alias] May-aliases at the end of function atexit: ⊥
[alias] May-alias graph at the end of function atexit:
[alias] analysing function: atof
[alias] May-aliases at the end of function atof: ⊥
[alias] May-alias graph at the end of function atof:
[alias] analysing function: atoi
[alias] May-aliases at the end of function atoi: ⊥
[alias] May-alias graph at the end of function atoi:
[alias] analysing function: atol
[alias] May-aliases at the end of function atol: ⊥
[alias] May-alias graph at the end of function atol:
[alias] analysing function: atoll
[alias] May-aliases at the end of function atoll: ⊥
[alias] May-alias graph at the end of function atoll:
[alias] analysing function: bsearch
[alias] May-aliases at the end of function bsearch: ⊥
[alias] May-alias graph at the end of function bsearch:
[alias] analysing function: calloc
[alias] May-aliases at the end of function calloc: ⊥
[alias] May-alias graph at the end of function calloc:
[alias] analysing function: div
[alias] May-aliases at the end of function div: ⊥
[alias] May-alias graph at the end of function div:
[alias] analysing function: drand48
[alias] May-aliases at the end of function drand48: ⊥
[alias] May-alias graph at the end of function drand48:
[alias] analysing function: erand48
[alias] May-aliases at the end of function erand48: ⊥
[alias] May-alias graph at the end of function erand48:
[alias] analysing function: exit
[alias] May-aliases at the end of function exit: ⊥
[alias] May-alias graph at the end of function exit:
[alias] analysing function: free
[alias] May-aliases at the end of function free: ⊥
[alias] May-alias graph at the end of function free:
[alias] analysing function: getenv
[alias] May-aliases at the end of function getenv: ⊥
[alias] May-alias graph at the end of function getenv:
[alias] analysing function: jrand48
[alias] May-aliases at the end of function jrand48: ⊥
[alias] May-alias graph at the end of function jrand48:
[alias] analysing function: labs
[alias] May-aliases at the end of function labs: ⊥
[alias] May-alias graph at the end of function labs:
[alias] analysing function: lcong48
[alias] May-aliases at the end of function lcong48: ⊥
[alias] May-alias graph at the end of function lcong48:
[alias] analysing function: ldiv
[alias] May-aliases at the end of function ldiv: ⊥
[alias] May-alias graph at the end of function ldiv:
[alias] analysing function: llabs
[alias] May-aliases at the end of function llabs: ⊥
[alias] May-alias graph at the end of function llabs:
[alias] analysing function: lldiv
[alias] May-aliases at the end of function lldiv: ⊥
[alias] May-alias graph at the end of function lldiv:
[alias] analysing function: lrand48
[alias] May-aliases at the end of function lrand48: ⊥
[alias] May-alias graph at the end of function lrand48:
[alias] analysing function: main
[alias] analysing instruction: int *a = (int *)0;
[alias] May-aliases after instruction int *a = (int *)0; are <none>
[alias] May-alias graph after instruction int *a = (int *)0; is <empty>
[alias] analysing instruction: int *b = (int *)0;
[alias] May-aliases after instruction int *b = (int *)0; are <none>
[alias] May-alias graph after instruction int *b = (int *)0; is <empty>
[alias] analysing instruction: a = my_malloc(2);
[alias] analysing function: my_malloc
[alias] analysing instruction: int *res = (int *)0;
[alias] May-aliases after instruction int *res = (int *)0; are <none>
[alias] May-alias graph after instruction int *res = (int *)0; is <empty>
[alias] analysing instruction: res = (int *)malloc((size_t)size);
[alias] May-aliases after instruction res = (int *)malloc((size_t)size); are
<none>
[alias] May-alias graph after instruction res = (int *)malloc((size_t)size); is
0:{ res } → 1:{ }
[alias] May-aliases at the end of function my_malloc: <none>
[alias] May-alias graph at the end of function my_malloc:
0:{ res } → 1:{ }
[alias] Summary of function my_malloc:
formals: size locals: res returns: res state: <none>
[alias] May-aliases after instruction a = my_malloc(2); are <none>
[alias] May-alias graph after instruction a = my_malloc(2); is
4:{ a } → 3:{ }
[alias] analysing instruction: b = my_malloc(3);
[alias] May-aliases after instruction b = my_malloc(3); are <none>
[alias] May-alias graph after instruction b = my_malloc(3); is
4:{ a } → 3:{ } 8:{ b } → 7:{ }
[alias] analysing instruction: __retres = 0;
[alias] May-aliases after instruction __retres = 0; are <none>
[alias] May-alias graph after instruction __retres = 0; is
4:{ a } → 3:{ } 8:{ b } → 7:{ }
[alias] May-aliases at the end of function main: <none>
[alias] May-alias graph at the end of function main:
4:{ a } → 3:{ } 8:{ b } → 7:{ }
[alias] Summary of function main:
formals: locals: a b __retres returns: __retres state: <none>
[alias] analysing function: malloc
[alias] May-aliases at the end of function malloc: ⊥
[alias] May-alias graph at the end of function malloc:
[alias] analysing function: mblen
[alias] May-aliases at the end of function mblen: ⊥
[alias] May-alias graph at the end of function mblen:
[alias] analysing function: mbstowcs
[alias] May-aliases at the end of function mbstowcs: ⊥
[alias] May-alias graph at the end of function mbstowcs:
[alias] analysing function: mbtowc
[alias] May-aliases at the end of function mbtowc: ⊥
[alias] May-alias graph at the end of function mbtowc:
[alias] analysing function: mkstemp
[alias] May-aliases at the end of function mkstemp: ⊥
[alias] May-alias graph at the end of function mkstemp:
[alias] analysing function: mkstemps
[alias] May-aliases at the end of function mkstemps: ⊥
[alias] May-alias graph at the end of function mkstemps:
[alias] analysing function: mrand48
[alias] May-aliases at the end of function mrand48: ⊥
[alias] May-alias graph at the end of function mrand48:
[alias] analysing function: my_malloc
[alias] analysing instruction: int *res = (int *)0;
[alias] May-aliases after instruction int *res = (int *)0; are <none>
[alias] May-alias graph after instruction int *res = (int *)0; is <empty>
[alias] May-aliases at the end of function my_malloc: <none>
[alias] May-alias graph at the end of function my_malloc:
0:{ res } → 1:{ }
[alias] Summary of function my_malloc:
formals: size locals: res returns: res state: <none>
[alias] analysing function: nrand48
[alias] May-aliases at the end of function nrand48: ⊥
[alias] May-alias graph at the end of function nrand48:
[alias] analysing function: posix_memalign
[alias] May-aliases at the end of function posix_memalign: ⊥
[alias] May-alias graph at the end of function posix_memalign:
[alias] analysing function: putenv
[alias] May-aliases at the end of function putenv: ⊥
[alias] May-alias graph at the end of function putenv:
[alias] analysing function: qsort
[alias] May-aliases at the end of function qsort: ⊥
[alias] May-alias graph at the end of function qsort:
[alias] analysing function: quick_exit
[alias] May-aliases at the end of function quick_exit: ⊥
[alias] May-alias graph at the end of function quick_exit:
[alias] analysing function: rand
[alias] May-aliases at the end of function rand: ⊥
[alias] May-alias graph at the end of function rand:
[alias] analysing function: random
[alias] May-aliases at the end of function random: ⊥
[alias] May-alias graph at the end of function random:
[alias] analysing function: realloc
[alias] May-aliases at the end of function realloc: ⊥
[alias] May-alias graph at the end of function realloc:
[alias] analysing function: reallocarray
[alias] May-aliases at the end of function reallocarray: ⊥
[alias] May-alias graph at the end of function reallocarray:
[alias] analysing function: seed48
[alias] May-aliases at the end of function seed48: ⊥
[alias] May-alias graph at the end of function seed48:
[alias] analysing function: setenv
[alias] May-aliases at the end of function setenv: ⊥
[alias] May-alias graph at the end of function setenv:
[alias] analysing function: srand
[alias] May-aliases at the end of function srand: ⊥
[alias] May-alias graph at the end of function srand:
[alias] analysing function: srand48
[alias] May-aliases at the end of function srand48: ⊥
[alias] May-alias graph at the end of function srand48:
[alias] analysing function: srandom
[alias] May-aliases at the end of function srandom: ⊥
[alias] May-alias graph at the end of function srandom:
[alias] analysing function: strtod
[alias] May-aliases at the end of function strtod: ⊥
[alias] May-alias graph at the end of function strtod:
[alias] analysing function: strtof
[alias] May-aliases at the end of function strtof: ⊥
[alias] May-alias graph at the end of function strtof:
[alias] analysing function: strtol
[alias] May-aliases at the end of function strtol: ⊥
[alias] May-alias graph at the end of function strtol:
[alias] analysing function: strtold
[alias] May-aliases at the end of function strtold: ⊥
[alias] May-alias graph at the end of function strtold:
[alias] analysing function: strtoll
[alias] May-aliases at the end of function strtoll: ⊥
[alias] May-alias graph at the end of function strtoll:
[alias] analysing function: strtoul
[alias] May-aliases at the end of function strtoul: ⊥
[alias] May-alias graph at the end of function strtoul:
[alias] analysing function: strtoull
[alias] May-aliases at the end of function strtoull: ⊥
[alias] May-alias graph at the end of function strtoull:
[alias] analysing function: system
[alias] May-aliases at the end of function system: ⊥
[alias] May-alias graph at the end of function system:
[alias] analysing function: unsetenv
[alias] May-aliases at the end of function unsetenv: ⊥
[alias] May-alias graph at the end of function unsetenv:
[alias] analysing function: wcstombs
[alias] May-aliases at the end of function wcstombs: ⊥
[alias] May-alias graph at the end of function wcstombs:
[alias] analysing function: wctomb
[alias] May-aliases at the end of function wctomb: ⊥
[alias] May-alias graph at the end of function wctomb:
[alias] Analysis complete
......@@ -2,26 +2,56 @@
[alias] analysing function: f1
[alias] analysing instruction: int *tmp = x;
[alias] May-aliases after instruction int *tmp = x; are { x; tmp }
[alias] May-alias graph after instruction int *tmp = x; is
0:{ x; tmp } → 1:{ }
[alias] analysing instruction: x = y;
[alias] May-aliases after instruction x = y; are { x; y; tmp }
[alias] May-alias graph after instruction x = y; is 0:{ x; y; tmp } → 1:{ }
[alias] analysing instruction: y = tmp;
[alias] May-aliases after instruction y = tmp; are { x; y; tmp }
[alias] May-alias graph after instruction y = tmp; is 0:{ x; y; tmp } → 1:{ }
[alias] analysing instruction: __retres = (void *)0;
[alias] May-aliases after instruction __retres = (void *)0; are { x; y; tmp }
[alias] May-alias graph after instruction __retres = (void *)0; is
0:{ x; y; tmp } → 1:{ }
[alias] May-aliases at the end of function f1: { x; y; tmp }
[alias] May-alias graph at the end of function f1:
0:{ x; y; tmp } → 1:{ }
[alias] Summary of function f1:
formals: x y locals: tmp __retres returns: __retres
state: { x; y; tmp }
[alias] analysing function: main
[alias] analysing instruction: int *a = (int *)0;
[alias] May-aliases after instruction int *a = (int *)0; are <none>
[alias] May-alias graph after instruction int *a = (int *)0; is <empty>
[alias] analysing instruction: int *b = (int *)0;
[alias] May-aliases after instruction int *b = (int *)0; are <none>
[alias] May-alias graph after instruction int *b = (int *)0; is <empty>
[alias] analysing instruction: int *c = (int *)0;
[alias] May-aliases after instruction int *c = (int *)0; are <none>
[alias] May-alias graph after instruction int *c = (int *)0; is <empty>
[alias] analysing instruction: int *d = (int *)0;
[alias] May-aliases after instruction int *d = (int *)0; are <none>
[alias] May-alias graph after instruction int *d = (int *)0; is <empty>
[alias] analysing instruction: f1(a,b);
[alias] May-aliases after instruction f1(a,b); are { a; b }
[alias] May-alias graph after instruction f1(a,b); is
16:{ a } → 9:{ } 18:{ b } → 9:{ }
[alias] analysing instruction: f1(c,d);
[alias] May-aliases after instruction f1(c,d); are { a; b } { c; d }
[alias] May-alias graph after instruction f1(c,d); is
16:{ a } → 9:{ } 18:{ b } → 9:{ } 28:{ c } → 21:{ }
30:{ d } → 21:{ }
[alias] analysing instruction: __retres = 0;
[alias] May-aliases after instruction __retres = 0; are { a; b } { c; d }
[alias] May-alias graph after instruction __retres = 0; is
16:{ a } → 9:{ } 18:{ b } → 9:{ } 28:{ c } → 21:{ }
30:{ d } → 21:{ }
[alias] May-aliases at the end of function main: { a; b } { c; d }
[alias] May-alias graph at the end of function main:
16:{ a } → 9:{ } 18:{ b } → 9:{ } 28:{ c } → 21:{ }
30:{ d } → 21:{ }
[alias] Summary of function main:
formals: locals: a b c d __retres returns: __retres
state: { a; b } { c; d }
[alias] Analysis complete
[kernel] Parsing function4.c (with preprocessing)
[alias] analysing function: addr
[alias] May-aliases at the end of function addr: <none>
[alias] May-alias graph at the end of function addr:
<empty>
[alias] Summary of function addr:
formals: x locals: returns: x state: <none>
[alias] analysing function: main
[alias] analysing instruction: int *a = (int *)0;
[alias] May-aliases after instruction int *a = (int *)0; are <none>
[alias] May-alias graph after instruction int *a = (int *)0; is <empty>
[alias] analysing instruction: int *b = (int *)0;
[alias] May-aliases after instruction int *b = (int *)0; are <none>
[alias] May-alias graph after instruction int *b = (int *)0; is <empty>
[alias] analysing instruction: int c = 0;
[alias] May-aliases after instruction int c = 0; are <none>
[alias] May-alias graph after instruction int c = 0; is <empty>
[alias] analysing instruction: a = addr(& c);
[alias] May-aliases after instruction a = addr(& c); are <none>
[alias] May-alias graph after instruction a = addr(& c); is
4:{ a } → 3:{ c } 7:{ } → 3:{ c }
[alias] analysing instruction: b = & c;
[alias] May-aliases after instruction b = & c; are { a; b }
[alias] May-alias graph after instruction b = & c; is
4:{ a } → 9:{ c } 7:{ } → 9:{ c } 8:{ b } → 9:{ c }
[alias] analysing instruction: __retres = 0;
[alias] May-aliases after instruction __retres = 0; are { a; b }
[alias] May-alias graph after instruction __retres = 0; is
4:{ a } → 9:{ c } 7:{ } → 9:{ c } 8:{ b } → 9:{ c }
[alias] May-aliases at the end of function main: { a; b }
[alias] May-alias graph at the end of function main:
4:{ a } → 9:{ c } 7:{ } → 9:{ c } 8:{ b } → 9:{ c }
[alias] Summary of function main:
formals: locals: a→{ c } b→{ c } c __retres
returns: __retres state: { a; b }
[alias] Analysis complete
......@@ -2,20 +2,43 @@
[alias] analysing function: choice
[alias] analysing instruction: int c = 0;
[alias] May-aliases after instruction int c = 0; are <none>
[alias] May-alias graph after instruction int c = 0; is <empty>
[alias] analysing instruction: __retres = x;
[alias] May-aliases after instruction __retres = x; are { x; __retres }
[alias] May-alias graph after instruction __retres = x; is
0:{ x; __retres } → 1:{ }
[alias] analysing instruction: __retres = y;
[alias] May-aliases after instruction __retres = y; are { y; __retres }
[alias] May-alias graph after instruction __retres = y; is
4:{ y; __retres } → 5:{ }
[alias] May-aliases at the end of function choice: { x; y; __retres }
[alias] May-alias graph at the end of function choice:
0:{ x; y; __retres } → 1:{ }
[alias] Summary of function choice:
formals: x y locals: c __retres returns: __retres
state: { x; y; __retres }
[alias] analysing function: main
[alias] analysing instruction: int *a = (int *)0;
[alias] May-aliases after instruction int *a = (int *)0; are <none>
[alias] May-alias graph after instruction int *a = (int *)0; is <empty>
[alias] analysing instruction: int *b = (int *)0;
[alias] May-aliases after instruction int *b = (int *)0; are <none>
[alias] May-alias graph after instruction int *b = (int *)0; is <empty>
[alias] analysing instruction: int *c = (int *)0;
[alias] May-aliases after instruction int *c = (int *)0; are <none>
[alias] May-alias graph after instruction int *c = (int *)0; is <empty>
[alias] analysing instruction: c = choice(a,b);
[alias] May-aliases after instruction c = choice(a,b); are { a; b; c }
[alias] May-alias graph after instruction c = choice(a,b); is
10:{ c } → 9:{ } 12:{ a } → 9:{ } 14:{ b } → 9:{ }
[alias] analysing instruction: __retres = 0;
[alias] May-aliases after instruction __retres = 0; are { a; b; c }
[alias] May-alias graph after instruction __retres = 0; is
10:{ c } → 9:{ } 12:{ a } → 9:{ } 14:{ b } → 9:{ }
[alias] May-aliases at the end of function main: { a; b; c }
[alias] May-alias graph at the end of function main:
10:{ c } → 9:{ } 12:{ a } → 9:{ } 14:{ b } → 9:{ }
[alias] Summary of function main:
formals: locals: a b c __retres returns: __retres
state: { a; b; c }
[alias] Analysis complete
......@@ -2,30 +2,54 @@
[alias] analysing function: main
[alias] analysing instruction: int *a = (int *)0;
[alias] May-aliases after instruction int *a = (int *)0; are <none>
[alias] May-alias graph after instruction int *a = (int *)0; is <empty>
[alias] analysing instruction: int *b = (int *)0;
[alias] May-aliases after instruction int *b = (int *)0; are <none>
[alias] May-alias graph after instruction int *b = (int *)0; is <empty>
[alias] analysing instruction: int *c = (int *)0;
[alias] May-aliases after instruction int *c = (int *)0; are <none>
[alias] May-alias graph after instruction int *c = (int *)0; is <empty>
[alias] analysing instruction: int *d = (int *)0;
[alias] May-aliases after instruction int *d = (int *)0; are <none>
[alias] May-alias graph after instruction int *d = (int *)0; is <empty>
[alias] analysing instruction: swap(a,b);
[alias] analysing function: swap
[alias] analysing instruction: int z = 0;
[alias] May-aliases after instruction int z = 0; are <none>
[alias] May-alias graph after instruction int z = 0; is <empty>
[alias] analysing instruction: z = *x;
[alias] May-aliases after instruction z = *x; are <none>
[alias] May-alias graph after instruction z = *x; is <empty>
[alias] analysing instruction: *x = *y;
[alias] May-aliases after instruction *x = *y; are <none>
[alias] May-alias graph after instruction *x = *y; is <empty>
[alias] analysing instruction: *y = z;
[alias] May-aliases after instruction *y = z; are <none>
[alias] May-alias graph after instruction *y = z; is <empty>
[alias] May-aliases at the end of function swap: <none>
[alias] May-alias graph at the end of function swap:
<empty>
[alias] Summary of function swap:
[alias] May-aliases after instruction swap(a,b); are <none>
[alias] May-alias graph after instruction swap(a,b); is <empty>
[alias] analysing instruction: swap(c,d);
[alias] May-aliases after instruction swap(c,d); are <none>
[alias] May-alias graph after instruction swap(c,d); is <empty>
[alias] analysing instruction: __retres = 0;
[alias] May-aliases after instruction __retres = 0; are <none>
[alias] May-alias graph after instruction __retres = 0; is <empty>
[alias] May-aliases at the end of function main: <none>
[alias] May-alias graph at the end of function main:
<empty>
[alias] Summary of function main:
formals: locals: a b c d __retres returns: __retres
state: <none>
[alias] analysing function: swap
[alias] analysing instruction: int z = 0;
[alias] May-aliases after instruction int z = 0; are <none>
[alias] May-alias graph after instruction int z = 0; is <empty>
[alias] May-aliases at the end of function swap: <none>
[alias] May-alias graph at the end of function swap:
<empty>
[alias] Summary of function swap:
[alias] Analysis complete
......@@ -2,18 +2,33 @@
[alias] analysing function: f
[alias] analysing instruction: int y = 0;
[alias] May-aliases after instruction int y = 0; are <none>
[alias] May-alias graph after instruction int y = 0; is <empty>
[alias] analysing instruction: *x = y;
[alias] May-aliases after instruction *x = y; are <none>
[alias] May-alias graph after instruction *x = y; is <empty>
[alias] May-aliases at the end of function f: <none>
[alias] May-alias graph at the end of function f:
<empty>
[alias] Summary of function f:
[alias] analysing function: main
[alias] analysing instruction: int *a = (int *)0;
[alias] May-aliases after instruction int *a = (int *)0; are <none>
[alias] May-alias graph after instruction int *a = (int *)0; is <empty>
[alias] analysing instruction: int *b = (int *)0;
[alias] May-aliases after instruction int *b = (int *)0; are <none>
[alias] May-alias graph after instruction int *b = (int *)0; is <empty>
[alias] analysing instruction: f(a);
[alias] May-aliases after instruction f(a); are <none>
[alias] May-alias graph after instruction f(a); is <empty>
[alias] analysing instruction: f(b);
[alias] May-aliases after instruction f(b); are <none>
[alias] May-alias graph after instruction f(b); is <empty>
[alias] analysing instruction: __retres = 0;
[alias] May-aliases after instruction __retres = 0; are <none>
[alias] May-alias graph after instruction __retres = 0; is <empty>
[alias] May-aliases at the end of function main: <none>
[alias] May-alias graph at the end of function main:
<empty>
[alias] Summary of function main:
formals: locals: a b __retres returns: __retres state: <none>
[alias] Analysis complete
......@@ -2,18 +2,37 @@
[alias] analysing function: main
[alias] analysing instruction: int l[1] = {0};
[alias] May-aliases after instruction int l[1] = {0}; are <none>
[alias] May-alias graph after instruction int l[1] = {0}; is <empty>
[alias] analysing instruction: int *n_0 = & l[1];
[alias] May-aliases after instruction int *n_0 = & l[1]; are <none>
[alias] May-alias graph after instruction int *n_0 = & l[1]; is
0:{ n_0 } → 1:{ l[0..] }
[alias] analysing instruction: n_0 = & l[1] + 0;
[alias] May-aliases after instruction n_0 = & l[1] + 0; are <none>
[alias] May-alias graph after instruction n_0 = & l[1] + 0; is
0:{ n_0 } → 1:{ l[0..] }
[alias] analysing instruction: int w = 0;
[alias] May-aliases after instruction int w = 0; are <none>
[alias] May-alias graph after instruction int w = 0; is
0:{ n_0 } → 1:{ l[0..] }
[alias] analysing instruction: l[0] = *(& l[1] + 0);
[alias] May-aliases after instruction l[0] = *(& l[1] + 0); are <none>
[alias] May-alias graph after instruction l[0] = *(& l[1] + 0); is
0:{ n_0 } → 1:{ l[0..] }
[alias] analysing instruction: int l[1] = {0};
[alias] May-aliases after instruction int l[1] = {0}; are <none>
[alias] May-alias graph after instruction int l[1] = {0}; is
0:{ n_0 } → 1:{ l[0..] }
[alias] analysing instruction: int *n_0 = & l[1];
[alias] May-aliases after instruction int *n_0 = & l[1]; are <none>
[alias] May-alias graph after instruction int *n_0 = & l[1]; is
0:{ n_0 } → 1:{ l[0..] }
[alias:no-return] loop.c:4: Warning:
function main does not return; analysis may be unsound
[alias] May-aliases at the end of function main: <none>
[alias] May-alias graph at the end of function main:
<empty>
[alias] Summary of function main:
formals: locals: l n_0 w __retres returns: __retres
state: <none>
[alias] Analysis complete
......@@ -2,16 +2,40 @@
[alias] analysing function: main
[alias] analysing instruction: a = & x;
[alias] May-aliases after instruction a = & x; are <none>
[alias] May-alias graph after instruction a = & x; is 0:{ a } → 1:{ x }
[alias] analysing instruction: b = & y;
[alias] May-aliases after instruction b = & y; are { *b; y }
[alias] May-alias graph after instruction b = & y; is
0:{ a } → 1:{ x } 4:{ b } → 5:{ y } 5:{ y } → 7:{ }
[alias] analysing instruction: y = & z;
[alias] May-aliases after instruction y = & z; are { *b; y }
[alias] May-alias graph after instruction y = & z; is
0:{ a } → 1:{ x } 4:{ b } → 5:{ y } 5:{ y } → 7:{ z }
[alias] analysing instruction: y = & x;
[alias] May-aliases after instruction y = & x; are { *b; a; y }
[alias] May-alias graph after instruction y = & x; is
0:{ a } → 7:{ x } 4:{ b } → 5:{ y } 5:{ y } → 7:{ x }
[alias] analysing instruction: c = & y;
[alias] May-aliases after instruction c = & y; are { *b; *c; a; y } { b; c }
[alias] May-alias graph after instruction c = & y; is
0:{ a } → 1:{ x; z } 4:{ b } → 13:{ y } 12:{ c } → 13:{ y }
13:{ y } → 1:{ x; z }
[alias] analysing instruction: *y = 4;
[alias] May-aliases after instruction *y = 4; are { *b; *c; a; y } { b; c }
[alias] May-alias graph after instruction *y = 4; is
0:{ a } → 1:{ x; z } 4:{ b } → 13:{ y } 12:{ c } → 13:{ y }
13:{ y } → 1:{ x; z }
[alias] analysing instruction: __retres = 0;
[alias] May-aliases after instruction __retres = 0; are { *b; *c; a; y } { b; c }
[alias] May-alias graph after instruction __retres = 0; is
0:{ a } → 1:{ x; z } 4:{ b } → 13:{ y } 12:{ c } → 13:{ y }
13:{ y } → 1:{ x; z }
[alias] May-aliases at the end of function main: { *b; *c; a; y } { b; c }
[alias] May-alias graph at the end of function main:
0:{ a } → 1:{ x; z } 4:{ b } → 13:{ y } 12:{ c } → 13:{ y }
13:{ y } → 1:{ x; z }
[alias] Summary of function main:
formals:
locals: a→{ x; z } b→{ y } c→{ y } y→{ x; z } x z p __retres
returns: __retres state: { *b; *c; a; y } { b; c }
[alias] Analysis complete
......@@ -2,18 +2,35 @@
[alias] analysing function: main
[alias] analysing instruction: int *a = (int *)0;
[alias] May-aliases after instruction int *a = (int *)0; are <none>
[alias] May-alias graph after instruction int *a = (int *)0; is <empty>
[alias] analysing instruction: int *b = (int *)0;
[alias] May-aliases after instruction int *b = (int *)0; are <none>
[alias] May-alias graph after instruction int *b = (int *)0; is <empty>
[alias] analysing instruction: int *c = (int *)0;
[alias] May-aliases after instruction int *c = (int *)0; are <none>
[alias] May-alias graph after instruction int *c = (int *)0; is <empty>
[alias] analysing instruction: int *d = (int *)0;
[alias] May-aliases after instruction int *d = (int *)0; are <none>
[alias] May-alias graph after instruction int *d = (int *)0; is <empty>
[alias] analysing instruction: int e = 0;
[alias] May-aliases after instruction int e = 0; are <none>
[alias] May-alias graph after instruction int e = 0; is <empty>
[alias] analysing instruction: case 1: a = d;
[alias] May-aliases after instruction case 1: a = d; are { a; d }
[alias] May-alias graph after instruction case 1: a = d; is
0:{ a; d } → 1:{ }
[alias] analysing instruction: case 2: b = d;
[alias] May-aliases after instruction case 2: b = d; are { b; d }
[alias] May-alias graph after instruction case 2: b = d; is
4:{ b; d } → 5:{ }
[alias] analysing instruction: __retres = 0;
[alias] May-aliases after instruction __retres = 0; are { a; b; d }
[alias] May-alias graph after instruction __retres = 0; is
0:{ a; b; d } → 1:{ }
[alias] May-aliases at the end of function main: { a; b; d }
[alias] May-alias graph at the end of function main:
0:{ a; b; d } → 1:{ }
[alias] Summary of function main:
formals: locals: a b c d e __retres returns: __retres
state: { a; b; d }
[alias] Analysis complete
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment