13573b2c84372d9484296fa658f5276f6c09acb92Daniel Dunbar// RUN: %clang_cc1 -fsyntax-only -verify %s
22ae1d770afc17f52a4434b492cf6ea685a724092Douglas Gregor
32ae1d770afc17f52a4434b492cf6ea685a724092Douglas Gregortemplate<typename T> typedef T X; // expected-error{{typedef cannot be a template}}
4befd3eac9dd217a76f139bddc714f35e26688467Douglas Gregor
5befd3eac9dd217a76f139bddc714f35e26688467Douglas Gregortemplate<typename T>
6befd3eac9dd217a76f139bddc714f35e26688467Douglas Gregorenum t0 { A = T::x }; // expected-error{{enumeration cannot be a template}} \
770215ec6c46b8d5a701be9ce33e5a11d91d82d0eDouglas Gregor                      // expected-warning{{declaration does not declare anything}}
8befd3eac9dd217a76f139bddc714f35e26688467Douglas Gregor
901180a6381cdab52da3c9d4dbd90d7595fbc0f10Douglas Gregorenum e0 {};
1001180a6381cdab52da3c9d4dbd90d7595fbc0f10Douglas Gregortemplate<int x> enum e0 f0(int a=x) {}
11