diff options
| -rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/cp/cvt.c | 5 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index be8d705..f9a710d 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,11 @@ 2004-02-23 Giovanni Bajo <giovannibajo@gcc.gnu.org> + PR c++/14250 + * cvt.c (build_expr_type_conversion): Type must be complete before + looking up for conversions. + +2004-02-23 Giovanni Bajo <giovannibajo@gcc.gnu.org> + PR c++/14143 * name-lookup.c (arg_assoc_class): Don't look into template arguments if it is not a primary template. diff --git a/gcc/cp/cvt.c b/gcc/cp/cvt.c index 097daf9..ada5888 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)) |
