diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fbb1c2acab72f8d97e1e2d2f15dfb27b4e74cace..59008a5ab400ab5182ecaefe674a5cf1697b7520 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2010-06-03  Richard Guenther  <rguenther@suse.de>
+
+	PR middle-end/44291
+	* optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
+	(set_user_assembler_libfunc): Likewise.
+
 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
 
 	* mkconfig.sh: Include insn-flags.h and insn-constants.h before
diff --git a/gcc/optabs.c b/gcc/optabs.c
index 52b4cb9fa858d1a940909d4a70aefeb4c7bb28a0..e022114a0e3b152acf3a163e059899ac11d4bb23 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -6083,7 +6083,7 @@ init_one_libfunc (const char *name)
 
   /* See if we have already created a libfunc decl for this function.  */
   id = get_identifier (name);
-  hash = htab_hash_string (name);
+  hash = IDENTIFIER_HASH_VALUE (id);
   slot = htab_find_slot_with_hash (libfunc_decls, id, hash, INSERT);
   decl = (tree) *slot;
   if (decl == NULL)
@@ -6106,7 +6106,7 @@ set_user_assembler_libfunc (const char *name, const char *asmspec)
   hashval_t hash;
 
   id = get_identifier (name);
-  hash = htab_hash_string (name);
+  hash = IDENTIFIER_HASH_VALUE (id);
   slot = htab_find_slot_with_hash (libfunc_decls, id, hash, NO_INSERT);
   gcc_assert (slot);
   decl = (tree) *slot;