aboutsummaryrefslogtreecommitdiff
path: root/bootstrap
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2022-08-07 21:14:05 +0200
committerlemon <lsof@mailbox.org>2022-08-07 21:14:05 +0200
commite305f71c3cbd685eacb77451b3728b2cac492d71 (patch)
treec33aa2dc2d1e706b54ba428c6c787cbe49cd1c7a /bootstrap
parent8c6a876e9ff39789cbd2fc8b73abd3549928ba89 (diff)
fix (for some reason this only segfaulted on -m32)
Diffstat (limited to 'bootstrap')
-rw-r--r--bootstrap/cgen.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/bootstrap/cgen.c b/bootstrap/cgen.c
index 3bd6710..df5ccbc 100644
--- a/bootstrap/cgen.c
+++ b/bootstrap/cgen.c
@@ -143,9 +143,9 @@ geniniex(struct expr *ex) {
for (int i = 0; i < ex->ini.args.n; ++i) {
struct iniarg *arg = &ex->ini.args.d[i];
if (ex->ty->t == TYarr)
- pri("[%I] = %e, ", arg->idx, arg->ex);
+ pri("[%I] = %e, ", arg->idx, &arg->ex);
else
- pri(".%s = %e, ", arg->fld, arg->ex);
+ pri(".%s = %e, ", arg->fld, &arg->ex);
}
pri("}");
@@ -581,8 +581,10 @@ defctype(const struct type *ty, void *_) {
*cname = xasprintf("__ty%d", id++);
pri("typedef struct { %t *ptr; size_t len; } %s;\n",
ty->child, *cname);
- pri("_Static_assert(sizeof(%s) == %U);\n", *cname, (u64)ty->size);
- pri("_Static_assert(__alignof__(%s) == %U);\n", *cname, (u64)ty->align);
+ pri("_Static_assert(sizeof(%s) == %U, \"sizeof(%t) == %U\");\n",
+ *cname, (u64)ty->size, ty, (u64)ty->size);
+ pri("_Static_assert(__alignof__(%s) == %U, \"__alignof__(%t) == %U\");\n",
+ *cname, (u64)ty->align, ty, (u64)ty->align);
break;
case TYfn:
*cname = xasprintf("__ty%d", id++);
@@ -620,8 +622,10 @@ defctype(const struct type *ty, void *_) {
pri("%t %s;\n", fld.ty, fld.name);
}
pri("};\n");
- pri("_Static_assert(sizeof(%s) == %U);\n", *cname, (u64)ty->size);
- pri("_Static_assert(__alignof__(%s) == %U);\n", *cname, (u64)ty->align);
+ pri("_Static_assert(sizeof(%s) == %U, \"sizeof(%t) == %U\");\n",
+ *cname, (u64)ty->size, ty, (u64)ty->size);
+ pri("_Static_assert(__alignof__(%s) == %U, \"__alignof__(%t) == %U\");\n",
+ *cname, (u64)ty->align, ty, (u64)ty->align);
}
for (int i = 0; i < ty->agg.decls.n; ++i)
liftdecl(ty->agg.decls.d[i]);