From bbeb9f72d0ed0ba434851a7d5503e71b272e4b07 Mon Sep 17 00:00:00 2001
From: Julien Signoles <julien.signoles@cea.fr>
Date: Mon, 10 Apr 2023 11:23:44 +0200
Subject: [PATCH] [alias] no warning for the NULL pointer

---
 src/plugins/alias/simplified.ml                              | 3 ++-
 src/plugins/alias/tests/basic/oracle/assignment1.res.oracle  | 4 ----
 src/plugins/alias/tests/basic/oracle/assignment2.res.oracle  | 4 ----
 src/plugins/alias/tests/basic/oracle/assignment3.res.oracle  | 2 --
 src/plugins/alias/tests/basic/oracle/assignment4.res.oracle  | 4 ----
 src/plugins/alias/tests/basic/oracle/assignment5.res.oracle  | 4 ----
 src/plugins/alias/tests/basic/oracle/cast1.res.oracle        | 4 ----
 src/plugins/alias/tests/basic/oracle/conditional1.res.oracle | 3 ---
 src/plugins/alias/tests/basic/oracle/function1.res.oracle    | 5 -----
 src/plugins/alias/tests/basic/oracle/function2.res.oracle    | 3 ---
 src/plugins/alias/tests/basic/oracle/function3.res.oracle    | 5 -----
 src/plugins/alias/tests/basic/oracle/function4.res.oracle    | 2 --
 src/plugins/alias/tests/basic/oracle/function5.res.oracle    | 3 ---
 src/plugins/alias/tests/basic/oracle/function6.res.oracle    | 4 ----
 src/plugins/alias/tests/basic/oracle/globctr.res.oracle      | 2 --
 src/plugins/alias/tests/basic/oracle/switch1.res.oracle      | 4 ----
 src/plugins/alias/tests/basic/oracle/switch2.res.oracle      | 4 ----
 src/plugins/alias/tests/basic/oracle/while_for1.res.oracle   | 1 -
 src/plugins/alias/tests/basic/oracle/while_for2.res.oracle   | 3 ---
 src/plugins/alias/tests/basic/oracle/while_for3.res.oracle   | 3 ---
 .../alias/tests/real_world/oracle/example2.res.oracle        | 2 --
 21 files changed, 2 insertions(+), 67 deletions(-)

diff --git a/src/plugins/alias/simplified.ml b/src/plugins/alias/simplified.ml
index f66d84b55b6..1112466789c 100644
--- a/src/plugins/alias/simplified.ml
+++ b/src/plugins/alias/simplified.ml
@@ -49,7 +49,8 @@ exception Explicit_pointer_address of location
 
 let check_cast_compatibility e typ =
   let type_of_e = Cil.typeOf e in
-  if Cil.need_cast typ type_of_e then
+  (* emit a warning for unsafe cast, but not for the NULL pointer *)
+  if Cil.need_cast typ type_of_e && not (Cil.isZero e) then
     Options.warning
       ~once:true
       ~source:(fst @@ e.eloc)
diff --git a/src/plugins/alias/tests/basic/oracle/assignment1.res.oracle b/src/plugins/alias/tests/basic/oracle/assignment1.res.oracle
index b3522cdd4e0..3c262c6c2ce 100644
--- a/src/plugins/alias/tests/basic/oracle/assignment1.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/assignment1.res.oracle
@@ -1,16 +1,12 @@
 [kernel] Parsing assignment1.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
-[alias:unsafe-cast] assignment1.c:6: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
-[alias:unsafe-cast] assignment1.c:6: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int *c = (int *)0;
-[alias:unsafe-cast] assignment1.c:6: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *c = (int *)0;  are  <none>
 [alias] analysing instruction: int *d = (int *)0;
-[alias:unsafe-cast] assignment1.c:6: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *d = (int *)0;  are  <none>
 [alias] analysing instruction: a = b;
 [alias] May-aliases after instruction  a = b;  are  {a, b}
diff --git a/src/plugins/alias/tests/basic/oracle/assignment2.res.oracle b/src/plugins/alias/tests/basic/oracle/assignment2.res.oracle
index 3b9e86290c5..0ad4f006ba3 100644
--- a/src/plugins/alias/tests/basic/oracle/assignment2.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/assignment2.res.oracle
@@ -1,16 +1,12 @@
 [kernel] Parsing assignment2.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: int **a = (int **)0;
