associate different tags with MEM while building points-to information,
thus before we get to analyze it.
XXX: this could be solved by either running with -fno-strict-aliasing
- or by recording the points-to information before splitting the orignal
+ or by recording the points-to information before splitting the original
tag based on type.
Example 3.
tree object;
bool is_ptr;
/* The difference between the number of references to OBJECT
- and the number of occurences of &OBJECT. */
+ and the number of occurrences of &OBJECT. */
int found;
};
static inline void
maybe_add_match (htab_t ref_map, struct tree_map *key)
{
- struct tree_map *found = htab_find (ref_map, key);
+ struct tree_map *found = (struct tree_map *) htab_find (ref_map, key);
if (found && !found->to)
found->to = key->to;
add_key (htab_t ht, tree t, alloc_pool references_pool)
{
void **slot;
- struct tree_map *tp = pool_alloc (references_pool);
+ struct tree_map *tp = (struct tree_map *) pool_alloc (references_pool);
tp->base.from = t;
tp->to = NULL_TREE;
/* Find the reference site for OBJECT.
- If IS_PTR is true, look for derferences of OBJECT instead.
+ If IS_PTR is true, look for dereferences of OBJECT instead.
XXX: only the first site is returned in the current
implementation. If there are no matching sites, return NULL_TREE. */
int *go_below ATTRIBUTE_UNUSED,
void *data ATTRIBUTE_UNUSED)
{
- if (DECL_P (*t) && DECL_ARTIFICIAL (*t))
+ if (DECL_P (*t) && !MTAG_P (*t) && DECL_ARTIFICIAL (*t))
return *t;
else
return NULL_TREE;