1// { dg-do assemble  }
2
3union Un {int i;};
4
5template<class T1, class T2> struct St1 {};
6template<class T> struct St1<Un,T> {};
7
8template<class T> struct St2 {};
9template<> struct St2<Un> {};
10
11template<class T1, class T2> struct St3 {};
12template<> struct St3<Un,int> {};
13
14void f() {
15  St1<int,int> s1;
16  St2<int>     s2;
17  St3<int,int> s3;
18}
19