-[alias:unsafe-cast] assignment2.c:8: Warning: unsafe cast from int to int **
 [alias] May-aliases after instruction  int **a = (int **)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
-[alias:unsafe-cast] assignment2.c:8: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int **c = (int **)0;
-[alias:unsafe-cast] assignment2.c:8: Warning: unsafe cast from int to int **
 [alias] May-aliases after instruction  int **c = (int **)0;  are  <none>
 [alias] analysing instruction: int *d = (int *)0;
-[alias:unsafe-cast] assignment2.c:8: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *d = (int *)0;  are  <none>
 [alias] analysing instruction: *a = b;
 [alias] May-aliases after instruction  *a = b;  are  {*a, b}
diff --git a/src/plugins/alias/tests/basic/oracle/assignment3.res.oracle b/src/plugins/alias/tests/basic/oracle/assignment3.res.oracle
index 12ea8d48056..65a7c76ee2a 100644
--- a/src/plugins/alias/tests/basic/oracle/assignment3.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/assignment3.res.oracle
@@ -1,12 +1,10 @@
 [kernel] Parsing assignment3.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
-[alias:unsafe-cast] assignment3.c:6: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int b = 0;
 [alias] May-aliases after instruction  int b = 0;  are  <none>
 [alias] analysing instruction: int *c = (int *)0;
-[alias:unsafe-cast] assignment3.c:6: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *c = (int *)0;  are  <none>
 [alias] analysing instruction: a = & b;
 [alias] May-aliases after instruction  a = & b;  are  <none>
diff --git a/src/plugins/alias/tests/basic/oracle/assignment4.res.oracle b/src/plugins/alias/tests/basic/oracle/assignment4.res.oracle
index f85c245dc1c..c422587f1a0 100644
--- a/src/plugins/alias/tests/basic/oracle/assignment4.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/assignment4.res.oracle
@@ -1,16 +1,12 @@
 [kernel] Parsing assignment4.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: int **a = (int **)0;
-[alias:unsafe-cast] assignment4.c:8: Warning: unsafe cast from int to int **
 [alias] May-aliases after instruction  int **a = (int **)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
-[alias:unsafe-cast] assignment4.c:8: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int **c = (int **)0;
-[alias:unsafe-cast] assignment4.c:8: Warning: unsafe cast from int to int **
 [alias] May-aliases after instruction  int **c = (int **)0;  are  <none>
 [alias] analysing instruction: int *d = (int *)0;
-[alias:unsafe-cast] assignment4.c:8: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *d = (int *)0;  are  <none>
 [alias] analysing instruction: *a = b;
 [alias] May-aliases after instruction  *a = b;  are  {*a, b}
diff --git a/src/plugins/alias/tests/basic/oracle/assignment5.res.oracle b/src/plugins/alias/tests/basic/oracle/assignment5.res.oracle
index d669aaccb4e..fc9d35993fc 100644
--- a/src/plugins/alias/tests/basic/oracle/assignment5.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/assignment5.res.oracle
@@ -1,16 +1,12 @@
 [kernel] Parsing assignment5.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: int ***a = (int ***)0;
-[alias:unsafe-cast] assignment5.c:7: Warning: unsafe cast from int to int ***
 [alias] May-aliases after instruction  int ***a = (int ***)0;  are  <none>
 [alias] analysing instruction: int **b = (int **)0;
-[alias:unsafe-cast] assignment5.c:7: Warning: unsafe cast from int to int **
 [alias] May-aliases after instruction  int **b = (int **)0;  are  <none>
 [alias] analysing instruction: int *c = (int *)0;
-[alias:unsafe-cast] assignment5.c:7: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *c = (int *)0;  are  <none>
 [alias] analysing instruction: int *d = (int *)0;
-[alias:unsafe-cast] assignment5.c:7: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *d = (int *)0;  are  <none>
 [alias] analysing instruction: *a = b;
 [alias] May-aliases after instruction  *a = b;  are  {*a, b}
diff --git a/src/plugins/alias/tests/basic/oracle/cast1.res.oracle b/src/plugins/alias/tests/basic/oracle/cast1.res.oracle
index 0f17af6ac7e..efb26a239fe 100644
--- a/src/plugins/alias/tests/basic/oracle/cast1.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/cast1.res.oracle
@@ -1,16 +1,12 @@
 [kernel] Parsing cast1.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
