blob: f880d216cba8c0153c11281ba9b4ca5bfb943b67 [file] [log] [blame]
Diana Picuse440f992016-06-23 09:19:16 +00001; RUN: not llc -march=amdgcn < %s 2>&1 | FileCheck %s
Matt Arsenaultfdcd39a2015-07-28 18:29:14 +00002
Matt Arsenaulta2025382017-08-03 23:24:05 +00003; CHECK: LLVM ERROR: indirect calls not handled
4
Matt Arsenaultfdcd39a2015-07-28 18:29:14 +00005; Make sure that AMDGPUPromoteAlloca doesn't crash if the called
6; function is a constantexpr cast of a function.
7
8declare void @foo(float*) #0
9declare void @foo.varargs(...) #0
10
Matt Arsenaulta2025382017-08-03 23:24:05 +000011; XCHECK: in function crash_call_constexpr_cast{{.*}}: unsupported call to function foo
Matt Arsenault3dbeefa2017-03-21 21:39:51 +000012define amdgpu_kernel void @crash_call_constexpr_cast() #0 {
Matt Arsenaultfdcd39a2015-07-28 18:29:14 +000013 %alloca = alloca i32
14 call void bitcast (void (float*)* @foo to void (i32*)*)(i32* %alloca) #0
15 ret void
16}
17
Matt Arsenaulta2025382017-08-03 23:24:05 +000018; XCHECK: in function crash_call_constexpr_cast{{.*}}: unsupported call to function foo.varargs
Matt Arsenault3dbeefa2017-03-21 21:39:51 +000019define amdgpu_kernel void @crash_call_constexpr_cast_varargs() #0 {
Matt Arsenaultfdcd39a2015-07-28 18:29:14 +000020 %alloca = alloca i32
21 call void bitcast (void (...)* @foo.varargs to void (i32*)*)(i32* %alloca) #0
22 ret void
23}
24
25attributes #0 = { nounwind }