We may need to instantiate a class template specialization as part of a derived-to-base pointer case

llvm-svn: 85532
diff --git a/clang/test/SemaTemplate/instantiate-cast.cpp b/clang/test/SemaTemplate/instantiate-cast.cpp
index 6b3fc6e..c3c318f 100644
--- a/clang/test/SemaTemplate/instantiate-cast.cpp
+++ b/clang/test/SemaTemplate/instantiate-cast.cpp
@@ -96,7 +96,6 @@
 template struct FunctionalCast1<int, float>;
 template struct FunctionalCast1<A, int>; // expected-note{{instantiation}}
 
-#if 0
 // Generates temporaries, which we cannot handle yet.
 template<int N, long M>
 struct FunctionalCast2 {
@@ -106,4 +105,13 @@
 };
 
 template struct FunctionalCast2<1, 3>;
-#endif
+
+// ---------------------------------------------------------------------
+// implicit casting
+// ---------------------------------------------------------------------
+template<typename T>
+struct Derived2 : public Base { };
+
+void test_derived_to_base(Base *&bp, Derived2<int> *dp) {
+  bp = dp;
+}