Fix false positive ignoredReturnValue about strtol

This commit is contained in:
Alexander Mai 2015-02-25 22:03:10 +01:00
parent cb4bf73749
commit cea71f8625
3 changed files with 35 additions and 2 deletions

View File

@ -4916,7 +4916,6 @@
</function> </function>
<!-- long strtol(const char *s, char **endp, int base); --> <!-- long strtol(const char *s, char **endp, int base); -->
<function name="strtol"> <function name="strtol">
<use-retval/>
<noreturn>false</noreturn> <noreturn>false</noreturn>
<leak-ignore/> <leak-ignore/>
<arg nr="1"> <arg nr="1">

View File

@ -19,4 +19,4 @@ ${CPPCHECK} --check-library --library=gnu --enable=information --enable=style --
# std.c # std.c
gcc -fsyntax-only ${DIR}std.c gcc -fsyntax-only ${DIR}std.c
${CPPCHECK} --check-library --enable=information --error-exitcode=1 --suppress=missingIncludeSystem --inline-suppr ${DIR}std.c ${CPPCHECK} --check-library --enable=information --error-exitcode=1 --enable=style --suppress=missingIncludeSystem --inline-suppr ${DIR}std.c

View File

@ -19,14 +19,21 @@ void bufferAccessOutOf(void) {
fgets(a,6,stdin); fgets(a,6,stdin);
sprintf(a, "ab%s", "cd"); sprintf(a, "ab%s", "cd");
// cppcheck-suppress bufferAccessOutOfBounds // cppcheck-suppress bufferAccessOutOfBounds
// cppcheck-suppress redundantCopy
sprintf(a, "ab%s", "cde"); sprintf(a, "ab%s", "cde");
// cppcheck-suppress redundantCopy
snprintf(a, 5, "abcde%i", 1); snprintf(a, 5, "abcde%i", 1);
// cppcheck-suppress redundantCopy
snprintf(a, 6, "abcde%i", 1); //TODO: cppcheck-suppress bufferAccessOutOfBounds snprintf(a, 6, "abcde%i", 1); //TODO: cppcheck-suppress bufferAccessOutOfBounds
// cppcheck-suppress redundantCopy
strcpy(a,"abcd"); strcpy(a,"abcd");
// cppcheck-suppress bufferAccessOutOfBounds // cppcheck-suppress bufferAccessOutOfBounds
// cppcheck-suppress redundantCopy
strcpy(a, "abcde"); strcpy(a, "abcde");
// cppcheck-suppress redundantCopy
strncpy(a,"abcde",5); strncpy(a,"abcde",5);
// cppcheck-suppress bufferAccessOutOfBounds // cppcheck-suppress bufferAccessOutOfBounds
// cppcheck-suppress redundantCopy
strncpy(a,"abcde",6); strncpy(a,"abcde",6);
fread(a,1,5,stdin); fread(a,1,5,stdin);
// cppcheck-suppress bufferAccessOutOfBounds // cppcheck-suppress bufferAccessOutOfBounds
@ -52,12 +59,14 @@ void nullpointer(int value){
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
clearerr(0); clearerr(0);
// cppcheck-suppress ignoredReturnValue
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
feof(0); feof(0);
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
fgetc(0); fgetc(0);
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
fclose(0); fclose(0);
// cppcheck-suppress ignoredReturnValue
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
ferror(0); ferror(0);
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
@ -70,6 +79,7 @@ void nullpointer(int value){
// No FP // No FP
fflush(0); fflush(0);
// No FP // No FP
// cppcheck-suppress redundantAssignment
fp = freopen(0,"abc",stdin); fp = freopen(0,"abc",stdin);
fclose(fp); fp = 0; fclose(fp); fp = 0;
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
@ -85,39 +95,51 @@ void nullpointer(int value){
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
itoa(123,0,10); itoa(123,0,10);
putchar(0); putchar(0);
// cppcheck-suppress ignoredReturnValue
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
strchr(0,0); strchr(0,0);
// cppcheck-suppress ignoredReturnValue
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
strlen(0); strlen(0);
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
strcpy(0,0); strcpy(0,0);
// cppcheck-suppress ignoredReturnValue
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
strspn(0,0); strspn(0,0);
// cppcheck-suppress ignoredReturnValue
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
strcspn(0,0); strcspn(0,0);
// cppcheck-suppress ignoredReturnValue
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
strcoll(0,0); strcoll(0,0);
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
strcat(0,0); strcat(0,0);
// cppcheck-suppress ignoredReturnValue
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
strcmp(0,0); strcmp(0,0);
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
strncpy(0,0,1); strncpy(0,0,1);
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
strncat(0,0,1); strncat(0,0,1);
// cppcheck-suppress ignoredReturnValue
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
strncmp(0,0,1); strncmp(0,0,1);
// cppcheck-suppress ignoredReturnValue
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
strstr(0,0); strstr(0,0);
// cppcheck-suppress ignoredReturnValue
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
strtoul(0,0,0); strtoul(0,0,0);
// cppcheck-suppress ignoredReturnValue
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
strtoull(0,0,0); strtoull(0,0,0);
// cppcheck-suppress ignoredReturnValue
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
strtol(0,0,0); strtol(0,0,0);
// #6100 False positive nullPointer - calling mbstowcs(NULL,) // #6100 False positive nullPointer - calling mbstowcs(NULL,)
res += mbstowcs(0,"",0); res += mbstowcs(0,"",0);
// cppcheck-suppress unreadVariable
res += wcstombs(0,L"",0); res += wcstombs(0,L"",0);
strtok(NULL,"xyz"); strtok(NULL,"xyz");
@ -132,20 +154,24 @@ void nullpointer(int value){
} }
void nullpointerMemchr1(char *p, char *s) { void nullpointerMemchr1(char *p, char *s) {
// cppcheck-suppress uselessAssignmentPtrArg
p = memchr (s, 'p', strlen(s)); p = memchr (s, 'p', strlen(s));
} }
void nullpointerMemchr2(char *p, char *s) { void nullpointerMemchr2(char *p, char *s) {
// cppcheck-suppress uselessAssignmentPtrArg
p = memchr (s, 0, strlen(s)); p = memchr (s, 0, strlen(s));
} }
void nullpointerMemchr3(char *p) { void nullpointerMemchr3(char *p) {
char *s = 0; char *s = 0;
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
// cppcheck-suppress uselessAssignmentPtrArg
p = memchr (s, 0, strlen(s)); p = memchr (s, 0, strlen(s));
} }
void nullpointerMemcmp(char *p) { void nullpointerMemcmp(char *p) {
// cppcheck-suppress ignoredReturnValue
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
memcmp(p, 0, 123); memcmp(p, 0, 123);
} }
@ -178,12 +204,14 @@ void uninit_fopen(void) {
void uninit_feof(void) { void uninit_feof(void) {
FILE *fp; FILE *fp;
// cppcheck-suppress ignoredReturnValue
// cppcheck-suppress uninitvar // cppcheck-suppress uninitvar
feof(fp); feof(fp);
} }
void uninit_ferror(void) { void uninit_ferror(void) {
FILE *fp; FILE *fp;
// cppcheck-suppress ignoredReturnValue
// cppcheck-suppress uninitvar // cppcheck-suppress uninitvar
ferror(fp); ferror(fp);
} }
@ -283,3 +311,9 @@ void uninit_putchar(void) {
// cppcheck-suppress uninitvar // cppcheck-suppress uninitvar
putchar(c); putchar(c);
} }
void ignoreretrn(void) {
char szNumbers[] = "2001 60c0c0 -1101110100110100100000 0x6fffff";
char * pEnd;
strtol (szNumbers,&pEnd,10);
}