This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [patch] Fix Sun compiler compat. for empty structs (PR build/14003)
- From: Joel Brobecker <brobecker at adacore dot com>
- To: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Tue, 12 Jun 2012 14:24:13 -0700
- Subject: Re: [patch] Fix Sun compiler compat. for empty structs (PR build/14003)
- References: <20120612204751.GA13700@host2.jankratochvil.net>
> Tom suggested putting there 'char dummy;' but this degrade normal systems
> because of some worse systems.
Actually, the compiler is somewhat correct in this case. In C89,
it's really fuzzy whether empty structs are allowed or not, but
my understanding is that it is forbidden with C99:
A structure type describes a sequentially allocated nonempty
set of member objects [...]
So I think that we shouldn't be defining empty structs anyway
(to my dismay - I don't know what would be wrong with empty
structures, but ISTR seeing a discussion about something similar
with Ada, whereby two distinct objects must have distinct addresses,
and thus must have a non-zero size).
> Providing autoconf check for it seems excessive for me.
In light of the above, agreed.
> 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.
Just my 2 cents: Given the number of such structs being allocated,
I'd rather waste the few bytes than making the code uglier. But
it's not a strong opinion, and I'd accept this patch too. Perhaps
using #if 0 instead might make it looks like a little less unusual,
not sure...
--
Joel