summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-12-22 00:05:34 +0000
committerDouglas Gregor <dgregor@apple.com>2009-12-22 00:05:34 +0000
commit2bb0765bb4b56babcaa4bd353b7aa79e59211d6a (patch)
tree6f4dff41361555c2338034a7d53c85a3d0d0c2e2 /clang/test
parentc6b473433bddc4d48c8771106026cf76ecc6c484 (diff)
downloadbcm5719-llvm-2bb0765bb4b56babcaa4bd353b7aa79e59211d6a.tar.gz
bcm5719-llvm-2bb0765bb4b56babcaa4bd353b7aa79e59211d6a.zip
When filling in value initializations within an initializer list, be
sure to fill in the initialized member of a union when a member was explicitly designated. Fixes PR5843. llvm-svn: 91858
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/Sema/designated-initializers.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/clang/test/Sema/designated-initializers.c b/clang/test/Sema/designated-initializers.c
index 9e2dc88b9a9..7e4ed6892ae 100644
--- a/clang/test/Sema/designated-initializers.c
+++ b/clang/test/Sema/designated-initializers.c
@@ -231,4 +231,21 @@ int crazy_Y[] = {
[ 0 ? crazy_x : 4] = 1
};
+// PR5843
+struct expr {
+ int nargs;
+ union {
+ unsigned long int num;
+ struct expr *args[3];
+ } val;
+};
+struct expr expr0 = {
+ .nargs = 2,
+ .val = {
+ .args = {
+ [0] = (struct expr *)0,
+ [1] = (struct expr *)0
+ }
+ }
+};
OpenPOWER on IntegriCloud