Skip to content

Commit 123385f

Browse files
committed
handle |byval align X|
1 parent 9e272a8 commit 123385f

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

src/modules.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ var LLVM = {
66
LINKAGES: set('private', 'linker_private', 'linker_private_weak', 'linker_private_weak_def_auto', 'internal',
77
'available_externally', 'linkonce', 'common', 'weak', 'appending', 'extern_weak', 'linkonce_odr',
88
'weak_odr', 'externally_visible', 'dllimport', 'dllexport', 'unnamed_addr'),
9-
PARAM_ATTR: set('noalias', 'signext', 'zeroext', 'inreg', 'byval', 'sret', 'nocapture', 'nest'),
9+
PARAM_ATTR: set('noalias', 'signext', 'zeroext', 'inreg', 'sret', 'nocapture', 'nest'),
1010
CALLING_CONVENTIONS: set('ccc', 'fastcc', 'coldcc', 'cc10')
1111
};
1212
LLVM.GLOBAL_MODIFIERS = set(keys(LLVM.LINKAGES).concat(['constant', 'global', 'hidden']));

src/parseTools.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,13 @@ function parseParamTokens(params) {
266266
var segment = params.slice(0, i);
267267
params = params.slice(i+1);
268268
segment = cleanSegment(segment);
269+
if (segment[1] && segment[1].text === 'byval') {
270+
// handle 'byval' and 'byval align X'
271+
segment.splice(1, 1);
272+
if (segment[1] && segment[1].text === 'align') {
273+
segment.splice(1, 2);
274+
}
275+
}
269276
if (segment.length == 1) {
270277
if (segment[0].text == '...') {
271278
ret.push({

0 commit comments

Comments
 (0)