aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormax99x <max99x@gmail.com>2011-08-25 10:54:48 +0300
committermax99x <max99x@gmail.com>2011-08-25 10:54:48 +0300
commit19708c13452e1e72318e0205d4e7a1f128eb52aa (patch)
treef95ca3682b2559e2efd26db8ff4e26599a0a5942
parenta23a1bd38f5eff1db1a032d59a0a56730a9b2fa5 (diff)
Made intertyper track whether external functions have varargs.
-rw-r--r--src/intertyper.js17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/intertyper.js b/src/intertyper.js
index 232025cb..794444d3 100644
--- a/src/intertyper.js
+++ b/src/intertyper.js
@@ -798,13 +798,24 @@ function intertyper(data, parseFunctions, baseLineNum) {
if (item.tokens[1].text in LLVM.LINKAGES || item.tokens[1].text in LLVM.PARAM_ATTR) {
item.tokens.splice(1, 1);
}
- return [{
+
+ var ret = {
intertype: 'functionStub',
ident: toNiceIdent(item.tokens[2].text),
returnType: item.tokens[1],
- params: item.tokens[3],
+ params: item.tokens[3].item.tokens,
+ hasVarArgs: false,
lineNum: item.lineNum
- }];
+ };
+
+ for (var i = 0; i < ret.params.length; i++) {
+ if (ret.params[i].text == '...') {
+ ret.hasVarArgs = true;
+ break;
+ }
+ }
+
+ return [ret];
}
});
// 'unreachable'