mirror of
https://github.com/odin-lang/Odin.git
synced 2026-04-23 14:55:19 +00:00
Fix #1972
This commit is contained in:
@@ -14,14 +14,14 @@ _ :: mem
|
||||
Turn a pointer and a length into a slice.
|
||||
*/
|
||||
from_ptr :: proc "contextless" (ptr: ^$T, count: int) -> []T {
|
||||
return ([^]T)(ptr)[:count]
|
||||
return ([^]T)(ptr)[:count]
|
||||
}
|
||||
|
||||
/*
|
||||
Turn a pointer and a length into a byte slice.
|
||||
*/
|
||||
bytes_from_ptr :: proc "contextless" (ptr: rawptr, byte_count: int) -> []byte {
|
||||
return ([^]byte)(ptr)[:byte_count]
|
||||
return ([^]byte)(ptr)[:byte_count]
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -1568,7 +1568,7 @@ sys_gettid :: proc "contextless" () -> int {
|
||||
}
|
||||
|
||||
sys_getrandom :: proc "contextless" (buf: [^]byte, buflen: int, flags: uint) -> int {
|
||||
return cast(int)intrinsics.syscall(SYS_getrandom, buf, cast(uintptr)(buflen), cast(uintptr)(flags))
|
||||
return cast(int)intrinsics.syscall(SYS_getrandom, uintptr(buf), uintptr(buflen), uintptr(flags))
|
||||
}
|
||||
|
||||
sys_open :: proc "contextless" (path: cstring, flags: int, mode: int = 0o000) -> int {
|
||||
@@ -1748,7 +1748,7 @@ sys_unlink :: proc "contextless" (path: cstring) -> int {
|
||||
}
|
||||
|
||||
sys_unlinkat :: proc "contextless" (dfd: int, path: cstring, flag: int = 0) -> int {
|
||||
return int(intrinsics.syscall(SYS_unlinkat, uintptr(dfd), uintptr(rawptr(path)), flag))
|
||||
return int(intrinsics.syscall(SYS_unlinkat, uintptr(dfd), uintptr(rawptr(path)), uintptr(flag)))
|
||||
}
|
||||
|
||||
sys_rmdir :: proc "contextless" (path: cstring) -> int {
|
||||
|
||||
@@ -4523,7 +4523,8 @@ bool check_builtin_procedure(CheckerContext *c, Operand *operand, Ast *call, i32
|
||||
if (x.mode != Addressing_Invalid) {
|
||||
convert_to_typed(c, &x, t_uintptr);
|
||||
}
|
||||
if (!is_type_uintptr(operand->type)) {
|
||||
convert_to_typed(c, &x, t_uintptr);
|
||||
if (!is_type_uintptr(x.type)) {
|
||||
gbString t = type_to_string(x.type);
|
||||
error(x.expr, "Argument %td must be of type 'uintptr', got %s", i, t);
|
||||
gb_string_free(t);
|
||||
|
||||
Reference in New Issue
Block a user