(ASM_FILE_START): Write out two backslashes for each backslash in the
authorRichard Kenner <kenner@gcc.gnu.org>
Wed, 4 Aug 1993 22:05:15 +0000 (18:05 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Wed, 4 Aug 1993 22:05:15 +0000 (18:05 -0400)
filename.

From-SVN: r5068

gcc/config/i386/gas.h

index 4821a895c5d5c80e638413331f08a7f2a5f3b72c..cad9f51e4b55fdae2e974562803b383b7abf6c51 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions for Intel 386 running system V with gnu tools
-   Copyright (C) 1988 Free Software Foundation, Inc.
+   Copyright (C) 1988, 1993 Free Software Foundation, Inc.
 
 This file is part of GNU CC.
 
@@ -93,8 +93,19 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
      fprintf ((FILE), "\t.align 2,0x90\n");  /* Use log of 4 as arg.  */
 \f
 #undef ASM_FILE_START
+/* ASM_FILE_START(FILE) used to be defined as:
+     fprintf (FILE, "\t.file\t\"%s\"\n", dump_base_name);
+   However, the string dump_base_name may contain backslashes.  (This may often
+   be the case when gcc is run under operating systems such as DOS and OS/2.)
+   Each backslash in dump_base_name must be converted to two consecutive
+   backslashes on output.  */
 #define ASM_FILE_START(FILE) \
-  fprintf (FILE, "\t.file\t\"%s\"\n", dump_base_name);
+  { char *p; \
+    fprintf (FILE, "\t.file\t\""); \
+    for (p = dump_base_name; *p != '\0'; p++) \
+      if (*p == '\\') fprintf (FILE, "\\\\");  \
+      else fprintf (FILE, "%c", *p); \
+    fprintf (FILE, "\"\n"); }
 
 /* A C statement or statements which output an assembler instruction
    opcode to the stdio stream STREAM.  The macro-operand PTR is a