OSDN Git Service

* cppfiles.c (stack_file): Leave filename as "" rather than "<stdin>".
authorgeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 30 Jul 2003 06:43:33 +0000 (06:43 +0000)
committergeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 30 Jul 2003 06:43:33 +0000 (06:43 +0000)
* line-map.h (linemap_add): Update comments.
* line-map.c (linemap_add): Update comments, interpret zero-length
filename as "<stdin>".

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69952 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/cppfiles.c
gcc/line-map.c
gcc/line-map.h

index 54fb2b2..4bc73f3 100644 (file)
@@ -1,3 +1,10 @@
+2003-07-29  Geoffrey Keating  <geoffk@apple.com>
+
+       * cppfiles.c (stack_file): Leave filename as "" rather than "<stdin>".
+       * line-map.h (linemap_add): Update comments.
+       * line-map.c (linemap_add): Update comments, interpret zero-length
+       filename as "<stdin>".
+
 2003-07-29  Nathanael Nerode  <neroden@gcc.gnu.org>
 
        * mkinstalldirs: Import autoconf 2.57 / automake 1.7 version.
index 562b0ab..66e4a6a 100644 (file)
@@ -558,8 +558,6 @@ stack_file (cpp_reader *pfile, _cpp_file *file, bool import)
 
   /* Generate the call back.  */
   fname = file->name;
-  if (*fname == '\0')
-    fname = "<stdin>";
   _cpp_do_file_change (pfile, LC_ENTER, fname, 1, sysp);
 
   return true;
index 50c9c88..f04350d 100644 (file)
@@ -61,11 +61,17 @@ linemap_free (struct line_maps *set)
 }
 
 /* Add a mapping of logical source line to physical source file and
-   line number.  The text pointed to by TO_FILE must have a lifetime
-   at least as long as the final call to lookup_line ().
+   line number.
+
+   The text pointed to by TO_FILE must have a lifetime
+   at least as long as the final call to lookup_line ().  An empty
+   TO_FILE means standard input.  If reason is LC_LEAVE, and
+   TO_FILE is NULL, then TO_FILE, TO_LINE and SYSP are given their
+   natural values considering the file we are returning to.
 
    FROM_LINE should be monotonic increasing across calls to this
-   function.  */
+   function.  A call to this function can relocate the previous set of
+   maps, so any stored line_map pointers should not be used.  */
 
 const struct line_map *
 linemap_add (struct line_maps *set, enum lc_reason reason,
@@ -85,6 +91,9 @@ linemap_add (struct line_maps *set, enum lc_reason reason,
 
   map = &set->maps[set->used++];
 
+  if (to_file && *to_file == '\0')
+    to_file = "<stdin>";
+
   /* If we don't keep our line maps consistent, we can easily
      segfault.  Don't rely on the client to do it for us.  */
   if (set->depth == 0)
index 1176743..dcb6f7d 100644 (file)
@@ -74,8 +74,11 @@ extern void linemap_init (struct line_maps *);
 extern void linemap_free (struct line_maps *);
 
 /* Add a mapping of logical source line to physical source file and
-   line number.  The text pointed to by TO_FILE must have a lifetime
-   at least as long as the line maps.  If reason is LC_LEAVE, and
+   line number.
+
+   The text pointed to by TO_FILE must have a lifetime
+   at least as long as the final call to lookup_line ().  An empty
+   TO_FILE means standard input.  If reason is LC_LEAVE, and
    TO_FILE is NULL, then TO_FILE, TO_LINE and SYSP are given their
    natural values considering the file we are returning to.