aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.c
diff options
context:
space:
mode:
authorMichael Meissner <meissner@linux.vnet.ibm.com>2009-05-22 21:51:12 +0000
committerMichael Meissner <meissner@gcc.gnu.org>2009-05-22 21:51:12 +0000
commitd021d274352e0f2d0ebefc499e8b248a3e27e945 (patch)
tree7d1b770e8c2ec2cbb8b2b5cf10cafc4692857c13 /gcc/tree.c
parent4d7a65ea616c964b6797710e6bad610598d55df6 (diff)
downloadgcc-d021d274352e0f2d0ebefc499e8b248a3e27e945.zip
gcc-d021d274352e0f2d0ebefc499e8b248a3e27e945.tar.gz
gcc-d021d274352e0f2d0ebefc499e8b248a3e27e945.tar.bz2
Fix PR tree-optimization/40219
From-SVN: r147807
Diffstat (limited to 'gcc/tree.c')
-rw-r--r--gcc/tree.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/gcc/tree.c b/gcc/tree.c
index 2231b44..f0e861c 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -5422,11 +5422,13 @@ iterative_hash_expr (const_tree t, hashval_t val)
return val;
}
case FUNCTION_DECL:
- /* When referring to a built-in FUNCTION_DECL, use the
- __builtin__ form. Otherwise nodes that compare equal
- according to operand_equal_p might get different
- hash codes. */
- if (DECL_BUILT_IN (t) && built_in_decls[DECL_FUNCTION_CODE (t)])
+ /* When referring to a built-in FUNCTION_DECL, use the __builtin__ form.
+ Otherwise nodes that compare equal according to operand_equal_p might
+ get different hash codes. However, don't do this for machine specific
+ or front end builtins, since the function code is overloaded in those
+ cases. */
+ if (DECL_BUILT_IN_CLASS (t) == BUILT_IN_NORMAL
+ && built_in_decls[DECL_FUNCTION_CODE (t)])
{
t = built_in_decls[DECL_FUNCTION_CODE (t)];
code = TREE_CODE (t);