From 34551203a6c1971eab7d10c05ea3a6268f24f9a4 Mon Sep 17 00:00:00 2001 From: orbitcowboy Date: Wed, 2 Sep 2015 17:08:25 +0200 Subject: [PATCH] Improved testing of std.cfg regarding uninitialized variables. --- cfg/std.cfg | 16 ++++++---- test/cfg/std.c | 82 ++++++++++++++++++++++++++++++++++++++++++++++++ test/cfg/std.cpp | 75 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 167 insertions(+), 6 deletions(-) diff --git a/cfg/std.cfg b/cfg/std.cfg index 790f6285d..b5844bbdf 100644 --- a/cfg/std.cfg +++ b/cfg/std.cfg @@ -2187,7 +2187,7 @@ - + false @@ -2202,7 +2202,7 @@ - + false @@ -2215,7 +2215,7 @@ - + false @@ -2226,13 +2226,14 @@ - + false + false @@ -2241,7 +2242,7 @@ - + false @@ -2257,12 +2258,13 @@ 0: + 0: - + false @@ -2278,6 +2280,7 @@ 0: + 0: @@ -2299,6 +2302,7 @@ + 0: diff --git a/test/cfg/std.c b/test/cfg/std.c index 1f7b9850c..78fd8a189 100644 --- a/test/cfg/std.c +++ b/test/cfg/std.c @@ -14,6 +14,7 @@ #include #include #include +#include void bufferAccessOutOfBounds(void) { @@ -2292,3 +2293,84 @@ void uninitvar_nearbyint(void) // cppcheck-suppress uninitvar (void)nearbyintl(ld); } + +void uninitvar_nextafter(void) +{ + float f1,f2; + // cppcheck-suppress uninitvar + (void)nextafterf(f1,f2); + + double d1,d2; + // cppcheck-suppress uninitvar + (void)nextafter(d1,d2); + + long double ld1,ld2; + // cppcheck-suppress uninitvar + (void)nextafterl(ld1,ld2); +} + +void uninitvar_nexttoward(void) +{ + float f1,f2; + // cppcheck-suppress uninitvar + (void)nexttowardf(f1,f2); + + double d1,d2; + // cppcheck-suppress uninitvar + (void)nexttoward(d1,d2); + + long double ld1,ld2; + // cppcheck-suppress uninitvar + (void)nexttowardl(ld1,ld2); +} + +void uninitvar_longjmp(void) +{ + jmp_buf env; + int val; + // cppcheck-suppress uninitvar + (void)longjmp(env,val); +} + +void uninitvar_malloc(void) +{ + size_t size; + // cppcheck-suppress uninitvar + int *p = (int*)malloc(size); + free(p); +} + +void uninitvar_alloca(void) +{ + size_t size; + // cppcheck-suppress obsoleteFunctionsalloca + // cppcheck-suppress uninitvar + (void)alloca(size); +} + +void uninitvar_memchr(void) +{ + void *cs; + int c; + size_t n; + // cppcheck-suppress uninitvar + (void)memchr(cs,c,n); +} + +void uninitvar_wmemchr(void) +{ + wchar_t *cs; + wchar_t c; + size_t n; + // cppcheck-suppress uninitvar + (void)wmemchr(cs,c,n); +} + +void uninitvar_memcmp(void) +{ + void *s1; + void *s2; + size_t n; + // cppcheck-suppress uninitvar + (void)memcmp(s1,s2,n); +} diff --git a/test/cfg/std.cpp b/test/cfg/std.cpp index 61617da51..5937249a0 100644 --- a/test/cfg/std.cpp +++ b/test/cfg/std.cpp @@ -16,6 +16,8 @@ #include #include #include +#include +#include void bufferAccessOutOfBounds(void) { @@ -1640,3 +1642,76 @@ void uninitvar_nearbyint(void) // cppcheck-suppress uninitvar (void)std::nearbyintl(ld); } + +void uninitvar_nextafter(void) +{ + float f1,f2; + // cppcheck-suppress uninitvar + (void)std::nextafterf(f1,f2); + + double d1,d2; + // cppcheck-suppress uninitvar + (void)std::nextafter(d1,d2); + + long double ld1,ld2; + // cppcheck-suppress uninitvar + (void)std::nextafterl(ld1,ld2); +} + +void uninitvar_nexttoward(void) +{ + float f1,f2; + // cppcheck-suppress uninitvar + (void)std::nexttowardf(f1,f2); + + double d1,d2; + // cppcheck-suppress uninitvar + (void)std::nexttoward(d1,d2); + + long double ld1,ld2; + // cppcheck-suppress uninitvar + (void)std::nexttowardl(ld1,ld2); +} + +void uninitvar_longjmp(void) +{ + jmp_buf env; + int val; + // cppcheck-suppress uninitvar + (void)std::longjmp(env,val); +} + +void uninitvar_malloc(void) +{ + size_t size; + // cppcheck-suppress uninitvar + int *p = (int*)std::malloc(size); + free(p); +} + +void uninitvar_memchr(void) +{ + void *cs; + int c; + size_t n; + // cppcheck-suppress uninitvar + (void)std::memchr(cs,c,n); +} + +void uninitvar_wmemchr(void) +{ + wchar_t *cs; + wchar_t c; + size_t n; + // cppcheck-suppress uninitvar + (void)std::wmemchr(cs,c,n); +} + +void uninitvar_memcmp(void) +{ + void *s1; + void *s2; + size_t n; + // cppcheck-suppress uninitvar + (void)std::memcmp(s1,s2,n); +}