hyc@symas.com wrote:
> masarati@aero.polimi.it wrote:
>>> gcc complains
>>> dynlist.c:1537: warning: 'dlml' may be used uninitialized in this
>>> function
>>> Looks like its declaration at least should be moved outside the loop below
>>> and it should be initialized to something. This is the complete use of
>>> dlml:
>>>
>>> for ( ... ) {
>>> dynlist_map_t *dlml;
>>> if ( dlm == NULL ) {
>>> dlml = NULL;
>>> }
>>> if ( dlml != NULL )
>>> dlml->dlm_next = dlmp;
>>> dlml = dlmp;
>>> }
>>
>> Not even sure about what that piece of code is supposed to do...
>
> Indeed. It has no visible effect; an optimizer would just elide the entire block.
Never mind, the above code snippet was quite abbreviated.
In the actual code, dlm is initialized to NULL. Therefore, dlml will get
initialized to NULL. The effect is to make sure that new dlmp's are appended
to the existing singly-linked list. It's pretty obvious when looking at the
actual file. And also obvious that the uninit warning is false.
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/