diff options
Diffstat (limited to 'gcc/fortran/cpp.c')
-rw-r--r-- | gcc/fortran/cpp.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/gcc/fortran/cpp.c b/gcc/fortran/cpp.c index 9368d89..2f18893 100644 --- a/gcc/fortran/cpp.c +++ b/gcc/fortran/cpp.c @@ -818,27 +818,29 @@ print_line (source_location src_loc, const char *special_flags) if (!gfc_cpp_option.no_line_commands) { - const struct line_map *map = linemap_lookup (line_table, src_loc); - - size_t to_file_len = strlen (map->to_file); - unsigned char *to_file_quoted = - (unsigned char *) alloca (to_file_len * 4 + 1); + expanded_location loc; + size_t to_file_len; + unsigned char *to_file_quoted; unsigned char *p; - print.src_line = SOURCE_LINE (map, src_loc); + loc = expand_location (src_loc); + to_file_len = strlen (loc.file); + to_file_quoted = (unsigned char *) alloca (to_file_len * 4 + 1); + + print.src_line = loc.line; /* cpp_quote_string does not nul-terminate, so we have to do it ourselves. */ p = cpp_quote_string (to_file_quoted, - (const unsigned char *) map->to_file, to_file_len); + (const unsigned char *) loc.file, to_file_len); *p = '\0'; fprintf (print.outf, "# %u \"%s\"%s", print.src_line == 0 ? 1 : print.src_line, to_file_quoted, special_flags); - if (map->sysp == 2) + if (loc.sysp == 2) fputs (" 3 4", print.outf); - else if (map->sysp == 1) + else if (loc.sysp == 1) fputs (" 3", print.outf); putc ('\n', print.outf); @@ -935,7 +937,7 @@ cb_define (cpp_reader *pfile ATTRIBUTE_UNUSED, source_location line, fputs ((const char *) NODE_NAME (node), print.outf); putc ('\n', print.outf); - if (linemap_lookup (line_table, line)->to_line != 0) + if (LOCATION_LINE (line) != 0) print.src_line++; } |