[PATCH] Fix more type problems

Richard Guenther rguenther@suse.de
Fri Sep 12 08:58:00 GMT 2008


This fixes some more problems I noticed.

Bootstrapped and tested on x86_64-unknown-linux-gnu, applied to trunk.

Richard.

2008-09-11  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.

	fortran/
	* trans-intrinsic.c (gfc_conv_intrinsic_transfer): Use
	build_fold_addr_expr to properly mark the argument
	addressable.

Index: trunk/gcc/fortran/trans-intrinsic.c
===================================================================
*** trunk.orig/gcc/fortran/trans-intrinsic.c
--- trunk/gcc/fortran/trans-intrinsic.c
*************** gfc_conv_intrinsic_transfer (gfc_se * se
*** 3718,3724 ****
        moldsize = size_in_bytes (type);
  
        /* Use memcpy to do the transfer.  */
!       tmp = fold_build1 (ADDR_EXPR, build_pointer_type (type), tmpdecl);
        tmp = build_call_expr (built_in_decls[BUILT_IN_MEMCPY], 3,
  			     fold_convert (pvoid_type_node, tmp),
  			     fold_convert (pvoid_type_node, ptr),
--- 3718,3724 ----
        moldsize = size_in_bytes (type);
  
        /* Use memcpy to do the transfer.  */
!       tmp = build_fold_addr_expr (tmpdecl);
        tmp = build_call_expr (built_in_decls[BUILT_IN_MEMCPY], 3,
  			     fold_convert (pvoid_type_node, tmp),
  			     fold_convert (pvoid_type_node, ptr),
Index: trunk/gcc/tree-vrp.c
===================================================================
*** trunk.orig/gcc/tree-vrp.c
--- trunk/gcc/tree-vrp.c
*************** simplify_truth_ops_using_ranges (gimple_
*** 6319,6327 ****
    if (rhs_code == TRUTH_NOT_EXPR)
      {
        rhs_code = NE_EXPR;
!       op1 = integer_one_node;
      }
- 
    else
      {
        op1 = gimple_assign_rhs2 (stmt);
--- 6319,6326 ----
    if (rhs_code == TRUTH_NOT_EXPR)
      {
        rhs_code = NE_EXPR;
!       op1 = build_int_cst (TREE_TYPE (op0), 1);
      }
    else
      {
        op1 = gimple_assign_rhs2 (stmt);



More information about the Fortran mailing list