Don't use the implicit int rule for error recovery in C++. Instead, try to
disambiguate whether the type name was forgotten or mistyped.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156854 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/Parser/cxx-undeclared-identifier.cpp b/test/Parser/cxx-undeclared-identifier.cpp
index f15deab..6ea2965 100644
--- a/test/Parser/cxx-undeclared-identifier.cpp
+++ b/test/Parser/cxx-undeclared-identifier.cpp
@@ -1,5 +1,17 @@
// RUN: %clang_cc1 -fsyntax-only -pedantic -verify %s
+namespace ImplicitInt {
+ static a(4); // expected-error {{requires a type specifier}}
+ b(int n); // expected-error {{requires a type specifier}}
+ c (*p)[]; // expected-error {{unknown type name 'c'}}
+ itn f(char *p, *q); // expected-error {{unknown type name 'itn'}} expected-error {{requires a type specifier}}
+
+ struct S {
+ void f();
+ };
+ S::f() {} // expected-error {{requires a type specifier}}
+}
+
// PR7180
int f(a::b::c); // expected-error {{use of undeclared identifier 'a'}}