blob: d2282489e31e72929dc958a60c0cf5df484f3497 [file] [log] [blame]
// { dg-do compile { target c++11 } }
// { dg-options "-fgnu-tm" }
// All of these must fail, because they are not constant expressions.
template<typename T> int foo(int x, T t)
{
__transaction_atomic noexcept(t) { x++; } /* { dg-error "not a constant" } */
return __transaction_atomic noexcept(t) (x+1); /* { dg-error "not a constant" } */
}
int bar(int x)
{
__transaction_atomic noexcept(x == 23) { x++; } /* { dg-error "not a constant" } */
return __transaction_atomic noexcept(x == 42) (x+1); /* { dg-error "not a constant" } */
}
int f(int x)
{
return foo<bool>(x, true);
}