summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/abi/abi-tag14.C
blob: 3017f492cda9e7ec1f8e6baf7086f7d4d90152da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// { dg-options "-Wabi-tag" }

inline namespace __cxx11 __attribute ((abi_tag ("cxx11"))) {
  struct A {};
};

// { dg-final { scan-assembler "_Z1aB5cxx11" } }
A a;				// { dg-warning "\"cxx11\"" }

// { dg-final { scan-assembler "_Z1fB5cxx11v" } }
A f() { return a; }		// { dg-warning "\"cxx11\"" }

namespace {
  A a2;
  A f2() { return a2; }
  struct B: A {};
}

// { dg-final { scan-assembler "_Z1fPN7__cxx111AE" } }
A f(A*) { return a; }

// { dg-final { scan-assembler "_Z1gIN7__cxx111AEET_v" } }
template <class T> T g() { }
template <> A g<A>() { return a; }

// { dg-final { scan-assembler "_Z1vIN7__cxx111AEE" { target c++14 } } }
#if __cplusplus >= 201402L
template <class T> T v = T();
void *p = &v<A>;
#endif