On Fri, 31 Aug 2007, Richard Guenther wrote:

> On Fri, 31 Aug 2007, Diego Novillo wrote:
> 
> > 
> > Richard, this comment does not match the code.  The code allows type
> > conversions between two integral types and between arbitrary types that
> > happen to *not* be integral.  Which semantics did you mean here?
> > 
> >         /* Allow conversions between integral types.  */
> >         if (INTEGRAL_TYPE_P (type) == INTEGRAL_TYPE_P (TREE_TYPE (op)))
> >           return false;
> > 
> > I'm thinking this should be && not ==.
> 
> Whoops.  Indeed.  Now - no guarantee that this won't "break" anything
> of course... (I'll check on the mainline)

I'm checking the following.

Richard.

2007-08-31  Richard Guenther  <[EMAIL PROTECTED]>

        * tree-cfg.c (verify_gimple_expr): Fix check for conversions
        between integral types.  Also allow conversions between
        pointer types.

Index: tree-cfg.c
===================================================================
*** tree-cfg.c  (revision 127968)
--- tree-cfg.c  (working copy)
*************** verify_gimple_expr (tree expr)
*** 3574,3581 ****
            return true;
          }
  
!       /* Allow conversions between integral types.  */
!         if (INTEGRAL_TYPE_P (type) == INTEGRAL_TYPE_P (TREE_TYPE (op)))
          return false;
  
        /* Allow conversions between integral types and pointers only if
--- 3574,3583 ----
            return true;
          }
  
!       /* Allow conversions between integral types and between
!          pointer types.  */
!         if ((INTEGRAL_TYPE_P (type) && INTEGRAL_TYPE_P (TREE_TYPE (op)))
!           || (POINTER_TYPE_P (type) && POINTER_TYPE_P (TREE_TYPE (op))))
          return false;
  
        /* Allow conversions between integral types and pointers only if

Reply via email to