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!