[patchv2] Fix Sun compiler compat. for empty structs (PR build/14003)

Jan Kratochvil
2012-06-13T06:51:45Z

On Tue, 12 Jun 2012 23:51:16 +0200, Jan Kratochvil wrote:
> On Tue, 12 Jun 2012 23:24:13 +0200, Joel Brobecker wrote:
> > A structure type describes a sequentially allocated nonempty
> > set of member objects [...]
>
> oops, OK.

emptystruct.c:1:8: warning: struct has no members [-pedantic]

> > Perhaps using #if 0 instead might make it looks like a little less unusual,
> > not sure...
>
> While #if 0 is IIRC forbidden in general it would at least permit ctags to
> work.

Jan

2012-06-13 Jan Kratochvil <jan.kratochvil@redhat.com>

PR build/14003
* inferior.h (struct inferior_suspend_state): Comment out.
(struct inferior): Comment out the field suspend.
* infrun.c (struct infcall_suspend_state): Comment out the field
inferior_suspend.
(save_infcall_suspend_state, restore_infcall_suspend_state): Comment
out its assignment.

diff --git a/gdb/inferior.h b/gdb/inferior.h
index dfcbda4..3945962 100644
--- a/gdb/inferior.h
+++ b/gdb/inferior.h
@@ -397,9 +397,11 @@ struct inferior_control_state

Inferior thread counterpart is `struct thread_suspend_state'. */

+#if 0 /* Currently unused and empty structures are not valid C. */
struct inferior_suspend_state
{
};
+#endif

/* GDB represents the state of each program execution with an object
called an inferior. An inferior typically corresponds to a process
@@ -431,7 +433,9 @@ struct inferior

/* State of inferior process to restore after GDB is done with an inferior
call. See `struct inferior_suspend_state'. */
+#if 0 /* Currently unused and empty structures are not valid C. */
struct inferior_suspend_state suspend;
+#endif

/* True if this was an auto-created inferior, e.g. created from
following a fork; false, if this inferior was manually added by
diff --git a/gdb/infrun.c b/gdb/infrun.c
index b98e379..e6b7a5e 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -6639,7 +6639,9 @@ siginfo_make_value (struct gdbarch *gdbarch, struct internalvar *var,
struct infcall_suspend_state
{
struct thread_suspend_state thread_suspend;
+#if 0 /* Currently unused and empty structures are not valid C. */
struct inferior_suspend_state inferior_suspend;
+#endif

/* Other fields: */
CORE_ADDR stop_pc;
@@ -6693,7 +6695,9 @@ save_infcall_suspend_state (void)
}

inf_state->thread_suspend = tp->suspend;
+#if 0 /* Currently unused and empty structures are not valid C. */
inf_state->inferior_suspend = inf->suspend;
+#endif

/* run_inferior_call will not use the signal due to its `proceed' call with
GDB_SIGNAL_0 anyway. */
@@ -6717,7 +6721,9 @@ restore_infcall_suspend_state (struct infcall_suspend_state *inf_state)
struct gdbarch *gdbarch = get_regcache_arch (regcache);

tp->suspend = inf_state->thread_suspend;
+#if 0 /* Currently unused and empty structures are not valid C. */
inf->suspend = inf_state->inferior_suspend;
+#endif

stop_pc = inf_state->stop_pc;