On 5/19/20 10:05 AM, Ihar Hrachyshka wrote:
My understanding is that we assume native C99 _Bool in our compiler (not a typedef / macro mapped onto int)


Oh I was too quick to assume that. As per coding-style.rst,


  Also, don't assume that a conversion to ``bool`` or ``_Bool`` follows C99
  semantics, i.e. use ``(bool) (some_value != 0)`` rather than
  ``(bool) some_value``. The latter might produce unexpected results on non-C99   environments. For example, if ``bool`` is implemented as a typedef of char
  and ``some_value = 0x10000000``.


So we cannot rely on _Bool being a proper C99 boolean, and then your suggestion becomes extremely important just from safety perspective! Honestly, using booleans *without* C99 semantics is quite dangerous, so I'm surprised they are used at all.


TIL. I will push v8 in an hour.


Ihar

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to