OSDN Git Service

* cvt.c (convert_to_pointer_force): Fix error message when
authornathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 9 Aug 2000 09:43:00 +0000 (09:43 +0000)
committernathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 9 Aug 2000 09:43:00 +0000 (09:43 +0000)
attempting to cast from ambiguous base.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35586 138bc75d-0d04-0410-961f-82ee72b054a4

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

index b7b7df8..9044923 100644 (file)
@@ -1,3 +1,8 @@
+2000-08-09  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * cvt.c (convert_to_pointer_force): Fix error message when
+       attempting to cast from ambiguous base. 
+
 2000-08-08  Jason Merrill  <jason@redhat.com>
 
        * pt.c (tsubst_aggr_type): Bail if creating the argvec fails.
index 2cbbd59..2986f07 100644 (file)
@@ -307,10 +307,9 @@ convert_to_pointer_force (type, expr)
                                            TREE_TYPE (intype), 0, &path);
          if (distance == -2)
            {
-           ambig:
-             cp_error ("type `%T' is ambiguous baseclass of `%s'",
+             cp_error ("type `%T' is ambiguous base of `%T'",
                        TREE_TYPE (type),
-                       TYPE_NAME_STRING (TREE_TYPE (intype)));
+                       TREE_TYPE (intype));
              return error_mark_node;
            }
          if (distance == -1)
@@ -318,7 +317,12 @@ convert_to_pointer_force (type, expr)
              distance = get_base_distance (TREE_TYPE (intype),
                                            TREE_TYPE (type), 0, &path);
              if (distance == -2)
-               goto ambig;
+               {
+                 cp_error ("type `%T' is ambiguous base of `%T'",
+                           TREE_TYPE (intype),
+                           TREE_TYPE (type));
+                 return error_mark_node;
+               }
              if (distance < 0)
                /* Doesn't need any special help from us.  */
                return build1 (NOP_EXPR, type, expr);