diff --git a/cfg/gnu.cfg b/cfg/gnu.cfg index e5996593d..0dcc2c99c 100644 --- a/cfg/gnu.cfg +++ b/cfg/gnu.cfg @@ -28,7 +28,7 @@ false - + ((arg1 & 0xff00u) >> 8) | ((arg1 & 0x00ffu) << 8) @@ -42,7 +42,7 @@ false - + ((arg1 & 0xff000000ul) >> 24) | ((arg1 & 0x00ff0000ul) >> 8) | ((arg1 & 0x0000ff00ul) << 8) | ((arg1 & 0x000000fful) << 24) @@ -56,7 +56,7 @@ false - + ((arg1 & 0xff00000000000000ull) >> 56) | ((arg1 & 0x00ff000000000000ull) >> 40) | ((arg1 & 0x0000ff0000000000ull) >> 24) | ((arg1 & 0x000000ff00000000ull) >> 8) | ((arg1 & 0x00000000ff000000ull) << 8) | ((arg1 & 0x0000000000ff0000ull) << 24) | ((arg1 & 0x000000000000ff00ull) << 40) | ((arg1 & 0x00000000000000ffull) << 56) diff --git a/test/cfg/gnu.c b/test/cfg/gnu.c index cebdd6f01..7c660e4fb 100644 --- a/test/cfg/gnu.c +++ b/test/cfg/gnu.c @@ -153,6 +153,26 @@ void valid_code(int argInt1, va_list valist_arg, int * parg) void * p_mmap = mmap(NULL, 1, PROT_NONE, MAP_ANONYMOUS | MAP_SHARED, -1, 0); printf("%p", p_mmap); munmap(p_mmap, 1); + + uint16_t i16_1 = 0, i16_2; + // cppcheck-suppress unreadVariable + i16_2 = __builtin_bswap16(i16_1++); + uint32_t i32_1 = 0, i32_2; + // cppcheck-suppress unreadVariable + i32_2 = __builtin_bswap32(i32_1++); + uint64_t i64_1 = 0, i64_2; + // cppcheck-suppress unreadVariable + i64_2 = __builtin_bswap64(i64_1++); + + // cppcheck-suppress zerodiv + // cppcheck-suppress unreadVariable + i16_1 /= bswap_16(0x1234) - 0x3412; + // cppcheck-suppress zerodiv + // cppcheck-suppress unreadVariable + i32_1 /= bswap_32(0x12345678) - 0x78563412; + // cppcheck-suppress zerodiv + // cppcheck-suppress unreadVariable + i64_1 /= bswap_64(0x023456789abcde0f) - 0x0fdebc9a78563402; } void ignoreleak(void)