master
 1export fn elemPtr() void {
 2    var ptr: [*]u8 = undefined;
 3    ptr[0] = 0;
 4}
 5
 6export fn elemVal() void {
 7    var ptr: [*]u8 = undefined;
 8    var val = ptr[0];
 9    _ = &ptr;
10    _ = &val;
11}
12
13export fn intFromPtr() void {
14    var value: u8 = 0;
15    _ = @intFromPtr(&value);
16}
17
18export fn ptrFromInt() void {
19    var v: u32 = 0x1234;
20    var ptr: *u8 = @ptrFromInt(v);
21    _ = &v;
22    _ = &ptr;
23}
24
25export fn ptrPtrArithmetic() void {
26    var value0: u8 = 0;
27    var value1: u8 = 0;
28    _ = &value0 - &value1;
29}
30
31export fn ptrIntArithmetic() void {
32    var ptr0: [*]u8 = undefined;
33    _ = &ptr0;
34    _ = ptr0 - 10;
35}
36
37// error
38// target=spirv64-vulkan
39//
40// :3:8: error: illegal operation on logical pointer of type '[*]u8'
41// :3:8: note: cannot perform arithmetic on pointers with address space 'generic' on target spirv-vulkan
42// :8:18: error: illegal operation on logical pointer of type '[*]u8'
43// :8:18: note: cannot perform arithmetic on pointers with address space 'generic' on target spirv-vulkan
44// :15:21: error: illegal operation on logical pointer of type '*u8'
45// :15:21: note: cannot perform arithmetic on pointers with address space 'generic' on target spirv-vulkan
46// :20:20: error: illegal operation on logical pointer of type '*u8'
47// :20:20: note: cannot perform arithmetic on pointers with address space 'generic' on target spirv-vulkan
48// :28:17: error: illegal operation on logical pointer of type '*u8'
49// :28:17: note: cannot perform arithmetic on pointers with address space 'generic' on target spirv-vulkan
50// :34:14: error: illegal operation on logical pointer of type '[*]u8'
51// :34:14: note: cannot perform arithmetic on pointers with address space 'generic' on target spirv-vulkan