rtti.c (build_dynamic_cast): Handle template case here.
authorJason Merrill <jason@yorick.cygnus.com>
Wed, 26 Nov 1997 10:14:51 +0000 (10:14 +0000)
committerJason Merrill <jason@gcc.gnu.org>
Wed, 26 Nov 1997 10:14:51 +0000 (05:14 -0500)
* rtti.c (build_dynamic_cast): Handle template case here.
(build_dynamic_cast_1): Not here.

From-SVN: r16729

gcc/cp/ChangeLog
gcc/cp/rtti.c

index dbe470e464e9081ee681d30407d7249b6fa9d139..e81268db0322bcb60e017d907f7de08b591623ce 100644 (file)
@@ -1,5 +1,8 @@
 Wed Nov 26 01:11:24 1997  Jason Merrill  <jason@yorick.cygnus.com>
 
+       * rtti.c (build_dynamic_cast): Handle template case here.
+       (build_dynamic_cast_1): Not here.
+
        * typeck2.c (digest_init): Make copies where appropriate.
 
        * decl2.c (delete_sanity): resolve_offset_ref.
index e7b83d37726a39a1a5c8160d79c1db988c2afc4e..4940696272292288acdd0e14c45aa8e18a8494f9 100644 (file)
@@ -428,15 +428,6 @@ build_dynamic_cast_1 (type, expr)
   enum tree_code ec;
   tree dcast_fn;
 
-  if (type == error_mark_node || expr == error_mark_node)
-    return error_mark_node;
-  
-  if (processing_template_decl)
-    {
-      tree t = build_min (DYNAMIC_CAST_EXPR, type, expr);
-      return t;
-    }
-
   assert (exprtype != NULL_TREE);
   ec = TREE_CODE (exprtype);
 
@@ -647,6 +638,12 @@ tree
 build_dynamic_cast (type, expr)
      tree type, expr;
 {
+  if (type == error_mark_node || expr == error_mark_node)
+    return error_mark_node;
+  
+  if (processing_template_decl)
+    return build_min (DYNAMIC_CAST_EXPR, type, expr);
+
   return convert_from_reference (build_dynamic_cast_1 (type, expr));
 }
 \f