1 /* { dg-do compile } */ 2 /* { dg-options "-Wstrict-aliasing=2 -O2" } */ 3 4 double x; 5 6 template <typename T> foo(void)7T *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