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