diff options
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/Parser/recovery.cpp | 42 | ||||
-rw-r--r-- | clang/test/SemaCXX/class.cpp | 4 |
2 files changed, 44 insertions, 2 deletions
diff --git a/clang/test/Parser/recovery.cpp b/clang/test/Parser/recovery.cpp new file mode 100644 index 00000000000..ffa1bab55a4 --- /dev/null +++ b/clang/test/Parser/recovery.cpp @@ -0,0 +1,42 @@ +// RUN: %clang -cc1 -verify -std=c++11 %s + +8gi///===--- recovery.cpp ---===// // expected-error {{unqualified-id}} +namespace Std { // expected-note {{here}} + typedef int Important; +} + +/ redeclare as an inline namespace // expected-error {{unqualified-id}} +inline namespace Std { // expected-error {{cannot be reopened as inline}} + Important n; +} / end namespace Std // expected-error {{unqualified-id}} +int x; +Std::Important y; + +// FIXME: Recover as if the typo correction were applied. +extenr "C" { // expected-error {{did you mean 'extern'}} expected-error {{unqualified-id}} + void f(); +} +void g() { + z = 1; // expected-error {{undeclared}} + f(); // expected-error {{undeclared}} +} + +struct S { + int a, b, c; + S(); +}; +8S::S() : a{ 5 }, b{ 6 }, c{ 2 } { // expected-error {{unqualified-id}} + return; +} +int k; +int l = k; + +5int m = { l }, n = m; // expected-error {{unqualified-id}} + +namespace N { + int +} // expected-error {{unqualified-id}} + +// FIXME: Recover as if the typo correction were applied. +strcut U { // expected-error {{did you mean 'struct'}} +} *u[3]; // expected-error {{expected ';'}} diff --git a/clang/test/SemaCXX/class.cpp b/clang/test/SemaCXX/class.cpp index ec82925fe4e..4dffc8d9ecb 100644 --- a/clang/test/SemaCXX/class.cpp +++ b/clang/test/SemaCXX/class.cpp @@ -131,10 +131,10 @@ namespace pr6629 { bogus<foo<T1,T2> > // expected-error {{unknown template name 'bogus'}} \ // BOGUS expected-error {{expected '{' after base class list}} \ // BOGUS expected-error {{expected ';' after struct}} \ - // BOGUS expected-error {{expected unqualified-id}} \ + // BOGUS expected-error {{expected unqualified-id}} { }; - template<> struct foo<unknown,unknown> { // why isn't there an error here? + template<> struct foo<unknown,unknown> { // expected-error {{undeclared identifier 'unknown'}} template <typename U1, typename U2> struct bar { typedef bar type; static const int value = 0; |