Richard Smith | 3e4c6c4 | 2011-05-05 21:57:07 +0000 | [diff] [blame] | 1 | // Test this without pch. |
Richard Smith | 762bb9d | 2011-10-13 22:29:44 +0000 | [diff] [blame] | 2 | // RUN: %clang_cc1 -x c++ -std=c++11 -include %S/cxx-alias-decl.h -fsyntax-only -emit-llvm -o - %s |
Richard Smith | 3e4c6c4 | 2011-05-05 21:57:07 +0000 | [diff] [blame] | 3 | |
| 4 | // Test with pch. |
Richard Smith | 762bb9d | 2011-10-13 22:29:44 +0000 | [diff] [blame] | 5 | // RUN: %clang_cc1 -x c++ -std=c++11 -emit-pch -o %t %S/cxx-alias-decl.h |
| 6 | // RUN: %clang_cc1 -x c++ -std=c++11 -include-pch %t -fsyntax-only -emit-llvm -o - %s |
Richard Smith | 3e4c6c4 | 2011-05-05 21:57:07 +0000 | [diff] [blame] | 7 | |
| 8 | template struct T<S>; |
| 9 | C<A>::A<char> a; |
| 10 | |
| 11 | using T1 = decltype(a); |
| 12 | using T1 = D<int, char>; |
| 13 | |
| 14 | using T2 = B<A>; |
| 15 | using T2 = S; |
| 16 | |
| 17 | using A = int; |
| 18 | template<typename U> using B = S; |
| 19 | template<typename U> using C = T<U>; |
| 20 | template<typename U, typename V> using D = typename T<U>::template A<V>; |