From d078323511f7212df5827b2b275a6cd7f52c9711 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Fri, 16 Feb 2024 12:41:05 +0100 Subject: [PATCH] [Eva] Enables all garbled mix messages by default. --- .../tests/dive/oracle/exceptional.res.oracle | 4 +++ .../bts/oracle/issue-eacsl-145.res.oracle | 3 ++ src/plugins/eva/self.ml | 4 +-- .../sum_with_unspecified_sequence.res.oracle | 4 +++ .../tests/known/oracle/exec.res.oracle | 12 +++++++ .../tests/known/oracle/printf.res.oracle | 4 +++ .../oracle/printf_garbled_mix.res.oracle | 4 +++ tests/builtins/oracle/alloc.0.res.oracle | 4 +++ tests/builtins/oracle/alloc.1.res.oracle | 5 +++ .../oracle/imprecise-malloc-free.res.oracle | 4 +++ tests/builtins/oracle/imprecise.res.oracle | 8 +++++ .../builtins/oracle/linked_list.1.res.oracle | 4 +++ tests/builtins/oracle/strchr.res.oracle | 4 +++ .../oracle_equality/linked_list.1.res.oracle | 4 +-- .../oracle_gauges/linked_list.1.res.oracle | 2 +- .../oracle_octagon/linked_list.1.res.oracle | 4 +-- .../oracle_symblocs/linked_list.1.res.oracle | 4 +-- tests/float/oracle/nonlin.0.res.oracle | 4 +++ tests/float/oracle/nonlin.1.res.oracle | 4 +++ tests/float/oracle/nonlin.2.res.oracle | 4 +++ tests/float/oracle/nonlin.3.res.oracle | 4 +++ tests/float/oracle/nonlin.4.res.oracle | 4 +++ tests/float/oracle/nonlin.5.res.oracle | 4 +++ tests/libc/oracle/pwd_h.res.oracle | 6 ++++ tests/libc/oracle/signal_h.res.oracle | 6 ++++ tests/libc/oracle/spawn_h.res.oracle | 8 +++++ tests/libc/oracle/unistd_h.0.res.oracle | 3 ++ tests/slicing/oracle/loops.10.res.oracle | 3 ++ tests/slicing/oracle/loops.19.res.oracle | 3 ++ tests/slicing/oracle/loops.20.res.oracle | 3 ++ tests/slicing/oracle/loops.21.res.oracle | 3 ++ tests/slicing/oracle/loops.22.res.oracle | 3 ++ tests/slicing/oracle/loops.23.res.oracle | 3 ++ tests/slicing/oracle/loops.8.res.oracle | 3 ++ tests/slicing/oracle/loops.9.res.oracle | 3 ++ tests/value/oracle/arith_pointer.res.oracle | 14 ++++++++ .../oracle/assign-leaf-indirect.res.oracle | 3 ++ tests/value/oracle/assigns_from.res.oracle | 3 ++ tests/value/oracle/behaviors1.res.oracle | 12 +++++++ tests/value/oracle/bitfield.res.oracle | 7 ++++ .../value/oracle/bitwise_pointer.0.res.oracle | 6 ++++ .../value/oracle/bitwise_pointer.1.res.oracle | 6 ++++ tests/value/oracle/context_free.res.oracle | 4 +++ tests/value/oracle/degeneration2.res.oracle | 4 +++ tests/value/oracle/empty_struct.6.res.oracle | 7 ++++ tests/value/oracle/from_call.0.res.oracle | 3 ++ tests/value/oracle/from_call.1.res.oracle | 3 ++ tests/value/oracle/gauges.res.oracle | 4 +++ .../oracle/imprecise_invalid_write.res.oracle | 6 ++++ tests/value/oracle/initialized.res.oracle | 4 +++ tests/value/oracle/inout_proto.res.oracle | 3 ++ tests/value/oracle/leaf.res.oracle | 24 ++++++++++++++ tests/value/oracle/leaf2.res.oracle | 7 ++++ tests/value/oracle/library.res.oracle | 17 ++++++++++ tests/value/oracle/logic.res.oracle | 7 ++++ .../oracle/multidim-relations.res.oracle | 6 ++++ tests/value/oracle/origin.0.res.oracle | 17 ++++++++++ tests/value/oracle/origin.1.res.oracle | 4 +++ tests/value/oracle/period.res.oracle | 6 ++++ tests/value/oracle/recursion.0.res.oracle | 7 ++++ tests/value/oracle/reduce_by_valid.res.oracle | 10 ++++++ tests/value/oracle/shift.0.res.oracle | 4 +++ tests/value/oracle/shift.1.res.oracle | 4 +++ tests/value/oracle/sizeof.res.oracle | 4 +++ tests/value/oracle/va_list2.0.res.oracle | 4 +++ .../oracle_apron/backward_add_ptr.res.oracle | 4 +-- tests/value/oracle_apron/gauges.res.oracle | 6 ++-- .../value/oracle_bitwise/addition.res.oracle | 0 .../bitwise_pointer.0.res.oracle | 0 .../bitwise_pointer.1.res.oracle | 0 .../oracle_bitwise/logic_ptr_cast.res.oracle | 0 .../value/oracle_equality/addition.res.oracle | 26 +++++++-------- .../oracle_equality/arith_pointer.res.oracle | 8 +++++ .../backward_add_ptr.res.oracle | 4 +-- .../value/oracle_equality/bitfield.res.oracle | 6 +++- .../bitwise_pointer.0.res.oracle | 4 +-- .../bitwise_pointer.1.res.oracle | 4 +-- .../oracle_equality/context_free.res.oracle | 4 +++ .../oracle_equality/empty_struct.6.res.oracle | 4 +++ tests/value/oracle_equality/gauges.res.oracle | 4 +++ .../value/oracle_equality/library.res.oracle | 2 +- .../value/oracle_equality/origin.0.res.oracle | 4 +-- tests/value/oracle_equality/period.res.oracle | 4 ++- .../oracle_equality/va_list2.0.res.oracle | 4 +++ tests/value/oracle_gauges/bitfield.res.oracle | 6 +++- tests/value/oracle_gauges/gauges.res.oracle | 32 +++++++++++-------- .../value/oracle_gauges/va_list2.0.res.oracle | 4 +++ .../value/oracle_octagon/bitfield.res.oracle | 6 +++- tests/value/oracle_octagon/gauges.res.oracle | 4 +-- .../bitwise_pointer.0.res.oracle | 4 +-- .../bitwise_pointer.1.res.oracle | 4 +-- .../value/oracle_symblocs/library.res.oracle | 2 +- 92 files changed, 448 insertions(+), 61 deletions(-) delete mode 100644 tests/value/oracle_bitwise/addition.res.oracle delete mode 100644 tests/value/oracle_bitwise/bitwise_pointer.0.res.oracle delete mode 100644 tests/value/oracle_bitwise/bitwise_pointer.1.res.oracle delete mode 100644 tests/value/oracle_bitwise/logic_ptr_cast.res.oracle create mode 100644 tests/value/oracle_equality/arith_pointer.res.oracle create mode 100644 tests/value/oracle_equality/context_free.res.oracle create mode 100644 tests/value/oracle_equality/empty_struct.6.res.oracle create mode 100644 tests/value/oracle_equality/gauges.res.oracle create mode 100644 tests/value/oracle_equality/va_list2.0.res.oracle diff --git a/src/plugins/dive/tests/dive/oracle/exceptional.res.oracle b/src/plugins/dive/tests/dive/oracle/exceptional.res.oracle index 47e5fcec857..ae50bf359dc 100644 --- a/src/plugins/dive/tests/dive/oracle/exceptional.res.oracle +++ b/src/plugins/dive/tests/dive/oracle/exceptional.res.oracle @@ -13,6 +13,10 @@ signed overflow. assert a + x ≤ 2147483647; [eva:alarm] exceptional.i:23: Warning: signed overflow. assert (int)(a + x) + (int)c ≤ 2147483647; +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + exceptional.i:5: arithmetic operation on addresses + (read 3 times, propagated 3 times) garbled mix of &{i} [eva:summary] ====== ANALYSIS SUMMARY ====== ---------------------------------------------------------------------------- 2 functions analyzed (out of 2): 100% coverage. diff --git a/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-145.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-145.res.oracle index 44a3cdfd58d..201d2b2a599 100644 --- a/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-145.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle/issue-eacsl-145.res.oracle @@ -18,6 +18,9 @@ [eva] using specification for function __e_acsl_full_init [eva] using specification for function __e_acsl_valid [eva] using specification for function __e_acsl_assert_register_ptr +[eva:garbled-mix:assigns] issue-eacsl-145.c:9: + The specification of function __e_acsl_assert_register_ptr + has generated a garbled mix of addresses for assigns clause data->values. [eva] using specification for function __e_acsl_assert_register_ulong [eva:alarm] issue-eacsl-145.c:9: Warning: function __e_acsl_assert_register_ulong: precondition data->values == \null || diff --git a/src/plugins/eva/self.ml b/src/plugins/eva/self.ml index 88f3fdf2c69..d1c33a8a5ee 100644 --- a/src/plugins/eva/self.ml +++ b/src/plugins/eva/self.ml @@ -96,9 +96,9 @@ let wkey_locals_escaping = register_warn_category "locals-escaping" let wkey_garbled_mix_write = register_warn_category "garbled-mix:write" let () = set_warn_status wkey_garbled_mix_write Log.Wfeedback let wkey_garbled_mix_assigns = register_warn_category "garbled-mix:assigns" -let () = set_warn_status wkey_garbled_mix_assigns Log.Winactive +let () = set_warn_status wkey_garbled_mix_assigns Log.Wfeedback let wkey_garbled_mix_summary = register_warn_category "garbled-mix:summary" -let () = set_warn_status wkey_garbled_mix_summary Log.Winactive +let () = set_warn_status wkey_garbled_mix_summary Log.Wfeedback let wkey_builtins_missing_spec = register_warn_category "builtins:missing-spec" let wkey_builtins_override = register_warn_category "builtins:override" let wkey_libc_unsupported_spec = register_warn_category "libc:unsupported-spec" diff --git a/src/plugins/variadic/tests/defined/oracle/sum_with_unspecified_sequence.res.oracle b/src/plugins/variadic/tests/defined/oracle/sum_with_unspecified_sequence.res.oracle index d8fbec93f6a..0597fca78db 100644 --- a/src/plugins/variadic/tests/defined/oracle/sum_with_unspecified_sequence.res.oracle +++ b/src/plugins/variadic/tests/defined/oracle/sum_with_unspecified_sequence.res.oracle @@ -23,6 +23,10 @@ [eva:alarm] sum_with_unspecified_sequence.c:14: Warning: signed overflow. assert ret + tmp ≤ 2147483647; (tmp from vararg) +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + Initial state (read 12 times, propagated 6 times) + garbled mix of &{S_0_S___va_params; S_1_S___va_params} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function sum: ret ∈ diff --git a/src/plugins/variadic/tests/known/oracle/exec.res.oracle b/src/plugins/variadic/tests/known/oracle/exec.res.oracle index 74ea04f2c8f..335dfe32f04 100644 --- a/src/plugins/variadic/tests/known/oracle/exec.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/exec.res.oracle @@ -20,8 +20,20 @@ Fallback translation of call execlp to a call to the specialized version execlp_fallback_1. [eva] Analyzing a complete application starting at main [eva] using specification for function execve +[eva:garbled-mix:assigns] exec.c:9: + The specification of function execve has generated a garbled mix of addresses + for assigns clause \result. [eva] using specification for function execv +[eva:garbled-mix:assigns] exec.c:11: + The specification of function execv has generated a garbled mix of addresses + for assigns clause \result. [eva] using specification for function execvp +[eva:garbled-mix:assigns] exec.c:12: + The specification of function execvp has generated a garbled mix of addresses + for assigns clause \result. +[eva:garbled-mix:assigns] exec.c:13: + The specification of function execve has generated a garbled mix of addresses + for assigns clause \result. [kernel:annot:missing-spec] exec.c:15: Warning: Neither code nor specification for function execlp_fallback_1, generating default assigns. See -generated-spec-* options for more info diff --git a/src/plugins/variadic/tests/known/oracle/printf.res.oracle b/src/plugins/variadic/tests/known/oracle/printf.res.oracle index efb382209eb..7b945647be0 100644 --- a/src/plugins/variadic/tests/known/oracle/printf.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/printf.res.oracle @@ -114,6 +114,10 @@ [eva] using specification for function printf_va_23 [eva] using specification for function printf_va_24 [eva] using specification for function printf_va_25 +[eva:garbled-mix:assigns] printf.c:68: + The specification of function printf_va_25 + has generated a garbled mix of addresses + for assigns clause __fc_stdout->__fc_FILE_data. [eva] using specification for function printf_va_26 [kernel:annot:missing-spec] printf.c:71: Warning: Neither code nor specification for function printf_fallback_1, diff --git a/src/plugins/variadic/tests/known/oracle/printf_garbled_mix.res.oracle b/src/plugins/variadic/tests/known/oracle/printf_garbled_mix.res.oracle index 55f26985dfe..2db3d363037 100644 --- a/src/plugins/variadic/tests/known/oracle/printf_garbled_mix.res.oracle +++ b/src/plugins/variadic/tests/known/oracle/printf_garbled_mix.res.oracle @@ -26,6 +26,10 @@ [eva] using specification for function printf_va_1 [eva] printf_garbled_mix.c:8: Frama_C_show_each_nb_printed: [-2147483648..2147483647] +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + printf_garbled_mix.c:6: arithmetic operation on addresses + (read 2 times, propagated 3 times) garbled mix of &{a} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: a[0] ∈ {1} diff --git a/tests/builtins/oracle/alloc.0.res.oracle b/tests/builtins/oracle/alloc.0.res.oracle index 7ce75e72f21..684b949a466 100644 --- a/tests/builtins/oracle/alloc.0.res.oracle +++ b/tests/builtins/oracle/alloc.0.res.oracle @@ -64,6 +64,10 @@ all target addresses were invalid. This path is assumed to be dead. [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + alloc.c:26: arithmetic operation on addresses + (read 3 times, propagated 1 times) garbled mix of &{__malloc_main_l25} [eva] alloc.c:18: assertion 'Eva,mem_access' got final status invalid. [eva] alloc.c:19: assertion 'Eva,mem_access' got final status invalid. [eva] alloc.c:20: assertion 'Eva,mem_access' got final status invalid. diff --git a/tests/builtins/oracle/alloc.1.res.oracle b/tests/builtins/oracle/alloc.1.res.oracle index 7633c770d71..77bfca7bbb7 100644 --- a/tests/builtins/oracle/alloc.1.res.oracle +++ b/tests/builtins/oracle/alloc.1.res.oracle @@ -30,6 +30,11 @@ [eva:alarm] alloc.c:56: Warning: signed overflow. assert *q + 1 ≤ 2147483647; [eva] Recording results for main_abs [eva] Done for function main_abs +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + alloc.c:51: arithmetic operation on addresses + (read 2 times, propagated 1 times) + garbled mix of &{__malloc_main_abs_l50} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main_abs: NULL[rbits 2048 to 4103] ∈ diff --git a/tests/builtins/oracle/imprecise-malloc-free.res.oracle b/tests/builtins/oracle/imprecise-malloc-free.res.oracle index 7134efd0323..4cd01a4b78e 100644 --- a/tests/builtins/oracle/imprecise-malloc-free.res.oracle +++ b/tests/builtins/oracle/imprecise-malloc-free.res.oracle @@ -64,6 +64,10 @@ weak free on bases: {__malloc_main_l15, __malloc_main_l16} [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + imprecise-malloc-free.c:13: arithmetic operation on addresses + (read 1 times, propagated 2 times) garbled mix of &{size2} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: __fc_heap_status ∈ [--..--] diff --git a/tests/builtins/oracle/imprecise.res.oracle b/tests/builtins/oracle/imprecise.res.oracle index ec7cb60e6e2..1ad813d673e 100644 --- a/tests/builtins/oracle/imprecise.res.oracle +++ b/tests/builtins/oracle/imprecise.res.oracle @@ -264,6 +264,10 @@ [from] Computing for function main [from] Done for function main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + imprecise.c:19: arithmetic operation on addresses + (read 3 times, propagated 1 times) garbled mix of &{j; k} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function cast_address: p ∈ {{ &x }} @@ -807,6 +811,10 @@ [from] Computing for function main [from] Done for function main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + imprecise.c:19: arithmetic operation on addresses + (read 3 times, propagated 1 times) garbled mix of &{j; k} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function cast_address: p ∈ {{ &x }} diff --git a/tests/builtins/oracle/linked_list.1.res.oracle b/tests/builtins/oracle/linked_list.1.res.oracle index 16a5a8ec3b5..c97ebeb2a70 100644 --- a/tests/builtins/oracle/linked_list.1.res.oracle +++ b/tests/builtins/oracle/linked_list.1.res.oracle @@ -806,6 +806,10 @@ Called from linked_list.c:51. [eva] using specification for function printf_va_1 [eva] linked_list.c:51: function printf_va_1: precondition got status valid. +[eva:garbled-mix:assigns] linked_list.c:51: + The specification of function printf_va_1 + has generated a garbled mix of addresses + for assigns clause __fc_stdout->__fc_FILE_data. [eva] Done for function printf_va_1 [kernel] linked_list.c:51: more than 100(128) elements to enumerate. Approximating. diff --git a/tests/builtins/oracle/strchr.res.oracle b/tests/builtins/oracle/strchr.res.oracle index ffbebfd90e0..e1298461c03 100644 --- a/tests/builtins/oracle/strchr.res.oracle +++ b/tests/builtins/oracle/strchr.res.oracle @@ -672,6 +672,10 @@ [eva] Done for function strchr_garbled_mix_in_char [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + strchr.c:541: arithmetic operation on addresses + (read 1 times, propagated 3 times) garbled mix of &{x} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function init_array_nondet: from ∈ {-1} diff --git a/tests/builtins/oracle_equality/linked_list.1.res.oracle b/tests/builtins/oracle_equality/linked_list.1.res.oracle index dc1c07fbca0..08a077ea283 100644 --- a/tests/builtins/oracle_equality/linked_list.1.res.oracle +++ b/tests/builtins/oracle_equality/linked_list.1.res.oracle @@ -16,9 +16,9 @@ 720a731,732 > [kernel] linked_list.c:44: > more than 100(128) elements to enumerate. Approximating. -810,811d821 +814,815d825 < [kernel] linked_list.c:51: < more than 100(128) elements to enumerate. Approximating. -819,820d828 +823,824d832 < [kernel] linked_list.c:44: < more than 100(128) elements to enumerate. Approximating. diff --git a/tests/builtins/oracle_gauges/linked_list.1.res.oracle b/tests/builtins/oracle_gauges/linked_list.1.res.oracle index ec6dff88c11..b4dd8f6901b 100644 --- a/tests/builtins/oracle_gauges/linked_list.1.res.oracle +++ b/tests/builtins/oracle_gauges/linked_list.1.res.oracle @@ -1,4 +1,4 @@ -817a818,823 +821a822,827 > [eva] computing for function printf_va_1 <- main. > Called from linked_list.c:51. > [eva] Done for function printf_va_1 diff --git a/tests/builtins/oracle_octagon/linked_list.1.res.oracle b/tests/builtins/oracle_octagon/linked_list.1.res.oracle index 4083e687dd3..166d64faad7 100644 --- a/tests/builtins/oracle_octagon/linked_list.1.res.oracle +++ b/tests/builtins/oracle_octagon/linked_list.1.res.oracle @@ -10,9 +10,9 @@ 720a727,728 > [kernel] linked_list.c:44: > more than 100(128) elements to enumerate. Approximating. -810,811d817 +814,815d821 < [kernel] linked_list.c:51: < more than 100(128) elements to enumerate. Approximating. -819,820d824 +823,824d828 < [kernel] linked_list.c:44: < more than 100(128) elements to enumerate. Approximating. diff --git a/tests/builtins/oracle_symblocs/linked_list.1.res.oracle b/tests/builtins/oracle_symblocs/linked_list.1.res.oracle index 4083e687dd3..166d64faad7 100644 --- a/tests/builtins/oracle_symblocs/linked_list.1.res.oracle +++ b/tests/builtins/oracle_symblocs/linked_list.1.res.oracle @@ -10,9 +10,9 @@ 720a727,728 > [kernel] linked_list.c:44: > more than 100(128) elements to enumerate. Approximating. -810,811d817 +814,815d821 < [kernel] linked_list.c:51: < more than 100(128) elements to enumerate. Approximating. -819,820d824 +823,824d828 < [kernel] linked_list.c:44: < more than 100(128) elements to enumerate. Approximating. diff --git a/tests/float/oracle/nonlin.0.res.oracle b/tests/float/oracle/nonlin.0.res.oracle index 04ffb0d077b..043c52aa669 100644 --- a/tests/float/oracle/nonlin.0.res.oracle +++ b/tests/float/oracle/nonlin.0.res.oracle @@ -284,6 +284,10 @@ [eva] Done for function subdivide_strategy [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + nonlin.c:98: arithmetic operation on addresses + (read 1 times, propagated 2 times) garbled mix of &{x_0} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function access_bits: rbits1 ∈ {0; 1; 2} diff --git a/tests/float/oracle/nonlin.1.res.oracle b/tests/float/oracle/nonlin.1.res.oracle index 54cd152e82f..b69461ed024 100644 --- a/tests/float/oracle/nonlin.1.res.oracle +++ b/tests/float/oracle/nonlin.1.res.oracle @@ -311,6 +311,10 @@ [eva] Done for function subdivide_strategy [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + nonlin.c:98: arithmetic operation on addresses + (read 1 times, propagated 2 times) garbled mix of &{x_0} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function access_bits: rbits1 ∈ {0; 1; 2} diff --git a/tests/float/oracle/nonlin.2.res.oracle b/tests/float/oracle/nonlin.2.res.oracle index 9ae60320eb1..05b14b3983b 100644 --- a/tests/float/oracle/nonlin.2.res.oracle +++ b/tests/float/oracle/nonlin.2.res.oracle @@ -285,6 +285,10 @@ [eva] Done for function subdivide_strategy [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + nonlin.c:98: arithmetic operation on addresses + (read 1 times, propagated 2 times) garbled mix of &{x_0} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function access_bits: rbits1 ∈ {0; 1; 2} diff --git a/tests/float/oracle/nonlin.3.res.oracle b/tests/float/oracle/nonlin.3.res.oracle index 17b03c98f92..24ccbef205c 100644 --- a/tests/float/oracle/nonlin.3.res.oracle +++ b/tests/float/oracle/nonlin.3.res.oracle @@ -284,6 +284,10 @@ [eva] Done for function subdivide_strategy [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + nonlin.c:98: arithmetic operation on addresses + (read 1 times, propagated 2 times) garbled mix of &{x_0} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function access_bits: rbits1 ∈ {0; 1; 2} diff --git a/tests/float/oracle/nonlin.4.res.oracle b/tests/float/oracle/nonlin.4.res.oracle index 33877fa4e08..a0f41891c24 100644 --- a/tests/float/oracle/nonlin.4.res.oracle +++ b/tests/float/oracle/nonlin.4.res.oracle @@ -311,6 +311,10 @@ [eva] Done for function subdivide_strategy [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + nonlin.c:98: arithmetic operation on addresses + (read 1 times, propagated 2 times) garbled mix of &{x_0} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function access_bits: rbits1 ∈ {0; 1; 2} diff --git a/tests/float/oracle/nonlin.5.res.oracle b/tests/float/oracle/nonlin.5.res.oracle index 66c509fd9b8..25cd26ba1ee 100644 --- a/tests/float/oracle/nonlin.5.res.oracle +++ b/tests/float/oracle/nonlin.5.res.oracle @@ -285,6 +285,10 @@ [eva] Done for function subdivide_strategy [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + nonlin.c:98: arithmetic operation on addresses + (read 1 times, propagated 2 times) garbled mix of &{x_0} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function access_bits: rbits1 ∈ {0; 1; 2} diff --git a/tests/libc/oracle/pwd_h.res.oracle b/tests/libc/oracle/pwd_h.res.oracle index 6cdda1a2be9..5dedb215f1a 100644 --- a/tests/libc/oracle/pwd_h.res.oracle +++ b/tests/libc/oracle/pwd_h.res.oracle @@ -7,6 +7,9 @@ [eva] computing for function getpwuid <- main. Called from pwd_h.c:10. [eva] using specification for function getpwuid +[eva:garbled-mix:assigns] pwd_h.c:10: + The specification of function getpwuid + has generated a garbled mix of addresses for assigns clause __fc_pwd. [eva] Done for function getpwuid [eva:alarm] pwd_h.c:13: Warning: assertion got status unknown. [eva:alarm] pwd_h.c:14: Warning: assertion got status unknown. @@ -16,6 +19,9 @@ Called from pwd_h.c:18. [eva] using specification for function getpwnam [eva] pwd_h.c:18: function getpwnam: precondition 'valid_name' got status valid. +[eva:garbled-mix:assigns] pwd_h.c:18: + The specification of function getpwnam + has generated a garbled mix of addresses for assigns clause __fc_pwd. [eva] Done for function getpwnam [eva:alarm] pwd_h.c:21: Warning: assertion got status unknown. [eva:alarm] pwd_h.c:22: Warning: assertion got status unknown. diff --git a/tests/libc/oracle/signal_h.res.oracle b/tests/libc/oracle/signal_h.res.oracle index 1b2258ac3dd..fe4f9414bf7 100644 --- a/tests/libc/oracle/signal_h.res.oracle +++ b/tests/libc/oracle/signal_h.res.oracle @@ -112,6 +112,9 @@ function sigaction: precondition 'valid_read_act_or_null' got status valid. [eva] signal_h.c:45: function sigaction: precondition 'separation,separated_acts' got status valid. +[eva:garbled-mix:assigns] signal_h.c:45: + The specification of function sigaction + has generated a garbled mix of addresses for assigns clause *oldact. [eva] Done for function sigaction [eva] computing for function sigaction <- main. Called from signal_h.c:45. @@ -128,6 +131,9 @@ function sigaction: precondition 'separation,separated_acts' got status valid. [eva] FRAMAC_SHARE/libc/signal.h:229: cannot evaluate ACSL term, unsupported ACSL construct: logic coercion struct sigaction -> set<struct sigaction> +[eva:garbled-mix:assigns] signal_h.c:48: + The specification of function sigaction + has generated a garbled mix of addresses for assigns clause *oldact. [eva] Done for function sigaction [eva] computing for function sigaction <- main. Called from signal_h.c:51. diff --git a/tests/libc/oracle/spawn_h.res.oracle b/tests/libc/oracle/spawn_h.res.oracle index 4b4c978087e..08866e9f1aa 100644 --- a/tests/libc/oracle/spawn_h.res.oracle +++ b/tests/libc/oracle/spawn_h.res.oracle @@ -7,6 +7,9 @@ [eva] computing for function getopt <- main. Called from spawn_h.c:36. [eva] using specification for function getopt +[eva:garbled-mix:assigns] spawn_h.c:36: + The specification of function getopt has generated a garbled mix of addresses + for assigns clause \result. [eva] Done for function getopt [kernel:annot:missing-spec] spawn_h.c:43: Warning: Neither code nor specification for function posix_spawn_file_actions_init, @@ -249,6 +252,11 @@ [eva] Done for function exit [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + spawn_h.c:36: assigns clause on addresses + (read 20 times, propagated 13 times) + garbled mix of &{S_argv; S_0_S_argv; S_1_S_argv} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: NON TERMINATING FUNCTION diff --git a/tests/libc/oracle/unistd_h.0.res.oracle b/tests/libc/oracle/unistd_h.0.res.oracle index 24a810167ef..46a982f0c80 100644 --- a/tests/libc/oracle/unistd_h.0.res.oracle +++ b/tests/libc/oracle/unistd_h.0.res.oracle @@ -58,6 +58,9 @@ function execv: precondition 'valid_string_path' got status valid. [eva] unistd_h.c:17: function execv: precondition 'valid_string_argv0' got status valid. +[eva:garbled-mix:assigns] unistd_h.c:17: + The specification of function execv has generated a garbled mix of addresses + for assigns clause \result. [eva] Done for function execv [eva] computing for function execv <- main. Called from unistd_h.c:17. diff --git a/tests/slicing/oracle/loops.10.res.oracle b/tests/slicing/oracle/loops.10.res.oracle index 8b074bf06ab..7ba1874acea 100644 --- a/tests/slicing/oracle/loops.10.res.oracle +++ b/tests/slicing/oracle/loops.10.res.oracle @@ -12,6 +12,9 @@ [eva] computing for function may_write_Y_from_Z <- main. Called from loops.i:199. [eva] using specification for function may_write_Y_from_Z +[eva:garbled-mix:assigns] loops.i:199: + The specification of function may_write_Y_from_Z + has generated a garbled mix of addresses for assigns clause *p. [eva] Done for function may_write_Y_from_Z [eva] computing for function loop <- main. Called from loops.i:202. diff --git a/tests/slicing/oracle/loops.19.res.oracle b/tests/slicing/oracle/loops.19.res.oracle index 34457cfad25..0998264ade1 100644 --- a/tests/slicing/oracle/loops.19.res.oracle +++ b/tests/slicing/oracle/loops.19.res.oracle @@ -12,6 +12,9 @@ [eva] computing for function may_write_Y_from_Z <- main. Called from loops.i:199. [eva] using specification for function may_write_Y_from_Z +[eva:garbled-mix:assigns] loops.i:199: + The specification of function may_write_Y_from_Z + has generated a garbled mix of addresses for assigns clause *p. [eva] Done for function may_write_Y_from_Z [eva] computing for function loop <- main. Called from loops.i:202. diff --git a/tests/slicing/oracle/loops.20.res.oracle b/tests/slicing/oracle/loops.20.res.oracle index 27d8cdb8355..6e18bd872d2 100644 --- a/tests/slicing/oracle/loops.20.res.oracle +++ b/tests/slicing/oracle/loops.20.res.oracle @@ -12,6 +12,9 @@ [eva] computing for function may_write_Y_from_Z <- main. Called from loops.i:199. [eva] using specification for function may_write_Y_from_Z +[eva:garbled-mix:assigns] loops.i:199: + The specification of function may_write_Y_from_Z + has generated a garbled mix of addresses for assigns clause *p. [eva] Done for function may_write_Y_from_Z [eva] computing for function loop <- main. Called from loops.i:202. diff --git a/tests/slicing/oracle/loops.21.res.oracle b/tests/slicing/oracle/loops.21.res.oracle index 9adf543884b..8636ad07b17 100644 --- a/tests/slicing/oracle/loops.21.res.oracle +++ b/tests/slicing/oracle/loops.21.res.oracle @@ -12,6 +12,9 @@ [eva] computing for function may_write_Y_from_Z <- main. Called from loops.i:199. [eva] using specification for function may_write_Y_from_Z +[eva:garbled-mix:assigns] loops.i:199: + The specification of function may_write_Y_from_Z + has generated a garbled mix of addresses for assigns clause *p. [eva] Done for function may_write_Y_from_Z [eva] computing for function loop <- main. Called from loops.i:202. diff --git a/tests/slicing/oracle/loops.22.res.oracle b/tests/slicing/oracle/loops.22.res.oracle index 7d41e9a40cd..3313fbc32d9 100644 --- a/tests/slicing/oracle/loops.22.res.oracle +++ b/tests/slicing/oracle/loops.22.res.oracle @@ -12,6 +12,9 @@ [eva] computing for function may_write_Y_from_Z <- main. Called from loops.i:199. [eva] using specification for function may_write_Y_from_Z +[eva:garbled-mix:assigns] loops.i:199: + The specification of function may_write_Y_from_Z + has generated a garbled mix of addresses for assigns clause *p. [eva] Done for function may_write_Y_from_Z [eva] computing for function loop <- main. Called from loops.i:202. diff --git a/tests/slicing/oracle/loops.23.res.oracle b/tests/slicing/oracle/loops.23.res.oracle index 24eb43a90cb..ae8f97a78fc 100644 --- a/tests/slicing/oracle/loops.23.res.oracle +++ b/tests/slicing/oracle/loops.23.res.oracle @@ -12,6 +12,9 @@ [eva] computing for function may_write_Y_from_Z <- main. Called from loops.i:199. [eva] using specification for function may_write_Y_from_Z +[eva:garbled-mix:assigns] loops.i:199: + The specification of function may_write_Y_from_Z + has generated a garbled mix of addresses for assigns clause *p. [eva] Done for function may_write_Y_from_Z [eva] computing for function loop <- main. Called from loops.i:202. diff --git a/tests/slicing/oracle/loops.8.res.oracle b/tests/slicing/oracle/loops.8.res.oracle index 3c7880c3af1..f1d9bbd8669 100644 --- a/tests/slicing/oracle/loops.8.res.oracle +++ b/tests/slicing/oracle/loops.8.res.oracle @@ -12,6 +12,9 @@ [eva] computing for function may_write_Y_from_Z <- main. Called from loops.i:199. [eva] using specification for function may_write_Y_from_Z +[eva:garbled-mix:assigns] loops.i:199: + The specification of function may_write_Y_from_Z + has generated a garbled mix of addresses for assigns clause *p. [eva] Done for function may_write_Y_from_Z [eva] computing for function loop <- main. Called from loops.i:202. diff --git a/tests/slicing/oracle/loops.9.res.oracle b/tests/slicing/oracle/loops.9.res.oracle index abc0b21b556..a2caa35921c 100644 --- a/tests/slicing/oracle/loops.9.res.oracle +++ b/tests/slicing/oracle/loops.9.res.oracle @@ -12,6 +12,9 @@ [eva] computing for function may_write_Y_from_Z <- main. Called from loops.i:199. [eva] using specification for function may_write_Y_from_Z +[eva:garbled-mix:assigns] loops.i:199: + The specification of function may_write_Y_from_Z + has generated a garbled mix of addresses for assigns clause *p. [eva] Done for function may_write_Y_from_Z [eva] computing for function loop <- main. Called from loops.i:202. diff --git a/tests/value/oracle/arith_pointer.res.oracle b/tests/value/oracle/arith_pointer.res.oracle index d8c8908c4b6..2261d0849e3 100644 --- a/tests/value/oracle/arith_pointer.res.oracle +++ b/tests/value/oracle/arith_pointer.res.oracle @@ -42,6 +42,10 @@ [eva] Done for function main2 [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + arith_pointer.c:54: arithmetic operation on addresses + (read 2 times, propagated 2 times) garbled mix of &{x} [eva] arith_pointer.c:30: assertion 'Eva,differing_blocks' got final status invalid. [eva] ====== VALUES COMPUTED ====== @@ -151,6 +155,16 @@ [eva] Done for function main2 [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + arith_pointer.c:54: arithmetic operation on addresses + (read 2 times, propagated 2 times) garbled mix of &{x} + arith_pointer.c:30: arithmetic operation on addresses + (read 1 times, propagated 1 times) garbled mix of &{x; y} + arith_pointer.c:49: arithmetic operation on addresses + (read 1 times, propagated 1 times) garbled mix of &{x; y} + arith_pointer.c:51: arithmetic operation on addresses + (read 1 times, propagated 1 times) garbled mix of &{x; y} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main1: t[0..1] ∈ {-3} diff --git a/tests/value/oracle/assign-leaf-indirect.res.oracle b/tests/value/oracle/assign-leaf-indirect.res.oracle index d1632315bcb..4d4a939a92b 100644 --- a/tests/value/oracle/assign-leaf-indirect.res.oracle +++ b/tests/value/oracle/assign-leaf-indirect.res.oracle @@ -9,6 +9,9 @@ [eva] computing for function f <- main. Called from assign-leaf-indirect.i:8. [eva] using specification for function f +[eva:garbled-mix:assigns] assign-leaf-indirect.i:8: + The specification of function f has generated a garbled mix of addresses + for assigns clause y. [eva] Done for function f [eva] computing for function g <- main. Called from assign-leaf-indirect.i:9. diff --git a/tests/value/oracle/assigns_from.res.oracle b/tests/value/oracle/assigns_from.res.oracle index 002087f31ba..55b41ae8a07 100644 --- a/tests/value/oracle/assigns_from.res.oracle +++ b/tests/value/oracle/assigns_from.res.oracle @@ -298,6 +298,9 @@ [eva] computing for function f18 <- main18 <- main. Called from assigns_from.i:215. [eva] using specification for function f18 +[eva:garbled-mix:assigns] assigns_from.i:215: + The specification of function f18 has generated a garbled mix of addresses + for assigns clause *x. [eva] Done for function f18 [eva] Recording results for main18 [from] Computing for function main18 diff --git a/tests/value/oracle/behaviors1.res.oracle b/tests/value/oracle/behaviors1.res.oracle index c434339fdec..6266ee5cf35 100644 --- a/tests/value/oracle/behaviors1.res.oracle +++ b/tests/value/oracle/behaviors1.res.oracle @@ -305,9 +305,15 @@ [eva] computing for function f <- test_assigns <- main. Called from behaviors1.i:473. [eva] using specification for function f +[eva:garbled-mix:assigns] behaviors1.i:473: + The specification of function f has generated a garbled mix of addresses + for assigns clause \result. [eva] Done for function f [eva] computing for function f <- test_assigns <- main. Called from behaviors1.i:474. +[eva:garbled-mix:assigns] behaviors1.i:474: + The specification of function f has generated a garbled mix of addresses + for assigns clause \result. [eva] Done for function f [eva] computing for function f <- test_assigns <- main. Called from behaviors1.i:475. @@ -440,6 +446,12 @@ [eva] Done for function test_narrow [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + behaviors1.i:473: assigns clause on addresses + (read 1 times, propagated 3 times) garbled mix of &{a} + behaviors1.i:474: assigns clause on addresses + (read 1 times, propagated 3 times) garbled mix of &{b} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function test_123_comp_2345_comp_disj: a ∈ [--..--] diff --git a/tests/value/oracle/bitfield.res.oracle b/tests/value/oracle/bitfield.res.oracle index 3b980d881cf..3751001cbba 100644 --- a/tests/value/oracle/bitfield.res.oracle +++ b/tests/value/oracle/bitfield.res.oracle @@ -105,6 +105,9 @@ [eva] computing for function leaf <- imprecise_bts_1671 <- main. Called from bitfield.i:70. [eva] using specification for function leaf +[eva:garbled-mix:assigns] bitfield.i:70: + The specification of function leaf has generated a garbled mix of addresses + for assigns clause *p1. [eva] Done for function leaf [eva] bitfield.i:71: Frama_C_show_each: @@ -204,6 +207,10 @@ [eva] Done for function char_short [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + bitfield.i:70: misaligned read of addresses + (read 5 times, propagated 7 times) garbled mix of &{b; ee} [eva] bitfield.i:102: assertion 'Eva,initialization' got final status invalid. [scope:rm_asserts] removing 1 assertion(s) [eva] ====== VALUES COMPUTED ====== diff --git a/tests/value/oracle/bitwise_pointer.0.res.oracle b/tests/value/oracle/bitwise_pointer.0.res.oracle index aa3a3f4a6a2..6b52884383a 100644 --- a/tests/value/oracle/bitwise_pointer.0.res.oracle +++ b/tests/value/oracle/bitwise_pointer.0.res.oracle @@ -43,6 +43,12 @@ out of bounds write. assert \valid(p1); [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + bitwise_pointer.i:18: arithmetic operation on addresses + (read 2 times, propagated 1 times) garbled mix of &{t} + bitwise_pointer.i:22: arithmetic operation on addresses + (read 2 times, propagated 1 times) garbled mix of &{t1} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: t[0] ∈ {0; 5} diff --git a/tests/value/oracle/bitwise_pointer.1.res.oracle b/tests/value/oracle/bitwise_pointer.1.res.oracle index aa3a3f4a6a2..6b52884383a 100644 --- a/tests/value/oracle/bitwise_pointer.1.res.oracle +++ b/tests/value/oracle/bitwise_pointer.1.res.oracle @@ -43,6 +43,12 @@ out of bounds write. assert \valid(p1); [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + bitwise_pointer.i:18: arithmetic operation on addresses + (read 2 times, propagated 1 times) garbled mix of &{t} + bitwise_pointer.i:22: arithmetic operation on addresses + (read 2 times, propagated 1 times) garbled mix of &{t1} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: t[0] ∈ {0; 5} diff --git a/tests/value/oracle/context_free.res.oracle b/tests/value/oracle/context_free.res.oracle index ffee5073aff..ba68025f931 100644 --- a/tests/value/oracle/context_free.res.oracle +++ b/tests/value/oracle/context_free.res.oracle @@ -90,6 +90,10 @@ pointer to function with incompatible type. assert \valid_function(g); [eva] Recording results for f [eva] Done for function f +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + Initial state (read 9 times, propagated 5 times) + garbled mix of &{WELL_uu; S_p_svoid; S_qvoid; S_0_S_vvv; S_vv} [eva] context_free.i:62: assertion 'Eva,function_pointer' got final status invalid. [eva] ====== VALUES COMPUTED ====== diff --git a/tests/value/oracle/degeneration2.res.oracle b/tests/value/oracle/degeneration2.res.oracle index de456405cd9..e792578b81a 100644 --- a/tests/value/oracle/degeneration2.res.oracle +++ b/tests/value/oracle/degeneration2.res.oracle @@ -23,6 +23,10 @@ accessing uninitialized left-value. assert \initialized(&offset_uninit); [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + degeneration2.i:14: arithmetic operation on addresses + (read 6 times, propagated 1 times) garbled mix of &{B; C; D; E} [eva] degeneration2.i:25: assertion 'Eva,initialization' got final status invalid. [eva] ====== VALUES COMPUTED ====== diff --git a/tests/value/oracle/empty_struct.6.res.oracle b/tests/value/oracle/empty_struct.6.res.oracle index 88263f19b58..cf2ce4f7e50 100644 --- a/tests/value/oracle/empty_struct.6.res.oracle +++ b/tests/value/oracle/empty_struct.6.res.oracle @@ -8,6 +8,9 @@ [eva] computing for function f <- main4. Called from empty_struct.c:99. [eva] using specification for function f +[eva:garbled-mix:assigns] empty_struct.c:99: + The specification of function f has generated a garbled mix of addresses + for assigns clause \result. [eva] Done for function f [kernel:annot:missing-spec] empty_struct.c:100: Warning: Neither code nor specification for function g, @@ -18,6 +21,10 @@ [eva] Done for function g [eva] Recording results for main4 [eva] Done for function main4 +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + empty_struct.c:99: assigns clause on addresses + (read 2 times, propagated 3 times) garbled mix of &{gs} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main4: r ∈ diff --git a/tests/value/oracle/from_call.0.res.oracle b/tests/value/oracle/from_call.0.res.oracle index 88c6c5d8c6d..f3377d39ae6 100644 --- a/tests/value/oracle/from_call.0.res.oracle +++ b/tests/value/oracle/from_call.0.res.oracle @@ -178,6 +178,9 @@ [eva] computing for function unavailable_f <- main. Called from from_call.i:96. [eva] using specification for function unavailable_f +[eva:garbled-mix:assigns] from_call.i:96: + The specification of function unavailable_f + has generated a garbled mix of addresses for assigns clause AR. [eva] Done for function unavailable_f [eva] Recording results for main [from] Computing for function main diff --git a/tests/value/oracle/from_call.1.res.oracle b/tests/value/oracle/from_call.1.res.oracle index 560d21d929a..18901931cee 100644 --- a/tests/value/oracle/from_call.1.res.oracle +++ b/tests/value/oracle/from_call.1.res.oracle @@ -142,6 +142,9 @@ [eva] computing for function unavailable_f <- main. Called from from_call.i:96. [eva] using specification for function unavailable_f +[eva:garbled-mix:assigns] from_call.i:96: + The specification of function unavailable_f + has generated a garbled mix of addresses for assigns clause AR. [eva] Done for function unavailable_f [eva] Recording results for main [eva] Done for function main diff --git a/tests/value/oracle/gauges.res.oracle b/tests/value/oracle/gauges.res.oracle index ce2c46bcca8..4b7f0372dd0 100644 --- a/tests/value/oracle/gauges.res.oracle +++ b/tests/value/oracle/gauges.res.oracle @@ -710,6 +710,10 @@ [eva] Done for function main17 [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + gauges.c:188: arithmetic operation on addresses + (read 14 times, propagated 12 times) garbled mix of &{x; y} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main0: i ∈ {1; 162} diff --git a/tests/value/oracle/imprecise_invalid_write.res.oracle b/tests/value/oracle/imprecise_invalid_write.res.oracle index 3b45112de2a..49172ffd8d9 100644 --- a/tests/value/oracle/imprecise_invalid_write.res.oracle +++ b/tests/value/oracle/imprecise_invalid_write.res.oracle @@ -45,6 +45,12 @@ [eva] Done for function main3 [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + imprecise_invalid_write.i:9: arithmetic operation on addresses + (read 2 times, propagated 1 times) garbled mix of &{main1} + imprecise_invalid_write.i:16: arithmetic operation on addresses + (read 2 times, propagated 1 times) garbled mix of &{"abc"} [eva] imprecise_invalid_write.i:5: assertion 'Eva,mem_access' got final status invalid. [eva] imprecise_invalid_write.i:10: diff --git a/tests/value/oracle/initialized.res.oracle b/tests/value/oracle/initialized.res.oracle index 1e822fd04fa..150e3f18242 100644 --- a/tests/value/oracle/initialized.res.oracle +++ b/tests/value/oracle/initialized.res.oracle @@ -231,6 +231,10 @@ [eva] Done for function reduce_by_negation [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + initialized.c:50: arithmetic operation on addresses + (read 1 times, propagated 2 times) garbled mix of &{b4} [eva] initialized.c:93: assertion 'Eva,initialization' got final status invalid. [eva] initialized.c:104: assertion 'Eva,initialization' got final status invalid. diff --git a/tests/value/oracle/inout_proto.res.oracle b/tests/value/oracle/inout_proto.res.oracle index 77fcb77f701..d96ee3689cb 100644 --- a/tests/value/oracle/inout_proto.res.oracle +++ b/tests/value/oracle/inout_proto.res.oracle @@ -13,6 +13,9 @@ [eva] computing for function SendBuffer <- main <- main_main. Called from inout_proto.i:19. [eva] using specification for function SendBuffer +[eva:garbled-mix:assigns] inout_proto.i:19: + The specification of function SendBuffer + has generated a garbled mix of addresses for assigns clause *RETURN_CODE. [eva] Done for function SendBuffer [eva] Recording results for main [eva] Done for function main diff --git a/tests/value/oracle/leaf.res.oracle b/tests/value/oracle/leaf.res.oracle index d966184b444..865b2bc8486 100644 --- a/tests/value/oracle/leaf.res.oracle +++ b/tests/value/oracle/leaf.res.oracle @@ -39,6 +39,9 @@ [eva] computing for function f_int_star_int <- main. Called from leaf.i:50. [eva] using specification for function f_int_star_int +[eva:garbled-mix:assigns] leaf.i:50: + The specification of function f_int_star_int + has generated a garbled mix of addresses for assigns clause \result. [eva] Done for function f_int_star_int [eva] leaf.i:51: Frama_C_show_each_F: [-2147483648..2147483647] [eva:alarm] leaf.i:52: Warning: out of bounds write. assert \valid(p); @@ -46,6 +49,9 @@ [eva] computing for function f_int_star_int_star_int <- main. Called from leaf.i:55. [eva] using specification for function f_int_star_int_star_int +[eva:garbled-mix:assigns] leaf.i:55: + The specification of function f_int_star_int_star_int + has generated a garbled mix of addresses for assigns clause \result. [eva] Done for function f_int_star_int_star_int [eva] leaf.i:56: Frama_C_show_each_G: {{ &g }} [eva] leaf.i:57: Frama_C_show_each_F: {5} @@ -85,6 +91,9 @@ [eva] computing for function f_st_star_cint_st_star_cint <- main. Called from leaf.i:68. [eva] using specification for function f_st_star_cint_st_star_cint +[eva:garbled-mix:assigns] leaf.i:68: + The specification of function f_st_star_cint_st_star_cint + has generated a garbled mix of addresses for assigns clause \result. [eva] Done for function f_st_star_cint_st_star_cint [kernel:annot:missing-spec] leaf.i:69: Warning: Neither code nor specification for function f_st_star_int_st_star_int, @@ -92,6 +101,9 @@ [eva] computing for function f_st_star_int_st_star_int <- main. Called from leaf.i:69. [eva] using specification for function f_st_star_int_st_star_int +[eva:garbled-mix:assigns] leaf.i:69: + The specification of function f_st_star_int_st_star_int + has generated a garbled mix of addresses for assigns clause \result. [eva] Done for function f_st_star_int_st_star_int [kernel:annot:missing-spec] leaf.i:70: Warning: Neither code nor specification for function f_st_tab3_int_st_tab3_int, @@ -106,6 +118,9 @@ [eva] computing for function f_star_st_star_cint_int <- main. Called from leaf.i:72. [eva] using specification for function f_star_st_star_cint_int +[eva:garbled-mix:assigns] leaf.i:72: + The specification of function f_star_st_star_cint_int + has generated a garbled mix of addresses for assigns clause \result. [eva] Done for function f_star_st_star_cint_int [kernel:annot:missing-spec] leaf.i:73: Warning: Neither code nor specification for function f_star_st_star_int_int, @@ -113,6 +128,9 @@ [eva] computing for function f_star_st_star_int_int <- main. Called from leaf.i:73. [eva] using specification for function f_star_st_star_int_int +[eva:garbled-mix:assigns] leaf.i:73: + The specification of function f_star_st_star_int_int + has generated a garbled mix of addresses for assigns clause \result. [eva] Done for function f_star_st_star_int_int [kernel:annot:missing-spec] leaf.i:74: Warning: Neither code nor specification for function f_star_st_tab3_int_int, @@ -123,6 +141,12 @@ [eva] Done for function f_star_st_tab3_int_int [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + leaf.i:55: assigns clause on addresses (read 10 times, propagated 2 times) + garbled mix of &{pg} + leaf.i:50: assigns clause on addresses (read 4 times, propagated 2 times) + garbled mix of &{g} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: T[0] ∈ [--..--] diff --git a/tests/value/oracle/leaf2.res.oracle b/tests/value/oracle/leaf2.res.oracle index 5de89a4124f..c03b05b96d4 100644 --- a/tests/value/oracle/leaf2.res.oracle +++ b/tests/value/oracle/leaf2.res.oracle @@ -14,11 +14,18 @@ [eva] computing for function f <- main. Called from leaf2.i:6. [eva] using specification for function f +[eva:garbled-mix:assigns] leaf2.i:6: + The specification of function f has generated a garbled mix of addresses + for assigns clause \result. [eva] Done for function f [eva:alarm] leaf2.i:7: Warning: signed overflow. assert -2147483648 ≤ G + 1; [eva:alarm] leaf2.i:7: Warning: signed overflow. assert G + 1 ≤ 2147483647; [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + leaf2.i:6: assigns clause on addresses (read 4 times, propagated 4 times) + garbled mix of &{I} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: G ∈ {{ garbled mix of &{I} (origin: Library function {leaf2.i:6}) }} diff --git a/tests/value/oracle/library.res.oracle b/tests/value/oracle/library.res.oracle index 01756f25fda..992d56c788e 100644 --- a/tests/value/oracle/library.res.oracle +++ b/tests/value/oracle/library.res.oracle @@ -86,6 +86,9 @@ [eva] computing for function f_star_int <- main. Called from library.i:31. [eva] using specification for function f_star_int +[eva:garbled-mix:assigns] library.i:31: + The specification of function f_star_int + has generated a garbled mix of addresses for assigns clause \result. [eva] Done for function f_star_int [eva:alarm] library.i:32: Warning: out of bounds write. assert \valid(G1); [eva:alarm] library.i:33: Warning: out of bounds read. assert \valid_read(G); @@ -109,6 +112,9 @@ [eva] computing for function i <- main. Called from library.i:41. [eva] using specification for function i +[eva:garbled-mix:assigns] library.i:41: + The specification of function i has generated a garbled mix of addresses + for assigns clause \result. [eva] Done for function i [eva:alarm] library.i:42: Warning: out of bounds read. assert \valid_read(pf); [eva:alarm] library.i:42: Warning: @@ -122,10 +128,21 @@ [eva] computing for function k <- main. Called from library.i:45. [eva] using specification for function k +[eva:garbled-mix:assigns] library.i:45: + The specification of function k has generated a garbled mix of addresses + for assigns clause \result. [eva] Done for function k [eva:alarm] library.i:46: Warning: out of bounds write. assert \valid(pd); [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + library.i:31: assigns clause on addresses + (read 2 times, propagated 2 times) garbled mix of &{S_gpi} + library.i:41: assigns clause on addresses + (read 2 times, propagated 2 times) garbled mix of &{S_gpf} + library.i:45: assigns clause on addresses + (read 2 times, propagated 2 times) garbled mix of &{S_gpd} [eva] library.i:38: assertion 'Eva,function_pointer' got final status invalid. [eva] library.i:39: assertion 'Eva,function_pointer' got final status invalid. [eva] library.i:40: assertion 'Eva,function_pointer' got final status invalid. diff --git a/tests/value/oracle/logic.res.oracle b/tests/value/oracle/logic.res.oracle index cc514176b48..77e8322bc7e 100644 --- a/tests/value/oracle/logic.res.oracle +++ b/tests/value/oracle/logic.res.oracle @@ -415,6 +415,9 @@ [eva] logic.c:408: Frama_C_show_each_set: {0; 1; 2; 3; 4; 5} [eva] computing for function abs <- int_abs <- main. Called from logic.c:411. +[eva:garbled-mix:assigns] logic.c:411: + The specification of function abs has generated a garbled mix of addresses + for assigns clause \result. [eva] Done for function abs [eva] logic.c:412: Frama_C_show_each_gm: @@ -560,6 +563,10 @@ [eva] Done for function plet [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + logic.c:411: assigns clause on addresses (read 1 times, propagated 2 times) + garbled mix of &{x_0} [eva] logic.c:530: Cannot evaluate range bound __fc_len - 1 (unsupported logic var __fc_len). Approximating diff --git a/tests/value/oracle/multidim-relations.res.oracle b/tests/value/oracle/multidim-relations.res.oracle index e7f1d9da7ac..aa7000e536d 100644 --- a/tests/value/oracle/multidim-relations.res.oracle +++ b/tests/value/oracle/multidim-relations.res.oracle @@ -48,6 +48,12 @@ [eva] Done for function use_array [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + multidim-relations.c:18: imprecise merge of addresses + (read 7 times, propagated 0 times) garbled mix of &{g; h} + multidim-relations.c:19: imprecise merge of addresses + (read 4 times, propagated 0 times) garbled mix of &{g; h} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function init_array: t[0]{.kind; .[bits 8 to 31]#} ∈ {0; 1} repeated %8 diff --git a/tests/value/oracle/origin.0.res.oracle b/tests/value/oracle/origin.0.res.oracle index 463ecd82baa..a0c837faa9e 100644 --- a/tests/value/oracle/origin.0.res.oracle +++ b/tests/value/oracle/origin.0.res.oracle @@ -128,6 +128,9 @@ [eva] computing for function gp <- main. Called from origin.i:100. [eva] using specification for function gp +[eva:garbled-mix:assigns] origin.i:100: + The specification of function gp has generated a garbled mix of addresses + for assigns clause \result. [eva] Done for function gp [eva:alarm] origin.i:101: Warning: out of bounds read. assert \valid_read(pl); [eva] computing for function origin_misalign_1 <- main. @@ -194,6 +197,20 @@ locals {local1} escaping the scope of local_escape_1 through esc4 [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + origin.i:19: arithmetic operation on addresses + (read 3 times, propagated 2 times) garbled mix of &{ta2; tta2} + origin.i:54: misaligned read of addresses + (read 3 times, propagated 1 times) garbled mix of &{a; b} + origin.i:14: arithmetic operation on addresses + (read 2 times, propagated 1 times) garbled mix of &{ta1} + origin.i:25: arithmetic operation on addresses + (read 2 times, propagated 1 times) garbled mix of &{ta3} + origin.i:100: assigns clause on addresses + (read 2 times, propagated 2 times) garbled mix of &{S_gpp} + origin.i:48: misaligned read of addresses + (read 2 times, propagated 1 times) garbled mix of &{a; b} [eva] origin.i:75: assertion 'Eva,initialization' got final status invalid. [scope:rm_asserts] removing 2 assertion(s) [eva] ====== VALUES COMPUTED ====== diff --git a/tests/value/oracle/origin.1.res.oracle b/tests/value/oracle/origin.1.res.oracle index 23f2017157d..4ca39e2f966 100644 --- a/tests/value/oracle/origin.1.res.oracle +++ b/tests/value/oracle/origin.1.res.oracle @@ -74,6 +74,10 @@ because of arithmetic operation on addresses. [eva] Recording results for origin [eva] Done for function origin +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + origin.i:126: misaligned read of addresses + (read 1 times, propagated 2 times) garbled mix of &{x; y} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function origin: r.c ∈ [--..--] diff --git a/tests/value/oracle/period.res.oracle b/tests/value/oracle/period.res.oracle index bae921f2c83..e949e737f12 100644 --- a/tests/value/oracle/period.res.oracle +++ b/tests/value/oracle/period.res.oracle @@ -94,6 +94,12 @@ pointer downcast. assert (unsigned int)(&vg) ≤ 2147483647; [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + period.c:51: arithmetic operation on addresses + (read 2 times, propagated 1 times) garbled mix of &{g} + period.c:53: arithmetic operation on addresses + (read 2 times, propagated 1 times) garbled mix of &{g} [scope:rm_asserts] removing 1 assertion(s) [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: diff --git a/tests/value/oracle/recursion.0.res.oracle b/tests/value/oracle/recursion.0.res.oracle index fd044aab639..cb1dcc89815 100644 --- a/tests/value/oracle/recursion.0.res.oracle +++ b/tests/value/oracle/recursion.0.res.oracle @@ -226,6 +226,9 @@ Analysis of function escaping_stack is thus incomplete and its soundness relies on the written specification. [eva] using specification for function escaping_stack +[eva:garbled-mix:assigns] recursion.c:311: + The specification of function escaping_stack + has generated a garbled mix of addresses for assigns clause p. [eva:alarm] recursion.c:313: Warning: out of bounds write. assert \valid(p); [eva] recursion.c:314: Frama_C_show_each_1_2: {5} [eva:locals-escaping] recursion.c:312: Warning: @@ -236,6 +239,10 @@ Analysis of function decr is thus incomplete and its soundness relies on the written specification. [eva] using specification for function decr +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + recursion.c:311: assigns clause on addresses + (read 2 times, propagated 1 times) garbled mix of &{x; a; \copy<x>[1]} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function alarm: res ∈ [10..2147483647] diff --git a/tests/value/oracle/reduce_by_valid.res.oracle b/tests/value/oracle/reduce_by_valid.res.oracle index f74f2e91178..826021d4927 100644 --- a/tests/value/oracle/reduce_by_valid.res.oracle +++ b/tests/value/oracle/reduce_by_valid.res.oracle @@ -145,6 +145,9 @@ [eva] computing for function garbled_mix <- main12 <- main. Called from reduce_by_valid.i:272. [eva] using specification for function garbled_mix +[eva:garbled-mix:assigns] reduce_by_valid.i:272: + The specification of function garbled_mix + has generated a garbled mix of addresses for assigns clause \result. [eva] Done for function garbled_mix [eva] reduce_by_valid.i:273: Frama_C_show_each_gm: @@ -167,12 +170,19 @@ out of bounds write. assert \valid(r); [eva] computing for function garbled_mix <- main12 <- main. Called from reduce_by_valid.i:290. +[eva:garbled-mix:assigns] reduce_by_valid.i:290: + The specification of function garbled_mix + has generated a garbled mix of addresses for assigns clause \result. [eva] Done for function garbled_mix [eva:alarm] reduce_by_valid.i:291: Warning: assertion got status unknown. [eva] Recording results for main12 [eva] Done for function main12 [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + reduce_by_valid.i:272: assigns clause on addresses + (read 3 times, propagated 2 times) garbled mix of &{x; a} [scope:rm_asserts] removing 12 assertion(s) [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main1: diff --git a/tests/value/oracle/shift.0.res.oracle b/tests/value/oracle/shift.0.res.oracle index 0303ded6de4..38218467e13 100644 --- a/tests/value/oracle/shift.0.res.oracle +++ b/tests/value/oracle/shift.0.res.oracle @@ -61,6 +61,10 @@ unsigned overflow. assert 2U << 31 ≤ 4294967295; [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + shift.i:52: arithmetic operation on addresses + (read 1 times, propagated 2 times) garbled mix of &{t} [eva] shift.i:35: assertion 'Eva,shift' got final status invalid. [eva] shift.i:36: assertion 'Eva,shift' got final status invalid. [eva] shift.i:40: assertion 'Eva,shift' got final status invalid. diff --git a/tests/value/oracle/shift.1.res.oracle b/tests/value/oracle/shift.1.res.oracle index 2caaba30888..cf118f59bd7 100644 --- a/tests/value/oracle/shift.1.res.oracle +++ b/tests/value/oracle/shift.1.res.oracle @@ -51,6 +51,10 @@ assert (long)r + (long)((long)((char *)t) << 8) ≤ 2147483647; [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + shift.i:52: arithmetic operation on addresses + (read 1 times, propagated 2 times) garbled mix of &{t} [eva] shift.i:35: assertion 'Eva,shift' got final status invalid. [eva] shift.i:36: assertion 'Eva,shift' got final status invalid. [eva] shift.i:40: assertion 'Eva,shift' got final status invalid. diff --git a/tests/value/oracle/sizeof.res.oracle b/tests/value/oracle/sizeof.res.oracle index 9efb1b55c2d..aa6a36837e2 100644 --- a/tests/value/oracle/sizeof.res.oracle +++ b/tests/value/oracle/sizeof.res.oracle @@ -46,6 +46,10 @@ [eva] Done for function f [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + sizeof.i:32: arithmetic operation on addresses + (read 2 times, propagated 1 times) garbled mix of &{s1} [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function f: diff --git a/tests/value/oracle/va_list2.0.res.oracle b/tests/value/oracle/va_list2.0.res.oracle index 49e0e877456..2b3a7d3e4a6 100644 --- a/tests/value/oracle/va_list2.0.res.oracle +++ b/tests/value/oracle/va_list2.0.res.oracle @@ -36,6 +36,10 @@ {{ garbled mix of &{S_0_S___va_params; S_1_S___va_params} (origin: Well) }} [eva] Recording results for main [eva] Done for function main +[eva:garbled-mix:summary] + Origins of garbled mix generated during analysis: + Initial state (read 24 times, propagated 10 times) + garbled mix of &{S_0_S___va_params; S_1_S___va_params} [scope:rm_asserts] removing 1 assertion(s) [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: diff --git a/tests/value/oracle_apron/backward_add_ptr.res.oracle b/tests/value/oracle_apron/backward_add_ptr.res.oracle index ef19a912e46..04bf26aed2a 100644 --- a/tests/value/oracle_apron/backward_add_ptr.res.oracle +++ b/tests/value/oracle_apron/backward_add_ptr.res.oracle @@ -27,6 +27,6 @@ > [eva] Recording results for gm > [eva] Done for function gm 154c166 -< (propagated 20 times, read 86 times) garbled mix of bases {a; b; a; b; c} +< (read 81 times, propagated 20 times) garbled mix of &{a; b; a; b; c} --- -> (propagated 28 times, read 90 times) garbled mix of bases {a; b; a; b; c} +> (read 81 times, propagated 28 times) garbled mix of &{a; b; a; b; c} diff --git a/tests/value/oracle_apron/gauges.res.oracle b/tests/value/oracle_apron/gauges.res.oracle index 3829c4158e2..e39bbda0298 100644 --- a/tests/value/oracle_apron/gauges.res.oracle +++ b/tests/value/oracle_apron/gauges.res.oracle @@ -50,15 +50,15 @@ < Frama_C_show_each: {-593; -592; -591; -590; -589; -588}, [0..2147483647] --- > Frama_C_show_each: {-593; -592; -591; -590; -589; -588}, [0..598] -774c761 +778c765 < n ∈ [-2147483648..99] --- > n ∈ [-2147483547..99] -777c764 +781c768 < i ∈ [0..2147483647] --- > i ∈ [10..2147483647] -813c800 +817c804 < i ∈ [0..2147483647] --- > i ∈ [0..21] diff --git a/tests/value/oracle_bitwise/addition.res.oracle b/tests/value/oracle_bitwise/addition.res.oracle deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tests/value/oracle_bitwise/bitwise_pointer.0.res.oracle b/tests/value/oracle_bitwise/bitwise_pointer.0.res.oracle deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tests/value/oracle_bitwise/bitwise_pointer.1.res.oracle b/tests/value/oracle_bitwise/bitwise_pointer.1.res.oracle deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tests/value/oracle_bitwise/logic_ptr_cast.res.oracle b/tests/value/oracle_bitwise/logic_ptr_cast.res.oracle deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tests/value/oracle_equality/addition.res.oracle b/tests/value/oracle_equality/addition.res.oracle index 1f9878419ed..4527d4b279a 100644 --- a/tests/value/oracle_equality/addition.res.oracle +++ b/tests/value/oracle_equality/addition.res.oracle @@ -5,32 +5,32 @@ < signed overflow. assert (int)*((char *)(&q1)) + 2 ≤ 2147483647; < [eva:garbled-mix:write] addition.i:61: Warning: < Assigning imprecise value to p14 because of misaligned read of addresses. -144,147c138,139 -< (propagated 1 times, read 1 times) garbled mix of bases {p1} -< addition.i:61: misaligned read of addresses -< (propagated 1 times, read 1 times) garbled mix of bases {p1} +141c135,139 < [scope:rm_asserts] removing 9 assertion(s) --- -> (propagated 2 times, read 2 times) garbled mix of bases {p1} +> [eva:garbled-mix:summary] Warning: +> Origins of garbled mix generated during analysis: +> addition.i:59: misaligned read of addresses +> (read 1 times, propagated 2 times) garbled mix of &{p1} > [scope:rm_asserts] removing 7 assertion(s) -169c161 +163c161 < p14 ∈ {{ garbled mix of &{p1} (origin: Misaligned {addition.i:61}) }} --- > p14 ∈ {{ garbled mix of &{p1} (origin: Misaligned {addition.i:59}) }} -363,366d354 +357,360d354 < [eva:alarm] addition.i:61: Warning: < signed overflow. assert -2147483648 ≤ (int)*((char *)(&q1)) + 2; < [eva:alarm] addition.i:61: Warning: < signed overflow. assert (int)*((char *)(&q1)) + 2 ≤ 2147483647; -375,378c363,364 -< (propagated 1 times, read 1 times) garbled mix of bases {p1} -< addition.i:61: misaligned read of addresses -< (propagated 1 times, read 1 times) garbled mix of bases {p1} +366c360,364 < [scope:rm_asserts] removing 9 assertion(s) --- -> (propagated 2 times, read 2 times) garbled mix of bases {p1} +> [eva:garbled-mix:summary] Warning: +> Origins of garbled mix generated during analysis: +> addition.i:59: misaligned read of addresses +> (read 1 times, propagated 2 times) garbled mix of &{p1} > [scope:rm_asserts] removing 7 assertion(s) -401c387 +389c387 < p14 ∈ {{ garbled mix of &{p1} (origin: Misaligned {addition.i:61}) }} --- > p14 ∈ {{ garbled mix of &{p1} (origin: Misaligned {addition.i:59}) }} diff --git a/tests/value/oracle_equality/arith_pointer.res.oracle b/tests/value/oracle_equality/arith_pointer.res.oracle new file mode 100644 index 00000000000..e8d12d536a5 --- /dev/null +++ b/tests/value/oracle_equality/arith_pointer.res.oracle @@ -0,0 +1,8 @@ +48c48 +< (read 2 times, propagated 2 times) garbled mix of &{x} +--- +> (read 3 times, propagated 2 times) garbled mix of &{x} +161c161 +< (read 2 times, propagated 2 times) garbled mix of &{x} +--- +> (read 3 times, propagated 2 times) garbled mix of &{x} diff --git a/tests/value/oracle_equality/backward_add_ptr.res.oracle b/tests/value/oracle_equality/backward_add_ptr.res.oracle index 38834abac9b..1b7ff53fec0 100644 --- a/tests/value/oracle_equality/backward_add_ptr.res.oracle +++ b/tests/value/oracle_equality/backward_add_ptr.res.oracle @@ -24,6 +24,6 @@ > [eva] Recording results for gm > [eva] Done for function gm 154c163 -< (propagated 20 times, read 86 times) garbled mix of bases {a; b; a; b; c} +< (read 81 times, propagated 20 times) garbled mix of &{a; b; a; b; c} --- -> (propagated 26 times, read 94 times) garbled mix of bases {a; b; a; b; c} +> (read 86 times, propagated 26 times) garbled mix of &{a; b; a; b; c} diff --git a/tests/value/oracle_equality/bitfield.res.oracle b/tests/value/oracle_equality/bitfield.res.oracle index 46eace6fb72..cfff35a117c 100644 --- a/tests/value/oracle_equality/bitfield.res.oracle +++ b/tests/value/oracle_equality/bitfield.res.oracle @@ -1,4 +1,8 @@ -134a135,137 +137a138,140 > [eva] bitfield.i:71: > Frama_C_show_each: > {{ garbled mix of &{b} (origin: Misaligned {bitfield.i:70}) }} +213c216 +< (read 5 times, propagated 7 times) garbled mix of &{b; ee} +--- +> (read 6 times, propagated 7 times) garbled mix of &{b; ee} diff --git a/tests/value/oracle_equality/bitwise_pointer.0.res.oracle b/tests/value/oracle_equality/bitwise_pointer.0.res.oracle index 0b286b81268..688b8e07ea0 100644 --- a/tests/value/oracle_equality/bitwise_pointer.0.res.oracle +++ b/tests/value/oracle_equality/bitwise_pointer.0.res.oracle @@ -1,8 +1,8 @@ -60c60 +66c66 < x ∈ [0..9] --- > x ∈ {5} -73c73 +79c79 < x1 ∈ [0..9] --- > x1 ∈ {5} diff --git a/tests/value/oracle_equality/bitwise_pointer.1.res.oracle b/tests/value/oracle_equality/bitwise_pointer.1.res.oracle index 0b286b81268..688b8e07ea0 100644 --- a/tests/value/oracle_equality/bitwise_pointer.1.res.oracle +++ b/tests/value/oracle_equality/bitwise_pointer.1.res.oracle @@ -1,8 +1,8 @@ -60c60 +66c66 < x ∈ [0..9] --- > x ∈ {5} -73c73 +79c79 < x1 ∈ [0..9] --- > x1 ∈ {5} diff --git a/tests/value/oracle_equality/context_free.res.oracle b/tests/value/oracle_equality/context_free.res.oracle new file mode 100644 index 00000000000..edf1bab4ce0 --- /dev/null +++ b/tests/value/oracle_equality/context_free.res.oracle @@ -0,0 +1,4 @@ +95c95 +< Initial state (read 9 times, propagated 5 times) +--- +> Initial state (read 11 times, propagated 5 times) diff --git a/tests/value/oracle_equality/empty_struct.6.res.oracle b/tests/value/oracle_equality/empty_struct.6.res.oracle new file mode 100644 index 00000000000..a5fdd6006f0 --- /dev/null +++ b/tests/value/oracle_equality/empty_struct.6.res.oracle @@ -0,0 +1,4 @@ +27c27 +< (read 2 times, propagated 3 times) garbled mix of &{gs} +--- +> (read 3 times, propagated 3 times) garbled mix of &{gs} diff --git a/tests/value/oracle_equality/gauges.res.oracle b/tests/value/oracle_equality/gauges.res.oracle new file mode 100644 index 00000000000..1375772daf3 --- /dev/null +++ b/tests/value/oracle_equality/gauges.res.oracle @@ -0,0 +1,4 @@ +716c716 +< (read 14 times, propagated 12 times) garbled mix of &{x; y} +--- +> (read 20 times, propagated 12 times) garbled mix of &{x; y} diff --git a/tests/value/oracle_equality/library.res.oracle b/tests/value/oracle_equality/library.res.oracle index 7ce2a4b0636..60b76d8270d 100644 --- a/tests/value/oracle_equality/library.res.oracle +++ b/tests/value/oracle_equality/library.res.oracle @@ -1,4 +1,4 @@ -118,121d117 +124,127d123 < [eva:alarm] library.i:44: Warning: < non-finite float value. assert \is_finite(*pf); < [eva:alarm] library.i:44: Warning: diff --git a/tests/value/oracle_equality/origin.0.res.oracle b/tests/value/oracle_equality/origin.0.res.oracle index abe35687d18..a12449e315c 100644 --- a/tests/value/oracle_equality/origin.0.res.oracle +++ b/tests/value/oracle_equality/origin.0.res.oracle @@ -1,9 +1,9 @@ -229,230c229 +246,247c246 < pm2[bits 0 to 15]# ∈ {{ (? *)&a }}%32, bits 16 to 31 < [bits 16 to 31]# ∈ {{ (? *)&b }}%32, bits 0 to 15 --- > pm2 ∈ {{ &a + {-4} ; &b + {-4} }} -264,265c263 +281,282c280 < pm2[bits 0 to 15]# ∈ {{ (? *)&a }}%32, bits 16 to 31 < [bits 16 to 31]# ∈ {{ (? *)&b }}%32, bits 0 to 15 --- diff --git a/tests/value/oracle_equality/period.res.oracle b/tests/value/oracle_equality/period.res.oracle index 72c7991e2b3..657c13125d1 100644 --- a/tests/value/oracle_equality/period.res.oracle +++ b/tests/value/oracle_equality/period.res.oracle @@ -4,5 +4,7 @@ < [eva:garbled-mix:write] period.c:53: < Assigning imprecise value to p because of arithmetic operation on addresses. < [eva:alarm] period.c:54: Warning: out of bounds read. assert \valid_read(p); -97d91 +101,103d95 +< period.c:53: arithmetic operation on addresses +< (read 2 times, propagated 1 times) garbled mix of &{g} < [scope:rm_asserts] removing 1 assertion(s) diff --git a/tests/value/oracle_equality/va_list2.0.res.oracle b/tests/value/oracle_equality/va_list2.0.res.oracle new file mode 100644 index 00000000000..2907faaa45d --- /dev/null +++ b/tests/value/oracle_equality/va_list2.0.res.oracle @@ -0,0 +1,4 @@ +41c41 +< Initial state (read 24 times, propagated 10 times) +--- +> Initial state (read 28 times, propagated 10 times) diff --git a/tests/value/oracle_gauges/bitfield.res.oracle b/tests/value/oracle_gauges/bitfield.res.oracle index c47829e652e..e84586701d0 100644 --- a/tests/value/oracle_gauges/bitfield.res.oracle +++ b/tests/value/oracle_gauges/bitfield.res.oracle @@ -1,4 +1,4 @@ -134a135,149 +137a138,152 > [eva] bitfield.i:71: > Frama_C_show_each: > {{ garbled mix of &{b} (origin: Misaligned {bitfield.i:70}) }} @@ -14,3 +14,7 @@ > [eva] bitfield.i:73: > Frama_C_show_each: > {{ garbled mix of &{b} (origin: Misaligned {bitfield.i:70}) }} +213c228 +< (read 5 times, propagated 7 times) garbled mix of &{b; ee} +--- +> (read 9 times, propagated 11 times) garbled mix of &{b; ee} diff --git a/tests/value/oracle_gauges/gauges.res.oracle b/tests/value/oracle_gauges/gauges.res.oracle index 1c645040cca..9d4462e029b 100644 --- a/tests/value/oracle_gauges/gauges.res.oracle +++ b/tests/value/oracle_gauges/gauges.res.oracle @@ -261,48 +261,52 @@ 708a827,828 > [eva] gauges.c:343: Call to builtin malloc > [eva] gauges.c:343: Call to builtin malloc -761,762c881,882 +716c836 +< (read 14 times, propagated 12 times) garbled mix of &{x; y} +--- +> (read 12 times, propagated 11 times) garbled mix of &{x; y} +765,766c885,886 < A ∈ {{ &A + [0..--],0%4 }} < B ∈ {{ &B + [0..--],0%4 }} --- > A ∈ {{ &A + [0..36],0%4 }} > B ∈ {{ &B + [0..36],0%4 }} -774c894 +778c898 < n ∈ [-2147483648..99] --- > n ∈ [-2147483547..99] -780c900 +784c904 < i ∈ {45; 46; 47; 48; 49; 50; 51} --- > i ∈ {45; 46; 47; 48} -786c906 +790c910 < i ∈ {-59; -58; -57; -56; -55; -54; -53} --- > i ∈ {-58; -57; -56; -55; -54; -53} -806c926 +810c930 < p ∈ {{ &u + [0..--],0%4 }} --- > p ∈ {{ &u + [0..400],0%4 }} -808c928 +812c932 < k ∈ [0..2147483647] --- > k ∈ [0..390] -813c933 +817c937 < i ∈ [0..2147483647] --- > i ∈ [0..21] -824,825c944,946 +828,829c948,950 < [1..9] ∈ {4; 5; 6; 7; 8; 9} or UNINITIALIZED < p ∈ {{ &y + [4..40],0%4 }} --- > [1..6] ∈ {4; 5; 6; 7; 8; 9} or UNINITIALIZED > [7..9] ∈ UNINITIALIZED > p ∈ {{ &y[7] }} -836c957 +840c961 < p ∈ {{ &T + [--..396],0%4 }} --- > p ∈ {{ &T + [-4..396],0%4 }} -841,845c962 +845,849c966 < n ∈ {0} < arr[0] ∈ {0} < [1] ∈ {-1} @@ -310,19 +314,19 @@ < p ∈ {{ &arr + [12..--],0%4 }} --- > NON TERMINATING FUNCTION -948a1066 +952a1070 > [from] Non-terminating function main8_aux (no dependencies) -971,972c1089,1090 +975,976c1093,1094 < p FROM p; A; B; n; p; A[0..9]; B[0..9] (and SELF) < \result FROM p; A; B; n; p; A[0..9]; B[0..9] --- > p FROM p; A; B; n; p; A[0..8]; B[0..8] (and SELF) > \result FROM p; A; B; n; p; A[0..8]; B[0..8] -1016c1134 +1020c1138 < NO EFFECTS --- > NON TERMINATING - NO EFFECTS -1050c1168 +1054c1172 < p; A[0..9]; B[0..9] --- > p; A[0..8]; B[0..8] diff --git a/tests/value/oracle_gauges/va_list2.0.res.oracle b/tests/value/oracle_gauges/va_list2.0.res.oracle index 80fc106a63e..70defd3cb22 100644 --- a/tests/value/oracle_gauges/va_list2.0.res.oracle +++ b/tests/value/oracle_gauges/va_list2.0.res.oracle @@ -11,3 +11,7 @@ > [eva] va_list2.c:21: > Frama_C_show_each_f: > {{ garbled mix of &{S_0_S___va_params; S_1_S___va_params} (origin: Well) }} +41c53 +< Initial state (read 24 times, propagated 10 times) +--- +> Initial state (read 36 times, propagated 16 times) diff --git a/tests/value/oracle_octagon/bitfield.res.oracle b/tests/value/oracle_octagon/bitfield.res.oracle index 46eace6fb72..cfff35a117c 100644 --- a/tests/value/oracle_octagon/bitfield.res.oracle +++ b/tests/value/oracle_octagon/bitfield.res.oracle @@ -1,4 +1,8 @@ -134a135,137 +137a138,140 > [eva] bitfield.i:71: > Frama_C_show_each: > {{ garbled mix of &{b} (origin: Misaligned {bitfield.i:70}) }} +213c216 +< (read 5 times, propagated 7 times) garbled mix of &{b; ee} +--- +> (read 6 times, propagated 7 times) garbled mix of &{b; ee} diff --git a/tests/value/oracle_octagon/gauges.res.oracle b/tests/value/oracle_octagon/gauges.res.oracle index 5b5cc282926..1b2c6b23554 100644 --- a/tests/value/oracle_octagon/gauges.res.oracle +++ b/tests/value/oracle_octagon/gauges.res.oracle @@ -7,11 +7,11 @@ < [eva] gauges.c:218: Frama_C_show_each: < [eva:alarm] gauges.c:220: Warning: < signed overflow. assert -2147483648 ≤ n - 1; -763c756 +767c760 < numNonZero ∈ [-2147483648..8] --- > numNonZero ∈ {-1} -774c767 +778c771 < n ∈ [-2147483648..99] --- > n ∈ {-1} diff --git a/tests/value/oracle_symblocs/bitwise_pointer.0.res.oracle b/tests/value/oracle_symblocs/bitwise_pointer.0.res.oracle index 0b286b81268..688b8e07ea0 100644 --- a/tests/value/oracle_symblocs/bitwise_pointer.0.res.oracle +++ b/tests/value/oracle_symblocs/bitwise_pointer.0.res.oracle @@ -1,8 +1,8 @@ -60c60 +66c66 < x ∈ [0..9] --- > x ∈ {5} -73c73 +79c79 < x1 ∈ [0..9] --- > x1 ∈ {5} diff --git a/tests/value/oracle_symblocs/bitwise_pointer.1.res.oracle b/tests/value/oracle_symblocs/bitwise_pointer.1.res.oracle index 0b286b81268..688b8e07ea0 100644 --- a/tests/value/oracle_symblocs/bitwise_pointer.1.res.oracle +++ b/tests/value/oracle_symblocs/bitwise_pointer.1.res.oracle @@ -1,8 +1,8 @@ -60c60 +66c66 < x ∈ [0..9] --- > x ∈ {5} -73c73 +79c79 < x1 ∈ [0..9] --- > x1 ∈ {5} diff --git a/tests/value/oracle_symblocs/library.res.oracle b/tests/value/oracle_symblocs/library.res.oracle index 7ce2a4b0636..60b76d8270d 100644 --- a/tests/value/oracle_symblocs/library.res.oracle +++ b/tests/value/oracle_symblocs/library.res.oracle @@ -1,4 +1,4 @@ -118,121d117 +124,127d123 < [eva:alarm] library.i:44: Warning: < non-finite float value. assert \is_finite(*pf); < [eva:alarm] library.i:44: Warning: -- GitLab