diff options
-rw-r--r-- | test/CFrontend/2008-01-25-ZeroSizedAggregate.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/test/CFrontend/2008-01-25-ZeroSizedAggregate.c b/test/CFrontend/2008-01-25-ZeroSizedAggregate.c index 4e04e5dfbc..643caffb6d 100644 --- a/test/CFrontend/2008-01-25-ZeroSizedAggregate.c +++ b/test/CFrontend/2008-01-25-ZeroSizedAggregate.c @@ -12,8 +12,7 @@ void test2411(void) { checkx2411(a2411[0]); } -// A field that is an aggregates of size zero should be dropped during -// type conversion. +// Proper handling of zero sized fields during type conversion. typedef unsigned long long int Tal2ullong __attribute__((aligned(2))); struct S2525 { Tal2ullong: 0; @@ -29,3 +28,12 @@ struct { char * i[5]; } data; +// Taking address of a zero sized field. +struct Z {}; +struct Y { + int i; + struct Z z; +}; +void *f(struct Y *y) { + return &y->z; +} |