blob: e8745c0933f74826e0de3c3f4b3f6cf4033fd7d9 [file] [log] [blame]
#ifndef ANALYZER_DECLS_H
#define ANALYZER_DECLS_H
/* Function decls with special meaning to the analyzer.
None of these are actually implemented. */
/* Trigger a breakpoint in the analyzer when reached. */
extern void __analyzer_break (void);
/* Emit a warning describing the 2nd argument (which can be of any
type), at the given verbosity level. This is for use when
debugging, and may be of use in DejaGnu tests. */
extern void __analyzer_describe (int verbosity, ...);
/* Dump copious information about the analyzer’s state when reached. */
extern void __analyzer_dump (void);
/* Emit a warning describing the size of the base region of (*ptr). */
extern void __analyzer_dump_capacity (const void *ptr);
/* Dump information after analysis on all of the exploded nodes at this
program point.
__analyzer_dump_exploded_nodes (0);
will dump just the number of nodes, and their IDs.
__analyzer_dump_exploded_nodes (1);
will also dump all of the states within those nodes. */
extern void __analyzer_dump_exploded_nodes (int);
/* Emit a placeholder "note" diagnostic with a path to this call site,
if the analyzer finds a feasible path to it. */
extern void __analyzer_dump_path (void);
/* Dump the region_model's state to stderr. */
extern void __analyzer_dump_region_model (void);
/* Emit a warning describing the state of the 2nd argument
(which can be of any type) with respect to NAME.
This is for use when debugging, and may be of use in DejaGnu tests. */
extern void __analyzer_dump_state (const char *name, ...);
/* Emit a warning with text "TRUE", FALSE" or "UNKNOWN" based on the
truthfulness of the argument. */
extern void __analyzer_eval (int);
#endif /* #ifndef ANALYZER_DECLS_H. */