Undefined behavior in genautomata.c?
Dave Korn
dave.korn@artimi.com
Mon Sep 19 10:34:00 GMT 2005
----Original Message----
>From: Richard Henderson
>Sent: 19 September 2005 11:26
> On Mon, Sep 19, 2005 at 12:07:45PM +0200, Sebastian Pop wrote:
>> By the way, how is this different than detecting a bound on: ...
>> int foo[1335];
> ...
>> some_struct{ int foo[1335];} s;
>
> Because here the variables are *known* to have a specific size.
>
> Similarly with static and global variables, though you must be
> careful for
>
> struct S { struct B b; int x[]; };
> struct T { struct S s; int x2[10]; } t;
>
> where (&t.s) is used as an S in places that expect it, with 10
> data elements allocated for the flexible array member.
>
> In the case of the (fake) flexible array member, you do not know
> how large the object allocated from malloc was unless you can
> track down the actual malloc call.
Do you suppose the idiom is common enough that VRP could special-case
"arrays of size 1 at the end of a struct" ? And still obtain the benefits
of the optimisation in 99.99% of all non-variable-length-tail-array cases?
cheers,
DaveK
--
Can't think of a witty .sigline today....
More information about the Gcc
mailing list