aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeoffrey Keating <geoffk@apple.com>2003-07-30 06:43:33 +0000
committerGeoffrey Keating <geoffk@gcc.gnu.org>2003-07-30 06:43:33 +0000
commit9074464c14b99872a7ce360c883c1b0dc20c75be (patch)
tree05c6ec2250febb5e831a84ba041cdadb3cc76e9d
parentc1516eae87161cfec7d26ec445343718dd684c79 (diff)
downloadgcc-9074464c14b99872a7ce360c883c1b0dc20c75be.zip
gcc-9074464c14b99872a7ce360c883c1b0dc20c75be.tar.gz
gcc-9074464c14b99872a7ce360c883c1b0dc20c75be.tar.bz2
cppfiles.c (stack_file): Leave filename as "" rather than "<stdin>".
* 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>". From-SVN: r69952
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/cppfiles.c2
-rw-r--r--gcc/line-map.c15
-rw-r--r--gcc/line-map.h7
4 files changed, 24 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 54fb2b2..4bc73f3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/cppfiles.c b/gcc/cppfiles.c
index 562b0ab..66e4a6a 100644
--- a/gcc/cppfiles.c
+++ b/gcc/cppfiles.c
@@ -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;
diff --git a/gcc/line-map.c b/gcc/line-map.c
index 50c9c88..f04350d 100644
--- a/gcc/line-map.c
+++ b/gcc/line-map.c
@@ -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)
diff --git a/gcc/line-map.h b/gcc/line-map.h
index 1176743..dcb6f7d 100644
--- a/gcc/line-map.h
+++ b/gcc/line-map.h
@@ -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.