xref: /llvm-project/clang/test/CXX/class.access/class.friend/p2-cxx03.cpp (revision 542f04cc4d53cf3effd96a633205adbb022dc245)
13b4abb67SDouglas Gregor // RUN: %clang_cc1 -fsyntax-only -verify %s
2*542f04ccSCharles Li // RUN: %clang_cc1 -fsyntax-only -verify -std=c++98 %s
3*542f04ccSCharles Li // RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s
43b4abb67SDouglas Gregor template<typename T>
53b4abb67SDouglas Gregor class X0 {
6*542f04ccSCharles Li   friend T;
7*542f04ccSCharles Li #if __cplusplus <= 199711L // C++03 or earlier modes
8*542f04ccSCharles Li   // expected-warning@-2{{non-class friend type 'T' is a C++11 extension}}
9*542f04ccSCharles Li #else
10*542f04ccSCharles Li   // expected-no-diagnostics
11*542f04ccSCharles Li #endif
123b4abb67SDouglas Gregor };
133b4abb67SDouglas Gregor 
143b4abb67SDouglas Gregor class X1 { };
153b4abb67SDouglas Gregor enum E1 { };
163b4abb67SDouglas Gregor X0<X1> x0a;
173b4abb67SDouglas Gregor X0<X1 *> x0b;
183b4abb67SDouglas Gregor X0<int> x0c;
193b4abb67SDouglas Gregor X0<E1> x0d;
203b4abb67SDouglas Gregor 
21