// RUN: %clang_cc1 -fsyntax-only -verify %s // RUN: %clang_cc1 -fsyntax-only -verify -std=c++98 %s // RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s template<typename T> class X0 { friend T; #if __cplusplus <= 199711L // C++03 or earlier modes // expected-warning@-2{{non-class friend type 'T' is a C++11 extension}} #else // expected-no-diagnostics #endif }; class X1 { }; enum E1 { }; X0<X1> x0a; X0<X1 *> x0b; X0<int> x0c; X0<E1> x0d;