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
-
SSylvain Chiron
-
LLoïc Correnson
-
JJulien Crétin
-
PPascal Cuoq
-
ZZaynah Dargaye
-
BBasile Desloges
-
JJean-Christophe Filliâtre
-
PPhilippe Herrmann
-
MMaxime Jacquemin
-
BBenjamin Jorge
-
FFlorent Kirchner
-
AAlexander Kogtenkov
-
RRemi Lazarini
-
TTristan Le Gall
-
KKilyan Le Gallic
-
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
-
CCécile Ruet-Cros
-
JJulien Signoles
-
NNicolas Stouls
-
KKostyantyn Vorobyov
-
BBoris Yakobowski
Maintainers
Sources
frama-c-31.0-beta-Gallium.tar.gz
sha256=095ffbb3086a6cd963a03e3defab4f0dc32e9a43f026e552ec9ae346a6e20522
doc/src/frama-c-region.core/access.ml.html
Source file access.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
(**************************************************************************) (* *) (* This file is part of Frama-C. *) (* *) (* Copyright (C) 2007-2025 *) (* 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). *) (* *) (**************************************************************************) open Cil_types open Cil_datatype type acs = | Exp of Stmt.t * exp | Lval of Stmt.t * lval | Init of Stmt.t * varinfo | Term of Property.t * term_lval let compare (a : acs) (b : acs) : int = match a, b with | Init(sa,xa), Init(sb,xb) -> let cmp = Stmt.compare sa sb in if cmp <> 0 then cmp else Varinfo.compare xa xb | Init _ , _ -> (-1) | _ , Init _ -> (+1) | Lval(sa,la), Lval(sb,lb) -> let cmp = Stmt.compare sa sb in if cmp <> 0 then cmp else Lval.compare la lb | Lval _ , _ -> (-1) | _ , Lval _ -> (+1) | Exp(sa,ea), Exp(sb,eb) -> let cmp = Stmt.compare sa sb in if cmp <> 0 then cmp else Exp.compare ea eb | Exp _ , _ -> (-1) | _ , Exp _ -> (+1) | Term(sa,ta), Term(sb,tb) -> let cmp = Property.compare sa sb in if cmp <> 0 then cmp else Term_lval.compare ta tb let pstmt fmt (s : stmt) = match s.labels with | Label(l,_,_)::_ -> Format.pp_print_string fmt l | _ -> let loc, _ = Stmt.loc s in Format.fprintf fmt "L%d" loc.pos_lnum let pretty fmt = function | Init(s,x) -> Format.fprintf fmt "%a@%a" Varinfo.pretty x pstmt s | Exp(s,e) -> Format.fprintf fmt "%a@%a" Exp.pretty e pstmt s | Lval(s,l) -> Format.fprintf fmt "%a@%a" Lval.pretty l pstmt s | Term(s,l) -> Format.fprintf fmt "%a@%s" Term_lval.pretty l (Property.Names.get_prop_name_id s) let typeof = function | Init(_,x) -> x.vtype | Lval(_,lv) -> Cil.typeOfLval lv | Exp(_,e) -> Cil.typeOf e | Term(_,lt) -> match Cil.typeOfTermLval lt with | Ctype ty -> ty | _ -> Cil_const.voidType module Set = Set.Make(struct type t = acs let compare = compare end)
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>