xref: /llvm-project/clang/test/PCH/cxx-dependent-sized-ext-vector.cpp (revision a45f713c673001abb4fe0612b909c698073eb356)
100aee437SAlex Lorenz // RUN: %clang_cc1 -std=c++11 -emit-pch %s -o %t
200aee437SAlex Lorenz // RUN: %clang_cc1 -std=c++11 -include-pch %t -verify %s
300aee437SAlex Lorenz 
4*a45f713cSLuboš Luňák // RUN: %clang_cc1 -std=c++11 -emit-pch -fpch-instantiate-templates %s -o %t
5*a45f713cSLuboš Luňák // RUN: %clang_cc1 -std=c++11 -include-pch %t -verify %s
6*a45f713cSLuboš Luňák 
700aee437SAlex Lorenz #ifndef HEADER_INCLUDED
800aee437SAlex Lorenz 
900aee437SAlex Lorenz #define HEADER_INCLUDED
1000aee437SAlex Lorenz 
1100aee437SAlex Lorenz template<typename T, int N>
1200aee437SAlex Lorenz using vec = T __attribute__((ext_vector_type(N)));
1300aee437SAlex Lorenz 
1400aee437SAlex Lorenz #else
1500aee437SAlex Lorenz 
test()1600aee437SAlex Lorenz void test() {
1700aee437SAlex Lorenz   vec<float, 2> a;  // expected-error@-5 {{zero vector size}}
1800aee437SAlex Lorenz   vec<float, 0> b; // expected-note {{in instantiation of template type alias 'vec' requested here}}
1900aee437SAlex Lorenz }
2000aee437SAlex Lorenz 
2100aee437SAlex Lorenz #endif
22