diff options
author | Nathan Sidwell <nathan@acm.org> | 2018-08-06 16:52:38 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2018-08-06 16:52:38 +0000 |
commit | 9e525f085b65ffc07217a86935cf357e3154accf (patch) | |
tree | 0593923ad1f17a2b6cd59dd105db4bdb86523b07 /gcc/diagnostic.c | |
parent | 0250ba589bc7b294d3d1372372b79ea0c9c19817 (diff) |
[PATCH] Diagnostic included-from loop
https://gcc.gnu.org/ml/gcc-patches/2018-08/msg00416.html
* diagnostic.c (diagnostic_report_current_module): Reroll
included-at loop. Translate text.
From-SVN: r263341
Diffstat (limited to 'gcc/diagnostic.c')
-rw-r--r-- | gcc/diagnostic.c | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c index c61e0c4572a..5205944738a 100644 --- a/gcc/diagnostic.c +++ b/gcc/diagnostic.c @@ -587,22 +587,26 @@ diagnostic_report_current_module (diagnostic_context *context, location_t where) set_last_module (context, map); if (! MAIN_FILE_P (map)) { - map = INCLUDED_FROM (line_table, map); - const char *line_col - = maybe_line_and_column (LAST_SOURCE_LINE (map), - context->show_column - ? LAST_SOURCE_COLUMN (map) : 0); - pp_verbatim (context->printer, - "In file included from %r%s%s%R", "locus", - LINEMAP_FILE (map), line_col); - while (! MAIN_FILE_P (map)) + bool first = true; + do { map = INCLUDED_FROM (line_table, map); - line_col = maybe_line_and_column (LAST_SOURCE_LINE (map), 0); - pp_verbatim (context->printer, - ",\n from %r%s%s%R", "locus", - LINEMAP_FILE (map), line_col); + const char *line_col + = maybe_line_and_column (LAST_SOURCE_LINE (map), + first && context->show_column + ? SOURCE_COLUMN (map, where) : 0); + static const char *const msgs[] = + { + N_("In file included from"), + N_(" from"), + }; + unsigned index = !first; + pp_verbatim (context->printer, "%s%s %r%s%s%R", + first ? "" : ",\n", _(msgs[index]), + "locus", LINEMAP_FILE (map), line_col); + first = false; } + while (! MAIN_FILE_P (map)); pp_verbatim (context->printer, ":"); pp_newline (context->printer); } |