diff options
author | Jakub Jelinek <jakub@redhat.com> | 2010-06-21 18:26:25 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2010-06-21 18:26:25 +0200 |
commit | 6747788144887b569ab4fe3e986043e09c986963 (patch) | |
tree | 86fc98f46a0126cc9517263e47a96f27eb9f412e /gcc | |
parent | d34b4f64c879442fb29b59301425fc0087fea5dd (diff) | |
download | gcc-6747788144887b569ab4fe3e986043e09c986963.zip gcc-6747788144887b569ab4fe3e986043e09c986963.tar.gz gcc-6747788144887b569ab4fe3e986043e09c986963.tar.bz2 |
re PR bootstrap/44426 (gcc 4.5.0 requires c9x compiler to build)
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/sel-sched-dump.c | 24 | ||||
-rw-r--r-- | gcc/sel-sched-dump.h | 23 |
3 files changed, 32 insertions, 23 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c171ca3..aa4d2a8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/sel-sched-dump.c b/gcc/sel-sched-dump.c index 1042a6e..e9b486f 100644 --- a/gcc/sel-sched-dump.c +++ b/gcc/sel-sched-dump.c @@ -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) diff --git a/gcc/sel-sched-dump.h b/gcc/sel-sched-dump.h index d4ebd77..52d7aea 100644 --- a/gcc/sel-sched-dump.h +++ b/gcc/sel-sched-dump.h @@ -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) /* 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); |