https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111077
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|libstdc++ |c++ --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- The calls for clearing the padding are there before eiline: ``` std::__atomic_impl::__clear_padding<main()::HasPadding> (__exp_28); _4 = (int) __is_weak_30(D); _5 = std::__atomic_impl::__clear_padding<main()::HasPadding> (__i_31(D)); _6 = VIEW_CONVERT_EXPR<unsigned int>(*_5); _7 = std::__addressof<main()::HasPadding> (__val_33(D)); retval.11_37 = __atomic_compare_exchange_4 (_7, __exp_28, _6, _4, __s_35(D), __f_16(D)); ``` Oh we are not clearing the padding of the reference ... Is this even well defined?