package frama-clang
Information related to class: inheritance diagram, virtual meths, ...
val inheritance_graph_state : Frama_c_kernel.State.t
val add_inheritance_relation :
Fclang_datatype.Qualified_name.t ->
Intermediate_format.inheritance ->
unit
add_inheritance_relation b a
indicates that b
inherits from a
.
val add_class : Fclang_datatype.Qualified_name.t -> unit
val get_bases_list :
Fclang_datatype.Qualified_name.t ->
Intermediate_format.inheritance list
get_bases_list b
returns all a such that b
inherits from a
.
val has_virtual_base_class : Fclang_datatype.Qualified_name.t -> bool
has_virtual_base_class b
returns true iff b has a virtual base class or if has_virtual_base_class a
for a such that b
inherits from a
.
val get_virtual_base_classes :
Fclang_datatype.Qualified_name.t ->
Fclang_datatype.Qualified_name.t list
get_virtual_base_classes b
returns the list of the virtual base classes of b. The list is unordered and built recursively on the base classes
val subtypes :
Fclang_datatype.Qualified_name.t ->
Fclang_datatype.Qualified_name.Set.t
returns all the classes derived (directly or indirectly) from the one given as argument.
val class_of_mangled : string -> Fclang_datatype.Qualified_name.t option
retrieve the C++ name of a class from an mangled identifier, or None
if no such class exist in the inheritance graph.
val has_unambiguous_path :
Fclang_datatype.Qualified_name.t ->
Fclang_datatype.Qualified_name.t ->
bool
has_unambiguous_path b a
is true
if b
unambiguously inherits from a.
val has_public_path :
Fclang_datatype.Qualified_name.t ->
Fclang_datatype.Qualified_name.t ->
bool
has_public_path b a
is true
if a
is a base class of b
following a public inheritance path only.
val inheritance_path :
Fclang_datatype.Qualified_name.t ->
Fclang_datatype.Qualified_name.t ->
(Fclang_datatype.Qualified_name.t
* (Intermediate_format.access_kind * Intermediate_format.vkind)
* Fclang_datatype.Qualified_name.t)
list
inheritance_path derived base
returns an inheritance path from derived
to base
. In case of ambiguity, the selected path is not specified.