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