On Jan 27, 2008, at 1:03 AM, Duncan Sands <[EMAIL PROTECTED]> wrote:
> Hi Evan, > >> Can you get me a test case? I need to see what gcc is doing. Thanks, > > Sure. Zero sized fields in structs may not be very useful, but it is > still legal to use them, in particular you can take their address, > like this: > > struct Z {}; > > struct Y { > int i; > struct Z z; > }; > > void *f(struct Y *y) { > return &y->z; > } > > This used to work before your patch. For that matter, llvm-gcc-4.2 > itself fails to build here (linux x86-32; crashes compiling > libgcov.c) for > what looks to be the same reason. Also, don't forget that Ada can > have > fields of variable size in various places in a struct, and these can > be > represented by zero-size LLVM fields (this kind of struct doesn't get > passed to functions by copy though). > > Can you please explain why you made this change (a testcase would be > good) I did check in two test cases in a subsequent commit. Those used to choke llvm-gcc. I'll look at this today. It's obvious not all zero sized aggregates are not created equal. Evan > > > Best wishes, > > Duncan. _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits