// PR c++/78890 // { dg-do compile { target c++11 } } template <typename T> int foo () { union { int a; int &b = a; // { dg-error "may not have reference type" } }; a = 1; auto c = b + 1; return c; } template <typename T> T bar () { union { T a; T &b = a; // { dg-error "may not have reference type" } }; a = 1; auto c = b + 1; return c; } template <typename T, typename U> T baz() { union { T a; U b = a; // { dg-error "may not have reference type" } }; a = 1; auto c = b + 1; return c; } int a = foo<int> (); int b = bar<int> (); int c = baz<int, int &> ();