From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16572 invoked by alias); 13 Jun 2012 08:30:56 -0000 Received: (qmail 16557 invoked by uid 22791); 13 Jun 2012 08:30:54 -0000 X-SWARE-Spam-Status: No, hits=-2.8 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,TW_EG,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from sibelius.xs4all.nl (HELO glazunov.sibelius.xs4all.nl) (83.163.83.176) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 13 Jun 2012 08:30:40 +0000 Received: from glazunov.sibelius.xs4all.nl (kettenis@localhost [127.0.0.1]) by glazunov.sibelius.xs4all.nl (8.14.5/8.14.3) with ESMTP id q5D8UEuG018222; Wed, 13 Jun 2012 10:30:14 +0200 (CEST) Received: (from kettenis@localhost) by glazunov.sibelius.xs4all.nl (8.14.5/8.14.3/Submit) id q5D8UBv8028230; Wed, 13 Jun 2012 10:30:11 +0200 (CEST) Date: Wed, 13 Jun 2012 08:30:00 -0000 Message-Id: <201206130830.q5D8UBv8028230@glazunov.sibelius.xs4all.nl> From: Mark Kettenis To: jan.kratochvil@redhat.com CC: brobecker@adacore.com, gdb-patches@sourceware.org In-reply-to: <20120613065059.GA11317@host2.jankratochvil.net> (message from Jan Kratochvil on Wed, 13 Jun 2012 08:50:59 +0200) Subject: Re: [patchv2] Fix Sun compiler compat. for empty structs (PR build/14003) References: <20120612204751.GA13700@host2.jankratochvil.net> <20120612212413.GS2687@adacore.com> <20120612215116.GA23941@host2.jankratochvil.net> <20120613065059.GA11317@host2.jankratochvil.net> Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2012-06/txt/msg00389.txt.bz2 > Date: Wed, 13 Jun 2012 08:50:59 +0200 > From: Jan Kratochvil > > 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 > > 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 At the risk of turning this into a bikeshed: Isn't it simpler to just put a dummy member inside that struct, and forget about the #if 0 stuff? struct inferior_suspend_state { /* Empty structures are not valid C. */ int unused; }; > /* 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; > >