aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compile.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/compile.c b/compile.c
index 0e73eaa1..cd0c5eea 100644
--- a/compile.c
+++ b/compile.c
@@ -732,7 +732,7 @@ CORD compile_statement(env_t *env, ast_t *ast)
auto decl = Match(if_->condition, Declare);
env_t *true_scope = fresh_scope(env);
const char *name = Match(decl->var, Var)->name;
- CORD var_code = CORD_cat(env->scope_prefix, name);
+ CORD var_code = CORD_cat(env->scope_prefix ? env->scope_prefix : "$", name);
type_t *var_t = get_type(env, decl->value);
if (var_t->tag == PointerType) {
auto ptr = Match(var_t, PointerType);
@@ -2251,11 +2251,12 @@ module_code_t compile_file(ast_t *ast)
"extern ", compile_type(env, t), " ", env->file_prefix, decl_name, " = ",
compile(env, decl->value), ";\n");
}
+ } else if (stmt->ast->tag == InlineCCode) {
+ CORD code = compile_statement(env, stmt->ast);
+ env->code->imports = CORD_all(env->code->imports, code, "\n");
} else {
CORD code = compile_statement(env, stmt->ast);
assert(!code);
- // if (code)
- // env->code->main = CORD_all(env->code->main, code, "\n");
}
}