diff options
author | Jeffrey Yasskin <jyasskin@google.com> | 2010-04-08 16:38:48 +0000 |
---|---|---|
committer | Jeffrey Yasskin <jyasskin@google.com> | 2010-04-08 16:38:48 +0000 |
commit | c76498d4095874895ae91dd404264f10549d94d8 (patch) | |
tree | b27b23c632ccf8497a20d2935d7ea14dafa2448d /clang/test/SemaCXX/nested-name-spec.cpp | |
parent | af2a317e05a94b7277114dfef90446a5b1f91b56 (diff) | |
download | bcm5719-llvm-c76498d4095874895ae91dd404264f10549d94d8.tar.gz bcm5719-llvm-c76498d4095874895ae91dd404264f10549d94d8.zip |
Make CXXScopeSpec invalid when incomplete, and propagate that into any
Declarator that depends on it. This fixes several redundant errors and bad
recoveries.
llvm-svn: 100779
Diffstat (limited to 'clang/test/SemaCXX/nested-name-spec.cpp')
-rw-r--r-- | clang/test/SemaCXX/nested-name-spec.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/clang/test/SemaCXX/nested-name-spec.cpp b/clang/test/SemaCXX/nested-name-spec.cpp index c6b11cfefe5..cff04ab17a0 100644 --- a/clang/test/SemaCXX/nested-name-spec.cpp +++ b/clang/test/SemaCXX/nested-name-spec.cpp @@ -165,8 +165,7 @@ void ::global_func2(int) { } // expected-error{{definition or redeclaration of ' void N::f() { } // okay struct Y; // expected-note{{forward declaration of 'Y'}} -Y::foo y; // expected-error{{incomplete type 'Y' named in nested name specifier}} \ - // expected-error{{no type named 'foo' in}} +Y::foo y; // expected-error{{incomplete type 'Y' named in nested name specifier}} X::X() : a(5) { } // expected-error{{use of undeclared identifier 'X'}} \ // expected-error{{C++ requires a type specifier for all declarations}} \ @@ -224,9 +223,8 @@ namespace test2 { // PR6259, invalid case namespace test3 { - // FIXME: this should really only trigger once - class A; // expected-note 2 {{forward declaration}} + class A; // expected-note {{forward declaration}} void foo(const char *path) { - A::execute(path); // expected-error 2 {{incomplete type 'test3::A' named in nested name specifier}} + A::execute(path); // expected-error {{incomplete type 'test3::A' named in nested name specifier}} } } |