[OE-core] [PATCH] cogl: fix compile error with -Werror=maybe-uninitialized

Changqing Li changqing.li at windriver.com
Wed Apr 3 02:29:08 UTC 2019


On 4/2/19 7:31 PM, Adrian Bunk wrote:
> On Tue, Apr 02, 2019 at 05:08:33PM +0800, changqing.li at windriver.com wrote:
>> From: Changqing Li <changqing.li at windriver.com>
>>
>> fix below compile error with -Werror=maybe-uninitialized
>>
>> | ../../cogl-1.22.2/cogl/driver/gl/gles/cogl-driver-gles.c:217:17: error: 'gltype' may be used uninitialized in this function [-Werror=maybe-uninitialized]
>> |      *out_gltype = gltype;
>> |      ~~~~~~~~~~~~^~~~~~~~
>> | ../../cogl-1.22.2/cogl/driver/gl/gles/cogl-driver-gles.c:213:22: error: 'glintformat' may be used uninitialized in this function [-Werror=maybe-uninitialized]
>> |      *out_glintformat = glintformat;
>> |      ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
>> ...
> Looking at the code, is this a failure that only happens with DEBUG_FLAGS?
Yes, only happen with DEBUG_FLAGS
>   
>> +--- a/cogl/driver/gl/gles/cogl-driver-gles.c
>> ++++ b/cogl/driver/gl/gles/cogl-driver-gles.c
>> +@@ -74,9 +74,9 @@ _cogl_driver_pixel_format_to_gl (CoglContext *context,
>> +                                  GLenum *out_gltype)
>> + {
>> +   CoglPixelFormat required_format;
>> +-  GLenum glintformat;
>> ++  GLenum glintformat = 0;
>> +   GLenum glformat = 0;
>> +-  GLenum gltype;
>> ++  GLenum gltype = 0;
>> ...
> Assigning random values to variables is a bug,
> they do not even seem to be valid values for these variables.

According to code logic,  glformat and glintformat will assigned 
simultaneously and usually with same value,

and 0 mean invalid pixel format.

[snip]

     case COGL_PIXEL_FORMAT_DEPTH_24_STENCIL_8:
       glintformat = GL_DEPTH_STENCIL;
       glformat = GL_DEPTH_STENCIL;
       gltype = GL_UNSIGNED_INT_24_8;
       break;

and for gtype, there also should be no problem according to the code logic.

and the fix is just for eliminate the error when DEBUG_FLAGS is enabled.

>
> cu
> Adrian
>
-- 
BRs

Sandy(Li Changqing)



More information about the Openembedded-core mailing list