]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR c++/14250 (switch() does not seem to see operator int() in template class)
authorGiovanni Bajo <giovannibajo@gcc.gnu.org>
Mon, 23 Feb 2004 12:40:59 +0000 (12:40 +0000)
committerGiovanni Bajo <giovannibajo@gcc.gnu.org>
Mon, 23 Feb 2004 12:40:59 +0000 (12:40 +0000)
PR c++/14250
* cvt.c (build_expr_type_conversion): Type must be complete before
looking up for conversions.

From-SVN: r78293

gcc/cp/ChangeLog
gcc/cp/cvt.c

index be8d7054e1fec4099f1dc0ada601eb69132423ba..f9a710dd17accd392ca5c6162f5304f44a37415c 100644 (file)
@@ -1,3 +1,9 @@
+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
index 097daf9017ab4bb6929beebb13fa1921886b6423..ada58888178ffd7c59b6f1ea3a6051578fdca978 100644 (file)
@@ -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))