[llvm-commits] [llvm-gcc-4.2] r46966 - in /llvm-gcc-4.2/trunk/gcc: config/i386/i386.h config/rs6000/rs6000.h llvm-abi.h

Duncan Sands baldrick at free.fr
Mon Feb 11 12:10:14 PST 2008


Hi Dale,

> Treat struct { long long: 29; }; as int sized and
> aligned, rather than long long.  ABI issue.

if you look at the DECL_SIZE of the bitfield, rather than
the type size, I think it gives you 29.  If so, DECL_SIZE
should simplify things for you.  In fact as far as I can
see you should never use the type size for a record field.
For example the struct conversion stuff uses DECL_SIZE everywhere
(except at one point in the field indexing - I have a patch to fix
that which I'll apply at some point).  Not using the type size
makes all these "it's a big type shoved in a small place" problems
magically go away.

Ciao,

Duncan.



More information about the llvm-commits mailing list