This is sort of a followup to D37310; that basically fixed the same issue, but then the libstdc++ implementation of <atomic> changed. Re-fix the the issue in essentially the same way: look through the addressof operation to find the alignment of the underlying object.
Fixes https://github.com/llvm/llvm-project/issues/54963 . Alternative to D123642.