diff options
Diffstat (limited to 'src/checker.cpp')
| -rw-r--r-- | src/checker.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/checker.cpp b/src/checker.cpp index 088f84e24..515df72f6 100644 --- a/src/checker.cpp +++ b/src/checker.cpp @@ -710,6 +710,7 @@ void init_universal(void) { add_global_string_constant(str_lit("ODIN_VERSION"), bc->ODIN_VERSION); add_global_string_constant(str_lit("ODIN_ROOT"), bc->ODIN_ROOT); add_global_constant(str_lit("ODIN_DEBUG"), t_untyped_bool, exact_value_bool(bc->ODIN_DEBUG)); + add_global_constant(str_lit("ODIN_DISABLE_ASSERT"), t_untyped_bool, exact_value_bool(bc->ODIN_DISABLE_ASSERT)); // Builtin Procedures @@ -2273,6 +2274,16 @@ DECL_ATTRIBUTE_PROC(proc_decl_attribute) { } ac->require_results = true; return true; + } else if (name == "disabled") { + ExactValue ev = check_decl_attribute_value(c, value); + + if (ev.kind == ExactValue_Bool) { + ac->has_disabled_proc = true; + ac->disabled_proc = ev.value_bool; + } else { + error(elem, "Expected a boolean value for '%.*s'", LIT(name)); + } + return true; } return false; } |