1 // PR c++/78890
2 // { dg-do compile { target c++11 } }
3 
4 template <typename T>
5 int
foo()6 foo ()
7 {
8   union {
9     int a;
10     int &b = a;			// { dg-error "may not have reference type" }
11   };
12   a = 1;
13   auto c = b + 1;
14   return c;
15 }
16 
17 template <typename T>
18 T
bar()19 bar ()
20 {
21   union {
22     T a;
23     T &b = a;			// { dg-error "may not have reference type" }
24   };
25   a = 1;
26   auto c = b + 1;
27   return c;
28 }
29 
30 template <typename T, typename U>
baz()31 T baz()
32 {
33   union {
34     T a;
35     U b = a;			// { dg-error "may not have reference type" }
36   };
37   a = 1;
38   auto c = b + 1;
39   return c;
40 }
41 
42 int a = foo<int> ();
43 int b = bar<int> ();
44 int c = baz<int, int &> ();
45