1 // { dg-do compile }
2 // { dg-require-effective-target lto }
3 // { dg-options "-flto -g" }
4 
5 template < typename > void *
bar(int * p)6 bar (int *p)
7 {
8   union
9     {
10       int *p;
11     }
12   u;
13   u.p = p;
14   return u.p;
15 }
16 
17 void
foo(int * p)18 foo (int *p)
19 {
20   bar < void >(p);
21 }
22