Procedure literals for default values in structs

This commit is contained in:
Ginger Bill
2017-10-01 20:01:00 +01:00
parent c1e720a49b
commit 8f39ebbe5a
7 changed files with 202 additions and 95 deletions
+4 -6
View File
@@ -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
View File
@@ -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;