aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2008-01-29 19:30:05 +0000
committerEvan Cheng <evan.cheng@apple.com>2008-01-29 19:30:05 +0000
commitc7391264fed9afe1bba31b6e8e84deebdd1f3916 (patch)
treebf273bdd7c82c45011c04702aba8fc8a943dce04
parent03408917ba127906ebf3f305b8115cde9a649dc5 (diff)
downloadexternal_llvm-c7391264fed9afe1bba31b6e8e84deebdd1f3916.zip
external_llvm-c7391264fed9afe1bba31b6e8e84deebdd1f3916.tar.gz
external_llvm-c7391264fed9afe1bba31b6e8e84deebdd1f3916.tar.bz2
Update this test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46526 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/CFrontend/2008-01-25-ZeroSizedAggregate.c12
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 4e04e5d..643caff 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;
+}