Add sanitize_address attribute to all normal packages

This commit is contained in:
gingerBill
2023-09-21 11:13:26 +01:00
parent 735bb147e2
commit 38d2a0ddb9
4 changed files with 10 additions and 6 deletions
+1 -1
View File
@@ -858,7 +858,7 @@ gb_internal AstPackage *create_builtin_package(char const *name) {
gbAllocator a = permanent_allocator();
AstPackage *pkg = gb_alloc_item(a, AstPackage);
pkg->name = make_string_c(name);
pkg->kind = Package_Normal;
pkg->kind = Package_Builtin;
pkg->scope = create_scope(nullptr, nullptr);
pkg->scope->flags |= ScopeFlag_Pkg | ScopeFlag_Global | ScopeFlag_Builtin;
+2 -4
View File
@@ -1101,11 +1101,9 @@ gb_internal void odin_doc_write_docs(OdinDocWriter *w) {
case Package_Init:
pkg_flags |= OdinDocPkgFlag_Init;
break;
}
if (pkg->name == "builtin") {
pkg_flags |= OdinDocPkgFlag_Builtin;
} else if (pkg->name == "intrinsics") {
case Package_Builtin:
pkg_flags |= OdinDocPkgFlag_Builtin;
break;
}
OdinDocPkg doc_pkg = {};
+6 -1
View File
@@ -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);
+1
View File
@@ -60,6 +60,7 @@ enum PackageKind {
Package_Normal,
Package_Runtime,
Package_Init,
Package_Builtin,
};
struct ImportedFile {