From 6304eb35f96bfb0a6ee50360929c243117d36e98 Mon Sep 17 00:00:00 2001 From: Martin Ettl Date: Fri, 4 Sep 2015 23:45:31 +0200 Subject: [PATCH] Improved testing of std.cfg regarding uninitialized variables. --- cfg/std.cfg | 28 ++++++++++++++----- test/cfg/std.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++-- test/cfg/std.cpp | 65 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 157 insertions(+), 9 deletions(-) diff --git a/cfg/std.cfg b/cfg/std.cfg index 6a9db9c37..6cecad224 100644 --- a/cfg/std.cfg +++ b/cfg/std.cfg @@ -86,6 +86,7 @@ + true @@ -2749,50 +2750,62 @@ - + false + - + false + + + + + - + false + + + + + - + false + - + false @@ -2803,7 +2816,7 @@ - + false @@ -2815,7 +2828,7 @@ - + false @@ -3908,6 +3921,7 @@ + false diff --git a/test/cfg/std.c b/test/cfg/std.c index 3ee896902..e5c5c29a4 100644 --- a/test/cfg/std.c +++ b/test/cfg/std.c @@ -405,14 +405,12 @@ void uninitvar_asctime(void) (void)asctime(tm); } -#if 0 void uninitvar_assert(void) { int i; // cppcheck-suppress uninitvar assert(i); } -#endif void uninitvar_sqrt(void) { @@ -2716,3 +2714,74 @@ void uninivar_raise(void) // cppcheck-suppress uninitvar (void)raise(i); } + +void uninivar_scanf(void) +{ + char *format; + char str[42]; + // cppcheck-suppress uninitvar + (void)scanf(format, str); +} + +void uninivar_vsscanf(void) +{ + char *s; + char *format; + va_list arg; + // cppcheck-suppress va_list_usedBeforeStarted + // cppcheck-suppress uninitvar + (void)vsscanf(s,format,arg); +} + +void uninivar_vswscanf(void) +{ + wchar_t *s; + wchar_t *format; + va_list arg; + // cppcheck-suppress va_list_usedBeforeStarted + // cppcheck-suppress uninitvar + (void)vswscanf(s,format,arg); +} + +void uninivar_vscanf(void) +{ + char *format; + va_list arg; + // cppcheck-suppress va_list_usedBeforeStarted + // cppcheck-suppress uninitvar + (void)vscanf(format,arg); +} + +void uninivar_vwscanf(void) +{ + wchar_t *format; + va_list arg; + // cppcheck-suppress va_list_usedBeforeStarted + // cppcheck-suppress uninitvar + (void)vwscanf(format,arg); +} + +void uninivar_setbuf(void) +{ + FILE *stream; + char *buf; + // cppcheck-suppress uninitvar + (void)setbuf(stream,buf); +} + +void uninivar_setvbuf(void) +{ + FILE *stream; + char *buf; + int mode; + size_t size; + // cppcheck-suppress uninitvar + (void)setvbuf(stream,buf,mode,size); +} + +void uninivar_setjmp(void) // #6977 +{ + jmp_buf j; + // cppcheck-suppress uninitvar + (void)setjmp(j); +} diff --git a/test/cfg/std.cpp b/test/cfg/std.cpp index ae0a524bd..29c0fd3ab 100644 --- a/test/cfg/std.cpp +++ b/test/cfg/std.cpp @@ -19,6 +19,7 @@ #include #include #include +#include void bufferAccessOutOfBounds(void) { @@ -2039,3 +2040,67 @@ void uninivar_raise(void) // cppcheck-suppress uninitvar (void)std::raise(i); } + +void uninivar_scanf(void) +{ + char *format; + char str[42]; + // cppcheck-suppress uninitvar + (void)std::scanf(format, str); +} + +void uninivar_vsscanf(void) +{ + char *s; + char *format; + va_list arg; + // cppcheck-suppress va_list_usedBeforeStarted + // cppcheck-suppress uninitvar + (void)std::vsscanf(s,format,arg); +} + +void uninivar_vswscanf(void) +{ + wchar_t *s; + wchar_t *format; + va_list arg; + // cppcheck-suppress va_list_usedBeforeStarted + // cppcheck-suppress uninitvar + (void)std::vswscanf(s,format,arg); +} + +void uninivar_vscanf(void) +{ + char *format; + va_list arg; + // cppcheck-suppress va_list_usedBeforeStarted + // cppcheck-suppress uninitvar + (void)std::vscanf(format,arg); +} + +void uninivar_vwscanf(void) +{ + wchar_t *format; + va_list arg; + // cppcheck-suppress va_list_usedBeforeStarted + // cppcheck-suppress uninitvar + (void)std::vwscanf(format,arg); +} + +void uninivar_setbuf(void) +{ + FILE *stream; + char *buf; + // cppcheck-suppress uninitvar + (void)std::setbuf(stream,buf); +} + +void uninivar_setvbuf(void) +{ + FILE *stream; + char *buf; + int mode; + size_t size; + // cppcheck-suppress uninitvar + (void)std::setvbuf(stream,buf,mode,size); +}