21#ifndef GCC_ANALYZER_CALL_STRING_H
22#define GCC_ANALYZER_CALL_STRING_H
80 std::unique_ptr<json::value>
to_json ()
const;
124 return hstate.
end ();
130 template <
typename T>
static inline void remove (
T &entry)
132 entry.m_key =
element_t (
nullptr,
nullptr,
nullptr);
135 template <
typename T>
static inline bool is_empty (
const T &entry)
137 return entry.m_key.m_call_sedge ==
nullptr;
139 template <
typename T>
static inline bool is_deleted (
const T &entry)
141 return entry.m_key.m_call_sedge ==
reinterpret_cast<const superedge *
> (1);
145 entry.m_key =
element_t (
nullptr,
nullptr,
nullptr);
146 entry.m_value =
nullptr;
150 entry.m_key.m_call_sedge =
reinterpret_cast<const superedge *
> (1);
const call_string * get_parent() const
Definition call-string.h:87
static int cmp(const call_string &a, const call_string &b)
void recursive_log(logger *logger) const
void print(pretty_printer *pp) const
DISABLE_COPY_AND_ASSIGN(call_string)
element_t operator[](unsigned idx) const
Definition call-string.h:99
int calc_recursion_depth() const
friend class region_model_manager
Definition call-string.h:154
hash_map< element_t, const call_string *, hashmap_traits_t > m_children
Definition call-string.h:166
auto_vec< element_t > m_elements
Definition call-string.h:165
const call_string * push_call(const superedge &call_sedge, const call_and_return_op &call_op, function &called_fun) const
int count_occurrences_of_function(function *) const
const supernode * get_return_node_in_caller() const
call_string(const call_string &parent, const element_t &to_push)
const call_string * m_parent
Definition call-string.h:164
const element_t & get_top_of_stack() const
Definition call-string.h:103
bool empty_p() const
Definition call-string.h:82
static int cmp_ptr_ptr(const void *, const void *)
unsigned length() const
Definition call-string.h:98
std::unique_ptr< json::value > to_json() const
Definition analyzer-logging.h:34
Definition supergraph.h:281
Definition supergraph.h:105
Definition supergraph.h:224
hashval_t end() const
Definition inchash.h:49
void add_ptr(const void *ptr)
Definition inchash.h:94
Definition pretty-print.h:241
static struct token T
Definition gengtype-parse.cc:45
Definition access-diagram.h:30
Ca const poly_int< N, Cb > & b
Definition poly-int.h:771
Ca & a
Definition poly-int.h:770
Definition call-string.h:52
const gcall & get_call_stmt() const
bool operator==(const element_t &other) const
const superedge * m_call_sedge
Definition call-string.h:73
function * m_called_fun
Definition call-string.h:75
function * get_callee_function() const
Definition call-string.h:68
bool operator!=(const element_t &other) const
element_t(const superedge *call_sedge, const call_and_return_op *call_op, function *called_fun)
Definition call-string.h:53
const supernode * get_return_snode_in_caller() const
const call_and_return_op * m_call_op
Definition call-string.h:74
const supernode * get_call_snode_in_caller() const
function * get_caller_function() const
static int cmp(const element_t &a, const element_t &b)
Definition call-string.h:115
static void mark_deleted(T &entry)
Definition call-string.h:148
static void mark_empty(T &entry)
Definition call-string.h:143
static bool is_deleted(const T &entry)
Definition call-string.h:139
static hashval_t hash(const key_type &k)
Definition call-string.h:120
static const bool empty_zero_p
Definition call-string.h:134
static void remove(T &entry)
Definition call-string.h:130
static bool equal_keys(const key_type &k1, const key_type &k2)
Definition call-string.h:126
static bool is_empty(const T &entry)
Definition call-string.h:135
const call_string * value_type
Definition call-string.h:117
static const bool maybe_mx
Definition call-string.h:119
element_t key_type
Definition call-string.h:116
Definition function.h:249
#define gcc_assert(EXPR)
Definition system.h:817