1 /* { dg-do compile } */
2 /* { dg-options "-Wstrict-aliasing=2 -O2" } */
3 
4 double x;
5 
6 template <typename T>
foo(void)7 T *foo(void)
8 {
9   return (T *)&x; /* { dg-warning "strict-aliasing" } */
10 }
11 
12 template int *foo<int>(void); /* { dg-message "required from here" } */
13 template char *foo<char>(void); /* { dg-bogus "required from here" } */
14 
15