Commit Message
- A few missing casts required by C++, resulting in:
../../src/gdb/ser-go32.c:795:21: error: invalid conversion from 'const void*' to 'const char*' [-fpermissive]
etc.
- dos_noop has an incompatible prototype with struct serial_ops's
setparity, resulting in:
../../src/gdb/ser-go32.c:874:1: error: invalid conversion from 'int (*)(serial*)' to 'int (*)(serial*, int)' [-fpermissive]
(I thought of calling the ser-base.c default methods, but djgpp
doesn't include ser-base.c in the build.)
gdb/ChangeLog:
2016-07-21 Pedro Alves <palves@redhat.com>
* go32-nat.c (go32_create_inferior): Add cast.
* ser-go32.c (dos_noop): Delete.
(dos_flush_output, dos_setparity, dos_drain_output): New
functions.
(dos_write): Add cast.
(dos_ops): Use dos_flush_output, dos_setparity and
dos_drain_output.
* top.c (do_chdir_cleanup): Add cast.
---
gdb/go32-nat.c | 2 +-
gdb/ser-go32.c | 27 ++++++++++++++++++++++-----
gdb/top.c | 2 +-
3 files changed, 24 insertions(+), 7 deletions(-)
Comments
> From: Pedro Alves <palves@redhat.com>
> Date: Thu, 21 Jul 2016 13:26:30 +0100
>
> - A few missing casts required by C++, resulting in:
>
> ../../src/gdb/ser-go32.c:795:21: error: invalid conversion from 'const void*' to 'const char*' [-fpermissive]
>
> etc.
>
> - dos_noop has an incompatible prototype with struct serial_ops's
> setparity, resulting in:
>
> ../../src/gdb/ser-go32.c:874:1: error: invalid conversion from 'int (*)(serial*)' to 'int (*)(serial*, int)' [-fpermissive]
>
> (I thought of calling the ser-base.c default methods, but djgpp
> doesn't include ser-base.c in the build.)
>
> gdb/ChangeLog:
> 2016-07-21 Pedro Alves <palves@redhat.com>
>
> * go32-nat.c (go32_create_inferior): Add cast.
> * ser-go32.c (dos_noop): Delete.
> (dos_flush_output, dos_setparity, dos_drain_output): New
> functions.
> (dos_write): Add cast.
> (dos_ops): Use dos_flush_output, dos_setparity and
> dos_drain_output.
> * top.c (do_chdir_cleanup): Add cast.
OK. Thanks for taking care of this port.
@@ -677,7 +677,7 @@ go32_create_inferior (struct target_ops *ops, char *exec_file,
if (cmdlen > 1024*1024)
error (_("Command line too long."));
- cmdline = xmalloc (cmdlen + 4);
+ cmdline = (char *) xmalloc (cmdlen + 4);
strcpy (cmdline + 1, args);
/* If the command-line length fits into DOS 126-char limits, use the
DOS command tail format; otherwise, tell v2loadimage to pass it
@@ -593,9 +593,26 @@ dos_close (struct serial *scb)
}
+/* Implementation of the serial_ops flush_output method. */
static int
-dos_noop (struct serial *scb)
+dos_flush_output (struct serial *scb)
+{
+ return 0;
+}
+
+/* Implementation of the serial_ops setparity method. */
+
+static int
+dos_setparity (struct serial *scb, int parity)
+{
+ return 0;
+}
+
+/* Implementation of the serial_ops drain_output method. */
+
+static int
+dos_drain_output (struct serial *scb)
{
return 0;
}
@@ -792,7 +809,7 @@ dos_write (struct serial *scb, const void *buf, size_t count)
size_t fifosize = port->fifo ? 16 : 1;
long then;
size_t cnt;
- const char *str = buf;
+ const char *str = (const char *) buf;
while (count > 0)
{
@@ -857,7 +874,7 @@ static const struct serial_ops dos_ops =
NULL, /* fdopen, not implemented */
dos_readchar,
dos_write,
- dos_noop, /* flush output */
+ dos_flush_output,
dos_flush_input,
dos_sendbreak,
dos_raw,
@@ -868,8 +885,8 @@ static const struct serial_ops dos_ops =
dos_noflush_set_tty_state,
dos_setbaudrate,
dos_setstopbits,
- dos_noop,
- dos_noop, /* Wait for output to drain. */
+ dos_setparity,
+ dos_drain_output,
(void (*)(struct serial *, int))NULL /* Change into async mode. */
};
@@ -470,7 +470,7 @@ void (*pre_init_ui_hook) (void);
static void
do_chdir_cleanup (void *old_dir)
{
- chdir (old_dir);
+ chdir ((const char *) old_dir);
xfree (old_dir);
}
#endif