From 453d41207adb81b0616e20427213b8793718555c Mon Sep 17 00:00:00 2001 From: Matthias Braun Date: Fri, 25 Mar 2011 16:05:07 +0100 Subject: [PATCH] fix firm producing invalid code for return a > 0 with a being an int --- ir/lower/lower_mode_b.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ir/lower/lower_mode_b.c b/ir/lower/lower_mode_b.c index ea50c29ba..ee4ccb6c3 100644 --- a/ir/lower/lower_mode_b.c +++ b/ir/lower/lower_mode_b.c @@ -278,14 +278,14 @@ static ir_node *lower_node(ir_node *node) } case iro_Cmp: { - ir_node *left = get_Cmp_left(node); - ir_node *right = get_Cmp_right(node); - ir_mode *cmp_mode = get_irn_mode(left); + ir_node *left = get_Cmp_left(node); + ir_node *right = get_Cmp_right(node); + ir_mode *cmp_mode = get_irn_mode(left); + ir_relation relation = get_Cmp_relation(node); if ((mode_is_int(cmp_mode) || mode_is_reference(cmp_mode)) && (get_mode_size_bits(cmp_mode) < get_mode_size_bits(mode) || - (mode_is_signed(cmp_mode) && is_Const(right) && is_Const_null(right)))) { - ir_relation relation = get_Cmp_relation(node); + (mode_is_signed(cmp_mode) && is_Const(right) && is_Const_null(right) && relation != ir_relation_greater))) { int need_not = 0; ir_node *a = NULL; ir_node *b = NULL; -- 2.20.1