diff --git a/src/exp.cpp b/src/exp.cpp index 4c26f202d82db291e362230e52001f1e74f8c8b7..368c348baac9170119cdf5964a4b5352283f9bb5 100644 --- a/src/exp.cpp +++ b/src/exp.cpp @@ -17,9 +17,13 @@ int32_t exp_6(int32_t x) /* avoid overflow problems for the multiplication */ if( (x < FP(1.0)) && (x > FP(-1.0)) ) { + // cppcheck-suppress integerOverflowCond x2 = (x * x ) / INV_SCALE; + // cppcheck-suppress integerOverflowCond x3 = (x2 * x ) / INV_SCALE; + // cppcheck-suppress integerOverflowCond x4 = (x2 * x2) / INV_SCALE; + // cppcheck-suppress integerOverflowCond x5 = (x3 * x2) / INV_SCALE; } else { x2 = x * (x / INV_SCALE); @@ -76,6 +80,7 @@ int32_t exp_6b(int32_t x) else if( ik < -11 ) res_i = -65535; else + // cppcheck-suppress arrayIndexOutOfBoundsCond res_i = lut[ik+11]; // calculate exponential for the fractional part diff --git a/src/initdeinit.cpp b/src/initdeinit.cpp index 6b9c5d035a7c384bbeb6d64e84442c088e579b91..fd30759ff9b94a528d906bf2e1a79b9908b99e2f 100644 --- a/src/initdeinit.cpp +++ b/src/initdeinit.cpp @@ -2,7 +2,9 @@ extern "C" void __call_constructors() { extern void (*__init_array_start)(); extern void (*__init_array_end)(); - for (void (**p)() = &__init_array_start; p < &__init_array_end; ++p) { + for (void (**p)() = &__init_array_start; + reinterpret_cast<unsigned long>(p) < reinterpret_cast<unsigned long>(&__init_array_end); + ++p) { (*p)(); } } @@ -10,7 +12,9 @@ extern "C" void __call_constructors() { extern "C" void __call_destructors() { extern void (*__fini_array_start)(); extern void (*__fini_array_end)(); - for (void (**p)() = &__fini_array_start; p < &__fini_array_end; ++p) { + for (void (**p)() = &__fini_array_start; + reinterpret_cast<unsigned long>(p) < reinterpret_cast<unsigned long>(&__fini_array_end); + ++p) { (*p)(); } } diff --git a/src/mailbox.cpp b/src/mailbox.cpp index 50b9bedc2fa0a20e2a0b73c3f2dd998bff56c92c..f794e43e7e3ed81fb16d072bf05509bcceb00c16 100644 --- a/src/mailbox.cpp +++ b/src/mailbox.cpp @@ -47,7 +47,8 @@ uint32_t mailbox_read(uint8_t * dest, uint32_t const offset, uint32_t const size } uint8_t libnux_mailbox_read_u8(uint32_t const offset) { - if (&mailbox_base + offset < &mailbox_end) { + if (reinterpret_cast<unsigned long>(&mailbox_base + offset) < + reinterpret_cast<unsigned long>(&mailbox_end)) { return *(&mailbox_base + offset); } else { /* TODO set errno ERANGE as soon as implemented */ @@ -56,7 +57,8 @@ uint8_t libnux_mailbox_read_u8(uint32_t const offset) { } void libnux_mailbox_write_u8(uint32_t const offset, uint8_t const byte) { - if (&mailbox_base + offset < &mailbox_end) { + if (reinterpret_cast<unsigned long>(&mailbox_base + offset) < + reinterpret_cast<unsigned long>(&mailbox_end)) { *(&mailbox_base + offset) = byte; } else { /* TODO set errno ERANGE as soon as implemented */ diff --git a/test/test_measure_time.cpp b/test/test_measure_time.cpp index cf8f8bb3de28c8a87719dc4d18cf521cca4ffc4f..f080d808e59b8a2194d4030eaaab25ee0cdc65da 100644 --- a/test/test_measure_time.cpp +++ b/test/test_measure_time.cpp @@ -45,7 +45,7 @@ void measure_int_multiply_not_optimized_away(char const* msg, times<N>& t) { int a = 10; int b = 20; - ATTRIB_UNUSED int c; + ATTRIB_UNUSED int c{}; do_not_optimize_away(a); do_not_optimize_away(b); do_not_optimize_away(c); diff --git a/test/test_stack_guard.cpp b/test/test_stack_guard.cpp index bad454943ab653e3bd2acdb2ec35c2502cc9af8a..d1215c76003d8c16f474b6c27f353eff405333fd 100644 --- a/test/test_stack_guard.cpp +++ b/test/test_stack_guard.cpp @@ -9,6 +9,7 @@ int start(void) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Warray-bounds" /* Write out of bounds into array, overwriting stack-guard magic value. */ + // cppcheck-suppress arrayIndexOutOfBounds a[2] = 5; #pragma GCC diagnostic pop