summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/pascal-wchar-string.c
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2010-05-28 19:40:48 +0000
committerFariborz Jahanian <fjahanian@apple.com>2010-05-28 19:40:48 +0000
commit93bef10131528bc37782629360f1e037aa9a830a (patch)
tree8be46a9539e945b47e7459279044e1ce62087da7 /clang/test/CodeGen/pascal-wchar-string.c
parent76413597a99a48898a3a1b230fe1190765801641 (diff)
downloadbcm5719-llvm-93bef10131528bc37782629360f1e037aa9a830a.tar.gz
bcm5719-llvm-93bef10131528bc37782629360f1e037aa9a830a.zip
Fix a miscompile of wchar pascal strings.
(radar 8020384) llvm-svn: 104996
Diffstat (limited to 'clang/test/CodeGen/pascal-wchar-string.c')
-rw-r--r--clang/test/CodeGen/pascal-wchar-string.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/clang/test/CodeGen/pascal-wchar-string.c b/clang/test/CodeGen/pascal-wchar-string.c
new file mode 100644
index 00000000000..89e4de489f0
--- /dev/null
+++ b/clang/test/CodeGen/pascal-wchar-string.c
@@ -0,0 +1,31 @@
+// RUN: %clang_cc1 -emit-llvm -o - %s -fpascal-strings -fshort-wchar | FileCheck %s
+// rdar: // 8020384
+
+extern void abort (void);
+
+typedef unsigned short UInt16;
+
+typedef UInt16 UniChar;
+
+int main(int argc, char* argv[])
+{
+
+ char st[] = "\pfoo"; // pascal string
+ UniChar wt[] = L"\pbar"; // pascal Unicode string
+ UniChar wt1[] = L"\p";
+ UniChar wt2[] = L"\pgorf";
+
+ if (st[0] != 3)
+ abort ();
+ if (wt[0] != 3)
+ abort ();
+ if (wt1[0] != 0)
+ abort ();
+ if (wt2[0] != 4)
+ abort ();
+
+ return 0;
+}
+
+// CHECK: c"\03\00b\00a\00r\00\00\00"
+// CHECK: c"\04\00g\00o\00r\00f\00\00\00"
OpenPOWER on IntegriCloud