Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
pub
frama-c
Commits
f1acb5da
Commit
f1acb5da
authored
Jan 22, 2019
by
David Bühler
Browse files
[Ival] new file int_val for int abstractions.
parent
afd53042
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Makefile
View file @
f1acb5da
...
...
@@ -589,6 +589,7 @@ KERNEL_CMO=\
src/kernel_services/abstract_interp/fval.cmo
\
src/kernel_services/abstract_interp/int_interval.cmo
\
src/kernel_services/abstract_interp/int_set.cmo
\
src/kernel_services/abstract_interp/int_val.cmo
\
src/kernel_services/abstract_interp/ival.cmo
\
src/kernel_services/abstract_interp/base.cmo
\
src/kernel_services/abstract_interp/origin.cmo
\
...
...
headers/header_spec.txt
View file @
f1acb5da
...
...
@@ -430,6 +430,8 @@ src/kernel_services/abstract_interp/int_interval.ml: CEA_LGPL
src/kernel_services/abstract_interp/int_interval.mli: CEA_LGPL
src/kernel_services/abstract_interp/int_set.ml: CEA_LGPL
src/kernel_services/abstract_interp/int_set.mli: CEA_LGPL
src/kernel_services/abstract_interp/int_val.ml: CEA_LGPL
src/kernel_services/abstract_interp/int_val.mli: CEA_LGPL
src/kernel_services/abstract_interp/ival.ml: CEA_LGPL
src/kernel_services/abstract_interp/ival.mli: CEA_LGPL
src/kernel_services/abstract_interp/lattice_messages.ml: CEA_LGPL
...
...
src/kernel_services/abstract_interp/int_val.ml
0 → 100644
View file @
f1acb5da
This diff is collapsed.
Click to expand it.
src/kernel_services/abstract_interp/int_val.mli
0 → 100644
View file @
f1acb5da
(**************************************************************************)
(* *)
(* This file is part of Frama-C. *)
(* *)
(* Copyright (C) 2007-2019 *)
(* CEA (Commissariat à l'énergie atomique et aux énergies *)
(* alternatives) *)
(* *)
(* you can redistribute it and/or modify it under the terms of the GNU *)
(* Lesser General Public License as published by the Free Software *)
(* Foundation, version 2.1. *)
(* *)
(* It is distributed in the hope that it will be useful, *)
(* but WITHOUT ANY WARRANTY; without even the implied warranty of *)
(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *)
(* GNU Lesser General Public License for more details. *)
(* *)
(* See the GNU Lesser General Public License version 2.1 *)
(* for more details (enclosed in the file licenses/LGPLv2.1). *)
(* *)
(**************************************************************************)
type
t
module
Widen_Hints
=
Datatype
.
Integer
.
Set
type
size_widen_hint
=
Integer
.
t
type
generic_widen_hint
=
Widen_Hints
.
t
include
Datatype
.
S_with_collections
with
type
t
:=
t
include
Lattice_type
.
Full_AI_Lattice_with_cardinality
with
type
t
:=
t
and
type
widen_hint
=
size_widen_hint
*
generic_widen_hint
val
zero
:
t
val
one
:
t
val
minus_one
:
t
val
zero_or_one
:
t
val
positive_integers
:
t
val
negative_integers
:
t
val
inject_singleton
:
Integer
.
t
->
t
val
inject_range
:
Integer
.
t
option
->
Integer
.
t
option
->
t
val
inject_interval
:
min
:
Integer
.
t
option
->
max
:
Integer
.
t
option
->
rem
:
Integer
.
t
->
modu
:
Integer
.
t
->
t
val
make
:
min
:
Integer
.
t
option
->
max
:
Integer
.
t
option
->
rem
:
Integer
.
t
->
modu
:
Integer
.
t
->
t
val
create_all_values
:
signed
:
bool
->
size
:
int
->
t
val
min_int
:
t
->
Integer
.
t
option
val
max_int
:
t
->
Integer
.
t
option
val
min_max_rem_modu
:
t
->
Integer
.
t
option
*
Integer
.
t
option
*
Integer
.
t
*
Integer
.
t
val
min_and_max
:
t
->
Integer
.
t
option
*
Integer
.
t
option
exception
Not_Singleton_Int
val
project_int
:
t
->
Integer
.
t
val
is_small_set
:
t
->
bool
val
project_small_set
:
t
->
Integer
.
t
list
option
val
is_singleton
:
t
->
bool
val
cardinal_zero_or_one
:
t
->
bool
val
cardinal
:
t
->
Integer
.
t
option
val
cardinal_estimate
:
size
:
Integer
.
t
->
t
->
Integer
.
t
val
cardinal_less_than
:
t
->
int
->
int
val
cardinal_is_less_than
:
t
->
int
->
bool
val
is_bottom
:
t
->
bool
val
is_zero
:
t
->
bool
val
contains_zero
:
t
->
bool
val
contains_non_zero
:
t
->
bool
val
add
:
t
->
t
->
t
val
add_under
:
t
->
t
->
t
val
add_singleton
:
Integer
.
t
->
t
->
t
val
neg
:
t
->
t
val
sub
:
t
->
t
->
t
val
sub_under
:
t
->
t
->
t
val
scale
:
Integer
.
t
->
t
->
t
val
scale_div
:
pos
:
bool
->
Integer
.
t
->
t
->
t
val
scale_div_under
:
pos
:
bool
->
Integer
.
t
->
t
->
t
val
scale_rem
:
pos
:
bool
->
Integer
.
t
->
t
->
t
val
mul
:
t
->
t
->
t
val
div
:
t
->
t
->
t
val
c_rem
:
t
->
t
->
t
val
shift_left
:
t
->
t
->
t
val
shift_right
:
t
->
t
->
t
val
bitwise_and
:
t
->
t
->
t
val
bitwise_or
:
t
->
t
->
t
val
bitwise_xor
:
t
->
t
->
t
val
bitwise_signed_not
:
t
->
t
val
bitwise_unsigned_not
:
size
:
int
->
t
->
t
val
cast_int_to_int
:
size
:
Integer
.
t
->
signed
:
bool
->
t
->
t
val
subdivide
:
t
->
t
*
t
val
extract_bits
:
start
:
Integer
.
t
->
stop
:
Integer
.
t
->
t
->
t
val
all_values
:
size
:
Integer
.
t
->
t
->
bool
val
overlaps
:
partial
:
bool
->
size
:
Integer
.
t
->
t
->
t
->
bool
val
fold_int
:
(
Integer
.
t
->
'
a
->
'
a
)
->
t
->
'
a
->
'
a
val
get_small_cardinal
:
unit
->
int
val
set_small_cardinal
:
int
->
unit
val
rehash
:
t
->
t
src/kernel_services/abstract_interp/ival.ml
View file @
f1acb5da
This diff is collapsed.
Click to expand it.
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