From 486187badabd63a0bfb5f4acc7bff5a9c243d723 Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Tue, 7 Apr 2009 01:19:19 +0000 Subject: [PATCH] - BugFix: we exchange the value param entities, so a further check will ALWAYS fail This fixes fehler165.c [r25807] --- ir/be/beabi.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ir/be/beabi.c b/ir/be/beabi.c index fbb716979..9fd9753f4 100644 --- a/ir/be/beabi.c +++ b/ir/be/beabi.c @@ -1569,8 +1569,11 @@ static void lower_frame_sels_walker(ir_node *irn, void *data) ir_node *bl = get_nodes_block(irn); ir_node *nw; int pos = 0; + int is_value_param = 0; if (get_entity_owner(ent) == ctx->value_tp) { + is_value_param = 1; + /* replace by its copy from the argument type */ pos = get_struct_member_index(ctx->value_tp, ent); ent = get_argument_entity(ent, ctx); @@ -1579,8 +1582,8 @@ static void lower_frame_sels_walker(ir_node *irn, void *data) nw = be_new_FrameAddr(ctx->sp_class, current_ir_graph, bl, ctx->frame, ent); exchange(irn, nw); - /* check, if it's a param sel and if have not seen this entity before */ - if (get_entity_owner(ent) == ctx->value_tp && get_entity_link(ent) == NULL) { + /* check, if it's a param Sel and if have not seen this entity before */ + if (is_value_param && get_entity_link(ent) == NULL) { ent_pos_pair pair; pair.ent = ent; -- 2.20.1