https://bugs.llvm.org/show_bug.cgi?id=41012
Bug ID: 41012
Summary: Narrowing conversions of non-constant expressions
can't be used to create vector literals
Product: clang
Version: trunk
Hardware: PC
OS: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: OpenCL
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected], [email protected]
Trying to compile the following test program:
-------------------------------------------------------
kernel void test()
{
int2 gid = (int2)(get_global_id(0), get_global_id(1));
}
-------------------------------------------------------
with the following command line (rev 355676):
clang -cc1 -triple spir64-unknown-unknown -finclude-default-header -emit-llvm
-x cl -cl-std=c++ test.cl
leads to the following error:
-------------------------------------------------------
test.cl:4:23: error: non-constant-expression cannot be narrowed from type
'size_t' (aka 'unsigned long') to 'int' in initializer list
int2 gid = (int2)(get_global_id(0), get_global_id(1));
^~~~~~~~~~~~~~~~
test.cl:4:23: note: insert an explicit cast to silence this issue
int2 gid = (int2)(get_global_id(0), get_global_id(1));
^~~~~~~~~~~~~~~~
static_cast<int>( )
test.cl:4:41: error: non-constant-expression cannot be narrowed from type
'size_t' (aka 'unsigned long') to 'int' in initializer list
int2 gid = (int2)(get_global_id(0), get_global_id(1));
^~~~~~~~~~~~~~~~
test.cl:4:41: note: insert an explicit cast to silence this issue
int2 gid = (int2)(get_global_id(0), get_global_id(1));
^~~~~~~~~~~~~~~~
static_cast<int>( )
2 errors generated.
-------------------------------------------------------
--
You are receiving this mail because:
You are on the CC list for the bug._______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs