test/cfg: Improved testing of std.cfg regarding uninitialized and nullPointer checks.

This commit is contained in:
orbitcowboy 2015-09-11 16:50:59 +02:00
parent 3187a2b972
commit fd81ee9804
4 changed files with 85 additions and 16 deletions

View File

@ -463,7 +463,7 @@
</arg> </arg>
</function> </function>
<!-- int atexit(void (*func)(void)); --> <!-- int atexit(void (*func)(void)); -->
<function name="atexit"> <function name="atexit,std::atexit">
<pure/> <pure/>
<noreturn>false</noreturn> <noreturn>false</noreturn>
<leak-ignore/> <leak-ignore/>
@ -471,22 +471,11 @@
<not-null/> <not-null/>
</arg> </arg>
</function> </function>
<!-- double atof(const char *s); -->
<function name="atof">
<use-retval/>
<pure/>
<noreturn>false</noreturn>
<leak-ignore/>
<arg nr="1">
<not-null/>
<not-uninit/>
<strz/>
</arg>
</function>
<!-- int atoi(const char *s); --> <!-- int atoi(const char *s); -->
<!-- long int atol(const char *s); --> <!-- long int atol(const char *s); -->
<!-- long long int atoll(const char *s); --> <!-- long long int atoll(const char *s); -->
<function name="atoi,atol,atoll,std::atoi,std::atol,std::atoll"> <!-- double atof(const char *s); -->
<function name="atoi,atol,atoll,std::atoi,std::atol,std::atoll,atof,std::atof">
<use-retval/> <use-retval/>
<pure/> <pure/>
<noreturn>false</noreturn> <noreturn>false</noreturn>

View File

@ -14,9 +14,9 @@ CPPCHECK_OPT='--check-library --enable=information --enable=style --error-exitco
# Compiler settings # Compiler settings
CXX=g++ CXX=g++
CXX_OPT='-fsyntax-only -std=c++0x -Wno-format-security' CXX_OPT='-fsyntax-only -std=c++0x -Wno-format-security -Wno-nonnull'
CC=gcc CC=gcc
CC_OPT='-Wno-nonnull -Wno-implicit-function-declaration -Wno-deprecated-declarations -Wno-format-security -fsyntax-only' CC_OPT='-Wno-nonnull -Wno-implicit-function-declaration -Wno-deprecated-declarations -Wno-format-security -Wno-nonnull -fsyntax-only'
# posix.c # posix.c
${CC} ${CC_OPT} ${DIR}posix.c ${CC} ${CC_OPT} ${DIR}posix.c

View File

@ -789,6 +789,13 @@ void uninitvar_atan2(void)
(void)atan2l(ld1,ld2); (void)atan2l(ld1,ld2);
} }
void uninitvar_atof(void)
{
char * c;
// cppcheck-suppress uninitvar
(void)atof(c);
}
void uninitvar_atol(void) void uninitvar_atol(void)
{ {
char * c; char * c;
@ -3445,3 +3452,36 @@ void nullPointer_fesetenv(void)
(void)fesetenv(0); (void)fesetenv(0);
} }
void nullPointer_fesetexceptflag(int excepts)
{
fexcept_t* flagp = 0;
// cppcheck-suppress nullPointer
(void)fesetexceptflag(flagp,excepts);
// cppcheck-suppress nullPointer
(void)fesetexceptflag(0,excepts);
}
void nullPointer_feupdateenv(void)
{
fenv_t* envp = 0;
// cppcheck-suppress nullPointer
(void)feupdateenv(envp);
// cppcheck-suppress nullPointer
(void)feupdateenv(0);
}
void nullPointer_atexit(void)
{
// cppcheck-suppress nullPointer
(void)atexit(0);
}
void nullPointer_atof(void)
{
char * c = 0;
// cppcheck-suppress nullPointer
(void)atof(c);
// cppcheck-suppress nullPointer
(void)atof(0);
}

View File

@ -350,6 +350,13 @@ void uninitvar_atan2(void)
(void)std::atan2(ld1,ld2); (void)std::atan2(ld1,ld2);
} }
void uninitvar_atof(void)
{
char * c;
// cppcheck-suppress uninitvar
(void)std::atof(c);
}
void uninitvar_atol(void) void uninitvar_atol(void)
{ {
char * c; char * c;
@ -2799,3 +2806,36 @@ void nullPointer_fesetenv(void)
// cppcheck-suppress nullPointer // cppcheck-suppress nullPointer
(void)std::fesetenv(0); (void)std::fesetenv(0);
} }
void nullPointer_fesetexceptflag(int excepts)
{
fexcept_t* flagp = 0;
// cppcheck-suppress nullPointer
(void)std::fesetexceptflag(flagp,excepts);
// cppcheck-suppress nullPointer
(void)std::fesetexceptflag(0,excepts);
}
void nullPointer_feupdateenv(void)
{
fenv_t* envp = 0;
// cppcheck-suppress nullPointer
(void)std::feupdateenv(envp);
// cppcheck-suppress nullPointer
(void)std::feupdateenv(0);
}
void nullPointer_atexit(void)
{
// cppcheck-suppress nullPointer
(void)std::atexit(0);
}
void nullPointer_atof(void)
{
char * c = 0;
// cppcheck-suppress nullPointer
(void)std::atof(c);
// cppcheck-suppress nullPointer
(void)std::atof(0);
}