diff options
author | Chris Lattner <sabre@nondot.org> | 2009-06-26 04:45:06 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-06-26 04:45:06 +0000 |
commit | b78d833b12f7c4baab138f305f72efd49455a3f9 (patch) | |
tree | f4ef18bdef1fd8f9d448bfa4f554fc37b48bd0d7 /test/SemaCXX/nested-name-spec.cpp | |
parent | c8e27cc402043ec86c1698c09e4ee9e415b16207 (diff) |
Improve error recovery in C++: when we hit 'implicit int' cases in C++,
these are usually because the parser was thoroughly confused. In addition
to typing the value being declared as an int and hoping for the best, we
mark the value as invalid so we don't get chains of errors when it is
used downstream. In C, implicit int actually is valid, so typing the thing
as int is good and marking it invalid is bad. :)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74266 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/SemaCXX/nested-name-spec.cpp')
-rw-r--r-- | test/SemaCXX/nested-name-spec.cpp | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/test/SemaCXX/nested-name-spec.cpp b/test/SemaCXX/nested-name-spec.cpp index c3e4eb18e2..8fff8a2b2c 100644 --- a/test/SemaCXX/nested-name-spec.cpp +++ b/test/SemaCXX/nested-name-spec.cpp @@ -189,8 +189,7 @@ class foo { foo<somens:a> a2; // expected-error {{unexpected namespace name 'somens': expected expression}} \ expected-error {{C++ requires a type specifier for all declarations}} -// FIXME: This is bogus, there is no int here! -somens::a a3 = a2; // expected-error {{cannot initialize 'a3' with an lvalue of type 'int'}} +somens::a a3 = a2; |