# HG changeset patch # User Michael Pavone # Date 1405999490 25200 # Node ID 361a449a7235398962e3136ce511582322f70e2b # Parent f6dfb85e80e50efea3d9fc7a63e5b53edfaf1cc4 Add some extra parens in addr_of translation and fix cleaning of names in llMessage parameters diff -r f6dfb85e80e5 -r 361a449a7235 cbackend.js --- 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] + ');'); }