summaryrefslogtreecommitdiffstats
path: root/gcc/cp/tree.c
diff options
context:
space:
mode:
authorsimartin <simartin@138bc75d-0d04-0410-961f-82ee72b054a4>2007-01-11 19:46:03 +0000
committersimartin <simartin@138bc75d-0d04-0410-961f-82ee72b054a4>2007-01-11 19:46:03 +0000
commitbb3141cba23451798460261ff54c1805179e1646 (patch)
tree0f3c51fe1f2b8c17b0a809798e495fd93772cedd /gcc/cp/tree.c
parentec79f74bfcd22884065db103c3469a27789f98b1 (diff)
downloadppe42-gcc-bb3141cba23451798460261ff54c1805179e1646.tar.gz
ppe42-gcc-bb3141cba23451798460261ff54c1805179e1646.zip
2007-01-11 Simon Martin <simartin@users.sourceforge.net>
PR c++/29573 * tree.c (cp_tree_equal): Properly handle MODOP_EXPR trees. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120683 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/tree.c')
-rw-r--r--gcc/cp/tree.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index ae3dc4c2786..742e09014e3 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -1709,6 +1709,21 @@ cp_tree_equal (tree t1, tree t2)
return cp_tree_equal (o1, o2);
}
+ case MODOP_EXPR:
+ {
+ tree t1_op1, t2_op1;
+
+ if (!cp_tree_equal (TREE_OPERAND (t1, 0), TREE_OPERAND (t2, 0)))
+ return false;
+
+ t1_op1 = TREE_OPERAND (t1, 1);
+ t2_op1 = TREE_OPERAND (t2, 1);
+ if (TREE_CODE (t1_op1) != TREE_CODE (t2_op1))
+ return false;
+
+ return cp_tree_equal (TREE_OPERAND (t1, 2), TREE_OPERAND (t2, 2));
+ }
+
case PTRMEM_CST:
/* Two pointer-to-members are the same if they point to the same
field or function in the same class. */
OpenPOWER on IntegriCloud