10d396896998685809bda7444d772bbeb5bbe9b46Argyrios Kyrtzidis// Test this without pch.
2762bb9d0ad20320b9f97a841dce57ba5e8e48b07Richard Smith// RUN: %clang_cc1 -include %s -verify -std=c++11 %s
30d396896998685809bda7444d772bbeb5bbe9b46Argyrios Kyrtzidis
40d396896998685809bda7444d772bbeb5bbe9b46Argyrios Kyrtzidis// Test with pch.
5762bb9d0ad20320b9f97a841dce57ba5e8e48b07Richard Smith// RUN: %clang_cc1 -std=c++11 -emit-pch -o %t %s
6762bb9d0ad20320b9f97a841dce57ba5e8e48b07Richard Smith// RUN: %clang_cc1 -include-pch %t -verify -std=c++11 %s
70d396896998685809bda7444d772bbeb5bbe9b46Argyrios Kyrtzidis
836615b818637e0e378ff9faa9561fe025ae3c9bfArgyrios Kyrtzidis#ifndef HEADER
936615b818637e0e378ff9faa9561fe025ae3c9bfArgyrios Kyrtzidis#define HEADER
1036615b818637e0e378ff9faa9561fe025ae3c9bfArgyrios Kyrtzidis
1136615b818637e0e378ff9faa9561fe025ae3c9bfArgyrios Kyrtzidistemplate<int N> struct T {
1278541c433049322b27b4f437973076ba29cff709Jordan Rose    static_assert(N == 2, "N is not 2!");
1336615b818637e0e378ff9faa9561fe025ae3c9bfArgyrios Kyrtzidis};
1436615b818637e0e378ff9faa9561fe025ae3c9bfArgyrios Kyrtzidis
1536615b818637e0e378ff9faa9561fe025ae3c9bfArgyrios Kyrtzidis#else
160d396896998685809bda7444d772bbeb5bbe9b46Argyrios Kyrtzidis
1778541c433049322b27b4f437973076ba29cff709Jordan Rose// expected-error@12 {{static_assert failed "N is not 2!"}}
180d396896998685809bda7444d772bbeb5bbe9b46Argyrios KyrtzidisT<1> t1; // expected-note {{in instantiation of template class 'T<1>' requested here}}
190d396896998685809bda7444d772bbeb5bbe9b46Argyrios KyrtzidisT<2> t2;
2036615b818637e0e378ff9faa9561fe025ae3c9bfArgyrios Kyrtzidis
2136615b818637e0e378ff9faa9561fe025ae3c9bfArgyrios Kyrtzidis#endif
22