This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: .size directives and flexible array members
- From: Andreas Schwab <schwab at suse dot de>
- To: Ian Lance Taylor <iant at google dot com>
- Cc: "Marcin 'Qrczak' Kowalczyk" <qrczak at knm dot org dot pl>, gcc at gcc dot gnu dot org
- Date: Sun, 27 Aug 2006 20:25:34 +0200
- Subject: Re: .size directives and flexible array members
- References: <87r6z2w4bu.fsf@qrnik.zagroda> <m3psemjdy3.fsf@localhost.localdomain>
Ian Lance Taylor <iant@google.com> writes:
> "Marcin 'Qrczak' Kowalczyk" <qrczak@knm.org.pl> writes:
>
>> gcc-4.1.0-0.20051206r108118 emits wrong .size directives for
>> statically initialized objects with a flexible array member,
>> e.g.:
>>
>> struct {int x; int y[];} obj = {1, {2, 3}};
>>
>> .globl obj
>> .data
>> .align 4
>> .type obj, @object
>> .size obj, 4
>> obj:
>> .long 1
>> .long 2
>> .long 3
>>
>> Can this have serious effects (like overlapped or split objects),
>> or is .size used only for e.g. debugging?
>
> In general .size is only used for debugging purposes.
It is also used in connection with copy relocations. That's the only case
were accurate size information is important, AFAIK.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."