From 4432aa6c814dbf34b4fd9470cc276b30bb200e38 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 4 Mar 2013 22:52:08 +0100 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/diagnostic.c | 3 +++ 2 files changed, 8 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4b469dfa1cc..15897c51ce9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-03-04 Jakub Jelinek + + PR middle-end/56461 + * diagnostic.c (diagnostic_append_note): Save and restore old prefix. + 2013-03-04 Martin Jambor * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in 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); } -- 2.30.2