From 2252d992d79a39c0c9d1ad0eeb312b6e75195f8f Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sun, 29 Dec 2019 21:10:27 +0000 Subject: Add `-disable-assert` to disable the code generation of the built-in run-time 'assert' procedure --- src/check_decl.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/check_decl.cpp') diff --git a/src/check_decl.cpp b/src/check_decl.cpp index f59d072b7..0e669e473 100644 --- a/src/check_decl.cpp +++ b/src/check_decl.cpp @@ -675,6 +675,16 @@ void check_proc_decl(CheckerContext *ctx, Entity *e, DeclInfo *d) { e->Procedure.is_export = ac.is_export; e->deprecated_message = ac.deprecated_message; ac.link_name = handle_link_name(ctx, e->token, ac.link_name, ac.link_prefix); + if (ac.has_disabled_proc) { + if (ac.disabled_proc) { + e->flags |= EntityFlag_Disabled; + } + Type *t = base_type(e->type); + GB_ASSERT(t->kind == Type_Proc); + if (t->Proc.result_count != 0) { + error(e->token, "Procedure with the 'disabled' attribute may not have any return values"); + } + } bool is_foreign = e->Procedure.is_foreign; bool is_export = e->Procedure.is_export; -- cgit v1.2.3