X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Fdojump.c;h=4337348195533fb4c5804cc869f0bc5ed01e608f;hp=b619e0f49ded0859aeb4d7fcae6e4e61e68ecf3c;hb=06cecc47f09f4e431c2dccca99299d69de0a9669;hpb=99bdde56c01a90080290f126b54b20e6c1cf0ea0 diff --git a/gcc/dojump.c b/gcc/dojump.c index b619e0f49de..43373481955 100644 --- a/gcc/dojump.c +++ b/gcc/dojump.c @@ -70,7 +70,7 @@ void clear_pending_stack_adjust (void) { if (optimize > 0 - && (! flag_omit_frame_pointer || current_function_calls_alloca) + && (! flag_omit_frame_pointer || cfun->calls_alloca) && EXIT_IGNORE_STACK && ! (DECL_INLINE (current_function_decl) && ! flag_no_inline)) discard_pending_stack_adjust (); @@ -218,9 +218,7 @@ do_jump (tree exp, rtx if_false_label, rtx if_true_label) rtx set_label, clr_label; /* Strip narrowing integral type conversions. */ - while ((TREE_CODE (exp0) == NOP_EXPR - || TREE_CODE (exp0) == CONVERT_EXPR - || TREE_CODE (exp0) == NON_LVALUE_EXPR) + while (CONVERT_EXPR_P (exp0) && TREE_OPERAND (exp0, 0) != error_mark_node && TYPE_PRECISION (TREE_TYPE (exp0)) <= TYPE_PRECISION (TREE_TYPE (TREE_OPERAND (exp0, 0))))