...
However, the C Standard enumerates specific exceptions in which the behavior of accessing an object or function expanded to be a standard library macro definition is undefined. The macros are assert, errno, math_errhandling, setjmp, va_arg, va_copy, va_end, and va_start. These cases are described by undefined behaviors 109 138, 113 139, 122 140, 124 141, and 138 143. Programmers must not suppress these macros to access the underlying object or function.
...