+2009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR tree-optimization/40219
+ * tree.c (iterative_hash_expr): Make sure the builtin function is
+ a normal builtin function and not a front end or back end builtin
+ before indexing into the built_in_decls array.
+
2009-05-22 Richard Guenther <rguenther@suse.de>
PR middle-end/38964
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);