diff --git a/src/plugins/alias/tests/basic/assignment5.c b/src/plugins/alias/tests/basic/assignment5.c new file mode 100644 index 0000000000000000000000000000000000000000..4df3b55d6226f888dfc52b993f3f17a63394355b --- /dev/null +++ b/src/plugins/alias/tests/basic/assignment5.c @@ -0,0 +1,13 @@ +// triple pointer assignment with some tricky alias +// { *b; *d } are aliased +// { b; d; *a; *c } are aliased + + +int main () { + + int ***a=0, **b=0, *c=0, *d=0; + *a = b; + *b = c; + d = **a; + return 0; +} diff --git a/src/plugins/alias/tests/basic/oracle/assignment1.res.oracle b/src/plugins/alias/tests/basic/oracle/assignment1.res.oracle index 9fcdcf745ba47d58dda9326d6f7f9fed73eb1980..b55adb39bc503341998257ff7ffebeada51cd746 100644 --- a/src/plugins/alias/tests/basic/oracle/assignment1.res.oracle +++ b/src/plugins/alias/tests/basic/oracle/assignment1.res.oracle @@ -1,13 +1,5 @@ [kernel] Parsing assignment1.c (with preprocessing) [alias] Parsing done -[alias] ANALYSING int *a = (int *)0; -[alias] ANALYSING int *b = (int *)0; -[alias] ANALYSING int *c = (int *)0; -[alias] ANALYSING int *d = (int *)0; -[alias] ANALYSING a = b; -[alias] ANALYSING b = c; -[alias] ANALYSING a = d; -[alias] ANALYSING __retres = 0; [alias] May-aliases at the end of function main: <list of may-alias> {a; b; c; d; } are aliased diff --git a/src/plugins/alias/tests/basic/oracle/assignment2.res.oracle b/src/plugins/alias/tests/basic/oracle/assignment2.res.oracle index e3cc9e045e0af05d6903c5c1889ed14e2a85011d..5622c27520a1ccac2468bfc319ffd5c8006b3456 100644 --- a/src/plugins/alias/tests/basic/oracle/assignment2.res.oracle +++ b/src/plugins/alias/tests/basic/oracle/assignment2.res.oracle @@ -1,13 +1,5 @@ [kernel] Parsing assignment2.c (with preprocessing) [alias] Parsing done -[alias] ANALYSING int **a = (int **)0; -[alias] ANALYSING int *b = (int *)0; -[alias] ANALYSING int **c = (int **)0; -[alias] ANALYSING int *d = (int *)0; -[alias] ANALYSING *a = b; -[alias] ANALYSING *c = d; -[alias] ANALYSING a = c; -[alias] ANALYSING __retres = 0; [alias] May-aliases at the end of function main: <list of may-alias> {a; c; } are aliased diff --git a/src/plugins/alias/tests/basic/oracle/assignment3.res.oracle b/src/plugins/alias/tests/basic/oracle/assignment3.res.oracle index 1ee26eabfacf2d9373ea4f6dc9ff7b805ace05bd..da2726524c603fb5afd67873d99af83bc93626e7 100644 --- a/src/plugins/alias/tests/basic/oracle/assignment3.res.oracle +++ b/src/plugins/alias/tests/basic/oracle/assignment3.res.oracle @@ -1,11 +1,5 @@ [kernel] Parsing assignment3.c (with preprocessing) [alias] Parsing done -[alias] ANALYSING int *a = (int *)0; -[alias] ANALYSING int b = 0; -[alias] ANALYSING int *c = (int *)0; -[alias] ANALYSING a = & b; -[alias] ANALYSING c = & b; -[alias] ANALYSING __retres = 0; [alias] May-aliases at the end of function main: <list of may-alias> {a; c; } are aliased diff --git a/src/plugins/alias/tests/basic/oracle/assignment4.res.oracle b/src/plugins/alias/tests/basic/oracle/assignment4.res.oracle index 1ba58031db9f3d4d9d4938efa5a4cde1ac0f00db..9390fa35323d0773d7f1cc8789da105081d6da4c 100644 --- a/src/plugins/alias/tests/basic/oracle/assignment4.res.oracle +++ b/src/plugins/alias/tests/basic/oracle/assignment4.res.oracle @@ -1,13 +1,5 @@ [kernel] Parsing assignment4.c (with preprocessing) [alias] Parsing done -[alias] ANALYSING int **a = (int **)0; -[alias] ANALYSING int *b = (int *)0; -[alias] ANALYSING int **c = (int **)0; -[alias] ANALYSING int *d = (int *)0; -[alias] ANALYSING *a = b; -[alias] ANALYSING *c = d; -[alias] ANALYSING b = d; -[alias] ANALYSING __retres = 0; [alias] May-aliases at the end of function main: <list of may-alias> {b; d; *a; *c; } are aliased diff --git a/src/plugins/alias/tests/basic/oracle/assignment5.res.oracle b/src/plugins/alias/tests/basic/oracle/assignment5.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..3e3844d9843cc3db7b10a83cda09acc78cfa3525 --- /dev/null +++ b/src/plugins/alias/tests/basic/oracle/assignment5.res.oracle @@ -0,0 +1,55 @@ +[kernel] Parsing assignment5.c (with preprocessing) +[alias] Parsing done +[alias] May-aliases at the end of function main: + <list of may-alias> + {c; *b; } are aliased + {b; *a; } are aliased + {d; **a; } are aliased + <end of list> +[alias] Functions done +Before statement int ***a = (int ***)0; : + <list of may-alias> +<end of list> + +Before statement int **b = (int **)0; : + <list of may-alias> +<end of list> + +Before statement int *c = (int *)0; : + <list of may-alias> +<end of list> + +Before statement int *d = (int *)0; : + <list of may-alias> +<end of list> + +Before statement *a = b; : + <list of may-alias> +<end of list> + +Before statement *b = c; : + <list of may-alias> +{b; *a; } are aliased +<end of list> + +Before statement d = *(*a); : + <list of may-alias> +{c; *b; } are aliased +{b; *a; } are aliased +<end of list> + +Before statement __retres = 0; : + <list of may-alias> +{c; *b; } are aliased +{b; *a; } are aliased +{d; **a; } are aliased +<end of list> + +Before statement return __retres; : + <list of may-alias> +{c; *b; } are aliased +{b; *a; } are aliased +{d; **a; } are aliased +<end of list> + +[alias] Analysis complete diff --git a/src/plugins/alias/tests/basic/oracle/cast1.res.oracle b/src/plugins/alias/tests/basic/oracle/cast1.res.oracle index f4190f4010e94d6e425c9f72cdccf17c54dde5e9..8e069c1b58700e9bbcca338be330a732ba9cf08e 100644 --- a/src/plugins/alias/tests/basic/oracle/cast1.res.oracle +++ b/src/plugins/alias/tests/basic/oracle/cast1.res.oracle @@ -1,12 +1,5 @@ [kernel] Parsing cast1.c (with preprocessing) [alias] Parsing done -[alias] ANALYSING int *a = (int *)0; -[alias] ANALYSING int *b = (int *)0; -[alias] ANALYSING float *c = (float *)0; -[alias] ANALYSING float *d = (float *)0; -[alias] ANALYSING a = (int *)c; -[alias] ANALYSING d = (float *)b; -[alias] ANALYSING __retres = 0; [alias] May-aliases at the end of function main: <list of may-alias> {a; c; } are aliased diff --git a/src/plugins/alias/tests/basic/oracle/conditional1.res.oracle b/src/plugins/alias/tests/basic/oracle/conditional1.res.oracle index 8c4054f509183e23305c45d4e323c8a4ba269350..ff5ca3488e7d78eba00e7c046c0d4f881d39ad52 100644 --- a/src/plugins/alias/tests/basic/oracle/conditional1.res.oracle +++ b/src/plugins/alias/tests/basic/oracle/conditional1.res.oracle @@ -1,12 +1,5 @@ [kernel] Parsing conditional1.c (with preprocessing) [alias] Parsing done -[alias] ANALYSING int *a = (int *)0; -[alias] ANALYSING int *b = (int *)0; -[alias] ANALYSING int *c = (int *)0; -[alias] ANALYSING a = b; -[alias] ANALYSING a = c; -[alias] ANALYSING *a = 4; -[alias] ANALYSING __retres = 0; [alias] May-aliases at the end of function main: <list of may-alias> {a; b; c; } are aliased diff --git a/src/plugins/alias/tests/basic/oracle/conditional2.res.oracle b/src/plugins/alias/tests/basic/oracle/conditional2.res.oracle index 8debbdfefd107cf1075309232181b3665e3a4d6c..efc3b0b4b1887b3f17d7ef129a67826a940c8794 100644 --- a/src/plugins/alias/tests/basic/oracle/conditional2.res.oracle +++ b/src/plugins/alias/tests/basic/oracle/conditional2.res.oracle @@ -1,11 +1,5 @@ [kernel] Parsing conditional2.c (with preprocessing) [alias] Parsing done -[alias] ANALYSING b = & c; -[alias] ANALYSING c = & d; -[alias] ANALYSING d = & e; -[alias] ANALYSING a = b; -[alias] ANALYSING a = & c; -[alias] ANALYSING __retres = 0; [alias] May-aliases at the end of function main: <list of may-alias> {d; *c; } are aliased diff --git a/src/plugins/alias/tests/basic/oracle/function1.res.oracle b/src/plugins/alias/tests/basic/oracle/function1.res.oracle index db2f3c1b01082415ea596f2199cb1a3c9b8a2381..847cf8fe8e17ab4c261b19ccac290707ab7a73c2 100644 --- a/src/plugins/alias/tests/basic/oracle/function1.res.oracle +++ b/src/plugins/alias/tests/basic/oracle/function1.res.oracle @@ -1,22 +1,10 @@ [kernel] Parsing function1.c (with preprocessing) [alias] Parsing done -[alias] ANALYSING int *a = (int *)0; -[alias] ANALYSING int *b = (int *)0; -[alias] ANALYSING int *c = (int *)0; -[alias] ANALYSING int *d = (int *)0; -[alias] ANALYSING swap(a,b); -[alias] ANALYSING int *z = (int *)0; -[alias] ANALYSING z = x; -[alias] ANALYSING x = y; -[alias] ANALYSING y = z; -[alias] ANALYSING swap(c,d); -[alias] ANALYSING __retres = 0; [alias] May-aliases at the end of function main: <list of may-alias> {a; b; } are aliased {c; d; } are aliased <end of list> -[alias] ANALYSING int *z = (int *)0; [alias] Functions done Before statement int *z = (int *)0; : <list of may-alias> diff --git a/src/plugins/alias/tests/basic/oracle/function2.res.oracle b/src/plugins/alias/tests/basic/oracle/function2.res.oracle index 5a9efeef4aeda564a74718a947e717bca93c4364..b69f7452c5d8e31b5267fc41100f9d898daad0c2 100644 --- a/src/plugins/alias/tests/basic/oracle/function2.res.oracle +++ b/src/plugins/alias/tests/basic/oracle/function2.res.oracle @@ -1,16 +1,8 @@ [kernel] Parsing function2.c (with preprocessing) [alias] Parsing done -[alias] ANALYSING int *a = (int *)0; -[alias] ANALYSING int *b = (int *)0; -[alias] ANALYSING a = my_malloc(2); -[alias] ANALYSING int *res = (int *)0; -[alias] ANALYSING res = (int *)malloc((size_t)size); -[alias] ANALYSING b = my_malloc(3); -[alias] ANALYSING __retres = 0; [alias] May-aliases at the end of function main: <list of may-alias> <end of list> -[alias] ANALYSING int *res = (int *)0; [alias] Functions done Before statement int *res = (int *)0; : <list of may-alias> diff --git a/src/plugins/alias/tests/basic/oracle/function3.res.oracle b/src/plugins/alias/tests/basic/oracle/function3.res.oracle index 91d9f8367ce89905324318739031280e0f135841..a2fb570cbb1f0af32878691f5e73160c7073e62a 100644 --- a/src/plugins/alias/tests/basic/oracle/function3.res.oracle +++ b/src/plugins/alias/tests/basic/oracle/function3.res.oracle @@ -1,16 +1,5 @@ [kernel] Parsing function3.c (with preprocessing) [alias] Parsing done -[alias] ANALYSING int *tmp = x; -[alias] ANALYSING x = y; -[alias] ANALYSING y = tmp; -[alias] ANALYSING __retres = (void *)0; -[alias] ANALYSING int *a = (int *)0; -[alias] ANALYSING int *b = (int *)0; -[alias] ANALYSING int *c = (int *)0; -[alias] ANALYSING int *d = (int *)0; -[alias] ANALYSING f1(a,b); -[alias] ANALYSING f1(c,d); -[alias] ANALYSING __retres = 0; [alias] May-aliases at the end of function main: <list of may-alias> {a; b; } are aliased diff --git a/src/plugins/alias/tests/basic/oracle/function4.res.oracle b/src/plugins/alias/tests/basic/oracle/function4.res.oracle index 930a84a3723f44f2880cd7c1f6db78bc7834fdd1..eecac13aecd8e76158ea0359239a833a41f13cc2 100644 --- a/src/plugins/alias/tests/basic/oracle/function4.res.oracle +++ b/src/plugins/alias/tests/basic/oracle/function4.res.oracle @@ -1,11 +1,5 @@ [kernel] Parsing function4.c (with preprocessing) [alias] Parsing done -[alias] ANALYSING int *a = (int *)0; -[alias] ANALYSING int *b = (int *)0; -[alias] ANALYSING int c = 0; -[alias] ANALYSING a = addr(& c); -[alias] ANALYSING b = & c; -[alias] ANALYSING __retres = 0; [alias] May-aliases at the end of function main: <list of may-alias> {a; b; } are aliased diff --git a/src/plugins/alias/tests/basic/oracle/function5.res.oracle b/src/plugins/alias/tests/basic/oracle/function5.res.oracle index 1c9711dd000d300cd99c137f1c4b9ef25dcf2bbf..1283a1569ce14ee6bae2f434ae68746e242a6f53 100644 --- a/src/plugins/alias/tests/basic/oracle/function5.res.oracle +++ b/src/plugins/alias/tests/basic/oracle/function5.res.oracle @@ -1,13 +1,5 @@ [kernel] Parsing function5.c (with preprocessing) [alias] Parsing done -[alias] ANALYSING int c = 0; -[alias] ANALYSING __retres = x; -[alias] ANALYSING __retres = y; -[alias] ANALYSING int *a = (int *)0; -[alias] ANALYSING int *b = (int *)0; -[alias] ANALYSING int *c = (int *)0; -[alias] ANALYSING c = choice(a,b); -[alias] ANALYSING __retres = 0; [alias] May-aliases at the end of function main: <list of may-alias> {a; b; c; } are aliased diff --git a/src/plugins/alias/tests/basic/oracle/switch1.res.oracle b/src/plugins/alias/tests/basic/oracle/switch1.res.oracle index 6c39cecb009d6b55e929e7a1b5fa2c10ac348439..bc6ac04a163ec844f7e4a009c278e2ffe821d10a 100644 --- a/src/plugins/alias/tests/basic/oracle/switch1.res.oracle +++ b/src/plugins/alias/tests/basic/oracle/switch1.res.oracle @@ -1,13 +1,5 @@ [kernel] Parsing switch1.c (with preprocessing) [alias] Parsing done -[alias] ANALYSING int *a = (int *)0; -[alias] ANALYSING int *b = (int *)0; -[alias] ANALYSING int *c = (int *)0; -[alias] ANALYSING int *d = (int *)0; -[alias] ANALYSING int e = 0; -[alias] ANALYSING case 1: a = d; -[alias] ANALYSING case 2: b = d; -[alias] ANALYSING __retres = 0; [alias] May-aliases at the end of function main: <list of may-alias> {a; b; d; } are aliased diff --git a/src/plugins/alias/tests/basic/oracle/switch2.res.oracle b/src/plugins/alias/tests/basic/oracle/switch2.res.oracle index 8b47ccbacd485c046f6789f0e85bda36b5ebc9bf..76bc912fed426956762adb5d2e6f776ec79f406e 100644 --- a/src/plugins/alias/tests/basic/oracle/switch2.res.oracle +++ b/src/plugins/alias/tests/basic/oracle/switch2.res.oracle @@ -1,14 +1,5 @@ [kernel] Parsing switch2.c (with preprocessing) [alias] Parsing done -[alias] ANALYSING int *a = (int *)0; -[alias] ANALYSING int *b = (int *)0; -[alias] ANALYSING int *c = (int *)0; -[alias] ANALYSING int *d = (int *)0; -[alias] ANALYSING int e = 0; -[alias] ANALYSING case 1: a = d; -[alias] ANALYSING case 2: b = d; -[alias] ANALYSING default: c = d; -[alias] ANALYSING __retres = 0; [alias] May-aliases at the end of function main: <list of may-alias> {a; b; c; d; } are aliased diff --git a/src/plugins/alias/tests/basic/oracle/while_for1.res.oracle b/src/plugins/alias/tests/basic/oracle/while_for1.res.oracle index 50f84214cb75a552b205f36e258bb52e0ae0168a..a40f482a279085aaf0ad77206a7c65cf6fa2f27a 100644 --- a/src/plugins/alias/tests/basic/oracle/while_for1.res.oracle +++ b/src/plugins/alias/tests/basic/oracle/while_for1.res.oracle @@ -1,12 +1,5 @@ [kernel] Parsing while_for1.c (with preprocessing) [alias] Parsing done -[alias] ANALYSING int *s = (int *)0; -[alias] ANALYSING int idx = 0; -[alias] ANALYSING s = (int *)malloc((size_t)idx); -[alias] ANALYSING idx ++; -[alias] ANALYSING s = (int *)malloc((size_t)idx); -[alias] ANALYSING idx ++; -[alias] ANALYSING __retres = 0; [alias] May-aliases at the end of function main: <list of may-alias> <end of list> diff --git a/src/plugins/alias/tests/basic/oracle/while_for2.res.oracle b/src/plugins/alias/tests/basic/oracle/while_for2.res.oracle index 308ea356dbd73532ea11f65d54e6426814426160..a09e913118a6515e3398d9cd204ee2c4fe902a99 100644 --- a/src/plugins/alias/tests/basic/oracle/while_for2.res.oracle +++ b/src/plugins/alias/tests/basic/oracle/while_for2.res.oracle @@ -1,10 +1,5 @@ [kernel] Parsing while_for2.c (with preprocessing) [alias] Parsing done -[alias] ANALYSING int *a = (int *)0; -[alias] ANALYSING int *b = (int *)0; -[alias] ANALYSING int *c = (int *)0; -[alias] ANALYSING a = b; -[alias] ANALYSING __retres = 0; [alias] May-aliases at the end of function main: <list of may-alias> {a; b; } are aliased diff --git a/src/plugins/alias/tests/basic/oracle/while_for3.res.oracle b/src/plugins/alias/tests/basic/oracle/while_for3.res.oracle index 9df743ebd52321c37d287124ec0bedd77273a149..e427ce5532796e4d4911bed33a2a549fb4a185c4 100644 --- a/src/plugins/alias/tests/basic/oracle/while_for3.res.oracle +++ b/src/plugins/alias/tests/basic/oracle/while_for3.res.oracle @@ -1,14 +1,5 @@ [kernel] Parsing while_for3.c (with preprocessing) [alias] Parsing done -[alias] ANALYSING int *a = (int *)0; -[alias] ANALYSING int *b = (int *)0; -[alias] ANALYSING int *c = (int *)0; -[alias] ANALYSING int i = 0; -[alias] ANALYSING a = b; -[alias] ANALYSING __Cont: i ++; -[alias] ANALYSING a = b; -[alias] ANALYSING __Cont: i ++; -[alias] ANALYSING __retres = 0; [alias] May-aliases at the end of function main: <list of may-alias> {a; b; } are aliased diff --git a/src/plugins/alias/tests/real_world/oracle/example1.res.oracle b/src/plugins/alias/tests/real_world/oracle/example1.res.oracle index b35d17149e68b8c978273ba3150ced2f26d1ee78..d8270ca34a7a660d8cd7af8c5f385805bc212694 100644 --- a/src/plugins/alias/tests/real_world/oracle/example1.res.oracle +++ b/src/plugins/alias/tests/real_world/oracle/example1.res.oracle @@ -1,102 +1,43 @@ [kernel] Parsing example1.c (with preprocessing) [alias] Parsing done -[alias] ANALYSING ty *tmp = x; -[alias] ANALYSING idata = (double *)malloc((unsigned long)10 * sizeof(double)); -[alias] ANALYSING idata = tmp->t2[*(tmp->n2)]; [alias] Skipping assignment idata = tmp->t2[*(tmp->n2)] (not implemented) -[alias] ANALYSING odata = tmp->t1[*(tmp->n1)]; [alias] Skipping assignment odata = tmp->t1[*(tmp->n1)] (not implemented) -[alias] ANALYSING idx = 0; -[alias] ANALYSING tmp_1 = sin(*(idata + idx)); [alias] In a function call, parameter (x <- *(idata + idx)) is ignored) [alias] Warning: a function with no return is employed in an assignment -[alias] ANALYSING *(odata + idx) = 0.5 * tmp_1; [alias] Skipping assignment *(odata + idx) = 0.5 * tmp_1 (BUG do_assignment 2) -[alias] ANALYSING idx ++; -[alias] ANALYSING tmp_1 = sin(*(idata + idx)); [alias] In a function call, parameter (x <- *(idata + idx)) is ignored) [alias] Warning: a function with no return is employed in an assignment -[alias] ANALYSING *(odata + idx) = 0.5 * tmp_1; [alias] Skipping assignment *(odata + idx) = 0.5 * tmp_1 (BUG do_assignment 2) -[alias] ANALYSING idx ++; -[alias] ANALYSING swap(tmp->n1); -[alias] ANALYSING *n = 0; -[alias] ANALYSING (*n) ++; [alias] DEBUG: call function - formal variable not as we expected -[alias] ANALYSING idata = tmp->t2[*(tmp->n2)]; [alias] Skipping assignment idata = tmp->t2[*(tmp->n2)] (not implemented) -[alias] ANALYSING odata = tmp->t1[*(tmp->n1)]; [alias] Skipping assignment odata = tmp->t1[*(tmp->n1)] (not implemented) -[alias] ANALYSING idx = 0; -[alias] ANALYSING tmp_1 = sin(*(idata + idx)); [alias] In a function call, parameter (x <- *(idata + idx)) is ignored) [alias] Warning: a function with no return is employed in an assignment -[alias] ANALYSING *(odata + idx) = 0.5 * tmp_1; [alias] Skipping assignment *(odata + idx) = 0.5 * tmp_1 (BUG do_assignment 2) -[alias] ANALYSING idx ++; -[alias] ANALYSING swap(tmp->n1); [alias] DEBUG: call function - formal variable not as we expected [alias] Warning: DEBUG return stmt of f1 not in table [alias] Warning: Analysis is continuing but will not be sound -[alias] ANALYSING ty *tmp = x; -[alias] ANALYSING idata = (double *)malloc((unsigned long)10 * sizeof(double)); -[alias] ANALYSING idata = tmp->t1[*(tmp->n1)]; [alias] Skipping assignment idata = tmp->t1[*(tmp->n1)] (not implemented) -[alias] ANALYSING odata = tmp->t2[*(tmp->n2)]; [alias] Skipping assignment odata = tmp->t2[*(tmp->n2)] (not implemented) -[alias] ANALYSING idx = 0; -[alias] ANALYSING *(odata + idx) = (double)3 * *(idata + idx) + (double)1; [alias] Skipping assignment *(odata + idx) = (double)3 * *(idata + idx) + (double)1 (BUG do_assignment 2) -[alias] ANALYSING idx ++; -[alias] ANALYSING *(odata + idx) = (double)3 * *(idata + idx) + (double)1; [alias] Skipping assignment *(odata + idx) = (double)3 * *(idata + idx) + (double)1 (BUG do_assignment 2) -[alias] ANALYSING idx ++; -[alias] ANALYSING swap(tmp->n2); [alias] DEBUG: call function - formal variable not as we expected -[alias] ANALYSING idata = tmp->t1[*(tmp->n1)]; [alias] Skipping assignment idata = tmp->t1[*(tmp->n1)] (not implemented) -[alias] ANALYSING odata = tmp->t2[*(tmp->n2)]; [alias] Skipping assignment odata = tmp->t2[*(tmp->n2)] (not implemented) -[alias] ANALYSING idx = 0; -[alias] ANALYSING *(odata + idx) = (double)3 * *(idata + idx) + (double)1; [alias] Skipping assignment *(odata + idx) = (double)3 * *(idata + idx) + (double)1 (BUG do_assignment 2) -[alias] ANALYSING idx ++; -[alias] ANALYSING swap(tmp->n2); [alias] DEBUG: call function - formal variable not as we expected [alias] Warning: DEBUG return stmt of f2 not in table [alias] Warning: Analysis is continuing but will not be sound -[alias] ANALYSING a = (ty *)malloc(sizeof(ty)); -[alias] ANALYSING b = (ty *)malloc(sizeof(ty)); -[alias] ANALYSING i = 0; -[alias] ANALYSING a->t1[i] = (double *)malloc((unsigned long)10 * sizeof(double)); [alias] Skipping assignment a->t1[i] = malloc() (not implemented) -[alias] ANALYSING a->t2[i] = (double *)malloc((unsigned long)10 * sizeof(double)); [alias] Skipping assignment a->t2[i] = malloc() (not implemented) -[alias] ANALYSING i ++; -[alias] ANALYSING a->t1[i] = (double *)malloc((unsigned long)10 * sizeof(double)); [alias] Skipping assignment a->t1[i] = malloc() (not implemented) -[alias] ANALYSING a->t2[i] = (double *)malloc((unsigned long)10 * sizeof(double)); [alias] Skipping assignment a->t2[i] = malloc() (not implemented) -[alias] ANALYSING i ++; -[alias] ANALYSING a->n1 = (int *)malloc(sizeof(int)); [alias] Skipping assignment a->n1 = malloc() (not implemented) -[alias] ANALYSING a->n2 = (int *)malloc(sizeof(int)); [alias] Skipping assignment a->n2 = malloc() (not implemented) -[alias] ANALYSING *(a->n1) = 1; -[alias] ANALYSING *(a->n2) = 1; -[alias] ANALYSING i = 0; -[alias] ANALYSING b->t1[i] = a->t1[i]; [alias] Skipping assignment b->t1[i] = a->t1[i] (not implemented) -[alias] ANALYSING b->t2[i] = a->t2[i]; [alias] Skipping assignment b->t2[i] = a->t2[i] (not implemented) -[alias] ANALYSING i ++; -[alias] ANALYSING b->n1 = a->n1; [alias] Skipping assignment b->n1 = a->n1 (not implemented) -[alias] ANALYSING b->n2 = a->n2; [alias] Skipping assignment b->n2 = a->n2 (not implemented) -[alias] ANALYSING f1(a); -[alias] ANALYSING f2(b); -[alias] ANALYSING __retres = 0; [alias] May-aliases at the end of function main: <list of may-alias> <end of list>