1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
// { dg-do assemble } template <class T1, class T2> struct pair { T1 first; T2 second; pair(const T1& a, const T2& b) : first(a), second(b) {} }; struct myint { myint() { } myint(const myint& mi) { } myint& operator=(const myint& mi) { return *this; } }; extern pair<const myint, myint> a; pair<const myint, myint> b(a);