| @group(0) @binding(0) var<storage, read_write> s : i32; |
| |
| alias ArrayType = array<i32, 4>; |
| |
| struct S { |
| arr : array<i32, 4>, |
| } |
| |
| fn foo() -> i32 { |
| let src : ArrayType = ArrayType(); |
| var dst : ArrayType; |
| var dst_struct : S; |
| var dst_array : array<ArrayType, 2>; |
| let dst_ptr : ptr<function, ArrayType> = &(dst); |
| let dst_struct_ptr : ptr<function, S> = &(dst_struct); |
| let dst_array_ptr : ptr<function, array<ArrayType, 2>> = &(dst_array); |
| dst_struct.arr = src; |
| dst_array[1] = src; |
| *(dst_ptr) = src; |
| (*(dst_struct_ptr)).arr = src; |
| (*(dst_array_ptr))[0] = src; |
| return (((*(dst_ptr))[0] + (*(dst_struct_ptr)).arr[0]) + (*(dst_array_ptr))[0][0]); |
| } |
| |
| @compute @workgroup_size(1) |
| fn main() { |
| s = foo(); |
| } |