This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[patch] Fix Sun compiler compat. for empty structs (PR build/14003)
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: gdb-patches at sourceware dot org
- Date: Tue, 12 Jun 2012 22:47:51 +0200
- Subject: [patch] Fix Sun compiler compat. for empty structs (PR build/14003)
Hi,
build fails on solaris in infrun.c because of empty inferior_suspend_state struct
http://sourceware.org/bugzilla/show_bug.cgi?id=14003
I do not think the struct should be completely removed as it may suggest where
is appropriate to put some possible new fields.
Tom suggested putting there 'char dummy;' but this degrade normal systems
because of some worse systems.
Providing autoconf check for it seems excessive for me.
Any style issues with this fix?
Thanks,
Jan
2012-06-12 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..c4ad434 100644
--- a/gdb/inferior.h
+++ b/gdb/inferior.h
@@ -395,11 +395,13 @@ struct inferior_control_state
/* Inferior process specific part of `struct infcall_suspend_state'.
- Inferior thread counterpart is `struct thread_suspend_state'. */
+ Inferior thread counterpart is `struct thread_suspend_state'.
struct inferior_suspend_state
{
+ Currently unused and some compilers do not accept empty structures.
};
+ */
/* GDB represents the state of each program execution with an object
called an inferior. An inferior typically corresponds to a process
@@ -430,8 +432,11 @@ struct inferior
struct inferior_control_state control;
/* State of inferior process to restore after GDB is done with an inferior
- call. See `struct inferior_suspend_state'. */
+ call. See `struct inferior_suspend_state'.
+
+ Currently unused and some compilers do not accept empty structures.
struct inferior_suspend_state suspend;
+ */
/* 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..81182c2 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -6639,7 +6639,10 @@ siginfo_make_value (struct gdbarch *gdbarch, struct internalvar *var,
struct infcall_suspend_state
{
struct thread_suspend_state thread_suspend;
+
+ /* Currently unused and some compilers do not accept empty structures.
struct inferior_suspend_state inferior_suspend;
+ */
/* Other fields: */
CORE_ADDR stop_pc;
@@ -6693,7 +6696,10 @@ save_infcall_suspend_state (void)
}
inf_state->thread_suspend = tp->suspend;
+
+ /* Currently unused and some compilers do not accept empty structures.
inf_state->inferior_suspend = inf->suspend;
+ */
/* run_inferior_call will not use the signal due to its `proceed' call with
GDB_SIGNAL_0 anyway. */
@@ -6717,7 +6723,10 @@ restore_infcall_suspend_state (struct infcall_suspend_state *inf_state)
struct gdbarch *gdbarch = get_regcache_arch (regcache);
tp->suspend = inf_state->thread_suspend;
+
+ /* Currently unused and some compilers do not accept empty structures.
inf->suspend = inf_state->inferior_suspend;
+ */
stop_pc = inf_state->stop_pc;