Hi, with my version of the compiler:
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 and original code ({0}) I get: src/gallium/drivers/freedreno/ir3/ir3_shader.c:312:17: warning: missing braces around initializer [-Wmissing-braces] src/gallium/drivers/freedreno/ir3/ir3_shader.c:312:17: warning: (near initialization for ‘key.<anonymous>’) [-Wmissing-braces] src/gallium/drivers/freedreno/ir3/ir3_shader.c:312:17: warning: missing initializer [-Wmissing-field-initializers] src/gallium/drivers/freedreno/ir3/ir3_shader.c:312:17: warning: (near initialization for ‘key.<anonymous>.<anonymous>.has_per_samp’) [-Wmissing-field-initializers] src/gallium/drivers/freedreno/ir3/ir3_shader.c:312:17: warning: missing initializer [-Wmissing-field-initializers] src/gallium/drivers/freedreno/ir3/ir3_shader.c:312:17: warning: (near initialization for ‘key.vsaturate_s’) [-Wmissing-field-initializers] with the change suggested by Eric ({{{0}}}) I get: src/gallium/drivers/freedreno/ir3/ir3_shader.c:312:17: warning: missing initializer [-Wmissing-field-initializers] src/gallium/drivers/freedreno/ir3/ir3_shader.c:312:17: warning: (near initialization for ‘key.<anonymous>.<anonymous>.has_per_samp’) [-Wmissing-field-initializers] src/gallium/drivers/freedreno/ir3/ir3_shader.c:312:17: warning: missing initializer [-Wmissing-field-initializers] src/gallium/drivers/freedreno/ir3/ir3_shader.c:312:17: warning: (near initialization for ‘key.vsaturate_s’) [-Wmissing-field-initializers] With my latest suggestion no warnings on that row, neither from clang: Ubuntu clang version 3.4-1ubuntu3~precise2 (tags/RELEASE_34/final) (based on LLVM 3.4) Up to you how to proceed.. Cheers Francesco 2016-07-28 12:54 GMT+02:00 Rob Clark <robdcl...@gmail.com>: > On Thu, Jul 28, 2016 at 6:31 AM, Emil Velikov <emil.l.veli...@gmail.com> > wrote: > > On 28 July 2016 at 09:21, Eric Engestrom <eric.engest...@imgtec.com> > wrote: > >> On Wed, Jul 27, 2016 at 07:37:56PM +0200, Francesco Ansanelli wrote: > >>> Hello, > >>> > >>> unluckily this didn't fix the warning... > >>> I've done some more compile testing and found this solution: > >>> > >>> - static struct ir3_shader_key key = {{0}}; > >>> +static struct ir3_shader_key key = {{{0, 0, 0, 0, 0, 0, 0, 0}}, 0, 0, > 0, > >>> 0, 0, 0, 0, 0}; > >> > >> So there are 3 levels of structs? The proper fix IMHO should then be > >> {{{0}}}, as the rest of the 0's are implied. > >> Can you test if that fixes it? > >> > > The original code is perfect (follows the spec) as-is. There's been a > > number of gcc bugs on the topic, hence why sometimes people prefer > > memset. > > Which one people will opt for is quite subjective but I'd rather leave > > the call to Rob. > > I'm leaning towards just going back to {0}, since at least gcc (at > least modern versions) didn't seem to complain about that, but do > complain about {{0}} > > BR, > -R > > > -Emil > > _______________________________________________ > > mesa-dev mailing list > > mesa-dev@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev