re PR debug/48333 (-fcompare-debug failure (length) - "memmove" x "__builtin_memmove")
PR debug/48333 * calls.c (emit_call_1): Prefer the __builtin declaration of builtin functions. From-SVN: r174636
This commit is contained in:
parent
57ee85b439
commit
047d33a0d4
@ -1,3 +1,9 @@
|
||||
2011-06-04 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
PR debug/48333
|
||||
* calls.c (emit_call_1): Prefer the __builtin declaration of
|
||||
builtin functions.
|
||||
|
||||
2011-06-03 Diego Novillo <dnovillo@google.com>
|
||||
|
||||
* lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
|
||||
|
15
gcc/calls.c
15
gcc/calls.c
@ -272,7 +272,20 @@ emit_call_1 (rtx funexp, tree fntree ATTRIBUTE_UNUSED, tree fndecl ATTRIBUTE_UNU
|
||||
|
||||
funmem = gen_rtx_MEM (FUNCTION_MODE, funexp);
|
||||
if (fndecl && TREE_CODE (fndecl) == FUNCTION_DECL)
|
||||
set_mem_expr (funmem, fndecl);
|
||||
{
|
||||
tree t = fndecl;
|
||||
/* Although a built-in FUNCTION_DECL and its non-__builtin
|
||||
counterpart compare equal and get a shared mem_attrs, they
|
||||
produce different dump output in compare-debug compilations,
|
||||
if an entry gets garbage collected in one compilation, then
|
||||
adds a different (but equivalent) entry, while the other
|
||||
doesn't run the garbage collector at the same spot and then
|
||||
shares the mem_attr with the equivalent entry. */
|
||||
if (DECL_BUILT_IN_CLASS (t) == BUILT_IN_NORMAL
|
||||
&& built_in_decls[DECL_FUNCTION_CODE (t)])
|
||||
t = built_in_decls[DECL_FUNCTION_CODE (t)];
|
||||
set_mem_expr (funmem, t);
|
||||
}
|
||||
else if (fntree)
|
||||
set_mem_expr (funmem, build_simple_mem_ref (CALL_EXPR_FN (fntree)));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user