1 // PR debug/83084
2 // { dg-do compile }
3 // { dg-options "-O2 -fcompare-debug -Wno-return-type" }
4 
5 enum E { F };
6 template <E = F> struct A {
7   bool foo ();
8   int b;
9 };
foo()10 template <> bool A<>::foo () {
11   int a;
12   do
13     if (a)
14       return false;
15   while (__atomic_compare_exchange_n (&b, &a, 0, 1, 4, 0));
16 }
17