diff options
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/line-map.c | 8 | ||||
-rw-r--r-- | gcc/toplev.c | 16 |
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 |