1 | // RUN: rm -rf %t |
2 | // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I%S/Inputs/merge-template-members -verify -emit-llvm-only %s -DTEST=1 |
3 | // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I%S/Inputs/merge-template-members -verify -emit-llvm-only %s -DTEST=2 |
4 | // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I%S/Inputs/merge-template-members -verify -emit-llvm-only %s -DTEST=3 |
5 | // expected-no-diagnostics |
6 | |
7 | #if TEST == 1 |
8 | |
9 | template<typename> struct A { int n; }; |
10 | template<typename> struct B { typedef A<void> C; }; |
11 | template class B<int>; |
12 | |
13 | #include "update.h" |
14 | B<int>::C use2; |
15 | |
16 | #elif TEST == 2 |
17 | |
18 | #include "c.h" |
19 | N::A<int> ai; |
20 | |
21 | #elif TEST == 3 |
22 | |
23 | #include "merge.h" |
24 | |
25 | #else |
26 | #error Unknown test |
27 | #endif |
28 | |