Extend the use of QualifiedNameType to the creation of class template
specialization names. This way, we keep track of sugared types like
std::vector<Real>
I believe we are now using QualifiedNameTypes everywhere we can. Next
step: QualifiedDeclRefExprs.
llvm-svn: 67268
diff --git a/clang/test/SemaCXX/qualified-names-diag.cpp b/clang/test/SemaCXX/qualified-names-diag.cpp
index 151b924..c3bd47f 100644
--- a/clang/test/SemaCXX/qualified-names-diag.cpp
+++ b/clang/test/SemaCXX/qualified-names-diag.cpp
@@ -15,6 +15,8 @@
namespace bar {
typedef int y;
+
+ struct incomplete; // expected-note{{forward declaration of 'struct incomplete'}}
}
void test() {
foo::wibble::x a;
@@ -23,6 +25,9 @@
::foo::wibble::bar::wonka::x::y c;
c + b; // expected-error{{invalid operands to binary expression ('::foo::wibble::bar::wonka::x::y' (aka 'struct y') and '::bar::y' (aka 'int'))}}
+
+ (void)sizeof(bar::incomplete); // expected-error{{invalid application of 'sizeof' to an incomplete type 'bar::incomplete' (aka 'struct incomplete')}}
}
int ::foo::wibble::bar::wonka::x::y::* ptrmem;
+