[Bug c++/32016] sizeof(class) always a multiple of 4 on 32 bit machine

2007-05-21 Thread bliss1940-bbs at yahoo dot com
--- Comment #8 from bliss1940-bbs at yahoo dot com 2007-05-22 01:16 --- (In reply to comment #7) > On arm-elf structures are padded/aligned to a 4-byte boundary. This is a > "feature" of the ABI. The microsoft compiler obviously conforms to a different > ABI, which is why you get differe

[Bug c++/32016] sizeof(class) always a multiple of 4 on 32 bit machine

2007-05-21 Thread pbrook at gcc dot gnu dot org
--- Comment #7 from pbrook at gcc dot gnu dot org 2007-05-21 23:55 --- On arm-elf structures are padded/aligned to a 4-byte boundary. This is a "feature" of the ABI. The microsoft compiler obviously conforms to a different ABI, which is why you get different results. Both are "correct".

[Bug c++/32016] sizeof(class) always a multiple of 4 on 32 bit machine

2007-05-21 Thread pinskia at gcc dot gnu dot org
--- Comment #6 from pinskia at gcc dot gnu dot org 2007-05-21 23:53 --- (In reply to comment #5) > (In reply to comment #3) > > > Try: > > struct a33 > > { > > struct Char1 a1; > > struct Char1 a2; > > }; > > And see what size/offset the structs are at. Again this is an ABI issue >

[Bug c++/32016] sizeof(class) always a multiple of 4 on 32 bit machine

2007-05-21 Thread bliss1940-bbs at yahoo dot com
--- Comment #5 from bliss1940-bbs at yahoo dot com 2007-05-21 23:48 --- (In reply to comment #3) > Try: > struct a33 > { > struct Char1 a1; > struct Char1 a2; > }; > And see what size/offset the structs are at. Again this is an ABI issue Simply saying it's an ABI issue doesn't mak

[Bug c++/32016] sizeof(class) always a multiple of 4 on 32 bit machine

2007-05-21 Thread bliss1940-bbs at yahoo dot com
--- Comment #4 from bliss1940-bbs at yahoo dot com 2007-05-21 23:22 --- (In reply to comment #3) I'm using arm-elf. Thanks for the __attribute__((packed)). That does indeed remove the hole at the end. I think we should agree to disagree. You say it's an ABI issue but that seems impo

[Bug c++/32016] sizeof(class) always a multiple of 4 on 32 bit machine

2007-05-21 Thread pinskia at gcc dot gnu dot org
--- Comment #3 from pinskia at gcc dot gnu dot org 2007-05-21 22:24 --- (In reply to comment #2) > To beat a dead horse again, the data members are suitably aligned in > Microsoft's struct. For the GNU folk to say the extra padding is for data > alignment or is an ABI issue is misleadin

[Bug c++/32016] sizeof(class) always a multiple of 4 on 32 bit machine

2007-05-21 Thread bliss1940-bbs at yahoo dot com
--- Comment #2 from bliss1940-bbs at yahoo dot com 2007-05-21 22:18 --- (In reply to comment #1) I don't think I said GCC was in error, but just different. Maybe we can come to an agreement here, or maybe not. Let's see. I certainly would expect the ARM7 would prefer that 4 byte oper

[Bug c++/32016] sizeof(class) always a multiple of 4 on 32 bit machine

2007-05-20 Thread pinskia at gcc dot gnu dot org
--- Comment #1 from pinskia at gcc dot gnu dot org 2007-05-21 02:39 --- > Just to make myself clear, this isn't a data alignment thing. Actually it is a data alignment issue, the ABI for arm most likely says objects larger than a certain size are aligned to 32bits. I think you need to