OSDN Git Service

* (REG_CLASS_FROM_CONSTRAINT): Only define if not already defined.
[pf3gnuchains/gcc-fork.git] / gcc / integrate.c
index 4f31c79..e9719e5 100644 (file)
@@ -925,8 +925,8 @@ expand_inline_function (fndecl, parms, target, ignore, type,
   if (GET_CODE (parm_insns) == NOTE
       && NOTE_LINE_NUMBER (parm_insns) > 0)
     {
-      rtx note = emit_note (NOTE_SOURCE_FILE (parm_insns),
-                           NOTE_LINE_NUMBER (parm_insns));
+      rtx note = emit_line_note (NOTE_SOURCE_FILE (parm_insns),
+                                NOTE_LINE_NUMBER (parm_insns));
       if (note)
        RTX_INTEGRATED_P (note) = 1;
     }
@@ -1017,8 +1017,8 @@ expand_inline_function (fndecl, parms, target, ignore, type,
          && ! (GET_CODE (XEXP (loc, 0)) == REG
                && REGNO (XEXP (loc, 0)) > LAST_VIRTUAL_REGISTER))
        {
-         rtx note = emit_note (DECL_SOURCE_FILE (formal),
-                               DECL_SOURCE_LINE (formal));
+         rtx note = emit_line_note (DECL_SOURCE_FILE (formal),
+                                    DECL_SOURCE_LINE (formal));
          if (note)
            RTX_INTEGRATED_P (note) = 1;
 
@@ -1305,7 +1305,7 @@ expand_inline_function (fndecl, parms, target, ignore, type,
      This line number note is still needed for debugging though, so we can't
      delete it.  */
   if (flag_test_coverage)
-    emit_note (0, NOTE_INSN_REPEATED_LINE_NUMBER);
+    emit_note (NULL, NOTE_INSN_REPEATED_LINE_NUMBER);
 
   emit_line_note (input_filename, input_line);
 
@@ -1546,7 +1546,7 @@ copy_insn_list (insns, map, static_chain_value)
 #else
          try_constants (copy, map);
 #endif
-         INSN_SCOPE (copy) = INSN_SCOPE (insn);
+         INSN_LOCATOR (copy) = INSN_LOCATOR (insn);
          break;
 
        case JUMP_INSN:
@@ -1567,7 +1567,7 @@ copy_insn_list (insns, map, static_chain_value)
          cc0_insn = 0;
 #endif
          try_constants (copy, map);
-         INSN_SCOPE (copy) = INSN_SCOPE (insn);
+         INSN_LOCATOR (copy) = INSN_LOCATOR (insn);
 
          /* If this used to be a conditional jump insn but whose branch
             direction is now know, we must do something special.  */
@@ -1635,7 +1635,7 @@ copy_insn_list (insns, map, static_chain_value)
 
          SIBLING_CALL_P (copy) = SIBLING_CALL_P (insn);
          CONST_OR_PURE_CALL_P (copy) = CONST_OR_PURE_CALL_P (insn);
-         INSN_SCOPE (copy) = INSN_SCOPE (insn);
+         INSN_LOCATOR (copy) = INSN_LOCATOR (insn);
 
          /* Because the USAGE information potentially contains objects other
             than hard registers, we need to copy it.  */
@@ -1683,15 +1683,17 @@ copy_insn_list (insns, map, static_chain_value)
 
             NOTE_INSN_DELETED notes aren't useful.  */
 
-         if (NOTE_LINE_NUMBER (insn) != NOTE_INSN_FUNCTION_END
+         if (NOTE_LINE_NUMBER (insn) > 0)
+           copy = emit_line_note (NOTE_SOURCE_FILE (insn),
+                                  NOTE_LINE_NUMBER (insn));
+         else if (NOTE_LINE_NUMBER (insn) != NOTE_INSN_FUNCTION_END
              && NOTE_LINE_NUMBER (insn) != NOTE_INSN_FUNCTION_BEG
              && NOTE_LINE_NUMBER (insn) != NOTE_INSN_DELETED)
            {
-             copy = emit_note (NOTE_SOURCE_FILE (insn),
-                               NOTE_LINE_NUMBER (insn));
-             if (copy
-                 && (NOTE_LINE_NUMBER (copy) == NOTE_INSN_BLOCK_BEG
-                     || NOTE_LINE_NUMBER (copy) == NOTE_INSN_BLOCK_END)
+             copy = emit_note (NULL, NOTE_LINE_NUMBER (insn));
+             NOTE_DATA (copy) = NOTE_DATA (insn);
+             if ((NOTE_LINE_NUMBER (copy) == NOTE_INSN_BLOCK_BEG
+                  || NOTE_LINE_NUMBER (copy) == NOTE_INSN_BLOCK_END)
                  && NOTE_BLOCK (insn))
                {
                  tree *mapped_block_p;
@@ -1708,8 +1710,7 @@ copy_insn_list (insns, map, static_chain_value)
                  else
                    NOTE_BLOCK (copy) = *mapped_block_p;
                }
-             else if (copy
-                      && NOTE_LINE_NUMBER (copy) == NOTE_INSN_EXPECTED_VALUE)
+             else if (NOTE_LINE_NUMBER (copy) == NOTE_INSN_EXPECTED_VALUE)
                NOTE_EXPECTED_VALUE (copy)
                  = copy_rtx_and_substitute (NOTE_EXPECTED_VALUE (insn),
                                             map, 0);