1 // { dg-do compile } 2 // { dg-options "-fno-exceptions -fgnu-tm -O -std=c++0x -fdump-tree-tmlower" } 3 4 struct TrueFalse 5 { vTrueFalse6 static constexpr bool v() { return true; } 7 }; 8 9 int global; 10 foo()11template<typename T> int foo() 12 { 13 return __transaction_atomic noexcept(T::v()) (global + 1); 14 } 15 f1()16int f1() 17 { 18 return foo<TrueFalse>(); 19 } 20 21 /* { dg-final { scan-tree-dump-times "eh_must_not_throw" 0 "tmlower" } } */ 22 /* { dg-final { scan-tree-dump-times "__transaction_atomic" 1 "tmlower" } } */ 23 /* { dg-final { cleanup-tree-dump "tmlower" } } */ 24