From 60215bfc5278aa6148a7c8b7b9810da1c9c097f5 Mon Sep 17 00:00:00 2001
From: Virgile Prevosto <virgile.prevosto@m4x.org>
Date: Thu, 25 Jan 2024 14:52:40 +0100
Subject: [PATCH] [kernel] Fix CurrentLoc when doing index range inits checks

---
 src/kernel_internals/typing/cabs2cil.ml              | 1 +
 tests/syntax/oracle/very_large_integers.6.res.oracle | 2 +-
 tests/syntax/oracle/very_large_integers.7.res.oracle | 2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/kernel_internals/typing/cabs2cil.ml b/src/kernel_internals/typing/cabs2cil.ml
index 4e13f8455dd..3925038637d 100644
--- a/src/kernel_internals/typing/cabs2cil.ml
+++ b/src/kernel_internals/typing/cabs2cil.ml
@@ -8397,6 +8397,7 @@ and doInit local_env asconst add_implicit_ensures preinit so acc initl =
         in
         let doidxs = add_reads ~ghost idxs'.eloc rs doidxs in
         let doidxe = add_reads ~ghost idxe'.eloc re doidxe in
+        Cil.CurrentLoc.set (fst idxs'.eloc, snd idxe'.eloc);
         if isNotEmpty doidxs || isNotEmpty doidxe then
           abort_context "Range designators are not constants";
         let first, last =
diff --git a/tests/syntax/oracle/very_large_integers.6.res.oracle b/tests/syntax/oracle/very_large_integers.6.res.oracle
index 8858cc405bb..a276df46d02 100644
--- a/tests/syntax/oracle/very_large_integers.6.res.oracle
+++ b/tests/syntax/oracle/very_large_integers.6.res.oracle
@@ -8,7 +8,7 @@
   68    
   69    #ifdef RANGE_DESIGNATOR
   70    int arr4[1] = { [-9999999999999999999U ... 9999999999999999999U] = 42 };
-        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   71    #endif
   72
 [kernel] Frama-C aborted: invalid user input.
diff --git a/tests/syntax/oracle/very_large_integers.7.res.oracle b/tests/syntax/oracle/very_large_integers.7.res.oracle
index 22ddabcd753..9e0b1da102e 100644
--- a/tests/syntax/oracle/very_large_integers.7.res.oracle
+++ b/tests/syntax/oracle/very_large_integers.7.res.oracle
@@ -4,7 +4,7 @@
   72    
   73    #ifdef RANGE_DESIGNATOR2
   74    int widths[] = { [99999999999999999 ... 999999999999999999] = 2 };
-        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   75    #endif
   76
 [kernel] Frama-C aborted: invalid user input.
-- 
GitLab