http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58845

--- Comment #17 from Marc Glisse <glisse at gcc dot gnu.org> ---
(In reply to Jason Merrill from comment #15)
> (In reply to Richard Biener from comment #5)
> >  (v1 != { 0, 0, ... }) & (v2 != { 0, 0, ... })
> 
> FWIW this seems to be what clang does, without any kind of sequence point.

Yes, and that's what OpenCL says, but since we have already started
diverging...

> I suppose figuring out what semantics we want is the important part.

Well, I am ok with the semantics of my patch (explained in comment #14) ;-)
(I would probably be ok with other versions as well though)

For the implementation, I have a slight preference for the #if 1 version in the
patch, but I am not sure if it is better (3 lines are unnecessary in the #else
version, so they both have the same size).

Also, some error messages could be surprising (talk about '==' when the program
uses '!'), but that's not the only place in the compiler where it happens.

> I'm going to go ahead and fix the ICE to get the regression out of the way.

Thanks!

Reply via email to