Skip to content
Snippets Groups Projects
Commit a7fea67c authored by Allan Blanchard's avatar Allan Blanchard
Browse files

Merge branch 'fix/eva/high-priority-precondition' into 'master'

[Eva] Fixes high priority / red status on preconditions.

See merge request frama-c/frama-c!4811
parents abb088ab 0c13a4cf
No related branches found
No related tags found
No related merge requests found
...@@ -91,17 +91,13 @@ let add_red_ap kinstr ap = ...@@ -91,17 +91,13 @@ let add_red_ap kinstr ap =
let add_red_alarm ki a = add_red_ap ki (Alarm a) let add_red_alarm ki a = add_red_ap ki (Alarm a)
let add_red_property ki ip = let add_red_property ki (ip: Property.identified_property) =
if false then add_red_ap ki (Prop ip);
add_red_ap ki (Prop ip) (* If [ip] is an instance of a precondition [ip'], also add [ip'] itself. *)
else match ip with
(* Collapses preconditions-at-callsites into the precondition itself, | IPPropertyInstance {ii_ip = IPPredicate {ip_kind = PKRequires _} as ip'} ->
by modifying the callstack. Results in a better display *) add_red_ap Kglobal (Prop ip')
let open Property in | _ -> ()
match ip with
| IPPropertyInstance {ii_ip=IPPredicate {ip_kind=PKRequires _} as ip'} ->
add_red_ap Kglobal (Prop ip')
| _ -> add_red_ap ki (Prop ip)
let is_red ip = let is_red ip =
let kinstr = Property.get_kinstr ip in let kinstr = Property.get_kinstr ip in
......
...@@ -4,6 +4,7 @@ directory file line function kind name #contexts status property ...@@ -4,6 +4,7 @@ directory file line function kind name #contexts status property
. red_alarms.i 45 partitioning Alarm index_bound 1 Invalid or unreachable i < 32 . red_alarms.i 45 partitioning Alarm index_bound 1 Invalid or unreachable i < 32
. red_alarms.i 57 partitioning Alarm index_bound 1 Unknown i < 32 . red_alarms.i 57 partitioning Alarm index_bound 1 Unknown i < 32
. red_alarms.i 13 maybe_swap Alarm mem_access 1 Unknown \valid_read(q) . red_alarms.i 13 maybe_swap Alarm mem_access 1 Unknown \valid_read(q)
. red_alarms.i 82 preconditions Property precondition of in_bound 1 Invalid or unreachable positive: x ≥ 0
. red_alarms.i 12 maybe_swap Alarm initialization 2 Unknown \initialized(p) . red_alarms.i 12 maybe_swap Alarm initialization 2 Unknown \initialized(p)
. red_alarms.i 61 partitioning Alarm index_bound 1 Unknown i < 32 . red_alarms.i 61 partitioning Alarm index_bound 1 Unknown i < 32
. red_alarms.i 10 maybe_swap Property user check 1 Unknown *p ≢ *q . red_alarms.i 10 maybe_swap Property user check 1 Unknown *p ≢ *q
......
...@@ -4,6 +4,7 @@ directory file line function kind name #contexts status property ...@@ -4,6 +4,7 @@ directory file line function kind name #contexts status property
. red_alarms.i 45 partitioning Alarm index_bound 1 Invalid or unreachable i < 32 . red_alarms.i 45 partitioning Alarm index_bound 1 Invalid or unreachable i < 32
. red_alarms.i 57 partitioning Alarm index_bound 1 Unknown i < 32 . red_alarms.i 57 partitioning Alarm index_bound 1 Unknown i < 32
. red_alarms.i 13 maybe_swap Alarm mem_access 1 Unknown \valid_read(q) . red_alarms.i 13 maybe_swap Alarm mem_access 1 Unknown \valid_read(q)
. red_alarms.i 82 preconditions Property precondition of in_bound 1 Invalid or unreachable positive: x ≥ 0
. red_alarms.i 12 maybe_swap Alarm initialization 2 Unknown \initialized(p) . red_alarms.i 12 maybe_swap Alarm initialization 2 Unknown \initialized(p)
. red_alarms.i 61 partitioning Alarm index_bound 1 Unknown i < 32 . red_alarms.i 61 partitioning Alarm index_bound 1 Unknown i < 32
. red_alarms.i 10 maybe_swap Property user check 1 Unknown *p ≢ *q . red_alarms.i 10 maybe_swap Property user check 1 Unknown *p ≢ *q
......
...@@ -4,6 +4,7 @@ directory file line function kind name #contexts status property ...@@ -4,6 +4,7 @@ directory file line function kind name #contexts status property
. red_alarms.i 45 partitioning Alarm index_bound 1 Invalid or unreachable i < 32 . red_alarms.i 45 partitioning Alarm index_bound 1 Invalid or unreachable i < 32
. red_alarms.i 57 partitioning Alarm index_bound 1 Unknown i < 32 . red_alarms.i 57 partitioning Alarm index_bound 1 Unknown i < 32
. red_alarms.i 13 maybe_swap Alarm mem_access 1 Unknown \valid_read(q) . red_alarms.i 13 maybe_swap Alarm mem_access 1 Unknown \valid_read(q)
. red_alarms.i 82 preconditions Property precondition of in_bound 1 Invalid or unreachable positive: x ≥ 0
. red_alarms.i 12 maybe_swap Alarm initialization 2 Unknown \initialized(p) . red_alarms.i 12 maybe_swap Alarm initialization 2 Unknown \initialized(p)
. red_alarms.i 61 partitioning Alarm index_bound 1 Unknown i < 32 . red_alarms.i 61 partitioning Alarm index_bound 1 Unknown i < 32
. red_alarms.i 10 maybe_swap Property user check 1 Unknown *p ≢ *q . red_alarms.i 10 maybe_swap Property user check 1 Unknown *p ≢ *q
......
...@@ -4,6 +4,7 @@ directory file line function kind name #contexts status property ...@@ -4,6 +4,7 @@ directory file line function kind name #contexts status property
. red_alarms.i 45 partitioning Alarm index_bound 1 Invalid or unreachable i < 32 . red_alarms.i 45 partitioning Alarm index_bound 1 Invalid or unreachable i < 32
. red_alarms.i 57 partitioning Alarm index_bound 1 Unknown i < 32 . red_alarms.i 57 partitioning Alarm index_bound 1 Unknown i < 32
. red_alarms.i 13 maybe_swap Alarm mem_access 1 Unknown \valid_read(q) . red_alarms.i 13 maybe_swap Alarm mem_access 1 Unknown \valid_read(q)
. red_alarms.i 82 preconditions Property precondition of in_bound 1 Invalid or unreachable positive: x ≥ 0
. red_alarms.i 12 maybe_swap Alarm initialization 2 Unknown \initialized(p) . red_alarms.i 12 maybe_swap Alarm initialization 2 Unknown \initialized(p)
. red_alarms.i 61 partitioning Alarm index_bound 1 Unknown i < 32 . red_alarms.i 61 partitioning Alarm index_bound 1 Unknown i < 32
. red_alarms.i 10 maybe_swap Property user check 1 Unknown *p ≢ *q . red_alarms.i 10 maybe_swap Property user check 1 Unknown *p ≢ *q
......
...@@ -4,6 +4,7 @@ directory file line function kind name #contexts status property ...@@ -4,6 +4,7 @@ directory file line function kind name #contexts status property
. red_alarms.i 45 partitioning Alarm index_bound 1 Invalid or unreachable i < 32 . red_alarms.i 45 partitioning Alarm index_bound 1 Invalid or unreachable i < 32
. red_alarms.i 57 partitioning Alarm index_bound 1 Unknown i < 32 . red_alarms.i 57 partitioning Alarm index_bound 1 Unknown i < 32
. red_alarms.i 13 maybe_swap Alarm mem_access 1 Unknown \valid_read(q) . red_alarms.i 13 maybe_swap Alarm mem_access 1 Unknown \valid_read(q)
. red_alarms.i 82 preconditions Property precondition of in_bound 1 Invalid or unreachable positive: x ≥ 0
. red_alarms.i 12 maybe_swap Alarm initialization 2 Unknown \initialized(p) . red_alarms.i 12 maybe_swap Alarm initialization 2 Unknown \initialized(p)
. red_alarms.i 61 partitioning Alarm index_bound 1 Unknown i < 32 . red_alarms.i 61 partitioning Alarm index_bound 1 Unknown i < 32
. red_alarms.i 10 maybe_swap Property user check 1 Unknown *p ≢ *q . red_alarms.i 10 maybe_swap Property user check 1 Unknown *p ≢ *q
......
...@@ -4,6 +4,7 @@ directory file line function kind name #contexts status property ...@@ -4,6 +4,7 @@ directory file line function kind name #contexts status property
. red_alarms.i 45 partitioning Alarm index_bound 1 Invalid or unreachable i < 32 . red_alarms.i 45 partitioning Alarm index_bound 1 Invalid or unreachable i < 32
. red_alarms.i 57 partitioning Alarm index_bound 1 Unknown i < 32 . red_alarms.i 57 partitioning Alarm index_bound 1 Unknown i < 32
. red_alarms.i 13 maybe_swap Alarm mem_access 1 Unknown \valid_read(q) . red_alarms.i 13 maybe_swap Alarm mem_access 1 Unknown \valid_read(q)
. red_alarms.i 82 preconditions Property precondition of in_bound 1 Invalid or unreachable positive: x ≥ 0
. red_alarms.i 12 maybe_swap Alarm initialization 2 Unknown \initialized(p) . red_alarms.i 12 maybe_swap Alarm initialization 2 Unknown \initialized(p)
. red_alarms.i 61 partitioning Alarm index_bound 1 Unknown i < 32 . red_alarms.i 61 partitioning Alarm index_bound 1 Unknown i < 32
. red_alarms.i 10 maybe_swap Property user check 1 Unknown *p ≢ *q . red_alarms.i 10 maybe_swap Property user check 1 Unknown *p ≢ *q
......
...@@ -4,6 +4,7 @@ directory file line function kind name #contexts status property ...@@ -4,6 +4,7 @@ directory file line function kind name #contexts status property
. red_alarms.i 45 partitioning Alarm index_bound 1 Invalid or unreachable i < 32 . red_alarms.i 45 partitioning Alarm index_bound 1 Invalid or unreachable i < 32
. red_alarms.i 57 partitioning Alarm index_bound 1 Unknown i < 32 . red_alarms.i 57 partitioning Alarm index_bound 1 Unknown i < 32
. red_alarms.i 13 maybe_swap Alarm mem_access 1 Unknown \valid_read(q) . red_alarms.i 13 maybe_swap Alarm mem_access 1 Unknown \valid_read(q)
. red_alarms.i 82 preconditions Property precondition of in_bound 1 Invalid or unreachable positive: x ≥ 0
. red_alarms.i 12 maybe_swap Alarm initialization 2 Unknown \initialized(p) . red_alarms.i 12 maybe_swap Alarm initialization 2 Unknown \initialized(p)
. red_alarms.i 61 partitioning Alarm index_bound 1 Unknown i < 32 . red_alarms.i 61 partitioning Alarm index_bound 1 Unknown i < 32
. red_alarms.i 10 maybe_swap Property user check 1 Unknown *p ≢ *q . red_alarms.i 10 maybe_swap Property user check 1 Unknown *p ≢ *q
......
...@@ -4,6 +4,7 @@ directory file line function kind name #contexts status property ...@@ -4,6 +4,7 @@ directory file line function kind name #contexts status property
. red_alarms.i 45 partitioning Alarm index_bound 1 Invalid or unreachable i < 32 . red_alarms.i 45 partitioning Alarm index_bound 1 Invalid or unreachable i < 32
. red_alarms.i 57 partitioning Alarm index_bound 1 Unknown i < 32 . red_alarms.i 57 partitioning Alarm index_bound 1 Unknown i < 32
. red_alarms.i 13 maybe_swap Alarm mem_access 1 Unknown \valid_read(q) . red_alarms.i 13 maybe_swap Alarm mem_access 1 Unknown \valid_read(q)
. red_alarms.i 82 preconditions Property precondition of in_bound 1 Invalid or unreachable positive: x ≥ 0
. red_alarms.i 12 maybe_swap Alarm initialization 2 Unknown \initialized(p) . red_alarms.i 12 maybe_swap Alarm initialization 2 Unknown \initialized(p)
. red_alarms.i 61 partitioning Alarm index_bound 1 Unknown i < 32 . red_alarms.i 61 partitioning Alarm index_bound 1 Unknown i < 32
. red_alarms.i 10 maybe_swap Property user check 1 Unknown *p ≢ *q . red_alarms.i 10 maybe_swap Property user check 1 Unknown *p ≢ *q
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment