diff options
author | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-04-01 23:18:23 +0000 |
---|---|---|
committer | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-04-01 23:18:23 +0000 |
commit | 0569bc6fc06a077c0f25799e29257e989972aba6 (patch) | |
tree | 34412983598e8621b059f847ba540136737a55be | |
parent | de679ce9551986c345f5ffa6e4b991703e4f42f3 (diff) | |
download | gcc-0569bc6fc06a077c0f25799e29257e989972aba6.tar.gz |
PR c++/14803
* typeck.c (get_delta_difference): Call fold before returning the
value.
PR c++/14803
* g++.dg/inherit/ptrmem1.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-3_4-branch@80333 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/typeck.c | 10 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 |
3 files changed, 16 insertions, 5 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 472229c7d6f..c152410c213 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2004-04-01 Mark Mitchell <mark@codesourcery.com> + + PR c++/14803 + * typeck.c (get_delta_difference): Call fold before returning the + value. + 2004-04-01 Richard Henderson <rth@redhat.com> PR c++/14804 diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c index 0c28fdc7462..098dad8f4e0 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -5345,14 +5345,14 @@ get_delta_difference (tree from, tree to, int force) BINFO_TYPE (virt_binfo)); goto error; } - return convert_to_integer (ptrdiff_type_node, - size_diffop (size_zero_node, - BINFO_OFFSET (binfo))); + return fold (convert_to_integer (ptrdiff_type_node, + size_diffop (size_zero_node, + BINFO_OFFSET (binfo)))); } virt_binfo = binfo_from_vbase (binfo); if (!virt_binfo) - return convert_to_integer (ptrdiff_type_node, BINFO_OFFSET (binfo)); + return fold (convert_to_integer (ptrdiff_type_node, BINFO_OFFSET (binfo))); /* This is a reinterpret cast, we choose to do nothing. */ if (force) @@ -5363,7 +5363,7 @@ get_delta_difference (tree from, tree to, int force) BINFO_TYPE (virt_binfo)); error: - return convert_to_integer(ptrdiff_type_node, integer_zero_node); + return fold (convert_to_integer(ptrdiff_type_node, integer_zero_node)); } /* Return a constructor for the pointer-to-member-function TYPE using diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 690f0476eb5..4f7cfbe896a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2004-04-01 Mark Mitchell <mark@codesourcery.com> + + PR c++/14803 + * g++.dg/inherit/ptrmem1.C: New test. + 2004-04-01 Jakub Jelinek <jakub@redhat.com> PR c++/14755 |