Browse Source

Fix -llvm-api `memset` "bug"

gingerBill 5 years ago
parent
commit
f6c7a0c9b8
1 changed files with 7 additions and 19 deletions
  1. 7 19
      core/runtime/internal.odin

+ 7 - 19
core/runtime/internal.odin

@@ -70,25 +70,13 @@ align_forward_uintptr :: inline proc(ptr, align: uintptr) -> uintptr {
 mem_zero :: proc "contextless" (data: rawptr, len: int) -> rawptr {
 	if data == nil do return nil;
 	if len < 0 do return data;
-	when !#defined(memset) {
-		foreign _ {
-			when ODIN_USE_LLVM_API {
-				when size_of(rawptr) == 8 {
-					@(link_name="llvm.memset.p0i8.i64")
-					memset :: proc(dst: rawptr, val: byte, len: int, is_volatile: bool = false) ---;
-				} else {
-					@(link_name="llvm.memset.p0i8.i32")
-					memset :: proc(dst: rawptr, val: byte, len: int, is_volatile: bool = false) ---;
-				}
-			} else {
-				when size_of(rawptr) == 8 {
-					@(link_name="llvm.memset.p0i8.i64")
-					memset :: proc(dst: rawptr, val: byte, len: int, align: i32 = 1, is_volatile: bool = false) ---;
-				} else {
-					@(link_name="llvm.memset.p0i8.i32")
-					memset :: proc(dst: rawptr, val: byte, len: int, align: i32 = 1, is_volatile: bool = false) ---;
-				}
-			}
+	when !ODIN_USE_LLVM_API do foreign _ {
+		when size_of(rawptr) == 8 {
+			@(link_name="llvm.memset.p0i8.i64")
+			memset :: proc(dst: rawptr, val: byte, len: int, align: i32 = 1, is_volatile: bool = false) ---;
+		} else {
+			@(link_name="llvm.memset.p0i8.i32")
+			memset :: proc(dst: rawptr, val: byte, len: int, align: i32 = 1, is_volatile: bool = false) ---;
 		}
 	}
 	memset(data, 0, len);