diff options
Diffstat (limited to 'contrib/gcc/integrate.c')
| -rw-r--r-- | contrib/gcc/integrate.c | 7 |
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: |
