This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: libgcc_s, Linux, and PT_GNU_EH_FRAME, and binutils
- From: Richard Henderson <rth at redhat dot com>
- To: Mark Mitchell <mark at codesourcery dot com>
- Cc: Jakub Jelinek <jakub at redhat dot com>, "Martin v. Loewis" <martin at v dot loewis dot de>, Richard Henderson <rth at twiddle dot net>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Tue, 6 Aug 2002 13:17:04 -0700
- Subject: Re: libgcc_s, Linux, and PT_GNU_EH_FRAME, and binutils
- References: <20020806135607.R1596@devserv.devel.redhat.com> <33530000.1028657929@warlock.codesourcery.com>
On Tue, Aug 06, 2002 at 11:18:49AM -0700, Mark Mitchell wrote:
> The real oddity here is that "long long : 64" is aligned more strictly
> than "long long" by the C compiler.
By *which* C compiler? Yes, gcc 3.2 aligns a long long bitfield
to 64-bit, but egcs 2.91 certainly does not.
struct s
{
int a;
long long : 64;
int b;
};
main()
{
struct s s;
printf("%ld\n", &s.b - &s.a);
return 0;
}
Yields:
egcs 1.1.2 3
gcc 2.95.3 3
gcc 2.96-108 4
gcc 3.0.3 4
gcc 3.2 4
So what do we do? Personally I'm for fixing the bug.
r~