aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/cvt.c12
2 files changed, 13 insertions, 4 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index b7b7df8..9044923 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -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.
diff --git a/gcc/cp/cvt.c b/gcc/cp/cvt.c
index 2cbbd59..2986f07 100644
--- a/gcc/cp/cvt.c
+++ b/gcc/cp/cvt.c
@@ -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);