n Wed, Jul 27, 2011 at 12:59 PM, Kai Tietz <[email protected]> wrote:
> Hello,
>
> this patch handles for canonicalize_cond_expr_cond the case, that we have an
> type-cast from boolean-type.
>
> ChangeLog
>
> 2011-07-27 Kai Tietz <[email protected]>
>
> * gimple.c (canonicalize_cond_expr_cond): Handle cast
> from boolean-type case.
>
> Bootstrapped and regression tested on x86_64-pc-linux-gnu. Ok for apply?
Ok. Do you have a testcase that you can add?
Thanks,
Richard.
> Regards,
> Kai
>
> Index: gcc-head/gcc/gimple.c
> ===================================================================
> --- gcc-head.orig/gcc/gimple.c
> +++ gcc-head/gcc/gimple.c
> @@ -3160,7 +3160,9 @@ canonicalize_cond_expr_cond (tree t)
> {
> /* Strip conversions around boolean operations. */
> if (CONVERT_EXPR_P (t)
> - && truth_value_p (TREE_CODE (TREE_OPERAND (t, 0))))
> + && (truth_value_p (TREE_CODE (TREE_OPERAND (t, 0)))
> + || TREE_CODE (TREE_TYPE (TREE_OPERAND (t, 0)))
> + == BOOLEAN_TYPE))
> t = TREE_OPERAND (t, 0);
>
> /* For !x use x == 0. */
>