diff options
author | Richard Stallman <rms@gnu.org> | 1993-05-28 22:51:47 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-05-28 22:51:47 +0000 |
commit | db25e492164350aed1e016186e2c5937fa16f938 (patch) | |
tree | fb6aac7ddbb853d16326adedaa3caeb9b5927fdc /gcc | |
parent | 239db5fcdd60ff2687160335fd8a4c62d973c2cb (diff) | |
download | gcc-db25e492164350aed1e016186e2c5937fa16f938.zip gcc-db25e492164350aed1e016186e2c5937fa16f938.tar.gz gcc-db25e492164350aed1e016186e2c5937fa16f938.tar.bz2 |
(expand_inline_function): When copy REG_NOTES, must
also call subst_constants.
From-SVN: r4587
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/integrate.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/gcc/integrate.c b/gcc/integrate.c index ad26413..8bb32da 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -1711,9 +1711,16 @@ expand_inline_function (fndecl, parms, target, ignore, type, structure_value_add /* Now copy the REG_NOTES. */ for (insn = insns; insn; insn = NEXT_INSN (insn)) if (GET_RTX_CLASS (GET_CODE (insn)) == 'i' - && map->insn_map[INSN_UID (insn)]) - REG_NOTES (map->insn_map[INSN_UID (insn)]) - = copy_rtx_and_substitute (REG_NOTES (insn), map); + && map->insn_map[INSN_UID (insn)] + && REG_NOTES (insn)) + { + rtx tem = copy_rtx_and_substitute (REG_NOTES (insn), map); + /* We must also do subst_constants, in case one of our parameters + has const type and constant value. */ + subst_constants (&tem, NULL_RTX, map); + apply_change_group (); + REG_NOTES (map->insn_map[INSN_UID (insn)]) = tem; + } if (local_return_label) emit_label (local_return_label); |