aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Merrill <jason@yorick.cygnus.com>1997-11-26 10:14:51 +0000
committerJason Merrill <jason@gcc.gnu.org>1997-11-26 05:14:51 -0500
commit328d03d794d696d3cf6295728d0227842549cd65 (patch)
treefb0f11f83e95a9d461ae40db842fe8d3d8c797c4
parent19754d4cf629426a7fed01c0e0a53b89bf994c35 (diff)
downloadgcc-328d03d794d696d3cf6295728d0227842549cd65.zip
gcc-328d03d794d696d3cf6295728d0227842549cd65.tar.gz
gcc-328d03d794d696d3cf6295728d0227842549cd65.tar.bz2
rtti.c (build_dynamic_cast): Handle template case here.
* rtti.c (build_dynamic_cast): Handle template case here. (build_dynamic_cast_1): Not here. From-SVN: r16729
-rw-r--r--gcc/cp/ChangeLog3
-rw-r--r--gcc/cp/rtti.c15
2 files changed, 9 insertions, 9 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index dbe470e..e81268d 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -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.
diff --git a/gcc/cp/rtti.c b/gcc/cp/rtti.c
index e7b83d3..4940696 100644
--- a/gcc/cp/rtti.c
+++ b/gcc/cp/rtti.c
@@ -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));
}