1 // Contributed by Dodji Seketeli <dodji@redhat.com> 2 // Origin PR debug/30161 3 // { dg-options "-gdwarf-2 -dA -fno-merge-debug-strings" } 4 // { dg-final { scan-assembler-times "DW_TAG_GNU_template_template_param" 2 } } 5 // { dg-final { scan-assembler-times "\"vector.0\".*?DW_AT_GNU_template_name" 1 } } 6 // { dg-final { scan-assembler-times ".ascii \"U.0\".*?DW_AT_name" 1 { xfail { powerpc-ibm-aix* } } } } 7 8 template <class T> 9 struct vector_base 10 { 11 get_sizeof_tvector_base12 static int get_sizeof_t() 13 { 14 return 0; 15 } 16 }; 17 18 template <class T> 19 struct vector : public vector_base<T> 20 { get_sizeof_tvector21 static int get_sizeof_t() 22 { 23 return sizeof (T); 24 } 25 T member1; 26 T member2; 27 }; 28 29 template <template <class T> class U> 30 int bar()31bar() 32 { 33 return U<int>::get_sizeof_t(); 34 } 35 36 int i = bar<vector>(); 37 38 39