sparc: fix for missing include file

David Miller davem@davemloft.net
Sat Dec 13 19:32:00 GMT 2014


From: Paul Eggert <eggert@cs.ucla.edu>
Date: Sat, 13 Dec 2014 11:08:47 -0800

> David Miller wrote:
>> strncat.c: In function ‘strncat’:
>> strncat.c:76:6: error: ‘c’ may be used uninitialized in this function
>> [-Werror=uninitialized]
>>
>> This is the generic C strncat.c in string/strncat.c, and actually the
>> compiler is right here in that when 'n' is zero 'c' will in fact be
>> tested without being initialized to anything.
> 
> That's amusing, since the code works regardless of whether 'c' is
> initialized properly, assuming that using an uninitialized value
> doesn't trap or have similarly bad behavior.  So this looks like
> another candidate for adding pragmas to suppress the diagnostic.  In
> Gnulib we'd say 'char c IF_LINT (= 0);'.

How does the code "work"?  The test of 'c' against '\0' at the end of
the function happens even if 'n' is passed as zero in which case 'c'
will not be initialized at all.


More information about the Libc-alpha mailing list