diff options
| author | Eli Friedman <eli.friedman@gmail.com> | 2013-06-11 21:48:11 +0000 |
|---|---|---|
| committer | Eli Friedman <eli.friedman@gmail.com> | 2013-06-11 21:48:11 +0000 |
| commit | 1f16b743d9255f5f75a85c52e3a02d04b4a1e590 (patch) | |
| tree | 00a39a3abf5b3384cbc2925ec012597d6373860b /clang/test/CodeGenObjC | |
| parent | bd9e549e218c1d47d3c7e44f668eae26418774bc (diff) | |
| download | bcm5719-llvm-1f16b743d9255f5f75a85c52e3a02d04b4a1e590.tar.gz bcm5719-llvm-1f16b743d9255f5f75a85c52e3a02d04b4a1e590.zip | |
Correctly handle designated initializers which modify an array initialized
with a string. This case is sort of tricky because we can't modify the
StringLiteral used to represent such initializers.
We are forced to decompose the string into individual characters.
Fixes <rdar://problem/10465114>.
llvm-svn: 183791
Diffstat (limited to 'clang/test/CodeGenObjC')
| -rw-r--r-- | clang/test/CodeGenObjC/designated-initializers.m | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/test/CodeGenObjC/designated-initializers.m b/clang/test/CodeGenObjC/designated-initializers.m new file mode 100644 index 00000000000..80dfdf3602c --- /dev/null +++ b/clang/test/CodeGenObjC/designated-initializers.m @@ -0,0 +1,8 @@ +// RUN: %clang_cc1 -triple i386-unknown-unknown %s -emit-llvm -o - | FileCheck %s + +// <rdar://problem/10465114> +struct overwrite_string_struct { + char L[3]; + int M; +} overwrite_string[] = { { { @encode(void**) }, 1 }, [0].L[1] = 'x'}; +// CHECK: [3 x i8] c"^xv", i32 1 |

