The ATOMIC_VAR_INIT was deprecated in C17 (C17 7.31.8p2), largely because it is fundamentally broken. It has already been proposed to be removed from C2x (http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2390.pdf). There is no replacement for the macro because the macro is unnecessary for implementations to get initialization correct (plain assignment suffices).
This patch adds a diagnostic when expanding the ATOMIC_VAR_INIT macro that comes from stdatomic.h in all C modes. This will help users to recognize that use of this macro is strongly discouraged.
This assumes there is a local directive for the macro. There need not be (it could be imported from a module). We should presumably check to see if all active macro directives are from that header instead.