https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70889

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Testcase:

#include <atomic>
#include <iostream>

std::atomic<std::size_t> seq_;
std::size_t value;

auto load()
{
    std::size_t copy;
    std::size_t seq0;
    do
    {
        seq0 = seq_.load();
        if (!seq0) continue;
        copy = value;
        seq0 = seq_.load();
    } while (!seq0);

    return copy;
}

Reply via email to