...
Note the comment declaring the macro unsafe as a warning for programmers. Alternatively, the macro could can be renamed ABS_UNSAFE() to make it painfully apparent that the macro is unsafe. However, a preferable, compliant solution is to declare ABS() as an inline function (see PRE00-A. Prefer inline or static functions to function-like macros).
...