tree.c (bound_pmf_p): New fn.
* tree.c (bound_pmf_p): New fn. * typeck.c (build_c_cast): Use it. From-SVN: r24481
This commit is contained in:
parent
007e5feae7
commit
8d7f862cfb
3 changed files with 16 additions and 3 deletions
|
@ -1,5 +1,8 @@
|
|||
1999-01-04 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* tree.c (bound_pmf_p): New fn.
|
||||
* typeck.c (build_c_cast): Use it.
|
||||
|
||||
* decl.c (grok_op_properties): Use same_type_p.
|
||||
|
||||
Tue Dec 22 15:09:25 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||
|
|
|
@ -1338,6 +1338,17 @@ get_first_fn (from)
|
|||
return OVL_CURRENT (from);
|
||||
}
|
||||
|
||||
/* Returns nonzero if T is a ->* or .* expression that refers to a
|
||||
member function. */
|
||||
|
||||
int
|
||||
bound_pmf_p (t)
|
||||
tree t;
|
||||
{
|
||||
return (TREE_CODE (t) == OFFSET_REF
|
||||
&& TYPE_PTRMEMFUNC_P (TREE_TYPE (TREE_OPERAND (t, 1))));
|
||||
}
|
||||
|
||||
/* Return a new OVL node, concatenating it with the old one. */
|
||||
|
||||
tree
|
||||
|
|
|
@ -5630,10 +5630,9 @@ build_c_cast (type, expr)
|
|||
{
|
||||
if (TREE_CODE (TREE_TYPE (value)) == FUNCTION_TYPE
|
||||
|| (TREE_CODE (TREE_TYPE (value)) == METHOD_TYPE
|
||||
/* Don't do the default conversion if we want a
|
||||
pointer to a function. */
|
||||
/* Don't do the default conversion on a ->* expression. */
|
||||
&& ! (TREE_CODE (type) == POINTER_TYPE
|
||||
&& TREE_CODE (TREE_TYPE (type)) == FUNCTION_TYPE))
|
||||
&& bound_pmf_p (value)))
|
||||
|| TREE_CODE (TREE_TYPE (value)) == ARRAY_TYPE
|
||||
|| TREE_CODE (TREE_TYPE (value)) == REFERENCE_TYPE)
|
||||
value = default_conversion (value);
|
||||
|
|
Loading…
Add table
Reference in a new issue