parent
13d04f9963
commit
0cd953d40e
|
@ -12819,7 +12819,7 @@ static IrInstGen *ir_resolve_ptr_of_array_to_slice(IrAnalyze *ira, IrInst* sourc
|
|||
result->value->type = wanted_type;
|
||||
return result;
|
||||
}
|
||||
} else {
|
||||
} else if (array_ptr_val->data.x_ptr.special != ConstPtrSpecialHardCodedAddr) {
|
||||
ZigValue *pointee = const_ptr_pointee(ira, ira->codegen, array_ptr_val, source_instr->source_node);
|
||||
if (pointee == nullptr)
|
||||
return ira->codegen->invalid_inst_gen;
|
||||
|
|
|
@ -285,3 +285,17 @@ test "slice syntax resulting in pointer-to-array" {
|
|||
S.doTheTest();
|
||||
comptime S.doTheTest();
|
||||
}
|
||||
|
||||
test "slice of hardcoded address to pointer" {
|
||||
const S = struct {
|
||||
fn doTheTest() void {
|
||||
const pointer = @intToPtr([*]u8, 0x04)[0..2];
|
||||
comptime expect(@TypeOf(pointer) == *[2]u8);
|
||||
const slice: []const u8 = pointer;
|
||||
expect(@ptrToInt(slice.ptr) == 4);
|
||||
expect(slice.len == 2);
|
||||
}
|
||||
};
|
||||
|
||||
S.doTheTest();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue