diff options
author | Mark Mitchell <mmitchell@gcc.gnu.org> | 1998-02-12 14:55:02 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchell@gcc.gnu.org> | 1998-02-12 14:55:02 +0000 |
commit | 3317aae90b39123922aa92f0f10f65212df1699a (patch) | |
tree | d39d31d183a285aeb90430f6de9a9f26d2821fe9 /gcc/cp | |
parent | 9ca21c0adb7d4de79d72a402914a71bcd38df3a2 (diff) | |
download | gcc-3317aae90b39123922aa92f0f10f65212df1699a.zip gcc-3317aae90b39123922aa92f0f10f65212df1699a.tar.gz gcc-3317aae90b39123922aa92f0f10f65212df1699a.tar.bz2 |
call.c (reference_binding): Use comptypes when comparing TYPE_MAIN_VARIANTS to handle non-canonical...
* call.c (reference_binding): Use comptypes when comparing
TYPE_MAIN_VARIANTS to handle non-canonical array/index types.
From-SVN: r17875
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/call.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/cp/call.c b/gcc/cp/call.c index 18eeb82..d30092e 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -3242,7 +3242,8 @@ reference_binding (rto, rfrom, expr, flags) else if (! expr || ! real_lvalue_p (expr)) lvalue = 0; - related = (TYPE_MAIN_VARIANT (to) == TYPE_MAIN_VARIANT (from) + related = (comptypes (TYPE_MAIN_VARIANT (to), + TYPE_MAIN_VARIANT (from), 1) || (IS_AGGR_TYPE (to) && IS_AGGR_TYPE (from) && DERIVED_FROM_P (to, from))); @@ -3252,7 +3253,8 @@ reference_binding (rto, rfrom, expr, flags) { conv = build1 (IDENTITY_CONV, from, expr); - if (TYPE_MAIN_VARIANT (to) == TYPE_MAIN_VARIANT (from)) + if (comptypes (TYPE_MAIN_VARIANT (to), + TYPE_MAIN_VARIANT (from), 1)) conv = build_conv (REF_BIND, rto, conv); else { |