Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
why3
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
126
Issues
126
List
Boards
Labels
Service Desk
Milestones
Merge Requests
16
Merge Requests
16
Operations
Operations
Incidents
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Why3
why3
Commits
e8bce140
Commit
e8bce140
authored
Mar 26, 2020
by
Andrei Paskevich
1
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Cloning: disregard invalidated writes when comparing effects (closes
#468
)
parent
f682fef1
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
7 additions
and
1 deletion
+7
-1
src/mlw/ity.ml
src/mlw/ity.ml
+5
-0
src/mlw/ity.mli
src/mlw/ity.mli
+1
-0
src/mlw/pmodule.ml
src/mlw/pmodule.ml
+1
-1
No files found.
src/mlw/ity.ml
View file @
e8bce140
...
...
@@ -1162,6 +1162,11 @@ let eff_union e1 e2 =
(
Mreg
.
set_diff
e
.
eff_writes
e
.
eff_covers
));
e
let
eff_fusion
e1
e2
=
let
e
=
eff_union
e1
e2
in
{
e
with
eff_writes
=
Mreg
.
set_inter
e
.
eff_writes
e
.
eff_covers
;
eff_taints
=
Mreg
.
set_inter
e
.
eff_taints
e
.
eff_covers
}
let
eff_contaminate
e1
e2
=
if
not
e1
.
eff_ghost
then
e2
else
if
Sxs
.
is_empty
e1
.
eff_raises
then
e2
else
...
...
src/mlw/ity.mli
View file @
e8bce140
...
...
@@ -401,6 +401,7 @@ val eff_ghostify_weak : bool -> effect -> effect (* only if has no effect *)
val
eff_union_seq
:
effect
->
effect
->
effect
(* checks for stale variables *)
val
eff_union_par
:
effect
->
effect
->
effect
(* no stale-variable check *)
val
eff_fusion
:
effect
->
effect
->
effect
(* drop invalidated writes *)
val
mask_adjust
:
effect
->
ity
->
mask
->
mask
...
...
src/mlw/pmodule.ml
View file @
e8bce140
...
...
@@ -1158,7 +1158,7 @@ let clone_pdecl inst cl uc d = match d.pd_node with
if
mask_spill
ss
.
rs_cty
.
cty_mask
rs
.
rs_cty
.
cty_mask
then
raise
(
BadInstance
(
BadI_rs_mask
rs
.
rs_name
));
let
eff
=
eff_ghostify
(
rs_ghost
rs
)
cty
.
cty_effect
in
let
eff'
=
eff_
union_par
eff
ss
.
rs_cty
.
cty_effect
in
let
eff'
=
eff_
fusion
eff
ss
.
rs_cty
.
cty_effect
in
if
not
(
eff_equal
eff
eff'
)
then
begin
(* Format.eprintf "@[%a@]@\n" print_cty cty; *)
(* Format.eprintf "@[%a@]@\n" print_cty ss.rs_cty; *)
...
...
Andrei Paskevich
@paskevyc
mentioned in issue
#468 (closed)
·
Mar 26, 2020
mentioned in issue
#468 (closed)
mentioned in issue #468
Toggle commit list
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment