aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--src/llvm.cff13
2 files changed, 11 insertions, 3 deletions
diff --git a/.gitignore b/.gitignore
index 74c2a40..00d79aa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@ a.out
.cache/
src/host-target-triple.cff
vgcore.*
+build/
diff --git a/src/llvm.cff b/src/llvm.cff
index 98f99ce..d8c8a32 100644
--- a/src/llvm.cff
+++ b/src/llvm.cff
@@ -114,9 +114,12 @@ fn gen(fmt *const u8, ...) void {
if i < f.params.#len - 1 {
gen(", ");
} else if f.variadic {
- gen(", ...");
+ gen(", ");
}
}
+ if f.variadic {
+ gen("...");
+ }
gen(") ");
case VaList; gen("%%.type.valist");
case else assert(#f, "type?");
@@ -1266,9 +1269,10 @@ extern fn llvm_genfn(externp bool, name *const u8, f *Fn) void {
if f.paramnames[i] {
gen(" %%%s", f.paramnames[i]);
}
- if i < f.paramnames.#len - 1 {
+ if i < f.paramnames.#len - 1 or f.variadic {
gen(", ");
}
+ if f.variadic { gen("..."); }
}
gen(") { \n");
let id = 0;
@@ -1424,9 +1428,12 @@ extern fn llvm_fini() void {
if i < f.params.#len - 1 {
gen(", ");
} else if f.variadic {
- gen(", ...");
+ gen(", ");
}
}
+ if f.variadic {
+ gen("...");
+ }
gen(");\n");
case else
if !k.externp {