diff options
author | Alon Zakai <alonzakai@gmail.com> | 2011-05-10 07:20:13 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2011-05-10 07:20:13 -0700 |
commit | 123385f37719cd10b5dce081f22e4be0a66a5764 (patch) | |
tree | a35af92a319c7c366b00cff1e8023f6b2d158f2d | |
parent | 9e272a8add8b9d0d346fdbf2204140fa551d9edd (diff) |
handle |byval align X|
-rw-r--r-- | src/modules.js | 2 | ||||
-rw-r--r-- | src/parseTools.js | 7 |
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({ |