From b46b09b7cacd3ba4bbf0d33b133356624304f784 Mon Sep 17 00:00:00 2001
From: Virgile Prevosto <virgile.prevosto@m4x.org>
Date: Thu, 25 Jan 2024 18:47:31 +0100
Subject: [PATCH] [kernel] Better localization for cast errors

---
 src/kernel_services/ast_queries/cil.ml            | 4 ++--
 tests/syntax/oracle/array_cast_bts1099.res.oracle | 2 +-
 tests/syntax/oracle/wrong-assignment.res.oracle   | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/kernel_services/ast_queries/cil.ml b/src/kernel_services/ast_queries/cil.ml
index 6bfd4b301b5..2ff3b6f2789 100644
--- a/src/kernel_services/ast_queries/cil.ml
+++ b/src/kernel_services/ast_queries/cil.ml
@@ -71,10 +71,10 @@ let () = Log.set_current_source (fun () -> fst (CurrentLoc.get ()))
 let pp_thisloc fmt = Location.pretty fmt (CurrentLoc.get ())
 
 let abort_context msg =
-  let pos = fst (CurrentLoc.get ()) in
+  let (start_pos,pos) = CurrentLoc.get () in
   let append fmt =
     Format.pp_print_newline fmt ();
-    Errorloc.pp_context_from_file fmt pos
+    Errorloc.pp_context_from_file ~start_pos fmt pos
   in
   Kernel.abort ~current:true ~append msg
 
diff --git a/tests/syntax/oracle/array_cast_bts1099.res.oracle b/tests/syntax/oracle/array_cast_bts1099.res.oracle
index 09ba17a47e2..9ba1eb0a363 100644
--- a/tests/syntax/oracle/array_cast_bts1099.res.oracle
+++ b/tests/syntax/oracle/array_cast_bts1099.res.oracle
@@ -4,6 +4,6 @@
   10      int tab1[4];
   11      u* p = &tab1;
   12      t* p2 = (t) p;
-        ^^^^^^^^^^^^^^^^
+                  ^^^^^
   13    }
 [kernel] Frama-C aborted: invalid user input.
diff --git a/tests/syntax/oracle/wrong-assignment.res.oracle b/tests/syntax/oracle/wrong-assignment.res.oracle
index a6f9c43d92d..2dd3d505f17 100644
--- a/tests/syntax/oracle/wrong-assignment.res.oracle
+++ b/tests/syntax/oracle/wrong-assignment.res.oracle
@@ -4,6 +4,6 @@
   11    void d() {
   12      // this assignment should be rejected
   13      c.a = b;
-        ^^^^^^^^^^
+                ^
   14    }
 [kernel] Frama-C aborted: invalid user input.
-- 
GitLab