summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/darwin-string-literals.c
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2012-03-30 00:26:17 +0000
committerBill Wendling <isanbard@gmail.com>2012-03-30 00:26:17 +0000
commit82b87f19e22a8bd53d3e1faa9cf3029daa0bac5b (patch)
treeb471424710c2b5f406072aff6fc5cd0fcf2c7ba4 /clang/test/CodeGen/darwin-string-literals.c
parentab468b03815a8454b4bda1e5b4f20bc1ad7f1857 (diff)
downloadbcm5719-llvm-82b87f19e22a8bd53d3e1faa9cf3029daa0bac5b.tar.gz
bcm5719-llvm-82b87f19e22a8bd53d3e1faa9cf3029daa0bac5b.zip
The UTF16 string referenced by a CFString should go into the __TEXT,__ustring
section. A 'normal' string will go into the __TEXT,__const section, but this isn't good for UTF16 strings. The __ustring section allows for coalescing, among other niceties (such as allowing the linker to easily split up strings). Instead of outputting the UTF16 string as a series of bytes, output it as a series of shorts. The back-end will then nicely place the UTF16 string into the correct section, because it's a mensch. <rdar://problem/10655949> llvm-svn: 153710
Diffstat (limited to 'clang/test/CodeGen/darwin-string-literals.c')
-rw-r--r--clang/test/CodeGen/darwin-string-literals.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/clang/test/CodeGen/darwin-string-literals.c b/clang/test/CodeGen/darwin-string-literals.c
index 6f9e0d2a63e..968386a90e9 100644
--- a/clang/test/CodeGen/darwin-string-literals.c
+++ b/clang/test/CodeGen/darwin-string-literals.c
@@ -2,13 +2,16 @@
// CHECK-LSB: @.str = private unnamed_addr constant [8 x i8] c"string0\00"
// CHECK-LSB: @.str1 = linker_private unnamed_addr constant [8 x i8] c"string1\00"
-// CHECK-LSB: @.str2 = internal unnamed_addr constant [36 x i8] c"h\00e\00l\00l\00o\00 \00\92! \00\03& \00\90! \00w\00o\00r\00l\00d\00\00\00", align 2
+// CHECK-LSB: @.str2 = internal unnamed_addr constant [18 x i16] [i16 104, i16 101, i16 108, i16 108, i16 111, i16 32, i16 8594, i16 32, i16 9731, i16 32, i16 8592, i16 32, i16 119, i16 111, i16 114, i16 108, i16 100, i16 0], align 2
+// CHECK-LSB: @.str4 = internal unnamed_addr constant [6 x i16] [i16 116, i16 101, i16 115, i16 116, i16 8482, i16 0], align 2
+
// RUN: %clang_cc1 -triple powerpc-apple-darwin9 -emit-llvm %s -o - | FileCheck -check-prefix MSB %s
// CHECK-MSB: @.str = private unnamed_addr constant [8 x i8] c"string0\00"
// CHECK-MSB: @.str1 = linker_private unnamed_addr constant [8 x i8] c"string1\00"
-// CHECK-MSB: @.str2 = internal unnamed_addr constant [36 x i8] c"\00h\00e\00l\00l\00o\00 !\92\00 &\03\00 !\90\00 \00w\00o\00r\00l\00d\00\00", align 2
+// CHECK-MSB: @.str2 = internal unnamed_addr constant [18 x i16] [i16 104, i16 101, i16 108, i16 108, i16 111, i16 32, i16 8594, i16 32, i16 9731, i16 32, i16 8592, i16 32, i16 119, i16 111, i16 114, i16 108, i16 100, i16 0], align 2
+// CHECK-MSB: @.str4 = internal unnamed_addr constant [6 x i16] [i16 116, i16 101, i16 115, i16 116, i16 8482, i16 0], align 2
const char *g0 = "string0";
const void *g1 = __builtin___CFStringMakeConstantString("string1");
OpenPOWER on IntegriCloud