Skip to content
Snippets Groups Projects

fix(bhi, leds): fixed faulty error handling due to always-false unsigned comparisons

Merged fuchsi* requested to merge fuchsi/firmware:faulty_unsigned_comparisons into master

-Wtype-limits revealed three errors in the firmware:

../pycardium/modules/sys_leds.c: In function 'mp_leds_get_rocket':
../pycardium/modules/sys_leds.c:207:10: warning: comparison is always false due to limited range of data type [-Wtype-limits]
  207 |  if (ret == -EINVAL) {
      |          ^~


../pycardium/mphalport.c: In function 'mp_hal_set_interrupt_char':
../pycardium/mphalport.c:115:8: warning: comparison is always true due to limited range of data type [-Wtype-limits]
  115 |  if (c != -1) {
      |        ^~

../epicardium/modules/bhi.c: In function 'epic_bhi160_enable_sensor':
../epicardium/modules/bhi.c:134:12: warning: comparison is always false due to limited range of data type [-Wtype-limits]
  134 |  if (vs_id < 0) {
      |            ^
../epicardium/modules/bhi.c: In function 'epic_bhi160_disable_sensor':
../epicardium/modules/bhi.c:191:12: warning: comparison is always false due to limited range of data type [-Wtype-limits]
  191 |  if (vs_id < 0) {
      |            ^

note, that on the target platform char and enums are unsigned. The compiler has probably removed all of these ifs so far because the conditions were determined to always be false.

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
Please register or sign in to reply
Loading