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-e-acsl.core/E_ACSL/Loops/index.html
Module E_ACSL.Loops
Loop specific actions.
val handle_annotations :
Env.t ->
Frama_c_kernel.Kernel_function.t ->
Frama_c_kernel.Cil_types.stmt ->
Frama_c_kernel.Cil_types.stmt * Env.t
Modify the given stmt loop to insert the code which verifies the loop annotations, ie. preserves its loop invariants and checks the loop variant. Also return the modified environment.
val mk_nested_loops :
loc:Frama_c_kernel.Cil_types.location ->
(Env.t -> Frama_c_kernel.Cil_types.stmt list * Env.t) ->
Frama_c_kernel.Cil_types.kernel_function ->
Env.t ->
Analyses_types.lscope_var list ->
Frama_c_kernel.Cil_types.stmt list * Env.t
mk_nested_loops ~loc mk_innermost_block kf env lvars
creates nested loops (with the proper statements for initializing the loop counters) from the list of logic variables lvars
. Quantified variables create loops while let-bindings simply create new variables. The mk_innermost_block
closure creates the statements of the innermost block.
val translate_predicate_ref :
(Frama_c_kernel.Cil_types.kernel_function ->
Env.t ->
Frama_c_kernel.Cil_types.toplevel_predicate ->
Env.t)
ref
val predicate_to_exp_ref :
(adata:Assert.t ->
Frama_c_kernel.Cil_types.kernel_function ->
Env.t ->
Frama_c_kernel.Cil_types.predicate ->
Frama_c_kernel.Cil_types.exp * Assert.t * Env.t)
ref
val term_to_exp_ref :
(adata:Assert.t ->
Frama_c_kernel.Cil_types.kernel_function ->
Env.t ->
Frama_c_kernel.Cil_types.term ->
Frama_c_kernel.Cil_types.exp * Assert.t * Env.t)
ref
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>