]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR bootstrap/44426 (gcc 4.5.0 requires c9x compiler to build)
authorJakub Jelinek <jakub@redhat.com>
Mon, 21 Jun 2010 16:26:25 +0000 (18:26 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 21 Jun 2010 16:26:25 +0000 (18:26 +0200)
PR bootstrap/44426
* sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
prototype.
(sel_print_to_dot): Remove macro.
(sel_print): Likewise.  New prototype.
* sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
(sel_print): New function.

From-SVN: r161092

gcc/ChangeLog
gcc/sel-sched-dump.c
gcc/sel-sched-dump.h

index c171ca39fd088e4ee4535971aab3e5abacd5a10e..aa4d2a877e496b6300d12f1c905e292d6e709674 100644 (file)
@@ -3,6 +3,14 @@
        * stmt.c (resolve_asm_operand_names): Fix handling
        of %%.
 
+       PR bootstrap/44426
+       * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
+       prototype.
+       (sel_print_to_dot): Remove macro.
+       (sel_print): Likewise.  New prototype.
+       * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
+       (sel_print): New function.
+
 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
index 1042a6e8e4985b21deba34b1e816d590ecd0e8d8..e9b486f332b87bbcad5d41ec53b7a8f17cb73084 100644 (file)
@@ -566,7 +566,7 @@ replace_str_in_buf (char *buf, const char *str1, const char *str2)
 }
 
 /* Replace characters in BUF that have special meaning in .dot file.  */
-void
+static void
 sel_prepare_string_for_dot_label (char *buf)
 {
   static char specials_from[7][2] = { "<", ">", "{", "|", "}", "\"",
@@ -579,6 +579,28 @@ sel_prepare_string_for_dot_label (char *buf)
     replace_str_in_buf (buf, specials_from[i], specials_to[i]);
 }
 
+/* This function acts like printf but dumps to the sched_dump file.  */
+void
+sel_print (const char *fmt, ...)
+{
+  va_list ap;
+  va_start (ap, fmt);
+  if (sched_dump_to_dot_p)
+    {
+      char *message;
+      if (vasprintf (&message, fmt, ap) >= 0 && message != NULL)
+       {
+         message = (char *) xrealloc (message, 2 * strlen (message) + 1);
+         sel_prepare_string_for_dot_label (message);
+         fprintf (sched_dump, "%s", message);
+         free (message);
+       }
+    }
+  else
+    vfprintf (sched_dump, fmt, ap);
+  va_end (ap);
+}
+
 /* Dump INSN with FLAGS.  */
 static void
 sel_dump_cfg_insn (insn_t insn, int flags)
index d4ebd779a7a6e9178181e87eb04cfae30d7b3a38..52d7aea693a7e22cd232f91253080c623222d499 100644 (file)
@@ -177,34 +177,13 @@ extern void dump_insn_1 (insn_t, int);
 extern void dump_insn (insn_t);
 extern void debug_insn (insn_t);
 
-extern void sel_prepare_string_for_dot_label (char *);
-
 /* When this flag is on, we are dumping to the .dot file.
    When it is off, we are dumping to log.  */
 extern bool sched_dump_to_dot_p;
-
-/* This macro acts like printf but dumps information to the .dot file.
-   Used when dumping control flow.  */
-#define sel_print_to_dot(...)                           \
-  do {                                                  \
-    int __j = 1 + 2 * snprintf (NULL, 0, __VA_ARGS__);  \
-    char *__s = XALLOCAVEC (char, __j);                 \
-    snprintf (__s, __j, __VA_ARGS__);                   \
-    sel_prepare_string_for_dot_label (__s);             \
-    fprintf (sched_dump, "%s", __s);                    \
-  } while (0)
-
-/* This macro acts like printf but dumps to the sched_dump file.  */
-#define sel_print(...)                                 \
-  do {                                                 \
-    if (sched_dump_to_dot_p)                            \
-      sel_print_to_dot (__VA_ARGS__);                   \
-    else                                                \
-      fprintf (sched_dump, __VA_ARGS__);                \
-  } while (0)
 \f
 
 /* Functions from sel-sched-dump.c.  */
+extern void sel_print (const char *fmt, ...) ATTRIBUTE_PRINTF_1;
 extern const char * sel_print_insn (const_rtx, int);
 extern void free_sel_dump_data (void);