annotate clang/test/Modules/Inputs/merge-using-decls/b.h @ 266:00f31e85ec16 default tip

Added tag current for changeset 31d058e83c98
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 14 Oct 2023 10:13:55 +0900
parents 5f17cb93ff66
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 struct X {
anatofuz
parents:
diff changeset
2 int v;
anatofuz
parents:
diff changeset
3 typedef int t;
223
5f17cb93ff66 LLVM13 (2021/7/18)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
4 void f(X);
150
anatofuz
parents:
diff changeset
5 };
anatofuz
parents:
diff changeset
6
anatofuz
parents:
diff changeset
7 struct YB {
anatofuz
parents:
diff changeset
8 typedef YB Y;
anatofuz
parents:
diff changeset
9 int value;
anatofuz
parents:
diff changeset
10 typedef int type;
anatofuz
parents:
diff changeset
11 };
anatofuz
parents:
diff changeset
12
anatofuz
parents:
diff changeset
13 struct YBRev {
anatofuz
parents:
diff changeset
14 typedef int value;
anatofuz
parents:
diff changeset
15 int type;
anatofuz
parents:
diff changeset
16 };
anatofuz
parents:
diff changeset
17
223
5f17cb93ff66 LLVM13 (2021/7/18)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
18 struct Z {
5f17cb93ff66 LLVM13 (2021/7/18)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
19 void f(Z);
5f17cb93ff66 LLVM13 (2021/7/18)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
20 };
5f17cb93ff66 LLVM13 (2021/7/18)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
21
150
anatofuz
parents:
diff changeset
22 template<typename T> struct C : X, T {
anatofuz
parents:
diff changeset
23 using T::value;
anatofuz
parents:
diff changeset
24 using typename T::type;
anatofuz
parents:
diff changeset
25 using X::v;
anatofuz
parents:
diff changeset
26 using typename X::t;
anatofuz
parents:
diff changeset
27 };
anatofuz
parents:
diff changeset
28
anatofuz
parents:
diff changeset
29 template<typename T> struct D : X, T {
anatofuz
parents:
diff changeset
30 // Mismatch in type/non-type-ness.
anatofuz
parents:
diff changeset
31 using typename T::value;
anatofuz
parents:
diff changeset
32 using T::type;
anatofuz
parents:
diff changeset
33 using X::v;
anatofuz
parents:
diff changeset
34 using typename X::t;
anatofuz
parents:
diff changeset
35 };
anatofuz
parents:
diff changeset
36
anatofuz
parents:
diff changeset
37 #if __cplusplus <= 199711L // C++11 does not allow access declarations
anatofuz
parents:
diff changeset
38 template<typename T> struct E : X, T {
anatofuz
parents:
diff changeset
39 // Mismatch in using/access-declaration-ness.
anatofuz
parents:
diff changeset
40 T::value;
anatofuz
parents:
diff changeset
41 X::v;
anatofuz
parents:
diff changeset
42 };
anatofuz
parents:
diff changeset
43 #endif
anatofuz
parents:
diff changeset
44
anatofuz
parents:
diff changeset
45 template<typename T> struct F : X, T {
anatofuz
parents:
diff changeset
46 // Mismatch in nested-name-specifier.
anatofuz
parents:
diff changeset
47 using T::Y::value;
anatofuz
parents:
diff changeset
48 using typename T::Y::type;
anatofuz
parents:
diff changeset
49 using ::X::v;
anatofuz
parents:
diff changeset
50 using typename ::X::t;
anatofuz
parents:
diff changeset
51 };
anatofuz
parents:
diff changeset
52
anatofuz
parents:
diff changeset
53 // Force instantiation.
anatofuz
parents:
diff changeset
54 typedef C<YB>::type I;
anatofuz
parents:
diff changeset
55 typedef D<YBRev>::t I;
anatofuz
parents:
diff changeset
56
anatofuz
parents:
diff changeset
57 #if __cplusplus <= 199711L // C++11 does not allow access declarations
anatofuz
parents:
diff changeset
58 typedef E<YB>::type I;
anatofuz
parents:
diff changeset
59 #endif
anatofuz
parents:
diff changeset
60
anatofuz
parents:
diff changeset
61 typedef F<YB>::type I;
223
5f17cb93ff66 LLVM13 (2021/7/18)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
62
5f17cb93ff66 LLVM13 (2021/7/18)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
63 #if __cplusplus >= 201702L
5f17cb93ff66 LLVM13 (2021/7/18)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
64 template<typename ...T> struct G : T... {
5f17cb93ff66 LLVM13 (2021/7/18)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
65 using T::f...;
5f17cb93ff66 LLVM13 (2021/7/18)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
66 };
5f17cb93ff66 LLVM13 (2021/7/18)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
67 using Q = decltype(G<X, Z>());
5f17cb93ff66 LLVM13 (2021/7/18)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
68 #endif