diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-12-22 00:05:34 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-12-22 00:05:34 +0000 |
commit | 2bb0765bb4b56babcaa4bd353b7aa79e59211d6a (patch) | |
tree | 6f4dff41361555c2338034a7d53c85a3d0d0c2e2 /clang/test | |
parent | c6b473433bddc4d48c8771106026cf76ecc6c484 (diff) | |
download | bcm5719-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.c | 17 |
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 + } + } +}; |