From a35ea4c2e92105ed2565f7b79cc8d9ed1a2bdcde Mon Sep 17 00:00:00 2001 From: Jan Rochel <jan.rochel@cea.fr> Date: Wed, 21 Aug 2024 20:07:14 +0200 Subject: [PATCH] [alias] test case for global variable definitions This commit modifies one test case, such that aliases originate from global variable definitions (outside functions). This is a pathological case for the current state of the analysis as it does not at all take into account such definitions, and thus misses the aliases. This will be fixed by the subsequent commit. --- src/plugins/alias/tests/basic/assignment3.c | 6 ++--- .../tests/basic/oracle/assignment3.res.oracle | 27 ++++--------------- 2 files changed, 7 insertions(+), 26 deletions(-) diff --git a/src/plugins/alias/tests/basic/assignment3.c b/src/plugins/alias/tests/basic/assignment3.c index 203e93650c1..d5a05286523 100644 --- a/src/plugins/alias/tests/basic/assignment3.c +++ b/src/plugins/alias/tests/basic/assignment3.c @@ -1,10 +1,8 @@ // address assignment // {a, c} are aliased -int main () { +int b=0, *a=&b, *c=&b; - int *a=0, b=0, *c=0; - a = &b; - c = &b; +int main () { return 0; } diff --git a/src/plugins/alias/tests/basic/oracle/assignment3.res.oracle b/src/plugins/alias/tests/basic/oracle/assignment3.res.oracle index 22605c19af0..e429aba77bb 100644 --- a/src/plugins/alias/tests/basic/oracle/assignment3.res.oracle +++ b/src/plugins/alias/tests/basic/oracle/assignment3.res.oracle @@ -1,28 +1,11 @@ [kernel] Parsing assignment3.c (with preprocessing) [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-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: - 0:{ a } → 5:{ b } 4:{ c } → 5:{ b } + <empty> [alias] Summary of function main: - formals: returns: __retres state: { a; c } + formals: returns: __retres state: <none> [alias] Analysis complete -- GitLab