aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2023-09-21 11:03:25 +0100
committergingerBill <bill@gingerbill.org>2023-09-21 11:03:25 +0100
commit735bb147e271fc441f265435dfafc143b1d2e71a (patch)
tree3a38214599630ea2809c453ee63b9ec09360d13e /src
parent7a511308ef985897dcfb47ffa4fb5c08bf0481a4 (diff)
Add asan lib for Windows
Diffstat (limited to 'src')
-rw-r--r--src/llvm_backend.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp
index 32b02eb1b..492559a4f 100644
--- a/src/llvm_backend.cpp
+++ b/src/llvm_backend.cpp
@@ -2586,6 +2586,21 @@ gb_internal bool lb_generate_code(lbGenerator *gen) {
return false;
}
+
+ if (build_context.sanitizer_flags & SanitizerFlag_Address) {
+ auto paths = array_make<String>(heap_allocator(), 0, 1);
+ if (build_context.metrics.os == TargetOs_windows) {
+ String path = concatenate_strings(permanent_allocator(), build_context.ODIN_ROOT, str_lit("\\bin\\llvm\\windows\\clang_rt.asan-x86_64.lib"));
+ array_add(&paths, path);
+ }
+ Entity *lib = alloc_entity_library_name(nullptr, make_token_ident("asan_lib"), nullptr, slice_from_array(paths), str_lit("asan_lib"));
+ array_add(&gen->foreign_libraries, lib);
+ }
+ if (build_context.sanitizer_flags & SanitizerFlag_Memory) {
+ }
+ if (build_context.sanitizer_flags & SanitizerFlag_Thread) {
+ }
+
gb_sort_array(gen->foreign_libraries.data, gen->foreign_libraries.count, foreign_library_cmp);
return true;