mirror of
https://github.com/odin-lang/Odin.git
synced 2025-12-31 18:32:12 +00:00
Cleanup
This commit is contained in:
@@ -1107,11 +1107,9 @@ __read_bits :: proc "contextless" (dst, src: [^]byte, offset: uintptr, size: uin
|
||||
}
|
||||
}
|
||||
|
||||
@(no_sanitize_address)
|
||||
__asan_unpoison_memory_region :: #force_inline proc "contextless" (address: rawptr, size: uint) {
|
||||
when .Address in ODIN_SANITIZER_FLAGS {
|
||||
foreign {
|
||||
__asan_unpoison_memory_region :: proc "system" (address: rawptr, size: uint) ---
|
||||
}
|
||||
__asan_unpoison_memory_region(address, size)
|
||||
}
|
||||
|
||||
|
||||
@@ -2918,20 +2918,16 @@ gb_internal void lb_emit_defer_stmts(lbProcedure *p, lbDeferExitKind kind, lbBlo
|
||||
defer (p->branch_location_pos = prev_token_pos);
|
||||
|
||||
// TODO(lucas): In LLVM 21 use the 'use-after-scope' asan option which does this for us.
|
||||
#if LLVM_VERSION_MAJOR < 21
|
||||
if (kind == lbDeferExit_Return) {
|
||||
for_array(i, p->asan_stack_locals) {
|
||||
lbValue local = p->asan_stack_locals[i];
|
||||
if (kind == lbDeferExit_Return) {
|
||||
for_array(i, p->asan_stack_locals) {
|
||||
lbValue local = p->asan_stack_locals[i];
|
||||
|
||||
auto args = array_make<lbValue>(temporary_allocator(), 2);
|
||||
args[0] = lb_emit_conv(p, local, t_rawptr);
|
||||
args[1] = lb_const_int(p->module, t_int, type_size_of(local.type->Pointer.elem));
|
||||
lb_emit_runtime_call(p, "__asan_unpoison_memory_region", args);
|
||||
}
|
||||
auto args = array_make<lbValue>(temporary_allocator(), 2);
|
||||
args[0] = lb_emit_conv(p, local, t_rawptr);
|
||||
args[1] = lb_const_int(p->module, t_int, type_size_of(local.type->Pointer.elem));
|
||||
lb_emit_runtime_call(p, "__asan_unpoison_memory_region", args);
|
||||
}
|
||||
#else
|
||||
#error "Need to implement LLVM 21 'use-after-scope' asan option"
|
||||
#endif
|
||||
}
|
||||
|
||||
isize count = p->defer_stmts.count;
|
||||
isize i = count;
|
||||
|
||||
Reference in New Issue
Block a user