minunit
minunit copied to clipboard
compiler warnings when in use
I got lots of warnings and they're all warnings about two lines in minunit.h
In file included from minunit_example.c:1:
minunit_example.c: In function ‘test_suite’:
minunit.h:110:43: warning: comparing floating-point with ‘==’ or ‘!=’ is unsafe [-Wfloat-equal]
110 | MU__SAFE_BLOCK(if (minunit_real_timer == 0 && minunit_proc_timer == 0) { \
| ^~
minunit.h:97:9: note: in definition of macro ‘MU__SAFE_BLOCK’
97 | block \
| ^~~~~
I changed line 111 from == 0 to
if (minunit_real_timer <= MINUNIT_EPSILON && \
minunit_proc_timer <= MINUNIT_EPSILON)
and the warnings went away
The warning makes sense for computed values but not so much for a float initialized to zero. Disabling the warning is verbose and compiler dependent so a solution like you propose is more elegant. I would not reuse MINUNIT_EPSILON though as it is the epsilon for floating point numbers and users may want/need to customize it. I would create another constant MINUNIT_TIME_EPSILON
and use that one.
Would you like to start a PR?