diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index a586432024c..b70bef15c74 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,7 @@ Thu Mar 19 11:51:58 1998 Jason Merrill + * call.c (standard_conversion): Handle A* -> const A* properly. + * pt.c (get_bindings_real): Rename from get_bindings. Add check_rettype parm. (get_bindings): Pass 1. diff --git a/gcc/cp/call.c b/gcc/cp/call.c index 16a6f9f0471..c74d1f40faa 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -782,8 +782,11 @@ standard_conversion (to, from, expr) enum tree_code ufcode = TREE_CODE (TREE_TYPE (from)); enum tree_code utcode = TREE_CODE (TREE_TYPE (to)); - if (utcode == VOID_TYPE && ufcode != OFFSET_TYPE - && ufcode != FUNCTION_TYPE) + if (comptypes (TYPE_MAIN_VARIANT (TREE_TYPE (from)), + TYPE_MAIN_VARIANT (TREE_TYPE (to)), 1)) + ; + else if (utcode == VOID_TYPE && ufcode != OFFSET_TYPE + && ufcode != FUNCTION_TYPE) { from = build_pointer_type (cp_build_type_variant (void_type_node,