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
56a1f50d
Commit
56a1f50d
authored
2 years ago
by
Allan Blanchard
Browse files
Options
Downloads
Patches
Plain Diff
[rte] simplifies registration
parent
e19f2242
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/rte/register.ml
+31
-40
31 additions, 40 deletions
src/plugins/rte/register.ml
with
31 additions
and
40 deletions
src/plugins/rte/register.ml
+
31
−
40
View file @
56a1f50d
...
...
@@ -56,49 +56,40 @@ let compute () =
Globals
.
Functions
.
iter
(
fun
kf
->
if
include_function
kf
then
!
Db
.
RteGen
.
annotate_kf
kf
)
(* journal utilities *)
let
journal_register
?
comment
is_dyn
name
ty_arg
fctref
fct
=
let
ty
=
Datatype
.
func
ty_arg
Datatype
.
unit
in
Db
.
register
fctref
fct
;
if
is_dyn
then
let
_ignore
=
Dynamic
.
register
?
comment
~
plugin
:
"RteGen"
name
ty
fct
in
()
let
nojournal_register
fctref
fct
=
Db
.
register
fctref
(
fun
()
->
fct
)
let
()
=
journal_register
false
"annotate_kf"
Kernel_function
.
ty
Db
.
RteGen
.
annotate_kf
Visit
.
annotate
;
journal_register
false
"compute"
Datatype
.
unit
Db
.
RteGen
.
compute
compute
;
journal_register
true
~
comment
:
"Generate all RTE annotations in the \
given function."
"do_all_rte"
Kernel_function
.
ty
Db
.
RteGen
.
do_all_rte
do_all_rte
;
journal_register
false
~
comment
:
"Generate all RTE annotations except pre-conditions \
in the given function."
"do_rte"
Kernel_function
.
ty
Db
.
RteGen
.
do_rte
do_rte
;
Db
.
register
Db
.
RteGen
.
annotate_kf
Visit
.
annotate
;
Db
.
register
Db
.
RteGen
.
compute
compute
;
Db
.
register
Db
.
RteGen
.
do_rte
do_rte
;
Db
.
register
Db
.
RteGen
.
do_all_rte
do_all_rte
;
let
_ignore
=
Dynamic
.
register
~
comment
:
"Generate all RTE annotations in the given function."
~
plugin
:
"RteGen"
"do_all_rte"
(
Datatype
.
func
Kernel_function
.
ty
Datatype
.
unit
)
do_all_rte
in
let
open
Generator
in
let
open
Db
.
RteGen
in
nojournal_register
get_signedOv_status
Signed_overflow
.
accessor
;
nojournal_register
get_divMod_status
Div_mod
.
accessor
;
nojournal_register
get_initialized_status
Initialized
.
accessor
;
nojournal_register
get_signed_downCast_status
Signed_downcast
.
accessor
;
nojournal_register
get_memAccess_status
Mem_access
.
accessor
;
nojournal_register
get_pointerCall_status
Pointer_call
.
accessor
;
nojournal_register
get_unsignedOv_status
Unsigned_overflow
.
accessor
;
nojournal_register
get_unsignedDownCast_status
Unsigned_downcast
.
accessor
;
nojournal_register
get_pointer_downcast_status
Pointer_downcast
.
accessor
;
nojournal_register
get_float_to_int_status
Float_to_int
.
accessor
;
nojournal_register
get_finite_float_status
Finite_float
.
accessor
;
nojournal_register
get_pointer_value_status
Pointer_value
.
accessor
;
nojournal_register
get_bool_value_status
Bool_value
.
accessor
;
nojournal_register
get_all_status
all_statuses
;
let
register_getter
fctref
fct
=
Db
.
register
fctref
(
fun
()
->
fct
)
in
register_getter
get_signedOv_status
Signed_overflow
.
accessor
;
register_getter
get_divMod_status
Div_mod
.
accessor
;
register_getter
get_initialized_status
Initialized
.
accessor
;
register_getter
get_signed_downCast_status
Signed_downcast
.
accessor
;
register_getter
get_memAccess_status
Mem_access
.
accessor
;
register_getter
get_pointerCall_status
Pointer_call
.
accessor
;
register_getter
get_unsignedOv_status
Unsigned_overflow
.
accessor
;
register_getter
get_unsignedDownCast_status
Unsigned_downcast
.
accessor
;
register_getter
get_pointer_downcast_status
Pointer_downcast
.
accessor
;
register_getter
get_float_to_int_status
Float_to_int
.
accessor
;
register_getter
get_finite_float_status
Finite_float
.
accessor
;
register_getter
get_pointer_value_status
Pointer_value
.
accessor
;
register_getter
get_bool_value_status
Bool_value
.
accessor
;
register_getter
get_all_status
all_statuses
;
;;
(* dynamic registration *)
...
...
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