summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenObjC
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2013-06-11 21:48:11 +0000
committerEli Friedman <eli.friedman@gmail.com>2013-06-11 21:48:11 +0000
commit1f16b743d9255f5f75a85c52e3a02d04b4a1e590 (patch)
tree00a39a3abf5b3384cbc2925ec012597d6373860b /clang/test/CodeGenObjC
parentbd9e549e218c1d47d3c7e44f668eae26418774bc (diff)
downloadbcm5719-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.m8
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
OpenPOWER on IntegriCloud