summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen
diff options
context:
space:
mode:
authorPekka Jaaskelainen <pekka.jaaskelainen@tut.fi>2014-08-14 09:37:50 +0000
committerPekka Jaaskelainen <pekka.jaaskelainen@tut.fi>2014-08-14 09:37:50 +0000
commitab751a8f71d7dc4a463aa0bd837c59513697ed06 (patch)
tree698010329814e22086b3281f37108ec4e5c6f606 /clang/test/CodeGen
parentcdb45fa391125685e2e17795f4fddda5a867af52 (diff)
downloadbcm5719-llvm-ab751a8f71d7dc4a463aa0bd837c59513697ed06.tar.gz
bcm5719-llvm-ab751a8f71d7dc4a463aa0bd837c59513697ed06.zip
Fix a crash when compiling blocks in OpenCL with multiple
address spaces. llvm-svn: 215629
Diffstat (limited to 'clang/test/CodeGen')
-rw-r--r--clang/test/CodeGen/blocks-opencl.cl16
1 files changed, 16 insertions, 0 deletions
diff --git a/clang/test/CodeGen/blocks-opencl.cl b/clang/test/CodeGen/blocks-opencl.cl
new file mode 100644
index 00000000000..ab80f5eb7a2
--- /dev/null
+++ b/clang/test/CodeGen/blocks-opencl.cl
@@ -0,0 +1,16 @@
+// RUN: %clang_cc1 -O0 %s -ffake-address-space-map -emit-llvm -o - -fblocks -triple x86_64-unknown-unknown | FileCheck %s
+// This used to crash due to trying to generate a bitcase from a cstring
+// in the constant address space to i8* in AS0.
+
+void dummy(float (^op)(float))
+{
+}
+
+// CHECK: i8 addrspace(3)* getelementptr inbounds ([9 x i8] addrspace(3)* @.str, i32 0, i32 0)
+
+kernel void test_block()
+{
+ float (^X)(float) = ^(float x) { return x + 42.0f; };
+ dummy(X);
+}
+
OpenPOWER on IntegriCloud