Mercurial > hg > CbC > CbC_llvm
diff clang/test/CodeGenSYCL/functionptr-addrspace.cpp @ 236:c4bab56944e8 llvm-original
LLVM 16
author | kono |
---|---|
date | Wed, 09 Nov 2022 17:45:10 +0900 |
parents | |
children | 1f2b6ac9f198 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/clang/test/CodeGenSYCL/functionptr-addrspace.cpp Wed Nov 09 17:45:10 2022 +0900 @@ -0,0 +1,25 @@ +// RUN: %clang_cc1 -no-opaque-pointers -fsycl-is-device -emit-llvm -triple spir64 -verify -emit-llvm %s -o - | FileCheck %s + +// expected-no-diagnostics + +template <typename Name, typename Func> +__attribute__((sycl_kernel)) void kernel_single_task(const Func &kernelFunc) { + kernelFunc(); +} + +// CHECK: define dso_local spir_func{{.*}}invoke_function{{.*}}(i32 ()* noundef %fptr, i32 addrspace(4)* noundef %ptr) +void invoke_function(int (*fptr)(), int *ptr) {} + +int f() { return 0; } + +int main() { + kernel_single_task<class fake_kernel>([=]() { + int (*p)() = f; + int (&r)() = *p; + int a = 10; + invoke_function(p, &a); + invoke_function(r, &a); + invoke_function(f, &a); + }); + return 0; +}