...
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 110 109, 114 113, 122, 124, and 138. Programmers must not suppress these macros to access the underlying object or function.
...