Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
F
frama-c
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Container Registry
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
pub
frama-c
Commits
57aa01bb
Commit
57aa01bb
authored
1 year ago
by
Jan Rochel
Browse files
Options
Downloads
Patches
Plain Diff
[e-acsl] cosmetics: wrapper function for refs
parent
bbdfccc9
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/plugins/e-acsl/src/code_generator/translate_utils.ml
+11
-6
11 additions, 6 deletions
src/plugins/e-acsl/src/code_generator/translate_utils.ml
with
11 additions
and
6 deletions
src/plugins/e-acsl/src/code_generator/translate_utils.ml
+
11
−
6
View file @
57aa01bb
...
@@ -39,6 +39,8 @@ let term_to_exp_ref
...
@@ -39,6 +39,8 @@ let term_to_exp_ref
=
=
ref
(
fun
~
adata
:_
_kf
_env
_t
->
Extlib
.
mk_labeled_fun
"term_to_exp_ref"
)
ref
(
fun
~
adata
:_
_kf
_env
_t
->
Extlib
.
mk_labeled_fun
"term_to_exp_ref"
)
let
term_to_exp
~
adata
kf
env
t
=
!
term_to_exp_ref
~
adata
kf
env
t
let
predicate_to_exp_ref
let
predicate_to_exp_ref
:
(
adata
:
Assert
.
t
->
:
(
adata
:
Assert
.
t
->
?
name
:
string
->
?
name
:
string
->
...
@@ -51,6 +53,9 @@ let predicate_to_exp_ref
...
@@ -51,6 +53,9 @@ let predicate_to_exp_ref
ref
(
fun
~
adata
:_
?
name
:_
_kf
?
rte
:_
_env
_p
->
ref
(
fun
~
adata
:_
?
name
:_
_kf
?
rte
:_
_env
_p
->
Extlib
.
mk_labeled_fun
"predicate_to_exp_ref"
)
Extlib
.
mk_labeled_fun
"predicate_to_exp_ref"
)
let
predicate_to_exp
~
adata
?
name
kf
?
rte
env
p
=
!
predicate_to_exp_ref
~
adata
?
name
kf
?
rte
env
p
(**************************************************************************)
(**************************************************************************)
(********************** Utility functions *********************************)
(********************** Utility functions *********************************)
(**************************************************************************)
(**************************************************************************)
...
@@ -97,7 +102,7 @@ let gmp_to_sizet ~adata ~loc ~name ?(check_lower_bound=true) ?pp kf env t =
...
@@ -97,7 +102,7 @@ let gmp_to_sizet ~adata ~loc ~name ?(check_lower_bound=true) ?pp kf env t =
Typing
.
preprocess_predicate
~
logic_env
lower_guard
;
Typing
.
preprocess_predicate
~
logic_env
lower_guard
;
let
adata_lower_guard
,
env
=
Assert
.
empty
~
loc
kf
env
in
let
adata_lower_guard
,
env
=
Assert
.
empty
~
loc
kf
env
in
let
lower_guard
,
adata_lower_guard
,
env
=
let
lower_guard
,
adata_lower_guard
,
env
=
!
predicate_to_exp
_ref
~
adata
:
adata_lower_guard
kf
env
lower_guard
predicate_to_exp
~
adata
:
adata_lower_guard
kf
env
lower_guard
in
in
let
assertion
,
env
=
let
assertion
,
env
=
Assert
.
runtime_check
Assert
.
runtime_check
...
@@ -127,7 +132,7 @@ let gmp_to_sizet ~adata ~loc ~name ?(check_lower_bound=true) ?pp kf env t =
...
@@ -127,7 +132,7 @@ let gmp_to_sizet ~adata ~loc ~name ?(check_lower_bound=true) ?pp kf env t =
Typing
.
preprocess_predicate
~
logic_env
upper_guard
;
Typing
.
preprocess_predicate
~
logic_env
upper_guard
;
let
adata_upper_guard
,
env
=
Assert
.
empty
~
loc
kf
env
in
let
adata_upper_guard
,
env
=
Assert
.
empty
~
loc
kf
env
in
let
upper_guard
,
adata_upper_guard
,
env
=
let
upper_guard
,
adata_upper_guard
,
env
=
!
predicate_to_exp
_ref
~
adata
:
adata_upper_guard
kf
env
upper_guard
predicate_to_exp
~
adata
:
adata_upper_guard
kf
env
upper_guard
in
in
let
assertion
,
env
=
let
assertion
,
env
=
Assert
.
runtime_check
Assert
.
runtime_check
...
@@ -141,7 +146,7 @@ let gmp_to_sizet ~adata ~loc ~name ?(check_lower_bound=true) ?pp kf env t =
...
@@ -141,7 +146,7 @@ let gmp_to_sizet ~adata ~loc ~name ?(check_lower_bound=true) ?pp kf env t =
in
in
let
stmts
=
assertion
::
stmts
in
let
stmts
=
assertion
::
stmts
in
(* Translate term [t] into an exp of type [size_t] *)
(* Translate term [t] into an exp of type [size_t] *)
let
gmp_e
,
adata
,
env
=
!
term_to_exp
_ref
~
adata
kf
env
t
in
let
gmp_e
,
adata
,
env
=
term_to_exp
~
adata
kf
env
t
in
let
_
,
e
,
env
=
Env
.
new_var
let
_
,
e
,
env
=
Env
.
new_var
~
loc
~
loc
~
name
:
"size"
~
name
:
"size"
...
@@ -180,13 +185,13 @@ let comparison_to_exp
...
@@ -180,13 +185,13 @@ let comparison_to_exp
let
e1
,
adata
,
env
=
let
e1
,
adata
,
env
=
match
e1
with
match
e1
with
|
None
->
|
None
->
let
e1
,
adata
,
env
=
!
term_to_exp
_ref
~
adata
kf
env
t1
in
let
e1
,
adata
,
env
=
term_to_exp
~
adata
kf
env
t1
in
e1
,
adata
,
env
e1
,
adata
,
env
|
Some
e1
->
|
Some
e1
->
e1
,
adata
,
env
e1
,
adata
,
env
in
in
let
ty1
=
Cil
.
typeOf
e1
in
let
ty1
=
Cil
.
typeOf
e1
in
let
e2
,
adata
,
env
=
!
term_to_exp
_ref
~
adata
kf
env
t2
in
let
e2
,
adata
,
env
=
term_to_exp
~
adata
kf
env
t2
in
let
ty2
=
Cil
.
typeOf
e2
in
let
ty2
=
Cil
.
typeOf
e2
in
let
e
,
env
=
let
e
,
env
=
match
Logic_aggr
.
get_t
ty1
,
Logic_aggr
.
get_t
ty2
with
match
Logic_aggr
.
get_t
ty1
,
Logic_aggr
.
get_t
ty2
with
...
@@ -265,7 +270,7 @@ let env_of_li ~adata ~loc kf env li =
...
@@ -265,7 +270,7 @@ let env_of_li ~adata ~loc kf env li =
let
logic_env
=
Env
.
Logic_env
.
get
env
in
let
logic_env
=
Env
.
Logic_env
.
get
env
in
let
ty
=
Typing
.
get_typ
~
logic_env
t
in
let
ty
=
Typing
.
get_typ
~
logic_env
t
in
let
vi
,
vi_e
,
env
=
Env
.
Logic_binding
.
add
~
ty
env
kf
li
.
l_var_info
in
let
vi
,
vi_e
,
env
=
Env
.
Logic_binding
.
add
~
ty
env
kf
li
.
l_var_info
in
let
e
,
adata
,
env
=
!
term_to_exp
_ref
~
adata
kf
env
t
in
let
e
,
adata
,
env
=
term_to_exp
~
adata
kf
env
t
in
let
stmt
=
match
Typing
.
get_number_ty
~
logic_env
t
with
let
stmt
=
match
Typing
.
get_number_ty
~
logic_env
t
with
|
C_integer
_
|
C_float
_
|
Nan
->
|
C_integer
_
|
C_float
_
|
Nan
->
Smart_stmt
.
assigns
~
loc
~
result
:
(
Cil
.
var
vi
)
e
Smart_stmt
.
assigns
~
loc
~
result
:
(
Cil
.
var
vi
)
e
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment