mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
Fix default parameter assignment checking
This commit is contained in:
@@ -27,6 +27,9 @@ set :: proc "contextless" (data: rawptr, value: byte, len: int) -> rawptr {
|
|||||||
zero :: proc "contextless" (data: rawptr, len: int) -> rawptr {
|
zero :: proc "contextless" (data: rawptr, len: int) -> rawptr {
|
||||||
return set(data, 0, len);
|
return set(data, 0, len);
|
||||||
}
|
}
|
||||||
|
zero_item :: proc "contextless" (item: $P/^$T) {
|
||||||
|
set(item, 0, size_of(T));
|
||||||
|
}
|
||||||
zero_slice :: proc "contextless" (data: $T/[]$E) {
|
zero_slice :: proc "contextless" (data: $T/[]$E) {
|
||||||
if n := len(data); n > 0 {
|
if n := len(data); n > 0 {
|
||||||
zero(&data[0], size_of(E)*n);
|
zero(&data[0], size_of(E)*n);
|
||||||
|
|||||||
+1
-1
@@ -1327,7 +1327,7 @@ ParameterValue handle_parameter_value(CheckerContext *ctx, Type *in_type, Type *
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (in_type) {
|
if (in_type) {
|
||||||
check_is_assignable_to(ctx, &o, in_type);
|
check_assignment(ctx, &o, in_type, str_lit("parameter value"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (out_type_) *out_type_ = default_type(o.type);
|
if (out_type_) *out_type_ = default_type(o.type);
|
||||||
|
|||||||
+2
-2
@@ -1042,7 +1042,7 @@ bool is_type_integer_endian_big(Type *t) {
|
|||||||
} else if (t->kind == Type_BitSet) {
|
} else if (t->kind == Type_BitSet) {
|
||||||
return is_type_integer_endian_big(bit_set_to_int(t));
|
return is_type_integer_endian_big(bit_set_to_int(t));
|
||||||
} else {
|
} else {
|
||||||
GB_PANIC("Unsupported type: %s", type_to_string);
|
GB_PANIC("Unsupported type: %s", type_to_string(t));
|
||||||
}
|
}
|
||||||
return build_context.endian_kind == TargetEndian_Big;
|
return build_context.endian_kind == TargetEndian_Big;
|
||||||
}
|
}
|
||||||
@@ -1059,7 +1059,7 @@ bool is_type_integer_endian_little(Type *t) {
|
|||||||
} else if (t->kind == Type_BitSet) {
|
} else if (t->kind == Type_BitSet) {
|
||||||
return is_type_integer_endian_little(bit_set_to_int(t));
|
return is_type_integer_endian_little(bit_set_to_int(t));
|
||||||
} else {
|
} else {
|
||||||
GB_PANIC("Unsupported type: %s", type_to_string);
|
GB_PANIC("Unsupported type: %s", type_to_string(t));
|
||||||
}
|
}
|
||||||
return build_context.endian_kind == TargetEndian_Little;
|
return build_context.endian_kind == TargetEndian_Little;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user