IUP is not a compiler, so this is not the time or place to discuss what is
wrong with compilers. Uninitialized variables is a compiler/programmer issue,
not a compiler issue.

On 12/11/2017 at 5:03 AM, Jörg F. Wittenberger
<[email protected]> wrote:
>Is it actually worth the time to discuss whether or not the compiler is 
>smart enough to figure out whether or not a particular variable is used 
>uninitialized or not?
>
>It is always better to silence those warnings by initializing those 
>variables.
>
>In some environments the uninitialized variables are outright forbidden. 
>Which is a good idea. Sure those people tend to treat all warnings as 
>errors too. Which too is a good idea. But hardly possible with iup.
>
>On Dec 10 2017, Antonio Scuri wrote:
>
>>  Notice in iMatrixComputeNaturalSizeMethod that full_width, full_height
>>values are used only when limit_expand is enabled too.
>>
>>Best,
>>Scuri
>>
>>
>>2017-12-10 16:34 GMT-02:00 Ranier VF <[email protected]>:
>>
>>> Hi,
>>> Same case here.
>>> matrix/iupmatrix.c: In function 'iMatrixComputeNaturalSizeMethod':
>>> matrix/iupmatrix.c:1994:19: warning: 'full_height' may be used
>>> uninitialized in this function [-Wmaybe-uninitialized]
>>>        full_height += sb_h;
>>>                    ^~
>>> matrix/iupmatrix.c:1991:13: warning: 'full_width' may be used
>>> uninitialized in this function [-Wmaybe-uninitialized]
>>>      else if (*w == full_width) /* all columns can be visible, */
>>>
>>> The vars are initialized in function int 
>>> iMatrixGetNaturalWidth(Ihandle* ih, int *full_width) But var * 
>>> full_width set value is protected by if (ih->data->limit_expand) So if 
>>> (ih->data->limit_expand) fail, full_witdth will be trash.
>>>
>>> Best.
>>> Ranier
>>> ________________________________________
>>> De: Antonio Scuri <[email protected]>
>>> Enviado: domingo, 10 de dezembro de 2017 18:22
>>> Para: IUP discussion list.
>>> Assunto: Re: [Iup-users]        Silence gcc warning: 'vert_alignment' may
>>> be used uninitialized in this function
>>>
>>>   No, I think gcc was smarter than that. There are several situations in
>>> the code that the declaration is:
>>>
>>> int var;
>>> init_var(&var);
>>>
>>>   Add gcc does not complains. I think in that case it actually parse the
>>> iFlatTabsGetAlignment function and reported the error.
>>>
>>> Best,
>>> Scuri
>>>
>>>
>>> 2017-12-10 16:16 GMT-02:00 Ranier VF <[email protected]<mailto:
>>> [email protected]>>:
>>> Hi,
>>> It's always a good idea, initialize vars like horiz_alignment and
>>> horiz_alignment, with default value.
>>> Because, function like iFlatTabsGetAlignment can fail in set value and
>>> these vars can be trash when
>>> function returns.
>>>
>>> That's the reason what compiler emits this warning.
>>>
>>> Best.
>>>
>>> Ranier
>>> ________________________________________
>>> De: Antonio Scuri <[email protected]<mailto:[email protected]
>>> >>
>>> Enviado: domingo, 10 de dezembro de 2017 17:47
>>> Para: IUP discussion list.
>>> Assunto: Re: [Iup-users]        Silence gcc warning: 'vert_alignment' may
>>> be used uninitialized in this function
>>>
>>>   Those variables are initialized 20 lines bellow in:
>>>
>>>   iFlatTabsGetAlignment(alignment, &horiz_alignment, &vert_alignment);
>>>
>>>   And they are not used before that. But iFlatTabsGetAlignment should 
>>> initialize even in "alignment" is NULL. That was missing. Actually I did 
>>> a full check on ALIGMENT attributes on all controls that use 
>>> horizontalxvertical alignment options and found some minor errors too. 
>>> Fixed and committed to SVN.
>>>
>>> Best,
>>> Scuri
>>>
>>>
>>> 2017-12-10 11:23 GMT-02:00 Ranier VF <[email protected]<mailto:
>>> [email protected]><mailto:[email protected]<mailto:
>>> [email protected]>>>:
>>> Hi,
>>> initialize vars to silence gcc warning
>>>
>>> --- iup/iup/src/iup_flattabs.c 2017-09-04 18:44:26.000000000 -0300 +++ 
>>> iup_dev/iup/src/iup_flattabs.c 2017-12-10 11:19:01.570274940 -0200 @@ 
>>> -443,7 +443,7 @@
>>>    int title_height = iFlatTabsGetTitleHeight(ih, &title_width, 1);
>>>    int fixedwidth = iupAttribGetInt(ih, "FIXEDWIDTH");
>>>    Ihandle* child;
>>> -  int pos, horiz_alignment, vert_alignment, tab_x = 0;
>>> +  int pos, horiz_alignment = 0, vert_alignment = 0, tab_x = 0;
>>>    unsigned char line_r = 0, line_g = 0, line_b = 0;
>>>    int show_close = iupAttribGetBoolean(ih, "SHOWCLOSE");
>>>    int tab_highlighted = iupAttribGetInt(ih, "_IUPFTABS_HIGHLIGHTED");
>>>
>>> ------------------------------------------------------------
>>> ------------------
>>> Check out the vibrant tech community on one of the world's most
>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>> _______________________________________________
>>> Iup-users mailing list
>>> [email protected]<mailto:[email protected]
>>> ><mailto:[email protected]<mailto:Iup-users@lists.
>>> sourceforge.net>>
>>> https://lists.sourceforge.net/lists/listinfo/iup-users
>>>
>>>
>>> ------------------------------------------------------------
>>> ------------------
>>> Check out the vibrant tech community on one of the world's most
>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>> _______________________________________________
>>> Iup-users mailing list
>>> [email protected]<mailto:[email protected]>
>>> https://lists.sourceforge.net/lists/listinfo/iup-users
>>>
>>>
>>> ------------------------------------------------------------
>>> ------------------
>>> Check out the vibrant tech community on one of the world's most
>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>> _______________________________________________
>>> Iup-users mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/iup-users
>>>
>>
>
>------------------------------------------------------------------------------
>Check out the vibrant tech community on one of the world's most
>engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>_______________________________________________
>Iup-users mailing list
>[email protected]
>https://lists.sourceforge.net/lists/listinfo/iup-users


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Iup-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/iup-users

Reply via email to