aboutsummaryrefslogtreecommitdiff
path: root/src/llvm.cff
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2022-08-26 09:58:48 +0200
committerlemon <lsof@mailbox.org>2022-08-26 09:58:48 +0200
commit5ba53665c99c01f407576406b4c619d180efd384 (patch)
tree36257820de7d3d8a9cf21eee6cea9d3e38f93eda /src/llvm.cff
parentd42f8309b4af19966ad9c7b575918ee14421cee1 (diff)
some fixes + .[] syntax sugar
Diffstat (limited to 'src/llvm.cff')
-rw-r--r--src/llvm.cff4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/llvm.cff b/src/llvm.cff
index f3db972..16abb93 100644
--- a/src/llvm.cff
+++ b/src/llvm.cff
@@ -606,7 +606,7 @@ fn genexpr(f *Fn, ex *Expr) Value {
let tmpvar = mktmp(mkptrtype(ex.ty));
let res = mktmp(ex.ty);
gen("\t%v = alloca %t\n", tmpvar, ex.ty);
- gen("\t%v = icmp ne %t %v, 0\n", cnd, lhs.ty, lhs);
+ gen("\t%v = icmp ne %t %v, %s\n", cnd, lhs.ty, lhs, lhs.ty->is(:Ptr) ? "null" : "0");
gen("\tbr i1 %v, label %%CondT%d, label %%CondF%d\n", cnd, id, id);
gen("CondT%d: ", id);
let t = convert(f, ex.ty, cond.t);
@@ -1195,7 +1195,7 @@ extern fn llvm_genstatic(externp bool, name *const u8, var *Var) void {
extern fn llvm_fini() void {
vec_each(s, i, strs) {
- gen("@.str.%z = internal constant [%z x i8] c%S;\n", i, s.#len + 1, s);
+ gen("@.str.%z = private unnamed_addr constant [%z x i8] c%S;\n", i, s.#len + 1, s);
}
map_each(g, k, globls) {
if g.t != :Decl {