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