https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122667
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
you could use `pragma GCC poison` but that is a lot stronger than `pragma clang
deprecated` .
ATOMIC_VAR_INIT was deprecated in C17 also (and already removed in C23) and GCC
didn't deprecate the macro in stdatomic.h and does not define it for C23:
#if !(defined __STDC_VERSION__ && __STDC_VERSION__ > 201710L)
#define ATOMIC_VAR_INIT(VALUE) (VALUE)
#endif
I am not even sure it is that important to deprecate it either.
You can also get the same effect with:
```
[[deprecated("ATOMIC_VAR_INIT is depercated in C++20")]] constexpr void
atomic_var_init_depercated(void){}
#define ATOMIC_VAR_INIT(VALUE) (atomic_var_init_depercated(), (VALUE))
int t = ATOMIC_VAR_INIT(0);
```
Since it is only depercated in C++20 the above should always work.
So I am not sure the pragma is needed right away.