diff options
author | Richard Stallman <rms@gnu.org> | 1993-06-05 17:19:13 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-06-05 17:19:13 +0000 |
commit | 30caed6d0a9e58ce104f649d935763d70547c3c5 (patch) | |
tree | b39cd3259e117e79f18a25a7c53ab19c45f478ae /gcc | |
parent | bd103b489dd15da2f2d0227ff81db79a2f00e66f (diff) | |
download | gcc-30caed6d0a9e58ce104f649d935763d70547c3c5.zip gcc-30caed6d0a9e58ce104f649d935763d70547c3c5.tar.gz gcc-30caed6d0a9e58ce104f649d935763d70547c3c5.tar.bz2 |
(expand_inline_function): Always copy a SUBREG as an
argument into a REG.
From-SVN: r4638
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/integrate.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/integrate.c b/gcc/integrate.c index e18f690..73d839b 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -1269,7 +1269,11 @@ expand_inline_function (fndecl, parms, target, ignore, type, structure_value_add && (GET_CODE (arg_vals[i]) == REG || GET_CODE (arg_vals[i]) == SUBREG || GET_CODE (arg_vals[i]) == MEM) - && reg_overlap_mentioned_p (arg_vals[i], target)))) + && reg_overlap_mentioned_p (arg_vals[i], target)) + /* ??? We must always copy a SUBREG into a REG, because it might + get substituted into an address, and not all ports correctly + handle SUBREGs in addresses. */ + || (GET_CODE (arg_vals[i]) == SUBREG))) arg_vals[i] = copy_to_mode_reg (GET_MODE (loc), arg_vals[i]); } |