<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.sarg.dev/index.php?action=history&amp;feed=atom&amp;title=Splint_%28programming_tool%29</id>
	<title>Splint (programming tool) - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sarg.dev/index.php?action=history&amp;feed=atom&amp;title=Splint_%28programming_tool%29"/>
	<link rel="alternate" type="text/html" href="https://wiki.sarg.dev/index.php?title=Splint_(programming_tool)&amp;action=history"/>
	<updated>2026-07-25T23:47:50Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.sarg.dev/index.php?title=Splint_(programming_tool)&amp;diff=267908&amp;oldid=prev</id>
		<title>imported&gt;Bender the Bot: /* top */ HTTP to HTTPS for SourceForge</title>
		<link rel="alternate" type="text/html" href="https://wiki.sarg.dev/index.php?title=Splint_(programming_tool)&amp;diff=267908&amp;oldid=prev"/>
		<updated>2025-08-11T03:31:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;top: &lt;/span&gt; HTTP to HTTPS for &lt;a href=&quot;/index.php/SourceForge&quot; title=&quot;SourceForge&quot;&gt;SourceForge&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{refimprove|date=March 2013}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox software&lt;br /&gt;
| name                   = Splint&lt;br /&gt;
| screenshot             =&lt;br /&gt;
| caption                =&lt;br /&gt;
| developer              = [https://sourceforge.net/project/memberlist.php?group_id=34302 The Splint Developers]&lt;br /&gt;
| latest release version = 3.1.2&lt;br /&gt;
| latest release date    = {{Start date and age|2007|07|12}}&lt;br /&gt;
| operating system       = [[Cross-platform]]&lt;br /&gt;
| genre                  = [[Static code analysis]]&lt;br /&gt;
| license                = [[GPL]]&lt;br /&gt;
| website                = {{URL|www.splint.org}}&lt;br /&gt;
| repo                   = {{URL|github.com/splintchecker/splint}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Splint&amp;#039;&amp;#039;&amp;#039;, short for &amp;#039;&amp;#039;&amp;#039;Secure Programming Lint&amp;#039;&amp;#039;&amp;#039;, is a [[programming tool]] for [[Static code analysis|statically checking]] [[C (programming language)|C programs]] for security [[vulnerability (computer science)|vulnerabilities]] and coding mistakes. Formerly called LCLint, it is a modern version of the [[Unix]] [[lint programming tool|lint]] tool.&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;ref&amp;gt;{{cite book|title=The Architecture of Open Source Applications, Volume II|year=2012|publisher=Lulu|isbn=9781105571817|url=http://www.aosabook.org/en/gpsd.html|author=Raymond|edition=Eric|editor1=Brown, Amy |editor2=Wison, Greg }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Splint is [[free software]] released under the terms of the [[GNU General Public License]].&lt;br /&gt;
&lt;br /&gt;
Main development activity on Splint stopped in 2010. According to the [[Concurrent Versions System|CVS]] at [[SourceForge]], as of September 2012 the most recent change in the repository was in November 2010.&amp;lt;ref&amp;gt;{{cite web|accessdate=2012-09-11|url=https://sourceforge.net/project/stats/detail.php?group_id=34302&amp;amp;ugn=splint&amp;amp;type=cvs&amp;amp;mode=12months|title=Splint project CVS statistics}}&amp;lt;/ref&amp;gt; A [[Git]] repository at [[GitHub]] has more recent changes, starting in July 2019.&amp;lt;ref&amp;gt;{{cite web|accessdate=2020-09-16|url=https://github.com/splintchecker/splint|title=Splint project git history|website=[[GitHub]] }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    char c;&lt;br /&gt;
    while (c != &amp;#039;x&amp;#039;);&lt;br /&gt;
    {&lt;br /&gt;
        c = getchar();&lt;br /&gt;
        if (c = &amp;#039;x&amp;#039;)&lt;br /&gt;
            return 0;&lt;br /&gt;
        switch (c) {&lt;br /&gt;
        case &amp;#039;\n&amp;#039;:&lt;br /&gt;
        case &amp;#039;\r&amp;#039;:&lt;br /&gt;
            printf(&amp;quot;Newline\n&amp;quot;);&lt;br /&gt;
        default:&lt;br /&gt;
            printf(&amp;quot;%c&amp;quot;,c);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Splint&amp;#039;s output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Variable c used before definition&lt;br /&gt;
Suspected infinite loop. No value used in loop test (c) is modified by test or loop body.&lt;br /&gt;
Assignment of int to char: c = getchar()&lt;br /&gt;
Test expression for if is assignment expression: c = &amp;#039;x&amp;#039;&lt;br /&gt;
Test expression for if not boolean, type char: c = &amp;#039;x&amp;#039;&lt;br /&gt;
Fall through case (no preceding break)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fixed source:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    int c = 0;  // Added an initial assignment definition.&lt;br /&gt;
&lt;br /&gt;
    while (c != &amp;#039;x&amp;#039;) {&lt;br /&gt;
        c = getchar();  // Corrected type of c to int&lt;br /&gt;
        if (c == &amp;#039;x&amp;#039;) // Fixed the assignment error to make it a comparison operator.&lt;br /&gt;
            return 0;&lt;br /&gt;
        switch (c) {&lt;br /&gt;
        case &amp;#039;\n&amp;#039;:&lt;br /&gt;
        case &amp;#039;\r&amp;#039;:&lt;br /&gt;
            printf(&amp;quot;Newline\n&amp;quot;);&lt;br /&gt;
            break;  // Added break statement to prevent fall-through.&lt;br /&gt;
        default:&lt;br /&gt;
            printf(&amp;quot;%c&amp;quot;,c);&lt;br /&gt;
            break;  //Added break statement to default catch, out of good practice.&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
{{Portal|Free and open-source software}}&lt;br /&gt;
&lt;br /&gt;
*[[Buffer overflow]]&lt;br /&gt;
*[[Memory debugger]]&lt;br /&gt;
*[[Software testing]]&lt;br /&gt;
*[[List of tools for static code analysis]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*{{sourceforge|splint}}&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Splint (Programming Tool)}}&lt;br /&gt;
[[Category:Static program analysis tools]]&lt;br /&gt;
[[Category:Free memory management software]]&lt;br /&gt;
[[Category:Cross-platform software]]&lt;br /&gt;
[[Category:Free software testing tools]]&lt;br /&gt;
[[Category:Software using the GNU General Public License]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{programming-software-stub}}&lt;/div&gt;</summary>
		<author><name>imported&gt;Bender the Bot</name></author>
	</entry>
</feed>