aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/ext/attribute-may-alias-3.C
blob: ba6091b6d722d79589fd3ddbc0389262428b941a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 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;
}