C17 deprecated ATOMIC_VAR_INIT with the resolution of DR 485. C++ followed suit when adopting P0883R2 for C++20, but additionally chose to deprecate ATOMIC_FLAG_INIT at the same time despite the macro still being required in C. This patch marks both macros as deprecated when appropriate to do so.
It does so by using #pragma clang deprecated and this patch presumes we don't have to guard those uses of the pragma with compiler or compiler version checks.
I believe libc++ will need some changes to address the deprecation as it seems it is using these macros. I'm not a libc++ maintainer and so I've added a few libc++ folks to the review so they can weigh in on whether libc++ should change first or can react to the changes in this patch. If libc++ needs to change first and you'd like me to drive those changes, I'd appreciate knowing what changes the maintainers would like to see there (I believe that removing the ATOMIC_VAR_INIT and using direct initialization would be appropriate, but I have no idea if the maintainers agree).
IIUC, <stdatomic.h> is not relevant to C++20; libc++'s <atomic> even #errors if you include both <stdatomic.h> and <atomic> in the same TU.
Defining _CLANG_DISABLE_CRT_DEPRECATION_WARNINGS won't affect the warnings in C++20; for those you need _LIBCPP_DISABLE_DEPRECATION_WARNINGS.
C++20 isn't relevant to this section on "C Language Changes in Clang"; arguably it could be listed under "C++ Language Changes in Clang," except that D115995 didn't change anything about Clang. So I think it's fine not to mention D115995 anywhere in this file.