1a5728872c7702ddd09537c95bc3cbd20e1f2fb09Daniel Dunbar// RUN: %clang_cc1 -fsyntax-only -verify %s 2dd4a3b0065b9a7e7b00073df415a798886c090f3John McCall 3dd4a3b0065b9a7e7b00073df415a798886c090f3John McCalltemplate <class T> class A { 4dd4a3b0065b9a7e7b00073df415a798886c090f3John McCall typedef int Member; 5dd4a3b0065b9a7e7b00073df415a798886c090f3John McCall}; 6dd4a3b0065b9a7e7b00073df415a798886c090f3John McCall 7dd4a3b0065b9a7e7b00073df415a798886c090f3John McCallclass B { 8dd4a3b0065b9a7e7b00073df415a798886c090f3John McCall template <class T> friend class A; 9dd4a3b0065b9a7e7b00073df415a798886c090f3John McCall template <class T> friend class Undeclared; 10d85bea2affdd59d83d1be7d24b97f436484c3625Douglas Gregor 110f4be74ff0273e505d383f89174ef539828424edChandler Carruth template <class T> friend typename A<T>::Member; // expected-error {{friend type templates must use an elaborated type}} 12dd4a3b0065b9a7e7b00073df415a798886c090f3John McCall}; 13