-[alias:unsafe-cast] cast1.c:8: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
-[alias:unsafe-cast] cast1.c:8: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: float *c = (float *)0;
-[alias:unsafe-cast] cast1.c:9: Warning: unsafe cast from int to float *
 [alias] May-aliases after instruction  float *c = (float *)0;  are  <none>
 [alias] analysing instruction: float *d = (float *)0;
-[alias:unsafe-cast] cast1.c:9: Warning: unsafe cast from int to float *
 [alias] May-aliases after instruction  float *d = (float *)0;  are  <none>
 [alias] analysing instruction: a = (int *)c;
 [alias:unsafe-cast] cast1.c:10: Warning: unsafe cast from float * to int *
diff --git a/src/plugins/alias/tests/basic/oracle/conditional1.res.oracle b/src/plugins/alias/tests/basic/oracle/conditional1.res.oracle
index bc8f602898d..c903b74f5fe 100644
--- a/src/plugins/alias/tests/basic/oracle/conditional1.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/conditional1.res.oracle
@@ -1,13 +1,10 @@
 [kernel] Parsing conditional1.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
-[alias:unsafe-cast] conditional1.c:6: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
-[alias:unsafe-cast] conditional1.c:6: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int *c = (int *)0;
-[alias:unsafe-cast] conditional1.c:6: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *c = (int *)0;  are  <none>
 [alias] analysing instruction: a = b;
 [alias] May-aliases after instruction  a = b;  are  {a, b}
diff --git a/src/plugins/alias/tests/basic/oracle/function1.res.oracle b/src/plugins/alias/tests/basic/oracle/function1.res.oracle
index dc6162c6bfe..a22d297fdc0 100644
--- a/src/plugins/alias/tests/basic/oracle/function1.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/function1.res.oracle
@@ -1,21 +1,16 @@
 [kernel] Parsing function1.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
-[alias:unsafe-cast] function1.c:16: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
-[alias:unsafe-cast] function1.c:16: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int *c = (int *)0;
-[alias:unsafe-cast] function1.c:16: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *c = (int *)0;  are  <none>
 [alias] analysing instruction: int *d = (int *)0;
-[alias:unsafe-cast] function1.c:16: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *d = (int *)0;  are  <none>
 [alias] analysing instruction: swap(a,b);
 [alias] analysing function: swap
 [alias] analysing instruction: int *z = (int *)0;
-[alias:unsafe-cast] function1.c:7: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *z = (int *)0;  are  <none>
 [alias] analysing instruction: z = x;
 [alias] May-aliases after instruction  z = x;  are  {x, z}
diff --git a/src/plugins/alias/tests/basic/oracle/function2.res.oracle b/src/plugins/alias/tests/basic/oracle/function2.res.oracle
index 1e2c3d8e7fc..1e4decb3e43 100644
--- a/src/plugins/alias/tests/basic/oracle/function2.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/function2.res.oracle
@@ -49,15 +49,12 @@
 [alias] May-aliases at the end of function lrand48: ⊥
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
-[alias:unsafe-cast] function2.c:14: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
-[alias:unsafe-cast] function2.c:14: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: a = my_malloc(2);
 [alias] analysing function: my_malloc
 [alias] analysing instruction: int *res = (int *)0;
-[alias:unsafe-cast] function2.c:7: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *res = (int *)0;  are  <none>
 [alias] analysing instruction: res = (int *)malloc((size_t)size);
 [alias] May-aliases after instruction  res = (int *)malloc((size_t)size);  are
diff --git a/src/plugins/alias/tests/basic/oracle/function3.res.oracle b/src/plugins/alias/tests/basic/oracle/function3.res.oracle
index eba69e81d45..d32eba57599 100644
--- a/src/plugins/alias/tests/basic/oracle/function3.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/function3.res.oracle
@@ -7,21 +7,16 @@
 [alias] analysing instruction: y = tmp;
 [alias] May-aliases after instruction  y = tmp;  are  {x, y, tmp}
 [alias] analysing instruction: __retres = (void *)0;
-[alias:unsafe-cast] function3.c:14: Warning: unsafe cast from int to void *
 [alias] May-aliases after instruction  __retres = (void *)0;  are  {x, y, tmp}
 [alias] May-aliases at the end of function f1: {x, y, tmp}
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
-[alias:unsafe-cast] function3.c:19: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
-[alias:unsafe-cast] function3.c:19: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int *c = (int *)0;
-[alias:unsafe-cast] function3.c:19: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *c = (int *)0;  are  <none>
 [alias] analysing instruction: int *d = (int *)0;
