(expand_inline_function): When copy REG_NOTES, must
authorRichard Stallman <rms@gnu.org>
Fri, 28 May 1993 22:51:47 +0000 (22:51 +0000)
committerRichard Stallman <rms@gnu.org>
Fri, 28 May 1993 22:51:47 +0000 (22:51 +0000)
also call subst_constants.

From-SVN: r4587

gcc/integrate.c

index ad26413ed48101cc3c49e1328f85830bfaedfcad..8bb32dace7a3edc2b3fe82c1d692f4a43e4781ee 100644 (file)
@@ -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);