diff --git a/cfg/std.cfg b/cfg/std.cfg index 360b05fe5..a0b324f10 100644 --- a/cfg/std.cfg +++ b/cfg/std.cfg @@ -611,7 +611,7 @@ - + false @@ -621,7 +621,7 @@ - + false @@ -633,7 +633,7 @@ - + false @@ -646,7 +646,7 @@ - + true @@ -655,7 +655,7 @@ - + false @@ -667,7 +667,7 @@ - + false diff --git a/lib/symboldatabase.cpp b/lib/symboldatabase.cpp index d6de9699e..3d2d6baf1 100644 --- a/lib/symboldatabase.cpp +++ b/lib/symboldatabase.cpp @@ -1422,7 +1422,8 @@ bool SymbolDatabase::isFunction(const Token *tok, const Scope* outerScope, const return false; } -bool Variable::isPointerArray() const { +bool Variable::isPointerArray() const +{ return isArray() && nameToken() && nameToken()->previous() && (nameToken()->previous()->str() == "*"); } diff --git a/test/cfg/std.c b/test/cfg/std.c index 5f423e96a..93504355c 100644 --- a/test/cfg/std.c +++ b/test/cfg/std.c @@ -904,6 +904,80 @@ void uninitvar_cosh(void) (void)coshl(ld); } +void uninitvar_ccosh(void) +{ + float complex fd; + // cppcheck-suppress uninitvar + (void)ccoshf(fd); + + double complex dc; + // cppcheck-suppress uninitvar + (void)ccosh(dc); + + long double complex ldc; + // cppcheck-suppress uninitvar + (void)ccoshl(ldc); +} + +void uninitvar_ctime(void) +{ + time_t *tp; + // cppcheck-suppress uninitvar + (void)ctime(tp); +} + +void uninitvar_difftime(void) +{ + time_t t1,t2; + // cppcheck-suppress uninitvar + (void)difftime(t1, t2); +} + +void uninitvar_div(void) +{ + int num; + int denom; + // cppcheck-suppress uninitvar + (void)div(num,denom); +} + +void uninitvar_exit(void) +{ + int i; + // cppcheck-suppress uninitvar + exit(i); +} + +void uninitvar_erf(void) +{ + float f; + // cppcheck-suppress uninitvar + (void)erff(f); + + double d; + // cppcheck-suppress uninitvar + (void)erf(d); + + long double ld; + // cppcheck-suppress uninitvar + (void)erfl(ld); +} + +void uninitvar_erfc(void) +{ + float f; + // cppcheck-suppress uninitvar + (void)erfcf(f); + + double d; + // cppcheck-suppress uninitvar + (void)erfc(d); + + long double ld; + // cppcheck-suppress uninitvar + (void)erfcl(ld); +} + void ignoreretrn(void) { char szNumbers[] = "2001 60c0c0 -1101110100110100100000 0x6fffff"; diff --git a/test/cfg/std.cpp b/test/cfg/std.cpp index 88f3f953f..6a02552e1 100644 --- a/test/cfg/std.cpp +++ b/test/cfg/std.cpp @@ -486,3 +486,62 @@ void uninitvar_feupdateenv(void) // cppcheck-suppress uninitvar (void)std::feupdateenv(envp); } + +void uninitvar_ctime(void) +{ + time_t *tp; + // cppcheck-suppress uninitvar + (void)std::ctime(tp); +} + +void uninitvar_difftime(void) +{ + time_t t1,t2; + // cppcheck-suppress uninitvar + (void)std::difftime(t1, t2); +} + +void uninitvar_div(void) +{ + int num; + int denom; + // cppcheck-suppress uninitvar + (void)std::div(num,denom); +} + +void uninitvar_exit(void) +{ + int i; + // cppcheck-suppress uninitvar + std::exit(i); +} + +void uninitvar_erf(void) +{ + float f; + // cppcheck-suppress uninitvar + (void)std::erf(f); + + double d; + // cppcheck-suppress uninitvar + (void)std::erf(d); + + long double ld; + // cppcheck-suppress uninitvar + (void)std::erf(ld); +} + +void uninitvar_erfc(void) +{ + float f; + // cppcheck-suppress uninitvar + (void)std::erfc(f); + + double d; + // cppcheck-suppress uninitvar + (void)std::erfc(d); + + long double ld; + // cppcheck-suppress uninitvar + (void)std::erfc(ld); +}