[3/4] gdbserver: Ensure all debug output uses debug functions

Message ID 1c6b9535-0248-3e7f-d63a-34446967fcf7@suse.de
State New, archived
Headers

Commit Message

Tom de Vries June 19, 2019, 3:19 p.m. UTC
  On 19-06-19 15:17, Tom Tromey wrote:
>>>>>> "Tom" == Tom de Vries <tdevries@suse.de> writes:
> 
> Tom> This seems to fix it.
> 
> This needs a ChangeLog entry but is otherwise ok.  Thanks.
> 

Committed as attached.

Thanks,
- Tom
  

Patch

[gdb] Fix clang buildbreaker

Building gdb with clang, I run into:
...
src/gdb/gdbserver/linux-low.c:6190:41: error: comparison of unsigned \
  expression < 0 is always false [-Werror,-Wtautological-compare]
          if (debug_write ("sigchld_handler\n",
                           sizeof ("sigchld_handler\n") - 1) < 0)
                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~
...

This regression is introduced by commit a7e559cc08 "gdbserver: Ensure all
debug output uses debug functions", which replaces calls to write with result
type ssize_t with calls to debug_write with result type size_t.

Fix this by making debug_write return ssize_t.

Build and reg-tested on x86_64-linux.

gdb/gdbserver/ChangeLog:

2019-06-19  Tom de Vries  <tdevries@suse.de>

	* debug.h (debug_write): Change return type to ssize_t.
	* debug.c (debug_write): Same.

---
 gdb/gdbserver/debug.c | 2 +-
 gdb/gdbserver/debug.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gdb/gdbserver/debug.c b/gdb/gdbserver/debug.c
index a1cf5dbf7a..19f11fc17c 100644
--- a/gdb/gdbserver/debug.c
+++ b/gdb/gdbserver/debug.c
@@ -133,7 +133,7 @@  do_debug_exit (const char *function_name)
 
 /* See debug.h.  */
 
-size_t
+ssize_t
 debug_write (const void *buf, size_t nbyte)
 {
   int fd = fileno (debug_file);
diff --git a/gdb/gdbserver/debug.h b/gdb/gdbserver/debug.h
index 29e58ad8a4..07e94eac6e 100644
--- a/gdb/gdbserver/debug.h
+++ b/gdb/gdbserver/debug.h
@@ -36,7 +36,7 @@  void do_debug_enter (const char *function_name);
 void do_debug_exit (const char *function_name);
 
 /* Async signal safe debug output function that calls write directly.  */
-size_t debug_write (const void *buf, size_t nbyte);
+ssize_t debug_write (const void *buf, size_t nbyte);
 
 /* These macros are for use in major functions that produce a lot of
    debugging output.  They help identify in the mass of debugging output