package frama-c
Platform dedicated to the analysis of source code written in C
Install
Dune Dependency
Authors
-
MMichele Alberti
-
TThibaud Antignac
-
GGergö Barany
-
PPatrick Baudin
-
NNicolas Bellec
-
TThibaut Benjamin
-
AAllan Blanchard
-
LLionel Blatter
-
FFrançois Bobot
-
RRichard Bonichon
-
VVincent Botbol
-
QQuentin Bouillaguet
-
DDavid Bühler
-
ZZakaria Chihani
-
LLoïc Correnson
-
JJulien Crétin
-
PPascal Cuoq
-
ZZaynah Dargaye
-
BBasile Desloges
-
JJean-Christophe Filliâtre
-
PPhilippe Herrmann
-
MMaxime Jacquemin
-
FFlorent Kirchner
-
AAlexander Kogtenkov
-
RRemi Lazarini
-
TTristan Le Gall
-
JJean-Christophe Léchenet
-
MMatthieu Lemerre
-
DDara Ly
-
DDavid Maison
-
CClaude Marché
-
AAndré Maroneze
-
TThibault Martin
-
FFonenantsoa Maurica
-
MMelody Méaulle
-
BBenjamin Monate
-
YYannick Moy
-
PPierre Nigron
-
AAnne Pacalet
-
VValentin Perrelle
-
GGuillaume Petiot
-
DDario Pinto
-
VVirgile Prevosto
-
AArmand Puccetti
-
FFélix Ridoux
-
VVirgile Robles
-
JJan Rochel
-
MMuriel Roger
-
JJulien Signoles
-
NNicolas Stouls
-
KKostyantyn Vorobyov
-
BBoris Yakobowski
Maintainers
Sources
frama-c-29.0-Copper.tar.gz
sha256=d2fbb3b8d0ff83945872e9e6fa258e934a706360e698dae3b4d5f971addf7493
doc/frama-c-eva.core/Eva/Eva_annotations/index.html
Module Eva.Eva_annotations
Source
Register special annotations to locally guide the Eva analysis:
- slevel annotations: "slevel default", "slevel merge" and "slevel i"
- loop unroll annotations: "loop unroll term"
- value partitioning annotations: "split term" and "merge term"
- subdivision annotations: "subdivide i"
type unroll_annotation =
| UnrollAmount of Frama_c_kernel.Cil_types.term
(*Unroll the n first iterations.
*)| UnrollFull
(*Unroll amount defined by -eva-default-loop-unroll.
*)
Loop unroll annotations.
type split_term =
| Expression of Frama_c_kernel.Cil_types.exp
| Predicate of Frama_c_kernel.Cil_types.predicate
type flow_annotation =
| FlowSplit of split_term * split_kind
(*Split states according to a term.
*)| FlowMerge of split_term
(*Merge states separated by a previous split.
*)
Split/merge annotations for value partitioning.
type array_segmentation =
Frama_c_kernel.Cil_types.varinfo
* Frama_c_kernel.Cil_types.offset
* Frama_c_kernel.Cil_types.exp list
type domain_scope = string * Frama_c_kernel.Cil_types.varinfo list
val get_slevel_annot :
Frama_c_kernel.Cil_types.stmt ->
slevel_annotation option
val get_unroll_annot : Frama_c_kernel.Cil_types.stmt -> unroll_annotation list
val get_flow_annot : Frama_c_kernel.Cil_types.stmt -> flow_annotation list
val get_subdivision_annot : Frama_c_kernel.Cil_types.stmt -> int list
val get_allocation : Frama_c_kernel.Cil_types.stmt -> allocation_kind
val add_slevel_annot :
emitter:Frama_c_kernel.Emitter.t ->
Frama_c_kernel.Cil_types.stmt ->
slevel_annotation ->
unit
val add_unroll_annot :
emitter:Frama_c_kernel.Emitter.t ->
Frama_c_kernel.Cil_types.stmt ->
unroll_annotation ->
unit
val add_flow_annot :
emitter:Frama_c_kernel.Emitter.t ->
Frama_c_kernel.Cil_types.stmt ->
flow_annotation ->
unit
val add_subdivision_annot :
emitter:Frama_c_kernel.Emitter.t ->
Frama_c_kernel.Cil_types.stmt ->
int ->
unit
val add_array_segmentation :
emitter:Frama_c_kernel.Emitter.t ->
Frama_c_kernel.Cil_types.stmt ->
array_segmentation ->
unit
val add_domain_scope :
emitter:Frama_c_kernel.Emitter.t ->
Frama_c_kernel.Cil_types.stmt ->
domain_scope ->
unit
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>