https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97311
--- Comment #3 from Kristian Spangsege <kristian.spangsege at gmail dot com> --- I would recommend not locking arithmetic to std::uint32_t, and instead working with std::uint_fast32_t, because I can imaging a platform (current or future) where 32-bit arithmetic is slower that 64-bit arithmetic. As a bonus, the code will work on platforms that do not have std::uint32_t.