module Libc: sig
.. end
val is_memcpy : Cil_types.exp -> bool
Return true
if exp
captures a function name that matches memcpy
or
an equivalent function
val is_memcpy_name : string -> bool
Same as is_memcpy
but for strings
val is_memset : Cil_types.exp -> bool
Return true
if exp
captures a function name that matches memset
or
an equivalent function
val is_memset_name : string -> bool
Same as is_memset
but for strings
val is_dyn_alloc : Cil_types.exp -> bool
Return true
if exp
captures a function name that matches a function
that dynamically allocates memory such as malloc
or calloc
val is_dyn_alloc_name : string -> bool
Same as is_dyn_alloc
but for strings
val is_dyn_free : Cil_types.exp -> bool
Return true
if exp
captures a function name that matches
a function that dynamically deallocates memory (e.g., free
)
val is_dyn_free_name : string -> bool
Same as is_dyn_free
but for strings
val is_vla_free : Cil_types.exp -> bool
Return true
if exp
captures a function name that matches
a function that allocates memory for a variable-size array.
val is_vla_free_name : string -> bool
Return true
if string
captures a function name that matches
a function that deallocates memory for a variable-size array.
val is_vla_alloc : Cil_types.exp -> bool
Return true
if exp
captures a function name that matches
a function that deallocates memory for a variable-size array.
val is_vla_alloc_name : string -> bool
Same as is_dyn_alloc
but for strings
val is_alloca : Cil_types.exp -> bool
Return true
if exp
captures a function name that matches
a function that allocates memory on stack.
val is_alloca_name : string -> bool
Same as is_alloca
but for strings
val is_printf : Cil_types.exp -> bool
Return true
if exp
captures a function name that matches
a printf-like function such as printf
, fprintf
, dprintf
etc.
val is_printf_name : string -> bool
Same as is_printf
but for strings
val printf_fmt_position : string -> int
Given the name of a printf-like function (as determined by
is_printf_name
) return the number of arguments preceding its variadic
arguments.
val get_printf_argument_str : loc:Cil_types.location -> string -> Cil_types.exp list -> Cil_types.exp
Given the name of a printf-like function and the list of its variadic
arguments return a literal string expression where each character
describes the type of an argument from a list. Such characters are also
called abbreviated types. Conversion between abbreviated and C types
characters is as follows:
- "b" ->
_Bool
- "c" ->
signed char
- "C" ->
unsigned char
- "d" ->
int
- "D" ->
unsigned int
- "h" ->
short
- "H" ->
unsigned short
- "l" ->
long
- "L" ->
unsigned long
- "r" ->
long long
- "R" ->
unsigned long long
- "f" ->
float
- "e" ->
double
- "E" ->
long double
- "s" ->
char*
- "i" ->
int*
- "p" ->
void*
val actual_alloca : string
The name of an actual alloca
function used at link-time.
In GCC/Clang alloca
is typically implemented via __builtin_alloca