mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
35 lines
807 B
Plaintext
35 lines
807 B
Plaintext
module vecpointer @test;
|
|
|
|
fn void pointer_npot2_size()
|
|
{
|
|
int[<9>][3] a;
|
|
assert((usz)&a[1] - (usz)&a[0] == 64);
|
|
}
|
|
|
|
fn void pointer_add_sub_diff()
|
|
{
|
|
int[5] a;
|
|
void*[<2>] x = { &a[0], &a[4] };
|
|
int*[<2>] y = x;
|
|
assert(x[0] == y[0] && x[1] == y[1]);
|
|
int*[2] y2;
|
|
y2 = y;
|
|
assert(y2[0] == x[0] && y2[1] == x[1]);
|
|
y = { null, null };
|
|
assert(y[0] == null && y[0] == null);
|
|
y = y2;
|
|
assert(x[0] == y[0] && x[1] == y[1]);
|
|
int[<2>] z = { 1, -1 };
|
|
y = y + z;
|
|
assert(y[0] == &a[1] && y[1] == &a[3]);
|
|
y = y - z;
|
|
assert(y[0] == &a[0] && y[1] == &a[4]);
|
|
int*[<2>] yy = { &a[1], &a[2] };
|
|
isz[<2>] w;
|
|
w = y - yy;
|
|
assert(w == { -1, 2 });
|
|
int*[<2>] zz = y - (y - yy);
|
|
assert(zz[0] == &a[1] && zz[1] == &a[2]);
|
|
int[?]*[<2>] g = int[2]*[<2>] { null, null };
|
|
int[?]*[<?>] g2 = int[2]*[<2>] { null, null };
|
|
} |