Hi, As DECL_FUNCTION_CODE is overloaded for builtin functions in different classes, so need to check builtin class before using fcode. Patch posted below. Bootstrapped on x86_64-suse-linux, OK for trunk? Thanks.
Index: gcc/value-prof.c =================================================================== --- gcc/value-prof.c (revision 141081) +++ gcc/value-prof.c (working copy) @@ -1547,8 +1547,12 @@ gimple_ic_transform (gimple_stmt_iterator *gsi) static bool interesting_stringop_to_profile_p (tree fndecl, gimple call, int *size_arg) { - enum built_in_function fcode = DECL_FUNCTION_CODE (fndecl); + enum built_in_function fcode; + if (DECL_BUILT_IN_CLASS (fndecl) != BUILT_IN_NORMAL) + return false; + + fcode = DECL_FUNCTION_CODE (fndecl); if (fcode != BUILT_IN_MEMCPY && fcode != BUILT_IN_MEMPCPY && fcode != BUILT_IN_MEMSET && fcode != BUILT_IN_BZERO) return false; Index: gcc/ChangeLog =================================================================== --- gcc/ChangeLog (revision 141081) +++ gcc/ChangeLog (working copy) @@ -1,3 +1,9 @@ +2015-08-20 Felix Yang <felix.y...@huawei.com> + Jiji Jiang <jiangj...@huawei.com> + + * value-prof.c (interesting_stringop_to_profile_p): Only accept string + operations which belong to the BUILT_IN_NORMAL builtin class. + 2015-08-18 Segher Boessenkool <seg...@kernel.crashing.org> Backport from mainline: