From: jason Date: Tue, 25 May 1999 11:55:58 +0000 (+0000) Subject: * typeck.c (casts_away_constness, casts_away_constness_r): Strip both X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3380c7cd89e7aec0c9aff4a9c7e033ccab8e6823;p=platform%2Fupstream%2Flinaro-gcc.git * typeck.c (casts_away_constness, casts_away_constness_r): Strip both parts of pointer to data member types. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@27138 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 835402f..36cb365 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 13a490b..ead755d 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. */