diff options
| author | gingerBill <bill@gingerbill.org> | 2023-09-21 11:13:26 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2023-09-21 11:13:26 +0100 |
| commit | 38d2a0ddb9b1e74661dd05fae71e3a2d47e8de2c (patch) | |
| tree | 6b9b476eed4acf98cf4d72eadfcad203592f0ad9 /src/llvm_backend_proc.cpp | |
| parent | 735bb147e271fc441f265435dfafc143b1d2e71a (diff) | |
Add `sanitize_address` attribute to all normal packages
Diffstat (limited to 'src/llvm_backend_proc.cpp')
| -rw-r--r-- | src/llvm_backend_proc.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/llvm_backend_proc.cpp b/src/llvm_backend_proc.cpp index b8f6f0f30..f86e008a9 100644 --- a/src/llvm_backend_proc.cpp +++ b/src/llvm_backend_proc.cpp @@ -152,7 +152,6 @@ gb_internal lbProcedure *lb_create_procedure(lbModule *m, Entity *entity, bool i lb_add_attribute_to_proc(m, p->value, "noredzone"); } - switch (p->inlining) { case ProcInlining_inline: lb_add_attribute_to_proc(m, p->value, "alwaysinline"); @@ -318,6 +317,12 @@ gb_internal lbProcedure *lb_create_procedure(lbModule *m, Entity *entity, bool i } } + if (p->body && entity->pkg && (entity->pkg->kind == Package_Normal) || (entity->pkg->kind == Package_Init)) { + if (build_context.sanitizer_flags & SanitizerFlag_Address) { + lb_add_attribute_to_proc(m, p->value, "sanitize_address"); + } + } + lbValue proc_value = {p->value, p->type}; lb_add_entity(m, entity, proc_value); lb_add_member(m, p->name, proc_value); |