<h3>Index</h3>
<ol>
- <h4>General Questions About Splint</h4>
+ <a href="#genquest"><h4>General Questions About Splint</h4></a>
<li>
<a href="#quest1">
What is the difference between Splint and LCLint?</a><br />
</a></li>
<li><a href="#quest4">Can we use your software in our company? (We are not a GNU
organization.)<br />
+ </a></li>
+ <li><a href="#quest9">Which compilers does Splint support?<br />
</a></li>
<li><a href="#quest5">Does Splint handle C++?<br />
</a></li>
- <h4> Installation</h4>
+ <a href="#install"><h4> Installation</h4></a>
<li><a href="#quest6">I downloaded the Splint .tgz file but can't figure out how to
extract it. There is no 'z' option on the tar on my system.<br />
</a></li>
<li><a href="#quest8">I have installed Splint for Windows 2000. Where should I put
the ".splintrc" file?<br />
</a></li>
- <h4>Usage</h4>
- <li><a href="#quest9">Which compilers does Splint support?<br />
+ <li><a href="#quest17">When I build Splint I get the following errors.... Should I be worried?<br />
</a></li>
- <li><a href="#quest10">How does Splint handle const?<br />
+ <li><a href="#quest18">I just installed Splint on a new machine. I get a bunch of
+ errors during building when the test suite is run. When I look through the results,
+ it seems like Splint is not reporting any errors in the code it analyzes. What is
+ going on?<br />
</a></li>
- <li><a href="#quest11">Why do I get a warning when multiplying different integer
- types? The C standard says this is ok. Why is this wrong?<br />
+ <a href="#usage"><h4>Usage</h4></a>
+ <li><a href="#quest15">I heard that we will get lot of parse errors when we run
+ this tool first time. Hence we need to modify source code. Is it correct ?<br />
</a></li>
- <li><a href="#quest12">The C standard says that what I'm doing is okay. Why does
- Splint give me a warning?<br />
+ <li><a href="#quest16">I heard that Splint can generate some spurious errors ( not
+ genuine errors). Is it correct ?<br />
</a></li>
- <li><a href="#quest13">Splint complains if I ignore the return value of scanf but
- not printf?<br />
+ <li><a href="#quest10">How does Splint handle const?<br />
</a></li>
- <li><a href="#quest14">I develop code on an embedded system with a compiler that
+ <li><a href="#quest14">I develop code on an embedded system with a compiler that
uses nonstandard key words and data types. I would like to run Splint on my code
but these nonstandard keywords cause parse errors. What should I do?<br />
</a></li>
<li><a href="#quest14b">How can I get Splint to recognize directory trees and local
source include directories?<br />
</a></li>
- <li><a href="#quest15">I heard that we will get lot of parse errors when we run
- this tool first time. Hence we need to modify source code. Is it correct ?<br />
+
+ <li><a href="#quest20">I use realloc in my code. How can I get Splint in check this
+ code more effectively?<br />
</a></li>
- <li><a href="#quest16">I heard that Splint can generate some spurious errors ( not
- genuine errors). Is it correct ?<br />
+
+ <a href="#warnerror"><h4>Warnings and Errors</h4></a>
+ <li><a href="#quest11">Why do I get a warning when multiplying different integer
+ types? The C standard says this is ok. Why is this wrong?<br />
</a></li>
- <li><a href="#quest17">When I build Splint I get the following errors.... Should I
- be worried?<br />
+ <li><a href="#quest12">The C standard says that what I'm doing is okay. Why does
+ Splint give me a warning?<br />
</a></li>
- <li><a href="#quest18">I just installed Splint on a new machine. I get a bunch of
- errors during building when the test suite is run. When I look through the results,
- it seems like Splint is not reporting any errors in the code it analyzes. What is
- going on?<br />
+ <li><a href="#quest13">Splint complains if I ignore the return value of scanf but
+ not printf?<br />
</a></li>
<li><a href="#quest18b">I get parse errors when I try to run Splint on code like
#define MACROdebug(...) blahblah . Can I use variadic macros in Splint?<br />
</a></li>
- <li><a href="#quest20">I use realloc in my code. How can I get Splint in check this
- code more effectively?<br />
- </a></li>
- <h4>Bugs</h4>
+ <a href="#bugs"><h4>Bugs</h4></a>
<li><a href="#quest21">I think I've found a bug in Splint. What should I do?<br />
</a></li>
<li><a href="#quest22">Splint tells me that there is a bug and I should report it.
What information should I send?<br />
</a></li>
+ <a href="#adinfo"> <h4>Additional Information</h4></a>
<li><a href="#quest23">My question isn't answered here. How can I get more
information about Splint?<br />
</a></li>
</ol>
<h3>Questions and Answers</h3>
<ol>
- <h4>General Questions About Splint</h4>
+ <a id="genquest" name="genquest"><h4>General Questions About Splint</h4>
<li>
<p><a id="quest1" name="quest1">What is the difference between Splint and
LCLint?</a></p>
<br />
</blockquote>
</li>
+ <a id="install" name="install"><h4>Installation</h4>
<li>
<p><a id="quest6" name="quest6">I downloaded the Splint .tgz file but can't
figure out how to extract it. There is no 'z' option on the tar on my
<p>your home directory. See the Splint manual for more information.</p>
</blockquote>
</li>
- <h4>Usage</h4>
-
+
<li>
- <p><a id="quest10" name="quest10">How does Splint handle const?</a></p>
+ <p><a id="quest17" name="quest17">When I build Splint I get the following
+ error:</a></p>
<blockquote>
- Splint doesn't interpret const (at all). See the manual section on modifies
- checking (<a
- href="http://www.splint.org/manual/html/sec7.html">http://www.splint.org/manual/html/sec7.html</a>).<br />
+ Checking for...<br />
+ <br />
+
+ <p>Checking manual...</p>
+ <p>cmx > / Checking tests2.2...</p>
+ <p>Checking tests2.4...</p>
+ <p>Checking tests2.5...</p>
+ <p>Checking db1...</p>
+ <p>0a1,2</p>
+ <p>> /cmx/tools/make -e clean</p>
+ <p>> /cmx/tools/make -e check</p>
+ <p>*** FAIL ***</p>
+ <p>Checking db2...</p>
+ <p>0a1,/tools/make -e clean</p>
+ <p>> /cmx/tools/make -e check</p>
+ <p>*** FAIL ***</p>
+ <p>Checking db3...</p>
+ </blockquote>
+ <p>Should I be worried?</p>
+ <blockquote>
+ Those diffs look harmless. It is likely that your make is set up slightly
+ differently than ours.<br />
<br />
</blockquote>
</li>
<li>
- <p><a id="quest11" name="quest11">Why do I get a Warning when multiplying
- different integer types? The C standard says this is ok. Why is this
- wrong?</a></p>
+ <p><a id="quest18" name="quest18">I just installed Splint on a new machine. I get
+ a bunch of errors during building when the test suite is run. When I look through
+ the results, it seems like Splint is not reporting any errors in the code it
+ analyzes. What is going on?</a></p>
<blockquote>
- There are lots of things that the C spec allows and defines clearly, that
- Splint will provide warnings for. It's not a question of it being "wrong", it's
- a matter of it being likely to reveal a programming mistake.<br />
+ One possibility is that the installation directory where the test suite is
+ running is on the system path (hence, splint won't report errors if
+ -sysdirerrors is set, as it is by default). Try adding +sysdirerrors to the
+ command line for the test suite to see if that is the problem, or installing
+ Splint in a different directory not in the system path.<br />
<br />
</blockquote>
</li>
- <li>
- <p><a id="quest12" name="quest12">The C standard says that what I'm doing is
- okay. Why does Splint give me a warning?</a></p>
+ <a id="usage" name="usage"><h4>Usage</h4>
+ <li>
+ <p><a id="quest15" name="quest15">I heard that we will get lot of parse errors
+ when we run this tool first time. Hence we need to modify source code. Is it
+ correct ?</a></p>
<blockquote>
- See the previous question.<br />
+ Usually not, but Splint doesn't support all C99 extensions.<br />
<br />
</blockquote>
</li>
<li>
- <p><a id="quest13" name="quest13">Splint complains if I ignore the return value
- of scanf but not printf?</a></p>
+ <p><a id="quest16" name="quest16">I heard that Splint can generate some spurious
+ errors ( not genuine errors). Is it correct ?</a></p>
<blockquote>
- This is just a strategic decision --- we view ignoring the result of a scanf to
- be more likely to reveal a problem with the code than ignoring the result of a
- printf, even though strict programmers will want to check printf also.<br />
+ Yes, please see <a href="http://www.splint.org/">www.splint.org</a> for
+ details.<br />
<br />
-
- <blockquote>
- If you want stricter checking, use the flags +ansistrictlib, +posixstrictlib,
- +unixstrictlib to select the strict versions of these libraries.<br />
- <br />
- </blockquote>
</blockquote>
</li>
<li>
+ <p><a id="quest10" name="quest10">How does Splint handle const?</a></p>
+ <blockquote>
+ Splint doesn't interpret const (at all). See the manual section on modifies
+ checking (<a
+ href="http://www.splint.org/manual/html/sec7.html">http://www.splint.org/manual/html/sec7.html</a>).<br />
+ <br />
+ </blockquote>
+ </li>
+ <li>
<p><a id="quest14" name="quest14">I develop code on an embedded system with a
compiler that uses nonstandard key words and data types. I would like to run
Splint on my code but these nonstandard keywords cause parse errors. What should
<br />
</blockquote>
</li>
- <li>
- <p><a id="quest15" name="quest15">I heard that we will get lot of parse errors
- when we run this tool first time. Hence we need to modify source code. Is it
- correct ?</a></p>
+ <li>
+ <p><a id="quest20" name="quest20">I use realloc in my code. How can I get Splint
+ in check this code more effectively?</a></p>
<blockquote>
- Usually not, but Splint doesn't support all C99 extensions.<br />
+ realloc has complicated semantics that make it difficult to use correctly. Make
+ sure that you understand realloc and that you really need to use it.<br />
<br />
+
+ <p>If you decide to use realloc, we recommend that you wrapper it. The document
+ Using Wrapper Functions explains how to do this. That document is included in
+ the Splint documentation and is also available at:</p>
+ <p><a
+ href="http://www.splint.org/documentation/realloc.htm">http://www.splint.org/documentation/realloc.htm</a></p>
</blockquote>
</li>
+ <a id="warnerror" name="warnerror"><h4>Warnings and Errors</h4>
<li>
- <p><a id="quest16" name="quest16">I heard that Splint can generate some spurious
- errors ( not genuine errors). Is it correct ?</a></p>
+ <p><a id="quest11" name="quest11">Why do I get a Warning when multiplying
+ different integer types? The C standard says this is ok. Why is this
+ wrong?</a></p>
<blockquote>
- Yes, please see <a href="http://www.splint.org/">www.splint.org</a> for
- details.<br />
+ There are lots of things that the C spec allows and defines clearly, that
+ Splint will provide warnings for. It's not a question of it being "wrong", it's
+ a matter of it being likely to reveal a programming mistake.<br />
<br />
</blockquote>
</li>
<li>
- <p><a id="quest17" name="quest17">When I build Splint I get the following
- error:</a></p>
- <blockquote>
- Checking for...<br />
- <br />
-
- <p>Checking manual...</p>
- <p>cmx > / Checking tests2.2...</p>
- <p>Checking tests2.4...</p>
- <p>Checking tests2.5...</p>
- <p>Checking db1...</p>
- <p>0a1,2</p>
- <p>> /cmx/tools/make -e clean</p>
- <p>> /cmx/tools/make -e check</p>
- <p>*** FAIL ***</p>
- <p>Checking db2...</p>
- <p>0a1,/tools/make -e clean</p>
- <p>> /cmx/tools/make -e check</p>
- <p>*** FAIL ***</p>
- <p>Checking db3...</p>
- </blockquote>
- <p>Should I be worried?</p>
+ <p><a id="quest12" name="quest12">The C standard says that what I'm doing is
+ okay. Why does Splint give me a warning?</a></p>
<blockquote>
- Those diffs look harmless. It is likely that your make is set up slightly
- differently than ours.<br />
+ See the previous question.<br />
<br />
</blockquote>
</li>
<li>
- <p><a id="quest18" name="quest18">I just installed Splint on a new machine. I get
- a bunch of errors during building when the test suite is run. When I look through
- the results, it seems like Splint is not reporting any errors in the code it
- analyzes. What is going on?</a></p>
+ <p><a id="quest13" name="quest13">Splint complains if I ignore the return value
+ of scanf but not printf?</a></p>
<blockquote>
- One possibility is that the installation directory where the test suite is
- running is on the system path (hence, splint won't report errors if
- -sysdirerrors is set, as it is by default). Try adding +sysdirerrors to the
- command line for the test suite to see if that is the problem, or installing
- Splint in a different directory not in the system path.<br />
+ This is just a strategic decision --- we view ignoring the result of a scanf to
+ be more likely to reveal a problem with the code than ignoring the result of a
+ printf, even though strict programmers will want to check printf also.<br />
<br />
+
+ <blockquote>
+ If you want stricter checking, use the flags +ansistrictlib, +posixstrictlib,
+ +unixstrictlib to select the strict versions of these libraries.<br />
+ <br />
+ </blockquote>
</blockquote>
</li>
- <li>
- <p><a id="quest18b" name="quest18b">I get parse errors when I try to run Splint
+ <li><p><a id="quest18b" name="quest18b">I get parse errors when I try to run Splint
on code like #define MACROdebug(...) blahblah . Can I use variadic macros in
Splint?</a></p>
<blockquote>
<br />
</blockquote>
</li>
- <li>
- <p><a id="quest20" name="quest20">I use realloc in my code. How can I get Splint
- in check this code more effectively?</a></p>
- <blockquote>
- realloc has complicated semantics that make it difficult to use correctly. Make
- sure that you understand realloc and that you really need to use it.<br />
- <br />
-
- <p>If you decide to use realloc, we recommend that you wrapper it. The document
- Using Wrapper Functions explains how to do this. That document is included in
- the Splint documentation and is also available at:</p>
- <p><a
- href="http://www.splint.org/documentation/realloc.htm">http://www.splint.org/documentation/realloc.htm</a></p>
- </blockquote>
- </li>
+
+ <a id="bugs" name="bugs"><h4>Bugs</h4>
<li>
<p><a id="quest21" name="quest21">I think I've found a bug in Splint. What should
I do?</a></p>
may be able to at least to offer you advice on working around the problem.</p>
</blockquote>
</li>
+ <a id="adinfo" name="adinfo"><h4>Additional Information</h4>
<li>
<p><a id="quest23" name="quest23">My question isn't answered here. How can I get
more information about Splint?</a></p>