1651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: %clang_cc1 -fsyntax-only -verify %s 2651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// Don't crash (PR18284). 3651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 4651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesnamespace n1 { 5651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesclass A { }; 6651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesclass C { A a; }; 7651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 8651f13cea278ec967336033dd032faef0e9fc2ecStephen HinesA::RunTest() {} // expected-error {{C++ requires a type specifier for all declarations}} 9651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 10651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesvoid f() { 11651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines new C; 12651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines} 13651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines} // namespace n1 14651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 15651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesnamespace n2 { 16651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesclass A { }; 17651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesclass C : public A { }; 18651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 19651f13cea278ec967336033dd032faef0e9fc2ecStephen HinesA::RunTest() {} // expected-error {{C++ requires a type specifier for all declarations}} 20651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 21651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesvoid f() { 22651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines new C; 23651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines} 24651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines} // namespace n2 25