re PR middle-end/56461 (GCC is leaking lots of memory)
authorJakub Jelinek <jakub@redhat.com>
Mon, 4 Mar 2013 21:52:08 +0000 (22:52 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 4 Mar 2013 21:52:08 +0000 (22:52 +0100)
PR middle-end/56461
* diagnostic.c (diagnostic_append_note): Save and restore old prefix.

From-SVN: r196445

gcc/ChangeLog
gcc/diagnostic.c

index 4b469dfa1cc28c6576f3863300542696f93507e5..15897c51ce9ef98ec34a31c5aff094efb9d1ae8e 100644 (file)
@@ -1,3 +1,8 @@
+2013-03-04  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/56461
+       * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
+
 2013-03-04  Martin Jambor  <mjambor@suse.cz>
 
        * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
index 9335d588e806eea8d98794f1c97aaf7db687a2d6..a365c608a9151a514b3d829e9dd9d40b400f9773 100644 (file)
@@ -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);
 }