On 29 August 2017 at 18:10, Matt Turner <matts...@gmail.com> wrote: > On Tue, Aug 29, 2017 at 3:35 AM, Emil Velikov <emil.l.veli...@gmail.com> > wrote: >> On 29 August 2017 at 11:11, Eric Engestrom <eric.engest...@imgtec.com> wrote: >>> On Monday, 2017-08-28 14:57:13 -0700, Matt Turner wrote: >>>> Avoids Clang's warning about the current code: >>>> >>>> warning: suggest braces around initialization of subobject >>> >>> I'm not sure about this patch [1], but everything else in this series is: >> IIRC "{}" is the least likely way to avoid the warnings, across >> GCC/Clang versions. >> It's not part of the C spec, but since it works - not sure how much to >> bother. > > I'm surprised to hear you say that. I've tested with gcc-4.9.4, 6.4.0, > 7.1.0; and clang-4.0, and none of them warn about {} > Eric corrected me on IRC, but I forgot to mention here - "s/least/most/"
> I think when we went through this before (in NIR) we couldn't use {} > because it needs to compile with MSVC, and MSVC doesn't allow that in > C. > Precisely. The "most" portable solution that I know of is memset(). >> Would be great to have the issue reported (and fixed) in Clang though. >> AFAICT both {0} and {0,} are valid, if memory serves me right. > > I don't really understand the nuances of {0}, {0,}, {{0}}, etc, and I > get the sense that that's the case for nearly everyone else as well. > AFAICT {0} and {0,} should just work everywhere, modulo bugs. [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53119 [2] https://bugs.llvm.org/show_bug.cgi?id=21689 > The most prominent bug I see in all of this is that {} isn't part of > standard C (it is part of standard C++!) Agreed. Not sure how easy it will be to convince the committee. -Emil _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev