gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / gas / depend.c
index f17c7c8e3a06fe7621a32012321652c43a00230f..f569484c42e9285b739226da93e815e53cd29913 100644 (file)
@@ -1,11 +1,11 @@
 /* depend.c - Handle dependency tracking.
-   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1997-2020 Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
    GAS is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    GAS is distributed in the hope that it will be useful,
 
    You should have received a copy of the GNU General Public License
    along with GAS; see the file COPYING.  If not, write to the Free
-   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA.  */
+   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
+   02110-1301, USA.  */
 
 #include "as.h"
+#include "filenames.h"
 
 /* The file to write to, or NULL if no dependencies being kept.  */
-static char *dep_file = NULL;
+static char * dep_file = NULL;
 
 struct dependency
 {
-  char *file;
-  struct dependency *next;
+  char * file;
+  struct dependency * next;
 };
 
 /* All the files we depend on.  */
-static struct dependency *dep_chain = NULL;
+static struct dependency * dep_chain = NULL;
 
 /* Current column in output file.  */
 static int column = 0;
 
-static int quote_string_for_make PARAMS ((FILE *, char *));
-static void wrap_output PARAMS ((FILE *, char *, int));
+static int quote_string_for_make (FILE *, const char *);
+static void wrap_output (FILE *, const char *, int);
 
 /* Number of columns allowable.  */
 #define MAX_COLUMNS 72
-
 \f
-
 /* Start saving dependencies, to be written to FILENAME.  If this is
    never called, then dependency tracking is simply skipped.  */
 
 void
-start_dependencies (filename)
-     char *filename;
+start_dependencies (char *filename)
 {
   dep_file = filename;
 }
@@ -56,8 +54,7 @@ start_dependencies (filename)
 /* Noticed a new filename, so try to register it.  */
 
 void
-register_dependency (filename)
-     char *filename;
+register_dependency (const char *filename)
 {
   struct dependency *dep;
 
@@ -66,11 +63,11 @@ register_dependency (filename)
 
   for (dep = dep_chain; dep != NULL; dep = dep->next)
     {
-      if (! strcmp (filename, dep->file))
+      if (!filename_cmp (filename, dep->file))
        return;
     }
 
-  dep = (struct dependency *) xmalloc (sizeof (struct dependency));
+  dep = XNEW (struct dependency);
   dep->file = xstrdup (filename);
   dep->next = dep_chain;
   dep_chain = dep;
@@ -83,15 +80,15 @@ register_dependency (filename)
    This code is taken from gcc with only minor changes.  */
 
 static int
-quote_string_for_make (file, src)
-     FILE *file;
-     char *src;
+quote_string_for_make (FILE *file, const char *src)
 {
-  char *p = src;
+  const char *p = src;
   int i = 0;
+
   for (;;)
     {
       char c = *p++;
+
       switch (c)
        {
        case '\0':
@@ -104,8 +101,9 @@ quote_string_for_make (file, src)
               preceded by 2N backslashes represents N backslashes at
               the end of a file name; and backslashes in other
               contexts should not be doubled.  */
-           char *q;
-           for (q = p - 1; src < q && q[-1] == '\\';  q--)
+           const char *q;
+
+           for (q = p - 1; src < q && q[-1] == '\\'; q--)
              {
                if (file)
                  putc ('\\', file);
@@ -118,13 +116,13 @@ quote_string_for_make (file, src)
            putc ('\\', file);
          i++;
          goto ordinary_char;
-         
+
        case '$':
          if (file)
            putc (c, file);
          i++;
-         /* Fall through.  This can mishandle things like "$(" but
-            there's no easy fix.  */
+         /* Fall through.  */
+         /* This can mishandle things like "$(" but there's no easy fix.  */
        default:
        ordinary_char:
          /* This can mishandle characters in the string "\0\n%*?[\\~";
@@ -144,17 +142,18 @@ quote_string_for_make (file, src)
    wrapping as necessary.  */
 
 static void
-wrap_output (f, string, spacer)
-     FILE *f;
-     char *string;
-     int spacer;
+wrap_output (FILE *f, const char *string, int spacer)
 {
   int len = quote_string_for_make (NULL, string);
 
   if (len == 0)
     return;
 
-  if (column && MAX_COLUMNS - 1 /*spacer*/ - 2 /*` \'*/ < column + len)
+  if (column
+      && (MAX_COLUMNS
+         - 1 /* spacer */
+         - 2 /* ` \'   */
+         < column + len))
     {
       fprintf (f, " \\\n ");
       column = 0;
@@ -181,7 +180,7 @@ wrap_output (f, string, spacer)
 /* Print dependency file.  */
 
 void
-print_dependencies ()
+print_dependencies (void)
 {
   FILE *f;
   struct dependency *dep;
@@ -189,10 +188,10 @@ print_dependencies ()
   if (dep_file == NULL)
     return;
 
-  f = fopen (dep_file, "w");
+  f = fopen (dep_file, FOPEN_WT);
   if (f == NULL)
     {
-      as_warn (_("Can't open `%s' for writing"), dep_file);
+      as_warn (_("can't open `%s' for writing"), dep_file);
       return;
     }
 
@@ -204,5 +203,5 @@ print_dependencies ()
   putc ('\n', f);
 
   if (fclose (f))
-    as_warn (_("Can't close `%s'"), dep_file);
+    as_warn (_("can't close `%s'"), dep_file);
 }
This page took 0.040013 seconds and 4 git commands to generate.