Mercurial > repos > tabletprog
changeset 282:361a449a7235
Add some extra parens in addr_of translation and fix cleaning of names in llMessage parameters
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 21 Jul 2014 20:24:50 -0700 |
parents | f6dfb85e80e5 |
children | 0ec4f1b68a38 |
files | cbackend.js |
diffstat | 1 files changed, 6 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/cbackend.js Mon Jul 21 19:41:15 2014 -0700 +++ b/cbackend.js Mon Jul 21 20:24:50 2014 -0700 @@ -391,7 +391,7 @@ case 'while:do': throw new Error('while:do not allowed in expression context in llMessage block'); case 'addr_of': - return '&(' + args[0].toCLLExpr(vars) + ')'; + return '(&(' + args[0].toCLLExpr(vars) + '))'; case 'sizeof': return 'sizeof(' + args[0].toCTypeName() + ')'; case 'get': @@ -807,10 +807,10 @@ } function makeCPointer() -{ +{ var cptr = new cObject('cpointer'); cptr.addProperty('val', null, 'void *'); - //cpointer: + //cpointer: //1234567890 cptr.addMessage('string', { vars: {ret: 'string *'}, @@ -1220,6 +1220,9 @@ if (name[0] == ':') { name = name.substr(1); } + if (name[0] >= "0" && name[0] <= "9") { + name = '_tp_' + name; + } if(name != 'self') { lines.push(name + ' = va_arg(args, ' + vars[name] + ');'); }