| // PR c++/68049 | |
| // { dg-do compile { target c++11 } } | |
| template <typename T> struct Bar | |
| { | |
| using type = T; | |
| }; | |
| template <typename T> struct Foo | |
| { | |
| typedef typename Bar<T>::type alias_type [[gnu::may_alias]]; | |
| alias_type operator()() { return {}; } | |
| }; | |
| template <typename T> void print(T) {} | |
| int main() | |
| { | |
| print(Foo<int>()()); | |
| print(0); | |
| return 0; | |
| } |