diff --git a/.clang-tidy b/.clang-tidy index fa3fe3f1fb..c1710a2a1a 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -153,7 +153,6 @@ Checks: '*, -bugprone-macro-parentheses, -bugprone-multi-level-implicit-pointer-conversion, -bugprone-signed-char-misuse, - -bugprone-too-small-loop-variable, -cppcoreguidelines-avoid-non-const-global-variables, -cppcoreguidelines-use-default-member-init, -hicpp-multiway-paths-covered, diff --git a/src/drivers/gnss/septentrio/septentrio.cpp b/src/drivers/gnss/septentrio/septentrio.cpp index 8cd71875e1..bffc940e29 100644 --- a/src/drivers/gnss/septentrio/septentrio.cpp +++ b/src/drivers/gnss/septentrio/septentrio.cpp @@ -437,7 +437,7 @@ SeptentrioDriver *SeptentrioDriver::instantiate(int argc, char *argv[], Instance bool valid_chosen_baud_rate {false}; - for (uint8_t i = 0; i < sizeof(k_supported_baud_rates) / sizeof(k_supported_baud_rates[0]); i++) { + for (size_t i = 0; i < sizeof(k_supported_baud_rates) / sizeof(k_supported_baud_rates[0]); i++) { switch (instance) { case Instance::Main: if (arguments.baud_rate_main == static_cast(k_supported_baud_rates[i])) { diff --git a/src/lib/adsb/AdsbConflict.cpp b/src/lib/adsb/AdsbConflict.cpp index 976b322796..5d7e2cded7 100644 --- a/src/lib/adsb/AdsbConflict.cpp +++ b/src/lib/adsb/AdsbConflict.cpp @@ -95,9 +95,9 @@ void AdsbConflict::detect_traffic_conflict(double lat_now, double lon_now, float int AdsbConflict::find_icao_address_in_conflict_list(uint32_t icao_address) { - for (uint8_t i = 0; i < _traffic_buffer.icao_address.size(); i++) { + for (size_t i = 0; i < _traffic_buffer.icao_address.size(); i++) { if (_traffic_buffer.icao_address[i] == icao_address) { - return i; + return static_cast(i); } } diff --git a/src/modules/commander/lm_fit.cpp b/src/modules/commander/lm_fit.cpp index 866fa6f071..e6ae8467ea 100644 --- a/src/modules/commander/lm_fit.cpp +++ b/src/modules/commander/lm_fit.cpp @@ -55,7 +55,7 @@ void lm_sphere_fit_iteration(const float x[], const float y[], const float z[], float residual = 0.0f; // Gauss Newton Part common for all kind of extensions including LM - for (uint16_t k = 0; k < samples_collected; k++) { + for (size_t k = 0; k < samples_collected; k++) { float sphere_jacob[4]; //Calculate Jacobian @@ -118,7 +118,7 @@ void lm_sphere_fit_iteration(const float x[], const float y[], const float z[], } // Calculate mean squared residuals - for (uint16_t k = 0; k < samples_collected; k++) { + for (size_t k = 0; k < samples_collected; k++) { float A = (params.diag(0) * (x[k] - fit1_params[1])) + (params.offdiag(0) * (y[k] - fit1_params[2])) + (params.offdiag(1) * (z[k] + fit1_params[3])); @@ -188,7 +188,7 @@ void lm_ellipsoid_fit_iteration(const float x[], const float y[], const float z[ float ellipsoid_jacob[9]; // Gauss Newton Part common for all kind of extensions including LM - for (uint16_t k = 0; k < samples_collected; k++) { + for (size_t k = 0; k < samples_collected; k++) { // Calculate Jacobian float A = (params.diag(0) * (x[k] - params.offset(0))) + (params.offdiag(0) * (y[k] - params.offset(1))) + @@ -255,7 +255,7 @@ void lm_ellipsoid_fit_iteration(const float x[], const float y[], const float z[ } // Calculate mean squared residuals - for (uint16_t k = 0; k < samples_collected; k++) { + for (size_t k = 0; k < samples_collected; k++) { float A = (fit1_params[3] * (x[k] - fit1_params[0])) + (fit1_params[6] * (y[k] - fit1_params[1])) + (fit1_params[7] * (z[k] - fit1_params[2])); float B = (fit1_params[6] * (x[k] - fit1_params[0])) + (fit1_params[4] * (y[k] - fit1_params[1])) + (fit1_params[8] * diff --git a/src/modules/ekf2/EKF2.cpp b/src/modules/ekf2/EKF2.cpp index 29f194b4c7..3d770d6ca2 100644 --- a/src/modules/ekf2/EKF2.cpp +++ b/src/modules/ekf2/EKF2.cpp @@ -2862,12 +2862,12 @@ int EKF2::task_spawn(int argc, char *argv[]) vehicle_status_sub.update(); - for (uint8_t mag = 0; mag < mag_instances; mag++) { - uORB::SubscriptionData vehicle_mag_sub{ORB_ID(vehicle_magnetometer), mag}; + for (size_t mag = 0; mag < static_cast(mag_instances); mag++) { + uORB::SubscriptionData vehicle_mag_sub{ORB_ID(vehicle_magnetometer), static_cast(mag)}; - for (uint8_t imu = 0; imu < imu_instances; imu++) { + for (size_t imu = 0; imu < static_cast(imu_instances); imu++) { - uORB::SubscriptionData vehicle_imu_sub{ORB_ID(vehicle_imu), imu}; + uORB::SubscriptionData vehicle_imu_sub{ORB_ID(vehicle_imu), static_cast(imu)}; vehicle_mag_sub.update(); // Mag & IMU data must be valid, first mag can be ignored initially @@ -2898,7 +2898,7 @@ int EKF2::task_spawn(int argc, char *argv[]) } } else { - PX4_ERR("alloc and init failed imu: %" PRIu8 " mag:%" PRIu8, imu, mag); + PX4_ERR("alloc and init failed imu: %" PRIu8 " mag:%" PRIu8, static_cast(imu), static_cast(mag)); px4_usleep(100000); break; } diff --git a/src/modules/gyro_fft/GyroFFT.cpp b/src/modules/gyro_fft/GyroFFT.cpp index bd794f0a14..6d0f905ac3 100644 --- a/src/modules/gyro_fft/GyroFFT.cpp +++ b/src/modules/gyro_fft/GyroFFT.cpp @@ -439,14 +439,14 @@ void GyroFFT::FindPeaks(const hrt_abstime ×tamp_sample, int axis, q15_t *ff float bin_mag_sum = 0; // FFT output buffer is ordered [real[0], imag[0], real[1], imag[1], real[2], imag[2] ... real[(N/2)-1], imag[(N/2)-1] - for (uint16_t fft_index = 2; fft_index < _imu_gyro_fft_len; fft_index += 2) { + for (size_t fft_index = 2; fft_index < static_cast(_imu_gyro_fft_len); fft_index += 2) { const float real = fft_outupt_buffer[fft_index]; const float imag = fft_outupt_buffer[fft_index + 1]; const float fft_magnitude = sqrtf(real * real + imag * imag); - int bin_index = fft_index / 2; + size_t bin_index = fft_index / 2; _peak_magnitudes_all[bin_index] = fft_magnitude; bin_mag_sum += fft_magnitude; diff --git a/src/modules/sensors/vehicle_optical_flow/RingBuffer.hpp b/src/modules/sensors/vehicle_optical_flow/RingBuffer.hpp index 591088bc30..faae7ef625 100644 --- a/src/modules/sensors/vehicle_optical_flow/RingBuffer.hpp +++ b/src/modules/sensors/vehicle_optical_flow/RingBuffer.hpp @@ -76,9 +76,9 @@ public: bool peak_first_older_than(const uint64_t ×tamp, T *sample) { // start looking from newest observation data - for (uint8_t i = 0; i < SIZE; i++) { - int index = (_head - i); - index = index < 0 ? SIZE + index : index; + for (size_t i = 0; i < SIZE; i++) { + int index = static_cast(_head) - static_cast(i); + index = index < 0 ? static_cast(SIZE) + index : index; if (timestamp >= _buffer[index].time_us && timestamp < _buffer[index].time_us + (uint64_t)100'000) { *sample = _buffer[index]; @@ -98,9 +98,9 @@ public: bool pop_first_older_than(const uint64_t ×tamp, T *sample) { // start looking from newest observation data - for (uint8_t i = 0; i < SIZE; i++) { - int index = (_head - i); - index = index < 0 ? SIZE + index : index; + for (size_t i = 0; i < SIZE; i++) { + int index = static_cast(_head) - static_cast(i); + index = index < 0 ? static_cast(SIZE) + index : index; if (timestamp >= _buffer[index].time_us && timestamp < _buffer[index].time_us + (uint64_t)100'000) { *sample = _buffer[index]; @@ -113,7 +113,7 @@ public: _first_write = true; } else { - _tail = (index + 1) % SIZE; + _tail = (index + 1) % static_cast(SIZE); } _buffer[index].time_us = 0; @@ -137,9 +137,9 @@ public: return false; } - for (uint8_t i = 0; i < SIZE; i++) { + for (size_t i = 0; i < SIZE; i++) { - uint8_t index = (_tail + i) % SIZE; + size_t index = (_tail + i) % SIZE; if (_buffer[index].time_us >= timestamp_oldest && _buffer[index].time_us <= timestamp_newest) { *sample = _buffer[index]; @@ -147,7 +147,7 @@ public: // Now we can set the tail to the item which // comes after the one we removed since we don't // want to have any older data in the buffer - if (index == _head) { + if (index == (size_t)_head) { _tail = _head; _first_write = true; @@ -194,12 +194,12 @@ public: int get_total_size() const { return sizeof(*this) + sizeof(T) * SIZE; } - uint8_t entries() const + size_t entries() const { - int count = 0; + size_t count = 0; - for (uint8_t i = 0; i < SIZE; i++) { - if (_buffer[i].time_us != 0) { + for (const auto &item : _buffer) { + if (item.time_us != 0) { count++; } }