Diagnose the use of incomplete types in C++ typeid expressions
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92045 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/SemaTemplate/instantiate-expr-4.cpp b/test/SemaTemplate/instantiate-expr-4.cpp
index 99bbbf7..c524e95 100644
--- a/test/SemaTemplate/instantiate-expr-4.cpp
+++ b/test/SemaTemplate/instantiate-expr-4.cpp
@@ -133,7 +133,7 @@
}
};
-struct Incomplete; // expected-note{{forward}}
+struct Incomplete; // expected-note 2{{forward}}
template struct Throw1<int>;
template struct Throw1<int*>;
@@ -143,7 +143,6 @@
// typeid expressions
// ---------------------------------------------------------------------
-// FIXME: This should really include <typeinfo>, but we don't have that yet.
namespace std {
class type_info;
}
@@ -154,7 +153,7 @@
if (ptr)
return typeid(ptr);
else
- return typeid(T);
+ return typeid(T); // expected-error{{'typeid' of incomplete type 'struct Incomplete'}}
}
};
@@ -163,7 +162,7 @@
};
template struct TypeId0<int>;
-template struct TypeId0<Incomplete>;
+template struct TypeId0<Incomplete>; // expected-note{{instantiation of member function}}
template struct TypeId0<Abstract>;
// ---------------------------------------------------------------------