minunit icon indicating copy to clipboard operation
minunit copied to clipboard

compiler warnings when in use

Open laoshaw opened this issue 3 years ago • 2 comments

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                                                                  \
      |         ^~~~~

laoshaw avatar Aug 09 '20 14:08 laoshaw

I changed line 111 from == 0 to

if (minunit_real_timer <= MINUNIT_EPSILON &&                           \
        minunit_proc_timer <= MINUNIT_EPSILON)

and the warnings went away

laoshaw avatar Aug 09 '20 15:08 laoshaw

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?

siu avatar Aug 11 '20 08:08 siu