aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/modules.js2
-rw-r--r--src/parseTools.js7
2 files changed, 8 insertions, 1 deletions
diff --git a/src/modules.js b/src/modules.js
index 54b92755..a91a41ec 100644
--- a/src/modules.js
+++ b/src/modules.js
@@ -6,7 +6,7 @@ var LLVM = {
LINKAGES: set('private', 'linker_private', 'linker_private_weak', 'linker_private_weak_def_auto', 'internal',
'available_externally', 'linkonce', 'common', 'weak', 'appending', 'extern_weak', 'linkonce_odr',
'weak_odr', 'externally_visible', 'dllimport', 'dllexport', 'unnamed_addr'),
- PARAM_ATTR: set('noalias', 'signext', 'zeroext', 'inreg', 'byval', 'sret', 'nocapture', 'nest'),
+ PARAM_ATTR: set('noalias', 'signext', 'zeroext', 'inreg', 'sret', 'nocapture', 'nest'),
CALLING_CONVENTIONS: set('ccc', 'fastcc', 'coldcc', 'cc10')
};
LLVM.GLOBAL_MODIFIERS = set(keys(LLVM.LINKAGES).concat(['constant', 'global', 'hidden']));
diff --git a/src/parseTools.js b/src/parseTools.js
index 5cfd20f8..60ebf309 100644
--- a/src/parseTools.js
+++ b/src/parseTools.js
@@ -266,6 +266,13 @@ function parseParamTokens(params) {
var segment = params.slice(0, i);
params = params.slice(i+1);
segment = cleanSegment(segment);
+ if (segment[1] && segment[1].text === 'byval') {
+ // handle 'byval' and 'byval align X'
+ segment.splice(1, 1);
+ if (segment[1] && segment[1].text === 'align') {
+ segment.splice(1, 2);
+ }
+ }
if (segment.length == 1) {
if (segment[0].text == '...') {
ret.push({