Patchwork libgo patch committed: Print to stderr

login
register
mail settings
Submitter Ian Taylor
Date Dec. 9, 2011, 4:42 p.m.
Message ID <mcrobvh7l30.fsf@dhcp-172-18-216-180.mtv.corp.google.com>
Download mbox | patch
Permalink /patch/130431/
State New
Headers show

Comments

Ian Taylor - Dec. 9, 2011, 4:42 p.m.
The predeclared print function in Go should print to stderr, not
stdout.  This patch from Rémy Oudompheng fixes libgo to do that.
Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu.
Committed to mainline.

Ian

Patch

diff -r e73cfc80d5d7 libgo/runtime/go-print.c
--- a/libgo/runtime/go-print.c	Thu Dec 08 21:02:49 2011 -0800
+++ b/libgo/runtime/go-print.c	Fri Dec 09 08:40:35 2011 -0800
@@ -18,43 +18,43 @@ 
 void
 __go_print_space ()
 {
-  putchar (' ');
+  putc (' ', stderr);
 }
 
 void
 __go_print_nl ()
 {
-  putchar ('\n');
+  putc ('\n', stderr);
 }
 
 void
 __go_print_string (struct __go_string val)
 {
-  printf ("%.*s", (int) val.__length, (const char *) val.__data);
+  fprintf (stderr, "%.*s", (int) val.__length, (const char *) val.__data);
 }
 
 void
 __go_print_uint64 (uint64_t val)
 {
-  printf ("%llu", (unsigned long long) val);
+  fprintf (stderr, "%llu", (unsigned long long) val);
 }
 
 void
 __go_print_int64 (int64_t val)
 {
-  printf ("%lld", (long long) val);
+  fprintf (stderr, "%lld", (long long) val);
 }
 
 void
 __go_print_double (double val)
 {
-  printf ("%.24g", val);
+  fprintf (stderr, "%.24g", val);
 }
 
 void
 __go_print_complex (__complex double val)
 {
-  printf ("(%.24g%s%.24gi)",
+  fprintf (stderr, "(%.24g%s%.24gi)",
 	  __builtin_creal (val),
 	  (__builtin_cimag (val) >= 0 || __builtin_isnan (__builtin_cimag(val))
 	   ? "+"
@@ -65,29 +65,29 @@ 
 void
 __go_print_bool (_Bool val)
 {
-  fputs (val ? "true" : "false", stdout);
+  fputs (val ? "true" : "false", stderr);
 }
 
 void
 __go_print_pointer (void *val)
 {
-  printf ("%p", val);
+  fprintf (stderr, "%p", val);
 }
 
 void
 __go_print_empty_interface (struct __go_empty_interface e)
 {
-  printf ("(%p,%p)", e.__type_descriptor, e.__object);
+  fprintf (stderr, "(%p,%p)", e.__type_descriptor, e.__object);
 }
 
 void
 __go_print_interface (struct __go_interface i)
 {
-  printf ("(%p,%p)", i.__methods, i.__object);
+  fprintf (stderr, "(%p,%p)", i.__methods, i.__object);
 }
 
 void
 __go_print_slice (struct __go_open_array val)
 {
-  printf ("[%d/%d]%p", val.__count, val.__capacity, val.__values);
+  fprintf (stderr, "[%d/%d]%p", val.__count, val.__capacity, val.__values);
 }