[Mesa-dev] [PATCH] meta: init var to silence uninitialized variable warning

Brian Paul brianp at vmware.com
Fri Jan 2 11:26:02 PST 2015


On 01/02/2015 11:50 AM, Matt Turner wrote:
> On Fri, Jan 2, 2015 at 9:38 AM, Brian Paul <brianp at vmware.com> wrote:
>> On 12/20/2014 10:51 AM, Matt Turner wrote:
>>>
>>> On Sat, Dec 20, 2014 at 4:34 AM, Brian Paul <brianp at vmware.com> wrote:
>>>>
>>>> ---
>>>>    src/mesa/drivers/common/meta.c | 2 +-
>>>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/src/mesa/drivers/common/meta.c
>>>> b/src/mesa/drivers/common/meta.c
>>>> index 87532c1..f479b1c 100644
>>>> --- a/src/mesa/drivers/common/meta.c
>>>> +++ b/src/mesa/drivers/common/meta.c
>>>> @@ -3177,7 +3177,7 @@ _mesa_meta_GetTexImage(struct gl_context *ctx,
>>>>    {
>>>>       if (_mesa_is_format_compressed(texImage->TexFormat)) {
>>>>          GLuint slice;
>>>> -      bool result;
>>>> +      bool result = true;
>>>
>>>
>>> This looks like a case where I'd put an
>>>
>>>       assume(texImage->Depth > 0)
>>>
>>> immediately above the for loop.
>>>
>>>>          for (slice = 0; slice < texImage->Depth; slice++) {
>>>>             void *dst;
>>>
>>>
>>> That way, the compiler gets the information it needs, and we don't add
>>> any extra .data.
>>
>>
>> I'm not sure that'd help.  In a release build, assert will be a no-op and I
>> doubt all compilers use assertions to figure out this sort of thing anyway.
>
> I'm suggesting using assume() rather than assert(). assume() will work
> in release builds too so I think we should be fine.

Ugh, I misread what you wrote.  Sorry.

Unfortunately, I still get the warning when I use assume().  The 
compiler in question is MinGW gcc 4.6.3 which apparently doesn't have 
__builtin_assume().

I think I'd like to go with my original patch as-is for now.  The MinGW 
build has very few warnings otherwise.

-Brian



More information about the mesa-dev mailing list