diff --git a/src/plugins/alias/simplified.ml b/src/plugins/alias/simplified.ml
index f66d84b55b651d2094a57db471f79c6a35b9ec6b..1112466789c636f93cdb5307168d52f90bf717af 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 b3522cdd4e0b2176e87e3765fe6230b19f5d0673..3c262c6c2ce8463df14d5cf6c6d31fadae384515 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 3b9e86290c51287060c58a3c5b51c7f3ad74806e..0ad4f006ba3b3cf35f8fae1b61a40345b12f4143 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 12ea8d480566d649f908400f76d19cc34b1ad667..65a7c76ee2a2b772a961b9574d747983a02c03a3 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 f85c245dc1c8b50129a517577356ed2560a25af5..c422587f1a0662ac753d85d13b48ce30d9779b0d 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 d669aaccb4e7e66799b79b0a4b0fad9bb9bd7fb8..fc9d35993fc2fd1d3228b9f1888ccc80efc11155 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 0f17af6ac7e671f533ba9f8767677be5814d4c34..efb26a239fe217242d96a035e5f532512856f69e 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 bc8f602898d2ae1091375781559bfc158e116f6f..c903b74f5fe55bbca3300a508bb311813cbdd43c 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 dc6162c6bfe17314256b5a5aad72a333ab4c2cce..a22d297fdc0acd740dd01e992ac832c4051e6257 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 1e2c3d8e7fc6a57f0eaf9a530a4b477d430989af..1e4decb3e431ddaeca4ca82775f8bc469b5f9756 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 eba69e81d453b0623ff0692440f4692a8d650bd0..d32eba5759924636897ce753d362cec982b56a90 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 9cd4facfea612f8c887249f08ad249558d20925e..45fcb1233288f772757cf41cb588a61287b17484 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 ed15204917692ff633ca6a00116ce953d353610b..300762d6f2d441f3222d3ca79dcda3f7e0b4fd0d 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 dcd2a844cecb9c20365b50e384adf059125d06b5..4d8f8fa4a01fce5e95e6b5afdc4c4f24aec1c045 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 289f531e104329d5786b0e2a54669cc7983f3533..64f2826db29bf339219770a5cf558ec4f579b092 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 e686d1150e506cadeaefb836af9c65e853a834ab..0819df147033b71a430fa6c56a9b42583ed83fa6 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 de2c4211a54c39938f0e9f49d959ec0195b6184f..40e0e801215e67cf06dfbc103ea1341b897bd96a 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 9171437b55a3197aa804749a0e243c0e9accb6f3..228274eef6fbd1b252d69ecb7bf0cf0c763c528e 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 f50bde9af670e93cdd678f332257265388dae05e..3986565e550a94827f115749244cece16be1b6ce 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 3cb15611351d053ae9614c8438e1f6a40c59aa3a..382069e577e43db211419f390f12de9f17a9da35 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 84464b3e0f52c1a8d084469193ad0f2eb5514129..21f8829b4dc8c670f933cedca6281dd899cd434f 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: