From: Giovanni Bajo Date: Mon, 23 Feb 2004 12:40:59 +0000 (+0000) Subject: re PR c++/14250 (switch() does not seem to see operator int() in template class) X-Git-Tag: releases/gcc-4.0.0~9925 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=29f4ceab97334d8e361a103dae4254766414acf5;p=thirdparty%2Fgcc.git re PR c++/14250 (switch() does not seem to see operator int() in template class) PR c++/14250 * cvt.c (build_expr_type_conversion): Type must be complete before looking up for conversions. From-SVN: r78293 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index be8d7054e1fe..f9a710dd17ac 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2004-02-23 Giovanni Bajo + + PR c++/14250 + * cvt.c (build_expr_type_conversion): Type must be complete before + looking up for conversions. + 2004-02-23 Giovanni Bajo PR c++/14143 diff --git a/gcc/cp/cvt.c b/gcc/cp/cvt.c index 097daf9017ab..ada58888178f 100644 --- a/gcc/cp/cvt.c +++ b/gcc/cp/cvt.c @@ -1034,8 +1034,9 @@ build_expr_type_conversion (int desires, tree expr, bool complain) /* The code for conversions from class type is currently only used for delete expressions. Other expressions are handled by build_new_op. */ - - if (! TYPE_HAS_CONVERSION (basetype)) + if (!complete_type_or_else (basetype, expr)) + return error_mark_node; + if (!TYPE_HAS_CONVERSION (basetype)) return NULL_TREE; for (conv = lookup_conversions (basetype); conv; conv = TREE_CHAIN (conv))