| // { dg-do compile } |
| // { dg-options "-fgnu-tm -O3" } |
| // { dg-additional-options "-Wno-return-type" } |
| |
| template<typename _InputIterator, typename _Distance> inline void advance(_InputIterator& __i, _Distance __n) |
| { |
| if (__n > 0) |
| while (__n--) |
| --__i; |
| else |
| --__i; |
| } |
| |
| void _Rb_tree_increment (); |
| |
| template<typename _Tp> struct _Rb_tree_iterator |
| { |
| typedef _Rb_tree_iterator<_Tp> iterator; |
| |
| iterator& operator--() |
| { |
| _Rb_tree_increment(); |
| } |
| }; |
| |
| void update () |
| { |
| _Rb_tree_iterator<int>::iterator it; |
| __transaction_relaxed |
| { |
| advance (it, 0); |
| } |
| } |
| |