diff options
author | Michael Meissner <meissner@linux.vnet.ibm.com> | 2009-05-22 21:51:12 +0000 |
---|---|---|
committer | Michael Meissner <meissner@gcc.gnu.org> | 2009-05-22 21:51:12 +0000 |
commit | d021d274352e0f2d0ebefc499e8b248a3e27e945 (patch) | |
tree | 7d1b770e8c2ec2cbb8b2b5cf10cafc4692857c13 /gcc/tree.c | |
parent | 4d7a65ea616c964b6797710e6bad610598d55df6 (diff) | |
download | gcc-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.c | 12 |
1 files changed, 7 insertions, 5 deletions
@@ -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); |