// { dg-do compile } // { dg-options "-fgnu-tm -O1" } template class shared_ptr { public: shared_ptr() { __asm__ (""); } }; template class deque { public: void push_back() { ::new _Tp(); } }; class Bar { __attribute__((transaction_callable)) void push(); deque > events; }; void Bar::push() { events.push_back(); }