| // Contributed by Dodji Seketeli <dodji@redhat.com> |
| // Origin PR debug/30161 |
| // { dg-options "-gdwarf-2 -dA -fno-merge-debug-strings" } |
| // { dg-final { scan-assembler-times "DW_TAG_GNU_template_template_param" 2 } } |
| // { dg-final { scan-assembler-times "\"vector.0\".*?DW_AT_GNU_template_name" 1 } } |
| // { dg-final { scan-assembler-times ".ascii \"U.0\".*?DW_AT_name" 1 { xfail { powerpc-ibm-aix* } } } } |
| |
| template <class T> |
| struct vector_base |
| { |
| |
| static int get_sizeof_t() |
| { |
| return 0; |
| } |
| }; |
| |
| template <class T> |
| struct vector : public vector_base<T> |
| { |
| static int get_sizeof_t() |
| { |
| return sizeof (T); |
| } |
| T member1; |
| T member2; |
| }; |
| |
| template <template <class T> class U> |
| int |
| bar() |
| { |
| return U<int>::get_sizeof_t(); |
| } |
| |
| int i = bar<vector>(); |
| |
| |