-[alias:unsafe-cast] function3.c:19: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *d = (int *)0;  are  <none>
 [alias] analysing instruction: f1(a,b);
 [alias] May-aliases after instruction  f1(a,b);  are  {a, b}
diff --git a/src/plugins/alias/tests/basic/oracle/function4.res.oracle b/src/plugins/alias/tests/basic/oracle/function4.res.oracle
index 9cd4facfea6..45fcb123328 100644
--- a/src/plugins/alias/tests/basic/oracle/function4.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/function4.res.oracle
@@ -3,10 +3,8 @@
 [alias] May-aliases at the end of function addr: <none>
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
-[alias:unsafe-cast] function4.c:11: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
-[alias:unsafe-cast] function4.c:11: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int c = 0;
 [alias] May-aliases after instruction  int c = 0;  are  <none>
diff --git a/src/plugins/alias/tests/basic/oracle/function5.res.oracle b/src/plugins/alias/tests/basic/oracle/function5.res.oracle
index ed152049176..300762d6f2d 100644
--- a/src/plugins/alias/tests/basic/oracle/function5.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/function5.res.oracle
@@ -9,13 +9,10 @@
 [alias] May-aliases at the end of function choice: {x, y, __retres}
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
-[alias:unsafe-cast] function5.c:16: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
-[alias:unsafe-cast] function5.c:16: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int *c = (int *)0;
-[alias:unsafe-cast] function5.c:16: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *c = (int *)0;  are  <none>
 [alias] analysing instruction: c = choice(a,b);
 [alias] May-aliases after instruction  c = choice(a,b);  are  {a, b, c}
diff --git a/src/plugins/alias/tests/basic/oracle/function6.res.oracle b/src/plugins/alias/tests/basic/oracle/function6.res.oracle
index dcd2a844cec..4d8f8fa4a01 100644
--- a/src/plugins/alias/tests/basic/oracle/function6.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/function6.res.oracle
@@ -1,16 +1,12 @@
 [kernel] Parsing function6.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
-[alias:unsafe-cast] function6.c:15: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
-[alias:unsafe-cast] function6.c:15: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int *c = (int *)0;
-[alias:unsafe-cast] function6.c:15: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *c = (int *)0;  are  <none>
 [alias] analysing instruction: int *d = (int *)0;
-[alias:unsafe-cast] function6.c:15: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *d = (int *)0;  are  <none>
 [alias] analysing instruction: swap(a,b);
 [alias] analysing function: swap
diff --git a/src/plugins/alias/tests/basic/oracle/globctr.res.oracle b/src/plugins/alias/tests/basic/oracle/globctr.res.oracle
index 289f531e104..64f2826db29 100644
--- a/src/plugins/alias/tests/basic/oracle/globctr.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/globctr.res.oracle
@@ -7,10 +7,8 @@
 [alias] May-aliases at the end of function f: <none>
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
-[alias:unsafe-cast] globctr.c:8: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
-[alias:unsafe-cast] globctr.c:8: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: f(a);
 [alias] May-aliases after instruction  f(a);  are  <none>
diff --git a/src/plugins/alias/tests/basic/oracle/switch1.res.oracle b/src/plugins/alias/tests/basic/oracle/switch1.res.oracle
index e686d1150e5..0819df14703 100644
--- a/src/plugins/alias/tests/basic/oracle/switch1.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/switch1.res.oracle
@@ -1,16 +1,12 @@
 [kernel] Parsing switch1.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
-[alias:unsafe-cast] switch1.c:6: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
-[alias:unsafe-cast] switch1.c:6: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int *c = (int *)0;
-[alias:unsafe-cast] switch1.c:6: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *c = (int *)0;  are  <none>
 [alias] analysing instruction: int *d = (int *)0;
-[alias:unsafe-cast] switch1.c:6: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *d = (int *)0;  are  <none>
 [alias] analysing instruction: int e = 0;
 [alias] May-aliases after instruction  int e = 0;  are  <none>
diff --git a/src/plugins/alias/tests/basic/oracle/switch2.res.oracle b/src/plugins/alias/tests/basic/oracle/switch2.res.oracle
index de2c4211a54..40e0e801215 100644
--- a/src/plugins/alias/tests/basic/oracle/switch2.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/switch2.res.oracle
@@ -1,16 +1,12 @@
 [kernel] Parsing switch2.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
