This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Zero-length arrays


What *precisely*, are the semantics of this feature.  Consider the following:

struct foo {int a; int x[0]; int y;} xyz = {1, {2, 3, 4}, 5};

int
sub1 (struct foo *p)
{
  return p->y;
}

This compiles with no errors with the current tree and XYZ contains in
memory the integers 1 through 5 as consecutive words.

But sub1 would return 2 when passsed &xyz, not the correct value of 5.

Of course there's no way to support returning the proper value here, so I
think the initializer should produce an error message.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]