struct Foo {}

// void* arithmetic is not allowed in MSVC, so ban it
fn test_voidptr() {
	unsafe {
		mut p := voidptr(u64(0))
		_ = p + 1
		p++
		p += 3
		_ = p - 1
		p--
		p -= 3
		_ = p[3]
		mut foo := &Foo{}
		foo % 3
	}
}

fn test_nil() {
	unsafe {
		mut p := nil
		_ = p + 1
		p++
		p += 3
		_ = p - 1
		p--
		p -= 3
		_ = p[3]
		mut foo := &Foo{}
		foo % 3
	}
}
