Splint (programming tool) explained

Splint
Developer:The Splint Developers
Latest Release Version:3.1.2
Operating System:Cross-platform
Genre:Static code analysis
License:GPL

Splint, short for Secure Programming Lint, is a programming tool for statically checking C programs for security vulnerabilities and coding mistakes. Formerly called LCLint, it is a modern version of the Unix lint tool.

Splint has the ability to interpret special annotations to the source code, which gives it stronger checking than is possible just by looking at the source alone. Splint is used by gpsd as part of an effort to design for zero defects.[1]

Splint is free software released under the terms of the GNU General Public License.

Main development activity on Splint stopped in 2010. According to the CVS at SourceForge, as of September 2012 the most recent change in the repository was in November 2010.[2] A Git repository at GitHub has more recent changes, starting in July 2019.[3]

Example

  1. include

int main

Splint's output:

<nowiki>
Variable c used before definition
Suspected infinite loop. No value used in loop test (c) is modified by test or loop body.
Assignment of int to char: c = getchar
Test expression for if is assignment expression: c = 'x'
Test expression for if not boolean, type char: c = 'x'
Fall through case (no preceding break)
</nowiki>

Fixed source:

  1. include

int main

See also

Notes and References

  1. Book: The Architecture of Open Source Applications, Volume II. 2012. Lulu. 9781105571817. Raymond. Eric. Brown, Amy . Wison, Greg .
  2. Web site: 2012-09-11. Splint project CVS statistics.
  3. Web site: 2020-09-16. Splint project git history. .