1// { dg-do run { target i?86-*-* x86_64-*-* } } 2// { dg-options "-std=c++11 -Os" } 3 4enum class X : unsigned char { 5 V = 2, 6}; 7 8static void 9__attribute__((noinline,noclone)) 10foo(unsigned &out, unsigned a, X b) 11{ 12 out = static_cast<unsigned>(b); 13} 14 15int main() 16{ 17 unsigned deadbeef = 0xDEADBEEF; 18 asm volatile ("" : "+d" (deadbeef), "+c" (deadbeef)); 19 20 unsigned out; 21 foo(out, 2, X::V); 22 23 if (out != 2) 24 __builtin_abort (); 25 26 return 0; 27} 28