aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/line-map.c8
-rw-r--r--gcc/toplev.c16
3 files changed, 24 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d20b175..fe92cf9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2003-03-20 Per Bothner <pbothner@apple.com>
+
+ Various cleanups to help compile server.
+
+ * line-map.c (add_line_map): Allow leaving the outermost file.
+ Allowing entering an outermost-file after the initial time.
+
+ * toplev.c (pop_srcloc): Allow popping from initial file.
+
2003-03-20 Kazu Hirata <kazu at cs dot umass dot edu>
* fold-const.c (fold): Fold A - (A & B) into ~B & A.
diff --git a/gcc/line-map.c b/gcc/line-map.c
index ae26e76..442e314 100644
--- a/gcc/line-map.c
+++ b/gcc/line-map.c
@@ -106,9 +106,9 @@ add_line_map (set, reason, sysp, from_line, to_file, to_line)
if (MAIN_FILE_P (map - 1))
{
- error = true;
- reason = LC_RENAME;
- from = map - 1;
+ set->depth--;
+ set->used--;
+ return NULL;
}
else
{
@@ -139,8 +139,8 @@ add_line_map (set, reason, sysp, from_line, to_file, to_line)
if (reason == LC_ENTER)
{
+ map->included_from = set->depth == 0 ? -1 : (int) (set->used - 2);
set->depth++;
- map->included_from = set->used - 2;
if (set->trace_includes)
trace_include (set, map);
}
diff --git a/gcc/toplev.c b/gcc/toplev.c
index e1b97a1..eadcb36 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -2166,11 +2166,17 @@ pop_srcloc ()
input_file_stack = fs->next;
free (fs);
input_file_stack_tick++;
- /* The initial source file is never popped. */
- if (!input_file_stack)
- abort ();
- input_filename = input_file_stack->name;
- lineno = input_file_stack->line;
+
+ if (input_file_stack)
+ {
+ input_filename = input_file_stack->name;
+ lineno = input_file_stack->line;
+ }
+ else
+ {
+ input_filename = NULL;
+ lineno = 0;
+ }
}
/* Compile an entire translation unit. Write a file of assembly