mirror of
https://github.com/Ed94/Odin.git
synced 2026-07-29 10:50:05 +00:00
Procedure literals for default values in structs
This commit is contained in:
+4
-6
@@ -721,18 +721,16 @@ __mem_copy_non_overlapping :: proc(dst, src: rawptr, len: int) -> rawptr #cc_con
|
||||
when size_of(rawptr) == 8 {
|
||||
foreign __llvm_core llvm_memcpy :: proc(dst, src: rawptr, len: int, align: i32, is_volatile: bool) #link_name "llvm.memcpy.p0i8.p0i8.i64" ---;
|
||||
} else {
|
||||
foreign __llvm_core llvm_memcpy :: proc(dst, src: rawptr, len: int, align: i32, is_volatile: bool) #link_name "llvm.memcpy.p0i8.p0i8.i32";
|
||||
foreign __llvm_core llvm_memcpy :: proc(dst, src: rawptr, len: int, align: i32, is_volatile: bool) #link_name "llvm.memcpy.p0i8.p0i8.i32" ---;
|
||||
}
|
||||
llvm_memcpy(dst, src, len, 1, false);
|
||||
return dst;
|
||||
}
|
||||
|
||||
__mem_compare :: proc(a, b: ^u8, n: int) -> int #cc_contextless {
|
||||
for i in 0..n {
|
||||
switch {
|
||||
case (a+i)^ < (b+i)^: return -1;
|
||||
case (a+i)^ > (b+i)^: return +1;
|
||||
}
|
||||
for i in 0..n do switch {
|
||||
case (a+i)^ < (b+i)^: return -1;
|
||||
case (a+i)^ > (b+i)^: return +1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
+2
-6
@@ -13,17 +13,13 @@ c_ushort :: i16;
|
||||
c_int :: i32;
|
||||
c_uint :: u32;
|
||||
|
||||
when ODIN_OS == "windows" {
|
||||
c_long :: i32;
|
||||
} else when size_of(int) == 4 {
|
||||
when ODIN_OS == "windows" || size_of(int) == 4 {
|
||||
c_long :: i32;
|
||||
} else {
|
||||
c_long :: i64;
|
||||
}
|
||||
|
||||
when ODIN_OS == "windows" {
|
||||
c_ulong :: u32;
|
||||
} else when size_of(uint) == 4 {
|
||||
when ODIN_OS == "windows" || size_of(uint) == 4 {
|
||||
c_ulong :: u32;
|
||||
} else {
|
||||
c_ulong :: u64;
|
||||
|
||||
Reference in New Issue
Block a user