diff --git a/tests/value/modulo.i b/tests/value/modulo.i
index 37fa7c2eff48bb4229a749051735fdbd7cec95c6..98f5deb88d06b4ce647dcb7df97bc616352b6dd4 100644
--- a/tests/value/modulo.i
+++ b/tests/value/modulo.i
@@ -201,6 +201,9 @@ void test_overflow_alarms (void) {
     r = min_int % min_one; // Invalid alarm.
     Frama_C_show_each_BOTTOM(min_int, min_one);
   }
+  // Overflow alarm and division by zero alarm,
+  // no possible reduction: [x] and [y] must be top_int as the end.
+  r = x / y;
 }
 
 void main() {
diff --git a/tests/value/oracle/modulo.res.oracle b/tests/value/oracle/modulo.res.oracle
index bd53257d35c2bd958793c5707c89da222e63dff2..ae4d87e429f59ff097f62faef522546fe398506e 100644
--- a/tests/value/oracle/modulo.res.oracle
+++ b/tests/value/oracle/modulo.res.oracle
@@ -26,8 +26,8 @@
   b ∈ [--..--]
   i2 ∈ [--..--]
 [eva] computing for function pgcd1 <- main.
-  Called from modulo.i:207.
-[eva:alarm] modulo.i:207: Warning: 
+  Called from modulo.i:210.
+[eva:alarm] modulo.i:210: Warning: 
   function pgcd1: precondition got status unknown.
 [eva] modulo.i:37: loop invariant got status valid.
 [eva] modulo.i:38: loop invariant got status valid.
@@ -40,8 +40,8 @@
 [eva] Recording results for pgcd1
 [eva] Done for function pgcd1
 [eva] computing for function pgcd2 <- main.
-  Called from modulo.i:208.
-[eva:alarm] modulo.i:208: Warning: 
+  Called from modulo.i:211.
+[eva:alarm] modulo.i:211: Warning: 
   function pgcd2: precondition got status unknown.
 [eva] modulo.i:50: loop invariant got status valid.
 [eva] modulo.i:53: Frama_C_show_each_2: [-10..10], [1..10], [-9..9]
@@ -49,15 +49,15 @@
 [eva] Recording results for pgcd2
 [eva] Done for function pgcd2
 [eva] computing for function pgcd3 <- main.
-  Called from modulo.i:209.
-[eva:alarm] modulo.i:209: Warning: 
+  Called from modulo.i:212.
+[eva:alarm] modulo.i:212: Warning: 
   function pgcd3: precondition got status unknown.
 [eva:alarm] modulo.i:63: Warning: division by zero. assert b_0 ≢ 0;
 [eva] modulo.i:64: Frama_C_show_each_3: [-10..10], [-10..10], [-9..9]
 [eva] Recording results for pgcd3
 [eva] Done for function pgcd3
 [eva] computing for function main2 <- main.
-  Called from modulo.i:211.
+  Called from modulo.i:214.
 [eva:alarm] modulo.i:9: Warning: signed overflow. assert -2147483648 ≤ 4 * i;
 [eva:alarm] modulo.i:9: Warning: signed overflow. assert 4 * i ≤ 2147483647;
 [eva:alarm] modulo.i:10: Warning: signed overflow. assert -2147483648 ≤ 4 * i;
@@ -69,12 +69,12 @@
 [eva] Recording results for main2
 [eva] Done for function main2
 [eva] computing for function simultaneous_congruences <- main.
-  Called from modulo.i:212.
+  Called from modulo.i:215.
 [eva:alarm] modulo.i:76: Warning: assertion got status unknown.
 [eva] Recording results for simultaneous_congruences
 [eva] Done for function simultaneous_congruences
 [eva] computing for function shift_modulo <- main.
-  Called from modulo.i:213.
+  Called from modulo.i:216.
 [eva:alarm] modulo.i:100: Warning: assertion got status unknown.
 [eva:alarm] modulo.i:103: Warning: 
   signed overflow. assert (int)((int)(i * 12) + 5) << 25 ≤ 2147483647;
@@ -83,19 +83,19 @@
 [eva] Recording results for shift_modulo
 [eva] Done for function shift_modulo
 [eva] computing for function extract_bits_modulo <- main.
-  Called from modulo.i:214.
+  Called from modulo.i:217.
 [eva:alarm] modulo.i:109: Warning: assertion got status unknown.
 [eva] Recording results for extract_bits_modulo
 [eva] Done for function extract_bits_modulo
 [eva] computing for function pos_rem <- main.
-  Called from modulo.i:215.
+  Called from modulo.i:218.
 [eva:alarm] modulo.i:137: Warning: assertion got status unknown.
 [eva:alarm] modulo.i:142: Warning: assertion got status unknown.
 [eva:alarm] modulo.i:146: Warning: assertion got status unknown.
 [eva] Recording results for pos_rem
 [eva] Done for function pos_rem
 [eva] computing for function address_modulo <- main.
-  Called from modulo.i:216.
+  Called from modulo.i:219.
 [eva:garbled-mix:write] modulo.i:158: 
   Assigning imprecise value to r because of arithmetic operation on addresses.
 [eva:alarm] modulo.i:159: Warning: division by zero. assert i ≢ 0;
@@ -112,7 +112,7 @@
 [eva] Recording results for address_modulo
 [eva] Done for function address_modulo
 [eva] computing for function test_overflow_alarms <- main.
-  Called from modulo.i:217.
+  Called from modulo.i:220.
 [eva:alarm] modulo.i:176: Warning: 
   signed overflow. assert a_0 / b_0 ≤ 2147483647;
 [eva] modulo.i:178: Frama_C_show_each: {-2147483648; 10}, {-1; 2}
@@ -131,6 +131,8 @@
 [eva] modulo.i:198: Frama_C_show_each: [-2147483648..2147483647]
 [eva:alarm] modulo.i:201: Warning: 
   signed overflow. assert min_int / min_one ≤ 2147483647;
+[eva:alarm] modulo.i:206: Warning: division by zero. assert y ≢ 0;
+[eva:alarm] modulo.i:206: Warning: signed overflow. assert x / y ≤ 2147483647;
 [eva] Recording results for test_overflow_alarms
 [eva] Done for function test_overflow_alarms
 [eva] Recording results for main
@@ -217,7 +219,7 @@
   b_0 ∈ {-1; 2}
   x ∈ [--..--]
   y ∈ [--..--]
-  r ∈ [-2147483647..0]
+  r ∈ [--..--]
 [eva:final-states] Values at end of function main:
   A ∈ {0}
   B ∈ {-3; 1}