-[alias:unsafe-cast] switch2.c:6: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
-[alias:unsafe-cast] switch2.c:6: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int *c = (int *)0;
-[alias:unsafe-cast] switch2.c:6: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *c = (int *)0;  are  <none>
 [alias] analysing instruction: int *d = (int *)0;
-[alias:unsafe-cast] switch2.c:6: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *d = (int *)0;  are  <none>
 [alias] analysing instruction: int e = 0;
 [alias] May-aliases after instruction  int e = 0;  are  <none>
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 9171437b55a..228274eef6f 100644
--- a/src/plugins/alias/tests/basic/oracle/while_for1.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/while_for1.res.oracle
@@ -49,7 +49,6 @@
 [alias] May-aliases at the end of function lrand48: ⊥
 [alias] analysing function: main
 [alias] analysing instruction: int *s = (int *)0;
-[alias:unsafe-cast] while_for1.c:8: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *s = (int *)0;  are  <none>
 [alias] analysing instruction: int idx = 0;
 [alias] May-aliases after instruction  int idx = 0;  are  <none>
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 f50bde9af67..3986565e550 100644
--- a/src/plugins/alias/tests/basic/oracle/while_for2.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/while_for2.res.oracle
@@ -1,13 +1,10 @@
 [kernel] Parsing while_for2.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
-[alias:unsafe-cast] while_for2.c:6: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
-[alias:unsafe-cast] while_for2.c:6: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int *c = (int *)0;
-[alias:unsafe-cast] while_for2.c:6: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *c = (int *)0;  are  <none>
 [alias] analysing instruction: a = b;
 [alias] May-aliases after instruction  a = b;  are  {a, b}
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 3cb15611351..382069e577e 100644
--- a/src/plugins/alias/tests/basic/oracle/while_for3.res.oracle
+++ b/src/plugins/alias/tests/basic/oracle/while_for3.res.oracle
@@ -1,13 +1,10 @@
 [kernel] Parsing while_for3.c (with preprocessing)
 [alias] analysing function: main
 [alias] analysing instruction: int *a = (int *)0;
-[alias:unsafe-cast] while_for3.c:6: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *a = (int *)0;  are  <none>
 [alias] analysing instruction: int *b = (int *)0;
-[alias:unsafe-cast] while_for3.c:6: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *b = (int *)0;  are  <none>
 [alias] analysing instruction: int *c = (int *)0;
-[alias:unsafe-cast] while_for3.c:6: Warning: unsafe cast from int to int *
 [alias] May-aliases after instruction  int *c = (int *)0;  are  <none>
 [alias] analysing instruction: int i = 0;
 [alias] May-aliases after instruction  int i = 0;  are  <none>
diff --git a/src/plugins/alias/tests/real_world/oracle/example2.res.oracle b/src/plugins/alias/tests/real_world/oracle/example2.res.oracle
index 84464b3e0f5..21f8829b4dc 100644
--- a/src/plugins/alias/tests/real_world/oracle/example2.res.oracle
+++ b/src/plugins/alias/tests/real_world/oracle/example2.res.oracle
@@ -136,7 +136,6 @@
 [alias] May-aliases after instruction  odata = tmp->t1[*(tmp->n1)];  are
   {x, tmp}  {tmp->t2[0], idata}  {tmp->t1[0], odata}
 [alias] analysing instruction: __retres = (void *)0;
-[alias:unsafe-cast] example2.c:49: Warning: unsafe cast from int to void *
 [alias] May-aliases after instruction  __retres = (void *)0;  are
   {x, tmp}  {tmp->t2[0], idata}  {tmp->t1[0], odata}
 [alias] May-aliases at the end of function f1:
@@ -180,7 +179,6 @@
 [alias] May-aliases after instruction  odata = tmp->t2[*(tmp->n2)];  are
   {x, tmp}  {tmp->t1[0], idata}  {tmp->t2[0], odata}
 [alias] analysing instruction: __retres = (void *)0;
-[alias:unsafe-cast] example2.c:74: Warning: unsafe cast from int to void *
 [alias] May-aliases after instruction  __retres = (void *)0;  are
   {x, tmp}  {tmp->t1[0], idata}  {tmp->t2[0], odata}
 [alias] May-aliases at the end of function f2:
-- 
GitLab