annotate gcc/testsuite/g++.dg/ext/is_final.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // PR c++/51365
kono
parents:
diff changeset
2 // { dg-do compile { target c++11 } }
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 struct A { };
kono
parents:
diff changeset
5 static_assert( ! __is_final (A), "A not final" );
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 struct Af final { };
kono
parents:
diff changeset
8 static_assert( __is_final (Af), "Af is final" );
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 class B { };
kono
parents:
diff changeset
11 static_assert( ! __is_final (B), "B not final" );
kono
parents:
diff changeset
12
kono
parents:
diff changeset
13 class Bf final { };
kono
parents:
diff changeset
14 static_assert( __is_final (Bf), "Bf is final" );
kono
parents:
diff changeset
15
kono
parents:
diff changeset
16 struct C : private A, private B { };
kono
parents:
diff changeset
17 static_assert( ! __is_final (C), "C not final" );
kono
parents:
diff changeset
18
kono
parents:
diff changeset
19 struct Cf final : private A, private B { };
kono
parents:
diff changeset
20 static_assert( __is_final (Cf), "Cf is final" );
kono
parents:
diff changeset
21
kono
parents:
diff changeset
22 struct D { virtual ~D() final { } };
kono
parents:
diff changeset
23 static_assert( ! __is_final (D), "D not final" );
kono
parents:
diff changeset
24
kono
parents:
diff changeset
25 struct Df final { virtual ~Df() final { } };
kono
parents:
diff changeset
26 static_assert( __is_final (Df), "Df is final" );
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 template<typename> struct E { };
kono
parents:
diff changeset
29 static_assert( ! __is_final (E<int>), "E<int> not final" );
kono
parents:
diff changeset
30 static_assert( ! __is_final (E<Af>), "E<Af> not final" );
kono
parents:
diff changeset
31
kono
parents:
diff changeset
32 template<typename> struct Ef final { };
kono
parents:
diff changeset
33 static_assert( __is_final (Ef<int>), "Ef<int> is final" );
kono
parents:
diff changeset
34 static_assert( __is_final (Ef<A>), "Ef<A> is final" );
kono
parents:
diff changeset
35 static_assert( __is_final (Ef<Af>), "Ef<Af> is final" );
kono
parents:
diff changeset
36
kono
parents:
diff changeset
37 template<typename> struct F { virtual ~F() final { }; };
kono
parents:
diff changeset
38 static_assert( ! __is_final (F<int>), "F<int> not final" );
kono
parents:
diff changeset
39 static_assert( ! __is_final (F<Af>), "F<Af> not final" );
kono
parents:
diff changeset
40
kono
parents:
diff changeset
41 template<typename> struct Ff final { virtual ~Ff() final { }; };
kono
parents:
diff changeset
42 static_assert( __is_final (Ff<int>), "Ff<int> is final" );
kono
parents:
diff changeset
43 static_assert( __is_final (Ff<A>), "Ff<A> is final" );
kono
parents:
diff changeset
44 static_assert( __is_final (Ff<Af>), "Ff<Af> is final" );
kono
parents:
diff changeset
45