path: root/ir/ana
diff options
authorChristoph Mallon <>2016-06-12 12:14:06 +0200
committerChristoph Mallon <>2016-06-12 12:14:06 +0200
commit01586f221f18054b4934433453ee98fae9dc4604 (patch)
tree792b2dba198567e5fba491977b0ec57d16e80e76 /ir/ana
parent26876c684bdeaf7f94e85c9624d49063a30910f9 (diff)
Remove the functions for 'atomic entities'.
* 'get_atomic_ent_value()' is a wrapper, which tries to unify the different kind of initalizers by wastefully creating nodes on demand. It had only a single user, which tried to use it for method entities, which does not work anymore (see 3rd bullet point). * 'set_atomic_ent_value()' is a thin and unnecessary wrapper to set a const node initializer. * 'is_atomic_entity()' classifies entities having (among primitive and pointer types) method type as having an atomic initializer. They do not for a long time (was an address of itself). Except for the two functions above, this function is unused. * 'Atomic' is a misnomer and should rather be 'scalar'.
Diffstat (limited to 'ir/ana')
1 files changed, 3 insertions, 6 deletions
diff --git a/ir/ana/cgana.c b/ir/ana/cgana.c
index 9f1f01e..4968aa4 100644
--- a/ir/ana/cgana.c
+++ b/ir/ana/cgana.c
@@ -167,15 +167,12 @@ static void sel_methods_walker(ir_node *node, void *env)
ir_entity *const entity = get_Member_entity(node);
if (!is_method_entity(entity))
- /* we may have a vtable entry and need this redirection to get the actually
- * called method */
- ir_entity *const called = get_Address_entity(get_atomic_ent_value(entity));
- if (!pset_find_ptr(entities, called)) {
+ if (!pset_find_ptr(entities, entity)) {
/* Entity not yet handled. Find all (internal or external)
* implemented methods that overwrites this entity.
* This set is stored in the entity link. */
- set_entity_link(called, get_impl_methods(called));
- pset_insert_ptr(entities, called);
+ set_entity_link(entity, get_impl_methods(entity));
+ pset_insert_ptr(entities, entity);