FreeBSD/contrib/gcc/cp/cp-objcp-common.c
/* This compares two types for equivalence ("compatible" in C-based languages).
   This routine should only return 1 if it is sure.  It should not be used
   in contexts where erroneously returning 0 causes problems.  */
This compares two types for equivalence ("compatible" in C-based languages).
This routine should only return 1 if it is sure.  It should not be used
in contexts where erroneously returning 0 causes problems.
This compares two types for equivalence ( " compatible " in C - based languages ) . This routine should only return 1 if it is sure . It should not be used in contexts where erroneously returning 0 causes problems .
int
cxx_types_compatible_p (tree x, tree y)
{
  if (same_type_ignoring_top_level_qualifiers_p (x, y))
    return 1;
  if (POINTER_TYPE_P (x) && POINTER_TYPE_P (y)
      && TYPE_MODE (x) == TYPE_MODE (y)
      && TYPE_REF_CAN_ALIAS_ALL (x) == TYPE_REF_CAN_ALIAS_ALL (y)
      && same_type_p (TREE_TYPE (x), TREE_TYPE (y)))
    return 1;
  return 0;
}
int cxx_types_compatible_p ( tree x , tree y ) { if ( same_type_ignoring_top_level_qualifiers_p ( x , y ) ) return 1 ; if ( POINTER_TYPE_P ( x ) && POINTER_TYPE_P ( y ) && TYPE_MODE ( x ) == TYPE_MODE ( y ) && TYPE_REF_CAN_ALIAS_ALL ( x ) == TYPE_REF_CAN_ALIAS_ALL ( y ) && same_type_p ( TREE_TYPE ( x ) , TREE_TYPE ( y ) ) ) return 1 ; return 0 ; }
This compares two types for equivalence ("compatible" in C-based languages).
This compares two types for equivalence ( " compatible " in C - based languages ) .
/* Once we get to the middle-end, references and pointers are
     interchangeable.  FIXME should we try to replace all references with
     pointers?  */