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!