summaryrefslogtreecommitdiff
path: root/contrib/gcc/integrate.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/gcc/integrate.c')
-rw-r--r--contrib/gcc/integrate.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/contrib/gcc/integrate.c b/contrib/gcc/integrate.c
index d90e776637f0..ce2962d2cce7 100644
--- a/contrib/gcc/integrate.c
+++ b/contrib/gcc/integrate.c
@@ -2320,6 +2320,13 @@ copy_rtx_and_substitute (orig, map, for_lhs)
if (inlining && !for_lhs)
RTX_UNCHANGING_P (copy) = 0;
+ /* If inlining, squish aliasing data that references the subroutine's
+ parameter list, since that's no longer applicable. */
+ if (inlining && MEM_EXPR (copy)
+ && TREE_CODE (MEM_EXPR (copy)) == INDIRECT_REF
+ && TREE_CODE (TREE_OPERAND (MEM_EXPR (copy), 0)) == PARM_DECL)
+ set_mem_expr (copy, NULL_TREE);
+
return copy;
default: