1 // { dg-do compile { target c++11 } } 2 // { dg-options "-g" } 3 // Origin: <jan at etpmod dot phys dot tue dot nl> 4 // PR c++/19508: avoid attributes for template parameters 5 6 template <typename T> 7 struct BVector 8 { 9 typedef T T2; 10 typedef T value_type [[gnu::aligned(8)]]; // { dg-bogus "attribute" "attribute" } 11 typedef T2 value_type2 [[gnu::aligned(8)]]; // { dg-bogus "attribute" "attribute" } 12 value_type v; 13 }; 14 BVector<int> m; 15 16 template <template <class> class T> 17 struct BV2 18 { 19 typedef T<float> value_type [[gnu::aligned(8)]]; // { dg-bogus "attribute" "attribute" } 20 value_type v; 21 }; 22 BV2<BVector> m2; 23