// { dg-do assemble { target { { i?86-*-* x86_64-*-* } && fpic } } } // { dg-options "-mx32 -fPIC" } // { dg-require-ifunc "" } // { dg-require-effective-target maybe_x32 } void __throw_runtime_error(const char*) __attribute__((__noreturn__)); unsigned int __attribute__ ((target("rdrnd"))) __x86_rdrand(void) { unsigned int retries = 100; unsigned int val; while (__builtin_ia32_rdrand32_step(&val) == 0) if (--retries == 0) __throw_runtime_error(("random_device::__x86_rdrand(void)")); return val; }