diff options
author | Jason Merrill <jason@yorick.cygnus.com> | 1997-11-26 10:14:51 +0000 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 1997-11-26 05:14:51 -0500 |
commit | 328d03d794d696d3cf6295728d0227842549cd65 (patch) | |
tree | fb0f11f83e95a9d461ae40db842fe8d3d8c797c4 | |
parent | 19754d4cf629426a7fed01c0e0a53b89bf994c35 (diff) | |
download | gcc-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/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/cp/rtti.c | 15 |
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)); } |