Static analyzer for C/C++ based on the theory of Abstract Interpretation.
December 2018
October 2018
algorithms
to adt
;iterator
to fixpoint
;domain
and value
for each group of domains;legacy
folder with unmaintained code. It will be removed in the future.DumpableTraits
to dump an object on a stream, for debugging purpose;IndexableTraits
to get a unique index representing an object;GraphTraits
to traverse a graph. It replaces the previous control flow graph API.pta
.machine_int::PolymorphicDomain
, a machine integer abstract domain using runtime polymorphism that allows to use different abstract domains at runtime.machine_int::NumericDomainAdapter
, a machine integer abstract domain wrapping a numeric abstract domain.ValueDomain
.src
directory.--ikos-pp
option. It is recommended not to use optimizations.--domain
option, to choose the numerical abstract domain at runtime.--hardware-addresses
option, for software using Direct Memory Access (DMA).--argc
option, to specify the value of argc
during the analysis.volatile
keyword.ikos/analyzer/intrinsic.h
, a header file with IKOS intrinsics.isa<>
, cast<>
and dyn_cast<>
utilities, à la LLVM;volatile
attribute;check
that builds and runs all the tests.October 2017
__ikos_debug()
, that dumps the current invariant.va_start
, va_arg
, va_end
and va_copy
).insertelement
and extractelement
in LLVM).settings
and times
table in the result database, allowing a user to query the analysis options and timing results.__ikos_init_globals
, also fixing the initialization of global objects in C++.