Splint (programmeringsværktøj) - Splint (programming tool)
Udvikler (er) | Skinneudviklerne |
---|---|
Stabil udgivelse | 3.1.2 / 12. juli 2007
|
Depot | github |
Operativ system | På tværs af platforme |
Type | Statisk kode analyse |
Licens | GPL |
Internet side | www |
Splint , en forkortelse for Secure Programmering Lint , er et programmeringsværktøj til statisk kontrol C-programmer af sikkerhedsmæssige sårbarheder og kodning fejl. Tidligere kaldet LCLint, det er en moderne version af Unix fnug værktøj.
Splint har evnen til at fortolke særlige kommentarer til kildekoden , hvilket giver den en stærkere kontrol end det er muligt bare ved at se på kilden alene. Splint bruges af gpsd som en del af et forsøg på at designe for nul defekter.
Splint er gratis software frigivet under betingelserne i GNU General Public License .
Hovedudviklingsaktiviteten på Splint stoppede i 2010. Ifølge CVS på SourceForge var den seneste ændring i depotet i september 2012 i november 2010. Et Git -depot på GitHub har nyere ændringer, der starter i juli 2019.
Eksempel
#include <stdio.h>
int main()
{
char c;
while (c != 'x');
{
c = getchar();
if (c = 'x')
return 0;
switch (c) {
case '\n':
case '\r':
printf("Newline\n");
default:
printf("%c",c);
}
}
return 0;
}
Splint's output:
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)
Fast kilde:
#include <stdio.h>
int main()
{
int c = 0; // Added an initial assignment definition.
while (c != 'x') {
c = getchar(); // Corrected type of c to int
if (c == 'x') // Fixed the assignment error to make it a comparison operator.
return 0;
switch (c) {
case '\n':
case '\r':
printf("Newline\n");
break; // Added break statement to prevent fall-through.
default:
printf("%c",c);
break; //Added break statement to default catch, out of good practice.
}
}
return 0;
}
Se også
Referencer
eksterne links