diff --git a/src/kernel_services/plugin_entry_points/log.ml b/src/kernel_services/plugin_entry_points/log.ml index c3456688d68f94611757c0b3ebda22fee7812886..10a4ec0697ffe7c600de4fb8a291f9e07e6d8159 100644 --- a/src/kernel_services/plugin_entry_points/log.ml +++ b/src/kernel_services/plugin_entry_points/log.ml @@ -241,16 +241,8 @@ let rec echo_lines ?(prefix=false) output text p q = let add_source buffer = function | None -> () | Some src -> - (* Avoid printing ':0:' if the position is unknown. *) - if Filepath.is_empty_pos src - then Buffer.add_string buffer "<unknown location> " - else begin - Buffer.add_string buffer - (Filepath.Normalized.to_pretty_string src.Filepath.pos_path); - Buffer.add_string buffer ":" ; - Buffer.add_string buffer (string_of_int src.Filepath.pos_lnum); - Buffer.add_string buffer ": " - end + let fmt = Format.formatter_of_buffer buffer in + Format.fprintf fmt "%a: @?" Filepath.pp_pos src let add_category buffer = function | None -> () @@ -584,11 +576,7 @@ let deferred_raise ~fatal event msg = (* reset deferred flag. *) let () = deferred_exn := DNo_exn in let channel = new_channel event.evt_plugin in - let pp_pos fmt pos = - if Filepath.is_empty_pos pos - then Format.fprintf fmt "<unknown location> " - else Format.fprintf fmt "%a: " Filepath.pp_pos pos - in + let pp_pos fmt pos = Format.fprintf fmt "%a: " Filepath.pp_pos pos in let pp_pos_opt = Pretty_utils.pp_opt pp_pos in let print_event fmt = Format.fprintf fmt "@\n%a%s" pp_pos_opt event.evt_source event.evt_message diff --git a/src/libraries/utils/filepath.ml b/src/libraries/utils/filepath.ml index 3193c18420457e03f2d4129767171a26325da0bf..ba739ec3de0d64711ee34723bd059037335c6e55 100644 --- a/src/libraries/utils/filepath.ml +++ b/src/libraries/utils/filepath.ml @@ -229,7 +229,9 @@ let rec skip_dot file_name = else file_name let pretty file_name = - if Filename.is_relative file_name then + if file_name = "" then + "<unknown location>" + else if Filename.is_relative file_name then skip_dot file_name else let path = insert cwd file_name in @@ -297,6 +299,8 @@ module Normalized = struct let pretty fmt p = if is_special_stdout p then Format.fprintf fmt "<stdout>" + else if is_empty p then + Format.fprintf fmt "<unknown location>" else Format.fprintf fmt "%s" (pretty p) let pp_abs fmt p = Format.fprintf fmt "%s" p @@ -337,7 +341,11 @@ let empty_pos = { } let pp_pos fmt pos = - Format.fprintf fmt "%a:%d" Normalized.pretty pos.pos_path pos.pos_lnum + let path = pos.pos_path in + if Normalized.(is_empty path || is_special_stdout path) then + Format.fprintf fmt "%a" Normalized.pretty path + else + Format.fprintf fmt "%a:%d" Normalized.pretty path pos.pos_lnum let is_empty_pos pos = pos == empty_pos diff --git a/src/plugins/aorai/tests/ya/oracle/floats.res.oracle b/src/plugins/aorai/tests/ya/oracle/floats.res.oracle index 960635f47e9055f7ffce2a06d2fa45b9324868fe..186a3452a787b9e653e3b0db06b7ac6fe76b3ea6 100644 --- a/src/plugins/aorai/tests/ya/oracle/floats.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/floats.res.oracle @@ -18,7 +18,7 @@ no \from part for clause 'assigns aorai_CurOpStatus, aorai_CurOperation, aorai_CurStates;'. Assuming \from \nothing so that the analysis can continue, but be aware this is probably incorrect. -[eva:alarm] <unknown location> Warning: +[eva:alarm] <unknown location>: Warning: function square_root_aux, behavior Buchi_property_behavior: postcondition got status unknown. [eva:alarm] floats.i:11: Warning: non-finite float value. diff --git a/src/plugins/aorai/tests/ya/oracle_prove/floats.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/floats.res.oracle index eda04cca2f426021910934e62da87f3285e2738f..02aa64405ee8998bf36a0656966d25223fd3f65a 100644 --- a/src/plugins/aorai/tests/ya/oracle_prove/floats.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle_prove/floats.res.oracle @@ -18,7 +18,7 @@ no \from part for clause 'assigns aorai_CurOpStatus, aorai_CurOperation, aorai_CurStates;'. Assuming \from \nothing so that the analysis can continue, but be aware this is probably incorrect. -[eva:alarm] <unknown location> Warning: +[eva:alarm] <unknown location>: Warning: function square_root_aux, behavior Buchi_property_behavior: postcondition got status unknown. [eva:alarm] floats.i:11: Warning: non-finite float value. diff --git a/src/plugins/e-acsl/tests/bts/oracle/issue-framac-1119.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/issue-framac-1119.res.oracle index 331bf238f1a73f1804813a41a043fe082d8b44c5..15bc5adac0dfb7366faed69d3c4a8963e50b1888 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/issue-framac-1119.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/issue-framac-1119.res.oracle @@ -1,6 +1,6 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". -[eva:alarm] <unknown location> Warning: +[eva:alarm] <unknown location>: Warning: function __e_acsl_assert_register_long: precondition data->values == \null || \valid(data->values) got status unknown. [eva:alarm] issue-framac-1119.c:10: Warning: diff --git a/tests/spec/oracle/Extend_errors.0.res.oracle b/tests/spec/oracle/Extend_errors.0.res.oracle index 1cd048aac0469548c28d44a6a86bd09efa947bf6..3a2a7d677657142048d8273c2931bf78c85f4fc2 100644 --- a/tests/spec/oracle/Extend_errors.0.res.oracle +++ b/tests/spec/oracle/Extend_errors.0.res.oracle @@ -24,11 +24,11 @@ [kernel:acsl-extension] Warning: Trying to register ACSL extension unfold reserved by frama-c. Rename this extension to avoid conflict with the kernel. Ignored extension [kernel] Triggering User Error : -[kernel] <unknown location> User Error: +[kernel] <unknown location>: User Error: Conflicts on extension named 'foo' registered by different plugins (myplugin2, myplugin1), use '\plugin::ext_name' syntax to avoid this ambiguity [kernel] Triggering Unsupported : -[kernel] <unknown location> Failure: +[kernel] <unknown location>: Failure: Unsupported clause extension named '\myplugin1::bar' [kernel] Parsing Extend_errors.c (with preprocessing) /* Generated by Frama-C */ diff --git a/tests/syntax/oracle/ghost_cv_var_decl.1.res.oracle b/tests/syntax/oracle/ghost_cv_var_decl.1.res.oracle index 67d1b6a0498df79b11293e369e1ef58b20531331..9f276448f22f09f22185eede5334a359cc20b15f 100644 --- a/tests/syntax/oracle/ghost_cv_var_decl.1.res.oracle +++ b/tests/syntax/oracle/ghost_cv_var_decl.1.res.oracle @@ -173,21 +173,21 @@ c: ghost [kernel] ghost_cv_var_decl.c:186 bar_1: normal -[kernel] :0 +[kernel] <unknown location> a: normal [kernel] ghost_cv_var_decl.c:187 bar_2: normal -[kernel] :0 +[kernel] <unknown location> a: normal -[kernel] :0 +[kernel] <unknown location> b: ghost [kernel] ghost_cv_var_decl.c:188 bar_3: normal -[kernel] :0 +[kernel] <unknown location> a: normal -[kernel] :0 +[kernel] <unknown location> b: ghost -[kernel] :0 +[kernel] <unknown location> c: ghost [kernel] ghost_cv_var_decl.c:190 pfoo_1: normal @@ -209,21 +209,21 @@ c: ghost -> normal [kernel] ghost_cv_var_decl.c:202 pbar_1: normal -[kernel] :0 +[kernel] <unknown location> a: normal -> normal [kernel] ghost_cv_var_decl.c:203 pbar_2: normal -[kernel] :0 +[kernel] <unknown location> a: normal -[kernel] :0 +[kernel] <unknown location> b: ghost -> normal [kernel] ghost_cv_var_decl.c:204 pbar_3: normal -[kernel] :0 +[kernel] <unknown location> a: normal -[kernel] :0 +[kernel] <unknown location> b: ghost -> ghost -[kernel] :0 +[kernel] <unknown location> c: ghost -> normal [kernel] ghost_cv_var_decl.c:206 afoo_1: normal @@ -243,19 +243,19 @@ b: ghost -> ghost [kernel] ghost_cv_var_decl.c:218 abar_1: normal -[kernel] :0 +[kernel] <unknown location> a: normal -> normal [kernel] ghost_cv_var_decl.c:219 abar_2: normal -[kernel] :0 +[kernel] <unknown location> a: normal -[kernel] :0 +[kernel] <unknown location> b: ghost -> ghost [kernel] ghost_cv_var_decl.c:220 abar_3: normal -[kernel] :0 +[kernel] <unknown location> a: normal -[kernel] :0 +[kernel] <unknown location> b: ghost -> ghost [kernel] ghost_cv_var_decl.c:223 reference_functions: normal