blob: d2282489e31e72929dc958a60c0cf5df484f3497 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
// { 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);
}
|