From 3e0b47108c47627785b5553303aed0260e7bba40 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Tue, 25 May 1999 11:55:58 +0000 Subject: [PATCH] typeck.c (casts_away_constness, [...]): Strip both parts of pointer to data member types. * typeck.c (casts_away_constness, casts_away_constness_r): Strip both parts of pointer to data member types. From-SVN: r27138 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/typeck.c | 9 +++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 835402f0f0c..36cb365fee5 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +1999-05-25 Jason Merrill + + * typeck.c (casts_away_constness, casts_away_constness_r): Strip both + parts of pointer to data member types. + 1999-05-24 Mark Mitchell * decl2.c (mark_vtable_entries): Don't make a copy of a function, diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c index 13a490b2498..ead755d8371 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -7771,9 +7771,9 @@ casts_away_constness_r (t1, t2) pointer to member level is ignored when determining if a const cv-qualifier has been cast away. */ if (TYPE_PTRMEM_P (*t1)) - *t1 = build_pointer_type (TREE_TYPE (*t1)); + *t1 = build_pointer_type (TREE_TYPE (TREE_TYPE (*t1))); if (TYPE_PTRMEM_P (*t2)) - *t2 = build_pointer_type (TREE_TYPE (*t2)); + *t2 = build_pointer_type (TREE_TYPE (TREE_TYPE (*t2))); /* [expr.const.cast] @@ -7844,8 +7844,9 @@ casts_away_constness (t1, t2) T2" casts away constness if a cast from an rvalue of type "poitner to T1" to the type "pointer to T2" casts away constness. */ - return casts_away_constness (build_pointer_type (TREE_TYPE (t1)), - build_pointer_type (TREE_TYPE (t2))); + return casts_away_constness + (build_pointer_type (TREE_TYPE (TREE_TYPE (t1))), + build_pointer_type (TREE_TYPE (TREE_TYPE (t2)))); /* Casting away constness is only something that makes sense for pointer or reference types. */