call.c (implicit_conversion): Don't call build_user_type_conversion_1 with a NULL...
authorMark Mitchell <mmitchell@usa.net>
Mon, 15 Dec 1997 04:40:01 +0000 (04:40 +0000)
committerJason Merrill <jason@gcc.gnu.org>
Mon, 15 Dec 1997 04:40:01 +0000 (23:40 -0500)
* call.c (implicit_conversion): Don't call
build_user_type_conversion_1 with a NULL expr, since it will
crash.

* pt.c (unify): Don't try to unify array bounds if either array is
unbounded.

From-SVN: r17095

gcc/cp/ChangeLog
gcc/cp/call.c
gcc/cp/pt.c

index 7d1ab25fa9e9c12b63c683804229bad62aa9c9eb..7184927da42f1a3dc40568f0da3c515888a3dd97 100644 (file)
@@ -1,3 +1,12 @@
+Sun Dec 14 20:38:35 1997  Mark Mitchell  <mmitchell@usa.net>
+
+       * call.c (implicit_conversion): Don't call
+       build_user_type_conversion_1 with a NULL expr, since it will
+       crash. 
+
+       * pt.c (unify): Don't try to unify array bounds if either array is
+       unbounded.
+
 Fri Dec 12 16:09:14 1997  Jason Merrill  <jason@yorick.cygnus.com>
 
        * errfn.c (cp_pedwarn, cp_pedwarn_at, cp_error_at, cp_warning_at): 
index 64f3a97531d1cb88a4f2aa26910fa1667d0fc2c3..e3c3e5124bf2baaf3421e86634c7a375458a9dfb 100644 (file)
@@ -3318,7 +3318,8 @@ implicit_conversion (to, from, expr, flags)
 
   if (conv)
     ;
-  else if ((IS_AGGR_TYPE (non_reference (from))
+  else if (expr != NULL_TREE
+          && (IS_AGGR_TYPE (non_reference (from))
            || IS_AGGR_TYPE (non_reference (to)))
           && (flags & LOOKUP_NO_CONVERSION) == 0)
     {
index 644370cf50271dc1d8499b764c2480bc98892f0a..e3bfb34356b6f9f3b6eeae8a442a7cd59c525f66 100644 (file)
@@ -3873,8 +3873,12 @@ unify (tparms, targs, ntparms, parm, arg, nsubsts, strict)
     case ARRAY_TYPE:
       if (TREE_CODE (arg) != ARRAY_TYPE)
        return 1;
-      if (unify (tparms, targs, ntparms, TYPE_DOMAIN (parm), TYPE_DOMAIN (arg),
-                nsubsts, strict) != 0)
+      if ((TYPE_DOMAIN (parm) == NULL_TREE)
+         != (TYPE_DOMAIN (arg) == NULL_TREE))
+       return 1;
+      if (TYPE_DOMAIN (parm) != NULL_TREE
+         && unify (tparms, targs, ntparms, TYPE_DOMAIN (parm),
+                   TYPE_DOMAIN (arg), nsubsts, strict) != 0)
        return 1;
       return unify (tparms, targs, ntparms, TREE_TYPE (parm), TREE_TYPE (arg),
                    nsubsts, strict);