I was confused by the comment to pp_format: /* The following format specifiers are recognized as being client independent: ... %p: pointer ... */
into thinking that %p is printed in a host-independent manner, when "client independent" means in relation to different pretty-printers e.g the C++ pretty printer, or normal tree one etc. The following patch removes the overzealous test case and clarifies the comment. OK for trunk? I'm working on a followup that makes selftest failures easier to track down. gcc/ChangeLog: PR bootstrap/71471 * pretty-print.c (pp_indent): Specify that %p is printed in a host-dependent manner. (test_pp_format): Remove the test for %p. --- gcc/pretty-print.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gcc/pretty-print.c b/gcc/pretty-print.c index d805da4..8febda0 100644 --- a/gcc/pretty-print.c +++ b/gcc/pretty-print.c @@ -279,7 +279,7 @@ pp_indent (pretty_printer *pp) %wd, %wi, %wo, %wu, %wx: HOST_WIDE_INT versions. %c: character. %s: string. - %p: pointer. + %p: pointer (printed in a host-dependent manner). %r: if pp_show_color(pp), switch to color identified by const char *. %R: if pp_show_color(pp), reset color. %m: strerror(text->err_no) - does not consume a value from args_ptr. @@ -1317,8 +1317,8 @@ test_pp_format () assert_pp_format ("A 12345678", "%c %x", 'A', 0x12345678); assert_pp_format ("hello world 12345678", "%s %x", "hello world", 0x12345678); - assert_pp_format ("0xcafebabe 12345678", "%p %x", (void *)0xcafebabe, - 0x12345678); + /* We can't test for %p; the pointer is printed in an implementation-defined + manner. */ assert_pp_format ("normal colored normal 12345678", "normal %rcolored%R normal %x", "error", 0x12345678); -- 1.8.5.3