On Sun, 2008-03-30 12:24:10 +0530, Vishal Bayskar wrote:
> Dear All,
> 
> In my program a variable is initializing by read command
> 
> As
> 
> len = read (sockfd, &hdr, sizeof (HEADER));
> 
> Here hdr is a structure 
> sockfd is a socket descriptor
> 
> And after this line of code I am using a member of hdr 
> 
> As
> hdr.member == 2
> 
> And Splint is showing warning
> 
> Field hdr.member used before definition
>   An rvalue is used that may not be initialized to a value on some execution
>   path. (Use -usedef to inhibit warning)
> 
> 
> I think as hdr initializing at runtime that's why splint is not recognizing 
> that hdr is initialized and giving the warning

No. Splint is a static code checker and does not run the code.

For some reasons, splint thinks hdr is possibly not initialized, maybe
due to the wrong library has been selected (e.g. standard instead of
POSIX) and thus splint does not know the second argument to read() is
an /[EMAIL PROTECTED]/ parameter.

> [..]
> Same in case of gettimeofday()

gettimeofday() is not even POSIX. You'll have to specify the UNIX
library to get this function declared for splint.

> [..]
> How does it behave for functions that really depend upon runtime?

Again, splint does not run the code. For the functions declared in its
libraries, it knows which calling parameter is /[EMAIL PROTECTED]@*/ and which 
is
/[EMAIL PROTECTED]@*/ (besides other annotations). Other functions have to be
annotated in the sources to be checked.

HTH,

Ludolf

-- 

---------------------------------------------------------------
Ludolf Holzheid             Tel:    +49 621 339960
Bihl+Wiedemann GmbH         Fax:    +49 621 3392239
Floßwörthstraße 41          e-mail: [EMAIL PROTECTED]
D-68199 Mannheim, Germany
---------------------------------------------------------------

_______________________________________________
splint-discuss mailing list
[email protected]
http://www.cs.virginia.edu/mailman/listinfo/splint-discuss

Reply via email to