Richard Smith | 5089542 | 2015-01-31 03:04:55 +0000 | [diff] [blame] | 1 | // RUN: rm -rf %t |
Richard Smith | 7483d20 | 2015-02-04 01:23:46 +0000 | [diff] [blame] | 2 | // RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -I%S/Inputs/merge-template-members -verify -emit-llvm-only %s -DTEST=1 |
| 3 | // RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -I%S/Inputs/merge-template-members -verify -emit-llvm-only %s -DTEST=2 |
| 4 | // RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -I%S/Inputs/merge-template-members -verify -emit-llvm-only %s -DTEST=3 |
Richard Smith | 5089542 | 2015-01-31 03:04:55 +0000 | [diff] [blame] | 5 | // expected-no-diagnostics |
| 6 | |
Richard Smith | 7483d20 | 2015-02-04 01:23:46 +0000 | [diff] [blame] | 7 | #if TEST == 1 |
Richard Smith | 2a9e5c5 | 2015-02-03 03:32:14 +0000 | [diff] [blame] | 8 | |
Richard Smith | 5089542 | 2015-01-31 03:04:55 +0000 | [diff] [blame] | 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; |
Richard Smith | 7483d20 | 2015-02-04 01:23:46 +0000 | [diff] [blame] | 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 |