| // Without comdat support, we don't see the body of the |
| // extern template class constructor, so limit this to |
| // known comdat targets. |
| // { dg-do compile { target comdat_group } } |
| // { dg-options "-fgnu-tm" } |
| |
| template<typename _Tp> class allocator |
| { |
| public: |
| allocator() { } |
| }; |
| extern template class allocator<char>; |
| |
| template<typename _Alloc = allocator<char> > class basic_string |
| { |
| public: |
| _Alloc _M_dataplus; |
| |
| __attribute__((transaction_safe)) |
| basic_string() : _M_dataplus(_Alloc()) |
| { |
| } |
| }; |
| |
| int getStringHeight() |
| { |
| basic_string<> tmp; |
| return 0; |
| } |