This patchlet is an easy low hanging fruit in the pile of local patches I have. It turns old style emulation of inline functions into real inline functions.
Tested on x86_64-suse-linux. Applied to mainline. -- Gaby 2013-08-23 Gabriel Dos Reis <g...@integrable-solutions.net> * pretty-print.h (pp_newline_and_flush): Declare. Remove macro definition. (pp_newline_and_indent): Likewise. (pp_separate_with): Likewise. * pretty-print.c (pp_newline_and_flush): Define. (pp_newline_and_indent): Likewise. (pp_separate_with): Likewise. Index: pretty-print.c =================================================================== --- pretty-print.c (revision 201939) +++ pretty-print.c (working copy) @@ -902,6 +902,37 @@ pp->padding = pp_none; } } + +// Add a newline to the pretty printer PP and flush formatted text. + +void +pp_newline_and_flush (pretty_printer *pp) +{ + pp_newline (pp); + pp_flush (pp); + pp_needs_newline (pp) = false; +} + +// Add a newline to the pretty printer PP, followed by indentation. + +void +pp_newline_and_indent (pretty_printer *pp, int n) +{ + pp_indentation (pp) += n; + pp_newline (pp); + pp_indent (pp); + pp_needs_newline (pp) = false; +} + +// Add separator C, followed by a single whitespace. + +void +pp_separate_with (pretty_printer *pp, char c) +{ + pp_character (pp, c); + pp_space (pp); +} + /* The string starting at P has LEN (at least 1) bytes left; if they start with a valid UTF-8 sequence, return the length of that Index: pretty-print.h =================================================================== --- pretty-print.h (revision 201939) +++ pretty-print.h (working copy) @@ -246,26 +246,8 @@ #define pp_backquote(PP) pp_character (PP, '`') #define pp_doublequote(PP) pp_character (PP, '"') #define pp_underscore(PP) pp_character (PP, '_') -#define pp_newline_and_flush(PP) \ - do { \ - pp_newline (PP); \ - pp_flush (PP); \ - pp_needs_newline (PP) = false; \ - } while (0) -#define pp_newline_and_indent(PP, N) \ - do { \ - pp_indentation (PP) += N; \ - pp_newline (PP); \ - pp_indent (PP); \ - pp_needs_newline (PP) = false; \ - } while (0) #define pp_maybe_newline_and_indent(PP, N) \ if (pp_needs_newline (PP)) pp_newline_and_indent (PP, N) -#define pp_separate_with(PP, C) \ - do { \ - pp_character (PP, C); \ - pp_space (PP); \ - } while (0) #define pp_scalar(PP, FORMAT, SCALAR) \ do \ { \ @@ -298,6 +280,9 @@ extern const char *pp_last_position_in_text (const pretty_printer *); extern void pp_emit_prefix (pretty_printer *); extern void pp_append_text (pretty_printer *, const char *, const char *); +extern void pp_newline_and_flush (pretty_printer *); +extern void pp_newline_and_indent (pretty_printer *, int); +extern void pp_separate_with (pretty_printer *, char); /* If we haven't already defined a front-end-specific diagnostics style, use the generic one. */