aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/abi/abi-tag18a.C
blob: c6fb1607a418c1c8eb526365b33a42b19d09bacf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// { dg-skip-if "PR 70349" { hppa*-*-hpux* && { ! lp64 } } }
// { dg-options "-fabi-version=9 -fno-implicit-constexpr" }
// { dg-final { scan-assembler "_Z1fB7__test1v" } }
// { dg-final { scan-assembler "_ZZ1fB7__test1vEN1T1gB7__test2Ev" } }
// { dg-final { scan-assembler "_ZZZ1fB7__test1vEN1T1gEvE1x" } }
// { dg-final { scan-assembler "_ZGVZZ1fvEN1T1gEvE1x" } }

struct X { ~X(); };
inline namespace __test1 __attribute__((abi_tag)) { struct A1 { }; }
inline namespace __test2 __attribute__((abi_tag)) { struct A2 { }; }
inline A1 f() {
  struct T {
    A2 g() {
      static X x;
      return A2();
    }
  };
  T().g();
  return A1();
}
int main() {
  f();
}