// RUN: %clang_cc1 %s -verify -fopenacc template void Func() { #pragma acc parallel typename T::type I; //#ILOC #pragma acc serial typename T::type IS; //#ILOCSERIAL #pragma acc kernels typename T::type IK; //#ILOCKERNELS } struct S { using type = int; }; void use() { Func(); // expected-error@#ILOC{{type 'int' cannot be used prior to '::' because it has no members}} // expected-note@+3{{in instantiation of function template specialization 'Func' requested here}} // expected-error@#ILOCSERIAL{{type 'int' cannot be used prior to '::' because it has no members}} // expected-error@#ILOCKERNELS{{type 'int' cannot be used prior to '::' because it has no members}} Func(); }