diff options
author | Jakub Jelinek <jakub@redhat.com> | 2013-03-04 22:52:08 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2013-03-04 22:52:08 +0100 |
commit | 4432aa6c814dbf34b4fd9470cc276b30bb200e38 (patch) | |
tree | cc4812a5c55e7c5f4deff819aa1f271a7d2e5608 /gcc/diagnostic.c | |
parent | 48c414032a04506344c857cd69084fa9cbc5229d (diff) | |
download | gcc-4432aa6c814dbf34b4fd9470cc276b30bb200e38.tar.gz |
re PR middle-end/56461 (GCC is leaking lots of memory)
PR middle-end/56461
* diagnostic.c (diagnostic_append_note): Save and restore old prefix.
From-SVN: r196445
Diffstat (limited to 'gcc/diagnostic.c')
-rw-r--r-- | gcc/diagnostic.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c index 9335d588e80..a365c608a91 100644 --- a/gcc/diagnostic.c +++ b/gcc/diagnostic.c @@ -828,6 +828,7 @@ diagnostic_append_note (diagnostic_context *context, { diagnostic_info diagnostic; va_list ap; + const char *saved_prefix; va_start (ap, gmsgid); diagnostic_set_info (&diagnostic, gmsgid, &ap, location, DK_NOTE); @@ -836,12 +837,14 @@ diagnostic_append_note (diagnostic_context *context, va_end (ap); return; } + saved_prefix = pp_get_prefix (context->printer); pp_set_prefix (context->printer, diagnostic_build_prefix (context, &diagnostic)); pp_newline (context->printer); pp_format (context->printer, &diagnostic.message); pp_output_formatted_text (context->printer); pp_destroy_prefix (context->printer); + pp_set_prefix (context->printer, saved_prefix); diagnostic_show_locus (context, &diagnostic); va_end(ap); } |