summaryrefslogtreecommitdiff
path: root/decls_cgen.c
diff options
context:
space:
mode:
authorLeo Tenenbaum <pommicket@gmail.com>2019-11-30 19:38:28 -0500
committerLeo Tenenbaum <pommicket@gmail.com>2019-11-30 19:38:28 -0500
commitd24409b9bf4783be63109f59d8558cef884069e6 (patch)
treea1886005cc1e65bed5d03f493149874d8e4398b6 /decls_cgen.c
parente8cd3b66a9bf20e5a68147a9882685299d40f495 (diff)
fixed some bugs involving returning types
Diffstat (limited to 'decls_cgen.c')
-rw-r--r--decls_cgen.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/decls_cgen.c b/decls_cgen.c
index 593bf5d..91ad40a 100644
--- a/decls_cgen.c
+++ b/decls_cgen.c
@@ -5,20 +5,20 @@ static bool cgen_decls_decl(CGenerator *g, Declaration *d);
static bool cgen_decls_fn_instances(CGenerator *g, Expression *e) {
assert(e->kind == EXPR_FN);
FnExpr *f = &e->fn;
- if (!cgen_should_gen_fn(f))
- return true;
FnType *type = &e->type.fn;
assert(type->constness);
Instance **data = f->instances.data;
for (U64 i = 0; i < f->instances.cap; i++) {
if (f->instances.occupied[i]) {
- (*data)->fn.c.name = f->c.name;
- (*data)->fn.c.id = f->c.id;
-
- if (!cgen_fn_header(g, &(*data)->fn, e->where, (*data)->c.id, (*data)->val.tuple[0].u64))
- return false;
- cgen_write(g, ";");
- cgen_nl(g);
+ if (cgen_should_gen_fn(&(*data)->fn)) {
+ (*data)->fn.c.name = f->c.name;
+ (*data)->fn.c.id = f->c.id;
+
+ if (!cgen_fn_header(g, &(*data)->fn, e->where, (*data)->c.id, (*data)->val.tuple[0].u64))
+ return false;
+ cgen_write(g, ";");
+ cgen_nl(g);
+ }
}
data++;
}