cvt.c (cp_convert_to_pointer): Fix base conversion of pm's.
* cvt.c (cp_convert_to_pointer): Fix base conversion of pm's. * pt.c (type_unification_real): Change __null to type void* with a warning. From-SVN: r17098
This commit is contained in:
parent
6d8ccdbbb2
commit
5c0ad67204
3 changed files with 23 additions and 2 deletions
|
@ -1,3 +1,10 @@
|
|||
Sun Dec 14 22:34:20 1997 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* cvt.c (cp_convert_to_pointer): Fix base conversion of pm's.
|
||||
|
||||
* pt.c (type_unification_real): Change __null to type void* with
|
||||
a warning.
|
||||
|
||||
Sun Dec 14 20:38:35 1997 Mark Mitchell <mmitchell@usa.net>
|
||||
|
||||
* call.c (implicit_conversion): Don't call
|
||||
|
|
12
gcc/cp/cvt.c
12
gcc/cp/cvt.c
|
@ -258,11 +258,19 @@ cp_convert_to_pointer (type, expr)
|
|||
{
|
||||
tree b1 = TYPE_OFFSET_BASETYPE (TREE_TYPE (type));
|
||||
tree b2 = TYPE_OFFSET_BASETYPE (TREE_TYPE (intype));
|
||||
tree binfo = get_binfo (b1, b2, 1);
|
||||
tree binfo = get_binfo (b2, b1, 1);
|
||||
enum tree_code code = PLUS_EXPR;
|
||||
|
||||
if (binfo == NULL_TREE)
|
||||
binfo = get_binfo (b2, b1, 1);
|
||||
{
|
||||
binfo = get_binfo (b1, b2, 1);
|
||||
code = MINUS_EXPR;
|
||||
}
|
||||
|
||||
if (binfo == error_mark_node)
|
||||
return error_mark_node;
|
||||
if (binfo && ! TREE_VIA_VIRTUAL (binfo))
|
||||
expr = size_binop (code, expr, BINFO_OFFSET (binfo));
|
||||
}
|
||||
|
||||
if (TREE_CODE (TREE_TYPE (intype)) == METHOD_TYPE
|
||||
|
|
|
@ -3722,6 +3722,12 @@ type_unification_real (tparms, targs, parms, args, nsubsts, subr,
|
|||
arg = TREE_TYPE (arg);
|
||||
}
|
||||
#endif
|
||||
if (! flag_ansi && arg == TREE_TYPE (null_node))
|
||||
{
|
||||
warning ("using type void* for NULL");
|
||||
arg = ptr_type_node;
|
||||
}
|
||||
|
||||
if (! subr && TREE_CODE (arg) == REFERENCE_TYPE)
|
||||
arg = TREE_TYPE (arg);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue