[arch-general] gcc: loop do not terminate

Daniel Micay danielmicay at gmail.com
Tue May 14 05:42:04 EDT 2013


On Tue, May 14, 2013 at 5:02 AM,  <goodmenzy at gmail.com> wrote:
> On 2013-05-14 04:50:11, Daniel Micay wrote:
>> Date: Tue, 14 May 2013 04:50:11 -0400
>> From: Daniel Micay <danielmicay at gmail.com>
>> To: General Discussion about Arch Linux <arch-general at archlinux.org>
>> Subject: Re: [arch-general] gcc: loop do not terminate
>>
>> On Tue, May 14, 2013 at 3:49 AM,  <goodmenzy at gmail.com> wrote:
>> >   If this function initArr() is moved to the same cpp file of main(),
>> >   all optimization level get the same result.
>>
>> That's the great thing about undefined behaviour, you never know what
>> you'll get. It's really not something anyone should be relying on
>> though.... there's a well defined, valid way of declaring a
>> flexible-length struct member.
>
>    Could you please tell me the "well defined, valid way"?

The two ways given in my earlier message, either the standard C99
`foo_t array[];` for the last member or the GNU-ism (non-standard)
`foo_t array[0]`.

Using `array[1]` and indexing past the end isn't valid C.


More information about the arch-general mailing list