aboutsummaryrefslogtreecommitdiff
path: root/src/parser.js
diff options
context:
space:
mode:
authoralon@honor <none@none>2010-08-29 17:36:10 -0700
committeralon@honor <none@none>2010-08-29 17:36:10 -0700
commitc203d5c8e027a2cf0bea23540fc0edf93e4e37eb (patch)
tree8b178ae06879148978c6052fd2bb9ecd5caf8037 /src/parser.js
parentee99b2e41f47cdaa71fa9b16bdead0a95b928af2 (diff)
fix for 'sret' & other GEP features
Diffstat (limited to 'src/parser.js')
-rw-r--r--src/parser.js5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/parser.js b/src/parser.js
index 8997d3c4..7f25d2e5 100644
--- a/src/parser.js
+++ b/src/parser.js
@@ -226,9 +226,10 @@ function parseParamTokens(params) {
function parseGetElementPtr(segment) {
segment = segment.slice(0);
- if (segment[1].text === 'noalias') {
+ while (['noalias', 'sret', 'nocapture', 'nest', 'zeroext', 'signext'].indexOf(segment[1].text) != -1) {
segment.splice(1, 1);
}
+ assertTrue(['inreg', 'byval'].indexOf(segment[1].text) == -1);
var ret = {
intertype: 'getelementptr',
type: segment[0],
@@ -471,7 +472,7 @@ function intertyper(data) {
selectItem: function(item) { return item.tokens && item.tokens.length >= 3 && item.indent === 0 && item.tokens[1].text == '=' },
processItem: function(item) {
if (item.tokens[2].text == 'type') {
- dprint('linenum: ' + item.lineNum + ':' + dump(item));
+ //dprint('type/const linenum: ' + item.lineNum + ':' + dump(item));
var fields = [];
if (item.tokens[3].text != 'opaque') {
if (item.tokens[3].type == '<') // type <{ i8 }> XXX - check spec