Re: Types of operands in a gimple equality operation

2017-11-13 Thread David Edelsohn
On Mon, Nov 13, 2017 at 9:51 AM, Jeff Law wrote: > On 11/13/2017 01:30 AM, Richard Biener wrote: > >>> Huh, that bites. Im surprised we don't just make those places produce a >>> cast, or just introduce an explicit cast of the (void *)0 during the >>> expression building process. >> >> I'm quite

Re: Types of operands in a gimple equality operation

2017-11-13 Thread Jeff Law
On 11/13/2017 01:30 AM, Richard Biener wrote: >> Huh, that bites. Im surprised we don't just make those places produce a >> cast, or just introduce an explicit cast of the (void *)0 during the >> expression building process. > > I'm quite sure we could relax the above now given we have gimple_ca

Re: Types of operands in a gimple equality operation

2017-11-13 Thread Richard Biener
On Fri, Nov 10, 2017 at 3:54 PM, Andrew MacLeod wrote: > On 11/10/2017 09:03 AM, Richard Biener wrote: >> >> On Fri, Nov 10, 2017 at 2:49 PM, Andrew MacLeod >> wrote: >>> >>> Before I open a PR, I want to confirm my beliefs. >>> >>> >>> Is it not true that both operations of a gimple operation su

Re: Types of operands in a gimple equality operation

2017-11-10 Thread Andrew MacLeod
On 11/10/2017 09:03 AM, Richard Biener wrote: On Fri, Nov 10, 2017 at 2:49 PM, Andrew MacLeod wrote: Before I open a PR, I want to confirm my beliefs. Is it not true that both operations of a gimple operation such as == or != must satisfy types_compatible_p (op1_type, op2_type) ? Even when

Re: Types of operands in a gimple equality operation

2017-11-10 Thread Jakub Jelinek
On Fri, Nov 10, 2017 at 08:59:41AM -0500, Andrew MacLeod wrote: > On 11/10/2017 08:49 AM, Andrew MacLeod wrote: > > > > The IL is comparing > > ptr == 0B > > > > and I see: > > Type op1 : 0x7fd8e312df18 -> integer(kind=4) (*) (void) > > Type op2 : 0x7fd8e2fa10a8 -> void * > > > > These 2 ty

Re: Types of operands in a gimple equality operation

2017-11-10 Thread Richard Biener
On Fri, Nov 10, 2017 at 2:49 PM, Andrew MacLeod wrote: > Before I open a PR, I want to confirm my beliefs. > > > Is it not true that both operations of a gimple operation such as == or != > must satisfy types_compatible_p (op1_type, op2_type) ? Even when one is a > constant? > > given : > > _1

Re: Types of operands in a gimple equality operation

2017-11-10 Thread Andrew MacLeod
On 11/10/2017 08:49 AM, Andrew MacLeod wrote: The IL is comparing ptr == 0B and I see: Type op1 : 0x7fd8e312df18 -> integer(kind=4) (*) (void) Type op2 : 0x7fd8e2fa10a8 -> void * These 2 types fail the types_compatible_p test. So is this a bug like I think it is? Andrew Interesting, in